Hey! I’m looking for help that could help to create an custom ability with an area of effect (AOE). I’ve been racking my brain and I might be way overthinking it, thinking in the wrong direction, or it may not be possible. So, I’m hoping someone could guide me on the right track.
I’m creating a boss game that has AOE effects. Generally speaking, this is easy enough to make for a single hero but I come into a problem making it work with multiple heroes independently (two or more enemies), when there are multiple instances of abilities, with their own separate checks and cool downs, and stacking multiple effects.
What I’m looking for in the AoE ability
- Activates from a trigger. (This could be damage received, using button or ability, a timer etc.)
- Creates a fixed visual effect and sound from the point a player is standing. (I’m not going to worry about targeting a ranged position so think of this as like Soldier’s AOE heal, once it’s placed it’s fixed. I thought to store these in variables)
- The AOE should be triggered independently for each individual or specific player or bot when their own conditions are satisfied. (I thought to store these in arrays)
Additional things that I’m stuck with:
- A player could create multiple AOEs multiple times so long as conditions are met in succession or the ability calls for multiple effects at once.
Imagine a boss character casting a couple AOE for damaging other players. I thought to store these in arrays.
- Each player’s independent AOE cast should have it’s own duration.
The Rules I use seem to wait on each other if you use the Wait action as a duration timer before removing them, thus creating a queue of effects waiting to be removed. This is a problem, and I’m thinking chasing variables might resolve this but I don’t know how to go about it. For example, if I use an AoE and then another 2 seconds later, the 2nd one should run out 2 seconds after the first. But instead they wait for the previous Rule to complete to start it’s own count down.
- Each player should be affected by all instances of an AoE they are in, even if overlapped.
For example, if there are two effects stacked or overlapping on top of each other, or the player moves within a second one while in another, if each would heal 20 HPS, then the user should be getting 20 and another 20 HPS from both as long as the player is within the area of both.
Note: It seems that maybe there are limitations that do not allow this on the OW engine or I’m going about it wrong. Through the normal Conditions filtering I can only seem to get one instance of a trigger to occur, this is with sorting, filtering arrays and checking for distances. As long as I’m satisfying one of the conditions, it remains true and can not cause another instance of true even if I move between positions that overlap. I think I need a way to check if it is true for index or array element and applying an action for each true condition.
(idk if I’m explaining this right or if it’s possible)
- If a player leaves a particular AOE, it should have it’s own rule for dispelling its effect immediately or over time (whatever I decide it does).
For example, if the AOE is a heal or damage over time (like a “poison”) when a player enters it, it would be applied. If they leave the AOE, the duration of the ability runs out, or it is removed, then there could or could not be a lingering effect. This seems simple enough to say Is poisoned and manage that single state, but it becomes complicated with two or more instances of poison (which maybe I shouldn’t do this or it is limited).
TL;DR
It seems like a lot to unpack but I want to make what I thought to be a pretty basic AOE. Think of it as like Soldier 76’s healing station that can be spammed multiple times and stacks its effects. I think I’m having trouble figuring out handling the duration for multiple abilities, stacking effects of each ability from the same or multiple casters, and using the right Conditions check for each item in an array, that’s about it. If anyone has info, advice, code I could dissect, or toss me random links, any help to this goal would be greatly appreciated. Thanks!