Files
tbd-station-14/Content.Shared/Movement/Components/SpeedModifierContactsComponent.cs
Victor Shen 4671382419 Remove Contact Slowdown when Weightless or in the Air (#33299)
* removed contact slowdowns from entities that are weightless or in the air

* fixed kudzu not applying contact slowdown to airbone entities

* revert kudzu fix

* reimplemented kudzu fix with bool datafield

* update variable serialization format

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* empty commit

* cleaned up and added documentation

* cached airborne check

* rerun tests

* minor review

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: Milon <milonpl.git@proton.me>
2025-04-28 20:24:12 -04:00

37 lines
1.4 KiB
C#

using Content.Shared.Movement.Systems;
using Content.Shared.Whitelist;
using Robust.Shared.GameStates;
namespace Content.Shared.Movement.Components;
/// <summary>
/// Component that modifies the movement speed of other entities that come into contact with the entity this component is added to.
/// </summary>
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState, Access(typeof(SpeedModifierContactsSystem))]
public sealed partial class SpeedModifierContactsComponent : Component
{
/// <summary>
/// The modifier applied to the walk speed of entities that come into contact with the entity this component is added to.
/// </summary>
[DataField, AutoNetworkedField]
public float WalkSpeedModifier = 1.0f;
/// <summary>
/// The modifier applied to the sprint speed of entities that come into contact with the entity this component is added to.
/// </summary>
[DataField, AutoNetworkedField]
public float SprintSpeedModifier = 1.0f;
/// <summary>
/// Indicates whether this component affects the movement speed of airborne entities that come into contact with the entity this component is added to.
/// </summary>
[DataField, AutoNetworkedField]
public bool AffectAirborne;
/// <summary>
/// A whitelist of entities that should be ignored by this component's speed modifiers.
/// </summary>
[DataField]
public EntityWhitelist? IgnoreWhitelist;
}