mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 02:34:00 +00:00
Begins breaking down the large character setup in more manageable modules, allowing for easier additions, edits, and removals.
(cherry picked from commit e116721977)
Conflicts:
code/modules/client/preferences.dm
code/modules/client/preferences_savefile.dm
polaris.dme
91 lines
3.7 KiB
Plaintext
91 lines
3.7 KiB
Plaintext
/datum/category_item/player_setup_item/general/basic
|
|
name = "Basic"
|
|
sort_order = 1
|
|
|
|
/datum/category_item/player_setup_item/general/basic/load_character(var/savefile/S)
|
|
S["real_name"] >> pref.real_name
|
|
S["name_is_always_random"] >> pref.be_random_name
|
|
S["gender"] >> pref.gender
|
|
S["age"] >> pref.age
|
|
S["spawnpoint"] >> pref.spawnpoint
|
|
S["OOC_Notes"] >> pref.metadata
|
|
|
|
/datum/category_item/player_setup_item/general/basic/save_character(var/savefile/S)
|
|
S["real_name"] << pref.real_name
|
|
S["name_is_always_random"] << pref.be_random_name
|
|
S["gender"] << pref.gender
|
|
S["age"] << pref.age
|
|
S["spawnpoint"] << pref.spawnpoint
|
|
S["OOC_Notes"] << pref.metadata
|
|
|
|
/datum/category_item/player_setup_item/general/basic/sanitize_character()
|
|
pref.real_name = sanitizeName(pref.real_name)
|
|
if(!pref.real_name)
|
|
pref.real_name = random_name(pref.gender, pref.species)
|
|
pref.spawnpoint = sanitize_inlist(pref.spawnpoint, spawntypes, initial(pref.spawnpoint))
|
|
pref.be_random_name = sanitize_integer(pref.be_random_name, 0, 1, initial(pref.be_random_name))
|
|
pref.age = sanitize_integer(pref.age, AGE_MIN, AGE_MAX, initial(pref.age))
|
|
|
|
/datum/category_item/player_setup_item/general/basic/content()
|
|
. = "<b>Name:</b> "
|
|
. += "<a href='?src=\ref[src];rename=1'><b>[pref.real_name]</b></a><br>"
|
|
. += "(<a href='?src=\ref[src];random_name=1'>Random Name</A>) "
|
|
. += "(<a href='?src=\ref[src];always_random_name=1'>Always Random Name: [pref.be_random_name ? "Yes" : "No"]</a>)"
|
|
. += "<br>"
|
|
. += "<b>Gender:</b> <a href='?src=\ref[src];gender=1'><b>[pref.gender == MALE ? "Male" : "Female"]</b></a><br>"
|
|
. += "<b>Age:</b> <a href='?src=\ref[src];age=1'>[pref.age]</a><br>"
|
|
. += "<b>Spawn Point</b>: <a href='?src=\ref[src];spawnpoint=1'>[pref.spawnpoint]</a><br>"
|
|
if(config.allow_Metadata)
|
|
. += "<b>OOC Notes:</b> <a href='?src=\ref[src];metadata=1'> Edit </a><br>"
|
|
|
|
/datum/category_item/player_setup_item/general/basic/OnTopic(var/href,var/list/href_list, var/mob/user)
|
|
if(href_list["rename"])
|
|
var/raw_name = input(user, "Choose your character's name:", "Character Name") as text|null
|
|
if (!isnull(raw_name) && CanUseTopic(user))
|
|
var/new_name = sanitizeName(raw_name)
|
|
if(new_name)
|
|
pref.real_name = new_name
|
|
return TOPIC_REFRESH
|
|
else
|
|
user << "<span class='warning'>Invalid name. Your name should be at least 2 and at most [MAX_NAME_LEN] characters long. It may only contain the characters A-Z, a-z, -, ' and .</span>"
|
|
return TOPIC_NOACTION
|
|
|
|
else if(href_list["random_name"])
|
|
pref.real_name = random_name(pref.gender, pref.species)
|
|
return TOPIC_REFRESH
|
|
|
|
else if(href_list["always_random_name"])
|
|
pref.be_random_name = !pref.be_random_name
|
|
return TOPIC_REFRESH
|
|
|
|
else if(href_list["gender"])
|
|
if(pref.gender == MALE)
|
|
pref.gender = FEMALE
|
|
else
|
|
pref.gender = MALE
|
|
return TOPIC_REFRESH
|
|
|
|
else if(href_list["age"])
|
|
var/new_age = input(user, "Choose your character's age:\n([AGE_MIN]-[AGE_MAX])", "Character Preference", pref.age) as num|null
|
|
if(new_age && CanUseTopic(user))
|
|
pref.age = max(min(round(text2num(new_age)), AGE_MAX), AGE_MIN)
|
|
return TOPIC_REFRESH
|
|
|
|
else if(href_list["spawnpoint"])
|
|
var/list/spawnkeys = list()
|
|
for(var/S in spawntypes)
|
|
spawnkeys += S
|
|
var/choice = input(user, "Where would you like to spawn when late-joining?") as null|anything in spawnkeys
|
|
if(!choice || !spawntypes[choice] || !CanUseTopic(user)) return TOPIC_NOACTION
|
|
pref.spawnpoint = choice
|
|
return TOPIC_REFRESH
|
|
|
|
|
|
else if(href_list["metadata"])
|
|
var/new_metadata = sanitize(input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , pref.metadata)) as message|null
|
|
if(new_metadata && CanUseTopic(user))
|
|
pref.metadata = sanitize(new_metadata)
|
|
return TOPIC_REFRESH
|
|
|
|
return ..()
|