/** * Infantry can only change 1 elevation level at a time unless Mountain Inf * which is 3. */ @Override public int getMaxElevationChange() { if (hasSpecialization(MOUNTAIN_TROOPS)) { return 3; } return 1; }
public boolean isXCT() { return hasSpecialization(XCT); }
@Override public void addBattleForceSpecialAbilities(Map<BattleForceSPA,Integer> specialAbilities) { super.addBattleForceSpecialAbilities(specialAbilities); specialAbilities.put(BattleForceSPA.CAR, (int)Math.ceil(getWeight())); if (getMovementMode().equals(EntityMovementMode.INF_UMU)) { specialAbilities.put(BattleForceSPA.UMU, null); } if (hasSpecialization(FIRE_ENGINEERS)) { specialAbilities.put(BattleForceSPA.FF, null); } if (hasSpecialization(MINE_ENGINEERS)) { specialAbilities.put(BattleForceSPA.MSW, null); } if (hasSpecialization(MOUNTAIN_TROOPS)) { specialAbilities.put(BattleForceSPA.MTN, null); } if (hasSpecialization(PARATROOPS)) { specialAbilities.put(BattleForceSPA.PARA, null); } if (hasSpecialization(SCUBA)) { specialAbilities.put(BattleForceSPA.UMU, null); } if (hasSpecialization(TRENCH_ENGINEERS)) { specialAbilities.put(BattleForceSPA.TRN, null); } if (hasAbility("tsm_implant")) { specialAbilities.put(BattleForceSPA.TSI, null); } }
@Override protected void addSystemTechAdvancement(CompositeTechLevel ctl) { super.addSystemTechAdvancement(ctl); ctl.addComponent(Infantry.getMotiveTechAdvancement(movementMode)); if (hasSpecialization(COMBAT_ENGINEERS)) { ctl.addComponent(Infantry.getCombatEngineerTA()); } if (hasSpecialization(MARINES)) { ctl.addComponent(Infantry.getMarineTA()); } if (hasSpecialization(MOUNTAIN_TROOPS)) { ctl.addComponent(Infantry.getMountainTA()); } if (hasSpecialization(PARATROOPS)) { ctl.addComponent(Infantry.getParatrooperTA()); } if (hasSpecialization(PARAMEDICS)) { ctl.addComponent(Infantry.getParamedicTA()); } if (hasSpecialization(TAG_TROOPS)) { ctl.addComponent(Infantry.getTAGTroopsTA()); } if (isAntiMekTrained()) { ctl.addComponent(Infantry.getAntiMekTA()); } }
bvText.append(endRow); if (hasSpecialization(COMBAT_ENGINEERS)) { utm += 0.1; bvText.append(startRow); bvText.append(endRow); if (hasSpecialization(MARINES)) { utm += 0.3; bvText.append(startRow); if (hasSpecialization(MOUNTAIN_TROOPS)) { utm += 0.2; bvText.append(startRow); if (hasSpecialization(PARATROOPS)) { utm += 0.1; bvText.append(startRow); if (hasSpecialization(SCUBA)) { utm += 0.1; bvText.append(startRow); if (hasSpecialization(XCT)) { utm += 0.1; bvText.append(startRow);
public static int maxSecondaryWeapons(Infantry inf) { int max = 2; if (inf.getMovementMode() == EntityMovementMode.VTOL) { max = inf.hasMicrolite()?0 : 1; } else if (inf.getMovementMode() == EntityMovementMode.INF_UMU) { max = inf.getAllUMUCount(); } if (inf.hasSpecialization(Infantry.COMBAT_ENGINEERS)) { max = 0; } if (inf.hasSpecialization(Infantry.MOUNTAIN_TROOPS | Infantry.PARAMEDICS)) { max = 1; } if (inf.getCrew() != null) { if (inf.hasAbility(OptionsConstants.MD_DERMAL_ARMOR)) { max++; } if (inf.hasAbility(OptionsConstants.MD_TSM_IMPLANT)) { max++; } } return max; }
chSpecs.get(i).setSelected(inf.hasSpecialization(spec));
if (hasSpecialization(COMBAT_ENGINEERS)) { mult += 0.1; if (hasSpecialization(PARATROOPS)) { mult += 0.05; if (hasSpecialization(PARAMEDICS)) { mult += 0.05;
if (hasSpecialization(COMBAT_ENGINEERS)) { multiplier *= 5; if (hasSpecialization(MARINES)) { multiplier *= 3; if (hasSpecialization(MOUNTAIN_TROOPS)) { multiplier *= 2; if (hasSpecialization(PARATROOPS)) { multiplier *= 3; if (hasSpecialization(XCT)) { multiplier *= 5;
inf.hasSpecialization(Infantry.COMBAT_ENGINEERS | Infantry.MOUNTAIN_TROOPS)); if (inf.getShootingStrength() > max) { buff.append("Maximum platoon size is " + max + "\n\n");
if (inf.hasSpecialization(1 << i)) { sj.add(Infantry.getSpecializationName(1 << i));
for (int i = 0; i < Infantry.NUM_SPECIALIZATIONS; i++) { int spec = 1 << i; if (inf.hasSpecialization(spec)) { specList.addItem(Infantry.getSpecializationName(spec));
case INF_UMU: if (this instanceof Infantry && ((Infantry)this).hasSpecialization(Infantry.SCUBA) && hex.containsTerrain(Terrains.WATER)) { minAlt = Math.max(hex.floor(), -2);
if (inf.hasSpecialization(Infantry.MINE_ENGINEERS)) { clear = Minefield.CLEAR_NUMBER_INF_ENG; boom = Minefield.CLEAR_NUMBER_INF_ENG_ACCIDENT;
|| ((getMovementMode() == EntityMovementMode.QUAD_SWIM) && hasUMU()) || ((getMovementMode() == EntityMovementMode.BIPED_SWIM) && hasUMU())) { if (this instanceof Infantry && ((Infantry)this).hasSpecialization(Infantry.SCUBA) && getMovementMode() == EntityMovementMode.INF_UMU) { return assumedAlt >= Math.max(hex.floor(), -2)