Hail Lii'dra (#17925)

* fsad

* uihj
This commit is contained in:
Fluffy
2023-12-13 20:06:40 +01:00
committed by GitHub
parent 04dc739845
commit e27a6f3070
58 changed files with 121 additions and 120 deletions
+49 -6
View File
@@ -190,22 +190,65 @@
SHOULD_NOT_SLEEP(TRUE)
return TRUE
// Language handling.
/mob/proc/add_language(var/language)
/**
* Adds a language to the known ones for the mob, returns `TRUE` if added successfully, `FALSE` otherwise
*
* Does NOT make it the default language
*
* * language - The language to add, can either be a `/datum/language` or a string, see the LANGUAGE_* defines in `code\__defines\species_languages.dm` for the strings
*/
/mob/proc/add_language(language)
SHOULD_NOT_SLEEP(TRUE)
var/datum/language/new_language
if(istype(language, /datum/language))
new_language = language
else
new_language = all_languages[language]
if (!istype(new_language) || !new_language)
CRASH("ERROR: Language [language] not found in list of all languages. The language you're looking for may have been moved, renamed, or removed. Please recheck the spelling of the name.")
if(!istype(new_language) || !new_language)
crash_with("ERROR: Language [language] not found in list of all languages. The language you're looking for may have been moved, renamed, or removed. Please recheck the spelling of the name.")
if(new_language in languages)
return 0
return FALSE
languages.Add(new_language)
return 1
return TRUE
/**
* Set default language for a `/mob/living`, return `TRUE` if set successfully, `FALSE` otherwise
*
* * language - The language to set as default, can either be a `/datum/language`, a string as per `LANGUAGE_*` defines in `code\__defines\species_languages.dm`,
* or `null` to remove the default language
*/
/mob/living/proc/set_default_language(language)
SHOULD_NOT_SLEEP(TRUE)
var/datum/language/new_default_language
if(istype(language, /datum/language))
new_default_language = language
else
new_default_language = all_languages[language]
if(!isnull(new_default_language) && !istype(new_default_language))
stack_trace("ERROR: Language [language] not found in list of all languages. The language you're looking for may have been moved, renamed, or removed. Please recheck the spelling of the name.")
return FALSE
if(!isnull(new_default_language) && !(new_default_language in languages))
stack_trace("Trying to set a default language that is not known by the mob! The language must first be added for it to be set as default!")
return FALSE
default_language = new_default_language
return TRUE
//Silicons can only speak languages listed in the `speech_synthesizer_langs`, even if they can understand more
/mob/living/silicon/set_default_language(language)
//Return FALSE if they can't speak this language
if(!(language in speech_synthesizer_langs))
return FALSE
. = ..()
/mob/proc/remove_language(var/rem_language)
var/datum/language/L = all_languages[rem_language]
+3 -1
View File
@@ -318,7 +318,9 @@
/datum/language/bug/check_speech_restrict(var/mob/speaker)
var/mob/living/carbon/human/H = speaker
var/obj/item/organ/internal/vaurca/neuralsocket/S = H.internal_organs_by_name[BP_NEURAL_SOCKET]
if(S.muted || S.disrupted)
//Black k'ois zombies don't have neural sockets but need to talk, hence check if the socket exists, or it will runtime for them
if(S && (S.muted || S.disrupted))
to_chat(speaker, SPAN_WARNING("You have been muted over the Hivenet!"))
return FALSE
else