diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index c583617ac23..91c8d6250b4 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -453,7 +453,6 @@
/obj/screen/healths/corgi
icon = 'icons/mob/screen_corgi.dmi'
-
/obj/screen/healths/guardian
name = "summoner health"
icon = 'icons/mob/guardian.dmi'
@@ -467,14 +466,18 @@
screen_loc = ui_healthdoll
var/list/cached_healthdoll_overlays = list() // List of icon states (strings) for overlays
+/obj/screen/healthdoll/Click()
+ if(ishuman(usr))
+ var/mob/living/carbon/H = usr
+ H.check_self_for_injuries()
+
/obj/screen/component_button
var/obj/screen/parent
-
/obj/screen/component_button/Initialize(mapload, obj/screen/new_parent)
. = ..()
parent = new_parent
/obj/screen/component_button/Click(params)
if(parent)
- parent.component_click(src, params)
\ No newline at end of file
+ parent.component_click(src, params)
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 2c7a2d67c55..7eecc1ff00a 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -216,56 +216,7 @@
add_attack_logs(M, src, "Shaked", ATKLOG_ALL)
if(health >= HEALTH_THRESHOLD_CRIT)
if(src == M && ishuman(src))
- var/mob/living/carbon/human/H = src
- visible_message( \
- text("[src] examines [].",gender==MALE?"himself":"herself"), \
- "You check yourself for injuries." \
- )
-
- var/list/missing = list("head", "chest", "groin", "l_arm", "r_arm", "l_hand", "r_hand", "l_leg", "r_leg", "l_foot", "r_foot")
- for(var/X in H.bodyparts)
- var/obj/item/organ/external/LB = X
- missing -= LB.limb_name
- var/status = ""
- var/brutedamage = LB.brute_dam
- var/burndamage = LB.burn_dam
-
- if(brutedamage > 0)
- status = "bruised"
- if(brutedamage > 20)
- status = "battered"
- if(brutedamage > 40)
- status = "mangled"
- if(brutedamage > 0 && burndamage > 0)
- status += " and "
- if(burndamage > 40)
- status += "peeling away"
-
- else if(burndamage > 10)
- status += "blistered"
- else if(burndamage > 0)
- status += "numb"
- if(LB.status & ORGAN_MUTATED)
- status = "weirdly shapen."
- if(status == "")
- status = "OK"
- to_chat(src, "\t Your [LB.name] is [status].")
-
- for(var/obj/item/I in LB.embedded_objects)
- to_chat(src, "\t There is \a [I] embedded in your [LB.name]!")
-
- for(var/t in missing)
- to_chat(src, "Your [parse_zone(t)] is missing!")
-
- if(H.bleed_rate)
- to_chat(src, "You are bleeding!")
- if(staminaloss)
- if(staminaloss > 30)
- to_chat(src, "You're completely exhausted.")
- else
- to_chat(src, "You feel fatigued.")
- if((SKELETON in H.mutations) && (!H.w_uniform) && (!H.wear_suit))
- H.play_xylophone()
+ check_self_for_injuries()
else
if(player_logged)
M.visible_message("[M] shakes [src], but [p_they()] [p_do()] not respond. Probably suffering from SSD.", \
@@ -308,6 +259,58 @@
else if(H.w_uniform)
H.w_uniform.add_fingerprint(M)
+/mob/living/carbon/proc/check_self_for_injuries()
+ var/mob/living/carbon/human/H = src
+ visible_message( \
+ text("[src] examines [].",gender==MALE?"himself":"herself"), \
+ "You check yourself for injuries." \
+ )
+
+ var/list/missing = list("head", "chest", "groin", "l_arm", "r_arm", "l_hand", "r_hand", "l_leg", "r_leg", "l_foot", "r_foot")
+ for(var/X in H.bodyparts)
+ var/obj/item/organ/external/LB = X
+ missing -= LB.limb_name
+ var/status = ""
+ var/brutedamage = LB.brute_dam
+ var/burndamage = LB.burn_dam
+
+ if(brutedamage > 0)
+ status = "bruised"
+ if(brutedamage > 20)
+ status = "battered"
+ if(brutedamage > 40)
+ status = "mangled"
+ if(brutedamage > 0 && burndamage > 0)
+ status += " and "
+ if(burndamage > 40)
+ status += "peeling away"
+
+ else if(burndamage > 10)
+ status += "blistered"
+ else if(burndamage > 0)
+ status += "numb"
+ if(LB.status & ORGAN_MUTATED)
+ status = "weirdly shapen."
+ if(status == "")
+ status = "OK"
+ to_chat(src, "\t Your [LB.name] is [status].")
+
+ for(var/obj/item/I in LB.embedded_objects)
+ to_chat(src, "\t There is \a [I] embedded in your [LB.name]!")
+
+ for(var/t in missing)
+ to_chat(src, "Your [parse_zone(t)] is missing!")
+
+ if(H.bleed_rate)
+ to_chat(src, "You are bleeding!")
+ if(staminaloss)
+ if(staminaloss > 30)
+ to_chat(src, "You're completely exhausted.")
+ else
+ to_chat(src, "You feel fatigued.")
+ if((SKELETON in H.mutations) && (!H.w_uniform) && (!H.wear_suit))
+ H.play_xylophone()
+
/mob/living/carbon/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0)
. = ..()
var/damage = intensity - check_eye_prot()