using Content.Server.Maps; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Server.GameTicking.Presets { /// /// A round-start setup preset, such as which antagonists to spawn. /// [Prototype] public sealed partial class GamePresetPrototype : IPrototype { [IdDataField] public string ID { get; private set; } = default!; [DataField("alias")] public string[] Alias = Array.Empty(); [DataField("name")] public string ModeTitle = "????"; [DataField("description")] public string Description = string.Empty; [DataField("showInVote")] public bool ShowInVote; [DataField("minPlayers")] public int? MinPlayers; [DataField("maxPlayers")] public int? MaxPlayers; [DataField("rules", customTypeSerializer: typeof(PrototypeIdListSerializer))] public IReadOnlyList Rules { get; private set; } = Array.Empty(); /// /// If specified, the gamemode will only be run with these maps. /// If none are elligible, the global fallback will be used. /// [DataField("supportedMaps", customTypeSerializer: typeof(PrototypeIdSerializer))] public string? MapPool; } }