From d7028b00591668eabf308745bf4090a858dd823b Mon Sep 17 00:00:00 2001 From: Ghommie Date: Thu, 27 Jun 2019 05:32:08 +0200 Subject: [PATCH] Fixes "Bubbles ate my Cohiba Robusto!" --- .../mob/living/carbon/monkey/combat.dm | 39 ++++++------------- 1 file changed, 11 insertions(+), 28 deletions(-) diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm index 4c1c235fe1..85436178fe 100644 --- a/code/modules/mob/living/carbon/monkey/combat.dm +++ b/code/modules/mob/living/carbon/monkey/combat.dm @@ -73,39 +73,21 @@ if(I.loc == src) return TRUE - if(I.anchored) + if(I.anchored || !put_in_hands(I)) blacklistItems[I] ++ return FALSE - // WEAPONS - if(istype(I, /obj/item)) - var/obj/item/W = I - if(W.force >= best_force) - put_in_hands(W) - best_force = W.force - return TRUE - - // CLOTHING - else if(istype(I, /obj/item/clothing)) - var/obj/item/clothing/C = I - monkeyDrop(C) - addtimer(CALLBACK(src, .proc/pickup_and_wear, C), 5) - return TRUE - - // EVERYTHING ELSE + if(I.force >= best_force) + best_force = I.force else - if(!get_item_for_held_index(1) || !get_item_for_held_index(2)) - put_in_hands(I) - return TRUE + addtimer(CALLBACK(src, .proc/pickup_and_wear, I), 5) - blacklistItems[I] ++ - return FALSE + return TRUE -/mob/living/carbon/monkey/proc/pickup_and_wear(var/obj/item/clothing/C) - if(!equip_to_appropriate_slot(C)) - monkeyDrop(get_item_by_slot(C)) // remove the existing item if worn - sleep(5) - equip_to_appropriate_slot(C) +/mob/living/carbon/monkey/proc/pickup_and_wear(obj/item/I) + if(QDELETED(I) || I.loc != src) + return + equip_to_appropriate_slot(I) /mob/living/carbon/monkey/resist_restraints() var/obj/item/I = null @@ -311,7 +293,8 @@ if(I == pickupTarget) M.visible_message("[src] snatches [pickupTarget] from [M].", "[src] snatched [pickupTarget]!") if(M.temporarilyRemoveItemFromInventory(pickupTarget) && !QDELETED(pickupTarget)) - equip_item(pickupTarget) + if(!equip_item(pickupTarget)) + dropItemToGround(pickupTarget) else M.visible_message("[src] tried to snatch [pickupTarget] from [M], but failed!", "[src] tried to grab [pickupTarget]!") pickpocketing = FALSE