diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm
index 9447c9d965b..96e6457edb3 100644
--- a/code/__defines/mobs.dm
+++ b/code/__defines/mobs.dm
@@ -62,6 +62,13 @@
#define BLOOD_PRESSURE_IDEAL 2
#define BLOOD_PRESSURE_LOW 1
+// total_radiation levels (Note that total_radiation can be above RADS_MAX until handle_mutations_and_radiation() runs)
+#define RADS_NONE 0
+#define RADS_LOW 1
+#define RADS_MED 50
+#define RADS_HIGH 75
+#define RADS_MAX 100
+
//intent flags, why wasn't this done the first time?
#define I_HELP "help"
#define I_DISARM "disarm"
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index b1e0ee081fa..3cdd978caa5 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -190,6 +190,18 @@ BREATH ANALYZER
if(H.getBruteLoss() > 50)
dat += "[b]Severe anatomical damage detected.[endb]"
+ var/rad_result = "Radiation: "
+ switch(H.total_radiation)
+ if(RADS_NONE)
+ rad_result += span("scan_green", "No radiation detected.")
+ if(RADS_LOW to RADS_MED)
+ rad_result += span("scan_orange", "Low levels of radiation poisoning detected.")
+ if(RADS_MED to RADS_HIGH)
+ rad_result += span("scan_orange", "Severe levels of radiation poisoning detected!")
+ if(RADS_HIGH to INFINITY)
+ rad_result += span("scan_red", "[b]Extreme levels of radiation poisoning detected![endb]")
+ dat += rad_result
+
if(show_limb_damage)
var/list/damaged = H.get_damaged_organs(1,1)
if(damaged.len)
diff --git a/code/modules/mob/living/carbon/brain/life.dm b/code/modules/mob/living/carbon/brain/life.dm
index d0edc029ed3..7d82b63965c 100644
--- a/code/modules/mob/living/carbon/brain/life.dm
+++ b/code/modules/mob/living/carbon/brain/life.dm
@@ -3,32 +3,32 @@
/mob/living/carbon/brain/handle_mutations_and_radiation()
if (total_radiation)
- if (total_radiation > 100)
- total_radiation = 100
+ if (total_radiation > RADS_MAX)
+ total_radiation = RADS_MAX
if(!container)//If it's not in an MMI
- to_chat(src, "You feel weak.")
+ to_chat(src, SPAN_WARNING("You feel weak."))
else//Fluff-wise, since the brain can't detect anything itself, the MMI handles thing like that
- to_chat(src, "STATUS: CRITICAL AMOUNTS OF RADIATION DETECTED.")
+ to_chat(src, SPAN_WARNING("STATUS: CRITICAL AMOUNTS OF RADIATION DETECTED."))
switch(total_radiation)
- if(1 to 49)
+ if(RADS_LOW to RADS_MED-1)
apply_radiation(-1)
if(prob(25))
adjustToxLoss(1)
updatehealth()
- if(50 to 74)
+ if(RADS_MED to RADS_HIGH-1)
apply_radiation(-2)
adjustToxLoss(1)
if(prob(5))
apply_radiation(-5)
if(!container)
- to_chat(src, "You feel weak.")
+ to_chat(src, SPAN_WARNING("You feel weak."))
else
- to_chat(src, "STATUS: DANGEROUS LEVELS OF RADIATION DETECTED.")
+ to_chat(src, SPAN_DANGER("STATUS: DANGEROUS LEVELS OF RADIATION DETECTED."))
updatehealth()
- if(75 to 100)
+ if(RADS_HIGH to RADS_MAX)
apply_radiation(-3)
adjustToxLoss(3)
updatehealth()
diff --git a/html/changelogs/rad_scanner.yml b/html/changelogs/rad_scanner.yml
new file mode 100644
index 00000000000..d4a1256c800
--- /dev/null
+++ b/html/changelogs/rad_scanner.yml
@@ -0,0 +1,6 @@
+author: mikomyazaki
+
+delete-after: True
+
+changes:
+ - rscadd: "Health analyzer will now report a rough radiation level for a scanned patient."
\ No newline at end of file