Example #1
0
  public void evaluateDistancingControl() {
    double powerTwoHitPercentageThreshold;

    if (_robot.getRoundNum() < 2) {
      _desiredDistance = 420;
      _fearDistance = 175;
      _smoothAwayDistance = 75;
    } else if (normalizedEnemyHitPercentage() > (powerTwoHitPercentageThreshold = 7.5)) {
      _desiredDistance = 525 + (Math.max((ScanLog.avgEnemyPower() - 2), 0) * 165);
      _fearDistance = 250;
      _smoothAwayDistance = 75;
    } else if (normalizedEnemyHitPercentage() > (powerTwoHitPercentageThreshold = 3)) {
      _desiredDistance = 450 + (Math.max((ScanLog.avgEnemyPower() - 2), 0) * 150);
      _fearDistance = 175;
      _smoothAwayDistance = 75;
    } else {
      _desiredDistance = 420;
      _fearDistance = 0;
      _smoothAwayDistance = 0;
    }

    if (_robot.getRoundNum() < 2 || normalizedEnemyHitPercentage() > 7.5) {
      _currentDistancer = _aggressiveDistancer;
    } else {
      _currentDistancer = _subtleDistancer;
    }
  }
Example #2
0
  public void evaluateFlattener() {
    double powerTwoHitPercentageThreshold;

    if (_robot.getRoundNum() >= 20) {
      setFlattener(
          normalizedEnemyHitPercentage() > ((powerTwoHitPercentageThreshold = 9.8))
              && _weightedEnemyShotsFired > 100);
    } else if (_robot.getRoundNum() >= 10) {
      setFlattener(
          normalizedEnemyHitPercentage() > ((powerTwoHitPercentageThreshold = 10.5))
              && _weightedEnemyShotsFired > 50);
    } else if (_robot.getRoundNum() >= 5) {
      setFlattener(
          normalizedEnemyHitPercentage() > ((powerTwoHitPercentageThreshold = 13))
              && normalizedEnemyHitPercentageLastRound() > (powerTwoHitPercentageThreshold = 14)
              && _weightedEnemyShotsFired > 20);
    } else {
      setFlattener(false);
    }
  }
Example #3
0
  public void disableFlattener() {
    _flattenerEnabled = false;

    _waveRegisters.remove(_highStatBuffers);
    _waveRegisters.remove(_lowStatBuffers);

    if (_robot.getRoundNum() >= 3 && normalizedEnemyHitPercentage() < 4) {
      _highStatBuffers.setBulletHitWeight(0.2);
      _lowStatBuffers.setBulletHitWeight(0.2);
    } else {
      _highStatBuffers.setBulletHitWeight(1.0);
      _lowStatBuffers.setBulletHitWeight(1.0);
    }

    System.out.println("Curve Flattening disabled.");
  }
Example #4
0
  public void roundOver() {
    _lastRoundNormalizedHitPercentage = normalizedEnemyHitPercentageThisRound();

    System.out.println();
    System.out.println(
        "Enemy's hit % this round: "
            + ((int) ScanLog.getEnemyBulletHitsThisRound())
            + " / "
            + ((int) ScanLog.getEnemyBulletsFiredThisRound())
            + ", "
            + DUtils.round(ScanLog.getEnemyHitPercentageThisRound(), 2));
    System.out.println(
        "Enemy's normalized hit % this round: "
            + DUtils.round(_weightedEnemyShotsHitThisRound, 2)
            + " / "
            + DUtils.round(_weightedEnemyShotsFiredThisRound, 0)
            + ", "
            + DUtils.round(_lastRoundNormalizedHitPercentage, 2));

    System.out.println(
        "Enemy's cumulative hit %: "
            + ((int) ScanLog.getEnemyBulletHits())
            + " / "
            + ((int) ScanLog.getEnemyBulletsFired())
            + ", "
            + DUtils.round(ScanLog.getEnemyHitPercentage(), 2));
    System.out.println(
        "Enemy's normalized cum hit %: "
            + DUtils.round(_weightedEnemyShotsHit, 2)
            + " / "
            + DUtils.round(_weightedEnemyShotsFired, 0)
            + ", "
            + DUtils.round(normalizedEnemyHitPercentage(), 2));
    System.out.println("Curve Flattener: " + ((_flattenerEnabled) ? "Enabled" : "Disabled"));
    System.out.println("Total damage taken: " + DUtils.round(ScanLog.getBulletDamageTaken(), 2));

    if (_mcMode) {
      System.out.println();
      System.out.println(
          "MC score: "
              + DUtils.round(
                  (100.0 - (ScanLog.getBulletDamageTaken() / (_robot.getRoundNum() + 1.0))), 3));
    }
  }