It sounds like the general consensus is that AI conserving ammo better + existing FRED options are the way to go.
Time for a brain-dump of ideas for "smarter" AI burst-fire:
One option: a "shot probability" function. This probability would be reevaluated once every second or so, which would be the effective resolution of bursts (bursts will always last X seconds).
Something like:
P(shoot) = (percentAmmoLeft) * (dotProdToTarget)
Where P(shoot) would have some sane minimum/maximum values. P(shoot) would have a similar effect to weapon subsystem damage: the lower the percentage, the less often the AI will shoot.
This would result in the AI shooting less when pointed further away from the target and when lower on ammo.
The main disadvantage of this is that it would produce very "jagged" bursts (a problem mitigated by the 1-second resolution). Main advantage is that it's very easy to implement.
Another option: bursts are controlled by four parameters.
Min Burst Length
Max Burst Length
Min Burst Delay
Max Burst Delay
The actual length of a burst (or a delay between bursts) would be rolled randomly between the specified bounds. These params would all be controlled somehow by FREDDers and modders. This is less "smart" than the solution above, but gives the modders more control over what's going on (which is sometimes even smarter!
).
Or heck, maybe combine the two. The first method with the function is used, but the length of bursts and the length of delays between bursts are constrained by the parameters from the second method.
One problem with both of these ideas is that it may look weird if the AI is shooting at a big ship or an immobilized ship that's a perfectly easy target and still firing in bursts instead of unloading a steady stream (most efficient). So, we may want to have the AI not use bursts at all in those situations.