Day 11
Trying to implement the concept of world analysis factor and composite filter. The experiment is to see if I can factorize basic AI behavior as a series of node filters based on simple selection filters. For instance Benjy could either (in order):
- Move close up safely to enemies to attack (score.attack != 0, score.danger <= 0 and select min(score.enemy_proximity)
- Move close to enemies safely to keep the pressure on the adversary team (score.danger <= 0 and select min(score.enemy_proximity))
- Move away from the enemies as fallback (select max(score.enemy_proximity)
The third item would work if there were no tiles around that wasn't in direct threat of being attack, it allows Benjy to move away if he cannot attack before.
I could do this kind of behavior filter to attack next and I'll have to find out how I'll implement action planning, which is the next step in decision making: should the AI move or attack first? What decides what is the best action to do?). I'm still trying to think and find a solution.
Anyway, here's also a better version of the ranged attack, the part of the animation that sticks to the target now has a burst of puff clouds to make it a bit more visual.