[NO GBP] Fixes external organs not being colored by colorful reagent (#89763)

## About The Pull Request
Closes #89209
Also fixed clothing being colored on ingestion, and removed a
nonfunctional check which I didn't notice because, well, it was
nonfunctional (otherwise only splashing would color you, which isn't
what I was aiming with the original PR)

## Changelog
🆑
fix: Fixed external organs not being colored by colorful reagent
/🆑
This commit is contained in:
SmArtKar
2025-03-03 15:00:36 +01:00
committed by Roxy
parent 8dd15a29d3
commit fd48c49f8e
2 changed files with 8 additions and 6 deletions

View File

@@ -2253,7 +2253,7 @@
. = ..()
var/picked_color = pick(random_color_list)
var/color_filter = color_transition_filter(picked_color, SATURATION_OVERRIDE)
if (can_color_clothing && (methods & TOUCH|VAPOR|INHALE))
if (can_color_clothing && (methods & (TOUCH|VAPOR|INHALE)))
var/include_flags = INCLUDE_HELD|INCLUDE_ACCESSORIES
if (methods & VAPOR|INHALE)
include_flags |= INCLUDE_POCKETS
@@ -2273,16 +2273,14 @@
exposed_mob.add_atom_colour(color_filter, WASHABLE_COLOUR_PRIORITY)
return
if (!(methods & TOUCH|VAPOR|INHALE))
return
var/mob/living/carbon/exposed_carbon = exposed_mob
for (var/obj/item/bodypart/part as anything in exposed_carbon.bodyparts)
part.add_atom_colour(color_filter, WASHABLE_COLOUR_PRIORITY)
for (var/obj/item/organ/organ as anything in exposed_carbon.organs)
organ.add_atom_colour(color_filter, WASHABLE_COLOUR_PRIORITY)
for (var/obj/item/bodypart/part as anything in exposed_carbon.bodyparts)
part.add_atom_colour(color_filter, WASHABLE_COLOUR_PRIORITY)
/datum/reagent/colorful_reagent/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
. = ..()

View File

@@ -1058,6 +1058,10 @@
actual_color = apply_matrix_to_color(COLOR_WHITE, color_filter["color"], color_filter["space"] || COLORSPACE_RGB)
add_color_override(actual_color, LIMB_COLOR_ATOM_COLOR + i)
update_limb()
// Recolors mutant overlays to match new mutant colors
for(var/datum/bodypart_overlay/mutant/overlay in bodypart_overlays)
overlay.inherit_color(src, force = TRUE)
// Update either owner's bodyparts or our icon if we don't have one
if (owner)
owner.update_body_parts()
else