CatStation/Content.Shared/Item/HeldSpeedModifierComponent.cs
poklj 4d595db54c
0G Hypereutactic-blade speed fix (#38794)
* Add some Zero-G modifiers

* make moths use base, and make some overloads

* undo moth base

* remove extra modifications we don't need

* remove change that might cause unintended effects

* CR - Added the modifiers for weightlessnessEvent

- added HandRelays for WeightlessModifier

- cleaned up unused ClothingSpeedModifierComponent changes

- cleaned up unused PullingSystem changes

* Cleanup and some API specifics

* forgot to commit :)

---------

Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>
2026-07-26 22:00:40 +00:00

46 lines
1.6 KiB
C#

using Content.Shared.Clothing;
using Robust.Shared.GameStates;
namespace Content.Shared.Item;
/// <summary>
/// This is used for items that change your speed when they are held.
/// </summary>
/// <remarks>
/// This is separate from <see cref="ClothingSpeedModifierComponent"/> because things like boots increase/decrease speed when worn, but
/// shouldn't do that when just held in hand.
/// </remarks>
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
[Access(typeof(HeldSpeedModifierSystem))]
public sealed partial class HeldSpeedModifierComponent : Component
{
/// <summary>
/// A multiplier applied to the walk speed.
/// </summary>
[DataField] [ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
public float WalkModifier = 1.0f;
/// <summary>
/// A multiplier applied to the sprint speed.
/// </summary>
[DataField] [ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
public float SprintModifier = 1.0f;
/// <summary>
/// A multiplier applied to weightless acceleration
/// </summary>
[DataField]
public float WeightlessAcceleration = 1.0f;
/// <summary>
/// A multiplier applied to Weightlessness speed, I.E the Maximum speed one can go in 0G under their own power
/// </summary>
[DataField, AutoNetworkedField]
public float ZeroGravityModifier = 1.0f;
/// <summary>
/// If true, values from <see cref="ClothingSpeedModifierComponent"/> will attempted to be used before the ones in this component.
/// </summary>
[DataField, ViewVariables(VVAccess.ReadWrite), AutoNetworkedField]
public bool MirrorClothingModifier = true;
}