diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp index 14728976600..a92056767e3 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp @@ -212,6 +212,12 @@ class boss_xt002 : public CreatureScript instance->DoStopCriteriaTimer(CRITERIA_TIMED_TYPE_EVENT, ACHIEV_MUST_DECONSTRUCT_FASTER); } + void EnterEvadeMode(EvadeReason /*why*/) override + { + summons.DespawnAll(); + _DespawnAtEvade(); + } + void EnterCombat(Unit* /*who*/) override { Talk(SAY_AGGRO); @@ -448,24 +454,17 @@ class npc_xt002_heart : public CreatureScript public: npc_xt002_heart() : CreatureScript("npc_xt002_heart") { } - struct npc_xt002_heartAI : public ScriptedAI + struct npc_xt002_heartAI : public NullCreatureAI { - npc_xt002_heartAI(Creature* creature) : ScriptedAI(creature), - _instance(creature->GetInstanceScript()) - { - SetCombatMovement(false); - } - - void UpdateAI(uint32 /*diff*/) override { } + npc_xt002_heartAI(Creature* creature) : NullCreatureAI(creature), _instance(creature->GetInstanceScript()) { } void JustDied(Unit* /*killer*/) override { - Creature* xt002 = _instance ? ObjectAccessor::GetCreature(*me, _instance->GetGuidData(BOSS_XT002)) : nullptr; - if (!xt002 || !xt002->AI()) - return; - - xt002->AI()->SetData(DATA_TRANSFERED_HEALTH, me->GetHealth()); - xt002->AI()->DoAction(ACTION_ENTER_HARD_MODE); + if (Creature* xt002 = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(BOSS_XT002))) + { + xt002->AI()->SetData(DATA_TRANSFERED_HEALTH, me->GetHealth()); + xt002->AI()->DoAction(ACTION_ENTER_HARD_MODE); + } } private: |