From 0cbd5329ea2731899220b572a399fea533ba3c49 Mon Sep 17 00:00:00 2001 From: Inconnu <177014427+Inconnu1337@users.noreply.github.com> Date: Mon, 21 Oct 2024 10:57:51 +0300 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=90=D0=95=D0=91=D0=90=D0=9B=D0=9E.=20?= =?UTF-8?q?=D0=9A=D0=BB=D0=BE=D1=83=D0=BD=D1=8B=20=D0=BC=D0=BE=D0=B3=D1=83?= =?UTF-8?q?=D1=82=20=D1=81=D1=82=D1=80=D0=B5=D0=BB=D1=8F=D1=82=D1=8C=20?= =?UTF-8?q?=D0=B8=D0=B7=20=D0=BE=D1=80=D1=83=D0=B6=D0=B8=D1=8F=20=D0=B5?= =?UTF-8?q?=D1=81=D0=BB=D0=B8=20=D1=8F=D0=B2=D0=BB=D1=8F=D1=8E=D1=82=D1=81?= =?UTF-8?q?=D1=8F=20=D0=B0=D0=BD=D1=82=D0=B0=D0=B3=D0=BE=D0=BD=D0=B8=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D0=BC=D0=B8=20(#654)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Описание PR название ## Почему / Баланс захотелось ## Требования - [х] Я прочитал(а) и следую [Руководство по созданию пулл реквестов](https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html). Я понимаю, что в противном случае мой ПР может быть закрыт по усмотрению мейнтейнера. - [х] Я добавил скриншоты/видео к этому пулл реквесту, демонстрирующие его изменения в игре, **или** этот пулл реквест не требует демонстрации в игре **Чейнджлог** :cl: Inconnu - tweak: Теперь клоун может стрелять из оружия если является антагонистом(при попытке залезть на стол он все равно упадет) --- .../Weapons/Ranged/Systems/GunSystem.cs | 2 +- .../Interaction/SharedInteractionSystem.Clumsy.cs | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs index e53860efd17..eb9143f8d4c 100644 --- a/Content.Server/Weapons/Ranged/Systems/GunSystem.cs +++ b/Content.Server/Weapons/Ranged/Systems/GunSystem.cs @@ -74,7 +74,7 @@ public override void Shoot(EntityUid gunUid, GunComponent gun, List<(EntityUid? // Try a clumsy roll // TODO: Who put this here - if (TryComp(user, out var clumsy) && gun.ClumsyProof == false) + if (TryComp(user, out var clumsy) && gun.ClumsyProof == false && !_interaction.GetAntagonistStatus(user.Value, clumsy)) // ADT-Clumsy-Tweak { for (var i = 0; i < ammo.Count; i++) { diff --git a/Content.Shared/Interaction/SharedInteractionSystem.Clumsy.cs b/Content.Shared/Interaction/SharedInteractionSystem.Clumsy.cs index 9e45847e078..bcf898fddb9 100644 --- a/Content.Shared/Interaction/SharedInteractionSystem.Clumsy.cs +++ b/Content.Shared/Interaction/SharedInteractionSystem.Clumsy.cs @@ -1,10 +1,25 @@ using Content.Shared.Interaction.Components; using Robust.Shared.Random; +using Content.Shared.Roles; // ADT-Clumsy-Tweak +using Content.Shared.Mind; // ADT-Clumsy-Tweak namespace Content.Shared.Interaction { public partial class SharedInteractionSystem { + [Dependency] private readonly SharedRoleSystem _role = default!; // ADT-Clumsy-Tweak + [Dependency] private readonly SharedMindSystem _mind = default!; // ADT-Clumsy-Tweak + + // ADT-Clumsy-Tweak-Start + public bool GetAntagonistStatus(EntityUid uid, ClumsyComponent component) + { + var mindId = _mind.GetMind(uid); + if (mindId == null) + return false; + + return _role.MindIsAntagonist(mindId); + } + // ADT-Clumsy-Tweak-End public bool RollClumsy(ClumsyComponent component, float chance) { return component.Running && _random.Prob(chance);