using Content.Shared.Damage; using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Bed.Components { [RegisterComponent, NetworkedComponent, AutoGenerateComponentPause, AutoGenerateComponentState] public sealed partial class HealOnBuckleComponent : Component { /// /// Damage to apply to entities that are strapped to this entity. /// [DataField(required: true)] public DamageSpecifier Damage = default!; /// /// How frequently the damage should be applied, in seconds. /// [DataField(required: false)] public float HealTime = 1f; /// /// Damage multiplier that gets applied if the entity is sleeping. /// [DataField] public float SleepMultiplier = 3f; /// /// Next time that will be applied. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField, AutoNetworkedField] public TimeSpan NextHealTime = TimeSpan.Zero; //Next heal /// /// Action for the attached entity to be able to sleep. /// [DataField, AutoNetworkedField] public EntityUid? SleepAction; } }