How does conditional abort work in composite childs?

epiphanyatnight

New member
I am trying to understand how conditional aborts work. I tried the video and the documentation but it is still a bit fuzzy for me.

I have a tree like this:
Screenshot_1.png


Now, when there is a lower priority condition abort on the parallel selector, will that conditional abort happen when the status of the parallel selector changes? Or will it abort when On Threat List Changed event is fired even if that does not affect the status of the parallel selector?

And does anything change when the conditional abort in the parallel selector is set as self? For instance, if it was set as self, would On Threat List Changed event abort the tasks in the selector?

And finally, I understand Has Received Event can be used for conditional abort but when it captures an event, it returns success but right after it gets back to failure, so it kind of aborts twice. Is there a way to manage that? I wanted to use perform interruption but could not find anything on that on the documentation.
 

Justin

Administrator
Staff member
The Parallel set of tasks should not be used with conditional aborts since they are already reevaluating the children every frame. The results are undefined on the parallel set of tasks. Conditional aborts should be set on non-parallel tasks such as the sequence or selector.

And finally, I understand Has Received Event can be used for conditional abort but when it captures an event, it returns success but right after it gets back to failure, so it kind of aborts twice. Is there a way to manage that? I wanted to use perform interruption but could not find anything on that on the documentation.
Conditional aborts call the regular OnUpdate method. The current Has Received Event stores a flag which gets reset within OnEnd allowing it to work with conditional aborts.
 
Top