using System.Threading; using Robust.Shared.Audio; using Robust.Shared.GameStates; namespace Content.Shared.Delivery; /// /// Component given to deliveries. /// Means the entity is a delivery, which upon opening will grant a reward to cargo. /// [RegisterComponent, NetworkedComponent, AutoGenerateComponentState(fieldDeltas: true)] public sealed partial class DeliveryComponent : Component { /// /// Whether this delivery has been opened before. /// [DataField, AutoNetworkedField] public bool IsOpened; /// /// Whether this delivery is still locked using the fingerprint reader. /// [DataField, AutoNetworkedField] public bool IsLocked = true; /// /// Whether it profitable to deliver this parcel to the station. /// [DataField] public bool IsProfitable = true; /// /// Whether this package considered fragile. /// [DataField] public bool IsFragile; /// /// Whether this package considered priority mail. /// [DataField] public bool IsPriority; /// /// The amount of spesos that gets added to the station bank account on unlock. /// [DataField, AutoNetworkedField] public int SpesoReward = 500; /// /// The amount of specos that will be withdrawn from the station bank on upon destroy. /// [DataField] public int SpesoPenalty = -250; /// /// The name of the recipient of this delivery. /// Used for the examine text. /// [DataField, AutoNetworkedField] public string? RecipientName; /// /// The job of the recipient of this delivery. /// Used for the examine text. /// [DataField, AutoNetworkedField] public string? RecipientJobTitle; /// /// The EntityUid of the station this delivery was spawned on. /// [DataField, AutoNetworkedField] public EntityUid? RecipientStation; /// /// The sound to play when the delivery is unlocked. /// [DataField] public SoundSpecifier? UnlockSound = new SoundCollectionSpecifier("DeliveryUnlockSounds", AudioParams.Default.WithVolume(-10)); /// /// The sound to play when the delivery is opened. /// [DataField] public SoundSpecifier? OpenSound = new SoundCollectionSpecifier("DeliveryOpenSounds"); /// /// The sound to play when the delivery is opened. /// [DataField] public SoundSpecifier? PenaltySound = new SoundPathSpecifier("/Audio/Machines/Nuke/angry_beep.ogg"); /// /// The container with all the contents of the delivery. /// [DataField] public string Container = "delivery"; public CancellationTokenSource? PriorityCancelToken; }