fixes bugs with the leaning

This commit is contained in:
Matt Atlas
2022-03-14 14:11:33 +01:00
parent 8cb02360c3
commit 04587f4af6
2 changed files with 9 additions and 6 deletions
@@ -2154,7 +2154,7 @@
var/turf/above = GetAbove(src)
if(TURF_IS_MIMICING(above))
z_eye = new /atom/movable/z_observer/z_up(src, src)
to_chat(src, "<span class='notice'>You look up.</span>")
visible_message(SPAN_NOTICE("[src] looks up."), SPAN_NOTICE("You look up."))
reset_view(z_eye)
return
to_chat(src, "<span class='notice'>You can see \the [above ? above : "ceiling"].</span>")
@@ -2174,14 +2174,14 @@
var/turf/T = get_turf(src)
if(TURF_IS_MIMICING(T) && HasBelow(T.z))
z_eye = new /atom/movable/z_observer/z_down(src, src)
to_chat(src, "<span class='notice'>You look down.</span>")
visible_message(SPAN_NOTICE("[src] looks below."), SPAN_NOTICE("You look below."))
reset_view(z_eye)
return
else
T = get_step(T, dir)
if(TURF_IS_MIMICING(T) && HasBelow(T.z))
z_eye = new /atom/movable/z_observer/z_down(src, src, TRUE)
to_chat(src, "<span class='notice'>You lean over to look down in front of you.</span>")
visible_message(SPAN_NOTICE("[src] leans over to look below."), SPAN_NOTICE("You lean over to look below."))
reset_view(z_eye)
return
to_chat(src, "<span class='notice'>You can see \the [T ? T : "floor"].</span>")
+6 -3
View File
@@ -780,12 +780,15 @@
anchored = TRUE
mouse_opacity = FALSE
var/mob/living/owner
var/tile_shifted = FALSE
/atom/movable/z_observer/Initialize(mapload, var/mob/living/user, var/tile_shift = FALSE)
. = ..()
owner = user
if(tile_shift)
step(get_step(owner, owner.dir))
var/turf/T = get_step(owner, owner.dir)
forceMove(T)
tile_shifted = TRUE
follow()
moved_event.register(owner, src, /atom/movable/z_observer/proc/follow)
@@ -802,8 +805,8 @@
qdel(src)
/atom/movable/z_observer/z_down/follow()
forceMove(get_step(owner, DOWN))
var/turf/T = get_turf(owner)
forceMove(get_step(tile_shifted ? src : owner, DOWN))
var/turf/T = get_turf(tile_shifted ? get_step(owner, owner.dir) : owner)
if(T && (T.flags & MIMIC_BELOW))
return
owner.reset_view(null)