From dc50b47971e3f888ec5c09f231b662ec655a06b4 Mon Sep 17 00:00:00 2001 From: d3athrow Date: Tue, 4 Mar 2014 21:05:40 -0600 Subject: [PATCH] More Destroy stuff --- code/game/objects/items.dm | 12 +++--------- code/game/objects/items/devices/radio/electropack.dm | 9 +++++++++ code/modules/assembly/assembly.dm | 8 ++++++++ code/modules/assembly/holder.dm | 6 ++++++ 4 files changed, 26 insertions(+), 9 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 79aca9c6d67..92e6804477a 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -44,20 +44,14 @@ if(istype(src.loc, /mob)) var/mob/H = src.loc H.drop_from_inventory(src) // items at the very least get unequipped from their mob before being deleted - if(istype(src.loc, /obj/item/assembly)) - var/obj/item/assembly/A = src.loc - if(A.part1 == src) - A.part1 = null - else if(A.part2 == src) - A.part2 = null - master = null if(reagents && istype(reagents)) reagents.my_atom = null reagents.delete() if(hasvar(src, "holder")) - src:holder = null + I:holder = null + /* // BROKEN, FUCK BYOND if(hasvar(src, "my_atom")) - src:my_atom = null + I:my_atom = null*/ ..() diff --git a/code/game/objects/items/devices/radio/electropack.dm b/code/game/objects/items/devices/radio/electropack.dm index 6860721b619..38fd5b2d327 100644 --- a/code/game/objects/items/devices/radio/electropack.dm +++ b/code/game/objects/items/devices/radio/electropack.dm @@ -17,6 +17,15 @@ return ..() +/obj/item/device/radio/electropack/Destroy() + if(istype(src.loc, /obj/item/assembly/shock_kit)) + var/obj/item/assembly/shock_kit/S = src.loc + if(S.part1 == src) + S.part1 = null + else if(S.part2 == src) + S.part2 = null + master = null + /obj/item/device/radio/electropack/attackby(obj/item/weapon/W as obj, mob/user as mob) ..() if(istype(W, /obj/item/clothing/head/helmet)) diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index 87c52eabf1d..06fe8d4be65 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -62,6 +62,14 @@ process_cooldown() return 1 + Destroy() + if(istype(src.loc, /obj/item/device/assembly_holder) || istype(holder)) + var/obj/item/device/assembly_holder/A = src.loc + if(A.a_left == src) + A.a_left = null + else if(A.a_right == src) + A.a_right = null + src.holder = null pulsed(var/radio = 0) if(holder && (wires & WIRE_RECEIVE)) diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index e4ae1944802..c8a2b81facd 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -24,6 +24,12 @@ IsAssemblyHolder() return 1 + Destroy() + if(a_left) + a_left.holder = null + if(a_right) + a_right.holder = null + ..() attach(var/obj/item/device/D, var/obj/item/device/D2, var/mob/user) if((!D)||(!D2)) return 0