void WaypointReached(uint32 uiPoint) { //just in case if (GetPlayerForEscort()) if (me->GetFaction() != GetPlayerForEscort()->GetFaction()) me->SetFaction(GetPlayerForEscort()->GetFaction()); switch (uiPoint) { case 3: SetEscortPaused(true); NextStep(2000, false, 3); break; case 7: SetEscortPaused(true); NextStep(2000, false, 4); break; case 9: NextStep(1000, false, 8); break; case 10: NextStep(25000, false, 10); break; case 11: SetEscortPaused(true); SetInFace(true); NextStep(1000, false, 11); break; case 12: NextStep(25000, false, 18); break; case 13: Summon(7); NextStep(25000, false, 19); break; case 14: SetInFace(false); DoScriptText(SAY_BLASTMASTER_26, me); SetEscortPaused(true); NextStep(5000, false, 20); break; } }
void WaypointReached(uint32 waypointId) override { //just in case if (GetPlayerForEscort()) if (me->getFaction() != GetPlayerForEscort()->getFaction()) me->setFaction(GetPlayerForEscort()->getFaction()); switch (waypointId) { case 3: SetEscortPaused(true); NextStep(2000, false, 3); break; case 7: SetEscortPaused(true); NextStep(2000, false, 4); break; case 9: NextStep(1000, false, 8); break; case 10: NextStep(25000, false, 10); break; case 11: SetEscortPaused(true); SetInFace(true); NextStep(1000, false, 11); break; case 12: NextStep(25000, false, 18); break; case 13: Summon(6); NextStep(25000, false, 19); break; case 14: SetInFace(false); Talk(SAY_BLASTMASTER_17); SetEscortPaused(true); NextStep(5000, false, 20); break; } }
void UpdateEscortAI(const uint32 uiDiff) { if (uiPhase) { if (uiTimer <= uiDiff) { switch (uiPhase) { case 1: DoScriptText(SAY_BLASTMASTER_1, me); NextStep(1500, true); break; case 2: SetEscortPaused(false); NextStep(0, false, 0); break; case 3: DoScriptText(SAY_BLASTMASTER_2, me); SetEscortPaused(false); NextStep(0, false, 0); break; case 4: DoScriptText(SAY_BLASTMASTER_3, me); NextStep(3000, true); break; case 5: DoScriptText(SAY_BLASTMASTER_4, me); NextStep(3000, true); break; case 6: SetInFace(true); DoScriptText(SAY_BLASTMASTER_5, me); Summon(1); if (pInstance) if (GameObject* pGo = GameObject::GetGameObject((*me), pInstance->GetData64(DATA_GO_CAVE_IN_RIGHT))) pInstance->HandleGameObject(0, true, pGo); NextStep(3000, true); break; case 7: DoScriptText(SAY_BLASTMASTER_6, me); SetEscortPaused(false); NextStep(0, false, 0); break; case 8: me->HandleEmoteCommand(EMOTE_STATE_WORK); NextStep(25000, true); break; case 9: Summon(2); NextStep(0, false); break; case 10: Summon(4); NextStep(0, false); break; case 11: DoScriptText(SAY_BLASTMASTER_17, me); NextStep(5000, true); break; case 12: DoScriptText(SAY_BLASTMASTER_18, me); NextStep(5000, true); break; case 13: DoScriptText(SAY_BLASTMASTER_20, me); CaveDestruction(true); NextStep(8000, true); break; case 14: DoScriptText(SAY_BLASTMASTER_21, me); NextStep(8500, true); break; case 15: DoScriptText(SAY_BLASTMASTER_22, me); NextStep(2000, true); break; case 16: DoScriptText(SAY_BLASTMASTER_23, me); SetInFace(false); if (pInstance) if (GameObject* pGo = GameObject::GetGameObject((*me), pInstance->GetData64(DATA_GO_CAVE_IN_LEFT))) pInstance->HandleGameObject(0, true, pGo); NextStep(2000, true); break; case 17: SetEscortPaused(false); DoScriptText(SAY_BLASTMASTER_24, me); Summon(6); NextStep(0, false); break; case 18: Summon(7); NextStep(0, false); break; case 19: SetInFace(false); Summon(8); DoScriptText(SAY_BLASTMASTER_25, me); NextStep(0, false); break; case 20: DoScriptText(SAY_BLASTMASTER_27, me); NextStep(2000, true); break; case 21: Summon(9); NextStep(0, false); break; case 22: CaveDestruction(false); DoScriptText(SAY_BLASTMASTER_20, me); NextStep(0, false); break; } } else uiTimer -= uiDiff; } if (!UpdateVictim()) return; DoMeleeAttackIfReady(); }
void UpdateEscortAI(uint32 uiDiff) override { if (uiPhase) { if (uiTimer <= uiDiff) { switch (uiPhase) { case 1: Talk(SAY_BLASTMASTER_1); NextStep(2000, true); break; case 2: SetEscortPaused(false); NextStep(0, false, 0); break; case 3: Talk(SAY_BLASTMASTER_2); SetEscortPaused(false); NextStep(0, false, 0); break; case 4: Talk(SAY_BLASTMASTER_3); NextStep(3000, true); break; case 5: Talk(SAY_BLASTMASTER_4); NextStep(3000, true); break; case 6: SetInFace(true); Talk(SAY_BLASTMASTER_5); Summon(1); if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_GO_CAVE_IN_RIGHT))) instance->HandleGameObject(ObjectGuid::Empty, true, go); NextStep(3000, true); break; case 7: Talk(SAY_BLASTMASTER_6); SetEscortPaused(false); NextStep(0, false, 0); break; case 8: me->HandleEmoteCommand(EMOTE_STATE_USE_STANDING); NextStep(25000, true); break; case 9: Summon(2); NextStep(0, false); break; case 10: Summon(4); Talk(SAY_BLASTMASTER_8); NextStep(0, false); break; case 11: Talk(SAY_BLASTMASTER_9); NextStep(5000, true); break; case 12: Talk(SAY_BLASTMASTER_10); NextStep(5000, true); break; case 13: Talk(SAY_BLASTMASTER_11); CaveDestruction(true); NextStep(8000, true); break; case 14: Talk(SAY_BLASTMASTER_12); NextStep(8500, true); break; case 15: Talk(SAY_BLASTMASTER_13); NextStep(2000, true); break; case 16: Talk(SAY_BLASTMASTER_14); SetInFace(false); if (GameObject* go = ObjectAccessor::GetGameObject(*me, instance->GetGuidData(DATA_GO_CAVE_IN_LEFT))) instance->HandleGameObject(ObjectGuid::Empty, true, go); NextStep(2000, true); break; case 17: SetEscortPaused(false); Talk(SAY_BLASTMASTER_15); Summon(5); NextStep(0, false); break; case 18: Summon(6); NextStep(0, false); break; case 19: SetInFace(false); Summon(7); Talk(SAY_BLASTMASTER_16); NextStep(0, false); break; case 20: Talk(SAY_BLASTMASTER_18); NextStep(2000, true); break; case 21: Summon(8); NextStep(0, false); break; case 22: CaveDestruction(false); Talk(SAY_BLASTMASTER_11); NextStep(3000, true); break; case 23: Summon(9); Talk(SAY_BLASTMASTER_19); NextStep(0, false); break; } } else uiTimer -= uiDiff; } if (!UpdateVictim()) return; DoMeleeAttackIfReady(); }