Best laid plans
One thing you may want to look into for SRAL and PRAL is either switching to
onBulletHit enemy energy adjustment, which is more effective than making sure the energy drop is less than 3.0, or using Miked0801's char trick to save 6 bytes over your current method of checking the enemy bullet power.
Also, I think SRAL's scores against oscillators would be greatly improved by increasing the rolling depth to about 30. That way you average both the positive and the negative, and shoot closer to GF0.
Just for fun, I doodled a bot that kept rolling averages of the enemy's lateral velocity at every rolling depth between 1 and 100, and then picked one at random at which it would aim. If you're interested, I could post the code on the wiki.
You're welcome to use any trick you see in my bots, as long as you give credit and keep your bot open-source.
Yes, I've seen the char trick and will be _borrowing_ it ;-)
Not sure about the averages. Oscillators were not that common back when I first wrote these bots, but now the orbit/osc/random move pattern is common amongst top bots and powerful, so something to combat it is required.
One of the new experimental nanos specificly detects and can combat osc, unfortunately that then tends to make it weaker against true random and longer osc periods. C'est la vie. It and the other updates will require some extensive benchmarking to find the best values. It is a pity my test harness is not multithreaded.