diff --git a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm index 22394eaa9f9..6bbd1f20ee5 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/monkeyrecycler.dm @@ -29,8 +29,10 @@ GLOBAL_LIST_EMPTY(monkey_recyclers) /obj/machinery/monkey_recycler/Destroy() GLOB.monkey_recyclers -= src - for(var/obj/machinery/computer/camera_advanced/xenobio/console in connected) + for(var/thing in connected) + var/obj/machinery/computer/camera_advanced/xenobio/console = thing console.connected_recycler = null + connected.Cut() return ..() /obj/machinery/monkey_recycler/RefreshParts() diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index d9326b78ab3..e8cec4d3e22 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -97,9 +97,10 @@ for(var/A in actions) var/datum/action/AC = A AC.Remove(src) - for(var/obj/machinery/computer/camera_advanced/xenobio/X in GLOB.machines) - if(src in X.stored_slimes) - X.stored_slimes -= src + Target = null + Leader = null + Friends.Cut() + speech_buffer.Cut() return ..() /mob/living/simple_animal/slime/proc/set_colour(new_colour) diff --git a/code/modules/research/xenobiology/xenobio_camera.dm b/code/modules/research/xenobiology/xenobio_camera.dm index db6a195fe2d..dbb8f597905 100644 --- a/code/modules/research/xenobiology/xenobio_camera.dm +++ b/code/modules/research/xenobiology/xenobio_camera.dm @@ -48,9 +48,20 @@ /obj/machinery/computer/camera_advanced/xenobio/Destroy() QDEL_NULL(current_potion) - for(var/mob/living/simple_animal/slime/S in stored_slimes) + for(var/thing in stored_slimes) + var/mob/living/simple_animal/slime/S = thing S.forceMove(drop_location()) stored_slimes.Cut() + if(connected_recycler) + connected_recycler.connected -= src + connected_recycler = null + return ..() + +/obj/machinery/computer/camera_advanced/xenobio/handle_atom_del(atom/A) + if(A == current_potion) + current_potion = null + if(A in stored_slimes) + stored_slimes -= A return ..() /obj/machinery/computer/camera_advanced/xenobio/CreateEye()