From bf98195fda7238d4a1a0810379049a8dfff11121 Mon Sep 17 00:00:00 2001 From: Fghj240 <43589874+Fghj240@users.noreply.github.com> Date: Thu, 16 Jul 2026 15:07:13 -0700 Subject: [PATCH] Ghosts can see more info on health scan (#96792) ## About The Pull Request I have no idea how to word this so here's a list instead. 1. Fixes #96445 by making it so that instead of healthscan code coming up with cure text on the spot for viruses, advanced diseases have a function that can generate cure text so you can use it in things other than healthscanning. 2. Rewords a single letter var in medical kiosk code 3. As a result of 1, the code for disease state analyzers healthscanning has been shortened because the cure text generating function only has to be written once and not twice. 4. Health scans now have a power level instead of just being advanced or basic. There is a new power level called super, and it's only available to ghosts. Super scans can see all virus symptoms instead of just 3, and the current stage of an alien embryo. 5. For some reason a bunch of healthscan code (like stuff from the eye of god and health scanner mod module) were using 1 instead of SCANMODE_VERBOSE (a define that equals 1 but is more readable) for the scanmode. That's no longer the case. 6. A new health scanner, the super health scanner, that replaces the advanced one in the box of debug tools. image image ## Why It's Good For The Game Ghosts should be able to see everything, I think ## Changelog :cl: qol: Ghosts can see alien embryo stage and all virus symptoms when health scanning code: Health scanners now support multiple scan levels fix: Fixes medical kiosks not being able to identify advanced disease cures. /:cl: --------- Co-authored-by: Fghj240 Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/__DEFINES/devices.dm | 4 ++ code/_onclick/observer.dm | 2 +- code/datums/components/irradiated.dm | 2 +- code/datums/diseases/advance/advance.dm | 12 ++++ .../status_effects/debuffs/genetic_damage.dm | 4 +- .../status_effects/debuffs/hallucination.dm | 4 +- code/game/machinery/medical_kiosk.dm | 10 ++- code/game/machinery/wall_vitals.dm | 6 +- .../items/devices/scanners/autopsy_scanner.dm | 6 +- .../items/devices/scanners/health_analyzer.dm | 66 +++++++++--------- .../items/devices/scanners/plant_analyzer.dm | 2 +- .../items/storage/boxes/engineering_boxes.dm | 2 +- .../mining/lavaland/mining_loot/eye_of_god.dm | 2 +- code/modules/mob/living/brain/brain_item.dm | 2 +- .../carbon/alien/special/alien_embryo.dm | 4 ++ .../programs/maintenance/phys_scanner.dm | 2 +- code/modules/surgery/organs/_organ.dm | 6 +- .../organs/internal/appendix/_appendix.dm | 2 +- .../surgery/organs/internal/ears/_ears.dm | 4 +- .../surgery/organs/internal/eyes/_eyes.dm | 6 +- .../surgery/organs/internal/heart/_heart.dm | 2 +- .../surgery/organs/internal/lungs/_lungs.dm | 2 +- icons/obj/devices/scanner.dmi | Bin 30422 -> 32876 bytes 23 files changed, 87 insertions(+), 65 deletions(-) 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 @@ \ \ \ - [advanced ? "" : ""]\ + [scanpower >= SCANPOWER_ADVANCED ? "" : ""]\ \ " @@ -306,19 +306,19 @@ if(missing_organs[sorted_slot]) render = TRUE toReport += "\ - [advanced ? "" : ""]\ + [scanpower >= SCANPOWER_ADVANCED ? "" : ""]\ " 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 += "\ \ - [advanced ? "" : ""]\ + [scanpower >= SCANPOWER_ADVANCED ? "" : ""]\ \ " 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 0bd6b6cd1db833c15968d8c5eed1e0747a2f8670..5b7366ed15f893fbd8b5e94a0efb45b035edd0a9 100644 GIT binary patch literal 32876 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 HtI+=kprTf} literal 30422 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

Organ:DmgDmgStatus
[missing_organs[sorted_slot]]:--Missing
[capitalize(organ.name)]:[organ.damage > 0 ? ceil(organ.damage) : "0"][organ.damage > 0 ? ceil(organ.damage) : "0"][status]