aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMetalaka <Metalaka@users.noreply.github.com>2020-05-14 21:17:00 +0200
committerShauren <shauren.trinity@gmail.com>2022-01-04 15:33:04 +0100
commitd62886685be9590b7b67c35aea2ac6024039e671 (patch)
treecd8f4ca575e86022cd0604b6993948af15f65fcd /src
parent6b49c52f0b35a438c80f4eb0fc191feeca26f511 (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.cpp16
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;