mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 16:47:13 +01:00
cleans up mines
This commit is contained in:
@@ -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("<span class='danger'>[AM] sets off \icon[src] [src]!</span>")
|
||||
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 << "<font color='red'>[M] triggered the \icon[src] [src]</font>"
|
||||
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"
|
||||
minepayload = "triggerstun"
|
||||
Reference in New Issue
Block a user