Depending on how much supporting coding is taken care of already (allowing you to get to the behavior part your are interested in for AI)...
For the different skills/tactices you WANT to do the state machine HIERARCHICALLY - having seperate sub-state machines for the different tactics (very similar ones can share). The more numerous and more intertwined the states get, the uglier they are to debug. The hierarchical method does allow for 'dropping thru' for default handling of a state which can shrink the individual state machines significantly (cutting out NUL cases from each one or standard state EXIT handlers)
Path finding in an arena should be no problem (and there are plenty of code examples to implement that popular AI subject)
Start out with some very basic moves/counters so you can see how complex the state machines have to be (and what processing might be generalized) before laying large numbers of tactics which might have to be rewritten as you discover importanty bits they all require (like a sudden discovery that the individual states have to be broken into smaller steps)