diff options
author | Shauren <shauren.trinity@gmail.com> | 2011-07-29 21:37:33 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2011-07-29 21:37:33 +0200 |
commit | c063639ce01246bfd7648310a8dcc4449a48b751 (patch) | |
tree | 74b3c156d06ff5db44a506115518bc11a64ba67e /src | |
parent | c9291243c1ff8b761c62408dfe08af14c38f93ce (diff) |
Scripts/Icecrown Citadel: Sindragosa will no longer attempt to enter both last phase and air phase
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp index e3aaba06793..236a4fca1f1 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp @@ -97,6 +97,7 @@ enum Events EVENT_FROST_BOMB = 11, EVENT_LAND = 12, EVENT_AIR_MOVEMENT = 21, + EVENT_THIRD_PHASE_CHECK = 22, // Spinestalker EVENT_BELLOWING_ROAR = 13, @@ -192,6 +193,7 @@ class boss_sindragosa : public CreatureScript events.ScheduleEvent(EVENT_ICY_GRIP, 33500, EVENT_GROUP_LAND_PHASE); events.ScheduleEvent(EVENT_AIR_PHASE, 50000); _mysticBuffetStack = 0; + _isInAirPhase = false; _isThirdPhase = false; if (instance->GetData(DATA_SINDRAGOSA_FROSTWYRMS) != 255) @@ -293,6 +295,7 @@ class boss_sindragosa : public CreatureScript if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == POINT_MOTION_TYPE) me->GetMotionMaster()->MovementExpired(); DoStartMovement(me->getVictim()); + _isInAirPhase = false; // trigger Asphyxiation summons.DoAction(NPC_ICE_TOMB, ACTION_TRIGGER_ASPHYXIATION); break; @@ -305,11 +308,8 @@ class boss_sindragosa : public CreatureScript { if (!_isThirdPhase && !HealthAbovePct(35)) { - Talk(SAY_PHASE_2); events.CancelEvent(EVENT_AIR_PHASE); - events.ScheduleEvent(EVENT_ICE_TOMB, urand(7000, 10000)); - events.RescheduleEvent(EVENT_ICY_GRIP, urand(35000, 40000)); - DoCast(me, SPELL_MYSTIC_BUFFET, true); + events.ScheduleEvent(EVENT_THIRD_PHASE_CHECK, 1000); _isThirdPhase = true; } } @@ -420,6 +420,7 @@ class boss_sindragosa : public CreatureScript break; case EVENT_AIR_PHASE: { + _isInAirPhase = true; Talk(SAY_AIR_PHASE); me->SetFlying(true); me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING); @@ -472,6 +473,19 @@ class boss_sindragosa : public CreatureScript me->GetMotionMaster()->MovePoint(POINT_LAND, SindragosaLandPos); break; } + case EVENT_THIRD_PHASE_CHECK: + { + if (!_isInAirPhase) + { + Talk(SAY_PHASE_2); + events.ScheduleEvent(EVENT_ICE_TOMB, urand(7000, 10000)); + events.RescheduleEvent(EVENT_ICY_GRIP, urand(35000, 40000)); + DoCast(me, SPELL_MYSTIC_BUFFET, true); + } + else + events.ScheduleEvent(EVENT_THIRD_PHASE_CHECK, 5000); + break; + } default: break; } @@ -482,6 +496,7 @@ class boss_sindragosa : public CreatureScript private: uint8 _mysticBuffetStack; + bool _isInAirPhase; bool _isThirdPhase; }; |