/** * WeaponStatistic.java */ package rampancy_old.statistics; import java.util.Arrays; import rampancy_old.RampantRobot; import rampancy_old.data.*; import rampancy_old.management.MovementManager; import rampancy_old.util.*; import rampancy_old.util.tree.*; import rampancy_old.weapons.*; /** * This class tracks weapon data for use by the TargetingManager * @author Matthew Chun-Lum * */ public class WeaponStatistic { private String enemyName; private GuessFactorGunStatistic GFGunStat; private PatternMatchingGunStatistic PMGunStat; public WeaponStatistic(String enemyName) { this.enemyName = enemyName; GFGunStat = new GuessFactorGunStatistic(); PMGunStat = new PatternMatchingGunStatistic(); } /** * @param enemy * @return a firing solution based on the enemy's current state */ public FiringSolution getFiringSolution(RampantRobot reference, EnemyRobot enemy, int weapon) { FiringSolution fs = PMGunStat.getFiringSolution(reference, enemy); if(fs.deviation < 0.3 && fs.power > 0.4) return fs; return GFGunStat.getFiringSolution(enemy); } public GuessFactorGunStatistic getGFGunStats() { return GFGunStat; } public PatternMatchingGunStatistic getPMGunStats() { return PMGunStat; } /** * @return the name of the enemy this stat is monitoring */ public String getEnemyName() { return enemyName; } }