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