using Content.Shared.Cargo; using Content.Shared.Cargo.Prototypes; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Server.Cargo.Components; /// /// Stores all active cargo bounties for a particular station. /// [RegisterComponent] public sealed partial class StationCargoBountyDatabaseComponent : Component { /// /// Maximum amount of bounties a station can have. /// [DataField] public int MaxBounties = 6; /// /// A list of all the bounties currently active for a station. /// [DataField] public List Bounties = new(); /// /// A list of all the bounties that have been completed or /// skipped for a station. /// [DataField] public List History = new(); /// /// Used to determine unique order IDs /// [DataField] public int TotalBounties; /// /// A list of bounty IDs that have been checked this tick. /// Used to prevent multiplying bounty prices. /// [DataField] public HashSet CheckedBounties = new(); /// /// The group that bounties are pulled from. /// [DataField] public ProtoId Group = "StationBounty"; /// /// The time at which players will be able to skip the next bounty. /// [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] public TimeSpan NextSkipTime = TimeSpan.Zero; /// /// The time between skipping bounties. /// [DataField] public TimeSpan SkipDelay = TimeSpan.FromMinutes(15); }