using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Trigger.Components.Effects; /// /// Will ignite for a certain length of time when triggered. /// Requires along with triggering components. /// The if TargetUser is true they will be ignited instead (they need IgnitionSourceComponent as well). /// [RegisterComponent, NetworkedComponent] [AutoGenerateComponentState, AutoGenerateComponentPause] public sealed partial class IgniteOnTriggerComponent : BaseXOnTriggerComponent { /// /// Once ignited, the time it will unignite at. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoNetworkedField, AutoPausedField] public TimeSpan IgnitedUntil = TimeSpan.Zero; /// /// How long the ignition source is active for after triggering. /// [DataField, AutoNetworkedField] public TimeSpan IgnitedTime = TimeSpan.FromSeconds(0.5); }