/obj/effect/mine name = "Mine" desc = "I Better stay away from that thing." density = 1 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/triggered = 0 /obj/effect/mine/New() icon_state = "uglyminearmed" /obj/effect/mine/Crossed(AM as mob|obj) Bumped(AM) /obj/effect/mine/Bumped(mob/M as mob|obj) if(triggered) return 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) 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,null) spawn(0) del(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() spawn(0) del(src) /obj/effect/mine/proc/triggern2o(obj) //example: n2o triggerproc //note: im lazy for (var/turf/simulated/floor/target in range(1,src)) if(!target.blocks_air) target.assume_gas("sleeping_agent", 30) spawn(0) del(src) /obj/effect/mine/proc/triggerphoron(obj) for (var/turf/simulated/floor/target in range(1,src)) if(!target.blocks_air) target.assume_gas("phoron", 30) target.hotspot_expose(1000, CELL_VOLUME) spawn(0) del(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) spawn(0) del(src) /obj/effect/mine/proc/explode(obj) explosion(loc, 0, 1, 2, 3) spawn(0) del(src) /obj/effect/mine/dnascramble name = "Radiation Mine" icon_state = "uglymine" triggerproc = "triggerrad" /obj/effect/mine/phoron name = "Phoron Mine" icon_state = "uglymine" triggerproc = "triggerphoron" /obj/effect/mine/kick name = "Kick Mine" icon_state = "uglymine" triggerproc = "triggerkick" /obj/effect/mine/n2o name = "N2O Mine" icon_state = "uglymine" triggerproc = "triggern2o" /obj/effect/mine/stun name = "Stun Mine" icon_state = "uglymine" triggerproc = "triggerstun"