From 243dd8f377d40d7f6cc97175ebfba7486e400d48 Mon Sep 17 00:00:00 2001 From: bgobandit Date: Sun, 26 May 2019 20:15:45 -0400 Subject: [PATCH] Storage implants drop their items when removed. --- code/game/objects/items/implants/implant_storage.dm | 12 +++++++++--- code/modules/surgery/implant_removal.dm | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/implants/implant_storage.dm b/code/game/objects/items/implants/implant_storage.dm index 99eecc6ff30..e9562817512 100644 --- a/code/game/objects/items/implants/implant_storage.dm +++ b/code/game/objects/items/implants/implant_storage.dm @@ -10,10 +10,16 @@ SEND_SIGNAL(src, COMSIG_TRY_STORAGE_SHOW, imp_in, TRUE) /obj/item/implant/storage/removed(source, silent = FALSE, special = 0) + if(!special) + var/datum/component/storage/lostimplant = GetComponent(/datum/component/storage/concrete/implant) + var/mob/living/implantee = source + for (var/obj/item/I in lostimplant.contents()) + I.add_mob_blood(implantee) + lostimplant.do_quick_empty() + implantee.visible_message("A bluespace pocket opens around [src] as it exits [implantee], spewing out its contents and rupturing the surrounding tissue!") + implantee.apply_damage(20, BRUTE, BODY_ZONE_CHEST) + qdel(lostimplant) . = ..() - if(.) - if(!special) - qdel(GetComponent(/datum/component/storage/concrete/implant)) /obj/item/implant/storage/implant(mob/living/target, mob/user, silent = FALSE, force = FALSE) for(var/X in target.implants) diff --git a/code/modules/surgery/implant_removal.dm b/code/modules/surgery/implant_removal.dm index 450235b4bb9..5b207555d7b 100644 --- a/code/modules/surgery/implant_removal.dm +++ b/code/modules/surgery/implant_removal.dm @@ -23,8 +23,8 @@ /datum/surgery_step/extract_implant/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery) if(I) - user.visible_message("[user] successfully removes [I] from [target]'s [target_zone]!", "You successfully remove [I] from [target]'s [target_zone].") I.removed(target) + user.visible_message("[user] successfully removes [I] from [target]'s [target_zone]!", "You successfully remove [I] from [target]'s [target_zone].") var/obj/item/implantcase/case for(var/obj/item/implantcase/ic in user.held_items)