diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
index 83cc805dbd4..8af6fddc8ff 100644
--- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
+++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
@@ -42,11 +42,13 @@
var/digest_multiplier = 1
var/recycles = FALSE
var/medsensor = TRUE //Does belly sprite come with patient ok/dead light?
+ var/obj/item/device/healthanalyzer/med_analyzer = null
/obj/item/device/dogborg/sleeper/New()
..()
flags |= NOBLUDGEON //No more attack messages
files = new /datum/research/techonly(src)
+ med_analyzer = new /obj/item/device/healthanalyzer
/obj/item/device/dogborg/sleeper/Destroy()
go_out()
@@ -216,6 +218,8 @@
dat += "Eject port: [eject_port]"
if(!cleaning)
dat += "Self-Clean"
+ if(medsensor)
+ dat += "Analyze Patient"
else
dat += "Self-Clean"
if(delivery)
@@ -336,6 +340,8 @@
if(cleaning)
sleeperUI(usr)
return
+ if(href_list["analyze"]) //DO HEALTH ANALYZER STUFF HERE.
+ med_analyzer.scan_mob(patient,hound)
if(href_list["port"])
switch(eject_port)
if("ingestion")
@@ -548,7 +554,8 @@
var/actual_burn = T.getFireLoss() - old_burn
var/damage_gain = actual_brute + actual_burn
drain(-25 * damage_gain) //25*total loss as with voreorgan stats.
- water.add_charge(damage_gain)
+ if(water)
+ water.add_charge(damage_gain)
if(T.stat == DEAD)
if(ishuman(T))
message_admins("[key_name(hound)] has digested [key_name(T)] as a dogborg. ([hound ? "JMP" : "null"])")
@@ -585,10 +592,12 @@
if(ishuman(T))
var/mob/living/carbon/human/Prey = T
volume = (Prey.bloodstr.total_volume + Prey.ingested.total_volume + Prey.touching.total_volume + Prey.weight) * Prey.size_multiplier
- water.add_charge(volume)
+ if(water)
+ water.add_charge(volume)
if(T.reagents)
volume = T.reagents.total_volume
- water.add_charge(volume)
+ if(water)
+ water.add_charge(volume)
if(patient == T)
patient_laststat = null
patient = null
@@ -612,7 +621,7 @@
for(var/tech in tech_item.origin_tech)
files.UpdateTech(tech, tech_item.origin_tech[tech])
synced = FALSE
- if(volume)
+ if(volume && water)
water.add_charge(volume)
if(recycles && T.matter)
for(var/material in T.matter)
@@ -620,14 +629,14 @@
if(istype(T,/obj/item/stack))
var/obj/item/stack/stack = T
total_material *= stack.get_amount()
- if(material == MAT_STEEL)
+ if(material == MAT_STEEL && metal)
metal.add_charge(total_material)
- if(material == "glass")
+ if(material == "glass" && glass)
glass.add_charge(total_material)
if(decompiler)
- if(material == "plastic")
+ if(material == "plastic" && plastic)
plastic.add_charge(total_material)
- if(material == "wood")
+ if(material == "wood" && wood)
wood.add_charge(total_material)
drain(-50 * digested)
else if(istype(target,/obj/effect/decal/remains))