diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index fc3772e66ff2..16e7c69bc254 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -33,6 +33,8 @@ #define EMOTE_IMPORTANT (1<<2) /// Does the emote not have a message? #define EMOTE_NO_MESSAGE (1<<3) +/// Can only code call this event instead of the player. +#define EMOTE_FORCED_AUDIO (1<<4) // Bitflags for Working Joe emotes /// Working Joe emote diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 6e84052720d4..f8f1fe681cf9 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -262,6 +262,9 @@ return FALSE if(is_type_in_typecache(user, mob_type_blacklist_typecache)) return FALSE + if(intentional) + if(emote_type & EMOTE_FORCED_AUDIO) + return FALSE if(status_check && !is_type_in_typecache(user, mob_type_ignore_stat_typecache)) if(user.stat > stat_allowed) if(!intentional) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index f789dd8a6827..785cc7b3cd2c 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -387,7 +387,7 @@ /datum/emote/living/carbon/human/burstscream key = "burstscream" message = "screams in agony!" - emote_type = EMOTE_AUDIBLE + emote_type = EMOTE_FORCED_AUDIO|EMOTE_AUDIBLE|EMOTE_VISIBLE stat_allowed = UNCONSCIOUS /datum/emote/living/carbon/human/burstscream/get_sound(mob/living/carbon/human/user)