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]