Refactors landmines

Replaced the minepayload var and the switch() in triggermine() with a
proc for the mine's effect.
Removed unnessecary New() proc.
Removed the existing uglymine icon state and renamed uglyminearmed to
uglymine.
This commit is contained in:
Thunder12345
2015-04-20 12:36:06 +01:00
parent 427c7fa374
commit 1bf931d731
2 changed files with 23 additions and 30 deletions

View File

@@ -6,11 +6,10 @@
layer = 3
icon = 'icons/obj/weapons.dmi'
icon_state = "uglymine"
var/minepayload = "explosive"
var/triggered = 0
/obj/effect/mine/New()
icon_state = "uglyminearmed"
/obj/effect/mine/proc/mineEffect(mob/victim)
explosion(loc, 0, 1, 2, 3)
/obj/effect/mine/Crossed(AM as mob|obj)
if(isanimal(AM))
@@ -24,48 +23,42 @@
if(triggered) return
visible_message("<span class='danger'>[AM] sets off \icon[src] [src]!</span>")
triggermine(AM, minepayload)
triggermine(AM)
/obj/effect/mine/proc/triggermine(mob/victim, var/triggertype)
/obj/effect/mine/proc/triggermine(mob/victim)
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
switch(triggertype)
if("explosive")
explosion(loc, 0, 1, 2, 3)
if("triggerkick")
if(isliving(victim) && victim.client)
victim << "<font color='red'><b>You have been kicked FOR NO REISIN!<b></font>"
del(victim.client)
if("triggerplasma")
atmos_spawn_air(SPAWN_TOXINS, 360)
if("triggern2o")
atmos_spawn_air(SPAWN_N2O, 360)
if("triggerstun")
if(isliving(victim))
victim.Weaken(8)
mineEffect(victim)
triggered = 1
qdel(src)
/obj/effect/mine/plasma
name = "plasma mine"
icon_state = "uglymine"
minepayload = "triggerplasma"
/obj/effect/mine/plasma/mineEffect(mob/victim)
atmos_spawn_air(SPAWN_TOXINS, 360)
/obj/effect/mine/n2o
name = "\improper N2O mine"
icon_state = "uglymine"
minepayload = "triggern2o"
/obj/effect/mine/n2o/mineEffect(mob/victim)
atmos_spawn_air(SPAWN_N2O, 360)
/obj/effect/mine/stun
name = "stun mine"
icon_state = "uglymine"
minepayload = "triggerstun"
/obj/effect/mine/stun/mineEffect(mob/victim)
if(isliving(victim))
victim.Weaken(8)
/obj/effect/mine/kickmine
name = "kick mine"
icon_state = "uglymine"
minepayload = "triggerkick"
/obj/effect/mine/kickmine/mineEffect(mob/victim)
if(isliving(victim) && victim.client)
victim << "<font color='red'><b>You have been kicked FOR NO REISIN!<b></font>"
del(victim.client)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB