mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 16:47:13 +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
89 lines
2.9 KiB
Plaintext
89 lines
2.9 KiB
Plaintext
/datum/preference/choiced/blooper
|
|
category = PREFERENCE_CATEGORY_CHARACTER_BASICS
|
|
savefile_identifier = PREFERENCE_CHARACTER
|
|
savefile_key = "blooper_choice"
|
|
|
|
/datum/preference/choiced/blooper/init_possible_values()
|
|
// no bloopers configured, return dummy list to avoid runtimes
|
|
if(!length(SSblooper.blooper_list))
|
|
return list("none")
|
|
return assoc_to_keys(SSblooper.blooper_list)
|
|
|
|
/datum/preference/choiced/blooper/apply_to_human(mob/living/carbon/human/target, value)
|
|
target.blooper = SSblooper.blooper_list[value]
|
|
|
|
/datum/preference/choiced/blooper/is_accessible(datum/preferences/preferences)
|
|
return ..() && length(SSblooper.blooper_list)
|
|
|
|
/datum/preference/choiced/blooper/compile_constant_data()
|
|
var/list/data = ..()
|
|
if(!length(SSblooper.blooper_list))
|
|
return data
|
|
var/list/display_names = list()
|
|
for(var/id in get_choices())
|
|
display_names[id] = astype(SSblooper.blooper_list[id], /datum/blooper).name
|
|
data[CHOICED_PREFERENCE_DISPLAY_NAMES] = display_names
|
|
return data
|
|
|
|
/datum/preference/numeric/blooper_speed
|
|
category = PREFERENCE_CATEGORY_CHARACTER_BASICS
|
|
savefile_identifier = PREFERENCE_CHARACTER
|
|
savefile_key = "blooper_speed"
|
|
minimum = 0
|
|
maximum = 100
|
|
|
|
/datum/preference/numeric/blooper_speed/apply_to_human(mob/living/carbon/human/target, value)
|
|
target.blooper_speed = value
|
|
|
|
/datum/preference/numeric/blooper_speed/create_default_value()
|
|
return 50
|
|
|
|
/datum/preference/numeric/blooper_speed/is_accessible(datum/preferences/preferences)
|
|
return ..() && length(SSblooper.blooper_list)
|
|
|
|
/datum/preference/numeric/blooper_pitch
|
|
category = PREFERENCE_CATEGORY_CHARACTER_BASICS
|
|
savefile_identifier = PREFERENCE_CHARACTER
|
|
savefile_key = "blooper_pitch"
|
|
minimum = 0
|
|
maximum = 100
|
|
|
|
/datum/preference/numeric/blooper_pitch/apply_to_human(mob/living/carbon/human/target, value)
|
|
target.blooper_pitch = value
|
|
|
|
/datum/preference/numeric/blooper_pitch/create_default_value()
|
|
return 50
|
|
|
|
/datum/preference/numeric/blooper_pitch/is_accessible(datum/preferences/preferences)
|
|
return ..() && length(SSblooper.blooper_list)
|
|
|
|
/datum/preference/numeric/blooper_pitch_range
|
|
category = PREFERENCE_CATEGORY_CHARACTER_BASICS
|
|
savefile_identifier = PREFERENCE_CHARACTER
|
|
savefile_key = "blooper_pitch_range"
|
|
minimum = 0
|
|
maximum = 100
|
|
|
|
/datum/preference/numeric/blooper_pitch_range/apply_to_human(mob/living/carbon/human/target, value)
|
|
target.blooper_pitch_range = value
|
|
|
|
/datum/preference/numeric/blooper_pitch_range/create_default_value()
|
|
return 30
|
|
|
|
/datum/preference/numeric/blooper_pitch_range/is_accessible(datum/preferences/preferences)
|
|
return ..() && length(SSblooper.blooper_list)
|
|
|
|
// Send vocal bloopers
|
|
/datum/preference/toggle/send_blooper
|
|
category = PREFERENCE_CATEGORY_GAME_PREFERENCES
|
|
savefile_identifier = PREFERENCE_PLAYER
|
|
savefile_key = "blooper_send"
|
|
default_value = TRUE
|
|
|
|
// Hear vocal bloopers
|
|
/datum/preference/toggle/hear_blooper
|
|
category = PREFERENCE_CATEGORY_GAME_PREFERENCES
|
|
savefile_identifier = PREFERENCE_PLAYER
|
|
savefile_key = "blooper_hear"
|
|
default_value = TRUE
|