diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm index 279118d877..8010f5dc6f 100644 --- a/code/datums/brain_damage/phobia.dm +++ b/code/datums/brain_damage/phobia.dm @@ -83,13 +83,19 @@ return if(HAS_TRAIT(owner, TRAIT_FEARLESS)) return + + var/matches = FALSE + var/mainsource for(var/word in trigger_words) - var/regex/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "i") + var/regex/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "ig") if(findtext(hearing_args[HEARING_RAW_MESSAGE], reg)) - addtimer(CALLBACK(src, .proc/freak_out, null, word), 10) //to react AFTER the chat message - hearing_args[HEARING_RAW_MESSAGE] = reg.Replace(hearing_args[HEARING_RAW_MESSAGE], "$1") - break + hearing_args[HEARING_RAW_MESSAGE] = reg.Replace(hearing_args[HEARING_RAW_MESSAGE], "$0") + matches = TRUE + mainsource = word + + if(matches) + addtimer(CALLBACK(src, .proc/freak_out, null, mainsource), 10) //to react AFTER the chat message /datum/brain_trauma/mild/phobia/handle_speech(datum/source, list/speech_args) if(HAS_TRAIT(owner, TRAIT_FEARLESS))