fix(Core/Movement): Don't move for change in orientation only (#19687)

Changing only the orientation of a unit also flags it as if it were
moving, which causes spells to be interrupted.
This commit is contained in:
Saqra1
2024-09-01 18:57:17 -05:00
committed by GitHub
parent 5d4c85143c
commit 62b825f8bd
2 changed files with 4 additions and 2 deletions

View File

@@ -101,7 +101,9 @@ namespace Movement
moveFlags = (moveFlags & ~(MOVEMENTFLAG_FORWARD)) | MOVEMENTFLAG_BACKWARD;
}
if (moveFlags & MOVEMENTFLAG_ROOT)
bool isOrientationOnly = args.path.size() == 2 && args.path[0] == args.path[1];
if ((moveFlags & MOVEMENTFLAG_ROOT) || isOrientationOnly)
moveFlags &= ~MOVEMENTFLAG_MASK_MOVING;
if (!args.HasVelocity)

View File

@@ -2677,7 +2677,7 @@ void Spell::EffectDistract(SpellEffIndex /*effIndex*/)
if (unitTarget->HasUnitState(UNIT_STATE_CONFUSED | UNIT_STATE_STUNNED | UNIT_STATE_FLEEING))
return;
unitTarget->SetFacingTo(unitTarget->GetAngle(destTarget)); /// @BUG Causes the player to stop moving + interrupts spellcast.
unitTarget->SetFacingTo(unitTarget->GetAngle(destTarget)); /// @BUG Causes the player to stop moving.
unitTarget->GetMotionMaster()->MoveDistract(damage * IN_MILLISECONDS);
}