using Content.Shared.Cargo.Prototypes; using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Prototypes; 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; /// /// The base amount of spesos that gets added to the station bank account on unlock. /// [DataField, AutoNetworkedField] public int BaseSpesoReward = 500; /// /// The base amount of spesos that will be removed from the station bank account on a penalized delivery /// [DataField, AutoNetworkedField] public int BaseSpesoPenalty = 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 bank account ID of the account to subtract funds from in case of penalization /// [DataField, AutoNetworkedField] public ProtoId PenaltyBankAccount = "Cargo"; /// /// Whether this delivery has already received a penalty. /// Used to avoid getting penalized several times. /// [DataField, AutoNetworkedField] public bool WasPenalized; /// /// 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 container with all the contents of the delivery. /// [DataField] public string Container = "delivery"; }