diff --git a/code/game/turfs/open_space.dm b/code/game/turfs/open_space.dm index 1606e76c996c..03c18afc06b0 100644 --- a/code/game/turfs/open_space.dm +++ b/code/game/turfs/open_space.dm @@ -16,7 +16,6 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr /turf/open_space/Initialize() ADD_TRAIT(src, TURF_Z_TRANSPARENT_TRAIT, TRAIT_SOURCE_INHERENT) - return INITIALIZE_HINT_LATELOAD /turf/open_space/Entered(atom/movable/entered_movable, atom/old_loc) @@ -48,24 +47,29 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr /turf/open_space/attack_hand(mob/user) if(user.action_busy) return - - var/turf/current_turf = get_turf(src) - if(istype(current_turf, /turf/open_space)) - user.visible_message(SPAN_WARNING("[user] starts climbing down."), SPAN_WARNING("You start climbing down.")) + var/turf/current_turf = get_turf(src) - if(!do_after(user, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) - to_chat(user, SPAN_WARNING("You were interrupted!")) - return + if(!istype(current_turf, /turf/open_space)) + return - user.visible_message(SPAN_WARNING("[user] climbs down."), SPAN_WARNING("You climb down.")) + if(!current_turf.Enter(user)) + return - var/turf/below = SSmapping.get_turf_below(current_turf) - while(istype(below, /turf/open_space)) - below = SSmapping.get_turf_below(below) + user.visible_message(SPAN_WARNING("[user] starts climbing down."), SPAN_WARNING("You start climbing down.")) - user.forceMove(below) + if(!do_after(user, 3 SECONDS, INTERRUPT_ALL, BUSY_ICON_GENERIC)) + to_chat(user, SPAN_WARNING("You were interrupted!")) return + user.visible_message(SPAN_WARNING("[user] climbs down."), SPAN_WARNING("You climb down.")) + + var/turf/below = SSmapping.get_turf_below(current_turf) + while(istype(below, /turf/open_space)) + below = SSmapping.get_turf_below(below) + + user.forceMove(below) + return + /turf/open_space/is_weedable() return NOT_WEEDABLE