fix(Scripts/IcecrownCitadel): restore flight animations for Sindragosa, Rimefang, Spinestalker and Spire Frostwyrm (#26738)

Co-authored-by: Claude Fable 5 <[email protected]>
Co-authored-by: sudlud <[email protected]>
This commit is contained in:
Øyvind
2026-09-10 22:10:55 -03:00
committed by GitHub
co-authored by Claude Fable 5 sudlud
parent 65d564c848
commit 4cc1210a11
2 changed files with 18 additions and 4 deletions
@@ -361,6 +361,12 @@ public:
BossAI::EnterEvadeMode(why);
}
void JustReachedHome() override
{
BossAI::JustReachedHome();
me->SetAnimTier(AnimTier::Ground);
}
void KilledUnit(Unit* victim) override
{
if (victim->IsPlayer())
@@ -381,6 +387,7 @@ public:
me->setActive(true);
me->SetDisableGravity(true);
me->SetAnimTier(AnimTier::Fly);
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
me->SetSpeed(MOVE_RUN, 4.28571f);
float moveTime = me->GetExactDist(&SindragosaFlyInPos) / (me->GetSpeed(MOVE_RUN) * 0.001f);
@@ -582,6 +589,7 @@ public:
me->GetMotionMaster()->MoveIdle();
me->StopMoving();
me->SetDisableGravity(true);
me->SetAnimTier(AnimTier::Fly);
me->GetMotionMaster()->MoveTakeoff(POINT_TAKEOFF, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 20.0f, 10.0f);
events.CancelEventGroup(EVENT_GROUP_LAND_PHASE);
events.ScheduleEvent(EVENT_AIR_PHASE, 110s);
@@ -1208,6 +1216,7 @@ public:
if (!_summoned)
{
me->SetDisableGravity(true);
me->SetAnimTier(AnimTier::Fly);
}
}
@@ -1217,6 +1226,7 @@ public:
if (_summoned)
{
me->SetDisableGravity(false);
me->SetAnimTier(AnimTier::Ground);
}
}
@@ -1339,6 +1349,7 @@ public:
if (!_summoned)
{
me->SetDisableGravity(true);
me->SetAnimTier(AnimTier::Fly);
}
}
@@ -1348,6 +1359,7 @@ public:
if (_summoned)
{
me->SetDisableGravity(false);
me->SetAnimTier(AnimTier::Ground);
}
}
@@ -1443,6 +1455,7 @@ public:
me->AttackStop();
me->SetDisableGravity(true);
me->SetAnimTier(AnimTier::Fly);
float floorZ = me->GetMapHeight(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());
float destZ;
if (floorZ > 190.0f) destZ = floorZ + 25.0f;
@@ -3690,7 +3690,7 @@ struct npc_icc_spire_frostwyrm : public ScriptedAI
{
me->SetCanFly(false);
me->SetDisableGravity(false);
me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
me->SetAnimTier(AnimTier::Ground);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
}
}
@@ -3722,6 +3722,7 @@ struct npc_icc_spire_frostwyrm : public ScriptedAI
bool hordeSide = action == HORDE_AREATRIGGER || action == HORDE_AREATRIGGER + 1;
Position landingPosition = hordeSide ? posHordeMove : posAllianceMove;
me->SetAnimTier(AnimTier::Fly);
me->GetMotionMaster()->MovePoint(1, landingPosition);
me->SetHomePosition(landingPosition);
@@ -3730,11 +3731,11 @@ struct npc_icc_spire_frostwyrm : public ScriptedAI
void MovementInform(uint32 type, uint32 id) override
{
if (type == EFFECT_MOTION_TYPE && id == 1)
if (type == POINT_MOTION_TYPE && id == 1)
{
me->SetCanFly(false);
me->SetDisableGravity(false);
me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
me->SetAnimTier(AnimTier::Ground);
_canResetFlyingEffects = false;
}
}
@@ -3746,7 +3747,7 @@ struct npc_icc_spire_frostwyrm : public ScriptedAI
{
me->SetCanFly(false);
me->SetDisableGravity(false);
me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);
me->SetAnimTier(AnimTier::Ground);
}
}