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; } }
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); } }
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."); }
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)); } }