From: exincore Date: Tue, 5 Mar 2024 07:20:38 +0000 (-0600) Subject: Fixed Emag wiping door access without bolting open (#25836) X-Git-Url: https://git.smokeofanarchy.ru/gitweb.cgi?a=commitdiff_plain;h=68bb57bbaf41b84544ccdeb683ad356e2b344cc6;p=space-station-14.git Fixed Emag wiping door access without bolting open (#25836) --- diff --git a/Content.Shared/Doors/Systems/SharedDoorSystem.cs b/Content.Shared/Doors/Systems/SharedDoorSystem.cs index da6a91aff2..b58b7b265e 100644 --- a/Content.Shared/Doors/Systems/SharedDoorSystem.cs +++ b/Content.Shared/Doors/Systems/SharedDoorSystem.cs @@ -81,6 +81,7 @@ public abstract partial class SharedDoorSystem : EntitySystem SubscribeLocalEvent(OnWeldChanged); SubscribeLocalEvent(OnPryTimeModifier); + SubscribeLocalEvent(OnAttemptEmag); SubscribeLocalEvent(OnEmagged); } @@ -120,23 +121,34 @@ public abstract partial class SharedDoorSystem : EntitySystem _activeDoors.Remove(door); } - private void OnEmagged(EntityUid uid, DoorComponent door, ref GotEmaggedEvent args) + private void OnAttemptEmag(EntityUid uid, DoorComponent door, ref OnAttemptEmagEvent args) { if (!TryComp(uid, out var airlock)) + { + args.Handled = true; return; + } if (IsBolted(uid) || !airlock.Powered) + { + args.Handled = true; return; + } - if (door.State == DoorState.Closed) + if (door.State != DoorState.Closed) { - if (!SetState(uid, DoorState.Emagging, door)) - return; - Audio.PlayPredicted(door.SparkSound, uid, args.UserUid, AudioParams.Default.WithVolume(8)); args.Handled = true; } } + private void OnEmagged(EntityUid uid, DoorComponent door, ref GotEmaggedEvent args) + { + if (!SetState(uid, DoorState.Emagging, door)) + return; + Audio.PlayPredicted(door.SparkSound, uid, args.UserUid, AudioParams.Default.WithVolume(8)); + args.Handled = true; + } + #region StateManagement private void OnHandleState(Entity ent, ref AfterAutoHandleStateEvent args) {