bugfixes, vendors instead of 2nd set of tables at arrivals, look down/up, no bonuses from thermals/mesons/etc if using an eye

This commit is contained in:
Matt Atlas
2022-03-14 13:20:20 +01:00
parent 0bfba98119
commit 8cb02360c3
6 changed files with 144 additions and 35 deletions
@@ -2139,3 +2139,51 @@
custom_pain("YOUR EARS ARE DEAFENED BY THE PAIN!", 110, TRUE, E, FALSE)
adjustEarDamage(5, 5, FALSE)
stop_listening()
/mob/living/carbon/human/verb/lookup()
set name = "Look Up"
set desc = "If you want to know what's above."
set category = "IC"
if(client && !is_physically_disabled())
if(z_eye)
reset_view(null)
QDEL_NULL(z_eye)
return
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>")
reset_view(z_eye)
return
to_chat(src, "<span class='notice'>You can see \the [above ? above : "ceiling"].</span>")
else
to_chat(src, "<span class='notice'>You can't look up right now.</span>")
/mob/living/verb/lookdown()
set name = "Look Down"
set desc = "If you want to know what's below."
set category = "IC"
if(client && !is_physically_disabled())
if(z_eye)
reset_view(null)
QDEL_NULL(z_eye)
return
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>")
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>")
reset_view(z_eye)
return
to_chat(src, "<span class='notice'>You can see \the [T ? T : "floor"].</span>")
else
to_chat(src, "<span class='notice'>You can't look below right now.</span>")
@@ -50,14 +50,21 @@
equipment_darkness_modifier = 0
equipment_overlays.Cut()
if(istype(src.head, /obj/item/clothing/head))
add_clothing_protection(head)
if(istype(src.glasses, /obj/item/clothing/glasses))
process_glasses(glasses)
if(istype(src.wear_mask, /obj/item/clothing/mask))
add_clothing_protection(wear_mask)
if(istype(back,/obj/item/rig))
process_rig(back)
var/binoc_check
if(client)
binoc_check = client.view == world.view
else
binoc_check = TRUE
if ((!client || client.eye == src || client.eye == loc || client.eye == z_eye) && binoc_check) // !client is so the unit tests function
if(istype(src.head, /obj/item/clothing/head))
add_clothing_protection(head)
if(istype(src.glasses, /obj/item/clothing/glasses))
process_glasses(glasses)
if(istype(src.wear_mask, /obj/item/clothing/mask))
add_clothing_protection(wear_mask)
if(istype(back,/obj/item/rig))
process_rig(back)
/mob/living/carbon/human/proc/process_glasses(var/obj/item/clothing/glasses/G)
if(G && G.active)
@@ -1331,6 +1331,8 @@
reset_view(null)
else
var/isRemoteObserve = 0
if(z_eye && client?.eye == z_eye && !is_physically_disabled())
isRemoteObserve = 1
if((mRemote in mutations) && remoteview_target)
if(remoteview_target.stat==CONSCIOUS)
isRemoteObserve = 1
+60
View File
@@ -770,3 +770,63 @@
/mob/fall_get_specs(levels_fallen)
return list(mob_size, throw_range)
/mob/living
var/atom/movable/z_observer/z_eye
/atom/movable/z_observer
name = ""
simulated = FALSE
anchored = TRUE
mouse_opacity = FALSE
var/mob/living/owner
/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))
follow()
moved_event.register(owner, src, /atom/movable/z_observer/proc/follow)
/atom/movable/z_observer/proc/follow()
/atom/movable/z_observer/z_up/follow()
forceMove(get_step(owner, UP))
if(isturf(src.loc))
var/turf/T = src.loc
if(T.flags & MIMIC_BELOW)
return
owner.reset_view(null)
owner.z_eye = null
qdel(src)
/atom/movable/z_observer/z_down/follow()
forceMove(get_step(owner, DOWN))
var/turf/T = get_turf(owner)
if(T && (T.flags & MIMIC_BELOW))
return
owner.reset_view(null)
owner.z_eye = null
qdel(src)
/atom/movable/z_observer/Destroy()
moved_event.unregister(owner, src, /atom/movable/z_observer/proc/follow)
owner = null
. = ..()
/atom/movable/z_observer/can_fall()
return FALSE
/atom/movable/z_observer/ex_act()
SHOULD_CALL_PARENT(FALSE)
return
/atom/movable/z_observer/singularity_act()
return
/atom/movable/z_observer/singularity_pull()
return
/atom/movable/z_observer/singuloCanEat()
return