Character Creation Tweak (#11207)

This commit is contained in:
Geeves
2021-03-12 22:52:11 +01:00
committed by GitHub
parent d786f622c6
commit 412eeec1df
29 changed files with 306 additions and 243 deletions
@@ -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))
+2
View File
@@ -37,6 +37,7 @@ datum/preferences
var/can_edit_name = TRUE //Whether or not a character's name can be edited. Used with SQL saving.
var/can_edit_ipc_tag = TRUE
var/gender = MALE //gender of character (well duh)
var/pronouns = NEUTER //what the character will appear as to others when examined
var/age = 30 //age of character
var/spawnpoint = "Arrivals Shuttle" //where this character will spawn (0-2).
var/b_type = "A+" //blood type (not-chooseable)
@@ -424,6 +425,7 @@ datum/preferences
character.exploit_record = exploit_record
character.gender = gender
character.pronouns = pronouns
character.age = age
character.b_type = b_type