mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-27 10:33:21 +00:00
Character setup gender selection changes
Different species now have different gender selections available.
This commit is contained in:
@@ -323,3 +323,5 @@ proc/TextPreview(var/string,var/len=40)
|
|||||||
if(48 to 57) //Numbers
|
if(48 to 57) //Numbers
|
||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
#define gender2text(gender) capitalize(gender)
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
/datum/category_item/player_setup_item/general/basic
|
/datum/category_item/player_setup_item/general/basic
|
||||||
name = "Basic"
|
name = "Basic"
|
||||||
sort_order = 1
|
sort_order = 1
|
||||||
var/list/valid_player_genders = list(MALE, FEMALE, NEUTER, PLURAL)
|
|
||||||
|
|
||||||
/datum/category_item/player_setup_item/general/basic/load_character(var/savefile/S)
|
/datum/category_item/player_setup_item/general/basic/load_character(var/savefile/S)
|
||||||
S["real_name"] >> pref.real_name
|
S["real_name"] >> pref.real_name
|
||||||
@@ -23,7 +22,7 @@
|
|||||||
if(!pref.species) pref.species = "Human"
|
if(!pref.species) pref.species = "Human"
|
||||||
var/datum/species/S = all_species[pref.species ? pref.species : "Human"]
|
var/datum/species/S = all_species[pref.species ? pref.species : "Human"]
|
||||||
pref.age = sanitize_integer(pref.age, S.min_age, S.max_age, initial(pref.age))
|
pref.age = sanitize_integer(pref.age, S.min_age, S.max_age, initial(pref.age))
|
||||||
pref.gender = sanitize_inlist(pref.gender, valid_player_genders, pick(valid_player_genders))
|
pref.gender = sanitize_inlist(pref.gender, S.genders, pick(S.genders))
|
||||||
pref.real_name = sanitize_name(pref.real_name, pref.species)
|
pref.real_name = sanitize_name(pref.real_name, pref.species)
|
||||||
if(!pref.real_name)
|
if(!pref.real_name)
|
||||||
pref.real_name = random_name(pref.gender, pref.species)
|
pref.real_name = random_name(pref.gender, pref.species)
|
||||||
@@ -36,13 +35,14 @@
|
|||||||
. += "(<a href='?src=\ref[src];random_name=1'>Random Name</A>) "
|
. += "(<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>)"
|
. += "(<a href='?src=\ref[src];always_random_name=1'>Always Random Name: [pref.be_random_name ? "Yes" : "No"]</a>)"
|
||||||
. += "<br>"
|
. += "<br>"
|
||||||
. += "<b>Gender:</b> <a href='?src=\ref[src];gender=1'><b>[capitalize(lowertext(pref.gender))]</b></a><br>"
|
. += "<b>Gender:</b> <a href='?src=\ref[src];gender=1'><b>[gender2text(pref.gender)]</b></a><br>"
|
||||||
. += "<b>Age:</b> <a href='?src=\ref[src];age=1'>[pref.age]</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>"
|
. += "<b>Spawn Point</b>: <a href='?src=\ref[src];spawnpoint=1'>[pref.spawnpoint]</a><br>"
|
||||||
if(config.allow_Metadata)
|
if(config.allow_Metadata)
|
||||||
. += "<b>OOC Notes:</b> <a href='?src=\ref[src];metadata=1'> Edit </a><br>"
|
. += "<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)
|
/datum/category_item/player_setup_item/general/basic/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||||
|
var/datum/species/S = all_species[pref.species]
|
||||||
if(href_list["rename"])
|
if(href_list["rename"])
|
||||||
var/raw_name = input(user, "Choose your character's name:", "Character Name") as text|null
|
var/raw_name = input(user, "Choose your character's name:", "Character Name") as text|null
|
||||||
if (!isnull(raw_name) && CanUseTopic(user))
|
if (!isnull(raw_name) && CanUseTopic(user))
|
||||||
@@ -63,12 +63,13 @@
|
|||||||
return TOPIC_REFRESH
|
return TOPIC_REFRESH
|
||||||
|
|
||||||
else if(href_list["gender"])
|
else if(href_list["gender"])
|
||||||
pref.gender = next_in_list(pref.gender, valid_player_genders)
|
var/new_gender = input(user, "Choose your character's gender:", "Character Preference", pref.gender) as null|anything in S.genders
|
||||||
|
if(new_gender && CanUseTopic(user))
|
||||||
|
pref.gender = new_gender
|
||||||
return TOPIC_REFRESH
|
return TOPIC_REFRESH
|
||||||
|
|
||||||
else if(href_list["age"])
|
else if(href_list["age"])
|
||||||
if(!pref.species) pref.species = "Human"
|
if(!pref.species) pref.species = "Human"
|
||||||
var/datum/species/S = all_species[pref.species]
|
|
||||||
var/new_age = input(user, "Choose your character's age:\n([S.min_age]-[S.max_age])", "Character Preference", pref.age) as num|null
|
var/new_age = input(user, "Choose your character's age:\n([S.min_age]-[S.max_age])", "Character Preference", pref.age) as num|null
|
||||||
if(new_age && CanUseTopic(user))
|
if(new_age && CanUseTopic(user))
|
||||||
pref.age = max(min(round(text2num(new_age)), S.max_age), S.min_age)
|
pref.age = max(min(round(text2num(new_age)), S.max_age), S.min_age)
|
||||||
@@ -76,8 +77,8 @@
|
|||||||
|
|
||||||
else if(href_list["spawnpoint"])
|
else if(href_list["spawnpoint"])
|
||||||
var/list/spawnkeys = list()
|
var/list/spawnkeys = list()
|
||||||
for(var/S in spawntypes)
|
for(var/spawntype in spawntypes)
|
||||||
spawnkeys += S
|
spawnkeys += spawntype
|
||||||
var/choice = input(user, "Where would you like to spawn when late-joining?") as null|anything in spawnkeys
|
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
|
if(!choice || !spawntypes[choice] || !CanUseTopic(user)) return TOPIC_NOACTION
|
||||||
pref.spawnpoint = choice
|
pref.spawnpoint = choice
|
||||||
|
|||||||
@@ -220,6 +220,11 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
|||||||
var/prev_species = pref.species
|
var/prev_species = pref.species
|
||||||
pref.species = href_list["set_species"]
|
pref.species = href_list["set_species"]
|
||||||
if(prev_species != pref.species)
|
if(prev_species != pref.species)
|
||||||
|
mob_species = all_species[pref.species]
|
||||||
|
if(!(pref.gender in mob_species.genders))
|
||||||
|
pref.gender = mob_species.genders[1]
|
||||||
|
|
||||||
|
|
||||||
//grab one of the valid hair styles for the newly chosen species
|
//grab one of the valid hair styles for the newly chosen species
|
||||||
var/list/valid_hairstyles = list()
|
var/list/valid_hairstyles = list()
|
||||||
for(var/hairstyle in hair_styles_list)
|
for(var/hairstyle in hair_styles_list)
|
||||||
|
|||||||
@@ -1104,6 +1104,9 @@
|
|||||||
if(species.holder_type)
|
if(species.holder_type)
|
||||||
holder_type = species.holder_type
|
holder_type = species.holder_type
|
||||||
|
|
||||||
|
if(!(gender in species.genders))
|
||||||
|
gender = species.genders[1]
|
||||||
|
|
||||||
icon_state = lowertext(species.name)
|
icon_state = lowertext(species.name)
|
||||||
|
|
||||||
species.create_organs(src)
|
species.create_organs(src)
|
||||||
|
|||||||
@@ -21,6 +21,8 @@
|
|||||||
flags = NO_SCAN | NO_SLIP | NO_POISON | NO_MINOR_CUT
|
flags = NO_SCAN | NO_SLIP | NO_POISON | NO_MINOR_CUT
|
||||||
spawn_flags = IS_RESTRICTED
|
spawn_flags = IS_RESTRICTED
|
||||||
|
|
||||||
|
genders = list(NEUTER)
|
||||||
|
|
||||||
/datum/species/shadow/handle_death(var/mob/living/carbon/human/H)
|
/datum/species/shadow/handle_death(var/mob/living/carbon/human/H)
|
||||||
spawn(1)
|
spawn(1)
|
||||||
new /obj/effect/decal/cleanable/ash(H.loc)
|
new /obj/effect/decal/cleanable/ash(H.loc)
|
||||||
|
|||||||
@@ -147,6 +147,8 @@
|
|||||||
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right)
|
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var/list/genders = list(MALE, FEMALE, PLURAL)
|
||||||
|
|
||||||
// Bump vars
|
// Bump vars
|
||||||
var/bump_flag = HUMAN // What are we considered to be when bumped?
|
var/bump_flag = HUMAN // What are we considered to be when bumped?
|
||||||
var/push_flags = ~HEAVY // What can we push?
|
var/push_flags = ~HEAVY // What can we push?
|
||||||
|
|||||||
@@ -23,6 +23,8 @@
|
|||||||
|
|
||||||
death_message = "becomes completely motionless..."
|
death_message = "becomes completely motionless..."
|
||||||
|
|
||||||
|
genders = list(NEUTER)
|
||||||
|
|
||||||
/datum/species/golem/handle_post_spawn(var/mob/living/carbon/human/H)
|
/datum/species/golem/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||||
if(H.mind)
|
if(H.mind)
|
||||||
H.mind.assigned_role = "Golem"
|
H.mind.assigned_role = "Golem"
|
||||||
|
|||||||
@@ -44,6 +44,8 @@
|
|||||||
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right/unbreakable)
|
BP_R_FOOT = list("path" = /obj/item/organ/external/foot/right/unbreakable)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
genders = list(NEUTER)
|
||||||
|
|
||||||
/datum/species/slime/handle_death(var/mob/living/carbon/human/H)
|
/datum/species/slime/handle_death(var/mob/living/carbon/human/H)
|
||||||
spawn(1)
|
spawn(1)
|
||||||
if(H)
|
if(H)
|
||||||
|
|||||||
@@ -253,6 +253,7 @@
|
|||||||
|
|
||||||
reagent_tag = IS_DIONA
|
reagent_tag = IS_DIONA
|
||||||
|
|
||||||
|
genders = list(PLURAL)
|
||||||
/datum/species/diona/can_understand(var/mob/other)
|
/datum/species/diona/can_understand(var/mob/other)
|
||||||
var/mob/living/carbon/alien/diona/D = other
|
var/mob/living/carbon/alien/diona/D = other
|
||||||
if(istype(D))
|
if(istype(D))
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
cut_and_generate_data()
|
cut_and_generate_data()
|
||||||
return 1
|
return 1
|
||||||
if(href_list["gender"])
|
if(href_list["gender"])
|
||||||
if(can_change(APPEARANCE_GENDER))
|
if(can_change(APPEARANCE_GENDER) && (href_list["gender"] in owner.species.genders))
|
||||||
if(owner.change_gender(href_list["gender"]))
|
if(owner.change_gender(href_list["gender"]))
|
||||||
cut_and_generate_data()
|
cut_and_generate_data()
|
||||||
return 1
|
return 1
|
||||||
@@ -108,6 +108,12 @@
|
|||||||
data["species"] = species
|
data["species"] = species
|
||||||
|
|
||||||
data["change_gender"] = can_change(APPEARANCE_GENDER)
|
data["change_gender"] = can_change(APPEARANCE_GENDER)
|
||||||
|
if(data["change_gender"])
|
||||||
|
var/genders[0]
|
||||||
|
for(var/gender in owner.species.genders)
|
||||||
|
genders[++genders.len] = list("gender_name" = gender2text(gender), "gender_key" = gender)
|
||||||
|
data["genders"] = genders
|
||||||
|
|
||||||
data["change_skin_tone"] = can_change_skin_tone()
|
data["change_skin_tone"] = can_change_skin_tone()
|
||||||
data["change_skin_color"] = can_change_skin_color()
|
data["change_skin_color"] = can_change_skin_color()
|
||||||
data["change_eye_color"] = can_change(APPEARANCE_EYE_COLOR)
|
data["change_eye_color"] = can_change(APPEARANCE_EYE_COLOR)
|
||||||
|
|||||||
@@ -17,8 +17,9 @@
|
|||||||
Gender:
|
Gender:
|
||||||
</div>
|
</div>
|
||||||
<div class="itemContentWide">
|
<div class="itemContentWide">
|
||||||
{{:helper.link('Male', null, { 'gender' : 'male'}, null, data.gender == 'male' ? 'selected' : null)}}
|
{{for data.genders}}
|
||||||
{{:helper.link('Female', null, { 'gender' : 'female'}, null, data.gender == 'female' ? 'selected' : null)}}
|
{{:helper.link(value.gender_name, null, { 'gender' : value.gender_key}, null, data.gender == value.gender_key ? 'selected' : null)}}
|
||||||
|
{{/for}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|||||||
Reference in New Issue
Block a user