diff --git a/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs b/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs index 33794ba169..b347c6da16 100644 --- a/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs +++ b/Content.Shared/Movement/Pulling/Systems/PullingSystem.cs @@ -201,13 +201,18 @@ public sealed class PullingSystem : EntitySystem } } + var oldPuller = pullableComp.Puller; + pullableComp.PullJointId = null; + pullableComp.Puller = null; + Dirty(pullableUid, pullableComp); + // No more joints with puller -> force stop pull. - if (TryComp(pullableComp.Puller, out var pullerComp)) + if (TryComp(oldPuller, out var pullerComp)) { - var pullerUid = pullableComp.Puller.Value; + var pullerUid = oldPuller.Value; _alertsSystem.ClearAlert(pullerUid, AlertType.Pulling); pullerComp.Pulling = null; - Dirty(pullableComp.Puller.Value, pullerComp); + Dirty(oldPuller.Value, pullerComp); // Messaging var message = new PullStoppedMessage(pullerUid, pullableUid); @@ -218,9 +223,6 @@ public sealed class PullingSystem : EntitySystem RaiseLocalEvent(pullableUid, message); } - pullableComp.PullJointId = null; - pullableComp.Puller = null; - Dirty(pullableUid, pullableComp); _alertsSystem.ClearAlert(pullableUid, AlertType.Pulled); }