mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-19 21:46:42 +00:00
## About The Pull Request This PR moves random name generation for species onto their languages. What does this mean? - For species with a predefined name list, such as Lizards and Moths, nothing. - For species without predefined name lists, such as Felinids, their names will now be randomly generated from their language's syllables.   (In the prefs menu:)  Why? - Well, we actually had some dead code that did this. All I did was fix it up and re-enable it. - Generates some pretty believable in-universe names for various languages that are lacking name lists. Obviously defined lists would be preferred, but until they are added, at least. - Moves some stuff off of species, which is always nice. - Also hopefully makes it a tad easier to work with name generation. There's now a standard framework for getting a random name for a mob, and for getting a random name based on a species. Misc: - Adds a generic `species_prototype` global, uses it in a lot of places in prefs code. - Makes `GLOB.species_list` init via the global defines - Deletes Language SS - Alphabetizes some instances of admin tooling using the list of all species IDs - Docs language stuff - Deletes random_skin_tone, it does pretty much nothin ## Changelog 🆑 Melbert refactor: Random Name Generation has been refactored. Report any instances of people having weird (or "Unknown") names. qol: Felinids, Slimepeople, Podpeople, and some other species without defined namelists now automatically generate names based on their primary language(s). qol: More non-human names can be generated in codewords (and other misc. areas) than just lizard names. /🆑
38 lines
1.4 KiB
Plaintext
38 lines
1.4 KiB
Plaintext
/datum/language/draconic
|
|
name = "Draconic"
|
|
desc = "The common language of lizard-people, composed of sibilant hisses and rattles."
|
|
key = "o"
|
|
flags = TONGUELESS_SPEECH
|
|
space_chance = 40
|
|
syllables = list(
|
|
"za", "az", "ze", "ez", "zi", "iz", "zo", "oz", "zu", "uz", "zs", "sz",
|
|
"ha", "ah", "he", "eh", "hi", "ih", "ho", "oh", "hu", "uh", "hs", "sh",
|
|
"la", "al", "le", "el", "li", "il", "lo", "ol", "lu", "ul", "ls", "sl",
|
|
"ka", "ak", "ke", "ek", "ki", "ik", "ko", "ok", "ku", "uk", "ks", "sk",
|
|
"sa", "as", "se", "es", "si", "is", "so", "os", "su", "us", "ss", "ss",
|
|
"ra", "ar", "re", "er", "ri", "ir", "ro", "or", "ru", "ur", "rs", "sr",
|
|
"a", "a", "e", "e", "i", "i", "o", "o", "u", "u", "s", "s"
|
|
)
|
|
special_characters = list("-")
|
|
icon_state = "lizard"
|
|
default_priority = 90
|
|
default_name_syllable_min = 3
|
|
default_name_syllable_max = 5
|
|
random_name_spacer = "-"
|
|
|
|
/datum/language/draconic/get_random_name(
|
|
gender = NEUTER,
|
|
name_count = default_name_count,
|
|
syllable_min = default_name_syllable_min,
|
|
syllable_max = default_name_syllable_max,
|
|
force_use_syllables = FALSE,
|
|
)
|
|
if(force_use_syllables)
|
|
return ..()
|
|
if(gender != MALE)
|
|
gender = pick(MALE, FEMALE)
|
|
|
|
if(gender == MALE)
|
|
return "[pick(GLOB.lizard_names_male)][random_name_spacer][pick(GLOB.lizard_names_male)]"
|
|
return "[pick(GLOB.lizard_names_female)][random_name_spacer][pick(GLOB.lizard_names_female)]"
|