mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 12:29:46 +01:00
Can no longer climb over a railing if the way is blocked on the other side. (#10450)
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user