namespace Content.Shared.EntityEffects.Effects.StatusEffects; /// /// Entity effect that specifically deals with new status effects. /// /// The entity effect type, typically for status effects which need systems to pass arguments public abstract partial class BaseStatusEntityEffect : EntityEffectBase where T : BaseStatusEntityEffect { /// /// How long the modifier applies (in seconds). /// Is scaled by reagent amount if used with an EntityEffectReagentArgs. /// [DataField] public TimeSpan? Time = TimeSpan.FromSeconds(2); /// /// Should this effect add the status effect, remove time from it, or set its cooldown? /// [DataField] public StatusEffectMetabolismType Type = StatusEffectMetabolismType.Update; /// /// Delay before the effect starts. If another effect is added with a shorter delay, it takes precedence. /// [DataField] public TimeSpan Delay; } public enum StatusEffectMetabolismType { Update, Add, Remove, Set, }