mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-25 13:09:11 +01:00
53 lines
1.4 KiB
Plaintext
53 lines
1.4 KiB
Plaintext
/datum/artifact_effect/anomaly
|
|
name = "Anomalous Energies"
|
|
effect_type = EFFECT_ANOMALY
|
|
|
|
effect_color = "#d400ff"
|
|
can_start_activated = FALSE // Oops!
|
|
var/active = TRUE
|
|
var/delay = 2 MINUTES
|
|
|
|
/datum/artifact_effect/anomaly/DoEffectTouch(mob/user)
|
|
var/atom/holder = get_master_holder()
|
|
if(!active)
|
|
return
|
|
if(holder)
|
|
var/turf/holder_loc
|
|
if(istype(holder, /obj/item/anobattery))
|
|
holder = holder.loc
|
|
if(istype(holder, /obj/item/anodevice))
|
|
holder = holder.loc
|
|
holder_loc = holder.loc
|
|
if(isturf(holder_loc))
|
|
generate_anomaly(holder_loc, pick(ANOMALY_ALL), 2, FALSE)
|
|
active = FALSE
|
|
VARSET_IN(src, active, TRUE, delay * 5)
|
|
|
|
/datum/artifact_effect/anomaly/DoEffectAura()
|
|
var/atom/holder = get_master_holder()
|
|
if(!active)
|
|
return
|
|
if(holder)
|
|
var/turf/holder_loc
|
|
if(istype(holder, /obj/item/anobattery))
|
|
holder = holder.loc
|
|
if(istype(holder, /obj/item/anodevice))
|
|
holder = holder.loc
|
|
holder_loc = holder.loc
|
|
if(isturf(holder_loc))
|
|
for(var/i = 1, i <= 2, i++)
|
|
generate_anomaly(holder_loc, pick(ANOMALY_ALL), 15, FALSE)
|
|
active = FALSE
|
|
VARSET_IN(src, active, TRUE, delay *4 )
|
|
|
|
/datum/artifact_effect/anomaly/DoEffectPulse()
|
|
if(!active)
|
|
return
|
|
|
|
var/datum/anomaly_placer/placer = new()
|
|
for(var/i = 1, i <= 4, i++)
|
|
var/area/chosen_area = placer.find_valid_area()
|
|
generate_anomaly(placer.find_valid_turf(chosen_area), pick(ANOMALY_ALL), 1, FALSE) // EGG HUNT!!
|
|
active = FALSE
|
|
VARSET_IN(src, active, TRUE, delay * 2.5)
|