// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> // SPDX-FileCopyrightText: 2025 Piras314 // SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> // // SPDX-License-Identifier: AGPL-3.0-or-later using Robust.Shared.GameStates; using Robust.Shared.Prototypes; using Content.Shared.StatusEffect; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared._Shitmed.BodyEffects.Subsystems; [RegisterComponent] [AutoGenerateComponentPause] public sealed partial class RandomStatusActivationComponent : Component { /// /// List of status effects to roll while the organ is installed. /// [DataField(required: true)] public Dictionary, string> StatusEffects = new(); /// /// How long the status effect should last for. /// [DataField] public TimeSpan? Duration; /// /// What is the minimum time between activations? /// [DataField] public TimeSpan MinActivationTime = TimeSpan.FromSeconds(60); /// /// What is the maximum time between activations? /// [DataField] public TimeSpan MaxActivationTime = TimeSpan.FromSeconds(300); /// /// The next time the organ will activate. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField] public TimeSpan NextUpdate; }