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