/** * Calculates the weighted value of the unit based on if it is Infantry, Battle Armor or something * else. * * @param u The {@code Unit} to be evaluated. * @return */ protected BigDecimal getUnitValue(Unit u) { BigDecimal value = BigDecimal.ONE; if (isConventionalInfanry(u) && (((Infantry) u.getEntity()).getSquadN() == 1)) { value = new BigDecimal("0.25"); } return value; }
/** * Adds the tech level of the passed unit to the number of Clan or IS Advanced units in the list * (as appropriate). * * @param u The {@code Unit} to be evaluated. * @param value The unit's value. Most have a value of '1' but infantry and battle armor are less. */ protected void updateAdvanceTechCount(Unit u, BigDecimal value) { int techLevel = u.getEntity().getTechLevel(); if (techLevel > TechConstants.T_INTRO_BOXSET) { if (TechConstants.isClan(techLevel)) { setNumberClan(getNumberClan().add(value)); if (!isConventionalInfanry(u)) { setCountClan(getCountClan() + 1); } } else { setNumberIS2(getNumberIS2().add(value)); if (!isConventionalInfanry(u)) { setCountIS2(getCountIS2() + 1); } } } }
protected boolean isConventionalInfanry(Unit u) { return (u.getEntity() instanceof Infantry) && !(u.getEntity() instanceof BattleArmor); }