MovementSpeedModifierComponent (#721)

* movement modifier system

* update default exposedata values

* changing base speed marks as dirty

* formatting

* movement speed modifier component

* Moves slowdown component to the prototype

AIController respects slowdown

* reset dirty flag
This commit is contained in:
4dplanner
2020-02-22 23:37:56 +00:00
committed by GitHub
parent ffe55648b6
commit b0e3ab3393
9 changed files with 231 additions and 49 deletions

View File

@@ -90,7 +90,7 @@ namespace Content.Server.GameObjects.EntitySystems
private static void PlayerDetached(PlayerDetachedSystemMessage ev)
{
if(ev.Entity.HasComponent<PlayerInputMoverComponent>())
if (ev.Entity.HasComponent<PlayerInputMoverComponent>())
{
ev.Entity.RemoveComponent<PlayerInputMoverComponent>();
}
@@ -136,7 +136,7 @@ namespace Content.Server.GameObjects.EntitySystems
}
else
{
physics.LinearVelocity = mover.VelocityDir * (mover.Sprinting ? mover.SprintMoveSpeed : mover.WalkMoveSpeed);
physics.LinearVelocity = mover.VelocityDir * (mover.Sprinting ? mover.CurrentSprintSpeed : mover.CurrentWalkSpeed);
transform.LocalRotation = mover.VelocityDir.GetDir().ToAngle();
// Handle footsteps.
@@ -177,7 +177,7 @@ namespace Content.Server.GameObjects.EntitySystems
private static void HandleDirChange(ICommonSession session, Direction dir, bool state)
{
if(!TryGetAttachedComponent(session as IPlayerSession, out IMoverComponent moverComp))
if (!TryGetAttachedComponent(session as IPlayerSession, out IMoverComponent moverComp))
return;
moverComp.SetVelocityDirection(dir, state);
@@ -185,14 +185,14 @@ namespace Content.Server.GameObjects.EntitySystems
private static void HandleRunChange(ICommonSession session, bool running)
{
if(!TryGetAttachedComponent(session as IPlayerSession, out PlayerInputMoverComponent moverComp))
if (!TryGetAttachedComponent(session as IPlayerSession, out PlayerInputMoverComponent moverComp))
return;
moverComp.Sprinting = running;
}
private static bool TryGetAttachedComponent<T>(IPlayerSession session, out T component)
where T: IComponent
where T : IComponent
{
component = default;