Core/Movement: MotionMaster & MovementGenerators cleaning

Port From (https://github.com/TrinityCore/TrinityCore/commit/14c6a4d8238e4f383557359436b5f73cb730d4ea)
This commit is contained in:
hondacrx
2020-05-07 14:16:30 -04:00
parent dff455da9d
commit c9a91fa62f
12 changed files with 631 additions and 669 deletions
+17 -14
View File
@@ -28,9 +28,20 @@ namespace Game.AI
SetTargetLocation(owner);
}
public override void DoReset(T owner)
{
DoInitialize(owner);
}
public override bool DoUpdate(T owner, uint diff)
{
_arrived = _skipToHome || owner.MoveSpline.Finalized();
return !_arrived;
}
public override void DoFinalize(T owner)
{
if (arrived)
if (_arrived)
{
owner.ClearUnitState(UnitState.Evade);
owner.SetWalk(true);
@@ -40,19 +51,11 @@ namespace Game.AI
}
}
public override void DoReset(T owner) { }
public override bool DoUpdate(T owner, uint time_diff)
{
arrived = skipToHome || owner.MoveSpline.Finalized();
return !arrived;
}
void SetTargetLocation(T owner)
{
if (owner.HasUnitState(UnitState.Root | UnitState.Stunned | UnitState.Distracted))
{ // if we are ROOT/STUNNED/DISTRACTED even after aura clear, finalize on next update - otherwise we would get stuck in evade
skipToHome = true;
_skipToHome = true;
return;
}
@@ -68,8 +71,8 @@ namespace Game.AI
init.SetWalk(false);
init.Launch();
skipToHome = false;
arrived = false;
_skipToHome = false;
_arrived = false;
owner.ClearUnitState(UnitState.AllErasable & ~UnitState.Evade);
}
@@ -79,7 +82,7 @@ namespace Game.AI
return MovementGeneratorType.Home;
}
bool arrived;
bool skipToHome;
bool _arrived;
bool _skipToHome;
}
}