if (TryComp<PullableComponent>(ent, out var pull) && _pullingSystem.IsPulled(ent, pull))
_pullingSystem.TryStopPull(ent, pull);
+ // Check if the user is pulling anything, and drop it if so
+ if (TryComp<PullerComponent>(ent, out var puller) && TryComp<PullableComponent>(puller.Pulling, out var pullable))
+ _pullingSystem.TryStopPull(puller.Pulling.Value, pullable);
+
var xform = Transform(ent);
var targetCoords = SelectRandomTileInRange(xform, implant.TeleportRadius);
using Content.Shared.Actions;
using Content.Shared.Charges.Components;
using Content.Shared.Charges.Systems;
+using Content.Shared.Hands.Components;
using Content.Shared.Hands.EntitySystems;
using Content.Shared.Interaction;
+using Content.Shared.Movement.Pulling.Components;
+using Content.Shared.Movement.Pulling.Events;
+using Content.Shared.Movement.Pulling.Systems;
using Content.Shared.Ninja.Components;
using Content.Shared.Popups;
using Content.Shared.Examine;
[Dependency] private readonly SharedHandsSystem _hands = default!;
[Dependency] private readonly ExamineSystemShared _examine = default!;
[Dependency] private readonly SharedPopupSystem _popup = default!;
+ [Dependency] private readonly PullingSystem _pullingSystem = default!;
[Dependency] private readonly SharedTransformSystem _transform = default!;
public override void Initialize()
return;
}
+ // Check if the user is BEING pulled, and escape if so
+ if (TryComp<PullableComponent>(user, out var pull) && _pullingSystem.IsPulled(user, pull))
+ _pullingSystem.TryStopPull(user, pull);
+
+ // Check if the user is pulling anything, and drop it if so
+ if (TryComp<PullerComponent>(user, out var puller) && TryComp<PullableComponent>(puller.Pulling, out var pullable))
+ _pullingSystem.TryStopPull(puller.Pulling.Value, pullable);
+
var xform = Transform(user);
_transform.SetCoordinates(user, xform, args.Target);
_transform.AttachToGridOrMap(user, xform);