mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 05:00:55 +01:00
Sinew on bones from butchered limbs now inherits its owner's blood color (#94726)
## About The Pull Request As title says, bones now get a colored overlay corresponding to their limb's blood color instead of constantly having pink sinew. <img width="76" height="77" alt="image" src="https://github.com/user-attachments/assets/e6f8ffb8-fffa-49a8-93ed-77db618ff347" /> ## Why It's Good For The Game Doesn't make sense that lizards would still have pink sinew despite their blood being green ## Changelog 🆑 image: Sinew on bones from butchered limbs now inherits its owner's blood color /🆑
This commit is contained in:
@@ -1264,19 +1264,6 @@
|
||||
icon_state = "" //to erase the default sprite, we're building the visual aspects of the bodypart through overlays alone.
|
||||
|
||||
. = list()
|
||||
|
||||
if(dropped && dmg_overlay_type)
|
||||
if(brutestate)
|
||||
// divided into two overlays: one that gets colored and one that doesn't.
|
||||
var/image/brute_blood_overlay = image('icons/mob/effects/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_[brutestate]0", -DAMAGE_LAYER, dir = SOUTH)
|
||||
brute_blood_overlay.color = get_color_from_blood_list(update_on ? update_on.get_blood_dna_list() : blood_dna_info) // living mobs can just get it fresh, dropped limbs use blood_dna_info
|
||||
var/mutable_appearance/brute_damage_overlay = mutable_appearance('icons/mob/effects/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_[brutestate]0_overlay", -DAMAGE_LAYER, appearance_flags = RESET_COLOR)
|
||||
if(brute_damage_overlay)
|
||||
brute_blood_overlay.overlays += brute_damage_overlay
|
||||
. += brute_blood_overlay
|
||||
if(burnstate)
|
||||
. += image('icons/mob/effects/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_0[burnstate]", -DAMAGE_LAYER, dir = SOUTH)
|
||||
|
||||
var/image_dir = null
|
||||
if (dropped)
|
||||
image_dir = SOUTH
|
||||
@@ -1284,6 +1271,7 @@
|
||||
// Handles invisibility (not alpha or actual invisibility but invisibility)
|
||||
if(is_invisible)
|
||||
. += image(icon_invisible, "invisible_[body_zone]", -BODYPARTS_LAYER, dir = image_dir)
|
||||
SEND_SIGNAL(src, COMSIG_BODYPART_GET_LIMB_ICON, ., dropped, update_on)
|
||||
return .
|
||||
|
||||
// Normal non-husk handling
|
||||
@@ -1307,6 +1295,18 @@
|
||||
aux = image(limb.icon, "[limb_id]_[aux_zone]", -aux_layer, dir = image_dir)
|
||||
. += aux
|
||||
|
||||
if(dropped && dmg_overlay_type)
|
||||
if(brutestate)
|
||||
// divided into two overlays: one that gets colored and one that doesn't.
|
||||
var/image/brute_blood_overlay = image('icons/mob/effects/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_[brutestate]0", -DAMAGE_LAYER, dir = SOUTH)
|
||||
brute_blood_overlay.color = get_color_from_blood_list(update_on ? update_on.get_blood_dna_list() : blood_dna_info) // living mobs can just get it fresh, dropped limbs use blood_dna_info
|
||||
var/mutable_appearance/brute_damage_overlay = mutable_appearance('icons/mob/effects/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_[brutestate]0_overlay", -DAMAGE_LAYER, appearance_flags = RESET_COLOR)
|
||||
if(brute_damage_overlay)
|
||||
brute_blood_overlay.overlays += brute_damage_overlay
|
||||
. += brute_blood_overlay
|
||||
if(burnstate)
|
||||
. += image('icons/mob/effects/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_0[burnstate]", -DAMAGE_LAYER, dir = SOUTH)
|
||||
|
||||
if(is_husked)
|
||||
. += huskify_image(thing_to_husk = limb)
|
||||
if(aux)
|
||||
@@ -1357,6 +1357,7 @@
|
||||
|
||||
// And finally put bodypart_overlays on if not husked
|
||||
if(is_husked)
|
||||
SEND_SIGNAL(src, COMSIG_BODYPART_GET_LIMB_ICON, ., dropped, update_on)
|
||||
return .
|
||||
|
||||
// Draw external organs like horns and frills
|
||||
@@ -1383,6 +1384,8 @@
|
||||
|
||||
for(var/datum/layer in .)
|
||||
overlay.modify_bodypart_appearance(layer)
|
||||
|
||||
SEND_SIGNAL(src, COMSIG_BODYPART_GET_LIMB_ICON, ., dropped, update_on)
|
||||
return .
|
||||
|
||||
/obj/item/bodypart/proc/huskify_image(image/thing_to_husk)
|
||||
|
||||
@@ -435,10 +435,18 @@
|
||||
// These are always disabled
|
||||
disabling_threshold_percentage = 0
|
||||
|
||||
/obj/item/bodypart/head/skeleton/nonfunctional/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/blood_limb_overlay)
|
||||
|
||||
/obj/item/bodypart/chest/skeleton/nonfunctional
|
||||
limb_id = BODYPART_ID_BONE
|
||||
disabling_threshold_percentage = 0
|
||||
|
||||
/obj/item/bodypart/chest/skeleton/nonfunctional/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/blood_limb_overlay)
|
||||
|
||||
/obj/item/bodypart/chest/skeleton/nonfunctional/on_adding(mob/living/carbon/new_owner)
|
||||
. = ..()
|
||||
// Treat people with bone chests as husks for all purposes for now
|
||||
@@ -453,18 +461,34 @@
|
||||
limb_id = BODYPART_ID_BONE
|
||||
disabling_threshold_percentage = 0
|
||||
|
||||
/obj/item/bodypart/arm/left/skeleton/nonfunctional/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/blood_limb_overlay)
|
||||
|
||||
/obj/item/bodypart/arm/right/skeleton/nonfunctional
|
||||
limb_id = BODYPART_ID_BONE
|
||||
disabling_threshold_percentage = 0
|
||||
|
||||
/obj/item/bodypart/arm/right/skeleton/nonfunctional/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/blood_limb_overlay)
|
||||
|
||||
/obj/item/bodypart/leg/left/skeleton/nonfunctional
|
||||
limb_id = BODYPART_ID_BONE
|
||||
disabling_threshold_percentage = 0
|
||||
|
||||
/obj/item/bodypart/leg/left/skeleton/nonfunctional/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/blood_limb_overlay)
|
||||
|
||||
/obj/item/bodypart/leg/right/skeleton/nonfunctional
|
||||
limb_id = BODYPART_ID_BONE
|
||||
disabling_threshold_percentage = 0
|
||||
|
||||
/obj/item/bodypart/leg/right/skeleton/nonfunctional/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/blood_limb_overlay)
|
||||
|
||||
///MUSHROOM
|
||||
/obj/item/bodypart/head/mushroom
|
||||
limb_id = SPECIES_MUSHROOM
|
||||
|
||||
Reference in New Issue
Block a user