From 3df736d5710e0ee9c66a450e3df987979efcab3c Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 1 May 2020 14:12:50 -0400 Subject: [PATCH] Allow climbing up and falling through opened plated catwalks --- code/modules/multiz/movement.dm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm index 8ccae7289d..842e71d588 100644 --- a/code/modules/multiz/movement.dm +++ b/code/modules/multiz/movement.dm @@ -48,6 +48,7 @@ var/area/area = get_area(src) if(direction == UP && area.has_gravity() && !can_overcome_gravity()) var/obj/structure/lattice/lattice = locate() in destination.contents + var/obj/structure/catwalk/catwalk = locate() in destination.contents if(lattice) var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1) to_chat(src, "You grab \the [lattice] and start pulling yourself upward...") @@ -57,6 +58,15 @@ else to_chat(src, "You gave up on pulling yourself up.") return 0 + else if(catwalk?.hatch_open) + var/pull_up_time = max(5 SECONDS + (src.movement_delay() * 10), 1) + to_chat(src, "You grab the edge of \the [catwalk] and start pulling yourself upward...") + destination.audible_message("You hear something climbing up \the [catwalk].") + if(do_after(src, pull_up_time)) + to_chat(src, "You pull yourself up.") + else + to_chat(src, "You gave up on pulling yourself up.") + return 0 else if(ismob(src)) //VOREStation Edit Start. Are they a mob, and are they currently flying?? var/mob/H = src if(H.flying) @@ -294,7 +304,7 @@ // Things that prevent objects standing on them from falling into turf below /obj/structure/catwalk/CanFallThru(atom/movable/mover as mob|obj, turf/target as turf) - if(target.z < z) + if((target.z < z) && !hatch_open) return FALSE // TODO - Technically should be density = 1 and flags |= ON_BORDER if(!isturf(mover.loc)) return FALSE // Only let loose floor items fall. No more snatching things off people's hands.