fix(DB/Scripts): CoS Stephanie Sindree and citizen now talk (#24045)

Co-authored-by: blinkysc <blinkysc@users.noreply.github.com>
Co-authored-by: sudlud <sudlud@users.noreply.github.com>
This commit is contained in:
blinkysc
2026-03-23 05:10:29 -05:00
committed by GitHub
parent 757f6127ab
commit cbc4301ade
2 changed files with 69 additions and 0 deletions

View File

@@ -176,6 +176,14 @@ enum Misc
POINT_CHRONOS = 1,
// Stephanie Sindree crowd
NPC_STEPHANIE_SINDREE = 31019,
SAY_STEPHANIE_CROWD_1 = 4,
SAY_STEPHANIE_CROWD_2 = 5,
SAY_STEPHANIE_CROWD_3 = 6,
SAY_STEPHANIE_RESPONSE_1 = 0,
SAY_STEPHANIE_RESPONSE_2 = 1,
// Brandon Eiredeck crowd
NPC_BRANDON_EIREDECK = 31023,
SAY_BRANDON_CROWD_AMBIENT = 3,
@@ -1526,6 +1534,10 @@ public:
if (!pInstance || pInstance->GetData(DATA_ARTHAS_EVENT) < COS_PROGRESS_FINISHED_CITY_INTRO)
allowTimer++;
isStephanieCrowd = me->GetEntry() == NPC_CITY_MAN3 && me->GetDistance(2149.56f, 1339.46f, 132.531f) < 10.0f;
stephanieDialogueTimer = isStephanieCrowd ? urand(5000, 15000) : 0;
stephanieDialoguePhase = 0;
isBrandonCrowd = me->GetDistance(2267.86f, 1144.93f, 138.403f) < 10.0f;
ambientTalkTimer = isBrandonCrowd ? urand(5000, 15000) : 0;
}
@@ -1534,6 +1546,9 @@ public:
uint32 changeTimer;
InstanceScript* pInstance;
uint32 allowTimer;
bool isStephanieCrowd;
uint32 stephanieDialogueTimer;
uint8 stephanieDialoguePhase;
bool isBrandonCrowd;
uint32 ambientTalkTimer;
@@ -1596,6 +1611,48 @@ public:
{
ScriptedAI::UpdateAI(diff);
if (isStephanieCrowd && stephanieDialogueTimer)
{
if (stephanieDialogueTimer <= diff)
{
Creature* stephanie = me->FindNearestCreature(NPC_STEPHANIE_SINDREE, 10.0f);
switch (stephanieDialoguePhase)
{
case 0:
Talk(SAY_STEPHANIE_CROWD_1);
stephanieDialogueTimer = 5000;
stephanieDialoguePhase = 1;
break;
case 1:
if (stephanie)
stephanie->AI()->Talk(SAY_STEPHANIE_RESPONSE_1);
stephanieDialogueTimer = 5000;
stephanieDialoguePhase = 2;
break;
case 2:
Talk(SAY_STEPHANIE_CROWD_2);
stephanieDialogueTimer = 5000;
stephanieDialoguePhase = 3;
break;
case 3:
if (stephanie)
stephanie->AI()->Talk(SAY_STEPHANIE_RESPONSE_2);
stephanieDialogueTimer = 8000;
stephanieDialoguePhase = 4;
break;
case 4:
Talk(SAY_STEPHANIE_CROWD_3);
stephanieDialogueTimer = urand(45000, 60000);
stephanieDialoguePhase = 0;
break;
}
}
else
stephanieDialogueTimer -= diff;
return;
}
if (isBrandonCrowd && ambientTalkTimer)
{
if (ambientTalkTimer <= diff)