using Content.Shared.DoAfter; using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Stunnable; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState(fieldDeltas:true), AutoGenerateComponentPause, Access(typeof(SharedStunSystem))] public sealed partial class KnockedDownComponent : Component { /// /// Game time that we can stand up. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoNetworkedField, AutoPausedField] public TimeSpan NextUpdate; /// /// Should we try to stand up? /// [DataField, AutoNetworkedField] public bool AutoStand = true; /// /// The Standing Up DoAfter. /// [DataField, AutoNetworkedField] public ushort? DoAfterId; /// /// Friction modifier for knocked down players. /// Makes them accelerate and deccelerate slower. /// [DataField, AutoNetworkedField] public float FrictionModifier = 1f; // Should add a friction modifier to slipping to compensate for this /// /// Modifier to the maximum movement speed of a knocked down mover. /// [DataField, AutoNetworkedField] public float SpeedModifier = 1f; /// /// How long does it take us to get up? /// [DataField, AutoNetworkedField] public TimeSpan GetUpDoAfter = TimeSpan.FromSeconds(1); }