diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 1afcba95019..07118b523ea 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -247,10 +247,13 @@ proc/get_damage_icon_part(damage_state, body_part) var/list/TONE = ReadRGB(hulk_color_mod) stand_icon.MapColors(rgb(TONE[1],0,0),rgb(0,TONE[2],0),rgb(0,0,TONE[3])) - var/datum/organ/external/head = get_organ("head") + var/datum/organ/external/head/head = get_organ("head") var/has_head = 0 + var/brain_showing = 0 if(head && !(head.status & ORGAN_DESTROYED)) has_head = 1 + if(head.brained==1) + brain_showing = 1 for(var/datum/organ/external/part in organs) if(!istype(part, /datum/organ/external/chest) && !(part.status & ORGAN_DESTROYED)) @@ -316,6 +319,9 @@ proc/get_damage_icon_part(damage_state, body_part) if(lip_style && (species && species.flags & HAS_LIPS)) //skeletons are allowed to wear lipstick no matter what you think, agouri. stand_icon.Blend(new/icon('icons/mob/human_face.dmi', "lips_[lip_style]_s"), ICON_OVERLAY) + //Brain showing + if(brain_showing) + stand_icon.Blend(new/icon('icons/mob/dam_human.dmi', "brain"), ICON_OVERLAY) //Underwear if(underwear >0 && underwear < 12 && species.flags & HAS_UNDERWEAR) if(!fat && !skeleton) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index dfc7d3c02fb..f6203fabbac 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -753,6 +753,7 @@ This function completely restores a damaged organ to perfect condition. min_broken_damage = 40 body_part = HEAD var/disfigured = 0 + var/brained = 0 /datum/organ/external/head/get_icon() if (!owner) @@ -772,6 +773,10 @@ This function completely restores a damaged organ to perfect condition. disfigure("brute") if (burn_dam > 40) disfigure("burn") + if(!brained) + if(brute_dam > 25) + if(prob(10)) + breakskull() /datum/organ/external/head/proc/disfigure(var/type = "brute") if (disfigured) @@ -786,6 +791,17 @@ This function completely restores a damaged organ to perfect condition. "\red You hear a sickening sizzle.") disfigured = 1 +/datum/organ/external/head/proc/breakskull() + if(brained) + return + owner.visible_message("\red The top of \the [owner]'s skull breaks, exposing the brain help within.", \ + "\red Unbearable pain hits you as the top of your skull breaks and exposes your brain!", \ + "\red You hear a sickening crack.") + brained = 1 + owner.h_style = "Bald" + owner.drop_from_inventory(owner.head) + owner.update_body() + /**************************************************** EXTERNAL ORGAN ITEMS ****************************************************/ diff --git a/icons/mob/dam_human.dmi b/icons/mob/dam_human.dmi index 9f649669c0d..98c89156995 100644 Binary files a/icons/mob/dam_human.dmi and b/icons/mob/dam_human.dmi differ