Files
GS13NG/code/datums/elements/dusts_on_leaving_area.dm
T
Putnam3145 ac30079026 Make dust-on-leaving-area code less bad (#12110)
* Un-badcodes dusts_on_leaving_area.

* var/ not necessary

* Fixed the code to work

* help me
2020-05-06 17:03:53 +02:00

21 lines
601 B
Plaintext

/datum/element/dusts_on_leaving_area
element_flags = ELEMENT_DETACH | ELEMENT_BESPOKE
id_arg_index = 2
var/list/area_types = list()
/datum/element/dusts_on_leaving_area/Attach(datum/target,types)
. = ..()
if(!ismob(target))
return ELEMENT_INCOMPATIBLE
area_types = types
RegisterSignal(target,COMSIG_ENTER_AREA,.proc/check_dust)
/datum/element/dusts_on_leaving_area/Detach(mob/M)
. = ..()
UnregisterSignal(M,COMSIG_ENTER_AREA)
/datum/element/dusts_on_leaving_area/proc/check_dust(datum/source, area/A)
var/mob/M = source
if(istype(M) && !(A.type in area_types))
M.dust(force = TRUE)