Merge pull request #11581 from Ghommie/Ghommie-cit637
M/F body preferences.
This commit is contained in:
@@ -23,6 +23,10 @@
|
||||
var/rando_race = pick(GLOB.roundstart_races)
|
||||
pref_species = new rando_race()
|
||||
features = random_features(pref_species?.id)
|
||||
if(gender == MALE || gender != FEMALE)
|
||||
features["body_model"] = gender
|
||||
else if(gender == PLURAL)
|
||||
features["body_model"] = pick(MALE,FEMALE)
|
||||
age = rand(AGE_MIN,AGE_MAX)
|
||||
|
||||
/datum/preferences/proc/update_preview_icon(equip_job = TRUE)
|
||||
|
||||
@@ -1025,3 +1025,19 @@
|
||||
|
||||
/mob/living/carbon/can_hold_items()
|
||||
return TRUE
|
||||
|
||||
/mob/living/carbon/set_gender(ngender = NEUTER, silent = FALSE, update_icon = TRUE, forced = FALSE)
|
||||
var/bender = gender != ngender
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
if(dna && bender)
|
||||
if(ngender == MALE || ngender == FEMALE)
|
||||
dna.features["body_model"] = ngender
|
||||
if(!silent)
|
||||
var/adj = ngender == MALE ? "masculine" : "feminine"
|
||||
visible_message("<span class='boldnotice'>[src] suddenly looks more [adj]!</span>", "<span class='boldwarning'>You suddenly feel more [adj]!</span>")
|
||||
else if(ngender == NEUTER)
|
||||
dna.features["body_model"] = MALE
|
||||
if(update_icon)
|
||||
update_body()
|
||||
|
||||
@@ -621,13 +621,14 @@
|
||||
|
||||
//Used for new human mobs created by cloning/goleming/podding
|
||||
/mob/living/carbon/human/proc/set_cloned_appearance()
|
||||
if(gender == MALE)
|
||||
if(dna.features["body_model"] == MALE)
|
||||
facial_hair_style = "Full Beard"
|
||||
else
|
||||
facial_hair_style = "Shaved"
|
||||
hair_style = pick("Bedhead", "Bedhead 2", "Bedhead 3")
|
||||
underwear = "Nude"
|
||||
undershirt = "Nude"
|
||||
socks = "Nude"
|
||||
update_body()
|
||||
update_hair()
|
||||
update_genitals()
|
||||
|
||||
@@ -585,7 +585,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
if(T)
|
||||
var/state = "[T.icon_state][((DIGITIGRADE in species_traits) && T.has_digitigrade) ? "_d" : ""]"
|
||||
var/mutable_appearance/MA
|
||||
if(H.dna.species.sexes && H.gender == FEMALE)
|
||||
if(H.dna.species.sexes && H.dna.features["body_model"] == FEMALE)
|
||||
MA = wear_female_version(state, T.icon, BODY_LAYER)
|
||||
else
|
||||
MA = mutable_appearance(T.icon, state, -BODY_LAYER)
|
||||
@@ -746,7 +746,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
if(!bodyparts_to_add)
|
||||
return
|
||||
|
||||
var/g = (H.gender == FEMALE) ? "f" : "m"
|
||||
var/g = (H.dna.features["body_model"] == FEMALE) ? "f" : "m"
|
||||
|
||||
for(var/layer in relevent_layers)
|
||||
var/layertext = mutant_bodyparts_layertext(layer)
|
||||
|
||||
@@ -132,7 +132,7 @@ There are several things that need to be remembered:
|
||||
var/mutable_appearance/uniform_overlay
|
||||
|
||||
if(dna && dna.species.sexes)
|
||||
var/G = (gender == FEMALE) ? "f" : "m"
|
||||
var/G = (dna.features["body_model"] == FEMALE) ? "f" : "m"
|
||||
if(G == "f" && U.fitted != NO_FEMALE_UNIFORM)
|
||||
uniform_overlay = U.build_worn_icon(t_color, UNIFORM_LAYER, alt_worn, FALSE, U.fitted, variant_flag, FALSE)
|
||||
|
||||
@@ -648,12 +648,11 @@ generate/load female uniform sprites matching all previously decided variables
|
||||
else
|
||||
. += "-not_coloured"
|
||||
|
||||
. += "-[gender]"
|
||||
. += "-[dna.features["body_model"]]"
|
||||
|
||||
|
||||
var/is_taur = FALSE
|
||||
var/mob/living/carbon/human/H = src
|
||||
if(("taur" in H.dna.species.mutant_bodyparts) && (H.dna.features["taur"] != "None"))
|
||||
if(("taur" in dna.species.mutant_bodyparts) && (dna.features["taur"] != "None"))
|
||||
is_taur = TRUE
|
||||
|
||||
|
||||
|
||||
@@ -1192,3 +1192,9 @@
|
||||
|
||||
/mob/living/canface()
|
||||
return ..() && CHECK_MOBILITY(src, MOBILITY_MOVE)
|
||||
|
||||
/mob/living/proc/set_gender(ngender = NEUTER, silent = FALSE, update_icon = TRUE, forced = FALSE)
|
||||
if(forced || (!ckey || client?.prefs.cit_toggles & (ngender == FEMALE ? FORCED_FEM : FORCED_MASC)))
|
||||
gender = ngender
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
Reference in New Issue
Block a user