CurioJoe
Ok. It's a different kind of game altogether from what I was expecting, but I will try to give my initial thoughts on it.
Create sensor objects (which will be invisible) and place them in the intersections. You can make 4 different sensor objects for 4 directions.
For example:
enemy IS overlapping sensor_up
enemy IS overlapping sensor_down
enemy NOT overlapping sensor_left
enemy NOT overlapping sensor_right
For Each: enemy
-> stop moving (use a variable to control AI)
enemy IS overlapping sensor_up
enemy NOT overlapping sensor_down
enemy NOT overlapping sensor_left
enemy NOT overlapping sensor_right
For Each: enemy
-> move up (using 8 direction movement)
enemy IS overlapping sensor_up
enemy NOT overlapping sensor_down
enemy NOT overlapping sensor_left
enemy IS overlapping sensor_right
For Each: enemy
-> move diagonal up right (using 8 direction movement)
and so on, this way, you can create different variations of movement directions (remember, you are using 8 directions, so there are lots of possible movements than just simple left and right in my tutorial). You will still follow the same general logic/idea I used in my tutorial (which is using an instance variable for AI). It would still do you good help to still give it a good read or study my file, it's pretty simple).
Use FOR EACH: enemy to make each enemy behave independently. This way, you have enemies moving in different directions (like patrolling the streets) when you are not in their sight. Then either use Line of Sight behavior or calculate the distance (there is an expression for distance) between you and each enemy to determine if they will chase you, attack you or keep patrolling.
Now for attacks, if you have contact (punches, kicks) and long-range (bullets), you have to further divide the AI, enemies shoot you when you are within a range, they punch you when you are directly beside them. Again, I used the same logic in my tutorial (even if it is for sideview platformer) although I haven't updated my tutorial yet with coding attacks.
To make the AI a little unpredictable, add SYSTEM: Random(1) <= 0.25 meaning it will be 25% chance of happening. It is also in my tutorial file.
Good luck.