void UpdateEscortAI(const uint32 uiDiff) { if (uiPhaseTimer <= uiDiff) { switch (uiStep) { case 1: if (instance) { if (instance->GetData(DATA_BRANN_EVENT) != NOT_STARTED) return; instance->SetData(DATA_BRANN_EVENT, IN_PROGRESS); } bIsBattle = false; DoScriptText(SAY_ESCORT_START, me); SetRun(true); JumpToNextStep(0); break; case 3: SetEscortPaused(false); JumpToNextStep(0); break; case 5: if (instance) if (Creature* temp = (Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM)))) DoScriptText(SAY_EVENT_INTRO_3_ABED, temp); JumpToNextStep(8500); break; case 6: DoScriptText(SAY_EVENT_A_1, me); JumpToNextStep(6500); break; case 7: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) DoScriptText(SAY_EVENT_A_2_KADD, temp); JumpToNextStep(12500); break; case 8: DoScriptText(SAY_EVENT_A_3, me); if (instance) instance->HandleGameObject(instance->GetData64(DATA_GO_KADDRAK), true); if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID)) CAST_AI(mob_tribuna_controller::mob_tribuna_controllerAI, temp->AI())->bKaddrakActivated = true; JumpToNextStep(5000); break; case 9: me->SetReactState(REACT_PASSIVE); SpawnDwarf(1); JumpToNextStep(20000); break; case 10: DoScriptText(SAY_EVENT_B_1, me); JumpToNextStep(6000); break; case 11: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) DoScriptText(SAY_EVENT_B_2_MARN, temp); SpawnDwarf(1); JumpToNextStep(20000); break; case 12: DoScriptText(SAY_EVENT_B_3, me); if (instance) instance->HandleGameObject(instance->GetData64(DATA_GO_MARNAK), true); if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID)) CAST_AI(mob_tribuna_controller::mob_tribuna_controllerAI, temp->AI())->bMarnakActivated = true; JumpToNextStep(10000); break; case 13: SpawnDwarf(1); JumpToNextStep(10000); break; case 14: SpawnDwarf(2); JumpToNextStep(20000); break; case 15: DoScriptText(SAY_EVENT_C_1, me); SpawnDwarf(1); JumpToNextStep(10000); break; case 16: SpawnDwarf(2); JumpToNextStep(20000); break; case 17: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_C_2_ABED, temp); SpawnDwarf(1); JumpToNextStep(20000); break; case 18: DoScriptText(SAY_EVENT_C_3, me); if (instance) instance->HandleGameObject(instance->GetData64(DATA_GO_ABEDNEUM), true); if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID)) CAST_AI(mob_tribuna_controller::mob_tribuna_controllerAI, temp->AI())->bAbedneumActivated = true; JumpToNextStep(5000); break; case 19: SpawnDwarf(2); JumpToNextStep(10000); break; case 20: SpawnDwarf(1); JumpToNextStep(15000); break; case 21: DoScriptText(SAY_EVENT_D_1, me); SpawnDwarf(3); JumpToNextStep(20000); break; case 22: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_D_2_ABED, temp); SpawnDwarf(1); JumpToNextStep(5000); break; case 23: SpawnDwarf(2); JumpToNextStep(15000); break; case 24: DoScriptText(SAY_EVENT_D_3, me); SpawnDwarf(3); JumpToNextStep(5000); break; case 25: SpawnDwarf(1); JumpToNextStep(5000); break; case 26: SpawnDwarf(2); JumpToNextStep(10000); break; case 27: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_D_4_ABED, temp); SpawnDwarf(1); JumpToNextStep(10000); break; case 28: me->SetReactState(REACT_DEFENSIVE); DoScriptText(SAY_EVENT_END_01, me); me->SetStandState(UNIT_STAND_STATE_STAND); if (instance) instance->HandleGameObject(instance->GetData64(DATA_GO_SKY_FLOOR), true); if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID)) temp->DealDamage(temp, temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); bIsBattle = true; SetEscortPaused(false); JumpToNextStep(6500); break; case 29: DoScriptText(SAY_EVENT_END_02, me); if (instance) instance->SetData(DATA_BRANN_EVENT, DONE); me->CastSpell(me, SPELL_REWARD_ACHIEVEMENT, true); JumpToNextStep(5500); break; case 30: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_END_03_ABED, temp); JumpToNextStep(8500); break; case 31: DoScriptText(SAY_EVENT_END_04, me); JumpToNextStep(11500); break; case 32: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_END_05_ABED, temp); JumpToNextStep(11500); break; case 33: DoScriptText(SAY_EVENT_END_06, me); JumpToNextStep(4500); break; case 34: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_END_07_ABED, temp); JumpToNextStep(22500); break; case 35: DoScriptText(SAY_EVENT_END_08, me); JumpToNextStep(7500); break; case 36: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) DoScriptText(SAY_EVENT_END_09_KADD, temp); JumpToNextStep(18500); break; case 37: DoScriptText(SAY_EVENT_END_10, me); JumpToNextStep(5500); break; case 38: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) DoScriptText(SAY_EVENT_END_11_KADD, temp); JumpToNextStep(20500); break; case 39: DoScriptText(SAY_EVENT_END_12, me); JumpToNextStep(2500); break; case 40: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) DoScriptText(SAY_EVENT_END_13_KADD, temp); JumpToNextStep(19500); break; case 41: DoScriptText(SAY_EVENT_END_14, me); JumpToNextStep(10500); break; case 42: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) DoScriptText(SAY_EVENT_END_15_MARN, temp); JumpToNextStep(6500); break; case 43: DoScriptText(SAY_EVENT_END_16, me); JumpToNextStep(6500); break; case 44: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) DoScriptText(SAY_EVENT_END_17_MARN, temp); JumpToNextStep(25500); break; case 45: DoScriptText(SAY_EVENT_END_18, me); JumpToNextStep(23500); break; case 46: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) DoScriptText(SAY_EVENT_END_19_MARN, temp); JumpToNextStep(3500); break; case 47: DoScriptText(SAY_EVENT_END_20, me); JumpToNextStep(8500); break; case 48: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_END_21_ABED, temp); JumpToNextStep(5500); break; case 49: { if (instance) { instance->HandleGameObject(instance->GetData64(DATA_GO_KADDRAK), false); instance->HandleGameObject(instance->GetData64(DATA_GO_MARNAK), false); instance->HandleGameObject(instance->GetData64(DATA_GO_ABEDNEUM), false); instance->HandleGameObject(instance->GetData64(DATA_GO_SKY_FLOOR), false); } Player* player = GetPlayerForEscort(); if (player) player->GroupEventHappens(QUEST_HALLS_OF_STONE, me); me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); JumpToNextStep(180000); break; } case 50: SetEscortPaused(false); break; } } else uiPhaseTimer -= uiDiff; if (!bIsLowHP && HealthBelowPct(30)) { DoScriptText(SAY_LOW_HEALTH, me); bIsLowHP = true; } else if (bIsLowHP && !HealthBelowPct(30)) bIsLowHP = false; if (!UpdateVictim()) return; DoMeleeAttackIfReady(); }
void UpdateEscortAI(const uint32 uiDiff) override { if (m_uiPhaseTimer && m_uiPhaseTimer <= uiDiff) { switch (m_uiStep) { // Begin Event case 0: // TODO, this is wrong, must be "using or similar" m_creature->SetStandState(UNIT_STAND_STATE_KNEEL); m_uiPhaseTimer = 1500; break; case 1: DoScriptText(SAY_EVENT_INTRO_2, m_creature); m_uiPhaseTimer = 2500; break; case 2: if (m_pInstance) m_pInstance->DoUseDoorOrButton(GO_TRIBUNAL_CONSOLE); m_uiPhaseTimer = 6500; break; case 3: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_INTRO_3_ABED); m_uiPhaseTimer = 8500; break; // Activate Kaddrak case 4: DoScriptText(SAY_EVENT_A_1, m_creature); m_uiPhaseTimer = 6500; break; case 5: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_KADDRAK, SAY_EVENT_A_2_KADD); m_uiPhaseTimer = 12500; break; case 6: DoScriptText(SAY_EVENT_A_3, m_creature); m_uiPhaseTimer = 6000; break; case 7: if (m_pInstance) m_pInstance->ActivateFace(FACE_KADDRAK, false); m_uiPhaseTimer = 5000; break; case 8: SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 20000; break; // Activate Marnak case 9: DoScriptText(SAY_EVENT_B_1, m_creature); m_uiPhaseTimer = 6000; break; case 10: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_MARNAK, SAY_EVENT_B_2_MARN); SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 20000; break; case 11: DoScriptText(SAY_EVENT_B_3, m_creature); m_uiPhaseTimer = 5000; break; case 12: if (m_pInstance) m_pInstance->ActivateFace(FACE_MARNAK, false); m_uiPhaseTimer = 10000; break; case 13: SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 10000; break; case 14: SpawnDwarf(NPC_DARK_RUNE_STORMCALLER); m_uiPhaseTimer = (20000); break; case 15: DoScriptText(SAY_EVENT_C_1, m_creature); SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 10000; break; case 16: SpawnDwarf(NPC_DARK_RUNE_STORMCALLER); m_uiPhaseTimer = 20000; break; // Activate Abedneum case 17: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_C_2_ABED); SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 20000; break; case 18: DoScriptText(SAY_EVENT_C_3, m_creature); m_uiPhaseTimer = 5000; break; case 19: if (m_pInstance) m_pInstance->ActivateFace(FACE_ABEDNEUM, false); m_uiPhaseTimer = 5000; break; case 20: SpawnDwarf(NPC_DARK_RUNE_STORMCALLER); m_uiPhaseTimer = 10000; break; case 21: SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 15000; break; case 22: DoScriptText(SAY_EVENT_D_1, m_creature); SpawnDwarf(NPC_IRON_GOLEM_CUSTODIAN); m_uiPhaseTimer = 20000; break; case 23: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_D_2_ABED); SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 5000; break; case 24: SpawnDwarf(NPC_DARK_RUNE_STORMCALLER); m_uiPhaseTimer = 15000; break; case 25: DoScriptText(SAY_EVENT_D_3, m_creature); SpawnDwarf(NPC_IRON_GOLEM_CUSTODIAN); m_uiPhaseTimer = 5000; break; case 26: SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 5000; break; case 27: SpawnDwarf(NPC_DARK_RUNE_STORMCALLER); m_uiPhaseTimer = 10000; break; case 28: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_D_4_ABED); SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 10000; break; // End Event case 29: DoScriptText(SAY_EVENT_END_01, m_creature); m_creature->SetStandState(UNIT_STAND_STATE_STAND);// TODO TODO if (m_pInstance) m_pInstance->SetData(TYPE_TRIBUNAL, SPECIAL); // Kill remaining npcs // ToDo: the loot and the achiev should be triggered at this point // Brann should get the gossip option "There will be plenty of time for this later Brann, we need to get moving!" // This will allow Brann to continue the escort to the last encounter // When reaching the last door he has the gossip "We're with you Brann! Open it!" SetEscortPaused(false); m_uiPhaseTimer = 3000; // break; // case 30: if (m_pInstance) m_pInstance->ActivateFace(FACE_ABEDNEUM, true); m_uiPhaseTimer = 0; break; case 30: DoScriptText(SAY_EVENT_END_02, m_creature); m_uiPhaseTimer = 5500; break; case 31: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_END_03_ABED); m_uiPhaseTimer = 8500; break; case 32: DoScriptText(SAY_EVENT_END_04, m_creature); m_uiPhaseTimer = 11500; break; case 33: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_END_05_ABED); m_uiPhaseTimer = 11500; break; case 34: DoScriptText(SAY_EVENT_END_06, m_creature); m_uiPhaseTimer = 4500; break; case 35: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_END_07_ABED); m_uiPhaseTimer = 22500; break; case 36: DoScriptText(SAY_EVENT_END_08, m_creature); m_uiPhaseTimer = 7500; break; case 37: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_KADDRAK, SAY_EVENT_END_09_KADD); m_uiPhaseTimer = 18500; break; case 38: DoScriptText(SAY_EVENT_END_10, m_creature); m_uiPhaseTimer = 5500; break; case 39: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_KADDRAK, SAY_EVENT_END_11_KADD); m_uiPhaseTimer = 20500; break; case 40: DoScriptText(SAY_EVENT_END_12, m_creature); m_uiPhaseTimer = 2500; break; case 41: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_KADDRAK, SAY_EVENT_END_13_KADD); m_uiPhaseTimer = 19500; break; case 42: DoScriptText(SAY_EVENT_END_14, m_creature); m_uiPhaseTimer = 10500; break; case 43: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_MARNAK, SAY_EVENT_END_15_MARN); m_uiPhaseTimer = 6500; break; case 44: DoScriptText(SAY_EVENT_END_16, m_creature); m_uiPhaseTimer = 6500; break; case 45: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_MARNAK, SAY_EVENT_END_17_MARN); m_uiPhaseTimer = 25500; break; case 46: DoScriptText(SAY_EVENT_END_18, m_creature); m_uiPhaseTimer = 23500; break; case 47: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_MARNAK, SAY_EVENT_END_19_MARN); m_uiPhaseTimer = 3500; break; case 48: DoScriptText(SAY_EVENT_END_20, m_creature); m_uiPhaseTimer = 8500; break; case 49: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_END_21_ABED); m_uiPhaseTimer = 5500; break; case 50: { if (m_pInstance) { m_pInstance->DoUseDoorOrButton(GO_TRIBUNAL_FLOOR); m_pInstance->SetData(TYPE_TRIBUNAL, DONE); } Player* pPlayer = GetPlayerForEscort(); if (pPlayer) pPlayer->GroupEventHappens(QUEST_HALLS_OF_STONE, m_creature); m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); m_uiPhaseTimer = 180000; break; } case 51: SetEscortPaused(false); break; } ++m_uiStep; } else if (m_uiPhaseTimer) m_uiPhaseTimer -= uiDiff; if (!m_bIsLowHP && m_creature->GetHealthPercent() < 30) { DoScriptText(SAY_LOW_HEALTH, m_creature); m_bIsLowHP = true; } else if (m_bIsLowHP && m_creature->GetHealthPercent() > 30) m_bIsLowHP = false; // No Combat abilities needed here if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) return; }
void UpdateEscortAI(const uint32 uiDiff) { if (m_uiPhaseTimer && m_uiPhaseTimer <= uiDiff) { switch (m_uiStep) { // Begin Event case 0: // TODO, this is wrong, must be "using or similar" m_creature->SetStandState(UNIT_STAND_STATE_KNEEL); m_uiPhaseTimer = 1500; break; case 1: DoScriptText(SAY_EVENT_INTRO_2, m_creature); m_uiPhaseTimer = 2500; break; case 2: if (m_pInstance) m_pInstance->DoUseDoorOrButton(GO_TRIBUNAL_CONSOLE); m_uiPhaseTimer = 6500; break; case 3: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_INTRO_3_ABED); m_uiPhaseTimer = 8500; break; // Activate Kaddrak case 4: DoScriptText(SAY_EVENT_A_1, m_creature); m_uiPhaseTimer = 6500; break; case 5: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_KADDRAK, SAY_EVENT_A_2_KADD); m_uiPhaseTimer = 12500; break; case 6: DoScriptText(SAY_EVENT_A_3, m_creature); m_uiPhaseTimer = 6000; break; case 7: if (m_pInstance) m_pInstance->ActivateFace(FACE_KADDRAK, false); m_uiPhaseTimer = 5000; break; case 8: SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 20000; break; // Activate Marnak case 9: DoScriptText(SAY_EVENT_B_1, m_creature); m_uiPhaseTimer = 6000; break; case 10: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_MARNAK, SAY_EVENT_B_2_MARN); SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 20000; break; case 11: DoScriptText(SAY_EVENT_B_3, m_creature); m_uiPhaseTimer = 5000; break; case 12: if (m_pInstance) m_pInstance->ActivateFace(FACE_MARNAK, false); m_uiPhaseTimer = 10000; break; case 13: SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 10000; break; case 14: SpawnDwarf(NPC_DARK_RUNE_STORMCALLER); m_uiPhaseTimer = (20000); break; case 15: DoScriptText(SAY_EVENT_C_1, m_creature); SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 10000; break; case 16: SpawnDwarf(NPC_DARK_RUNE_STORMCALLER); m_uiPhaseTimer = 20000; break; // Activate Abedneum case 17: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_C_2_ABED); SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 20000; break; case 18: DoScriptText(SAY_EVENT_C_3, m_creature); m_uiPhaseTimer = 5000; break; case 19: if (m_pInstance) m_pInstance->ActivateFace(FACE_ABEDNEUM, false); m_uiPhaseTimer = 5000; break; case 20: SpawnDwarf(NPC_DARK_RUNE_STORMCALLER); m_uiPhaseTimer = 10000; break; case 21: SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 15000; break; case 22: DoScriptText(SAY_EVENT_D_1, m_creature); SpawnDwarf(NPC_IRON_GOLEM_CUSTODIAN); m_uiPhaseTimer = 20000; break; case 23: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_D_2_ABED); SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 5000; break; case 24: SpawnDwarf(NPC_DARK_RUNE_STORMCALLER); m_uiPhaseTimer = 15000; break; case 25: DoScriptText(SAY_EVENT_D_3, m_creature); SpawnDwarf(NPC_IRON_GOLEM_CUSTODIAN); m_uiPhaseTimer = 5000; break; case 26: SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 5000; break; case 27: SpawnDwarf(NPC_DARK_RUNE_STORMCALLER); m_uiPhaseTimer = 10000; break; case 28: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_D_4_ABED); SpawnDwarf(NPC_DARK_RUNE_PROTECTOR); m_uiPhaseTimer = 10000; break; // End Event case 29: DoScriptText(SAY_EVENT_END_01, m_creature); m_creature->SetStandState(UNIT_STAND_STATE_STAND);// TODO TODO if (m_pInstance) m_pInstance->SetData(TYPE_TRIBUNAL, SPECIAL); // Kill remaining npcs SetEscortPaused(false); m_uiPhaseTimer = 3000; // break; // case 30: if (m_pInstance) m_pInstance->ActivateFace(FACE_ABEDNEUM, true); m_uiPhaseTimer = 0; break; case 30: DoScriptText(SAY_EVENT_END_02, m_creature); m_uiPhaseTimer = 5500; break; case 31: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_END_03_ABED); m_uiPhaseTimer = 8500; break; case 32: DoScriptText(SAY_EVENT_END_04, m_creature); m_uiPhaseTimer = 11500; break; case 33: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_END_05_ABED); m_uiPhaseTimer = 11500; break; case 34: DoScriptText(SAY_EVENT_END_06, m_creature); m_uiPhaseTimer = 4500; break; case 35: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_END_07_ABED); m_uiPhaseTimer = 22500; break; case 36: DoScriptText(SAY_EVENT_END_08, m_creature); m_uiPhaseTimer = 7500; break; case 37: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_KADDRAK, SAY_EVENT_END_09_KADD); m_uiPhaseTimer = 18500; break; case 38: DoScriptText(SAY_EVENT_END_10, m_creature); m_uiPhaseTimer = 5500; break; case 39: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_KADDRAK, SAY_EVENT_END_11_KADD); m_uiPhaseTimer = 20500; break; case 40: DoScriptText(SAY_EVENT_END_12, m_creature); m_uiPhaseTimer = 2500; break; case 41: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_KADDRAK, SAY_EVENT_END_13_KADD); m_uiPhaseTimer = 19500; break; case 42: DoScriptText(SAY_EVENT_END_14, m_creature); m_uiPhaseTimer = 10500; break; case 43: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_MARNAK, SAY_EVENT_END_15_MARN); m_uiPhaseTimer = 6500; break; case 44: DoScriptText(SAY_EVENT_END_16, m_creature); m_uiPhaseTimer = 6500; break; case 45: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_MARNAK, SAY_EVENT_END_17_MARN); m_uiPhaseTimer = 25500; break; case 46: DoScriptText(SAY_EVENT_END_18, m_creature); m_uiPhaseTimer = 23500; break; case 47: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_MARNAK, SAY_EVENT_END_19_MARN); m_uiPhaseTimer = 3500; break; case 48: DoScriptText(SAY_EVENT_END_20, m_creature); m_uiPhaseTimer = 8500; break; case 49: if (m_pInstance) m_pInstance->DoFaceSpeak(FACE_ABEDNEUM, SAY_EVENT_END_21_ABED); m_uiPhaseTimer = 5500; break; case 50: { if (m_pInstance) { m_pInstance->DoUseDoorOrButton(GO_TRIBUNAL_FLOOR); m_pInstance->SetData(TYPE_TRIBUNAL, DONE); } // Should cast spell 59046 (doesn't exist in client dbc), criterias are ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET Player* pPlayer = GetPlayerForEscort(); if (pPlayer) pPlayer->GroupEventHappens(QUEST_HALLS_OF_STONE, m_creature); DoCastSpellIfCan(m_creature, SPELL_ACHIEVEMENT_CHECK, CAST_TRIGGERED); m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); m_uiPhaseTimer = 180000; break; } case 51: SetEscortPaused(false); break; } ++m_uiStep; } else if (m_uiPhaseTimer) m_uiPhaseTimer -= uiDiff; if (!m_bIsLowHP && m_creature->GetHealthPercent() < 30) { DoScriptText(SAY_LOW_HEALTH, m_creature); m_bIsLowHP = true; } else if (m_bIsLowHP && m_creature->GetHealthPercent() > 30) m_bIsLowHP = false; // No Combat abilities needed here if (!m_creature->SelectHostileTarget() || !m_creature->getVictim()) return; }
void UpdateEscortAI(const uint32 uiDiff) { if (uiPhaseTimer <= uiDiff) { switch (uiStep) { case 1: if (pInstance) { if (pInstance->GetData(DATA_BRANN_EVENT) != NOT_STARTED) return; pInstance->SetData(DATA_BRANN_EVENT, IN_PROGRESS); } bIsBattle = false; DoScriptText(SAY_ESCORT_START, m_creature); SetRun(true); JumpToNextStep(0); break; case 3: SetEscortPaused(false); JumpToNextStep(0); break; case 5: if (pInstance) if (Creature* pTemp = (Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_ABEDNEUM)))) DoScriptText(SAY_EVENT_INTRO_3_ABED, pTemp); JumpToNextStep(8500); break; case 6: DoScriptText(SAY_EVENT_A_1, m_creature); JumpToNextStep(6500); break; case 7: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_KADDRAK))) DoScriptText(SAY_EVENT_A_2_KADD, pTemp); JumpToNextStep(12500); break; case 8: DoScriptText(SAY_EVENT_A_3, m_creature); if (pInstance) pInstance->HandleGameObject(pInstance->GetData64(DATA_GO_KADDRAK),true); if (Creature* pTemp = Unit::GetCreature(*m_creature, uiControllerGUID)) CAST_AI(mob_tribuna_controllerAI, pTemp->AI())->bKaddrakActivated = true; JumpToNextStep(5000); break; case 9: m_creature->SetReactState(REACT_PASSIVE); SpawnDwarf(1); JumpToNextStep(20000); break; case 10: DoScriptText(SAY_EVENT_B_1, m_creature); JumpToNextStep(6000); break; case 11: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_MARNAK))) DoScriptText(SAY_EVENT_B_2_MARN, pTemp); SpawnDwarf(1); JumpToNextStep(20000); break; case 12: DoScriptText(SAY_EVENT_B_3, m_creature); if (pInstance) pInstance->HandleGameObject(pInstance->GetData64(DATA_GO_MARNAK),true); if (Creature* pTemp = Unit::GetCreature(*m_creature, uiControllerGUID)) CAST_AI(mob_tribuna_controllerAI, pTemp->AI())->bMarnakActivated = true; JumpToNextStep(10000); break; case 13: SpawnDwarf(1); JumpToNextStep(10000); break; case 14: SpawnDwarf(2); JumpToNextStep(20000); break; case 15: DoScriptText(SAY_EVENT_C_1, m_creature); SpawnDwarf(1); JumpToNextStep(10000); break; case 16: SpawnDwarf(2); JumpToNextStep(20000); break; case 17: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_C_2_ABED, pTemp); SpawnDwarf(1); JumpToNextStep(20000); break; case 18: DoScriptText(SAY_EVENT_C_3, m_creature); if (pInstance) pInstance->HandleGameObject(pInstance->GetData64(DATA_GO_ABEDNEUM),true); if (Creature* pTemp = Unit::GetCreature(*m_creature, uiControllerGUID)) CAST_AI(mob_tribuna_controllerAI, pTemp->AI())->bAbedneumActivated = true; JumpToNextStep(5000); break; case 19: SpawnDwarf(2); JumpToNextStep(10000); break; case 20: SpawnDwarf(1); JumpToNextStep(15000); break; case 21: DoScriptText(SAY_EVENT_D_1, m_creature); SpawnDwarf(3); JumpToNextStep(20000); break; case 22: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_D_2_ABED, pTemp); SpawnDwarf(1); JumpToNextStep(5000); break; case 23: SpawnDwarf(2); JumpToNextStep(15000); break; case 24: DoScriptText(SAY_EVENT_D_3, m_creature); SpawnDwarf(3); JumpToNextStep(5000); break; case 25: SpawnDwarf(1); JumpToNextStep(5000); break; case 26: SpawnDwarf(2); JumpToNextStep(10000); break; case 27: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_D_4_ABED, pTemp); SpawnDwarf(1); JumpToNextStep(10000); break; case 28: m_creature->SetReactState(REACT_DEFENSIVE); DoScriptText(SAY_EVENT_END_01, m_creature); m_creature->SetStandState(UNIT_STAND_STATE_STAND); if (pInstance) pInstance->HandleGameObject(pInstance->GetData64(DATA_GO_SKY_FLOOR),true); if (Creature* pTemp = Unit::GetCreature(*m_creature, uiControllerGUID)) pTemp->DealDamage(pTemp, pTemp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); bIsBattle = true; SetEscortPaused(false); JumpToNextStep(6500); break; case 29: DoScriptText(SAY_EVENT_END_02, m_creature); if (pInstance) { pInstance->SetData(DATA_BRANN_EVENT, DONE); // Achievement criteria is with spell 59046 which does not exist. // There is thus no way it can be given by casting the spell on the players. pInstance->DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, 59046); if (!bHasBeenDamaged) pInstance->DoCompleteAchievement(ACHIEV_BRANN_SPANKIN_NEW); } JumpToNextStep(5500); break; case 30: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_END_03_ABED, pTemp); JumpToNextStep(8500); break; case 31: DoScriptText(SAY_EVENT_END_04, m_creature); JumpToNextStep(11500); break; case 32: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_END_05_ABED, pTemp); JumpToNextStep(11500); break; case 33: DoScriptText(SAY_EVENT_END_06, m_creature); JumpToNextStep(4500); break; case 34: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_END_07_ABED, pTemp); JumpToNextStep(22500); break; case 35: DoScriptText(SAY_EVENT_END_08, m_creature); JumpToNextStep(7500); break; case 36: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_KADDRAK))) DoScriptText(SAY_EVENT_END_09_KADD, pTemp); JumpToNextStep(18500); break; case 37: DoScriptText(SAY_EVENT_END_10, m_creature); JumpToNextStep(5500); break; case 38: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_KADDRAK))) DoScriptText(SAY_EVENT_END_11_KADD, pTemp); JumpToNextStep(20500); break; case 39: DoScriptText(SAY_EVENT_END_12, m_creature); JumpToNextStep(2500); break; case 40: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_KADDRAK))) DoScriptText(SAY_EVENT_END_13_KADD, pTemp); JumpToNextStep(19500); break; case 41: DoScriptText(SAY_EVENT_END_14, m_creature); JumpToNextStep(10500); break; case 42: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_MARNAK))) DoScriptText(SAY_EVENT_END_15_MARN, pTemp); JumpToNextStep(6500); break; case 43: DoScriptText(SAY_EVENT_END_16, m_creature); JumpToNextStep(6500); break; case 44: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_MARNAK))) DoScriptText(SAY_EVENT_END_17_MARN, pTemp); JumpToNextStep(25500); break; case 45: DoScriptText(SAY_EVENT_END_18, m_creature); JumpToNextStep(23500); break; case 46: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_MARNAK))) DoScriptText(SAY_EVENT_END_19_MARN, pTemp); JumpToNextStep(3500); break; case 47: DoScriptText(SAY_EVENT_END_20, m_creature); JumpToNextStep(8500); break; case 48: if (pInstance) if (Creature* pTemp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_END_21_ABED, pTemp); JumpToNextStep(5500); break; case 49: { if (pInstance) { pInstance->HandleGameObject(pInstance->GetData64(DATA_GO_KADDRAK),false); pInstance->HandleGameObject(pInstance->GetData64(DATA_GO_MARNAK),false); pInstance->HandleGameObject(pInstance->GetData64(DATA_GO_ABEDNEUM),false); pInstance->HandleGameObject(pInstance->GetData64(DATA_GO_SKY_FLOOR),false); } Player* pPlayer = GetPlayerForEscort(); if (pPlayer) pPlayer->GroupEventHappens(QUEST_HALLS_OF_STONE, m_creature); m_creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); JumpToNextStep(180000); break; } case 50: SetEscortPaused(false); break; } } else uiPhaseTimer -= uiDiff; if (!bIsLowHP && HealthBelowPct(30)) { DoScriptText(SAY_LOW_HEALTH, m_creature); bIsLowHP = true; } else if (bIsLowHP && !HealthBelowPct(30)) bIsLowHP = false; if (!UpdateVictim()) return; DoMeleeAttackIfReady(); }
void UpdateEscortAI(const uint32 uiDiff) { if (uiPhaseTimer <= uiDiff) { switch (uiStep) { case 1: if (instance) { if (instance->GetData(DATA_BRANN_EVENT) != NOT_STARTED) return; instance->SetData(DATA_BRANN_EVENT, IN_PROGRESS); } bIsBattle = false; DoScriptText(SAY_ESCORT_START, me); SetRun(true); JumpToNextStep(0); break; case 3: SetEscortPaused(false); JumpToNextStep(0); break; case 5: if (instance) if (Creature* temp = (Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM)))) DoScriptText(SAY_EVENT_INTRO_3_ABED, temp); JumpToNextStep(8500); break; case 6: DoScriptText(SAY_EVENT_A_1, me); JumpToNextStep(6500); break; case 7: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) DoScriptText(SAY_EVENT_A_2_KADD, temp); JumpToNextStep(12500); break; case 8: DoScriptText(SAY_EVENT_A_3, me); if (instance) if (GameObject* goKaddrak = instance->instance->GetGameObject(instance->GetData64(DATA_GO_KADDRAK))) { goKaddrak->SetGoAnimProgress(0); goKaddrak->SendCustomAnim(goKaddrak->GetGoAnimProgress()); } if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID)) CAST_AI(mob_tribuna_controller::mob_tribuna_controllerAI, temp->AI())->bKaddrakActivated = true; JumpToNextStep(5000); break; case 9: me->SetReactState(REACT_PASSIVE); SpawnDwarf(1); JumpToNextStep(20000); break; case 10: DoScriptText(SAY_EVENT_B_1, me); JumpToNextStep(6000); break; case 11: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) DoScriptText(SAY_EVENT_B_2_MARN, temp); SpawnDwarf(1); JumpToNextStep(20000); break; case 12: DoScriptText(SAY_EVENT_B_3, me); if (instance) if (GameObject* goMarnak = instance->instance->GetGameObject(instance->GetData64(DATA_GO_MARNAK))) { goMarnak->SetGoAnimProgress(0); goMarnak->SendCustomAnim(goMarnak->GetGoAnimProgress()); } if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID)) CAST_AI(mob_tribuna_controller::mob_tribuna_controllerAI, temp->AI())->bMarnakActivated = true; JumpToNextStep(10000); break; case 13: SpawnDwarf(1); JumpToNextStep(10000); break; case 14: SpawnDwarf(2); JumpToNextStep(20000); break; case 15: DoScriptText(SAY_EVENT_C_1, me); SpawnDwarf(1); JumpToNextStep(10000); break; case 16: SpawnDwarf(2); JumpToNextStep(20000); break; case 17: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_C_2_ABED, temp); SpawnDwarf(1); JumpToNextStep(20000); break; case 18: DoScriptText(SAY_EVENT_C_3, me); if (instance) if (GameObject* goAbedneum = instance->instance->GetGameObject(instance->GetData64(DATA_GO_ABEDNEUM))) { goAbedneum->SetGoAnimProgress(0); goAbedneum->SendCustomAnim(goAbedneum->GetGoAnimProgress()); } if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID)) CAST_AI(mob_tribuna_controller::mob_tribuna_controllerAI, temp->AI())->bAbedneumActivated = true; JumpToNextStep(5000); break; case 19: SpawnDwarf(2); JumpToNextStep(10000); break; case 20: SpawnDwarf(1); JumpToNextStep(15000); break; case 21: DoScriptText(SAY_EVENT_D_1, me); SpawnDwarf(3); JumpToNextStep(20000); break; case 22: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_D_2_ABED, temp); SpawnDwarf(1); JumpToNextStep(5000); break; case 23: SpawnDwarf(2); JumpToNextStep(15000); break; case 24: DoScriptText(SAY_EVENT_D_3, me); SpawnDwarf(3); JumpToNextStep(5000); break; case 25: SpawnDwarf(1); JumpToNextStep(5000); break; case 26: SpawnDwarf(2); JumpToNextStep(10000); break; case 27: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_D_4_ABED, temp); SpawnDwarf(1); JumpToNextStep(10000); break; case 28: me->SetReactState(REACT_DEFENSIVE); DoScriptText(SAY_EVENT_END_01, me); me->SetStandState(UNIT_STAND_STATE_STAND); DespawnDwarf(); if (instance) { instance->HandleGameObject(instance->GetData64(DATA_GO_SKY_FLOOR), true); instance->HandleGameObject(instance->GetData64(DATA_GO_KADDRAK), true); instance->HandleGameObject(instance->GetData64(DATA_GO_MARNAK), true); instance->HandleGameObject(instance->GetData64(DATA_GO_ABEDNEUM), true); } if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID)) { CAST_AI(mob_tribuna_controller::mob_tribuna_controllerAI, temp->AI())->activatedByBrann = false; temp->DealDamage(temp, temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); } bIsBattle = true; SetEscortPaused(false); JumpToNextStep(6500); break; case 29: { DoScriptText(SAY_EVENT_END_02, me); if (instance) { instance->SetData(DATA_BRANN_EVENT, DONE); // Achievement criteria is with spell 59046 which does not exist. // There is thus no way it can be given by casting the spell on the players. instance->UpdateEncounterState(ENCOUNTER_CREDIT_CAST_SPELL, 59046, me); } me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); me->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER); Player* player = GetPlayerForEscort(); if (player) player->GroupEventHappens(QUEST_HALLS_OF_STONE, me); JumpToNextStep(5500); break; } case 30: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_END_03_ABED, temp); JumpToNextStep(8500); break; case 31: DoScriptText(SAY_EVENT_END_04, me); JumpToNextStep(11500); break; case 32: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_END_05_ABED, temp); JumpToNextStep(11500); break; case 33: DoScriptText(SAY_EVENT_END_06, me); JumpToNextStep(4500); break; case 34: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_END_07_ABED, temp); JumpToNextStep(22500); break; case 35: DoScriptText(SAY_EVENT_END_08, me); JumpToNextStep(7500); break; case 36: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) DoScriptText(SAY_EVENT_END_09_KADD, temp); JumpToNextStep(18500); break; case 37: DoScriptText(SAY_EVENT_END_10, me); JumpToNextStep(5500); break; case 38: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) DoScriptText(SAY_EVENT_END_11_KADD, temp); JumpToNextStep(20500); break; case 39: DoScriptText(SAY_EVENT_END_12, me); JumpToNextStep(2500); break; case 40: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) DoScriptText(SAY_EVENT_END_13_KADD, temp); JumpToNextStep(19500); break; case 41: DoScriptText(SAY_EVENT_END_14, me); JumpToNextStep(10500); break; case 42: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) DoScriptText(SAY_EVENT_END_15_MARN, temp); JumpToNextStep(6500); break; case 43: DoScriptText(SAY_EVENT_END_16, me); JumpToNextStep(6500); break; case 44: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) DoScriptText(SAY_EVENT_END_17_MARN, temp); JumpToNextStep(25500); break; case 45: DoScriptText(SAY_EVENT_END_18, me); JumpToNextStep(23500); break; case 46: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) DoScriptText(SAY_EVENT_END_19_MARN, temp); JumpToNextStep(3500); break; case 47: DoScriptText(SAY_EVENT_END_20, me); JumpToNextStep(8500); break; case 48: if (instance) if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) DoScriptText(SAY_EVENT_END_21_ABED, temp); JumpToNextStep(5500); break; case 49: { if (instance) { instance->HandleGameObject(instance->GetData64(DATA_GO_TRIBUNAL_CONSOLE), false); instance->HandleGameObject(instance->GetData64(DATA_GO_KADDRAK), false); instance->HandleGameObject(instance->GetData64(DATA_GO_MARNAK), false); instance->HandleGameObject(instance->GetData64(DATA_GO_ABEDNEUM), false); instance->HandleGameObject(instance->GetData64(DATA_GO_SKY_FLOOR), false); } JumpToNextStep(180000); break; } case 50: SetEscortPaused(false); break; } } else uiPhaseTimer -= uiDiff; if (!bIsLowHP && HealthBelowPct(30)) { DoScriptText(SAY_LOW_HEALTH, me); bIsLowHP = true; } else if (bIsLowHP && !HealthBelowPct(30)) bIsLowHP = false; if (!UpdateVictim()) return; DoMeleeAttackIfReady(); }