basically you can use search algorithms for that (I'd recommned the a*).
You have a basic set of decisions
for example:
- heal teammate
- attack enemy
- use skills
- move to cover
- whatever
and the you use the a* to decide what to do. a simpler method would be a finite state machine (but you'll still have to use an a* for pathfinding though. )
If you know how to script good a* or state machines it is no problem at all.
You may look into the A* tutorial at the AU-resources.
You may also look into
behavior treesand
here is something about navigation meshes (might also be interesting for you)
At first i would recommend to get a working pathfinding code.
You might use intense pf 3.
And then you start building your behavior.
Draw a state graph containing all the actions of you npc with description.
like this:
Then start slowly scripting the actions themselfes.
When you have all this ready 2 go you start with the behavior tree/state machine that decides what the bot is going to do.