From 1d89533709f2d191994ec55d81e09d11a4ab57fd Mon Sep 17 00:00:00 2001 From: BIGZi0348 Date: Tue, 7 Jan 2025 13:12:21 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=9B=D0=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Body/Systems/RespiratorSystem.cs | 37 ++++++++++++++----- Resources/Locale/ru-RU/_white/cpr/cpr.ftl | 2 + 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/Content.Server/Body/Systems/RespiratorSystem.cs b/Content.Server/Body/Systems/RespiratorSystem.cs index 20945ca3d7..231aba96e2 100644 --- a/Content.Server/Body/Systems/RespiratorSystem.cs +++ b/Content.Server/Body/Systems/RespiratorSystem.cs @@ -301,22 +301,41 @@ public sealed class RespiratorSystem : EntitySystem if (targetState.CurrentState != MobState.Critical) return false; + if (_inventorySystem.TryGetSlotEntity(user, "head", out var helmetUidUser) && + EntityManager.TryGetComponent(helmetUidUser, out var blockerHelmetUser) && + blockerHelmetUser.Enabled) + { + _popupSystem.PopupEntity(Loc.GetString("cpr-helmet-block-user"), user, user); + return false; + } + + if (_inventorySystem.TryGetSlotEntity(target, "head", out var helmetUidTarget) && + EntityManager.TryGetComponent(helmetUidTarget, out var blockerHelmetTarget) && + blockerHelmetTarget.Enabled) + { + _popupSystem.PopupEntity( + Loc.GetString("cpr-helmet-block-target", ("target", Identity.Entity(target, EntityManager))), target, user); + return false; + } + if (_inventorySystem.TryGetSlotEntity(user, "mask", out var maskUidUser) && - EntityManager.TryGetComponent(maskUidUser, out var blockerUser) && - blockerUser.Enabled) + EntityManager.TryGetComponent(maskUidUser, out var blockerMaskUser) && + blockerMaskUser.Enabled) { _popupSystem.PopupEntity(Loc.GetString("cpr-mask-block-user"), user, user); return false; } - if (!_inventorySystem.TryGetSlotEntity(target, "mask", out var maskUidTarget) || - !EntityManager.TryGetComponent(maskUidTarget, out var blockerTarget) || - !blockerTarget.Enabled) - return true; + if (_inventorySystem.TryGetSlotEntity(target, "mask", out var maskUidTarget) && + EntityManager.TryGetComponent(maskUidTarget, out var blockerMaskTarget) && + blockerMaskTarget.Enabled) + { + _popupSystem.PopupEntity( + Loc.GetString("cpr-mask-block-target", ("target", Identity.Entity(target, EntityManager))), target, user); + return false; + } - _popupSystem.PopupEntity( - Loc.GetString("cpr-mask-block-target", ("target", Identity.Entity(target, EntityManager))), target, user); - return false; + return true; } private void DoCPR(EntityUid target, RespiratorComponent comp, EntityUid user) diff --git a/Resources/Locale/ru-RU/_white/cpr/cpr.ftl b/Resources/Locale/ru-RU/_white/cpr/cpr.ftl index a0f3489c61..1c063e7319 100644 --- a/Resources/Locale/ru-RU/_white/cpr/cpr.ftl +++ b/Resources/Locale/ru-RU/_white/cpr/cpr.ftl @@ -1,4 +1,6 @@ cpr-too-late = { CAPITALIZE($target) } мертво +cpr-helmet-block-user = Не могу сделать СЛР в шлеме +cpr-helmet-block-target = Сначала нужно снять шлем с { $target } cpr-mask-block-user = Не могу сделать СЛР в маске cpr-mask-block-target = Сначала нужно снять маску с { $target } cpr-failed = Не удалось произвести СЛР