Files
Paradise/code/datums/spell_targeting/aoe.dm
Charlie 8ef4aa727e Adds Shadow demons (#19732)
* reshuffle

* shared base type

* moves this to the base type

* the monster

* event

* FUCK

* better sprites

* refactors bloodcrawl, more nice sprites

* review stuff

* Apply suggestions from code review

Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com>

* heart of darkness

* pre TM tweaks

* ARGH

* hopefully fixes double hits

* tweaks

* derp

* tweaks

* TEMP RUNTIME REMOVE LATER

* fixes

* runtime fixes

* cig runtime fix

* review + another runtime fix

* re adds sprite

* removes runtime

* oop I forgor

* DRUNK CODING

* SPRITES

Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com>
2022-12-29 11:26:37 -06:00

22 lines
767 B
Plaintext

/**
* An area of effect based spell targeting system. Will return all targets in the given range
*/
/datum/spell_targeting/aoe
max_targets = INFINITY
/// The radius of turfs not being affected. -1 is inactive
var/inner_radius = -1
/datum/spell_targeting/aoe/choose_targets(mob/user, obj/effect/proc_holder/spell/spell, params, atom/clicked_atom)
var/list/targets = list()
var/spell_center = use_turf_of_user ? get_turf(user) : user
for(var/atom/target in view_or_range(range, spell_center, selection_type))
if(valid_target(target, user, spell, FALSE))
targets += target
if(inner_radius >= 0)
targets -= view_or_range(inner_radius, user, selection_type) // remove the inner ring
return targets
/datum/spell_targeting/aoe/turf
allowed_type = /turf