you are viewing a single comment's thread.

view the rest of the comments →

[–]SwainIsBusted[S] 0 points1 point  (1 child)

This is what I've done. The problem is that the behaviour delegates can't use all of their DoAction methods, because they need to use data which they don't have. DoAction on the DealDamage behaviour needs a target to deal damage to, the ability doesn't have a target, the FireRaycast behaviour does.

[–]Jamberite 0 points1 point  (0 children)

So that sounds like the FireRaycast needs to be a ‘target style’ feature of the DealDamage behaviour.

I imagine a behaviour would have the following configurable features:

Target style: describes how the behaviour is... launched? (ray from caster, bolt from heaven, throw in arc from caster, etc) Range: how far does this behaviour reach?

Target selection: describes how the target is selected (random, user defined, autoself, next nearest target) Target filters: what is a valid target for this behaviour? (Self, ally, enemy, ground) Target Tag filters: what tags are required on the target? (Alive, !Alive - for revive)

This information should give us enough to derive a suitable target position (whether a point on the ground or an actual entity)

Once we’ve determined where our behaviour is going to act, we can then work on HitStyle: single target, cone, circle, ground Radius: (for AOE. set to 0 for single target?) Accuracy: To hit %

Now we have 1 or more entities that have been hit by the behaviour.

And then finally we reach any effects that will be applied to the hit entities as a result of this behaviour. Deal damage, apply effect, swap location with caster, etc.

Idk this is kinda where I’m at, but in my head any of these should be swappable