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:
parent
5d4c85143c
commit
62b825f8bd
2 changed files with 4 additions and 2 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue