Merge master into non-crew-role and fix a map

This commit is contained in:
TheGreatKitsune
2022-09-06 10:09:32 -05:00
258 changed files with 149256 additions and 232985 deletions
@@ -14,12 +14,14 @@
//CHOMPEdit Begin
S["species"] >> pref.species
//CHOMPEdit End
S["language_custom_keys"] >> pref.language_custom_keys
/datum/category_item/player_setup_item/general/language/save_character(var/savefile/S)
S["language"] << pref.alternate_languages
S["extra_languages"] << pref.extra_languages
testing("LANGSANI: Saved to [pref.client]'s character [pref.real_name || "-name not yet loaded-"] savefile: [english_list(pref.alternate_languages || list())]")
S["language_prefixes"] << pref.language_prefixes
S["language_custom_keys"] << pref.language_custom_keys
/datum/category_item/player_setup_item/general/language/sanitize_character()
if(!islist(pref.alternate_languages)) pref.alternate_languages = list()
@@ -43,6 +45,14 @@
for(var/prefix in pref.language_prefixes)
if(prefix in forbidden_prefixes)
pref.language_prefixes -= prefix
if(isnull(pref.language_custom_keys))
pref.language_custom_keys = list()
var/datum/species/S = GLOB.all_species[pref.species]
for(var/key in pref.language_custom_keys)
if(!pref.language_custom_keys[key])
pref.language_custom_keys.Remove(key)
if(!((pref.language_custom_keys[key] == S.language) || (pref.language_custom_keys[key] == S.default_language && S.default_language != S.language) || (pref.language_custom_keys[key] in pref.alternate_languages)))
pref.language_custom_keys.Remove(key)
/datum/category_item/player_setup_item/general/language/content()
. += "<b>Languages</b><br>"
@@ -51,14 +61,15 @@
testing("LANGSANI: Truncated [pref.client]'s character [pref.real_name || "-name not yet loaded-"] language list because it was too long (len: [pref.alternate_languages.len], allowed: [S.num_alternate_languages])")
pref.alternate_languages.len = (S.num_alternate_languages + pref.extra_languages) // Truncate to allowed length
if(S.language)
. += "- [S.language]<br>"
. += "- [S.language] - <a href='?src=\ref[src];set_custom_key=[S.language]'>Set Custom Key</a><br>"
if(S.default_language && S.default_language != S.language)
. += "- [S.default_language]<br>"
. += "- [S.default_language] - <a href='?src=\ref[src];set_custom_key=[S.default_language]'>Set Custom Key</a><br>"
if(S.num_alternate_languages + pref.extra_languages)
if(pref.alternate_languages.len)
for(var/i = 1 to pref.alternate_languages.len)
var/lang = pref.alternate_languages[i]
. += "- [lang] - <a href='?src=\ref[src];remove_language=[i]'>remove</a><br>"
. += "- [lang] - <a href='?src=\ref[src];remove_language=[i]'>remove</a> - <a href='?src=\ref[src];set_custom_key=[lang]'>Set Custom Key</a><br>"
if(pref.alternate_languages.len < (S.num_alternate_languages + pref.extra_languages))
. += "- <a href='?src=\ref[src];add_language=1'>add</a> ([(S.num_alternate_languages + pref.extra_languages) - pref.alternate_languages.len] remaining)<br>"
else
@@ -125,4 +136,32 @@
pref.language_prefixes = config.language_prefixes.Copy()
return TOPIC_REFRESH
else if(href_list["set_custom_key"])
var/lang = href_list["set_custom_key"]
if(!(lang in GLOB.all_languages))
return TOPIC_REFRESH
var/oldkey = ""
for(var/key in pref.language_custom_keys)
if(pref.language_custom_keys[key] == lang)
oldkey = key
break
var/char = tgui_input_text(user, "Input a language key for [lang]. Input a single space to reset.", "Language Custom Key", oldkey)
if(length(char) != 1)
return TOPIC_REFRESH
else if(char == " ")
for(var/key in pref.language_custom_keys)
if(pref.language_custom_keys[key] == lang)
pref.language_custom_keys -= key
break
else if(contains_az09(char))
if(!(char in pref.language_custom_keys))
pref.language_custom_keys += char
pref.language_custom_keys[char] = lang
else
tgui_alert_async(user, "Improper language key. Rejected.", "Error")
return TOPIC_REFRESH
return ..()
@@ -364,6 +364,12 @@ var/list/_client_preferences_by_type
enabled_description = "Popup New On Login"
disabled_description = "Do Nothing"
/datum/client_preference/play_mentorhelp_ping
description = "Mentorhelps"
key = "SOUND_MENTORHELP"
enabled_description = "Hear"
disabled_description = "Silent"
/********************
* Staff Preferences *
********************/
@@ -282,6 +282,13 @@
ckeywhitelist = list("coolcrow420")
character_name = list("Jade Davis")
/datum/gear/fluff/m4il_hdd
path = /obj/item/weapon/implant/language/fluff/m41l
display_name = "dusty hard drive"
slot = "implant"
ckeywhitelist = list("coolcrow420")
character_name = list("M41L")
// D CKEYS
/datum/gear/fluff/dhaeleena_medal
path = /obj/item/clothing/accessory/medal/silver/security/fluff/dhael
@@ -292,36 +292,13 @@ Talon jumpsuit
path = /obj/item/clothing/under/undersuit/command
//Altevian Uniforms
/datum/gear/uniform/job_altevian/cmd
display_name = "altevian uniform, cmd"
path = /obj/item/clothing/under/pants/altevian/command
allowed_roles = list("Head of Security","Site Manager","Head of Personnel","Chief Engineer","Research Director","Chief Medical Officer")
/datum/gear/uniform/altevian
description = "An extremely comfortable set of clothing that's made to help people handle their day to day work around the fleets with little to no discomfort."
display_name = "altevian uniform selection"
/datum/gear/uniform/job_altevian/sec
display_name = "altevian uniform, sec"
path = /obj/item/clothing/under/pants/altevian/security
allowed_roles = list("Head of Security", "Warden", "Detective", "Security Officer")
/datum/gear/uniform/job_altevian/med
display_name = "altevian uniform, med"
path = /obj/item/clothing/under/pants/altevian/medical
allowed_roles = list("Chief Medical Officer","Medical Doctor","Chemist","Paramedic","Geneticist","Field Medic","Psychiatrist")
/datum/gear/uniform/job_altevian/eng
display_name = "altevian uniform, eng"
path = /obj/item/clothing/under/pants/altevian/engineering
allowed_roles = list("Chief Engineer","Atmospheric Technician","Engineer")
/datum/gear/uniform/job_altevian/sci
display_name = "altevian uniform, sci"
path = /obj/item/clothing/under/pants/altevian/science
allowed_roles = list("Research Director", "Scientist", "Roboticist", "Xenobiologist", "Xenobotanist")
/datum/gear/uniform/job_altevian/crg
display_name = "altevian uniform, cargo"
path = /obj/item/clothing/under/pants/altevian/cargo
allowed_roles = list("Quartermaster", "Cargo Technician", "Shaft Miner")
/datum/gear/uniform/job_altevian/civ
display_name = "altevian uniform, civ"
path = /obj/item/clothing/under/pants/altevian
/datum/gear/uniform/altevian/New()
..()
var/list/pants = list()
for(var/obj/item/clothing/under/pants/altevian/pants_type as anything in typesof(/obj/item/clothing/under/pants/altevian))
pants[initial(pants_type.name)] = pants_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(pants))
@@ -167,9 +167,9 @@
sort_category = "Xenowear"
/datum/gear/uniform/dept/undercoat/cap
display_name = "facility director undercoat (Teshari)"
display_name = "site manager undercoat (Teshari)"
path = /obj/item/clothing/under/teshari/undercoat/jobs/cap
allowed_roles = list("Facility Director")
allowed_roles = list("Site Manager")
/datum/gear/uniform/dept/undercoat/hop
display_name = "head of personnel undercoat (Teshari)"
@@ -276,9 +276,9 @@
sort_category = "Xenowear"
/datum/gear/suit/dept/cloak/cap
display_name = "facility director cloak (Teshari)"
display_name = "site manager cloak (Teshari)"
path = /obj/item/clothing/suit/storage/teshari/cloak/jobs
allowed_roles = list("Facility Director")
allowed_roles = list("Site Manager")
/datum/gear/suit/dept/cloak/hop
display_name = "head of personnel cloak (Teshari)"