diff --git a/Source/Game/Movement/Generators/ChaseMovementGenerator.cs b/Source/Game/Movement/Generators/ChaseMovementGenerator.cs index 6ad0bd5d1..9fa9dfefa 100644 --- a/Source/Game/Movement/Generators/ChaseMovementGenerator.cs +++ b/Source/Game/Movement/Generators/ChaseMovementGenerator.cs @@ -28,6 +28,7 @@ namespace Game.Movement ChaseRange? _range; ChaseAngle? _angle; + bool _walk; PathGenerator _path; Position _lastTargetPosition; @@ -37,11 +38,12 @@ namespace Game.Movement AbstractFollower _abstractFollower; - public ChaseMovementGenerator(Unit target, ChaseRange? range, ChaseAngle? angle) + public ChaseMovementGenerator(Unit target, ChaseRange? range, ChaseAngle? angle, bool walk = false) { _abstractFollower = new AbstractFollower(target); _range = range; _angle = angle; + _walk = walk; Mode = MovementGeneratorMode.Default; Priority = MovementGeneratorPriority.Normal; @@ -54,7 +56,7 @@ namespace Game.Movement RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Deactivated); AddFlag(MovementGeneratorFlags.Initialized); - owner.SetWalk(false); + owner.SetWalk(_walk); _path = null; _lastTargetPosition = null; } @@ -188,7 +190,7 @@ namespace Game.Movement MoveSplineInit init = new(owner); init.MovebyPath(_path.GetPath()); - init.SetWalk(false); + init.SetWalk(_walk); init.SetFacing(target); init.Launch(); diff --git a/Source/Game/Movement/MotionMaster.cs b/Source/Game/Movement/MotionMaster.cs index 5b655e406..2ed7bbe6b 100644 --- a/Source/Game/Movement/MotionMaster.cs +++ b/Source/Game/Movement/MotionMaster.cs @@ -533,13 +533,13 @@ namespace Game.Movement public void MoveChase(Unit target, float dist, float angle = 0.0f) { MoveChase(target, new ChaseRange(dist), new ChaseAngle(angle)); } public void MoveChase(Unit target, float dist) { MoveChase(target, new ChaseRange(dist)); } - public void MoveChase(Unit target, ChaseRange? dist = null, ChaseAngle? angle = null) + public void MoveChase(Unit target, ChaseRange? dist = null, ChaseAngle? angle = null, bool walk = false) { // Ignore movement request if target not exist if (!target || target == _owner) return; - Add(new ChaseMovementGenerator(target, dist, angle)); + Add(new ChaseMovementGenerator(target, dist, angle, walk)); } public void MoveConfused()