diff --git a/code/modules/mob/living/brain/brain_say.dm b/code/modules/mob/living/brain/brain_say.dm index d287a736008..cdd3667d3b2 100644 --- a/code/modules/mob/living/brain/brain_say.dm +++ b/code/modules/mob/living/brain/brain_say.dm @@ -9,7 +9,7 @@ if(prob(10)) //10% chance to drop the message entirely return else - message = Gibberish(message, (emp_damage*6))//scrambles the message, gets worse when emp_damage is higher + message = brain_gibberish(message, (emp_damage*6))//scrambles the message, gets worse when emp_damage is higher ..(message) diff --git a/code/modules/mob/mob_misc_procs.dm b/code/modules/mob/mob_misc_procs.dm index c406f144ef4..a9d99cfb3f0 100644 --- a/code/modules/mob/mob_misc_procs.dm +++ b/code/modules/mob/mob_misc_procs.dm @@ -351,6 +351,17 @@ return returntext +/proc/brain_gibberish(message, emp_damage) + if(copytext(message, 1, 2) == "*") // if the brain tries to emote, return an emote + return message + + var/repl_char = pick("@","&","%","$","/") + var/regex/bad_char = regex("\[*]|#") + message = Gibberish(message, emp_damage) + message = bad_char.Replace(message, repl_char, 1, 2) // prevents the gibbered message from emoting + + return message + /proc/Gibberish_all(list/message_pieces, p, replace_rate) for(var/datum/multilingual_say_piece/S in message_pieces) S.message = Gibberish(S.message, p, replace_rate)