diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm index 084b556a515..bbcd527386b 100644 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ b/code/modules/mob/living/carbon/brain/brain.dm @@ -58,4 +58,4 @@ return canmove /mob/living/carbon/brain/binarycheck() - return istype(loc, /obj/item/device/mmi/digital) \ No newline at end of file + return istype(loc, /obj/item/device/mmi/posibrain) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index fa67602760c..f34ce9e7b2f 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -71,6 +71,7 @@ var/obj/item/radio/integrated/signal/sradio // AI's signaller + var/translator_on = 0 // keeps track of the translator module /mob/living/silicon/pai/New(var/obj/item/device/paicard) canmove = 0 diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm index 8dae4be093b..3b199250101 100644 --- a/code/modules/mob/living/simple_animal/borer.dm +++ b/code/modules/mob/living/simple_animal/borer.dm @@ -100,6 +100,7 @@ /mob/living/simple_animal/borer/New(var/by_gamemode=0) ..() + add_language("Cortical Link") truename = "[pick("Primary","Secondary","Tertiary","Quaternary")] [rand(1000,9999)]" if(!by_gamemode) @@ -108,7 +109,7 @@ /mob/living/simple_animal/borer/say(var/message) - message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) + message = trim_strip_html_properly(message) message = capitalize(message) if(!message) @@ -130,20 +131,24 @@ if (copytext(message, 1, 2) == "*") return emote(copytext(message, 2)) - if (copytext(message, 1, 2) == ";") //Brain borer hivemind. - return borer_speak(message) + var/datum/language/L = parse_language(message) + if(L && L.flags & HIVEMIND) + L.broadcast(src,trim(copytext(message,3)),src.truename) + return if(!host) + //TODO: have this pick a random mob within 3 tiles to speak for the borer. src << "You have no host to speak to." return //No host, no audible speech. src << "You drop words into [host]'s mind: \"[message]\"" host << "Your own thoughts speak: \"[message]\"" - for(var/mob/M in mob_list) - if(M.mind && (istype(M, /mob/dead/observer))) - M << "Thought-speech, [truename] -> [host]: [copytext(message, 2)]" - + for (var/mob/M in player_list) + if (istype(M, /mob/new_player)) + continue + else if(M.stat == 2 && M.client.prefs.toggles & CHAT_GHOSTEARS) + M << "[src.truename] whispers to [host], \"[message]\"" /mob/living/simple_animal/borer/Stat() ..()