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);
}
}