From f12d3d9fbf37d5ae629722fe96bf704427abefe1 Mon Sep 17 00:00:00 2001 From: Delimusca Date: Tue, 17 Feb 2015 00:08:28 -0700 Subject: [PATCH] cleans up mines --- code/game/objects/effects/mines.dm | 75 +++++++++--------------------- 1 file changed, 22 insertions(+), 53 deletions(-) diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index aedbe164b60..caa1af28dcd 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -1,12 +1,12 @@ /obj/effect/mine - name = "mine" - desc = "I Better stay away from that thing." - density = 1 + name = "proximity mine" + desc = "Better stay away from that thing." + density = 0 anchored = 1 layer = 3 icon = 'icons/obj/weapons.dmi' icon_state = "uglymine" - var/triggerproc = "explode" //name of the proc thats called when the mine is triggered + var/minepayload = "explode" var/triggered = 0 /obj/effect/mine/New() @@ -15,74 +15,43 @@ /obj/effect/mine/Crossed(AM as mob|obj) Bumped(AM) -/obj/effect/mine/Bumped(mob/M as mob|obj) +/obj/effect/mine/Bumped(AM as mob|obj) if(triggered) return + visible_message("[AM] sets off \icon[src] [src]!") + triggermine(AM, minepayload) - if(istype(M, /mob/living/carbon/human) || istype(M, /mob/living/carbon/monkey)) - for(var/mob/O in viewers(world.view, src.loc)) - O << "[M] triggered the \icon[src] [src]" - triggered = 1 - call(src,triggerproc)(M) - -/obj/effect/mine/proc/triggerrad(obj) +/obj/effect/mine/proc/triggermine(mob/victim, var/triggertype) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() - obj:radiation += 50 - randmutb(obj) - domutcheck(obj) - qdel(src) -/obj/effect/mine/proc/triggerstun(obj) - if(ismob(obj)) - var/mob/M = obj - M.Stun(30) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(3, 1, src) - s.start() - qdel(src) + switch(triggertype) + if("explode") + explosion(loc, 0, 1, 2, 3) + if("triggerplasma") + atmos_spawn_air(SPAWN_TOXINS, 360) + if("triggern2o") + atmos_spawn_air(SPAWN_N2O, 360) + if("triggerstun") + if(isliving(victim)) + victim.Weaken(8) -/obj/effect/mine/proc/triggern2o(obj) - atmos_spawn_air("n2o", 360) - qdel(src) -/obj/effect/mine/proc/triggerplasma(obj) - atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, 360) + triggered = 1 qdel(src) -/obj/effect/mine/proc/triggerkick(obj) - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(3, 1, src) - s.start() - del(obj:client) - qdel(src) - -/obj/effect/mine/proc/explode(obj) - explosion(loc, 0, 1, 2, 3) - qdel(src) - -/obj/effect/mine/dnascramble - name = "radiation mine" - icon_state = "uglymine" - triggerproc = "triggerrad" - /obj/effect/mine/plasma name = "plasma mine" icon_state = "uglymine" - triggerproc = "triggerplasma" - -/obj/effect/mine/kick - name = "kick mine" - icon_state = "uglymine" - triggerproc = "triggerkick" + minepayload = "triggerplasma" /obj/effect/mine/n2o name = "\improper N2O mine" icon_state = "uglymine" - triggerproc = "triggern2o" + minepayload = "triggern2o" /obj/effect/mine/stun name = "stun mine" icon_state = "uglymine" - triggerproc = "triggerstun" \ No newline at end of file + minepayload = "triggerstun" \ No newline at end of file