Merge pull request #5534 from Hubblenaut/master

Fixes painkillers leaving the body way too fast and adds minor feature to health analyzers
This commit is contained in:
Mloc
2014-07-09 10:41:22 +01:00
2 changed files with 42 additions and 5 deletions

View File

@@ -92,7 +92,7 @@ REAGENT SCANNER
usr << "\red You don't have the dexterity to do this!"
return
user.visible_message("<span class='notice'> [user] has analyzed [M]'s vitals.","<span class='notice'> You have analyzed [M]'s vitals.")
if (!istype(M, /mob/living/carbon) || (ishuman(M) && (M:species.flags & IS_SYNTHETIC)))
//these sensors are designed for organic life
user.show_message("\blue Analyzing Results for ERROR:\n\t Overall Status: ERROR")
@@ -102,7 +102,7 @@ REAGENT SCANNER
user.show_message("\red <b>Warning: Blood Level ERROR: --% --cl.\blue Type: ERROR")
user.show_message("\blue Subject's pulse: <font color='red'>-- bpm.</font>")
return
var/fake_oxy = max(rand(1,40), M.getOxyLoss(), (300 - (M.getToxLoss() + M.getFireLoss() + M.getBruteLoss())))
var/OX = M.getOxyLoss() > 50 ? "<b>[M.getOxyLoss()]</b>" : M.getOxyLoss()
var/TX = M.getToxLoss() > 50 ? "<b>[M.getToxLoss()]</b>" : M.getToxLoss()
@@ -141,7 +141,20 @@ REAGENT SCANNER
user.show_message("[OX] | [TX] | [BU] | [BR]")
if (istype(M, /mob/living/carbon))
if(M:reagents.total_volume > 0)
user.show_message(text("\red Warning: Unknown substance detected in subject's blood."))
var/unknown = 0
var/reagentdata[0]
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."))
if(M:virus2.len)
var/mob/living/carbon/C = M
for (var/ID in C.virus2)
@@ -154,8 +167,8 @@ REAGENT SCANNER
for(var/datum/disease/D in M.viruses)
if(!D.hidden[SCANNER])
user.show_message(text("\red <b>Warning: [D.form] Detected</b>\nName: [D.name].\nType: [D.spread].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure]"))
if (M.reagents && M.reagents.get_reagent_amount("inaprovaline"))
user.show_message("\blue Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.")
// if (M.reagents && M.reagents.get_reagent_amount("inaprovaline"))
// user.show_message("\blue Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.")
if (M.has_brain_worms())
user.show_message("\red Subject suffering from aberrant brain activity. Recommend further scanning.")
else if (M.getBrainLoss() >= 100 || istype(M, /mob/living/carbon/human) && M:brain_op_stage == 4.0)

View File

@@ -22,6 +22,7 @@ datum
var/custom_metabolism = REAGENTS_METABOLISM
var/overdose = 0
var/overdose_dam = 1
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!)
@@ -408,6 +409,7 @@ datum
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE*2
scannable = 1
on_mob_life(var/mob/living/M as mob, var/alien)
if(!M) M = holder.my_atom
@@ -778,6 +780,8 @@ datum
reagent_state = LIQUID
color = "#C855DC"
overdose = 60
scannable = 1
custom_metabolism = 0.025 // Lasts 10 minutes for 15 units
on_mob_life(var/mob/living/M as mob)
if (volume > overdose)
@@ -792,6 +796,8 @@ datum
reagent_state = LIQUID
color = "#C8A5DC"
overdose = 30
scannable = 1
custom_metabolism = 0.025 // Lasts 10 minutes for 15 units
on_mob_life(var/mob/living/M as mob)
if (volume > overdose)
@@ -806,6 +812,7 @@ datum
reagent_state = LIQUID
color = "#C805DC"
overdose = 20
custom_metabolism = 0.25 // Lasts 10 minutes for 15 units
on_mob_life(var/mob/living/M as mob)
if (volume > overdose)
@@ -996,6 +1003,7 @@ datum
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1031,6 +1039,7 @@ datum
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(M.stat == 2.0)
@@ -1048,6 +1057,7 @@ datum
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE/2
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
@@ -1065,6 +1075,7 @@ datum
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE
scannable = 1
on_mob_life(var/mob/living/M as mob, var/alien)
if(M.stat == 2.0)
@@ -1088,6 +1099,7 @@ datum
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE/2
scannable = 1
on_mob_life(var/mob/living/M as mob, var/alien)
if(M.stat == 2.0)
@@ -1110,6 +1122,7 @@ 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)
@@ -1129,6 +1142,7 @@ 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
@@ -1187,6 +1201,7 @@ datum
color = "#C8A5DC" // rgb: 200, 165, 220
custom_metabolism = 0.01
overdose = REAGENTS_OVERDOSE
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1226,6 +1241,7 @@ datum
color = "#C8A5DC" // rgb: 200, 165, 220
custom_metabolism = 0.05
overdose = REAGENTS_OVERDOSE
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1261,6 +1277,7 @@ datum
color = "#C8A5DC" // rgb: 200, 165, 220
custom_metabolism = 0.05
overdose = REAGENTS_OVERDOSE
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1275,6 +1292,7 @@ datum
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1296,6 +1314,7 @@ datum
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
overdose = 10
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1315,6 +1334,7 @@ datum
reagent_state = LIQUID
color = "#C8A5DC" // rgb: 200, 165, 220
overdose = REAGENTS_OVERDOSE
scannable = 1
on_mob_life(var/mob/living/M as mob, var/alien)
if(M.stat == 2.0)
@@ -1346,6 +1366,7 @@ 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
@@ -1363,6 +1384,7 @@ datum
description = "A liquid compound similar to that used in the cloning process. Can be used to 'finish' the cloning process 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
@@ -1381,6 +1403,7 @@ datum
reagent_state = SOLID
color = "#669900" // rgb: 102, 153, 0
overdose = REAGENTS_OVERDOSE
scannable = 1
on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -1410,6 +1433,7 @@ datum
color = "#C8A5DC" // rgb: 200, 165, 220
custom_metabolism = 0.01
overdose = REAGENTS_OVERDOSE
scannable = 1
on_mob_life(var/mob/living/M as mob)
..()