diff options
author | Metalaka <Metalaka@users.noreply.github.com> | 2020-05-14 21:17:00 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2022-01-04 15:33:04 +0100 |
commit | d62886685be9590b7b67c35aea2ac6024039e671 (patch) | |
tree | cd8f4ca575e86022cd0604b6993948af15f65fcd /src | |
parent | 6b49c52f0b35a438c80f4eb0fc191feeca26f511 (diff) |
Core/CreatureAI: Shambling Horror re-cast Enrage as soon as it is not stun (#24618)
(cherry picked from commit e2434e4f4726f9c99f9260607b78ece09b5df249)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
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<uint32>(72259, 74273, 74274, 74275) #define SUMMON_VALKYR RAID_MODE<uint32>(69037, 74361, 69037, 74361) #define HARVEST_SOUL RAID_MODE<uint32>(68980, 74325, 74296, 74297) +#define ENRAGE RAID_MODE<uint32>(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; |