using Content.Server.DeltaV.Station.Systems; using Content.Server.Station.Systems; using Content.Shared.Access; using Robust.Shared.Prototypes; namespace Content.Server.DeltaV.Station.Components; /// /// Denotes a station has no captain and holds data for automatic ACO systems /// [RegisterComponent, Access(typeof(CaptainStateSystem), typeof(StationSystem))] public sealed partial class CaptainStateComponent : Component { /// /// Denotes wether the entity has a captain or not /// /// /// Assume no captain unless specified /// [DataField] public bool HasCaptain; /// /// The localization ID used for announcing the cancellation of ACO requests /// [DataField] public LocId RevokeACOMessage = "captain-arrived-revoke-aco-announcement"; /// /// The localization ID for requesting an ACO vote when AA will be unlocked /// [DataField] public LocId ACORequestWithAAMessage = "no-captain-request-aco-vote-with-aa-announcement"; /// /// The localization ID for requesting an ACO vote when AA will not be unlocked /// [DataField] public LocId ACORequestNoAAMessage = "no-captain-request-aco-vote-announcement"; /// /// Set after ACO has been requested to avoid duplicate calls /// [DataField] public bool IsACORequestActive; /// /// Used to denote that AA has been brought into the round either from captain or safe. /// [DataField] public bool IsAAInPlay; /// /// The localization ID for announcing that AA has been unlocked for ACO /// [DataField] public LocId AAUnlockedMessage = "no-captain-aa-unlocked-announcement"; /// /// The access level to grant to spare ID cabinets /// [DataField] public ProtoId ACOAccess = "Command"; }