I understand your comments regarding the isolation of world state. It’s not exactly what’s happening in my case – all states are local to the agent executing the FSM. The problem is that I set some flags in “Produce for 60 seconds” and in OnStop() I reset those flags. Since $owner.ReleaseTaskProvider() assumes all those flags have been reset before executing, I end up with undesired behavior. To complicate matters, the screen grab that I sent was actually a simplification, the lower priority block in my actual use case is a dynamic nested FSM – it executes one of many possible jobs my agents may be assigned. My plan was to have each nested FSM clean-up any state changes it has made prior to executing the higher priority $owner.ReleaseTaskProvider() block. I’m not sure how to handle this now short of writing an ugly task that resets all possible data that could be modified in any one of the possible nested FSMs.
To your point about decoupling, I actual try to decouple tasks by making each task responsible for cleaning up after itself in OnStop().
I’ll try to figure out a workaround. Thanks for your clarification and time on this. Honestly, your asset is by far the best FSM and BT tool set I’ve come across, I appreciate your support.
Login
Register
By registering on this website you agree to our Privacy Policy.