Bully will sometimes use a 3 on a rock when they could just use fists #642
referenced this issue
Nov 30, 2018
Can probably give a score for 'ability still available for use' of some value? Set at 250 for instance would mean a 1 or 2 would be left unused rather than put in a once per battle damage slot. Could also try to get clever and vary based on number of once per battle abilities and remaining opponent HP.
Might be fun to take an ML approach and let the computer decide all of the score values for itself.
Use the adversarial approach: create two AIs with slightly different scoring values, then pit them against each other for 100 games. Take the winner and generate more AI variants from it for the next round, etc. Leave this running for a few hours/days and see what turns out to be the optimal strategy.