From 7d6f782dd1cad3c791e0dd5fa33728f57b722c16 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Tue, 23 Nov 2021 22:57:55 -0500 Subject: [PATCH] Allow walk when chasing Port From (https://github.com/TrinityCore/TrinityCore/commit/b3f75852c284e730756a7f007b96bbae0ac3c158) --- Source/Game/Movement/Generators/ChaseMovementGenerator.cs | 8 +++++--- Source/Game/Movement/MotionMaster.cs | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) 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()