using Content.Server.Roles; using Content.Shared.Preferences; using Content.Shared.Roles; using Robust.Server.Player; using Robust.Shared.Audio; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.GameTicking.Rules.Components; [RegisterComponent, Access(typeof(TraitorRuleSystem))] public sealed partial class TraitorRuleComponent : Component { public List Traitors = new(); [DataField("traitorPrototypeId", customTypeSerializer: typeof(PrototypeIdSerializer))] public string TraitorPrototypeId = "Traitor"; public int TotalTraitors => Traitors.Count; public string[] Codewords = new string[3]; public enum SelectionState { WaitingForSpawn = 0, ReadyToSelect = 1, SelectionMade = 2, } public SelectionState SelectionStatus = SelectionState.WaitingForSpawn; public TimeSpan AnnounceAt = TimeSpan.Zero; public Dictionary StartCandidates = new(); /// /// Path to antagonist alert sound. /// [DataField("greetSoundNotification")] public SoundSpecifier GreetSoundNotification = new SoundPathSpecifier("/Audio/Ambience/Antag/traitor_start.ogg"); }