Scripts/Icecrown Citadel: Sindragosa will no longer attempt to enter both last phase and air phase
This commit is contained in:
@@ -97,6 +97,7 @@ enum Events
|
|||||||
EVENT_FROST_BOMB = 11,
|
EVENT_FROST_BOMB = 11,
|
||||||
EVENT_LAND = 12,
|
EVENT_LAND = 12,
|
||||||
EVENT_AIR_MOVEMENT = 21,
|
EVENT_AIR_MOVEMENT = 21,
|
||||||
|
EVENT_THIRD_PHASE_CHECK = 22,
|
||||||
|
|
||||||
// Spinestalker
|
// Spinestalker
|
||||||
EVENT_BELLOWING_ROAR = 13,
|
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_ICY_GRIP, 33500, EVENT_GROUP_LAND_PHASE);
|
||||||
events.ScheduleEvent(EVENT_AIR_PHASE, 50000);
|
events.ScheduleEvent(EVENT_AIR_PHASE, 50000);
|
||||||
_mysticBuffetStack = 0;
|
_mysticBuffetStack = 0;
|
||||||
|
_isInAirPhase = false;
|
||||||
_isThirdPhase = false;
|
_isThirdPhase = false;
|
||||||
|
|
||||||
if (instance->GetData(DATA_SINDRAGOSA_FROSTWYRMS) != 255)
|
if (instance->GetData(DATA_SINDRAGOSA_FROSTWYRMS) != 255)
|
||||||
@@ -293,6 +295,7 @@ class boss_sindragosa : public CreatureScript
|
|||||||
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == POINT_MOTION_TYPE)
|
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == POINT_MOTION_TYPE)
|
||||||
me->GetMotionMaster()->MovementExpired();
|
me->GetMotionMaster()->MovementExpired();
|
||||||
DoStartMovement(me->getVictim());
|
DoStartMovement(me->getVictim());
|
||||||
|
_isInAirPhase = false;
|
||||||
// trigger Asphyxiation
|
// trigger Asphyxiation
|
||||||
summons.DoAction(NPC_ICE_TOMB, ACTION_TRIGGER_ASPHYXIATION);
|
summons.DoAction(NPC_ICE_TOMB, ACTION_TRIGGER_ASPHYXIATION);
|
||||||
break;
|
break;
|
||||||
@@ -305,11 +308,8 @@ class boss_sindragosa : public CreatureScript
|
|||||||
{
|
{
|
||||||
if (!_isThirdPhase && !HealthAbovePct(35))
|
if (!_isThirdPhase && !HealthAbovePct(35))
|
||||||
{
|
{
|
||||||
Talk(SAY_PHASE_2);
|
|
||||||
events.CancelEvent(EVENT_AIR_PHASE);
|
events.CancelEvent(EVENT_AIR_PHASE);
|
||||||
events.ScheduleEvent(EVENT_ICE_TOMB, urand(7000, 10000));
|
events.ScheduleEvent(EVENT_THIRD_PHASE_CHECK, 1000);
|
||||||
events.RescheduleEvent(EVENT_ICY_GRIP, urand(35000, 40000));
|
|
||||||
DoCast(me, SPELL_MYSTIC_BUFFET, true);
|
|
||||||
_isThirdPhase = true;
|
_isThirdPhase = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -420,6 +420,7 @@ class boss_sindragosa : public CreatureScript
|
|||||||
break;
|
break;
|
||||||
case EVENT_AIR_PHASE:
|
case EVENT_AIR_PHASE:
|
||||||
{
|
{
|
||||||
|
_isInAirPhase = true;
|
||||||
Talk(SAY_AIR_PHASE);
|
Talk(SAY_AIR_PHASE);
|
||||||
me->SetFlying(true);
|
me->SetFlying(true);
|
||||||
me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
|
me->AddUnitMovementFlag(MOVEMENTFLAG_LEVITATING);
|
||||||
@@ -472,6 +473,19 @@ class boss_sindragosa : public CreatureScript
|
|||||||
me->GetMotionMaster()->MovePoint(POINT_LAND, SindragosaLandPos);
|
me->GetMotionMaster()->MovePoint(POINT_LAND, SindragosaLandPos);
|
||||||
break;
|
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:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -482,6 +496,7 @@ class boss_sindragosa : public CreatureScript
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
uint8 _mysticBuffetStack;
|
uint8 _mysticBuffetStack;
|
||||||
|
bool _isInAirPhase;
|
||||||
bool _isThirdPhase;
|
bool _isThirdPhase;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user