using Content.Shared.Roles; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Dictionary; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Server.Station; public sealed partial class StationConfig { [DataField("overflowJobs", required: true, customTypeSerializer: typeof(PrototypeIdListSerializer))] private readonly List _overflowJobs = default!; /// /// Jobs used at round start should the station run out of job slots. /// Doesn't necessarily mean the station has infinite slots for the given jobs mid-round! /// public IReadOnlyList OverflowJobs => _overflowJobs; [DataField("availableJobs", required: true, customTypeSerializer: typeof(PrototypeIdDictionarySerializer, JobPrototype>))] private readonly Dictionary> _availableJobs = default!; /// /// Index of all jobs available on the station, of form /// job name: [round-start, mid-round] /// public IReadOnlyDictionary> AvailableJobs => _availableJobs; /// /// If there are less than or equal this amount of players in the game at round start, /// people get extended access levels from job prototypes. /// /// /// Set to -1 to disable extended access. /// [DataField("extendedAccessThreshold")] public int ExtendedAccessThreshold { get; set; } = 15; }