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