From 89fe484b6dc706777fd5d0c5e6bdd44613d2fea2 Mon Sep 17 00:00:00 2001 From: XDTM Date: Tue, 23 Oct 2018 14:49:05 +0200 Subject: [PATCH] Phobia trigger words are highlighted in pulsing red/black (#40885) * Phobia trigger words are highlighted in pulsing red/black * . * ! * >:( * fixes * fixes 2 --- code/datums/brain_damage/phobia.dm | 9 +++++---- .../goonchat/browserassets/css/browserOutput.css | 16 ++++++++++++---- interface/stylesheet.dm | 8 ++++++++ 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm index c6ccbee38c3..6e8d4ed78d9 100644 --- a/code/datums/brain_damage/phobia.dm +++ b/code/datums/brain_damage/phobia.dm @@ -71,19 +71,20 @@ if(!owner.can_hear() || world.time < next_scare) //words can't trigger you if you can't hear them *taps head* return message for(var/word in trigger_words) - var/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "i") - + var/regex/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "i") + if(findtext(raw_message, reg)) addtimer(CALLBACK(src, .proc/freak_out, null, word), 10) //to react AFTER the chat message + message = reg.Replace(message, "$1") break return message /datum/brain_trauma/mild/phobia/on_say(message) for(var/word in trigger_words) - var/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "i") + var/regex/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "i") if(findtext(message, reg)) - to_chat(owner, "You can't bring yourself to say the word \"[word]\"!") + to_chat(owner, "You can't bring yourself to say the word \"[word]\"!") return "" return message diff --git a/code/modules/goonchat/browserassets/css/browserOutput.css b/code/modules/goonchat/browserassets/css/browserOutput.css index 43460e7aa56..c50486dca92 100644 --- a/code/modules/goonchat/browserassets/css/browserOutput.css +++ b/code/modules/goonchat/browserassets/css/browserOutput.css @@ -396,10 +396,18 @@ h1.alert, h2.alert {color: #000000;} .his_grace {color: #15D512; font-family: "Courier New", cursive, sans-serif; font-style: italic;} .hypnophrase {color: #0d0d0d; font-weight: bold; animation: hypnocolor 1500ms infinite;} @keyframes hypnocolor { - 0% { color: #0d0d0d; } - 25% { color: #410194; } - 50% { color: #7f17d8; } - 75% { color: #410194; } + 0% { color: #0d0d0d; } + 25% { color: #410194; } + 50% { color: #7f17d8; } + 75% { color: #410194; } + 100% { color: #3bb5d3; } +} + +.phobia {color: #dd0000; font-weight: bold; animation: phobia 750ms infinite;} +@keyframes phobia { + 0% { color: #0d0d0d; } + 50% { color: #dd0000; } + 100% { color: #0d0d0d; } } .icon {height: 1em; width: auto;} diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index a47a37dc8d8..010f2c8a6c4 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -160,6 +160,14 @@ h1.alert, h2.alert {color: #000000;} 25% { color: #410194; } 50% { color: #7f17d8; } 75% { color: #410194; } + 100% { color: #3bb5d3; } +} + +.phobia {color: #dd0000; font-weight: bold; animation: phobia 750ms infinite;} + @keyframes phobia { + 0% { color: #0d0d0d; } + 50% { color: #dd0000; } + 100% { color: #0d0d0d; } } .icon {height: 1em; width: auto;}