Because my issues are multi-faceted, I've decided to break it up into individual posts, but they're all related.
Here's the rundown on how the Enemy behavior is SUPPOSED to behave:
When the AllEnemies family variable is set to...
1. Normal - The Enemy instances will travel between the PatrolNode object; the directions are determined by the frame number of the object.
2. Chase - When the Player comes into view of the Enemy line of sight, the Enemy will chase the Player until line of sigh is lost.
3. Alert - The Enemy will patrol from within a radius from the last known spot the Player was seen. After so much time has elapsed, the Enemy will return to its original patrol route.
4. Resume - After the Alert phase is over, the Enemy will seek out the PatrolZone it was assigned to at the start of the level, preventing Enemies from congregating in one zone.
I mentioned this a little in Problem 1...
I need my patrol system to be adaptable to whatever level I place the PatrolNodes in. I've been trying several different set-ups so that the Nodes can identify with other Nodes that are possible route destinations.
Presently, I've simplified the possible routes FROM each Node (no more than two; previously there were up to four directions possible). What I'm doing now is trying to set it up so that the possible routes (variables Direction1 and Direction2) are turned on or off (based on boolean WhichDirection. So if a Node has north and south as route options, if the Enemy is moving south, then the south option will be "on", allowing the Enemy to continue south and not be forced back north. But on a return trip, the north option will be turned on and the south turned off (since the last pass), allowing the Enemy to continue north. So each pass toggles the direction the Enemy can take.