From 096cbdd9a119df36deb606fcded4a7a7e70e7b23 Mon Sep 17 00:00:00 2001 From: Toastical <20125180+Toastical@users.noreply.github.com> Date: Mon, 3 Nov 2025 22:29:27 +0200 Subject: [PATCH] fix tar improperly removing slowdown from turfs (#30866) --- code/game/objects/effects/decals/Cleanable/tar.dm | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/code/game/objects/effects/decals/Cleanable/tar.dm b/code/game/objects/effects/decals/Cleanable/tar.dm index 9b2e0c2ee9f..51d91a3e7a6 100644 --- a/code/game/objects/effects/decals/Cleanable/tar.dm +++ b/code/game/objects/effects/decals/Cleanable/tar.dm @@ -19,18 +19,14 @@ ) AddElement(/datum/element/connect_loc, loc_connections) -/obj/effect/decal/cleanable/tar/Destroy() - if(target) - target.slowdown -= 10 - return ..() - /obj/effect/decal/cleanable/tar/Moved(atom/OldLoc, Dir, Forced) . = ..() target.slowdown -= 10 - target = loc - target.slowdown += 10 - if(!issimulatedturf(target)) // We remove slowdown in Destroy(), so we run this check after adding the slowdown. - qdel(src) + + // Check tar hasn't been destroyed and that loc is a simulated turf. Qdel calls move moveToNullspace(), which in turn calls Moved() + if(!isnull(loc) && issimulatedturf(loc)) + target = loc + target.slowdown += 10 /obj/effect/decal/cleanable/tar/proc/on_atom_entered(datum/source, atom/movable/entered) if(isliving(entered))