diff --git a/code/datums/bodypart_overlays/emote_bodypart_overlay.dm b/code/datums/bodypart_overlays/emote_bodypart_overlay.dm index fbdea601839..78cb9752fa3 100644 --- a/code/datums/bodypart_overlays/emote_bodypart_overlay.dm +++ b/code/datums/bodypart_overlays/emote_bodypart_overlay.dm @@ -63,6 +63,19 @@ offset_key = OFFSET_FACE attached_body_zone = BODY_ZONE_HEAD +/datum/bodypart_overlay/simple/emote/blush/color_image(image/overlay, layer, obj/item/bodypart/limb) + var/base_color = limb.owner?.get_bloodtype()?.get_damage_color() + if(!base_color) + return ..() + + var/list/blood_hsl = rgb2num(base_color, COLORSPACE_HSL) + // take blood color then just make it a lot brighter and desaturate it a bit + blood_hsl[2] = max(0, blood_hsl[2] - 20) + blood_hsl[3] = min(100, blood_hsl[3] + 30) + + overlay.color = rgb(blood_hsl[1], blood_hsl[2], blood_hsl[3], space = COLORSPACE_HSL) + overlay.alpha = 200 + /datum/bodypart_overlay/simple/emote/cry icon_state = "tears" draw_color = COLOR_DARK_CYAN diff --git a/code/modules/mob/living/blood_types.dm b/code/modules/mob/living/blood_types.dm index f9d84a4cc9d..7335bd2204f 100644 --- a/code/modules/mob/living/blood_types.dm +++ b/code/modules/mob/living/blood_types.dm @@ -349,6 +349,7 @@ // Ensures that lighter slimefolk look half-decent when wounded and bleeding /datum/blood_type/slime/get_wound_color(mob/living/carbon/victim) return victim.dna?.features?[FEATURE_MUTANT_COLOR] || get_color() + /datum/blood_type/slime/get_damage_color(mob/living/carbon/victim) return victim.dna?.features?[FEATURE_MUTANT_COLOR] || get_color() diff --git a/code/modules/mob/living/carbon/carbon_update_icons.dm b/code/modules/mob/living/carbon/carbon_update_icons.dm index 19d5039de92..8fd030d51b8 100644 --- a/code/modules/mob/living/carbon/carbon_update_icons.dm +++ b/code/modules/mob/living/carbon/carbon_update_icons.dm @@ -295,7 +295,6 @@ continue if(isnull(damage_overlay) && (iter_part.brutestate || iter_part.burnstate)) damage_overlay = mutable_appearance('icons/mob/effects/dam_mob.dmi', "blank", -DAMAGE_LAYER, appearance_flags = KEEP_TOGETHER) - damage_overlay.color = iter_part.damage_overlay_color if(iter_part.brutestate) var/mutable_appearance/blood_damage_overlay = mutable_appearance('icons/mob/effects/dam_mob.dmi', "[iter_part.dmg_overlay_type]_[iter_part.body_zone]_[iter_part.brutestate]0", appearance_flags = RESET_COLOR) //we're adding icon_states of the base image as overlays blood_damage_overlay.color = get_bloodtype()?.get_damage_color(src) diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index ca031ab518f..d603e7c8c7b 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -116,8 +116,6 @@ ///the type of damage overlay (if any) to use when this bodypart is bruised/burned. var/dmg_overlay_type = "human" - ///a color (optionally matrix) for the damage overlays to give the limb - var/damage_overlay_color /// If we're bleeding, which icon are we displaying on this part var/bleed_overlay_icon