Files
Aurora.3/code/modules/effects/effect_system.dm
Lohikar 6878459216 Convert ion trails to new effect system (#2618)
Converts the ion trail effect to use SSeffects instead of a spawn-loop for processing, as well as makes it also manifest on openturfs instead of just space.
2017-06-05 11:15:07 +03:00

38 lines
934 B
Plaintext

// -- Effect System --
// The base type for the new processor-driven effect system.
/datum/effect_system
var/atom/movable/holder // The object this effect is attached to. If this is set, the effect will not be qdel()'d at end of processing.
var/turf/location // Where the effect is
/datum/effect_system/New(var/queue = TRUE)
. = ..()
if (queue)
src.queue()
/datum/effect_system/Destroy()
if (holder)
holder = null
STOP_EFFECT(src)
return ..()
// Queues an effect.
/datum/effect_system/proc/queue()
if (holder)
set_loc(holder)
QUEUE_EFFECT(src)
/datum/effect_system/process(elapsed)
if (holder)
location = get_turf(holder)
return EFFECT_HALT
return EFFECT_DESTROY // Terminate effect if it's not attached to something.
/datum/effect_system/proc/bind(var/target)
holder = target
/datum/effect_system/proc/set_loc(var/atom/movable/loc)
if (isturf(loc))
location = loc
else
location = get_turf(loc)