Good ideas.
THe "prototype" as I have it so far is basically just
pShoot = max(0.25f, percentAmmoLeft)
which actually is pretty convincing (and dirt easy).
I like Nuke's idea of factoring in distance somehow too: I would imagine more aggressive shooting at point-blank.
I'm also considering squaring (or ^3, or ^4) some parameters in order to make them decay a bit faster (so that perceptible "ammo conservation" bursts start kicking in sooner). Something to try.
Tomo, you're right that the dotProdToTarget isn't quite what it seems, since the optimal aiming point is usually some angle off from the target. On the other hand, lower deflection shooting usually means you're more likely to hit. My thought is that the dot product to target represents a quick&dirty heuristic for how much deflection is involved in the shot.
Also, the dot product stays quite close to 1.0 even for fairly large differences on the screen. An angle difference of 25 degrees yields a dot product of 0.9, which as a multiplier doesn't affect things
too much (again, I may experiment with squaring/cubing/etc this value to make it more impactful).
Of course, I expect that of all these ideas only a few will really be needed to make something convincing. I like brainstorming a lot, then settling on the simplest solution that will do the job well.
