Files
nikothedudeandGitHub de91f5826b Adds a new button to polymorph - Character (#5184)
## About The Pull Request

Title.

This new button allows you to change your character entirely, using
either your or the targets character slots. Basically a pocket SAD. You
can target anyone in view, including yourself.
## Why It's Good For The Game

Saucy shit. Seriously though, like, all the TF stuff we have ingame
kinda sucks. Having the ability to just on demand transform someone into
whatever you want it kinda awesome.
## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>


https://github.com/user-attachments/assets/91654b75-0f99-44d2-b8af-ba0a14bdb625

The dying bit just happens with slimes cause they have no heart, cant
think of a fix

</details>

## Changelog
🆑
fix: SAD can now remove organs, such as a taur body, or breasts
add: A new polymorph mode: Character, which allows you to switch your
character at your whim
/🆑
2026-02-12 10:45:55 -05:00

50 lines
2.6 KiB
Plaintext

/obj/item/disk/nifsoft_uploader/shapeshifter
name = "Polymorph"
loaded_nifsoft = /datum/nifsoft/action_granter/shapeshifter
/datum/nifsoft/action_granter/shapeshifter
name = "Polymorph"
program_desc = "This program is a large-scale refitting of the nanomachine channels running over the skin of a NIF user. This allows the nanites to reach under the skin and even into the very bone structure of the host; including incorporation of mimetic materials and femto-level manipulation devices all for the purpose of allowing the user to, essentially, shapeshift on a low level. However, despite the incredible complexity behind these processes, there are still limits on the range of 'forms' a user can take. Mass can neither be created nor destroyed, after all, and you can only distribute and rearrange it in so many ways across a functioning humanoid body; meaning, the user cannot adopt forms too far out of their 'true' one."
compatible_nifs = list(/obj/item/organ/cyberimp/brain/nif/standard)
purchase_price = 350
buying_category = NIFSOFT_CATEGORY_COSMETIC
ui_icon = "paintbrush"
action_to_grant = /datum/action/innate/alter_form/nif
/// The NIF version of alter form.
/datum/action/innate/alter_form/nif
name = "Polymorph"
slime_restricted = FALSE
background_icon = 'modular_skyrat/master_files/icons/mob/actions/action_backgrounds.dmi'
background_icon_state = "android"
button_icon = 'modular_skyrat/master_files/icons/mob/actions/actions_nif.dmi'
button_icon_state = "slime"
shapeshift_text = "closes their eyes to focus, their body subtly shifting and contorting."
/datum/action/innate/alter_form/nif/change_form(mob/living/carbon/human/alterer)
var/selected_alteration = show_radial_menu(
alterer,
alterer,
list(
"Body Colours" = image(icon = 'modular_skyrat/master_files/icons/mob/actions/actions_slime.dmi', icon_state = "slime_rainbow"),
"DNA" = image(icon = 'modular_skyrat/master_files/icons/mob/actions/actions_slime.dmi', icon_state = "dna"),
"Hair" = image(icon = 'modular_skyrat/master_files/icons/mob/actions/actions_slime.dmi', icon_state = "scissors"),
"Markings" = image(icon = 'modular_skyrat/master_files/icons/mob/actions/actions_slime.dmi', icon_state = "rainbow_spraycan"),
"Character" = image(icon = 'modular_skyrat/master_files/icons/mob/actions/actions_slime.dmi', icon_state = "alter_form")
),
tooltips = TRUE,
)
if(!selected_alteration)
return
switch(selected_alteration)
if("Body Colours")
alter_colours(alterer)
if("DNA")
alter_dna(alterer)
if("Hair")
alter_hair(alterer)
if("Markings")
alter_markings(alterer)
if("Character")
begin_character_alteration(alterer)