diff --git a/code/datums/wounds/loss.dm b/code/datums/wounds/loss.dm
index 432b3a1e3d9..259d5b83980 100644
--- a/code/datums/wounds/loss.dm
+++ b/code/datums/wounds/loss.dm
@@ -17,6 +17,7 @@
return
already_scarred = TRUE // so we don't scar a limb we don't have. If I add different levels of amputation desc, do it here
+ victim = dismembered_part.owner
if(dismembered_part.body_zone == BODY_ZONE_CHEST)
occur_text = "is split open, causing [victim.p_their()] internals organs to spill out!"
@@ -41,8 +42,6 @@
if(WOUND_BURN)
occur_text = "is completely incinerated, falling to dust!"
- victim = dismembered_part.owner
-
var/msg = "[victim]'s [dismembered_part.name] [occur_text]!"
victim.visible_message(msg, "Your [dismembered_part.name] [occur_text]!")
diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm
index fc0f1fcaf7c..33cbe505e6e 100644
--- a/code/modules/mob/living/emote.dm
+++ b/code/modules/mob/living/emote.dm
@@ -80,7 +80,7 @@
message_monkey = "lets out a faint chimper as it collapses and stops moving..."
message_simple = "stops moving..."
cooldown = (15 SECONDS)
- stat_allowed = UNCONSCIOUS
+ stat_allowed = HARD_CRIT
/datum/emote/living/deathgasp/run_emote(mob/user, params, type_override, intentional)
var/mob/living/simple_animal/S = user
@@ -155,7 +155,7 @@
key_third_person = "gasps"
message = "gasps!"
emote_type = EMOTE_AUDIBLE
- stat_allowed = UNCONSCIOUS
+ stat_allowed = HARD_CRIT
/datum/emote/living/giggle
key = "giggle"
diff --git a/code/modules/mob/living/living_say.dm b/code/modules/mob/living/living_say.dm
index a20a5d3c354..052060fa5c1 100644
--- a/code/modules/mob/living/living_say.dm
+++ b/code/modules/mob/living/living_say.dm
@@ -113,20 +113,23 @@ GLOBAL_LIST_INIT(department_radio_keys, list(
client?.dsay(message)
return
+
switch(stat)
if(SOFT_CRIT)
+ if(check_emote(original_message, forced))
+ return
message_mods[WHISPER_MODE] = MODE_WHISPER
if(UNCONSCIOUS)
- if(!(message_mods[MODE_CHANGELING] || message_mods[MODE_ALIEN]))
+ if(check_emote(original_message, forced) || !(message_mods[MODE_CHANGELING] || message_mods[MODE_ALIEN]))
return
if(HARD_CRIT)
- if(!(message_mods[WHISPER_MODE] || message_mods[MODE_CHANGELING] || message_mods[MODE_ALIEN]))
+ if(check_emote(original_message, forced) || !(message_mods[WHISPER_MODE] || message_mods[MODE_CHANGELING] || message_mods[MODE_ALIEN]))
return
if(DEAD)
say_dead(original_message)
return
- if(check_emote(original_message, forced) || !can_speak_basic(original_message, ignore_spam, forced))
+ if(!can_speak_basic(original_message, ignore_spam, forced))
return
language = message_mods[LANGUAGE_EXTENSION]