diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 78ec6382b26..ea513d899e5 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -245,11 +245,11 @@ temp = getCloneLoss() if(temp) if(temp < 25) - msg += "[t_He] [t_has] minor [dna.species.cellular_damage_desc].\n" + msg += "[t_He] [t_has] minor [damage_desc[CLONE]].\n" else if(temp < 50) - msg += "[t_He] [t_has] moderate [dna.species.cellular_damage_desc]!\n" + msg += "[t_He] [t_has] moderate [damage_desc[CLONE]]!\n" else - msg += "[t_He] [t_has] severe [dna.species.cellular_damage_desc]!\n" + msg += "[t_He] [t_has] severe [damage_desc[CLONE]]!\n" if(has_status_effect(/datum/status_effect/fire_handler/fire_stacks)) diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index 833c6b10181..edfae450cf7 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -7,28 +7,24 @@ ///returns a list of "damtype" => damage description based off of which bodypart description is most common ///used in human examines /mob/living/carbon/human/proc/get_majority_bodypart_damage_desc() - var/most_seen_brute = 0 - var/most_seen_burn = 0 - var/brute_desc = "" - var/burn_desc = "" - var/list/seen_brute = list() - var/list/seen_burn = list() + var/list/seen_damage = list() // This looks like: ({Damage type} = list({Damage description for that damage type} = {number of times it has appeared}, ...), ...) + var/list/most_seen_damage = list() // This looks like: ({Damage type} = {Frequency of the most common description}, ...) + var/list/final_descriptions = list() // This looks like: ({Damage type} = {Most common damage description for that type}, ...) for(var/obj/item/bodypart/part as anything in bodyparts) - //brute - if(!seen_brute[part.brute_damage_desc]) - seen_brute[part.brute_damage_desc] = 1 - else - seen_brute[part.brute_damage_desc] += 1 - if(seen_brute[part.brute_damage_desc] > most_seen_brute) - brute_desc = part.brute_damage_desc - //burn - if(!seen_burn[part.burn_damage_desc]) - seen_burn[part.burn_damage_desc] = 1 - else - seen_burn[part.burn_damage_desc] += 1 - if(seen_burn[part.burn_damage_desc] > most_seen_burn) - burn_desc = part.burn_damage_desc - return list(BRUTE = brute_desc, BURN = burn_desc) + for(var/damage_type in part.damage_examines) + var/damage_desc = part.damage_examines[damage_type] + if(!seen_damage[damage_type]) + seen_damage[damage_type] = list() + + if(!seen_damage[damage_type][damage_desc]) + seen_damage[damage_type][damage_desc] = 1 + else + seen_damage[damage_type][damage_desc] += 1 + + if(seen_damage[damage_type][damage_desc] > most_seen_damage[damage_type]) + most_seen_damage[damage_type] = seen_damage[damage_type][damage_desc] + final_descriptions[damage_type] = damage_desc + return final_descriptions //gets assignment from ID or ID inside PDA or PDA itself //Useful when player do something with computers diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index 0dd25e2ccb2..15360810521 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -125,9 +125,7 @@ var/heavy_burn_msg = "peeling away" //Damage messages used by examine(). the desc that is most common accross all bodyparts gets shown - - var/brute_damage_desc = DEFAULT_BRUTE_EXAMINE_TEXT - var/burn_damage_desc = DEFAULT_BURN_EXAMINE_TEXT + var/list/damage_examines = list(BRUTE = DEFAULT_BRUTE_EXAMINE_TEXT, BURN = DEFAULT_BURN_EXAMINE_TEXT, CLONE = DEFAULT_CLONE_EXAMINE_TEXT) // Wounds related variables /// The wounds currently afflicting this body part diff --git a/code/modules/surgery/bodyparts/robot_bodyparts.dm b/code/modules/surgery/bodyparts/robot_bodyparts.dm index a18d86caa23..fa60ed06ee1 100644 --- a/code/modules/surgery/bodyparts/robot_bodyparts.dm +++ b/code/modules/surgery/bodyparts/robot_bodyparts.dm @@ -37,8 +37,7 @@ medium_burn_msg = ROBOTIC_MEDIUM_BURN_MSG heavy_burn_msg = ROBOTIC_HEAVY_BURN_MSG - brute_damage_desc = ROBOTIC_BRUTE_EXAMINE_TEXT - burn_damage_desc = ROBOTIC_BURN_EXAMINE_TEXT + damage_examines = list(BRUTE = ROBOTIC_BRUTE_EXAMINE_TEXT, BURN = ROBOTIC_BURN_EXAMINE_TEXT, CLONE = DEFAULT_CLONE_EXAMINE_TEXT) disabling_threshold_percentage = 1 /obj/item/bodypart/arm/right/robot @@ -69,6 +68,7 @@ medium_burn_msg = ROBOTIC_MEDIUM_BURN_MSG heavy_burn_msg = ROBOTIC_HEAVY_BURN_MSG + damage_examines = list(BRUTE = ROBOTIC_BRUTE_EXAMINE_TEXT, BURN = ROBOTIC_BURN_EXAMINE_TEXT, CLONE = DEFAULT_CLONE_EXAMINE_TEXT) /obj/item/bodypart/leg/left/robot name = "cyborg left leg" @@ -98,6 +98,7 @@ medium_burn_msg = ROBOTIC_MEDIUM_BURN_MSG heavy_burn_msg = ROBOTIC_HEAVY_BURN_MSG + damage_examines = list(BRUTE = ROBOTIC_BRUTE_EXAMINE_TEXT, BURN = ROBOTIC_BURN_EXAMINE_TEXT, CLONE = DEFAULT_CLONE_EXAMINE_TEXT) /obj/item/bodypart/leg/right/robot name = "cyborg right leg" @@ -127,6 +128,8 @@ medium_burn_msg = ROBOTIC_MEDIUM_BURN_MSG heavy_burn_msg = ROBOTIC_HEAVY_BURN_MSG + damage_examines = list(BRUTE = ROBOTIC_BRUTE_EXAMINE_TEXT, BURN = ROBOTIC_BURN_EXAMINE_TEXT, CLONE = DEFAULT_CLONE_EXAMINE_TEXT) + /obj/item/bodypart/chest/robot name = "cyborg torso" desc = "A heavily reinforced case containing cyborg logic boards, with space for a standard power cell." @@ -153,6 +156,8 @@ medium_burn_msg = ROBOTIC_MEDIUM_BURN_MSG heavy_burn_msg = ROBOTIC_HEAVY_BURN_MSG + damage_examines = list(BRUTE = ROBOTIC_BRUTE_EXAMINE_TEXT, BURN = ROBOTIC_BURN_EXAMINE_TEXT, CLONE = DEFAULT_CLONE_EXAMINE_TEXT) + var/wired = FALSE var/obj/item/stock_parts/cell/cell = null @@ -263,6 +268,8 @@ medium_burn_msg = ROBOTIC_MEDIUM_BURN_MSG heavy_burn_msg = ROBOTIC_HEAVY_BURN_MSG + damage_examines = list(BRUTE = ROBOTIC_BRUTE_EXAMINE_TEXT, BURN = ROBOTIC_BURN_EXAMINE_TEXT, CLONE = DEFAULT_CLONE_EXAMINE_TEXT) + var/obj/item/assembly/flash/handheld/flash1 = null var/obj/item/assembly/flash/handheld/flash2 = null