From 0efea34f143df81cb695844042cd8e2dbdc3445a Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Sun, 22 Jun 2025 23:43:04 -0700 Subject: [PATCH] [MIRROR] Better stairs handling for climbable objects (#11101) Co-authored-by: Will <7099514+Willburd@users.noreply.github.com> --- code/datums/elements/climbable.dm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/datums/elements/climbable.dm b/code/datums/elements/climbable.dm index f20dce07c7..1d99bd1a3c 100644 --- a/code/datums/elements/climbable.dm +++ b/code/datums/elements/climbable.dm @@ -111,16 +111,15 @@ return 1 /// Shakes an object, called from movement so it needs to be cleaned up a bit! -/datum/element/climbable/proc/move_shaken(var/obj/climbed_thing, var/mob/user) +/datum/element/climbable/proc/move_shaken(obj/climbed_thing, atom/oldloc, direction, forced, list/old_locs, momentum_change) SIGNAL_HANDLER - shaken(climbed_thing, null) + if(!forced) // Don't perform this if going up stairs + shaken(climbed_thing, null) /// Shakes an object, if anyone is climbing it, causes them to fall off it. /datum/element/climbable/proc/shaken(var/obj/climbed_thing, var/mob/user) SIGNAL_HANDLER var/list/climbers = LAZYACCESS(current_climbers, climbed_thing) - for(var/i in climbers) - // You cannot shake yourself if(user) // Crates pass null on open because no user if(!LAZYLEN(climbers) || (user in climbers)) @@ -137,6 +136,8 @@ continue if(M.lying) //No spamming this on people. continue + if(M.pulling == climbed_thing) // Pulling stuff up stairs can get weird + continue M.Weaken(3) to_chat(M, span_danger("You topple as \the [climbed_thing] moves under you!"))