using Robust.Shared.GameStates; namespace Content.Shared.Delivery; /// /// Component given to deliveries. /// Applies a duration before which the delivery must be delivered. /// If successful, adds a small multiplier, otherwise removes a small multiplier. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] [Access(typeof(DeliveryModifierSystem))] public sealed partial class DeliveryPriorityComponent : Component { /// /// The multiplier to apply when delivered in time. /// [DataField] public float InTimeMultiplierOffset = 0.25f; /// /// The multiplier to apply when delivered late. /// [DataField] public float ExpiredMultiplierOffset = -0.15f; /// /// Whether this delivery was delivered on time. /// [DataField, AutoNetworkedField] public bool Delivered; /// /// Whether this priority delivery has already ran out of time or not. /// [DataField, AutoNetworkedField] public bool Expired; /// /// How much time you get from spawn until the delivery expires. /// [DataField, AutoNetworkedField] public TimeSpan DeliveryTime = TimeSpan.FromMinutes(5); /// /// The time by which this has to be delivered. /// [DataField, AutoNetworkedField] public TimeSpan DeliverUntilTime; }