using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.Buckle.Components; /// /// Component for entities that are currently being ignited by /// [RegisterComponent, NetworkedComponent] [AutoGenerateComponentPause, AutoGenerateComponentState] public sealed partial class ActiveIgniteOnBuckleComponent : Component { // We cache data in this component and apply it to those who get buckled to have to do less lookups. /// /// How many fire stacks to add per cycle. /// [DataField] public float FireStacks = 0.5f; /// /// How frequently the ignition should be applied, in seconds. /// [DataField] public float IgniteTime = 1f; /// /// Maximum fire stacks that can be added by this source. /// If target already has this many or more fire stacks, no additional stacks will be added. /// Null means unlimited. /// [DataField] public float? MaxFireStacks = 2.5f; /// /// Next time that fire stacks will be applied. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] [AutoPausedField, AutoNetworkedField] public TimeSpan NextIgniteTime = TimeSpan.Zero; }