Pseudocode!
Code: c++
- if(enemyPower > ourPower && (humanHasRanged != true && humanHasCaster != true)){
- lookForDefenseBonus();
- sitOnThatBonus();
- }
- if(weHasRanged != false && enemyHasRanged != true){
- lookForDefenseBonus();
- sitOnThatBonus();
- }
- if(ourBestDef < (.5*enemyBestAttack)){
- waitForThemToApproach();
- }
AI needs to know how and when to defend. If it can shoot and the human can't, or if it's outgunned and the human can't shoot, or if it has high attack and low def, it should sit the hell still and wait for the human to approach. Preferably on good terrain so that it won't get massacred.
Get it to do that and a good chunk of the irritation will evaporate.