From d5b9825c649e2c54af223fd84fdc4542aecaccf4 Mon Sep 17 00:00:00 2001 From: lee1991 Date: Sat, 11 Feb 2017 18:36:49 +0000 Subject: [PATCH] Noth will now cast curse when he teleports back to the ground closes issue #370 --- src/scripts/Northrend/Naxxramas/boss_noth.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/scripts/Northrend/Naxxramas/boss_noth.cpp b/src/scripts/Northrend/Naxxramas/boss_noth.cpp index fa60e3328..5d8d399f4 100644 --- a/src/scripts/Northrend/Naxxramas/boss_noth.cpp +++ b/src/scripts/Northrend/Naxxramas/boss_noth.cpp @@ -76,16 +76,16 @@ public: InstanceScript* pInstance; EventMap events; SummonList summons; - uint8 totalPhase; void StartGroundPhase() { me->SetReactState(REACT_AGGRESSIVE); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_DISABLE_MOVE); me->SetControlled(false, UNIT_STATE_ROOT); + events.SetPhase(0); events.Reset(); - events.ScheduleEvent(EVENT_MOVE_TO_BALCONY, (totalPhase < 2 ? 110000 : (110000 / totalPhase))); + events.ScheduleEvent(EVENT_MOVE_TO_BALCONY, 110000); events.ScheduleEvent(EVENT_SPELL_CURSE, 15000); events.ScheduleEvent(EVENT_SUMMON_PLAGUED_WARRIOR_ANNOUNCE, 25000); if (Is25ManRaid()) @@ -98,7 +98,7 @@ public: me->AttackStop(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE |UNIT_FLAG_DISABLE_MOVE); me->SetControlled(true, UNIT_STATE_ROOT); - + events.SetPhase(1); events.Reset(); events.ScheduleEvent(EVENT_BALCONY_SUMMON_ANNOUNCE, 4000); events.ScheduleEvent(EVENT_MOVE_TO_GROUND, 70000); @@ -127,7 +127,7 @@ public: summons.DespawnAll(); me->SetControlled(false, UNIT_STATE_ROOT); me->SetReactState(REACT_AGGRESSIVE); - totalPhase = 0; + events.SetPhase(0); if (pInstance) pInstance->SetData(EVENT_NOTH, NOT_STARTED); @@ -189,7 +189,8 @@ public: { // GROUND case EVENT_SPELL_CURSE: - me->CastCustomSpell(RAID_MODE(SPELL_CURSE_OF_THE_PLAGUEBRINGER_10, SPELL_CURSE_OF_THE_PLAGUEBRINGER_25), SPELLVALUE_MAX_TARGETS, RAID_MODE(3, 10), me, false); + if (events.GetPhaseMask() == 0) + me->CastCustomSpell(RAID_MODE(SPELL_CURSE_OF_THE_PLAGUEBRINGER_10, SPELL_CURSE_OF_THE_PLAGUEBRINGER_25), SPELLVALUE_MAX_TARGETS, RAID_MODE(3, 10), false); events.RepeatEvent(25000); break; case EVENT_SUMMON_PLAGUED_WARRIOR_ANNOUNCE: @@ -224,9 +225,9 @@ public: break; case EVENT_BALCONY_SUMMON_REAL: me->CastSpell(me, SPELL_SUMMON_PLAGUED_WARRIORS, true); // visual only - if (totalPhase == 0) + if (events.GetPhaseMask() == 0) SummonHelper(NPC_PLAGUED_CHAMPION, RAID_MODE(2,4)); - else if (totalPhase == 1) + else if (events.GetPhaseMask() == 1) { SummonHelper(NPC_PLAGUED_CHAMPION, RAID_MODE(1,2)); SummonHelper(NPC_PLAGUED_GUARDIAN, RAID_MODE(1,2)); @@ -237,10 +238,8 @@ public: break; case EVENT_MOVE_TO_GROUND: me->MonsterTextEmote("%s teleports back into the battle!", 0, true); - totalPhase++; StartGroundPhase(); me->NearTeleportTo(nothPosition.GetPositionX(), nothPosition.GetPositionY(), nothPosition.GetPositionZ(), nothPosition.GetOrientation(), true); - events.PopEvent(); break; }