fix(Core/Spells): Properly handle client-side orientation on stun. (#10107)

Fixes #9738
This commit is contained in:
UltraNix
2022-01-20 16:12:40 +01:00
committed by GitHub
parent fd7f33b737
commit b24fd81734
2 changed files with 12 additions and 5 deletions

View File

@@ -17485,7 +17485,7 @@ void Unit::SetStunned(bool apply)
SetStandState(UNIT_STAND_STATE_STAND);
}
SetRooted(true);
SetRooted(true, true);
CastStop();
}
@@ -17511,12 +17511,12 @@ void Unit::SetStunned(bool apply)
if (!HasUnitState(UNIT_STATE_ROOT)) // prevent moving if it also has root effect
{
SetRooted(false);
SetRooted(false, true);
}
}
}
void Unit::SetRooted(bool apply)
void Unit::SetRooted(bool apply, bool isStun)
{
if (apply)
{
@@ -17540,7 +17540,14 @@ void Unit::SetRooted(bool apply)
// Creature specific
if (GetTypeId() != TYPEID_PLAYER)
{
StopMoving();
if (isStun && movespline->Finalized())
{
StopMovingOnCurrentPos();
}
else
{
StopMoving();
}
}
if (m_movedByPlayer)