From c8d4f81dc106a0655513947b29fab61b47512407 Mon Sep 17 00:00:00 2001 From: Rane <60792108+Elijahrane@users.noreply.github.com> Date: Tue, 30 Aug 2022 02:15:25 -0400 Subject: [PATCH] Add a tag for immunity from shoe-required step triggers (#10660) --- .../StepTrigger/Systems/ShoesRequiredStepTriggerSystem.cs | 8 ++++++++ Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml | 1 + Resources/Prototypes/Entities/Mobs/Player/silicon.yml | 4 ++++ Resources/Prototypes/tags.yml | 3 +++ 4 files changed, 16 insertions(+) diff --git a/Content.Shared/StepTrigger/Systems/ShoesRequiredStepTriggerSystem.cs b/Content.Shared/StepTrigger/Systems/ShoesRequiredStepTriggerSystem.cs index a1f6338b37..5fc9140dfd 100644 --- a/Content.Shared/StepTrigger/Systems/ShoesRequiredStepTriggerSystem.cs +++ b/Content.Shared/StepTrigger/Systems/ShoesRequiredStepTriggerSystem.cs @@ -1,12 +1,14 @@ using Content.Shared.Examine; using Content.Shared.Inventory; using Content.Shared.StepTrigger.Components; +using Content.Shared.Tag; namespace Content.Shared.StepTrigger.Systems; public sealed class ShoesRequiredStepTriggerSystem : EntitySystem { [Dependency] private readonly InventorySystem _inventory = default!; + [Dependency] private readonly TagSystem _tagSystem = default!; /// public override void Initialize() @@ -17,6 +19,12 @@ public sealed class ShoesRequiredStepTriggerSystem : EntitySystem private void OnStepTriggerAttempt(EntityUid uid, ShoesRequiredStepTriggerComponent component, ref StepTriggerAttemptEvent args) { + if (_tagSystem.HasTag(args.Tripper, "ShoesRequiredStepTriggerImmune")) + { + args.Cancelled = true; + return; + } + if (!TryComp(args.Tripper, out var inventory)) return; diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml index a0dac8114c..66e12ae864 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml @@ -73,6 +73,7 @@ - type: Tag tags: - DoorBumpOpener + - ShoesRequiredStepTriggerImmune - type: MobState thresholds: 0: Alive diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml index f1c5e63f85..0b7d670d38 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml @@ -61,6 +61,9 @@ safe: false - type: StandingState - type: Alerts + - type: Tag + tags: + - ShoesRequiredStepTriggerImmune - type: entity name: drone @@ -162,6 +165,7 @@ autoRot: true - type: Tag tags: + - ShoesRequiredStepTriggerImmune - CannotSuicide - type: entity diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index 5a2f7044a2..3ce890d3fe 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -408,6 +408,9 @@ - type: Tag id: SecwayKeys +- type: Tag + id: ShoesRequiredStepTriggerImmune + - type: Tag id: Sheet