make solar flare only open autoclose airlocks (#14635)

* only autoclose airlocks can be opened

* use entity query enum
This commit is contained in:
Slava0135
2023-03-18 13:57:38 +03:00
committed by GitHub
parent 0290e20256
commit 6ea3a13c76

View File

@@ -48,16 +48,17 @@ public sealed class SolarFlare : StationEventSystem
if (_effectTimer < 0)
{
_effectTimer += 1;
foreach (var comp in EntityQuery<PoweredLightComponent>())
var lightQuery = EntityQueryEnumerator<PoweredLightComponent>();
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<DoorComponent>())
var airlockQuery = EntityQueryEnumerator<AirlockComponent, DoorComponent>();
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);
}
}