Scripts/Naxxramas: Fix Heigan the Unclean eruption event (#20129)

By scheduling the eruption event without cancelling the previously registered eruption events, Heigan's eruption (or dance) would overlap and cause a runaway scenario, where eruptions would not follow a proper timer.

By using Reschedule and not locking the Eruption event to the fighting phase, the dance now works as intended.

(cherry picked from commit 6f4492bc61)
This commit is contained in:
Foereaper
2017-08-20 18:16:23 +02:00
committed by Shauren
parent 3fcb592568
commit 07e903a23d

View File

@@ -122,7 +122,7 @@ public:
events.ScheduleEvent(EVENT_DISRUPT, randtime(Seconds(15), Seconds(20)), 0, PHASE_FIGHT);
events.ScheduleEvent(EVENT_FEVER, randtime(Seconds(10), Seconds(20)), 0, PHASE_FIGHT);
events.ScheduleEvent(EVENT_DANCE, Minutes(1) + Seconds(30), 0, PHASE_FIGHT);
events.ScheduleEvent(EVENT_ERUPT, Seconds(15), 0, PHASE_FIGHT);
events.ScheduleEvent(EVENT_ERUPT, Seconds(15));
_safetyDance = true;
@@ -171,7 +171,7 @@ public:
DoCast(SPELL_TELEPORT_SELF);
DoCastAOE(SPELL_PLAGUE_CLOUD);
events.ScheduleEvent(EVENT_DANCE_END, Seconds(45), 0, PHASE_DANCE);
events.ScheduleEvent(EVENT_ERUPT, Seconds(10));
events.RescheduleEvent(EVENT_ERUPT, Seconds(10));
break;
case EVENT_DANCE_END:
events.SetPhase(PHASE_FIGHT);
@@ -180,7 +180,7 @@ public:
events.ScheduleEvent(EVENT_DISRUPT, randtime(Seconds(10), Seconds(25)), 0, PHASE_FIGHT);
events.ScheduleEvent(EVENT_FEVER, randtime(Seconds(15), Seconds(20)), 0, PHASE_FIGHT);
events.ScheduleEvent(EVENT_DANCE, Minutes(1) + Seconds(30), 0, PHASE_FIGHT);
events.ScheduleEvent(EVENT_ERUPT, Seconds(15), 0, PHASE_FIGHT);
events.RescheduleEvent(EVENT_ERUPT, Seconds(15));
me->CastStop();
me->SetReactState(REACT_AGGRESSIVE);
DoZoneInCombat();