Scripts/Icecrown Citadel: Sindragosa will no longer attempt to enter both last phase and air phase

This commit is contained in:
Shauren
2011-07-29 21:37:33 +02:00
parent c9291243c1
commit c063639ce0

View File

@@ -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;
};