Did the flattener help against weak bots?
Well, the bullet power interpolation is based on the same idea as virtuality. If the enemy reacts to my firing of bullets in a way that depends on bullet power, then I assume their movement between waves gives information that is relevant to firing (if I didn't make this assumption, I wouldn't use non-firing waves). So the question is what relation does the supposed bullet power of the virtual wave have to the real waves. I assume that the closer it is the the real wave, the more similar the supposed power should be to that real wave. This is mostly based on the assumption that they move with a raiko like movement (random chance of changing directions every turn). If this is true, they react to the most recent bullet power whenever a new bullet is fired, but the approximation I chose was assuming the virtual waves were linearly scaled between the two surrounding real waves. Two things to note:
1) I don't just use this for the bullet power attribute, I use it for everything dependent on bullet power (bullet flight time, wall distance, etc.)
2) I added this feature when I added had a bullet power selection function that often changed radically between two shots.