Proteans can temporarily transform their wearers to look like them. (#5691)

## About The Pull Request

See title and proof of testing.

## Why It's Good For The Game

Listen, I've been racking my brain on how to do this since I first coded
this species. I finally figured out a way. Besides, I think the
component itself will prove useful for any future stuff. This adds more
protean content that I feel people will enjoy.

## Proof Of Testing

<img width="381" height="387" alt="dreamseeker_UezPpr0cxQ"
src="https://github.com/user-attachments/assets/cd876c0b-0cde-4f30-878f-2da4ae0332e0"
/>

Also I won't lie, hardlight stuff for the suits is kind of a task on
itself on needing to piece together. That's one icon event that can't
just be solved by sane conventional methods.
## Changelog

🆑
add: Proteans can temporarily transform their wearers to look more like
them.
/🆑
This commit is contained in:
The Sharkening
2026-06-05 12:18:27 -06:00
committed by GitHub
parent a7cd6e14ff
commit 8fda74bcfe
6 changed files with 203 additions and 2 deletions
@@ -481,8 +481,14 @@
update_wound_overlays()
var/limb_count_update = 0
var/list/new_limbs = list()
for(var/body_zone, limb_untyped in get_bodyparts_by_zones())
var/datum/component/transformation/transform = GetComponent(/datum/component/transformation) // BUBBER EDIT START - Transformation component override.
if(transform)
transform.on_transform_limb_icon(src)
for(var/body_zone, limb_untyped in transform ? transform.dummy.get_bodyparts_by_zones() : get_bodyparts_by_zones()) // BUBBER EDIT END | ORG: for(var/body_zone, limb_untyped in get_bodyparts_by_zones())
var/obj/item/bodypart/limb = limb_untyped
var/obj/item/bodypart/stump_limb_check = get_bodypart(body_zone, TRUE) // BUBBER EDIT START
if(transform && (isnull(stump_limb_check) || IS_STUMP(stump_limb_check)))
limb = stump_limb_check // BUBBER EDIT END
if(isnull(limb) || IS_STUMP(limb))
if(icon_render_keys[body_zone])
icon_render_keys -= body_zone