Strange results for v3.67a
The highlighted comment was created in this revision.
Now not all pairings for v3.67a completed, but after 782 pairings this version get - ~0.4 APS and it's strange, because the change is fix for used data for surfing. Tomcat for a long time use data from two ticks before fire detection for range search. For example, if Tomcat detect a energy drop at 10th tick, then it use for range search data from 8th tick, while, theoretically, enemy uses data from 9th tick for aiming. And v3.67a try to use data from 9th tick. Without success. Anyone has any suggestions why?
I may not remember right... but IIRC, if you detect an energy drop on the 10th tick, then the enemy called "fire()" on the 9th tick, last had an opportunity to turn their gun on the 8th turn (because fire() takes effect before setTurnGun()), and their scan data of you was from the 7th tick actually.
So to construct the search data for an energy drop you detected at the 10th turn, you should use:
- The enemy scan that you received on the 9th tick (they turned their gun at the 8th, and 1 tick delay in your scan)
- Your robot data from the 7th tick (Last one they would have got scan data of before turning their gun)
(As an aside, gunheat waves work because if their energy drop is 10th turn, they wouldn't have seen what you did in the 8th turn, therefore gunheat waves can (without giving off hints) happen 2 ticks before energy drop.)
If you detect it on the 10th tick, the bullet was fired (setFire) on the 9th tick, from the enemy's location on the 9th tick, using data from the 8th tick. There's no tick delay between the data they're using and calling setTurnGun, so the setTurnGun on tick 8 is using data from the 8th tick, not the 7th tick.
And yeah, gun heat waves can create this fireTime=9 wave pretty accurately at time=7 or time=8 instead of waiting for time=10. If there are no other waves or all your movement options on the nearest wave are about the same, 1-3 ticks of extra surfing can really help. (Diamond would only create the gun heat wave at time=8 or 9, not at 7, because I didn't find benefit 3 ticks out, but maybe it could help if implemented right.)
By "using data from the 8th tick, not the 7th tick" I assume you mean their data internally on the 8th tick right?
By 7th tick I meant that their scan of you on the 8th tick is your actual location on the 7th tick due to scan delay.
There's no delay as far as I know. On each tick, everyone moves, then everyone receives events based on the current state of the battle field.