Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com> Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
37 lines
1.3 KiB
C#
37 lines
1.3 KiB
C#
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 readonly List<EntityUid> TraitorMinds = new();
|
|
|
|
[DataField("traitorPrototypeId", customTypeSerializer: typeof(PrototypeIdSerializer<AntagPrototype>))]
|
|
public string TraitorPrototypeId = "Traitor";
|
|
|
|
public int TotalTraitors => TraitorMinds.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<IPlayerSession, HumanoidCharacterProfile> StartCandidates = new();
|
|
|
|
/// <summary>
|
|
/// Path to antagonist alert sound.
|
|
/// </summary>
|
|
[DataField("greetSoundNotification")]
|
|
public SoundSpecifier GreetSoundNotification = new SoundPathSpecifier("/Audio/Ambience/Antag/traitor_start.ogg");
|
|
}
|