diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 159a62fc4e8..0d072541eb1 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -103,7 +103,6 @@ REAGENT SCANNER return user.visible_message(" [user] has analyzed [M]'s vitals."," 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") @@ -152,7 +151,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/reagentlist[0] + for(var/A in M.reagents.reagent_list) + var/datum/reagent/R = A + if(R.scannable) + reagentlist["[R.id]"] = "\t \blue [round(M.reagents.get_reagent_amount(R.id), 1)]u [R.name]" + else + unknown++ + if(data.len) + user.show_message("\blue Beneficial reagents detected in subject's blood:") + for(var/d in reagentlist) + user.show_message(data[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) @@ -165,9 +177,11 @@ REAGENT SCANNER for(var/datum/disease/D in M.viruses) if(!D.hidden[SCANNER]) user.show_message(text("\red Warning: [D.form] Detected\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.getBrainLoss() >= 100 || istype(M, /mob/living/carbon/human) && M:brain_op_stage == 4.0) +// 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) user.show_message("\red Subject is brain dead.") else if (M.getBrainLoss() >= 60) user.show_message("\red Severe brain damage detected. Subject likely to have mental retardation.") diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 322b861981f..51279e13425 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -27,6 +27,7 @@ datum var/overdose = 0 var/overdose_dam = 1 var/addictiveness = 0 //switched to zero until time to properly overhaul addiction + 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!) @@ -578,7 +579,9 @@ datum id = "inaprovaline" description = "Inaprovaline is a synaptic stimulant and cardiostimulant. Commonly used to stabilize patients." reagent_state = LIQUID - color = "#0000FF" // rgb: 0, 0, 255 + 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 @@ -1166,6 +1169,7 @@ datum overdose_dam = 0 overdose = 60 addictiveness = 5 + scannable = 1 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -1206,8 +1210,16 @@ datum id = "tramadol" description = "A simple, yet effective painkiller." reagent_state = LIQUID - color = "#FAEBD7" //rgb 250, 235, 215 addictiveness = 50 + color = "#C8A5DC" + overdose = 30 + scannable = 1 + + on_mob_life(var/mob/living/M as mob) + if (volume > overdose) + M.hallucination = max(M.hallucination, 2) + ..() + return oxycodone name = "Oxycodone" @@ -1465,7 +1477,9 @@ datum id = "plasma" description = "Plasma in its liquid form." reagent_state = LIQUID - color = "#B233CC" // rgb: 178, 51, 204 + 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 @@ -1573,7 +1587,9 @@ datum id = "dermaline" 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 = "#F4A460" // rgb: 244, 164, 96 + 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 @@ -1589,7 +1605,9 @@ datum id = "dexalin" description = "Dexalin is used in the treatment of oxygen deprivation." reagent_state = LIQUID - color = "#00CED1" // rgb: 0, 206, 209 + 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) @@ -1611,7 +1629,9 @@ datum id = "dexalinp" description = "Dexalin Plus is used in the treatment of oxygen deprivation. Its highly effective." reagent_state = LIQUID - color = "#00FFFF" // rgb: 0, 255, 255 + 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) @@ -1633,7 +1653,8 @@ datum id = "tricordrazine" 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 = "#DB7093" // rgb: 219, 112, 147 + color = "#C8A5DC" // rgb: 200, 165, 220 + scannable = 1 on_mob_life(var/mob/living/M as mob, var/alien) if(M.stat == 2.0) @@ -1672,6 +1693,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 @@ -1828,6 +1850,8 @@ datum reagent_state = LIQUID color = "#F77FBE" // rgb: 247, 127, 190 custom_metabolism = 0.05 + overdose = REAGENTS_OVERDOSE + scannable = 1 on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom @@ -1863,6 +1887,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 @@ -1881,7 +1906,9 @@ datum id = "bicaridine" description = "Bicaridine is an analgesic medication and can be used to treat blunt trauma." reagent_state = LIQUID - color = "#FF003F" // rgb: 255, 0, 63 + 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) @@ -1968,7 +1995,9 @@ datum id = "rezadone" 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 = "#E25822" // rgb: 226, 88, 34 + 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 @@ -1997,6 +2026,8 @@ datum reagent_state = LIQUID color = "#228B22" // rgb: 34, 139, 34 custom_metabolism = 0.01 + overdose = REAGENTS_OVERDOSE + scannable = 1 on_mob_life(var/mob/living/M as mob) ..()