GunEnemy extends Enemy<TimestampedFiringAngle> { void logWave(Wave w, Point2D.Double dispVector, double guessFactor, long time, boolean isVisit) { for (KnnView<TimestampedFiringAngle> view : views.values()) { if ((isVisit && view.logVisits || !isVisit && view.logBulletHits) && (view.logVirtual || w.firingWave) && (view.logMelee || w.enemiesAlive <= 1)) { view.logWave(w, new TimestampedFiringAngle( w.fireRound, time, guessFactor, dispVector)); } } } GunEnemy(String botName, double distance, double energy,
      Point2D.Double location, int round, long time, double heading,
      double velocity, double absBearing, BattleField battleField,
      MovementPredictor predictor, Collection<RoboGraphic> renderables);   GunEnemy(String botName, double distance, double energy,
      Point2D.Double location, int round, long time, double heading,
      double velocity, double absBearing, BattleField battleField,
      MovementPredictor predictor, Collection<RoboGraphic> renderables,
      WaveManager waveManager); @Override void initRound(); void execute(final long currentTime, long lastBulletFiredTime,
      double bulletPower, double currentGunHeat, Point2D.Double myLocation,
      final boolean is1v1, final int enemiesTotal,
      final List<GunDataListener> gunDataListeners, final boolean painting); Wave processBulletHit(Bullet bullet, long currentTime,
      boolean is1v1Battle, boolean logHitWave); void logBulletHitLocation(Bullet bullet); Wave newGunWave(Point2D.Double sourceLocation,
      Point2D.Double targetLocation, int fireRound, long fireTime,
      long lastBulletFiredTime, double bulletPower, double myEnergy,
      double gunHeat, int enemiesAlive, double accel, double dl8t, double dl20t,
      double dl40t, boolean altWave); void markFiringWaves(
      long currentTime, boolean is1v1, List<GunDataListener> gunDataListeners); Wave findSurfableWave(Wave aimWave, int surfIndex); void updateTimers(double velocity); long getLastWaveFireTime(String botName); Wave interpolateGunWave(long fireTime, long currentTime,
      double myHeading, double myVelocity, RobotState enemyState); double advancingVelocity(); boolean isRammer(); int getWaveBreaks(); public double previousVelocity; public double lastNonZeroVelocity; public long timeSinceDirectionChange; public long timeSinceVelocityChange; public long timeMovingAtMe; public Wave lastWaveFired; public List<Point2D.Double> hitLocations; }
@Test public void testLogWave() { }