diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 8b3be53b8c6..cdc370a4d53 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -348,7 +348,7 @@ proc/get_damage_icon_part(damage_state, body_part) overlays_standing[HAIR_LAYER] = null var/obj/item/organ/external/head/head_organ = get_organ("head") - if( !head_organ || (head_organ.status & ORGAN_DESTROYED) ) + if(!head_organ || head_organ.is_stump() || (head_organ.status & ORGAN_DESTROYED) ) if(update_icons) update_icons() return diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index f5def416ee7..9fa3f6e0b60 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -869,14 +869,15 @@ Note that amputating the affected organ does in fact remove the infection from t /obj/item/organ/external/proc/disfigure(var/type = "brute") if (disfigured) return - if(type == "brute") - owner.visible_message("\red You hear a sickening cracking sound coming from \the [owner]'s [name].", \ - "\red Your [name] becomes a mangled mess!", \ - "\red You hear a sickening crack.") - else - owner.visible_message("\red \The [owner]'s [name] melts away, turning into mangled mess!", \ - "\red Your [name] melts away!", \ - "\red You hear a sickening sizzle.") + if(owner) + if(type == "brute") + owner.visible_message("\red You hear a sickening cracking sound coming from \the [owner]'s [name].", \ + "\red Your [name] becomes a mangled mess!", \ + "\red You hear a sickening crack.") + else + owner.visible_message("\red \The [owner]'s [name] melts away, turning into mangled mess!", \ + "\red Your [name] melts away!", \ + "\red You hear a sickening sizzle.") disfigured = 1 /**************************************************** @@ -1016,6 +1017,8 @@ Note that amputating the affected organ does in fact remove the infection from t owner.unEquip(owner.l_ear) owner.unEquip(owner.r_ear) owner.unEquip(owner.wear_mask) + spawn(1) + owner.update_hair() ..() /obj/item/organ/external/head/take_damage(brute, burn, sharp, edge, used_weapon = null, list/forbidden_limbs = list()) @@ -1025,4 +1028,4 @@ Note that amputating the affected organ does in fact remove the infection from t if (prob(50)) disfigure("brute") if (burn_dam > 40) - disfigure("burn") \ No newline at end of file + disfigure("burn") diff --git a/code/modules/organs/organ_icon.dm b/code/modules/organs/organ_icon.dm index 67adaaae87c..16220f83ae4 100644 --- a/code/modules/organs/organ_icon.dm +++ b/code/modules/organs/organ_icon.dm @@ -31,6 +31,7 @@ var/global/list/limb_icon_cache = list() /obj/item/organ/external/head/get_icon() ..() + overlays.Cut() if(owner.species.has_organ["eyes"]) var/obj/item/organ/eyes/eyes = owner.internal_organs_by_name["eyes"] if(owner.species.eyes) @@ -40,11 +41,12 @@ var/global/list/limb_icon_cache = list() else eyes_icon.Blend(rgb(128,0,0), ICON_ADD) mob_icon.Blend(eyes_icon, ICON_OVERLAY) + overlays |= eyes_icon if(owner.lip_style && (owner.species && (owner.species.flags & HAS_LIPS))) - var/image/lips = image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[owner.lip_style]_s") - lips.color = owner.lip_color - mob_icon.Blend(lips, ICON_OVERLAY) + var/icon/lip_icon = new/icon('icons/mob/human_face.dmi', "lips_[owner.lip_style]_s") + overlays |= lip_icon + mob_icon.Blend(lip_icon, ICON_OVERLAY) if(owner.f_style) var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[owner.f_style]