Allow walk when chasing
Port From (https://github.com/TrinityCore/TrinityCore/commit/b3f75852c284e730756a7f007b96bbae0ac3c158)
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user