diff --git a/Content.Shared/Stunnable/SharedStunSystem.cs b/Content.Shared/Stunnable/SharedStunSystem.cs index fac1348cca3..955a85b7524 100644 --- a/Content.Shared/Stunnable/SharedStunSystem.cs +++ b/Content.Shared/Stunnable/SharedStunSystem.cs @@ -94,6 +94,10 @@ using Content.Shared.StatusEffect; using Robust.Shared.Prototypes; using Robust.Shared.Timing; +using Content.Shared.Movement.Pulling.Systems; +using Content.Shared.Pulling.Events; +using Content.Shared.Movement.Pulling.Components; +using Content.Shared.Movement.Pulling.Events; namespace Content.Shared.Stunnable; @@ -134,6 +138,7 @@ public override void Initialize() SubscribeLocalEvent(OnAttempt); SubscribeLocalEvent(OnEquipAttempt); SubscribeLocalEvent(OnUnequipAttempt); + SubscribeLocalEvent(HandleStopPull); SubscribeLocalEvent(OnMobStateChanged); // New Status Effect subscriptions @@ -520,5 +525,20 @@ private void OnUnequipAttempt(EntityUid uid, StunnedComponent stunned, IsUnequip args.Cancel(); } + + private void HandleStopPull(EntityUid uid, StunnedComponent stunned, ref AttemptStopPullingEvent args) + { + if (args.User == null || !Exists(args.User.Value)) + return; + + if (args.User.Value == uid) + { + //TODO: UX feedback. Simply blocking the normal interaction feels like an interface bug + + args.Cancelled = true; + } + + } + #endregion }