From 86528ec1c8688218048fd6c526176f72b2fb0876 Mon Sep 17 00:00:00 2001 From: nikthechampiongr Date: Thu, 21 Mar 2024 16:15:27 +0200 Subject: [PATCH 1/2] Fix scram! implant keeping you pulled to someone when teleporting you --- Content.Server/Implants/SubdermalImplantSystem.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Content.Server/Implants/SubdermalImplantSystem.cs b/Content.Server/Implants/SubdermalImplantSystem.cs index 8eb274144817..dddd41a2d4af 100644 --- a/Content.Server/Implants/SubdermalImplantSystem.cs +++ b/Content.Server/Implants/SubdermalImplantSystem.cs @@ -19,6 +19,8 @@ using Robust.Shared.Physics.Components; using Robust.Shared.Random; using System.Numerics; +using Content.Shared.Movement.Pulling.Components; +using Content.Shared.Movement.Pulling.Systems; namespace Content.Server.Implants; @@ -34,6 +36,7 @@ public sealed class SubdermalImplantSystem : SharedSubdermalImplantSystem [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly SharedTransformSystem _xform = default!; [Dependency] private readonly ForensicsSystem _forensicsSystem = default!; + [Dependency] private readonly PullingSystem _pullingSystem = default!; private EntityQuery _physicsQuery; @@ -98,6 +101,10 @@ private void OnScramImplant(EntityUid uid, SubdermalImplantComponent component, if (!TryComp(uid, out var implant)) return; + // If we do not stop pulling then if the user is cuffed they will teleport they will be teleporter with their captor. + if (TryComp(ent, out var pull) && _pullingSystem.IsPulled(ent, pull)) + _pullingSystem.TryStopPull(ent, pull); + var xform = Transform(ent); var entityCoords = xform.Coordinates.ToMap(EntityManager, _xform); From c8f59f0670f43318fad3db1a6427e81b5c5d769b Mon Sep 17 00:00:00 2001 From: nikthechampiongr Date: Thu, 21 Mar 2024 18:45:26 +0200 Subject: [PATCH 2/2] Exorcise sleep deprivation speak --- Content.Server/Implants/SubdermalImplantSystem.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Content.Server/Implants/SubdermalImplantSystem.cs b/Content.Server/Implants/SubdermalImplantSystem.cs index dddd41a2d4af..6b58f6eb0920 100644 --- a/Content.Server/Implants/SubdermalImplantSystem.cs +++ b/Content.Server/Implants/SubdermalImplantSystem.cs @@ -101,7 +101,8 @@ private void OnScramImplant(EntityUid uid, SubdermalImplantComponent component, if (!TryComp(uid, out var implant)) return; - // If we do not stop pulling then if the user is cuffed they will teleport they will be teleporter with their captor. + // We need stop the user from being pulled so they don't just get "attached" with whoever is pulling them. + // This can for example happen when the user is cuffed and being pulled. if (TryComp(ent, out var pull) && _pullingSystem.IsPulled(ent, pull)) _pullingSystem.TryStopPull(ent, pull);