Files
Bubberstation/code/modules/client/preferences/language.dm
Jacquerel 9286933739 Fixes some synthetic language oversights (#76846)
## About The Pull Request

#76305 removed the knowledge of every language from silicons, but this
had a couple of oversights.
This language set was not only used by cyborgs but also bots and vending
machines.

A couple of effects relied on them knowing all of those languages,
specifically their emp_act and also the station trait which rerolled
their languages.
Now they actually _learn_ a random language and start speaking it
instead.

Also I fixed a related runtime which I noticed in testing where a bot
would die as a result of being EMPed, delete itself, and then try and do
a bunch more shit after it stopped existing. Annoying.

Why was I looking at bot languages? Haha don't worry about it 😇 

## Why It's Good For The Game

Restores function of a funny feature.

## Changelog

🆑
fix: Station traits can once again allow vending machines and bots to
speak a random language
fix: EMPed bots and vending machines once again speak a random language
/🆑
2023-07-16 10:50:02 -07:00

33 lines
982 B
Plaintext

/datum/preference/choiced/language
category = PREFERENCE_CATEGORY_SECONDARY_FEATURES
savefile_key = "language"
savefile_identifier = PREFERENCE_CHARACTER
/datum/preference/choiced/language/is_accessible(datum/preferences/preferences)
if (!..(preferences))
return FALSE
return "Bilingual" in preferences.all_quirks
/datum/preference/choiced/language/init_possible_values()
var/list/values = list()
if(!GLOB.uncommon_roundstart_languages.len)
generate_selectable_species_and_languages()
values += "Random"
//we add uncommon as it's foreigner-only.
var/datum/language/uncommon/uncommon_language = /datum/language/uncommon
values += initial(uncommon_language.name)
for(var/datum/language/language_type as anything in GLOB.uncommon_roundstart_languages)
if(initial(language_type.name) in values)
continue
values += initial(language_type.name)
return values
/datum/preference/choiced/language/apply_to_human(mob/living/carbon/human/target, value)
return