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;
}
}