From db63646679501a064a3ac0cc0c650e9d6a7468e8 Mon Sep 17 00:00:00 2001 From: ForFoxSake Date: Fri, 25 Nov 2016 02:38:12 +0000 Subject: [PATCH] Fixes language ability checks. Adds EAL to more synthetics. --- code/modules/mob/language/language.dm | 4 +++- code/modules/mob/living/carbon/brain/MMI.dm | 1 + code/modules/mob/living/carbon/brain/brain.dm | 5 ++++- code/modules/mob/living/carbon/carbon.dm | 2 +- code/modules/mob/living/default_language.dm | 4 ++++ code/modules/research/prosfab_designs.dm | 1 + html/changelogs/ForFoxSake-LanguageFixes.yml | 9 +++++++++ 7 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 html/changelogs/ForFoxSake-LanguageFixes.yml diff --git a/code/modules/mob/language/language.dm b/code/modules/mob/language/language.dm index 525a77e3fd9..f3d59d3649e 100644 --- a/code/modules/mob/language/language.dm +++ b/code/modules/mob/language/language.dm @@ -203,8 +203,10 @@ if(!(L.flags & NONGLOBAL)) if(L == default_language) dat += "[L.name] ([get_language_prefix()][L.key]) - default - reset
[L.desc]

" - else + else if (can_speak(L)) dat += "[L.name] ([get_language_prefix()][L.key]) - set default
[L.desc]

" + else + dat += "[L.name] ([get_language_prefix()][L.key]) - cannot speak!
[L.desc]

" src << browse(dat, "window=checklanguage") diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index 3f0fa31708a..40930700d1f 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -3,6 +3,7 @@ /obj/item/device/mmi/digital/New() src.brainmob = new(src) src.brainmob.add_language("Robot Talk") + src.brainmob.add_language("Encoded Audio Language") src.brainmob.loc = src src.brainmob.container = src src.brainmob.stat = 0 diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm index aaf947a13d4..0f4db8c1eb7 100644 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ b/code/modules/mob/living/carbon/brain/brain.dm @@ -57,5 +57,8 @@ canmove = 0 return canmove -/mob/living/carbon/brain/binarycheck() +/mob/living/carbon/brain/isSynthetic() return istype(loc, /obj/item/device/mmi/digital) + +/mob/living/carbon/brain/binarycheck() + return isSynthetic() diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index c32317da615..5ca686cae37 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -446,7 +446,7 @@ chem_effects[effect] = magnitude /mob/living/carbon/get_default_language() - if(default_language) + if(default_language && can_speak(default_language)) return default_language if(!species) diff --git a/code/modules/mob/living/default_language.dm b/code/modules/mob/living/default_language.dm index eb4d3d032f4..5204fb879b5 100644 --- a/code/modules/mob/living/default_language.dm +++ b/code/modules/mob/living/default_language.dm @@ -5,6 +5,10 @@ set name = "Set Default Language" set category = "IC" + if(language && !can_speak(language)) + src << "You are unable to speak that language." + return + if(language) src << "You will now speak [language] if you do not specify a language when speaking." else diff --git a/code/modules/research/prosfab_designs.dm b/code/modules/research/prosfab_designs.dm index d59c2af6097..43e933c00c9 100644 --- a/code/modules/research/prosfab_designs.dm +++ b/code/modules/research/prosfab_designs.dm @@ -44,6 +44,7 @@ H.real_name = "Synthmorph #[rand(100,999)]" H.name = H.real_name H.dir = 2 + H.add_language("Encoded Audio Language") return H //////////////////// Prosthetics //////////////////// diff --git a/html/changelogs/ForFoxSake-LanguageFixes.yml b/html/changelogs/ForFoxSake-LanguageFixes.yml new file mode 100644 index 00000000000..2b1bc302294 --- /dev/null +++ b/html/changelogs/ForFoxSake-LanguageFixes.yml @@ -0,0 +1,9 @@ +author: ForFoxSake + +delete-after: True + +changes: + - bugfix: "Fixed a possible href exploit allowing any living player to speak any language." + - bugfix: "Organic beings can no longer speak Encoded Audio Language, although they can still understand it just fine." + - tweak: "Positronic brains can now speak Encoded Audio Language." + - tweak: "Station manufactured Full Body Prosthetics can now speak Encoded Audio Language." \ No newline at end of file