diff --git a/code/__DEFINES/devices.dm b/code/__DEFINES/devices.dm
index 6b216c799f7..1547e23fdf8 100644
--- a/code/__DEFINES/devices.dm
+++ b/code/__DEFINES/devices.dm
@@ -9,3 +9,7 @@
/// Used to prevent health analyzers from switching modes when they shouldn't.
/// Functions the same as [SCANNER_CONDENSED]
#define SCANNER_NO_MODE -1
+
+#define SCANPOWER_BASIC 0
+#define SCANPOWER_ADVANCED 1
+#define SCANPOWER_SUPER 2
diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm
index 473b402e742..d462eb8972c 100644
--- a/code/_onclick/observer.dm
+++ b/code/_onclick/observer.dm
@@ -65,7 +65,7 @@
return
if (user.ghost_hud_flags & GHOST_HEALTH)
- healthscan(user, src, 1, TRUE)
+ healthscan(user, src, SCANNER_VERBOSE, SCANPOWER_SUPER)
if (user.ghost_hud_flags & GHOST_CHEM)
chemscan(user, src)
diff --git a/code/datums/components/irradiated.dm b/code/datums/components/irradiated.dm
index 5415b2576ad..c6619fd1a5b 100644
--- a/code/datums/components/irradiated.dm
+++ b/code/datums/components/irradiated.dm
@@ -188,7 +188,7 @@
return COMSIG_GEIGER_COUNTER_SCAN_SUCCESSFUL
-/datum/component/irradiated/proc/on_healthscan(datum/source, list/render_list, advanced, mob/user, mode, tochat)
+/datum/component/irradiated/proc/on_healthscan(datum/source, list/render_list, scanpower, mob/user, mode, tochat)
SIGNAL_HANDLER
render_list += ""
diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm
index 5b046a6fb67..5c358cacc00 100644
--- a/code/datums/diseases/advance/advance.dm
+++ b/code/datums/diseases/advance/advance.dm
@@ -501,3 +501,15 @@
/datum/disease/advance/proc/make_visible()
visibility_flags &= ~HIDDEN_SCANNER
affected_mob.med_hud_set_status()
+
+/datum/disease/advance/proc/generate_cure_text(cure_count)
+ var/remedies = list()
+ for(var/datum/symptom/each_symptom as anything in symptoms)
+ if(length(remedies) >= cure_count)
+ break
+ if(!each_symptom.symptom_cure)
+ continue
+ var/datum/reagent/each_cure = each_symptom.symptom_cure
+ if(!each_symptom.neutered && !(each_cure::name in remedies))
+ remedies += each_cure::name
+ return english_list(remedies, nothing_text = "Nothing")
diff --git a/code/datums/status_effects/debuffs/genetic_damage.dm b/code/datums/status_effects/debuffs/genetic_damage.dm
index fd96231961d..64663a0c3ae 100644
--- a/code/datums/status_effects/debuffs/genetic_damage.dm
+++ b/code/datums/status_effects/debuffs/genetic_damage.dm
@@ -46,11 +46,11 @@
qdel(src)
return
-/datum/status_effect/genetic_damage/proc/on_healthscan(datum/source, list/render_list, advanced, mob/user, mode, tochat)
+/datum/status_effect/genetic_damage/proc/on_healthscan(datum/source, list/render_list, scanpower, mob/user, mode, tochat)
SIGNAL_HANDLER
var/message = ""
- if(advanced)
+ if(scanpower >= SCANPOWER_ADVANCED)
message = "Genetic damage: [round(total_damage / minimum_before_tox_damage * 100, 0.1)]%"
else if(total_damage >= minimum_before_tox_damage)
message = "Severe genetic damage detected."
diff --git a/code/datums/status_effects/debuffs/hallucination.dm b/code/datums/status_effects/debuffs/hallucination.dm
index 7e328618096..09630fada3b 100644
--- a/code/datums/status_effects/debuffs/hallucination.dm
+++ b/code/datums/status_effects/debuffs/hallucination.dm
@@ -54,10 +54,10 @@
))
/// Signal proc for [COMSIG_LIVING_HEALTHSCAN]. Show we're hallucinating to (advanced) scanners.
-/datum/status_effect/hallucination/proc/on_health_scan(datum/source, list/render_list, advanced, mob/user, mode, tochat)
+/datum/status_effect/hallucination/proc/on_health_scan(datum/source, list/render_list, scanpower, mob/user, mode, tochat)
SIGNAL_HANDLER
- if(!advanced)
+ if(scanpower <= SCANPOWER_BASIC)
return
render_list += ""
render_list += conditional_tooltip("Subject is hallucinating.", "Supply antipsychotic medication, such as [/datum/reagent/medicine/haloperidol::name] or [/datum/reagent/medicine/synaptizine::name].", tochat)
diff --git a/code/game/machinery/medical_kiosk.dm b/code/game/machinery/medical_kiosk.dm
index 43e19e3248e..a6b6452a0d2 100644
--- a/code/game/machinery/medical_kiosk.dm
+++ b/code/game/machinery/medical_kiosk.dm
@@ -239,10 +239,14 @@
var/blood_alcohol = patient.get_blood_alcohol_content()
for(var/thing in patient.diseases) //Disease Information
- var/datum/disease/D = thing
- if(!(D.visibility_flags & HIDDEN_SCANNER))
+ var/datum/disease/disease = thing
+ if(!(disease.visibility_flags & HIDDEN_SCANNER))
sickness = "Warning: Patient is harboring some form of viral disease. Seek further medical attention."
- sickness_data = "\nName: [D.name].\nType: [D.spread_text].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure_text]"
+ var/cure_text = disease.cure_text
+ if(istype(disease, /datum/disease/advance))
+ var/datum/disease/advance/advanced_disease = disease
+ cure_text = advanced_disease.generate_cure_text(2)
+ sickness_data = "\nName: [disease.name].\nType: [disease.spread_text].\nStage: [disease.stage]/[disease.max_stages].\nPossible Cure: [cure_text]"
if(patient.can_bleed()) //Blood levels Information
blood_name = LOWER_TEXT(blood_type.get_blood_name())
diff --git a/code/game/machinery/wall_vitals.dm b/code/game/machinery/wall_vitals.dm
index beb8ecc1d7d..8c4065562b9 100644
--- a/code/game/machinery/wall_vitals.dm
+++ b/code/game/machinery/wall_vitals.dm
@@ -45,7 +45,7 @@
light_color = LIGHT_COLOR_FAINT_CYAN
/// Whether we perform an advanced scan on examine or not
- var/advanced = FALSE
+ var/scanpower = SCANPOWER_BASIC
/// If TRUE, also append a chemical scan to the readout
var/chemscan = TRUE
/// Typepath to spawn when deconstructed
@@ -80,7 +80,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/vitals_reader, 32)
desc = "A screen that displays the vitals of a patient. \
Performs a more detailed scan of the patient than a basic display."
frame = /obj/item/wallframe/status_display/vitals/advanced
- advanced = TRUE
+ scanpower = SCANPOWER_ADVANCED
MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/vitals_reader/advanced, 32)
@@ -226,7 +226,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/vitals_reader/advanced, 32)
else if(HAS_TRAIT(user, TRAIT_DUMB) || !user.can_read(src, reading_check_flags = READING_CHECK_LITERACY, silent = TRUE))
. += span_warning("You try to comprehend the display, but it's too complex for you to understand.")
else
- . += healthscan(user, patient, mode = SCANNER_CONDENSED, advanced = src.advanced, tochat = FALSE)
+ . += healthscan(user, patient, mode = SCANNER_CONDENSED, scanpower = src.scanpower, tochat = FALSE)
. += chemscan(user, patient, tochat = FALSE)
/obj/machinery/vitals_reader/add_context(atom/source, list/context, obj/item/held_item, mob/user)
diff --git a/code/game/objects/items/devices/scanners/autopsy_scanner.dm b/code/game/objects/items/devices/scanners/autopsy_scanner.dm
index 77a21f3c890..5207e1b22fc 100644
--- a/code/game/objects/items/devices/scanners/autopsy_scanner.dm
+++ b/code/game/objects/items/devices/scanners/autopsy_scanner.dm
@@ -44,7 +44,7 @@
user.visible_message(span_notice("[user] scans [scanned]'s cadaver."))
to_chat(user, span_deadsay("[icon2html(src, user)] ANALYZING CADAVER."))
- healthscan(user, scanned, advanced = TRUE)
+ healthscan(user, scanned, scanpower = SCANPOWER_ADVANCED)
add_fingerprint(user)
@@ -147,8 +147,8 @@
- | \
Missing | "
continue
- var/status = organ.get_status_text(advanced = TRUE, add_tooltips = FALSE, colored = FALSE)
- var/appendix = organ.get_status_appendix(advanced = TRUE, add_tooltips = FALSE)
+ var/status = organ.get_status_text(scanpower = SCANPOWER_ADVANCED, add_tooltips = FALSE, colored = FALSE)
+ var/appendix = organ.get_status_appendix(scanpower = SCANPOWER_ADVANCED, add_tooltips = FALSE)
if(!status)
status ||= "OK" // otherwise flawless organs have no status reported by default
organreport += "\
diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm
index 1f75ec1b4d7..8e823fab54e 100644
--- a/code/game/objects/items/devices/scanners/health_analyzer.dm
+++ b/code/game/objects/items/devices/scanners/health_analyzer.dm
@@ -29,8 +29,8 @@
var/mode = SCANNER_VERBOSE
/// HEALTH/WOUND
var/scanmode = SCANMODE_HEALTH
- /// Advanced health analyzer
- var/advanced = FALSE
+ /// Health analyzing power
+ var/scanpower = SCANPOWER_BASIC
/// If this analyzer will give a bonus to wound treatments apon woundscan.
var/give_wound_treatment_bonus = FALSE
var/last_scan_text
@@ -90,7 +90,7 @@
last_scan_text = floor_text
return
- if(ispodperson(M) && !advanced)
+ if(ispodperson(M) && !scanpower <= SCANPOWER_ADVANCED)
to_chat(user, span_info("[M]'s biological structure is too complex for the health analyzer."))
return
@@ -101,7 +101,7 @@
var/readability_check = user.can_read(src) && !user.is_blind()
switch (scanmode)
if (SCANMODE_HEALTH)
- last_scan_text = healthscan(user, M, mode, advanced, tochat = readability_check)
+ last_scan_text = healthscan(user, M, mode, scanpower, tochat = readability_check)
if((M.health / M.maxHealth) > CLEAN_BILL_OF_HEALTH_RATIO)
last_healthy_scanned = WEAKREF(M)
else
@@ -148,7 +148,7 @@
* advanced - Whether it will give more advanced details, such as husk source.
* tochat - Whether to immediately post the result into the chat of the user, otherwise it will return the results.
*/
-/proc/healthscan(mob/user, mob/living/target, mode = SCANNER_VERBOSE, advanced = FALSE, tochat = TRUE)
+/proc/healthscan(mob/user, mob/living/target, mode = SCANNER_VERBOSE, scanpower = SCANPOWER_BASIC, tochat = TRUE)
if(user.incapacitated)
return
@@ -170,14 +170,14 @@
render_list += "[span_info("Analyzing results for [target] ([round_timestamp()]):")]
Overall status: [mob_status]
"
- if(!advanced && target.has_reagent(/datum/reagent/inverse/technetium))
- advanced = TRUE
+ if(!scanpower == SCANPOWER_BASIC && target.has_reagent(/datum/reagent/inverse/technetium))
+ scanpower = SCANPOWER_ADVANCED
- SEND_SIGNAL(target, COMSIG_LIVING_HEALTHSCAN, render_list, advanced, user, mode, tochat)
+ SEND_SIGNAL(target, COMSIG_LIVING_HEALTHSCAN, render_list, scanpower, user, mode, tochat)
// Husk detection
if(HAS_TRAIT(target, TRAIT_HUSK))
- if(advanced)
+ if(scanpower >= SCANPOWER_ADVANCED)
if(HAS_TRAIT_FROM(target, TRAIT_HUSK, CHANGELING_DRAIN))
render_list += "Subject has been husked by [conditional_tooltip("desiccation", "Irreparable. Under normal circumstances, revival can only proceed via brain transplant.", tochat)].
"
else if(HAS_TRAIT_FROM(target, TRAIT_HUSK, SKELETON_TRAIT))
@@ -191,7 +191,7 @@
render_list += "Subject has been husked.
"
if(target.get_stamina_loss())
- if(advanced)
+ if(scanpower >= SCANPOWER_ADVANCED)
render_list += "Fatigue level: [target.get_stamina_loss()]%.
"
else
render_list += "Subject appears to be suffering from fatigue.
"
@@ -212,7 +212,7 @@
var/mob/living/carbon/carbontarget = target
if(LAZYLEN(carbontarget.quirks))
render_list += "Subject Major Disabilities: [carbontarget.get_quirk_string(FALSE, CAT_QUIRK_MAJOR_DISABILITY, from_scan = TRUE)].
"
- if(advanced)
+ if(scanpower >= SCANPOWER_ADVANCED)
render_list += "Subject Minor Disabilities: [carbontarget.get_quirk_string(FALSE, CAT_QUIRK_MINOR_DISABILITY, TRUE)].
"
// Body part damage report
@@ -294,7 +294,7 @@
\
\
| Organ: | \
- [advanced ? "Dmg | " : ""]\
+ [scanpower >= SCANPOWER_ADVANCED ? "Dmg | " : ""]\
Status | \
"
@@ -306,19 +306,19 @@
if(missing_organs[sorted_slot])
render = TRUE
toReport += "| [missing_organs[sorted_slot]]: | \
- [advanced ? "- | " : ""]\
+ [scanpower >= SCANPOWER_ADVANCED ? "- | " : ""]\
Missing |
"
continue
if(mode != SCANNER_VERBOSE && !organ.show_on_condensed_scans())
continue
- var/status = organ.get_status_text(advanced, tochat)
- var/appendix = organ.get_status_appendix(advanced, tochat)
+ var/status = organ.get_status_text(scanpower, tochat)
+ var/appendix = organ.get_status_appendix(scanpower, tochat)
if(status || appendix)
status ||= "OK" // otherwise flawless organs have no status reported by default
render = TRUE
toReport += "\
| [capitalize(organ.name)]: | \
- [advanced ? "[organ.damage > 0 ? ceil(organ.damage) : "0"] | " : ""]\
+ [scanpower >= SCANPOWER_ADVANCED ? "[organ.damage > 0 ? ceil(organ.damage) : "0"] | " : ""]\
[status] | \
"
if(appendix)
@@ -345,7 +345,7 @@
render_list += "
"
//Genetic stability
- if(advanced && humantarget.has_dna() && humantarget.dna.stability != initial(humantarget.dna.stability))
+ if(scanpower >= SCANPOWER_ADVANCED && humantarget.has_dna() && humantarget.dna.stability != initial(humantarget.dna.stability))
render_list += "Genetic Stability: [humantarget.dna.stability]%.
"
//body temperature
@@ -446,17 +446,13 @@
var/cure_text
if(istype(disease, /datum/disease/advance))
var/datum/disease/advance/advanced_disease = disease
- var/remedies = list()
- var/remedy_limit = advanced ? 3 : 2
- for(var/datum/symptom/each_symptom as anything in advanced_disease.symptoms)
- if(!each_symptom.symptom_cure)
- continue
- var/datum/reagent/each_cure = each_symptom.symptom_cure
- if(!each_symptom.neutered && !(each_cure::name in remedies))
- remedies += each_cure::name
- if(length(remedies) >= remedy_limit)
- break
- cure_text = english_list(remedies, nothing_text = "Nothing")
+ var/cure_count = 2
+ switch(scanpower)
+ if(SCANPOWER_ADVANCED)
+ cure_count = 3
+ if(SCANPOWER_SUPER)
+ cure_count = INFINITY
+ cure_text = advanced_disease.generate_cure_text(cure_count)
else
cure_text = disease.cure_text
render_list += "\
@@ -624,8 +620,14 @@
name = "advanced health analyzer"
icon_state = "health_adv"
desc = "A hand-held body scanner able to distinguish vital signs of the subject with high accuracy."
- advanced = TRUE
custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 2.5, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 1.25, /datum/material/silver = SHEET_MATERIAL_AMOUNT, /datum/material/gold = SHEET_MATERIAL_AMOUNT * 0.75)
+ scanpower = SCANPOWER_ADVANCED
+
+/obj/item/healthanalyzer/super
+ name = "super health analyzer"
+ icon_state = "health_super"
+ desc = "A health scanner for debuggers. Functions the same as ghost healthscans."
+ scanpower = SCANPOWER_SUPER
#define AID_EMOTION_NEUTRAL "neutral"
#define AID_EMOTION_HAPPY "happy"
@@ -813,11 +815,7 @@
var/disease_cure = disease.cure_text
if(istype(disease, /datum/disease/advance))
var/datum/disease/advance/advanced_disease = disease
- for(var/datum/symptom/each_symptom as anything in advanced_disease.symptoms)
- if(!each_symptom.neutered && each_symptom.symptom_cure)
- var/datum/reagent/each_cure = each_symptom.symptom_cure
- disease_cure = each_cure::name
- break // We only get one
+ disease_cure = advanced_disease.generate_cure_text(1)
render += "Warning: [disease.form] detected
\
Name: [disease.name].
Type: [disease.spread_text].
Stage: [disease.stage]/[disease.max_stages].
Possible Cure: [disease_cure]
\
"
diff --git a/code/game/objects/items/devices/scanners/plant_analyzer.dm b/code/game/objects/items/devices/scanners/plant_analyzer.dm
index d4a12361a0c..6dfa8e24cf1 100644
--- a/code/game/objects/items/devices/scanners/plant_analyzer.dm
+++ b/code/game/objects/items/devices/scanners/plant_analyzer.dm
@@ -116,7 +116,7 @@
span_notice("You analyze [scanned_mob]'s vitals.")
)
- healthscan(user, scanned_mob, advanced = TRUE)
+ healthscan(user, scanned_mob, scanpower = SCANPOWER_ADVANCED)
add_fingerprint(user)
/*
diff --git a/code/game/objects/items/storage/boxes/engineering_boxes.dm b/code/game/objects/items/storage/boxes/engineering_boxes.dm
index f2f0d43d620..eb981784584 100644
--- a/code/game/objects/items/storage/boxes/engineering_boxes.dm
+++ b/code/game/objects/items/storage/boxes/engineering_boxes.dm
@@ -30,7 +30,7 @@
/obj/item/disk/tech_disk/debug=1,
/obj/item/flashlight/emp/debug=1,
/obj/item/geiger_counter=1,
- /obj/item/healthanalyzer/advanced=1,
+ /obj/item/healthanalyzer/super=1,
/obj/item/modular_computer/pda/heads/captain=1,
/obj/item/pipe_dispenser=1,
/obj/item/stack/spacecash/c1000=50,
diff --git a/code/modules/mining/lavaland/mining_loot/eye_of_god.dm b/code/modules/mining/lavaland/mining_loot/eye_of_god.dm
index 02a539154f6..7951e059238 100644
--- a/code/modules/mining/lavaland/mining_loot/eye_of_god.dm
+++ b/code/modules/mining/lavaland/mining_loot/eye_of_god.dm
@@ -87,7 +87,7 @@
living_scanned.add_filter("scan", 2, list("type" = "outline", "color" = COLOR_RED, "size" = 1))
addtimer(CALLBACK(living_scanned, TYPE_PROC_REF(/datum, remove_filter), "scan"), 30 SECONDS)
- healthscan(living_owner, living_scanned, 1, TRUE)
+ healthscan(living_owner, living_scanned, SCANNER_VERBOSE, SCANPOWER_ADVANCED)
owner.playsound_local(get_turf(owner), 'sound/effects/magic/smoke.ogg', 50, TRUE)
owner.balloon_alert(owner, "[living_scanned] scanned")
diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm
index 1be8b0590d7..ef4fd7a946b 100644
--- a/code/modules/mob/living/brain/brain_item.dm
+++ b/code/modules/mob/living/brain/brain_item.dm
@@ -256,7 +256,7 @@
else
return span_info("This one is completely devoid of life.")
-/obj/item/organ/brain/get_status_appendix(advanced, add_tooltips)
+/obj/item/organ/brain/get_status_appendix(scanpower, add_tooltips)
var/list/trauma_text
for(var/datum/brain_trauma/trauma as anything in traumas)
var/trauma_desc = ""
diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
index 9eba6d6b9f1..53a1e8fc0f0 100644
--- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
+++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm
@@ -57,6 +57,10 @@
to_chat(owner, span_danger("You feel something tearing its way out of your chest..."))
owner.adjust_tox_loss(5 * seconds_per_tick) // Why is this [TOX]?
+/obj/item/organ/body_egg/alien_embryo/get_status_appendix(scanpower, add_tooltips)
+ if(scanpower >= SCANPOWER_SUPER)
+ return "Stage: [stage]/6"
+
/// Controls Xenomorph Embryo growth. If embryo is fully grown (or overgrown), stop the proc. If not, increase the stage by one and if it's not fully grown (stage 6), add a timer to do this proc again after however long the growth time variable is.
/obj/item/organ/body_egg/alien_embryo/proc/advance_embryo_stage()
if(stage >= 6)
diff --git a/code/modules/modular_computers/file_system/programs/maintenance/phys_scanner.dm b/code/modules/modular_computers/file_system/programs/maintenance/phys_scanner.dm
index 8db2d1ddc54..0a08bcb25ac 100644
--- a/code/modules/modular_computers/file_system/programs/maintenance/phys_scanner.dm
+++ b/code/modules/modular_computers/file_system/programs/maintenance/phys_scanner.dm
@@ -17,7 +17,7 @@
return
var/mob/living/carbon/carbon = tapped_atom
carbon.visible_message(span_notice("[user] analyzes [tapped_atom]'s vitals."))
- last_record = healthscan(user, carbon, 1, tochat = FALSE)
+ last_record = healthscan(user, carbon, SCANNER_VERBOSE, tochat = FALSE)
var/datum/tgui/active_ui = SStgui.get_open_ui(user, computer)
if(active_ui)
active_ui.send_full_update(force = TRUE)
diff --git a/code/modules/surgery/organs/_organ.dm b/code/modules/surgery/organs/_organ.dm
index 064565b9090..1ac1840418d 100644
--- a/code/modules/surgery/organs/_organ.dm
+++ b/code/modules/surgery/organs/_organ.dm
@@ -442,8 +442,8 @@ INITIALIZE_IMMEDIATE(/obj/item/organ)
replacement.set_organ_damage(damage)
/// Called by medical scanners to get a simple summary of how healthy the organ is. Returns an empty string if things are fine.
-/obj/item/organ/proc/get_status_text(advanced, add_tooltips, colored = TRUE)
- if(advanced && (organ_flags & ORGAN_HAZARDOUS))
+/obj/item/organ/proc/get_status_text(scanpower, add_tooltips, colored = TRUE)
+ if(scanpower >= SCANPOWER_ADVANCED && (organ_flags & ORGAN_HAZARDOUS))
return conditional_tooltip("[colored ? "" : ""]Harmful Foreign Body[colored ? "" : ""]", "Remove surgically.", add_tooltips)
if(organ_flags & ORGAN_EMP)
@@ -473,7 +473,7 @@ INITIALIZE_IMMEDIATE(/obj/item/organ)
return (organ_flags & (ORGAN_PROMINENT|ORGAN_HAZARDOUS|ORGAN_FAILING|ORGAN_VITAL))
/// Similar to get_status_text, but appends the text after the damage report, for additional status info
-/obj/item/organ/proc/get_status_appendix(advanced, add_tooltips)
+/obj/item/organ/proc/get_status_appendix(scanpower, add_tooltips)
return
/**
diff --git a/code/modules/surgery/organs/internal/appendix/_appendix.dm b/code/modules/surgery/organs/internal/appendix/_appendix.dm
index e1c959891bb..a5882412434 100644
--- a/code/modules/surgery/organs/internal/appendix/_appendix.dm
+++ b/code/modules/surgery/organs/internal/appendix/_appendix.dm
@@ -118,7 +118,7 @@
REMOVE_TRAIT(owner, TRAIT_DISEASELIKE_SEVERITY_MEDIUM, type)
owner.med_hud_set_status()
-/obj/item/organ/appendix/get_status_text(advanced, add_tooltips, colored)
+/obj/item/organ/appendix/get_status_text(scanpower, add_tooltips, colored)
if(!(organ_flags & ORGAN_FAILING) && inflamation_stage)
return conditional_tooltip("Inflamed", "Remove surgically.", add_tooltips)
return ..()
diff --git a/code/modules/surgery/organs/internal/ears/_ears.dm b/code/modules/surgery/organs/internal/ears/_ears.dm
index 3ab8ebb26a6..16f05dd3d62 100644
--- a/code/modules/surgery/organs/internal/ears/_ears.dm
+++ b/code/modules/surgery/organs/internal/ears/_ears.dm
@@ -60,10 +60,10 @@
if(!special)
ADD_TRAIT(organ_owner, TRAIT_DEAF, NO_EARS)
-/obj/item/organ/ears/get_status_appendix(advanced, add_tooltips)
+/obj/item/organ/ears/get_status_appendix(scanpower, add_tooltips)
if(owner.stat == DEAD || !HAS_TRAIT(owner, TRAIT_DEAF))
return
- if(advanced)
+ if(scanpower >= SCANPOWER_ADVANCED)
if(HAS_TRAIT_FROM(owner, TRAIT_DEAF, QUIRK_TRAIT))
return conditional_tooltip("Subject is permanently deaf.", "Irreparable under normal circumstances.", add_tooltips)
if(HAS_TRAIT_FROM(owner, TRAIT_DEAF, GENETIC_MUTATION))
diff --git a/code/modules/surgery/organs/internal/eyes/_eyes.dm b/code/modules/surgery/organs/internal/eyes/_eyes.dm
index 79a806b3f3d..dfa710cd4fe 100644
--- a/code/modules/surgery/organs/internal/eyes/_eyes.dm
+++ b/code/modules/surgery/organs/internal/eyes/_eyes.dm
@@ -269,11 +269,11 @@
#define OFFSET_Y 2
/// Similar to get_status_text, but appends the text after the damage report, for additional status info
-/obj/item/organ/eyes/get_status_appendix(advanced, add_tooltips)
+/obj/item/organ/eyes/get_status_appendix(scanpower, add_tooltips)
if(owner.stat == DEAD || HAS_TRAIT(owner, TRAIT_KNOCKEDOUT))
return
if(owner.is_blind())
- if(advanced)
+ if(scanpower >= SCANPOWER_ADVANCED)
if(owner.is_blind_from(QUIRK_TRAIT))
return conditional_tooltip("Subject is permanently blind.", "Irreparable under normal circumstances.", add_tooltips)
if(owner.is_blind_from(EYE_SCARRING_TRAIT))
@@ -286,7 +286,7 @@
return conditional_tooltip("Subject is blind from eye damage.", "Repair surgically, use medication such as [/datum/reagent/medicine/oculine::name], or protect eyes with a blindfold.", add_tooltips)
return "Subject is blind."
if(owner.is_nearsighted())
- if(advanced)
+ if(scanpower >= SCANPOWER_ADVANCED)
if(owner.is_nearsighted_from(QUIRK_TRAIT))
return conditional_tooltip("Subject is permanently nearsighted.", "Irreparable under normal circumstances. Prescription glasses will assuage the effects.", add_tooltips)
if(owner.is_nearsighted_from(TRAIT_RIGHT_EYE_SCAR) || owner.is_nearsighted_from(TRAIT_LEFT_EYE_SCAR))
diff --git a/code/modules/surgery/organs/internal/heart/_heart.dm b/code/modules/surgery/organs/internal/heart/_heart.dm
index f2f7f9484fb..4d4753f884f 100644
--- a/code/modules/surgery/organs/internal/heart/_heart.dm
+++ b/code/modules/surgery/organs/internal/heart/_heart.dm
@@ -107,7 +107,7 @@
/obj/item/organ/heart/proc/is_beating()
return beating
-/obj/item/organ/heart/get_status_text(advanced, add_tooltips, colored)
+/obj/item/organ/heart/get_status_text(scanpower, add_tooltips, colored)
if(owner.has_status_effect(/datum/status_effect/heart_attack))
return conditional_tooltip("Myocardial Infarction", "Apply defibrillation immediately. Similar electric shocks may work in emergencies.", add_tooltips)
if((!beating && !(organ_flags & ORGAN_FAILING) && owner.needs_heart() && owner.stat != DEAD))
diff --git a/code/modules/surgery/organs/internal/lungs/_lungs.dm b/code/modules/surgery/organs/internal/lungs/_lungs.dm
index 33b4e6b3fcb..bb4f1cd0bb3 100644
--- a/code/modules/surgery/organs/internal/lungs/_lungs.dm
+++ b/code/modules/surgery/organs/internal/lungs/_lungs.dm
@@ -860,7 +860,7 @@
return span_boldwarning("Your lungs feel extremely tight[HAS_TRAIT(owner, TRAIT_NOBREATH) ? "" : ", and every breath is a struggle"].")
return span_boldwarning("It feels extremely tight[HAS_TRAIT(owner, TRAIT_NOBREATH) ? "" : ", and every breath is a struggle"].")
-/obj/item/organ/lungs/get_status_appendix(advanced, add_tooltips)
+/obj/item/organ/lungs/get_status_appendix(scanpower, add_tooltips)
var/initial_pressure_mult = initial(received_pressure_mult)
if (received_pressure_mult == initial_pressure_mult)
return
diff --git a/icons/obj/devices/scanner.dmi b/icons/obj/devices/scanner.dmi
index 0bd6b6cd1db..5b7366ed15f 100644
Binary files a/icons/obj/devices/scanner.dmi and b/icons/obj/devices/scanner.dmi differ