using Content.Server.StationEvents.Components; using Content.Shared.AlertLevel; using Content.Shared.GameTicking.Components; using Content.Shared.Station.Components; namespace Content.Server.StationEvents.Events; /// /// Handler for events setting the station alert level. /// /// public sealed partial class AlertLevelInterceptionRule : StationEventSystem { [Dependency] private AlertLevelSystem _alertLevel = default!; protected override void Started(Entity ent, ref GameRuleStartedEvent args) { base.Started(ent, ref args); if (!Station.TryGetRandomStation(out var chosenStation)) return; if (!_alertLevel.TryGetLevel(chosenStation.Value.Owner, out var level) || !_alertLevel.TryGetDefaultLevel(chosenStation.Value.Owner, out var defaultLevel) || level != defaultLevel) return; _alertLevel.SetLevel(chosenStation.Value.Owner, ent.Comp1.AlertLevel, force: true); } }