Can no longer climb over a railing if the way is blocked on the other side. (#10450)

This commit is contained in:
mikomyazaki
2020-11-03 20:11:58 -03:00
committed by GitHub
parent d08c75b957
commit 6596d8df27
2 changed files with 49 additions and 8 deletions
+8 -8
View File
@@ -278,15 +278,18 @@
/obj/structure/railing/ex_act(severity)
qdel(src)
/obj/structure/railing/can_climb(var/mob/living/user, post_climb_check=0)
/obj/structure/railing/can_climb(var/mob/living/user, climb_dir, post_climb_check=0)
. = ..()
if(. && get_turf(user) == get_turf(src))
if(turf_is_crowded(TRUE))
to_chat(user, SPAN_WARNING("You can't climb there, the way is blocked."))
if(turf_is_crowded(TRUE) || !user.Adjacent(get_step(src, climb_dir)))
to_chat(user, SPAN_DANGER("You can't climb there, the way is blocked."))
return FALSE
/obj/structure/railing/do_climb(mob/living/user)
if(!can_climb(user))
var/climb_dir = get_dir(user, src)
if(get_turf(src) == get_turf(user))
climb_dir = src.dir
if(!can_climb(user, climb_dir))
return
user.visible_message(SPAN_WARNING("\The [user] starts climbing over \the [src]!"))
@@ -296,13 +299,10 @@
LAZYREMOVE(climbers, user)
return
if(!can_climb(user, post_climb_check = TRUE))
if(!can_climb(user, climb_dir, post_climb_check = TRUE))
LAZYREMOVE(climbers, user)
return
var/climb_dir = get_dir(user, src)
if(get_turf(src) == get_turf(user))
climb_dir = src.dir
user.forceMove(get_step(src, climb_dir))
user.visible_message(SPAN_WARNING("\The [user] climbs over \the [src]!"))
LAZYREMOVE(climbers, user)