using Content.Server.GameTicking.Rules.Configurations; using Content.Shared.Dataset; using Content.Shared.Roles; using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; using Robust.Shared.Utility; namespace Content.Server.GameTicking.Rules.Configurations; public sealed class NukeopsRuleConfiguration : GameRuleConfiguration { public override string Id => "Nukeops"; [DataField("minPlayers")] public int MinPlayers = 15; [DataField("playersPerOperative")] public int PlayersPerOperative = 5; [DataField("maxOps")] public int MaxOperatives = 5; [DataField("spawnEntityProto", customTypeSerializer: typeof(PrototypeIdSerializer))] public string SpawnEntityPrototype = "MobHumanNukeOp"; [DataField("spawnPointProto", customTypeSerializer: typeof(PrototypeIdSerializer))] public string SpawnPointPrototype = "SpawnPointNukies"; [DataField("ghostSpawnPointProto", customTypeSerializer: typeof(PrototypeIdSerializer))] public string GhostSpawnPointProto = "SpawnPointGhostNukeOperative"; [DataField("commanderRoleProto", customTypeSerializer: typeof(PrototypeIdSerializer))] public string CommanderRolePrototype = "NukeopsCommander"; [DataField("operativeRoleProto", customTypeSerializer: typeof(PrototypeIdSerializer))] public string OperativeRoleProto = "Nukeops"; [DataField("commanderStartingGearProto", customTypeSerializer: typeof(PrototypeIdSerializer))] public string CommanderStartGearPrototype = "SyndicateCommanderGearFull"; [DataField("medicStartGearProto", customTypeSerializer: typeof(PrototypeIdSerializer))] public string MedicStartGearPrototype = "SyndicateOperativeMedicFull"; [DataField("operativeStartGearProto", customTypeSerializer: typeof(PrototypeIdSerializer))] public string OperativeStartGearPrototype = "SyndicateOperativeGearFull"; [DataField("eliteNames", customTypeSerializer: typeof(PrototypeIdSerializer))] public string EliteNames = "SyndicateNamesElite"; [DataField("normalNames", customTypeSerializer: typeof(PrototypeIdSerializer))] public string NormalNames = "SyndicateNamesNormal"; [DataField("outpostMap", customTypeSerializer: typeof(ResourcePathSerializer))] public ResourcePath? NukieOutpostMap = new("/Maps/nukieplanet.yml"); [DataField("shuttleMap", customTypeSerializer: typeof(ResourcePathSerializer))] public ResourcePath? NukieShuttleMap = new("/Maps/infiltrator.yml"); [DataField("greetingSound", customTypeSerializer: typeof(SoundSpecifierTypeSerializer))] public SoundSpecifier? GreetSound = new SoundPathSpecifier("/Audio/Misc/nukeops.ogg"); }