From d62886685be9590b7b67c35aea2ac6024039e671 Mon Sep 17 00:00:00 2001 From: Metalaka Date: Thu, 14 May 2020 21:17:00 +0200 Subject: Core/CreatureAI: Shambling Horror re-cast Enrage as soon as it is not stun (#24618) (cherry picked from commit e2434e4f4726f9c99f9260607b78ece09b5df249) --- .../Northrend/IcecrownCitadel/boss_the_lich_king.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/server/scripts') diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp index 43255d4f35c..54d56a0b884 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -188,6 +188,7 @@ enum Spells #define REMORSELESS_WINTER_2 RAID_MODE(72259, 74273, 74274, 74275) #define SUMMON_VALKYR RAID_MODE(69037, 74361, 69037, 74361) #define HARVEST_SOUL RAID_MODE(68980, 74325, 74296, 74297) +#define ENRAGE RAID_MODE(72143, 72146, 72147, 72148) enum Events { @@ -1342,8 +1343,10 @@ class npc_shambling_horror_icc : public CreatureScript _events.ScheduleEvent(EVENT_SHOCKWAVE, 20s, 25s); break; case EVENT_ENRAGE: - DoCast(me, SPELL_ENRAGE); - _events.ScheduleEvent(EVENT_ENRAGE, 20s, 25s); + if (SPELL_CAST_OK != DoCast(me, SPELL_ENRAGE)) + _events.ScheduleEvent(EVENT_ENRAGE, 1s); + else + _events.ScheduleEvent(EVENT_ENRAGE, 20s, 25s); break; default: break; @@ -1353,6 +1356,15 @@ class npc_shambling_horror_icc : public CreatureScript DoMeleeAttackIfReady(); } + void OnSpellCastInterrupt(SpellInfo const* spell) override + { + ScriptedAI::OnSpellCastInterrupt(spell); + + // When enrage is interrupted, reschedule the event + if (spell->Id == ENRAGE) + _events.RescheduleEvent(EVENT_ENRAGE, 1s); + } + private: EventMap _events; bool _frenzied; -- cgit v1.2.3