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,
}