From e2d07fdd2d202ca898f0152a2842d9755902f128 Mon Sep 17 00:00:00 2001 From: CHOMPStation2 <58959929+CHOMPStation2@users.noreply.github.com> Date: Thu, 17 Oct 2024 05:33:24 -0700 Subject: [PATCH] [MIRROR] Patches rare qdel loop on mines (#9245) Co-authored-by: Nadyr <41974248+Darlantanis@users.noreply.github.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com> --- code/game/objects/effects/mines.dm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index 0ec48ee7db..209422fdde 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -42,6 +42,8 @@ new_turf.register_dangerous_object(src) /obj/effect/mine/proc/explode(var/mob/living/M) + if(triggered) // Prevents circular mine explosions from two mines detonating eachother + return var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() triggered = 1 s.set_up(3, 1, src) @@ -127,6 +129,8 @@ mineitemtype = /obj/item/mine/dnascramble /obj/effect/mine/dnascramble/explode(var/mob/living/M) + if(triggered) // Prevents circular mine explosions from two mines detonating eachother + return var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() triggered = 1 s.set_up(3, 1, src) @@ -144,6 +148,8 @@ mineitemtype = /obj/item/mine/stun /obj/effect/mine/stun/explode(var/mob/living/M) + if(triggered) // Prevents circular mine explosions from two mines detonating eachother + return triggered = 1 var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() s.set_up(3, 1, src) @@ -159,6 +165,8 @@ mineitemtype = /obj/item/mine/n2o /obj/effect/mine/n2o/explode(var/mob/living/M) + if(triggered) // Prevents circular mine explosions from two mines detonating eachother + return triggered = 1 for (var/turf/simulated/floor/target in range(1,src)) if(!target.blocks_air) @@ -171,6 +179,8 @@ mineitemtype = /obj/item/mine/phoron /obj/effect/mine/phoron/explode(var/mob/living/M) + if(triggered) // Prevents circular mine explosions from two mines detonating eachother + return triggered = 1 for (var/turf/simulated/floor/target in range(1,src)) if(!target.blocks_air) @@ -184,6 +194,8 @@ mineitemtype = /obj/item/mine/kick /obj/effect/mine/kick/explode(var/mob/living/M) + if(triggered) // Prevents circular mine explosions from two mines detonating eachother + return var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() triggered = 1 s.set_up(3, 1, src) @@ -205,6 +217,8 @@ var/spread_range = 7 /obj/effect/mine/frag/explode(var/mob/living/M) + if(triggered) // Prevents circular mine explosions from two mines detonating eachother + return var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() triggered = 1 s.set_up(3, 1, src) @@ -224,6 +238,8 @@ mineitemtype = /obj/item/mine/training /obj/effect/mine/training/explode(var/mob/living/M) + if(triggered) // Prevents circular mine explosions from two mines detonating eachother + return triggered = 1 visible_message("\The [src.name]'s light flashes rapidly as it 'explodes'.") new src.mineitemtype(get_turf(src)) @@ -234,6 +250,8 @@ mineitemtype = /obj/item/mine/emp /obj/effect/mine/emp/explode(var/mob/living/M) + if(triggered) // Prevents circular mine explosions from two mines detonating eachother + return triggered = 1 //ChompEDIT recursing mines var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() s.set_up(3, 1, src) @@ -250,6 +268,8 @@ mineitemtype = /obj/item/mine/incendiary /obj/effect/mine/incendiary/explode(var/mob/living/M) + if(triggered) // Prevents circular mine explosions from two mines detonating eachother + return triggered = 1 var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() s.set_up(3, 1, src) @@ -265,6 +285,8 @@ mineitemtype = /obj/item/mine/gadget /obj/effect/mine/gadget/explode(var/mob/living/M) + if(triggered) // Prevents circular mine explosions from two mines detonating eachother + return var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() triggered = 1 s.set_up(3, 1, src)