diff --git a/src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp b/src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp index 5b2d8b895e..e93700bb74 100644 --- a/src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp +++ b/src/server/scripts/EasternKingdoms/BaradinHold/boss_pit_lord_argaloth.cpp @@ -48,7 +48,7 @@ class boss_pit_lord_argaloth : public CreatureScript struct boss_pit_lord_argalothAI : public BossAI { boss_pit_lord_argalothAI(Creature* creature) : BossAI(creature, DATA_ARGALOTH) { } - + void EnterCombat(Unit* /*who*/) override { _EnterCombat(); @@ -57,9 +57,11 @@ class boss_pit_lord_argaloth : public CreatureScript events.ScheduleEvent(EVENT_CONSUMING_DARKNESS, urand(20 * IN_MILLISECONDS, 25 * IN_MILLISECONDS)); events.ScheduleEvent(EVENT_BERSERK, 5 * MINUTE * IN_MILLISECONDS); } - + void EnterEvadeMode(EvadeReason /*why*/) override { + first_fel_firestorm = false; + second_fel_firestorm = false; me->GetMotionMaster()->MoveTargetedHome(); instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me); _DespawnAtEvade(); @@ -67,9 +69,15 @@ class boss_pit_lord_argaloth : public CreatureScript void DamageTaken(Unit* /*attacker*/, uint32& damage) override { - if (me->HealthBelowPctDamaged(33, damage) || - me->HealthBelowPctDamaged(66, damage)) + if (me->HealthBelowPctDamaged(66) && !first_fel_firestorm) { + first_fel_firestorm = true; + DoCastAOE(SPELL_FEL_FIRESTORM); + } + else + if(me->HealthBelowPctDamaged(33) && !second_fel_firestorm) + { + second_fel_firestorm = true; DoCastAOE(SPELL_FEL_FIRESTORM); } } @@ -112,6 +120,9 @@ class boss_pit_lord_argaloth : public CreatureScript DoMeleeAttackIfReady(); } + private: + bool first_fel_firestorm; + bool second_fel_firestorm; }; CreatureAI* GetAI(Creature* creature) const override