diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 22caeb2090a..f1da6cf61a2 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -92,7 +92,7 @@ REAGENT SCANNER usr << "\red You don't have the dexterity to do this!" 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") @@ -102,7 +102,7 @@ REAGENT SCANNER user.show_message("\red Warning: Blood Level ERROR: --% --cl.\blue Type: ERROR") user.show_message("\blue Subject's pulse: -- bpm.") return - + var/fake_oxy = max(rand(1,40), M.getOxyLoss(), (300 - (M.getToxLoss() + M.getFireLoss() + M.getBruteLoss()))) var/OX = M.getOxyLoss() > 50 ? "[M.getOxyLoss()]" : M.getOxyLoss() var/TX = M.getToxLoss() > 50 ? "[M.getToxLoss()]" : 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/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) @@ -154,8 +167,8 @@ 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.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) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 94caf959814..92320c00d3a 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -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,7 @@ datum reagent_state = LIQUID color = "#C855DC" overdose = 60 + scannable = 1 on_mob_life(var/mob/living/M as mob) if (volume > overdose) @@ -792,6 +795,7 @@ datum reagent_state = LIQUID color = "#C8A5DC" overdose = 30 + scannable = 1 on_mob_life(var/mob/living/M as mob) if (volume > overdose) @@ -1031,6 +1035,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 +1053,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 +1071,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 +1095,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 +1118,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 +1138,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 @@ -1261,6 +1271,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 @@ -1296,6 +1307,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 +1327,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) @@ -1381,6 +1394,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 +1424,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) ..()