diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 809844ea3b7..da2f516375b 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -36,7 +36,7 @@ on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm else //Everyone else fails, skip the emote attempt return - if("scream", "fart", "flip") + if("scream", "fart", "flip", "snap") on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm //Everything else, including typos of the above emotes else @@ -720,6 +720,29 @@ m_type = 2 + if ("snap") + if(prob(95)) + m_type = 2 + var/mob/living/carbon/human/H = src + var/obj/item/organ/external/L = H.get_organ("l_hand") + var/obj/item/organ/external/R = H.get_organ("r_hand") + var/left_hand_good = 0 + var/right_hand_good = 0 + if(L && (!(L.status & ORGAN_DESTROYED)) && (!(L.status & ORGAN_SPLINTED)) && (!(L.status & ORGAN_BROKEN))) + left_hand_good = 1 + if(R && (!(R.status & ORGAN_DESTROYED)) && (!(R.status & ORGAN_SPLINTED)) && (!(R.status & ORGAN_BROKEN))) + right_hand_good = 1 + + if (!left_hand_good && !right_hand_good) + usr << "You need at least one hand in good working order to snap your fingers." + return + + message = "[src] snaps \his fingers." + playsound(src.loc, 'sound/effects/fingersnap.ogg', 50, 1, -3) + else + message = "[src] snaps \his fingers right off!" + playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) + // Needed for M_TOXIC_FART if("fart") diff --git a/sound/effects/fingersnap.ogg b/sound/effects/fingersnap.ogg new file mode 100644 index 00000000000..f7046403513 Binary files /dev/null and b/sound/effects/fingersnap.ogg differ