Health Analyzer Upgrading

This commit is contained in:
Fox-McCloud
2015-03-23 19:44:06 -04:00
parent a45c9b987d
commit 69bc15604d
7 changed files with 62 additions and 60 deletions
@@ -43,6 +43,8 @@
/obj/machinery/smartfridge/extract/accept_check(var/obj/item/O as obj)
if(istype(O,/obj/item/slime_extract))
return 1
if(istype(O,/obj/item/device/slime_scanner))
return 1
return 0
/obj/machinery/smartfridge/medbay
+1 -1
View File
@@ -891,7 +891,7 @@
products = list(/obj/item/weapon/reagent_containers/glass/bottle/antitoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline = 4,
/obj/item/weapon/reagent_containers/glass/bottle/stoxin = 4,/obj/item/weapon/reagent_containers/glass/bottle/toxin = 4,
/obj/item/weapon/reagent_containers/syringe/antiviral = 4,/obj/item/weapon/reagent_containers/syringe = 12,
/obj/item/device/healthanalyzer = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4, /obj/item/weapon/reagent_containers/dropper = 2,
/obj/item/device/healthanalyzer = 5,/obj/item/device/healthupgrade = 5,/obj/item/weapon/reagent_containers/glass/beaker = 4, /obj/item/weapon/reagent_containers/dropper = 2,
/obj/item/stack/medical/advanced/bruise_pack = 3, /obj/item/stack/medical/advanced/ointment = 3, /obj/item/stack/medical/splint = 2, /obj/item/device/sensor_device = 2)
contraband = list(/obj/item/weapon/reagent_containers/pill/tox = 3,/obj/item/weapon/reagent_containers/pill/stox = 4,/obj/item/weapon/reagent_containers/pill/antitox = 6)
+48 -31
View File
@@ -106,6 +106,7 @@ REAGENT SCANNER
throw_range = 10
m_amt = 200
origin_tech = "magnets=1;biotech=1"
var/upgraded = 0
var/mode = 1;
@@ -171,21 +172,11 @@ REAGENT SCANNER
OX = fake_oxy > 50 ? "\red Severe oxygen deprivation detected\blue" : "Subject bloodstream oxygen level normal"
user.show_message("[OX] | [TX] | [BU] | [BR]")
if (istype(M, /mob/living/carbon))
if(M:reagents.total_volume > 0)
var/unknown = 0
var/reagentdata[0]
if(M:reagents.total_volume > 0 && upgraded)
user.show_message("\blue Reagents detected in subject's blood:")
for(var/A in M.reagents.reagent_list)
var/datum/reagent/R = A
if(R.scannable)
reagentdata["[R.id]"] = "\t \blue [round(M.reagents.get_reagent_amount(R.id), 1)]u [R.name]"
else
unknown++
if(reagentdata.len)
user.show_message("\blue Beneficial reagents detected in subject's blood:")
for(var/d in reagentdata)
user.show_message(reagentdata[d])
if(unknown)
user.show_message(text("\red Warning: Unknown substance[(unknown>1)?"s":""] detected in subject's blood."))
user.show_message("\t \blue [M.reagents.get_reagent_amount(R.id)]u [R.name]")
if(M:virus2.len)
var/mob/living/carbon/C = M
for (var/ID in C.virus2)
@@ -252,6 +243,30 @@ REAGENT SCANNER
if(0)
usr << "The scanner no longer shows limb damage."
/obj/item/device/healthanalyzer/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/device/healthupgrade))
if(upgraded)
user << "<span class='notice'>You have already installed an upgraded in the [src].</span>"
else
user << "<span class='notice'>You install the upgrade in the [src].</span>"
overlays += "advanced"
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
upgraded = 1
qdel(W)
/obj/item/device/healthanalyzer/advanced
upgraded = 1
/obj/item/device/healthanalyzer/advanced/New()
overlays += "advanced"
/obj/item/device/healthupgrade
name = "Health Analyzer Upgrade"
icon_state = "healthupgrade"
desc = "An upgrade unit that can be installed on a health analyzer for expanded functionality."
w_class = 1.0
origin_tech = "magnets=2;biotech=2"
/obj/item/device/analyzer
desc = "A hand-held environmental scanner which reports current gas levels."
@@ -464,35 +479,37 @@ REAGENT SCANNER
throwforce = 0
throw_speed = 3
throw_range = 7
// matter = list("metal" = 30,"glass" = 20)
m_amt = 30
g_amt = 20
/obj/item/device/slime_scanner/attack(mob/living/M as mob, mob/living/user as mob)
if (!isslime(M))
user << "<B>This device can only scan slimes!</B>"
user.show_message("<span class='warning'>This device can only scan slimes!</span>", 1)
return
var/mob/living/carbon/slime/T = M
user.show_message("Slime scan results:")
user.show_message(text("[T.colour] [] slime", T.is_adult ? "adult" : "baby"))
user.show_message(text("Nutrition: [T.nutrition]/[]", T.get_max_nutrition()))
user.show_message("Slime scan results:", 1)
user.show_message(text("[T.colour] [] slime", T.is_adult ? "adult" : "baby"), 1)
user.show_message(text("Nutrition: [T.nutrition]/[]", T.get_max_nutrition()), 1)
if (T.nutrition < T.get_starve_nutrition())
user.show_message("<span class='alert'>Warning: slime is starving!</span>")
user.show_message("<span class='warning'>Warning: slime is starving!</span>", 1)
else if (T.nutrition < T.get_hunger_nutrition())
user.show_message("<span class='warning'>Warning: slime is hungry</span>")
user.show_message("Electric change strength: [T.powerlevel]")
user.show_message("Health: [T.health]")
user.show_message("<span class='warning'>Warning: slime is hungry</span>", 1)
user.show_message("Electric change strength: [T.powerlevel]", 1)
user.show_message("Health: [T.health]", 1)
if (T.slime_mutation[4] == T.colour)
user.show_message("This slime does not evolve any further")
user.show_message("This slime does not evolve any further.", 1)
else
if (T.slime_mutation[3] == T.slime_mutation[4])
if (T.slime_mutation[2] == T.slime_mutation[1])
user.show_message(text("Possible mutation: []", T.slime_mutation[3]))
user.show_message("Genetic destability: [T.mutation_chance/2]% chance of mutation on splitting")
user.show_message("Possible mutation: [T.slime_mutation[3]]", 1)
user.show_message("Genetic destability: [T.mutation_chance/2]% chance of mutation on splitting", 1)
else
user.show_message(text("Possible mutations: [], [], [] (x2)", T.slime_mutation[1], T.slime_mutation[2], T.slime_mutation[3]))
user.show_message("Genetic destability: [T.mutation_chance]% chance of mutation on splitting")
user.show_message("Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]] (x2)", 1)
user.show_message("Genetic destability: [T.mutation_chance]% chance of mutation on splitting", 1)
else
user.show_message(text("Possible mutations: [], [], [], []", T.slime_mutation[1], T.slime_mutation[2], T.slime_mutation[3], T.slime_mutation[4]))
user.show_message("Genetic destability: [T.mutation_chance]% chance of mutation on splitting")
user.show_message("Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]], [T.slime_mutation[4]]", 1)
user.show_message("Genetic destability: [T.mutation_chance]% chance of mutation on splitting", 1)
if (T.cores > 1)
user.show_message("Anomalious slime core amount detected")
user.show_message("Growth progress: [T.amount_grown]/10")
user.show_message("Anomalious slime core amount detected", 1)
user.show_message("Growth progress: [T.amount_grown]/10", 1)
@@ -23,7 +23,6 @@ datum
var/nutriment_factor = 0
var/custom_metabolism = REAGENTS_METABOLISM
var/overdose = 0
var/scannable = 0 //shows up on health analyzers
//var/list/viruses = list()
var/color = "#000000" // rgb: 0, 0, 0 (does not support alpha channels - yet!)
@@ -325,7 +324,6 @@ datum
description = "Dylovene is a broad-spectrum antitoxin."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob, var/alien)
if(!M) M = holder.my_atom
@@ -504,7 +502,6 @@ datum
description = "Inaprovaline is a synaptic stimulant and cardiostimulant. Commonly used to stabilize patients."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob, var/alien)
if(!M) M = holder.my_atom
@@ -1011,7 +1008,6 @@ datum
description = "Ryetalyn can cure all genetic abnomalities."
reagent_state = SOLID
color = "#C8A5DC" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1062,7 +1058,6 @@ datum
description = "Most probably know this as Tylenol, but this chemical is a mild, simple painkiller."
reagent_state = LIQUID
color = "#C855DC"
scannable = 1
custom_metabolism = 0.2 // Lasts 2.5 minutes for 15 units
on_mob_life(var/mob/living/M as mob)
@@ -1103,7 +1098,6 @@ datum
description = "A simple, yet effective painkiller."
reagent_state = LIQUID
color = "#C8A5DC"
scannable = 1
custom_metabolism = 0.2 // Lasts 2.5 minutes for 15 units
on_mob_life(var/mob/living/M as mob)
@@ -1119,7 +1113,6 @@ datum
reagent_state = LIQUID
color = "#C805DC"
custom_metabolism = 0.3 // Lasts 1.5 minutes for 15 units
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1461,7 +1454,6 @@ datum
description = "Leporazine can be use to stabilize an individuals body temperature."
reagent_state = LIQUID
color = "#E9D66B" // rgb: 233, 214, 107
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1512,7 +1504,6 @@ datum
description = "Kelotane is a drug used to treat burns."
reagent_state = LIQUID
color = "#ECD540" // rgb: 236, 213, 64
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(M.stat == 2.0)
@@ -1529,7 +1520,6 @@ datum
description = "Dermaline is the next step in burn medication. Works twice as good as kelotane and enables the body to restore even the direst heat-damaged tissue."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob, var/alien)
if(M.stat == 2.0) //THE GUY IS **DEAD**! BEREFT OF ALL LIFE HE RESTS IN PEACE etc etc. He does NOT metabolise shit anymore, god DAMN
@@ -1546,7 +1536,6 @@ datum
description = "Dexalin is used in the treatment of oxygen deprivation."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob, var/alien)
if(M.stat == 2.0)
@@ -1569,7 +1558,6 @@ datum
description = "Dexalin Plus is used in the treatment of oxygen deprivation. Its highly effective."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob, var/alien)
if(M.stat == 2.0)
@@ -1592,7 +1580,6 @@ datum
description = "Tricordrazine is a highly potent stimulant, originally derived from cordrazine. Can be used to treat a wide range of injuries."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob, var/alien)
if(M.stat == 2.0)
@@ -1666,7 +1653,6 @@ datum
description = "Synaptizine is a synaptic stimulant that can also be used to treat certain diseases."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1704,7 +1690,6 @@ datum
description = "Hyronalin is a medicinal drug used to counter the effect of radiation poisoning."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1718,7 +1703,6 @@ datum
description = "Arithrazine is an unstable medication used for the most extreme cases of radiation poisoning."
reagent_state = LIQUID
color = "#BFFF00" // rgb: 191, 255, 0
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(M.stat == 2.0)
@@ -1737,7 +1721,6 @@ datum
description = "Alkysine is a drug used to lessen the damage to neurological tissue after a catastrophic injury. Can heal brain tissue."
reagent_state = LIQUID
color = "#F77FBE" // rgb: 247, 127, 190
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1751,7 +1734,6 @@ datum
description = "Heals eye damage"
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1772,7 +1754,6 @@ datum
description = "Heals ear damage."
reagent_state = LIQUID
color = "#6600FF" // rgb: 100, 165, 255
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1787,7 +1768,6 @@ datum
description = "Used to encourage recovery of internal organs and nervous systems. Medicate cautiously."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1809,7 +1789,6 @@ datum
description = "Bicaridine is an analgesic medication and can be used to treat blunt trauma."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob, var/alien)
if(M.stat == 2.0)
@@ -1841,7 +1820,6 @@ datum
description = "A chemical mixture with almost magical healing powers. Its main limitation is that the targets body temperature must be under 170K for it to metabolise correctly."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1859,7 +1837,6 @@ datum
description = "A liquid compound similar to that used in the cloning process. Can be used to 'finish' clones that get ejected early when used in conjunction with a cryo tube."
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1878,7 +1855,6 @@ datum
description = "A powder derived from fish toxin, this substance can effectively treat genetic damage in humanoids, though excessive consumption has side effects."
reagent_state = SOLID
color = "#669900" // rgb: 102, 153, 0
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1906,7 +1882,6 @@ datum
description = "An all-purpose antiviral agent."
reagent_state = LIQUID
color = "#228B22" // rgb: 34, 139, 34
scannable = 1
on_mob_life(var/mob/living/M as mob)
..()
@@ -2092,7 +2067,6 @@ datum
description = "A powerful oxidizer that reacts with ethanol."
reagent_state = SOLID
color = "#605048" // rgb: 96, 80, 72
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -2188,7 +2162,6 @@ datum
reagent_state = LIQUID
nutriment_factor = 10 * REAGENTS_METABOLISM
color = "#BBEDA4" // rgb: 187, 237, 164
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -45,6 +45,16 @@
build_path = /obj/item/device/robotanalyzer
category = list("Medical")
/datum/design/healthanalyzer_upgrade
name = "Health Analyzer Upgrade"
desc = "An upgrade unit for expanding the functionality of a health analyzer."
id = "healthanalyzer_upgrade"
req_tech = list("biotech" = 2, "magnets" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 20, "$glass" = 20)
build_path = /obj/item/device/healthupgrade
category = list("Medical")
/datum/design/defib
name = "Defibrillator"
desc = "A device that delivers powerful shocks to detachable paddles that resuscitate incapacitated patients."