void Reset() override { if (!HasEscortState(STATE_ESCORT_ESCORTING)) { Initialize(); DespawnDwarf(); instance->SetBossState(DATA_TRIBUNAL_OF_AGES, NOT_STARTED); } }
void Reset() override { if (!HasEscortState(STATE_ESCORT_ESCORTING)) { Initialize(); DespawnDwarf(); instance->SetBossState(DATA_BRANN_EVENT, NOT_STARTED); } }
void Reset() { m_bIsFrenzy = false; m_uiChainLightning_Timer = 3000 + rand()%5000; m_uiLightningShield_Timer = 20000 + rand()%5000; m_uiStaticCharge_Timer = 20000 + rand()%5000; m_uiLightningRing_Timer = 30000 + rand()%5000; m_uiSummon_Timer = 5000; m_uiFrenzy_Timer = 300000; DespawnDwarf(); if (m_pInstance) m_pInstance->SetData(TYPE_GRIEF, NOT_STARTED); }
void Reset() { if (!HasEscortState(STATE_ESCORT_ESCORTING)) { bIsLowHP = false; bIsBattle = false; uiStep = 0; uiPhaseTimer = 0; uiControllerGUID = 0; brannSparklinNews = true; DespawnDwarf(); if (instance) instance->SetData(DATA_BRANN_EVENT, NOT_STARTED); } }
void Reset() { if (!HasEscortState(STATE_ESCORT_ESCORTING)) { bIsLowHP = false; bIsBattle = false; bHasBeenDamaged = false; uiStep = 0; uiPhaseTimer = 0; uiControllerGUID = 0; DespawnDwarf(); if (pInstance) pInstance->SetData(DATA_BRANN_EVENT, NOT_STARTED); } }
void JustDied(Unit* /*killer*/) { DespawnDwarf(); if (instance) { if (Creature* pController = Unit::GetCreature((*me), instance->GetData64(DATA_TRIBUNAL_CONTROLLER))) CAST_AI(mob_tribuna_controller::mob_tribuna_controllerAI, pController->AI())->EnterEvadeMode(); 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); } me->SetHomePosition(BrannHome); me->Respawn(); }
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(); }