diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index a4fc67ddf32..917c198af2f 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -104,6 +104,7 @@ if(prob(addiction_removal_chance)) to_chat(occupant, "You no longer feel reliant on [R.name]!") occupant.reagents.addiction_list.Remove(R) + qdel(R) for(var/mob/M as mob in src) // makes sure that simple mobs don't get stuck inside a sleeper when they resist out of occupant's grasp if(M == occupant) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 95dece3ad75..6e4379d1fc9 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -292,6 +292,8 @@ var/const/INGEST = 2 if(prob(20) && (world.timeofday > (R.last_addiction_dose + ADDICTION_TIME))) //Each addiction lasts 8 minutes before it can end to_chat(M, "You no longer feel reliant on [R.name]!") addiction_list.Remove(R) + qdel(R) + if(update_flags & STATUS_UPDATE_HEALTH) M.updatehealth("reagent metabolism") else if(update_flags & STATUS_UPDATE_STAT) diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 79c23d8dfad..a2ecc811e6a 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -32,6 +32,9 @@ /datum/reagent/Destroy() . = ..() holder = null + if(islist(data)) + data.Cut() + data = null /datum/reagent/proc/reaction_temperature(exposed_temperature, exposed_volume) //By default we do nothing. return