Files
tbd-station-14/Content.Shared/Movement/Components/MovementSpeedModifierComponent.cs
mirrorcult 2d3077f560 Remove IMoveSpeedModifier in favor of events (#5212)
* Remove IMoveSpeedModifier

* fucking magboots

* yope

* rabiews
2021-11-08 16:17:35 +11:00

60 lines
1.7 KiB
C#

using Content.Shared.Movement.EntitySystems;
using Robust.Shared.Analyzers;
using Robust.Shared.Containers;
using Robust.Shared.GameObjects;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization.Manager.Attributes;
using Robust.Shared.ViewVariables;
namespace Content.Shared.Movement.Components
{
[RegisterComponent]
[NetworkedComponent, Friend(typeof(MovementSpeedModifierSystem))]
public sealed class MovementSpeedModifierComponent : Component
{
public const float DefaultBaseWalkSpeed = 4.0f;
public const float DefaultBaseSprintSpeed = 7.0f;
public override string Name => "MovementSpeedModifier";
[ViewVariables]
public float WalkSpeedModifier = 1.0f;
[ViewVariables]
public float SprintSpeedModifier = 1.0f;
[ViewVariables(VVAccess.ReadWrite)]
public float BaseWalkSpeedVV
{
get => BaseWalkSpeed;
set
{
BaseWalkSpeed = value;
Dirty();
}
}
[ViewVariables(VVAccess.ReadWrite)]
public float BaseSprintSpeedVV
{
get => BaseSprintSpeed;
set
{
BaseSprintSpeed = value;
Dirty();
}
}
[DataField("baseWalkSpeed")]
public float BaseWalkSpeed { get; set; } = DefaultBaseWalkSpeed;
[DataField("baseSprintSpeed")]
public float BaseSprintSpeed { get; set; } = DefaultBaseSprintSpeed;
[ViewVariables]
public float CurrentWalkSpeed => WalkSpeedModifier * BaseWalkSpeed;
[ViewVariables]
public float CurrentSprintSpeed => SprintSpeedModifier * BaseSprintSpeed;
}
}