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;
|
ChaseRange? _range;
|
||||||
ChaseAngle? _angle;
|
ChaseAngle? _angle;
|
||||||
|
bool _walk;
|
||||||
|
|
||||||
PathGenerator _path;
|
PathGenerator _path;
|
||||||
Position _lastTargetPosition;
|
Position _lastTargetPosition;
|
||||||
@@ -37,11 +38,12 @@ namespace Game.Movement
|
|||||||
|
|
||||||
AbstractFollower _abstractFollower;
|
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);
|
_abstractFollower = new AbstractFollower(target);
|
||||||
_range = range;
|
_range = range;
|
||||||
_angle = angle;
|
_angle = angle;
|
||||||
|
_walk = walk;
|
||||||
|
|
||||||
Mode = MovementGeneratorMode.Default;
|
Mode = MovementGeneratorMode.Default;
|
||||||
Priority = MovementGeneratorPriority.Normal;
|
Priority = MovementGeneratorPriority.Normal;
|
||||||
@@ -54,7 +56,7 @@ namespace Game.Movement
|
|||||||
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Deactivated);
|
RemoveFlag(MovementGeneratorFlags.InitializationPending | MovementGeneratorFlags.Deactivated);
|
||||||
AddFlag(MovementGeneratorFlags.Initialized);
|
AddFlag(MovementGeneratorFlags.Initialized);
|
||||||
|
|
||||||
owner.SetWalk(false);
|
owner.SetWalk(_walk);
|
||||||
_path = null;
|
_path = null;
|
||||||
_lastTargetPosition = null;
|
_lastTargetPosition = null;
|
||||||
}
|
}
|
||||||
@@ -188,7 +190,7 @@ namespace Game.Movement
|
|||||||
|
|
||||||
MoveSplineInit init = new(owner);
|
MoveSplineInit init = new(owner);
|
||||||
init.MovebyPath(_path.GetPath());
|
init.MovebyPath(_path.GetPath());
|
||||||
init.SetWalk(false);
|
init.SetWalk(_walk);
|
||||||
init.SetFacing(target);
|
init.SetFacing(target);
|
||||||
|
|
||||||
init.Launch();
|
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, 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, 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
|
// Ignore movement request if target not exist
|
||||||
if (!target || target == _owner)
|
if (!target || target == _owner)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Add(new ChaseMovementGenerator(target, dist, angle));
|
Add(new ChaseMovementGenerator(target, dist, angle, walk));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MoveConfused()
|
public void MoveConfused()
|
||||||
|
|||||||
Reference in New Issue
Block a user