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