From 3fbeb7ccc62a4a61da31acad33afc01a11c76114 Mon Sep 17 00:00:00 2001 From: vincibrv Date: Tue, 4 Mar 2025 14:01:04 +0100 Subject: [PATCH 1/4] ehm --- code/game/turfs/open_space.dm | 41 +++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/code/game/turfs/open_space.dm b/code/game/turfs/open_space.dm index 03c18afc06b0..6654aeba4d03 100644 --- a/code/game/turfs/open_space.dm +++ b/code/game/turfs/open_space.dm @@ -26,25 +26,7 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr /turf/open_space/on_throw_end(atom/movable/thrown_atom) check_fall(thrown_atom) -/turf/open_space/proc/check_fall(atom/movable/movable) - if(movable.flags_atom & NO_ZFALL) - return - - var/height = 1 - var/turf/below = SSmapping.get_turf_below(get_turf(src)) - - while(istype(below, /turf/open_space)) - below = SSmapping.get_turf_below(below) - height++ - - movable.forceMove(below) - movable.onZImpact(below, height) - - -/turf/open_space/attack_alien(mob/user) - attack_hand(user) - -/turf/open_space/attack_hand(mob/user) +/turf/open_space/proc/climb_down(mob/user) if(user.action_busy) return @@ -71,5 +53,26 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr user.forceMove(below) return +/turf/open_space/proc/check_fall(atom/movable/movable) + if(movable.flags_atom & NO_ZFALL) + return + + var/height = 1 + var/turf/below = SSmapping.get_turf_below(get_turf(src)) + + while(istype(below, /turf/open_space)) + below = SSmapping.get_turf_below(below) + height++ + + movable.forceMove(below) + movable.onZImpact(below, height) + + +/turf/open_space/attack_alien(mob/user) + attack_hand(user) + +/turf/open_space/attack_hand(mob/user) + climb_down(user) + /turf/open_space/is_weedable() return NOT_WEEDABLE From edff7933945f8a0e5e4c292beda28758ab14f287 Mon Sep 17 00:00:00 2001 From: vincibrv Date: Tue, 4 Mar 2025 15:12:46 +0100 Subject: [PATCH 2/4] sanity check --- code/game/turfs/open_space.dm | 5 +---- code/game/turfs/turf.dm | 6 ++++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/code/game/turfs/open_space.dm b/code/game/turfs/open_space.dm index 6654aeba4d03..755c730e29c7 100644 --- a/code/game/turfs/open_space.dm +++ b/code/game/turfs/open_space.dm @@ -35,9 +35,6 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr if(!istype(current_turf, /turf/open_space)) return - if(!current_turf.Enter(user)) - return - user.visible_message(SPAN_WARNING("[user] starts climbing down."), SPAN_WARNING("You start climbing down.")) if(!do_after(user, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) @@ -72,7 +69,7 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr attack_hand(user) /turf/open_space/attack_hand(mob/user) - climb_down(user) + src.Enter(user) /turf/open_space/is_weedable() return NOT_WEEDABLE diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index d91fb88fae5c..88109952b860 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -344,6 +344,12 @@ if(!mover.Collide(A)) return FALSE + if(mover.move_intentionally && istype(src, /turf/open_space) && istype(mover,/mob/living)) + var/turf/open_space/space = src + var/mob/living/climber = mover + space.climb_down(climber) + return FALSE + return TRUE //Nothing found to block so return success! /turf/Entered(atom/movable/A) From d1dff5bfdcdabca4d7471a8c85a034b350939b0f Mon Sep 17 00:00:00 2001 From: vincibrv Date: Tue, 4 Mar 2025 18:27:56 +0100 Subject: [PATCH 3/4] harm intent fastfall --- code/game/turfs/open_space.dm | 8 ++++++++ code/game/turfs/turf.dm | 2 ++ 2 files changed, 10 insertions(+) diff --git a/code/game/turfs/open_space.dm b/code/game/turfs/open_space.dm index 755c730e29c7..5770d5ca0e78 100644 --- a/code/game/turfs/open_space.dm +++ b/code/game/turfs/open_space.dm @@ -18,6 +18,14 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr ADD_TRAIT(src, TURF_Z_TRANSPARENT_TRAIT, TRAIT_SOURCE_INHERENT) return INITIALIZE_HINT_LATELOAD +/turf/open_space/Enter(atom/movable/mover, atom/forget) + . = ..() + if(. && mover.move_intentionally && istype(src, /turf/open_space) && istype(mover,/mob/living)) + var/turf/open_space/space = src + var/mob/living/climber = mover + space.climb_down(climber) + return FALSE + /turf/open_space/Entered(atom/movable/entered_movable, atom/old_loc) . = ..() diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 88109952b860..d769a07905bd 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -347,6 +347,8 @@ if(mover.move_intentionally && istype(src, /turf/open_space) && istype(mover,/mob/living)) var/turf/open_space/space = src var/mob/living/climber = mover + if(climber.a_intent == INTENT_HARM) + return TRUE space.climb_down(climber) return FALSE From 914c95c2427b96c76622056470dbd88820f4fa78 Mon Sep 17 00:00:00 2001 From: vincibrv Date: Tue, 4 Mar 2025 18:28:43 +0100 Subject: [PATCH 4/4] hmm --- code/game/turfs/open_space.dm | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/code/game/turfs/open_space.dm b/code/game/turfs/open_space.dm index 5770d5ca0e78..e7fc7c13371a 100644 --- a/code/game/turfs/open_space.dm +++ b/code/game/turfs/open_space.dm @@ -18,14 +18,6 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr ADD_TRAIT(src, TURF_Z_TRANSPARENT_TRAIT, TRAIT_SOURCE_INHERENT) return INITIALIZE_HINT_LATELOAD -/turf/open_space/Enter(atom/movable/mover, atom/forget) - . = ..() - if(. && mover.move_intentionally && istype(src, /turf/open_space) && istype(mover,/mob/living)) - var/turf/open_space/space = src - var/mob/living/climber = mover - space.climb_down(climber) - return FALSE - /turf/open_space/Entered(atom/movable/entered_movable, atom/old_loc) . = ..() @@ -72,12 +64,5 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr movable.forceMove(below) movable.onZImpact(below, height) - -/turf/open_space/attack_alien(mob/user) - attack_hand(user) - -/turf/open_space/attack_hand(mob/user) - src.Enter(user) - /turf/open_space/is_weedable() return NOT_WEEDABLE