Files
RoxyandThe Sharkening cbde7d6206 [BOUNTY] Character Preferences Reorganization (#5389)
This bounty was requested by @ArrisFairburne

Cleans up the character customization; various customization features
have been moved into three new tabs, "Character Basics" "OOC
Preferences" and "Silicon Preferences".

A ton of the character customization options (maybe 40%?) are stuff that
almost nobody would use on a regular basis. Options like mushroom caps,
frills, fluff, taur bodies, xenodorsal heads, etc. could be ignored by a
most players because they're irrelevant to their characters. Ideally the
most necessary stuff (basic furry parts, our required FTs, and
soundbytes for speaking) are the stuff the players see first, with more
stuff continuing to be available upon checking different tabs.

Silicon prefs are moved into their own tab because most characters are
carbons so they just won't ever need to bother with them.

<details>
<summary>Screenshots/Videos</summary>
<img width="1100" height="790" alt="basics"
src="https://github.com/user-attachments/assets/f84ce557-09fd-414d-a076-58569392a84b"
/>
<img width="1100" height="790" alt="visuals"
src="https://github.com/user-attachments/assets/0e184209-f6d0-43f7-8452-0ec409f13dba"
/>
<img width="1100" height="790" alt="lore"
src="https://github.com/user-attachments/assets/b0f8f74c-5b21-49f3-823a-8684015c7b61"
/>
<img width="1100" height="790" alt="lore2"
src="https://github.com/user-attachments/assets/114088bc-6f3f-4a83-b528-d0d14055426e"
/>
<img width="1100" height="790" alt="ooc"
src="https://github.com/user-attachments/assets/14333121-dc87-4396-a64d-fd2d07e86780"
/>
<img width="1100" height="790" alt="silicon"
src="https://github.com/user-attachments/assets/5992d37e-17ca-4854-a88a-f6cc87f27128"
/>

</details>

🆑 ArrisFairburne
qol: Cleaned up the character preference window.
/🆑
^ Conflicts:
^	tgui/packages/tgui/interfaces/PreferencesMenu/types.ts
2026-04-11 08:57:55 -06:00

38 lines
1.3 KiB
Plaintext

/datum/preference/choiced/brain_type
category = PREFERENCE_CATEGORY_SILICON_PREFS
savefile_key = "brain_type"
savefile_identifier = PREFERENCE_CHARACTER
priority = PREFERENCE_PRIORITY_NAMES // Apply after species, cause that's super important.
/datum/preference/choiced/brain_type/init_possible_values()
return list(ORGAN_PREF_POSI_BRAIN, ORGAN_PREF_MMI_BRAIN, ORGAN_PREF_CIRCUIT_BRAIN)
/datum/preference/choiced/brain_type/create_default_value()
return ORGAN_PREF_POSI_BRAIN
/datum/preference/choiced/brain_type/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences)
if(!issynthetic(target))
return
var/obj/item/organ/brain/new_brain = target.prefs_get_brain_to_use(value)
var/obj/item/organ/brain/old_brain = target.get_organ_slot(ORGAN_SLOT_BRAIN)
if(!new_brain || new_brain == old_brain.type)
return
var/datum/mind/keep_me_safe = target.mind
new_brain = new new_brain()
new_brain.modular_persistence = old_brain.modular_persistence
new_brain.modular_persistence?.owner = new_brain
old_brain.modular_persistence = null
new_brain.Insert(target, movement_flags = DELETE_IF_REPLACED)
// Prefs can be applied to mindless mobs, let's not try to move the non-existent mind back in!
if(!keep_me_safe)
return
keep_me_safe.transfer_to(target, TRUE)