diff --git a/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm b/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm index a9727017d3..2d49787348 100644 --- a/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm +++ b/code/game/gamemodes/clock_cult/clock_helpers/ratvarian_language.dm @@ -104,7 +104,7 @@ List of nuances: if(isliving(AM)) var/mob/living/L = AM if(!whisper) - L.say(message, "clock", spans, language=/datum/language/common) + L.say(message, "clock", spans, language=/datum/language/common, ignore_spam = TRUE) else L.whisper(message, "clock", spans, language=/datum/language/common) else diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index a38a361cf3..be1c2ccaff 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -137,7 +137,7 @@ structure_check() searches for nearby cultist structures required for the invoca for(var/M in invokers) var/mob/living/L = M if(invocation) - L.say(invocation, language = /datum/language/common) + L.say(invocation, language = /datum/language/common, ignore_spam = TRUE) if(invoke_damage) L.apply_damage(invoke_damage, BRUTE) to_chat(L, "[src] saps your strength!") diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 7e3d1cd320..c141460731 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -69,7 +69,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( "÷" = "cords" )) -/mob/living/say(message, bubble_type,var/list/spans = list(), sanitize = TRUE, datum/language/language = null) +/mob/living/say(message, bubble_type,var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE) var/static/list/crit_allowed_modes = list(MODE_WHISPER = TRUE, MODE_CHANGELING = TRUE, MODE_ALIEN = TRUE) var/static/list/unconscious_allowed_modes = list(MODE_CHANGELING = TRUE, MODE_ALIEN = TRUE) @@ -105,7 +105,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( say_dead(original_message) return - if(check_emote(original_message) || !can_speak_basic(original_message)) + if(check_emote(original_message) || !can_speak_basic(original_message, ignore_spam)) return if(in_critical) @@ -270,12 +270,12 @@ GLOBAL_LIST_INIT(department_radio_keys, list( if(can_speak_basic(message) && can_speak_vocal(message)) return 1 -/mob/living/proc/can_speak_basic(message) //Check BEFORE handling of xeno and ling channels +/mob/living/proc/can_speak_basic(message, ignore_spam = FALSE) //Check BEFORE handling of xeno and ling channels if(client) if(client.prefs.muted & MUTE_IC) to_chat(src, "You cannot speak in IC (muted).") return 0 - if(client.handle_spam_prevention(message,MUTE_IC)) + if(!ignore_spam && client.handle_spam_prevention(message,MUTE_IC)) return 0 return 1 diff --git a/code/modules/mob/living/simple_animal/guardian/types/standard.dm b/code/modules/mob/living/simple_animal/guardian/types/standard.dm index 72bb57513e..4edd9d9e41 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/standard.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/standard.dm @@ -24,7 +24,7 @@ /mob/living/simple_animal/hostile/guardian/punch/AttackingTarget() . = ..() if(isliving(target)) - src.say("[src.battlecry][src.battlecry][src.battlecry][src.battlecry][src.battlecry][src.battlecry][src.battlecry][src.battlecry][src.battlecry][src.battlecry]!!") + say("[battlecry][battlecry][battlecry][battlecry][battlecry][battlecry][battlecry][battlecry][battlecry][battlecry]!!", ignore_spam = TRUE) playsound(loc, src.attack_sound, 50, 1, 1) playsound(loc, src.attack_sound, 50, 1, 1) playsound(loc, src.attack_sound, 50, 1, 1)