Chase Bullets
Jump to navigation
Jump to search
- Sub-pages:
- Implementations
How it Works
ChaseBullets is a system by which multiple bullets are fired so that they will reach the distance of the enemy robot simultaneously, thereby hopefully increasing the chance to hit, adding to the damage done, or confusing the enemy's movement.
Common Descriptions
- Chase Bullets
- Bullet Doubling - BulletDoubling (Old Wiki)
- Doppler Effect - Doppler Effect
How can you use it
- confuse advanced enemy movement systems
- Since many robots' movements respond to detecting enemy fire, the assumption is that they will be dodging the high power bullet and the low power bullet will have a higher chance of hitting.
- collect more damage points
- shooting at multiple points near the guessed target position to increase the hit rate
- increase your effective bullet shadow
- just for the fun of it
Concept
One of the basic math behind chase bullets is:
- <math>B_{1} =\text{ first bullet power }</math>
- <math>B_{2} =\text{ second bullet power }</math>
- <math>D_{1} =\text{ distance to target when shooting the first bullet }</math>
- <math>D_{2} =\text{distance to target when shooting the second bullet }</math>
- <math>C_{1} = \text{the gun cooling rate after shooting the first bullet }</math>
- <math>S_{1} = \text{ bullet speed for the first bullet}</math>
If you put all this together in a formula, you can calculate the second bullet power with:
- <math> B_{2} = {20 - ( { D_{2} \over ({D_{1} \over S_{1}}-C_{1}) } ) \over 3}</math>
where:
- <math>C_{1} = {(1+ {B_{1} \over 5}) \over 0.1}</math> with a given default cooling rate of 0.1
double c1 = Rules.getGunHeat(b1)/getGunCoolingRate()
and:
- <math> S_{1} = 20 - 3 * B_{1}</math>
double s1 = Rules.getBulletSpeed(b1)
Examples
There are several implementations of chase bullets available on the Implementations sub-page.