Character Creation Tweak (#11207)

This commit is contained in:
Geeves
2021-03-12 23:52:11 +02:00
committed by GitHub
parent d786f622c6
commit 412eeec1df
29 changed files with 306 additions and 243 deletions

View File

@@ -5,6 +5,7 @@
/datum/category_item/player_setup_item/general/basic/load_character(var/savefile/S)
S["real_name"] >> pref.real_name
S["gender"] >> pref.gender
S["pronouns"] >> pref.pronouns
S["age"] >> pref.age
S["species"] >> pref.species
S["spawnpoint"] >> pref.spawnpoint
@@ -17,6 +18,7 @@
/datum/category_item/player_setup_item/general/basic/save_character(var/savefile/S)
S["real_name"] << pref.real_name
S["gender"] << pref.gender
S["pronouns"] << pref.pronouns
S["age"] << pref.age
S["species"] << pref.species
S["spawnpoint"] << pref.spawnpoint
@@ -34,6 +36,7 @@
"vars" = list(
"name" = "real_name",
"gender",
"pronouns",
"age",
"metadata",
"spawnpoint",
@@ -64,6 +67,7 @@
"ss13_characters" = list(
"name",
"gender",
"pronouns",
"age",
"metadata",
"spawnpoint",
@@ -83,6 +87,7 @@
return list(
"name" = pref.real_name,
"gender" = pref.gender,
"pronouns" = pref.pronouns,
"age" = pref.age,
"metadata" = pref.metadata,
"spawnpoint" = pref.spawnpoint,
@@ -129,6 +134,7 @@
pref.age = sanitize_integer(text2num(pref.age), pref.getMinAge(), pref.getMaxAge(), initial(pref.age))
pref.gender = sanitize_gender(pref.gender, pref.species)
pref.pronouns = sanitize_pronouns(pref.pronouns, pref.species, pref.gender)
pref.real_name = sanitize_name(pref.real_name, pref.species)
if(!pref.real_name)
pref.real_name = random_name(pref.gender, pref.species)
@@ -144,10 +150,13 @@
if (pref.can_edit_name)
dat += "(<a href='?src=\ref[src];random_name=1'>Random Name</A>)"
dat += "<br>"
dat += "<b>Gender:</b> <a href='?src=\ref[src];gender=1'><b>[capitalize(lowertext(pref.gender))]</b></a><br>"
dat += "<b>Sex:</b> <a href='?src=\ref[src];gender=1'><b>[capitalize(lowertext(pref.gender))]</b></a><br>"
var/datum/species/S = all_species[pref.species]
if(length(S.selectable_pronouns))
dat += "<b>Pronouns:</b> <a href='?src=\ref[src];pronouns=1'><b>[capitalize_first_letters(pref.pronouns)]</b></a><br>"
dat += "<b>Age:</b> <a href='?src=\ref[src];age=1'>[pref.age]</a><br>"
dat += "<b>Spawn Point</b>: <a href='?src=\ref[src];spawnpoint=1'>[pref.spawnpoint]</a><br>"
if(istype(all_species[pref.species], /datum/species/machine))
if(istype(S, /datum/species/machine))
if(pref.can_edit_ipc_tag)
dat += "<b>Has Tag:</b> <a href='?src=\ref[src];ipc_tag=1'>[pref.machine_tag_status ? "Yes" : "No"]</a><br>"
else
@@ -214,11 +223,23 @@
else if(href_list["gender"])
var/datum/species/S = all_species[pref.species]
pref.gender = next_in_list(pref.gender, valid_player_genders & S.default_genders)
pref.pronouns = pref.gender
var/datum/category_item/player_setup_item/general/equipment/equipment_item = category.items[4]
equipment_item.sanitize_character() // sanitize equipment
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["pronouns"])
var/datum/species/S = all_species[pref.species]
var/selectable_pronouns = list() // this only exists to uppercase the first letters, otherwise it is uggo
for(var/pronoun in S.selectable_pronouns)
selectable_pronouns += capitalize_first_letters(pronoun)
var/new_pronouns = input(usr, "Select how your characters will appear to others when examined.", "Pronoun Selection") as null|anything in selectable_pronouns
if(!new_pronouns)
return
pref.pronouns = lowertext(new_pronouns)
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["age"])
var/new_age = input(user, "Choose your character's age:\n([pref.getMinAge()]-[pref.getMaxAge()])", "Character Preference", pref.age) as num|null
if(new_age && CanUseTopic(user))