master
← poklj:Changeling-Devour-Transform
opened 02:48AM - 22 Dec 24 UTC
## About the PR
Adds Changelings Devour and Transform Componentry and Systems… to Achieve what is set out in The [Changeling Doc ](https://docs.spacestation14.com/en/space-station-14/round-flow/proposals/changeling.html)
With the new components and Systems a Player is able to Consume Other humanoids for their Identities to later Assume their visage, speaking and all things that make up them.
## Why / Balance
Followed https://docs.spacestation14.com/en/space-station-14/round-flow/proposals/changeling.html directly.
Assumptions made not defined within the doc:
Devour can be used on a living being
Devour does 25 damage per second after windup (10/10/5 slash/pierce/blunt)
## Technical details
Added `ChangelingTransformComponent` and System for controlling transformation.
Added `ChangelingDevourComponent` and System for managing the action of consuming people.
Added `ChangelingIdentityComponent` and System for storing references to consumed identities, which are stored as a clone (using cloning code) of the original humanoid on a paused map when they are devoured. A PVS override is added for the changeling players so that an entity preview can be seen in the transformation radial.
During transform all relevant components whitelisted in the changeling's `CloningSettingsPrototype` are transferred from these backup entities onto the acting entity. Some components cannot be copied using `CopyComp`, for example those storing references to an action entity. Instead the are handled manually in a `CloningEvent` subscription and whitelisted in the `EventComponents` list`.
## Media
https://github.com/user-attachments/assets/a52f2ab4-bc98-4b26-ab6f-40eac24bc62d
https://github.com/user-attachments/assets/e3c25f12-5ce8-42aa-a8ab-1e319d3c1fbd
<img width="100" height="231" alt="image" src="https://github.com/user-attachments/assets/6c148989-538c-45dd-96bf-3c3ee0e7941b" />
## Requirements
- [x] I have read and am following the [Pull Request and Changelog Guidelines](https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html).
- [x] I have added media to this PR or it does not require an ingame showcase.
## Breaking changes
`BodyEmotesComponent` no longer caches the used `EmoteSoundsPrototype`.
`ParadoxCloneRuleComponent` now uses the new "ParadoxCloningSettings" `CloningSettingsPrototype` as a default.
The `CloningSettingsPrototypes` in `clone.yml` have been split up and are now using inheritance.
Forks will have to adjust these component cloning whitelists so they contain their custom traits or species components.
See the existing code and code comments for examples on how to do this.
## Credits
@TiniestShark for the Action sprites
DarkIcedCoffee for creating the final sounds
**Changelog**
No CL No Fun (yet)
[Breaking Changes]
BodyEmotesComponent
no longer caches the used EmoteSoundsPrototype
.
ParadoxCloneRuleComponent
now uses the new “ParadoxCloningSettings” CloningSettingsPrototype
as a default.
The CloningSettingsPrototypes
in clone.yml
have been split up and are now using inheritance.
Forks will have to adjust these component cloning whitelists so they contain their custom traits or species components.
See the existing code and code comments for examples on how to do this.