Adds random character when antagonist preference (#46952)

About The Pull Request

Well known statics rejoice! You can now choose to have random name/body/age/gender whenever you roll roundstart antagonist.

Since player mobs are generated before antag datums are handed out, I added a list that collects minds chosen as antags during pre_setup() to keep track of this.

"Other" was also missing from the random gender, added it.

Wizard, clown op, nukeop, latejoin and midround antags are excempt.
Why It's Good For The Game

Some static namers get metagamed to the extreme when antagonists, this should help alleviate that while allowing them to keep static naming for the RP. Keep in mind all conversion, midround and latejoin antag rolls are excempt, this is not a guarantee someone is a non-antag.
Changelog

cl Skoglol
add: Random name/body/age/gender when roundstart antagonist preference added.
add: Random gender will now have a chance of picking "Other".
/cl
This commit is contained in:
skoglol
2019-10-13 06:00:17 +02:00
committed by oranges
parent 6628f692aa
commit b68abe7e6d
15 changed files with 93 additions and 29 deletions
@@ -481,7 +481,12 @@
if(frn)
client.prefs.random_character()
client.prefs.real_name = client.prefs.pref_species.random_name(gender,1)
client.prefs.copy_to(H)
var/is_antag
if(mind in GLOB.pre_setup_antags)
is_antag = TRUE
client.prefs.copy_to(H, antagonist = is_antag)
H.dna.update_dna_identity()
if(mind)
if(transfer_after)
@@ -1,15 +1,15 @@
//The mob should have a gender you want before running this proc. Will run fine without H
/datum/preferences/proc/random_character(gender_override)
/datum/preferences/proc/random_character(gender_override, antag_override = FALSE)
if(randomise[RANDOM_SPECIES])
random_species()
else if(randomise[RANDOM_NAME])
real_name = pref_species.random_name(gender,1)
if(gender_override && !(randomise[RANDOM_GENDER]))
if(gender_override && !(randomise[RANDOM_GENDER] || randomise[RANDOM_GENDER_ANTAG] && antag_override))
gender = gender_override
else
gender = pick(MALE,FEMALE)
if(randomise[RANDOM_AGE])
gender = pick(MALE,FEMALE,PLURAL)
if(randomise[RANDOM_AGE] || randomise[RANDOM_AGE_ANTAG] && antag_override)
age = rand(AGE_MIN,AGE_MAX)
if(randomise[RANDOM_UNDERWEAR])
underwear = random_underwear(gender)
@@ -74,4 +74,4 @@
COMPILE_OVERLAYS(mannequin)
parent.show_character_previews(new /mutable_appearance(mannequin))
unset_busy_human_dummy(DUMMY_HUMAN_SLOT_PREFERENCES)
unset_busy_human_dummy(DUMMY_HUMAN_SLOT_PREFERENCES)