mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 00:29:02 +01:00
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
38 lines
1.3 KiB
Plaintext
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)
|