Partial sparks boilerplate reduction (#26081)

* Partial sparks boilerplate reduction

- Lots of obects are making `/datum/effect_system/spark_spread`, setting
them up, firing them, and then not qdeling them afterwards.
- Makes a `do_sparks` global proc that takes the same arguments as `set_up`
and then calls `start` and then `qdel`
- Switches a bunch of things to use this proc
- Makes emitters keep their own spark_spread datum around, since they
spark so damn much.
- Also makes some things use timers and ports some things to Initialize.

* Compilation
This commit is contained in:
coiax
2017-04-12 19:59:45 +02:00
committed by AnturK
parent a1403bc424
commit de35ec5f67
21 changed files with 72 additions and 114 deletions
@@ -23,7 +23,7 @@ would spawn and follow the beaker, even if it is carried or thrown.
/datum/effect_system
var/number = 3
var/cardinals = 0
var/cardinals = FALSE
var/turf/location
var/atom/holder
var/effect_type
@@ -34,7 +34,7 @@ would spawn and follow the beaker, even if it is carried or thrown.
location = null
return ..()
/datum/effect_system/proc/set_up(n = 3, c = 0, loca)
/datum/effect_system/proc/set_up(n = 3, c = FALSE, loca)
if(n > 10)
n = 10
number = n
@@ -5,6 +5,17 @@
// will always spawn at the items location.
/////////////////////////////////////////////
/proc/do_sparks(n, c, source)
// n - number of sparks
// c - cardinals, bool, do the sparks only move in cardinal directions?
// source - source of the sparks.
var/datum/effect_system/spark_spread/sparks = new
sparks.set_up(n, c, source)
sparks.start()
qdel(sparks)
/obj/effect/particle_effect/sparks
name = "sparks"
icon_state = "sparks"