diff --git a/Content.Server/StationEvents/Events/SolarFlare.cs b/Content.Server/StationEvents/Events/SolarFlare.cs index 1baf45862b..9c1b3114db 100644 --- a/Content.Server/StationEvents/Events/SolarFlare.cs +++ b/Content.Server/StationEvents/Events/SolarFlare.cs @@ -48,16 +48,17 @@ public sealed class SolarFlare : StationEventSystem if (_effectTimer < 0) { _effectTimer += 1; - foreach (var comp in EntityQuery()) + var lightQuery = EntityQueryEnumerator(); + while (lightQuery.MoveNext(out var uid, out var light)) { if (RobustRandom.Prob(_event.LightBreakChancePerSecond)) - _poweredLight.TryDestroyBulb(comp.Owner, comp); + _poweredLight.TryDestroyBulb(uid, light); } - - foreach (var comp in EntityQuery()) + var airlockQuery = EntityQueryEnumerator(); + while (airlockQuery.MoveNext(out var uid, out var airlock, out var door)) { - if (RobustRandom.Prob(_event.DoorToggleChancePerSecond)) - _door.TryToggleDoor(comp.Owner, comp); + if (airlock.AutoClose && RobustRandom.Prob(_event.DoorToggleChancePerSecond)) + _door.TryToggleDoor(uid, door); } }