diff --git a/Content.Server/DeltaV/Station/Components/CaptainStateComponent.cs b/Content.Server/DeltaV/Station/Components/CaptainStateComponent.cs index 96d7c441071..d432e9ea6d0 100644 --- a/Content.Server/DeltaV/Station/Components/CaptainStateComponent.cs +++ b/Content.Server/DeltaV/Station/Components/CaptainStateComponent.cs @@ -18,7 +18,7 @@ public sealed partial class CaptainStateComponent : Component /// Assume no captain unless specified /// [DataField] - public bool HasCaptain; + public bool HasCaptain = false; /// /// The localization ID used for announcing the cancellation of ACO requests @@ -42,13 +42,13 @@ public sealed partial class CaptainStateComponent : Component /// Set after ACO has been requested to avoid duplicate calls /// [DataField] - public bool IsACORequestActive; + public bool IsACORequestActive = false; /// /// Used to denote that AA has been brought into the round either from captain or safe. /// [DataField] - public bool IsAAInPlay; + public bool IsAAInPlay = false; /// /// The localization ID for announcing that AA has been unlocked for ACO diff --git a/Content.Server/DeltaV/Station/Systems/CaptainStateSystem.cs b/Content.Server/DeltaV/Station/Systems/CaptainStateSystem.cs index 38475da89be..c790b22f782 100644 --- a/Content.Server/DeltaV/Station/Systems/CaptainStateSystem.cs +++ b/Content.Server/DeltaV/Station/Systems/CaptainStateSystem.cs @@ -46,6 +46,12 @@ public override void Update(float frameTime) var query = EntityQueryEnumerator(); while (query.MoveNext(out var station, out var captainState)) { + if (currentTime < _acoDelay && captainState.IsACORequestActive == true) // Avoid timing issues. No need to run before _acoDelay is reached anyways. + { + Log.Error($"{captainState} IsACORequestActive true before ACO request time."); + captainState.IsACORequestActive = false; + } + if (captainState.HasCaptain) HandleHasCaptain(station, captainState); else