diff --git a/Content.Client/Doors/AirlockSystem.cs b/Content.Client/Doors/AirlockSystem.cs index cc68d09039..112d828b5e 100644 --- a/Content.Client/Doors/AirlockSystem.cs +++ b/Content.Client/Doors/AirlockSystem.cs @@ -95,14 +95,16 @@ public sealed class AirlockSystem : SharedAirlockSystem if (_appearanceSystem.TryGetData(uid, DoorVisuals.Powered, out var powered, args.Component) && powered) { boltedVisible = _appearanceSystem.TryGetData(uid, DoorVisuals.BoltLights, out var lights, args.Component) - && lights && state == DoorState.Closed; + && lights && (state == DoorState.Closed || state == DoorState.Open || state == DoorState.Welded); + emergencyLightsVisible = _appearanceSystem.TryGetData(uid, DoorVisuals.EmergencyLights, out var eaLights, args.Component) && eaLights; unlitVisible = - state == DoorState.Closing + (state == DoorState.Closing || state == DoorState.Opening || state == DoorState.Denying || (state == DoorState.Open && comp.OpenUnlitVisible) - || (_appearanceSystem.TryGetData(uid, DoorVisuals.ClosedLights, out var closedLights, args.Component) && closedLights); + || (_appearanceSystem.TryGetData(uid, DoorVisuals.ClosedLights, out var closedLights, args.Component) && closedLights)) + && !boltedVisible && !emergencyLightsVisible; ; } args.Sprite.LayerSetVisible(DoorVisualLayers.BaseUnlit, unlitVisible); @@ -115,6 +117,7 @@ public sealed class AirlockSystem : SharedAirlockSystem && state != DoorState.Open && state != DoorState.Opening && state != DoorState.Closing + && !boltedVisible ); } }