mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-13 19:22:20 +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. /🆑
33 lines
867 B
Plaintext
33 lines
867 B
Plaintext
/datum/language/codespeak
|
|
name = "Codespeak"
|
|
desc = "Syndicate operatives can use a series of codewords to convey complex information, while sounding like random concepts and drinks to anyone listening in."
|
|
key = "t"
|
|
default_priority = 0
|
|
flags = TONGUELESS_SPEECH | LANGUAGE_HIDE_ICON_IF_NOT_UNDERSTOOD
|
|
icon_state = "codespeak"
|
|
always_use_default_namelist = TRUE // No syllables anyways
|
|
|
|
/datum/language/codespeak/scramble(input)
|
|
var/lookup = check_cache(input)
|
|
if(lookup)
|
|
return lookup
|
|
|
|
. = ""
|
|
var/list/words = list()
|
|
while(length_char(.) < length_char(input))
|
|
words += generate_code_phrase(return_list=TRUE)
|
|
. = jointext(words, ", ")
|
|
|
|
. = capitalize(.)
|
|
|
|
var/input_ending = copytext_char(input, -1)
|
|
|
|
var/static/list/endings
|
|
if(!endings)
|
|
endings = list("!", "?", ".")
|
|
|
|
if(input_ending in endings)
|
|
. += input_ending
|
|
|
|
add_to_cache(input, .)
|