From 7f2e71b0df67b3638eba81bd966fbd2a0cf394e0 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sat, 28 Jan 2017 11:06:42 -0500 Subject: [PATCH] GC fixes and explosive vine fix --- code/modules/events/spacevine.dm | 17 +++++++++++------ code/modules/hydroponics/grown/kudzu.dm | 1 + code/modules/hydroponics/grown/replicapod.dm | 4 ++++ .../living/simple_animal/hostile/mining_mobs.dm | 1 + 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 7d4db523f20..ce5885e2056 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -63,7 +63,7 @@ /datum/spacevine_mutation/proc/on_buckle(obj/effect/spacevine/holder, mob/living/buckled) return -/datum/spacevine_mutation/proc/on_explosion(severity) +/datum/spacevine_mutation/proc/on_explosion(severity, obj/effect/spacevine/holder) return @@ -184,13 +184,13 @@ quality = NEGATIVE severity = 2 -/datum/spacevine_mutation/explosive/on_explosion(explosion_severity) +/datum/spacevine_mutation/explosive/on_explosion(explosion_severity, obj/effect/spacevine/holder) if(explosion_severity < 3) - qdel(src) + qdel(holder) else . = 1 spawn(5) - qdel(src) + qdel(holder) /datum/spacevine_mutation/explosive/on_death(obj/effect/spacevine/holder, mob/hitter, obj/item/I) explosion(holder.loc, 0, 0, severity, 0, 0) @@ -335,12 +335,17 @@ KZ.mutations |= mutations KZ.set_potency(master.mutativeness * 10) KZ.set_production((master.spread_cap / initial(master.spread_cap)) * 5) - mutations = list() + master = null + mutations.Cut() set_opacity(0) if(buckled_mob) unbuckle_mob() return ..() +/obj/effect/spacevine/proc/add_mutation(datum/spacevine_mutation/mutation) + mutations |= mutation + color = mutation.hue + /obj/effect/spacevine/proc/on_chem_effect(datum/reagent/R) var/override = 0 for(var/datum/spacevine_mutation/SM in mutations) @@ -538,7 +543,7 @@ /obj/effect/spacevine/ex_act(severity) var/i for(var/datum/spacevine_mutation/SM in mutations) - i += SM.on_explosion(severity) + i += SM.on_explosion(severity, src) if(!i && prob(100/severity)) qdel(src) diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm index 72edae138bc..84ea01235e9 100644 --- a/code/modules/hydroponics/grown/kudzu.dm +++ b/code/modules/hydroponics/grown/kudzu.dm @@ -33,6 +33,7 @@ message_admins("Kudzu planted by [key_name_admin(user)](?) (FLW) at ([T.x],[T.y],[T.z] - (JMP))",0,1) investigate_log("was planted by [key_name(user)] at ([T.x],[T.y],[T.z])","kudzu") new /obj/effect/spacevine_controller(user.loc, mutations, potency, production) + user.drop_item() qdel(src) /obj/item/seeds/kudzu/attack_self(mob/user) diff --git a/code/modules/hydroponics/grown/replicapod.dm b/code/modules/hydroponics/grown/replicapod.dm index 57102cb56da..f3cfa967363 100644 --- a/code/modules/hydroponics/grown/replicapod.dm +++ b/code/modules/hydroponics/grown/replicapod.dm @@ -21,6 +21,10 @@ var/factions = null var/contains_sample = 0 +/obj/item/seeds/replicapod/Destroy() + mind = null + return ..() + /obj/item/seeds/replicapod/attackby(obj/item/weapon/W, mob/user, params) if(istype(W,/obj/item/weapon/reagent_containers/syringe)) if(!contains_sample) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm index 47c243e970e..668de12e188 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm @@ -292,6 +292,7 @@ to_chat(user, "You chomp into [src], barely managing to hold it down, but feel amazingly refreshed in mere moments.") playsound(src.loc,'sound/items/eatfood.ogg', rand(10,50), 1) H.revive() + user.drop_item() qdel(src) ..()