From b91065dabb6d199a96e84f150566c6bc4e7243a5 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Mon, 16 May 2016 16:11:24 -0400 Subject: [PATCH] Makes items fall through holders As in, scooped mob holders, like Teshari. If they throw an item, it falls out now rather than being trapped and eventually deleted in their holder object. --- code/modules/mob/holder.dm | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index dc8dbccb01..28a717dbdb 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -18,6 +18,7 @@ var/list/holder_mob_icon_cache = list() slot_r_hand_str = 'icons/mob/items/righthand_holder.dmi', ) pixel_y = 8 + var/mob/living/held_mob /obj/item/weapon/holder/New() ..() @@ -29,21 +30,26 @@ var/list/holder_mob_icon_cache = list() /obj/item/weapon/holder/process() update_state() + drop_items() /obj/item/weapon/holder/dropped() ..() spawn(1) update_state() -/obj/item/weapon/proc/update_state() +/obj/item/weapon/holder/proc/update_state() if(istype(loc,/turf) || !(contents.len)) - for(var/mob/M in contents) - var/atom/movable/mob_container - mob_container = M - mob_container.forceMove(get_turf(src)) - M.reset_view() + held_mob = null + drop_items() qdel(src) +/obj/item/weapon/holder/proc/drop_items() + if(contents.len > 1) + for(var/atom/movable/M in contents) + if(M == held_mob) + continue + M.forceMove(get_turf(src)) + /obj/item/weapon/holder/GetID() for(var/mob/M in contents) var/obj/item/I = M.GetIdCard() @@ -109,6 +115,7 @@ var/list/holder_mob_icon_cache = list() return var/obj/item/weapon/holder/H = new holder_type(get_turf(src)) + H.held_mob = src src.forceMove(H) grabber.put_in_hands(H)