Files
2026-06-25 14:36:59 -04:00

35 lines
1.1 KiB
Plaintext

//Fire abberation
/obj/effect/abstract/abberation/spawner/fire
name = "Fire Abberation"
effect_to_spawn = /obj/effect/abberation_fire
//The things that actually light you on fire.
/obj/effect/abberation_fire
icon = 'icons/obj/traps/abberations.dmi'
icon_state = "abb_fire"
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
COOLDOWN_DECLARE(fire_timer)
/obj/effect/abberation_fire/Crossed(atom/movable/AM)
if(AM.is_incorporeal() || isobserver(AM) || istype(AM, /obj/effect/abstract))
return
if(isobj(AM))
var/obj/item/item_check = AM
if(item_check.item_flags & ABSTRACT)
return
if(COOLDOWN_FINISHED(src, fire_timer))
ignite_entity(AM)
/obj/effect/abberation_fire/proc/reset_trap()
for(var/mob/living/living_being in get_turf(src))
if(living_being.is_incorporeal())
continue
ignite_entity(living_being) //Begin anew
/obj/effect/abberation_fire/proc/ignite_entity(atom/movable/AM)
AM.fire_act(null, 10000, 1000)
alpha = 125
animate(src, alpha = 255, time = 2 SECONDS)
addtimer(CALLBACK(src, PROC_REF(reset_trap)), 2 SECONDS, TIMER_DELETE_ME|TIMER_UNIQUE) //Calling a proc with no arguments
COOLDOWN_START(src, fire_timer, 2 SECONDS)