aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 808edce56d0..0167e562928 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp
@@ -190,6 +190,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
{
@@ -1365,8 +1366,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;
@@ -1376,6 +1379,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;