From 88045afcf01eedd282d98fba3e3430e66745d3a0 Mon Sep 17 00:00:00 2001 From: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com> Date: Wed, 10 Jan 2024 00:05:02 +0200 Subject: [PATCH] Doors will no longer be pried open once the doafter finishes if they shouldn't. (#23818) * Fix bug where prying would succeed even a door could no longer be pried. * Remove redundant call to Resolve * Remove redundant comment --- Content.Shared/Prying/Systems/PryingSystem.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Content.Shared/Prying/Systems/PryingSystem.cs b/Content.Shared/Prying/Systems/PryingSystem.cs index bc37ab035a..36e42723df 100644 --- a/Content.Shared/Prying/Systems/PryingSystem.cs +++ b/Content.Shared/Prying/Systems/PryingSystem.cs @@ -158,10 +158,19 @@ public sealed class PryingSystem : EntitySystem if (args.Target is null) return; - PryingComponent? comp = null; + TryComp(args.Used, out var comp); + + if (!CanPry(uid, args.User, out var message, comp)) + { + if (message != null) + Popup.PopupEntity(Loc.GetString(message), uid, args.User); + return; + } - if (args.Used != null && Resolve(args.Used.Value, ref comp)) - _audioSystem.PlayPredicted(comp.UseSound, args.Used.Value, args.User); + // TODO: When we get airlock prediction make this predicted. + // When that happens also fix the checking function in the Client AirlockSystem. + if (args.Used != null && comp != null) + _audioSystem.PlayPvs(comp.UseSound, args.Used.Value); var ev = new PriedEvent(args.User); RaiseLocalEvent(uid, ref ev); -- 2.51.2