diff --git a/code/__DEFINES/language_defines.dm b/code/__DEFINES/language_defines.dm index a7614b1c366..2134628966d 100644 --- a/code/__DEFINES/language_defines.dm +++ b/code/__DEFINES/language_defines.dm @@ -17,6 +17,7 @@ #define NO_TALK_MSG 128 // Do not show the "\The [speaker] talks into \the [radio]" message #define NO_STUTTER 256 // No stuttering, slurring, or other speech problems #define NOBABEL 512 // Not granted by book of babel. Typically antag languages. +#define NOLIBRARIAN 1024 // Flag for banning the Librarian from certain languages. (actual 1984) //Auto-accent level defines. #define AUTOHISS_OFF 0 diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm index fda0554f2ea..c6c2e06faed 100644 --- a/code/game/jobs/job/support.dm +++ b/code/game/jobs/job/support.dm @@ -454,6 +454,16 @@ backpack_contents = list( /obj/item/videocam/advanced = 1) +/datum/outfit/job/librarian/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + if(!H.mind) + return + for(var/la in GLOB.all_languages) + var/datum/language/new_language = GLOB.all_languages[la] + if(new_language.flags & (HIVEMIND|NOLIBRARIAN)) + continue + H.add_language(la) + /datum/job/barber title = "Barber" flag = JOB_BARBER diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm index 55aff985f0f..4eee0af4a04 100644 --- a/code/modules/mob/language.dm +++ b/code/modules/mob/language.dm @@ -342,7 +342,7 @@ exclaim_verbs = list("imparts") colour = "abductor" key = "^" - flags = RESTRICTED | HIVEMIND + flags = RESTRICTED | HIVEMIND | NOLIBRARIAN follow = TRUE /datum/language/grey/broadcast(mob/living/speaker, message, speaker_mask) @@ -499,7 +499,7 @@ ask_verb = "hisses" exclaim_verbs = list("hisses") key = "6" - flags = RESTRICTED + flags = RESTRICTED | NOLIBRARIAN syllables = list("sss","sSs","SSS") /datum/language/xenos @@ -653,7 +653,7 @@ ask_verb = "queries" exclaim_verbs = list("declares") key = "]" - flags = RESTRICTED + flags = RESTRICTED | NOLIBRARIAN follow = TRUE syllables = list ("beep", "boop")