diff --git a/code/modules/mob/living/carbon/carbon_emote.dm b/code/modules/mob/living/carbon/carbon_emote.dm index 7e67aad5c26..3fcba428c13 100644 --- a/code/modules/mob/living/carbon/carbon_emote.dm +++ b/code/modules/mob/living/carbon/carbon_emote.dm @@ -163,20 +163,28 @@ message = "twirls something around in their hand." hands_use_check = TRUE -/datum/emote/living/carbon/twirl/can_run_emote(mob/living/user, status_check, intentional) - . = ..() - if(!.) - return - - if(user.l_hand || user.r_hand) - return TRUE - - to_chat(user, "You need something in your hand to use this emote!") - return FALSE - /datum/emote/living/carbon/twirl/run_emote(mob/user, params, type_override, intentional) - var/obj/item/thing = user.l_hand || user.r_hand - message = "twirls [thing] around in their hand!" + if(!(user.get_active_hand() || user.get_inactive_hand())) + to_chat(user, "You need something in your hand to use this emote!") + return TRUE + + var/obj/item/thing + + if(user.get_active_hand()) + thing = user.get_active_hand() + else + thing = user.get_inactive_hand() + + if(istype(thing, /obj/item/grab)) + var/obj/item/grab/grabbed = thing + message = "twirls [grabbed.affecting.name] around!" + grabbed.affecting.emote("spin") + else if(!(thing.flags & ABSTRACT)) + message = "twirls [thing] around in their hand!" + else + to_chat(user, "You cannot twirl [thing]!") + return TRUE + . = ..() message = initial(message)