fix(Core/Unit): Introduce animtier to malygos to fix flying animations (#24067)

This commit is contained in:
killerwife
2025-12-10 05:09:21 +01:00
committed by GitHub
parent a54d1845e5
commit b73028f6f5
9 changed files with 49 additions and 36 deletions

View File

@@ -234,6 +234,8 @@ public:
me->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED);
me->RemoveUnitFlag(UNIT_FLAG_DISABLE_MOVE);
me->SetAnimTier(AnimTier::Fly);
if (pInstance)
{
pInstance->SetData(DATA_ENCOUNTER_STATUS, NOT_STARTED);
@@ -277,12 +279,6 @@ public:
case MI_POINT_SURGE_OF_POWER_CENTER:
events.RescheduleEvent(EVENT_SURGE_OF_POWER_WARNING, 0ms, 1);
break;
}
}
else if (type == EFFECT_MOTION_TYPE)
{
switch (id)
{
case MI_POINT_INTRO_LAND:
me->SetDisableGravity(false);
events.RescheduleEvent(EVENT_START_FIGHT, 0ms, 1);
@@ -401,7 +397,7 @@ public:
}
case EVENT_INTRO_LAND:
{
me->GetMotionMaster()->MoveLand(MI_POINT_INTRO_LAND, me->GetPositionX(), me->GetPositionY(), CenterPos.GetPositionZ(), 7.0f);
me->GetMotionMaster()->MovePoint(MI_POINT_INTRO_LAND, me->GetPositionX(), me->GetPositionY(), CenterPos.GetPositionZ(), FORCED_MOVEMENT_RUN, 0.f, 0.f, true, true, MOTION_SLOT_ACTIVE, AnimTier::Ground);
break;
}
case EVENT_START_FIGHT:
@@ -462,7 +458,7 @@ public:
me->GetMotionMaster()->MoveIdle();
me->StopMoving();
me->SetDisableGravity(true);
me->GetMotionMaster()->MoveTakeoff(MI_POINT_VORTEX_TAKEOFF, me->GetPositionX(), me->GetPositionY(), CenterPos.GetPositionZ() + 20.0f, 7.0f);
me->GetMotionMaster()->MovePoint(MI_POINT_VORTEX_TAKEOFF, me->GetPositionX(), me->GetPositionY(), CenterPos.GetPositionZ() + 20.0f, FORCED_MOVEMENT_RUN, 0.f, 0.f, true, true, MOTION_SLOT_ACTIVE, AnimTier::Fly);
events.DelayEvents(25s, 1); // don't delay berserk (group 0)
}
@@ -539,7 +535,7 @@ public:
break;
}
case EVENT_VORTEX_LAND_0:
me->GetMotionMaster()->MoveLand(MI_POINT_VORTEX_LAND, CenterPos, 7.0f);
me->GetMotionMaster()->MovePoint(MI_POINT_VORTEX_LAND, CenterPos, FORCED_MOVEMENT_RUN, 0.f, true, true, AnimTier::Ground);
break;
case EVENT_VORTEX_LAND_1:
@@ -573,7 +569,7 @@ public:
me->GetMotionMaster()->MoveIdle();
me->DisableSpline();
me->SetDisableGravity(true);
me->GetMotionMaster()->MoveTakeoff(MI_POINT_CENTER_AIR_PH_2, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 32.0f, 7.0f);
me->GetMotionMaster()->MovePoint(MI_POINT_CENTER_AIR_PH_2, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 32.0f, FORCED_MOVEMENT_RUN, 0.f, 0.f, true, true, MOTION_SLOT_ACTIVE, AnimTier::Fly);
events.RescheduleEvent(EVENT_START_PHASE_2_MOVE_TO_SIDE, 22s + 500ms, 1);
break;
}
@@ -699,7 +695,7 @@ public:
case EVENT_MOVE_TO_PHASE_3_POSITION:
{
me->SendMeleeAttackStop(me->GetVictim());
me->GetMotionMaster()->MoveTakeoff(MI_POINT_PH_3_FIGHT_POSITION, CenterPos.GetPositionX(), CenterPos.GetPositionY(), CenterPos.GetPositionZ() - 5.0f, me->GetSpeed(MOVE_RUN));
me->GetMotionMaster()->MovePoint(MI_POINT_PH_3_FIGHT_POSITION, CenterPos.GetPositionX(), CenterPos.GetPositionY(), CenterPos.GetPositionZ() - 5.0f, FORCED_MOVEMENT_RUN, 0.f, 0.f, true, true, MOTION_SLOT_ACTIVE, AnimTier::Fly);
me->GetThreatMgr().ClearAllThreat(); // players on vehicle are unattackable -> leads to EnterEvadeMode() because target is not acceptable!