transformation 
-
OK THIS IS GOING TO SOUND WEIRD, BUT STAY WITH ME. I'VE PUT A LOT OF THOUGHT ON HOW TO DO THIS WITHOUT FUCKING UP HOW THE GAME CREATES OUR FURRY HOMUNCULUS CREATURES.
-
-
How literally everything else handles any form of transformation (NIF, Changeling, that one lavaland knife I doubt you know about) will mostly dna.copy_dna() from the old to the new.
-
But the issue is, literally EVERYTHING fucking breaks the second you're using limbs that are entirely incompatible. (Teshari, synths) and the spaceman that pops out becomes a weird ass frankenstein mess.
-
That is, unless you force load one set of prefs to the other mob. (Which is a valid and cool option) But overall, to fix the above issue you HAVE TO change their species.
-
This is more an illusionary effect and me tricking the game. The base mob is mostly unaffected. You will look like a synth and still bleed red. How will this work?
-
/mob/living/carbon/proc/update_body_parts() detects if the mob has this component, then will create the required icon_render_keys based off a separate entity.
-
It can't be the source player directly, cause you chop off their head or they put on a hat, it'll mirror exactly to the component holder which is also undesired jank.
-
The solution? We still do the whole changeling bullshit to a mob that sits in null space, then have the affected player mirror it.
-
If something looks jank, it's because the nullspace dummy we're using for this is not properly mirroring certain icon events. (Hair hiding with hats, gasmasks not clipping with snouts, etc)
-
With that, my dear reader, just need to make sure on_transform_limb_icon() properly modifies our nullspace dummy with said event or you add another cached_feature to temporarily change the player's mob.
-
TDLR: This whole thing is so you can transform people without changing their species, and for it not to look like shit.
Vars | |
| dummy | Dummy human sitting in null space |
|---|---|
| original | Source mob that's transferring. |
Procs | |
| on_transform_limb_icon | TODO: Digigrade legs and bodyshape |
Var Details
dummy 
Dummy human sitting in null space
original 
Source mob that's transferring.
Proc Details
on_transform_limb_icon
TODO: Digigrade legs and bodyshape