diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index e22b3b25445..d4cafa847fd 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -1,14 +1,17 @@ /mob/living/carbon/hitby(atom/movable/AM, skipcatch, hitpush = 1, blocked = 0) if(!skipcatch) - if(in_throw_mode && !get_active_hand()) //empty active hand and we're in throw mode - if(canmove && !restrained()) - if(istype(AM, /obj/item)) - var/obj/item/I = AM - if(isturf(I.loc)) - put_in_active_hand(I) - visible_message("[src] catches [I]!") - throw_mode_off() - return 1 + if(in_throw_mode && canmove && !restrained()) //Makes sure player is in throw mode + if(!istype(AM,/obj/item) || !isturf(AM.loc)) + return FALSE + if(get_active_hand()) + return FALSE + if(istype(AM, /obj/item/twohanded)) + if(get_inactive_hand()) + return FALSE + put_in_active_hand(AM) + visible_message("[src] catches [AM]!") + throw_mode_off() + return TRUE ..() /mob/living/carbon/water_act(volume, temperature, source)