using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; using Robust.Shared.Timing; namespace Content.Shared._DV.Addictions; [RegisterComponent, NetworkedComponent, Access(typeof(SharedAddictionSystem))] [AutoGenerateComponentState, AutoGenerateComponentPause] public sealed partial class AddictedComponent : Component { /// /// Whether to suppress pop-ups. /// [DataField, AutoNetworkedField] public bool Suppressed; /// /// The timestamp of last StatusEffect trigger. /// [DataField(serverOnly: true, customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoPausedField] public TimeSpan? LastMetabolismTime; /// /// The timestamp of the next popup. /// [DataField(serverOnly: true, customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoPausedField] public TimeSpan? NextEffectTime; /// /// The timestamp of the when the suppression ends /// [DataField(serverOnly: true, customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoPausedField] public TimeSpan? SuppressionEndTime; }