public void updateArmorValues() { if (cbArmorKit.getSelectedIndex() > 0) { EquipmentType kit = armorKits.get(cbArmorKit.getSelectedIndex() - 1); fldDivisor.setText(Double.toString(((MiscType)kit).getDamageDivisor())); chEncumber.setSelected((kit.getSubType() & MiscType.S_ENCUMBERING) != 0); chSpaceSuit.setSelected((kit.getSubType() & MiscType.S_SPACE_SUIT) != 0); chDEST.setSelected((kit.getSubType() & MiscType.S_DEST) != 0); chSneakCamo.setSelected((kit.getSubType() & MiscType.S_SNEAK_CAMO) != 0); chSneakIR.setSelected((kit.getSubType() & MiscType.S_SNEAK_IR) != 0); chSneakECM.setSelected((kit.getSubType() & MiscType.S_SNEAK_ECM) != 0); } }
public void setArmorKit(EquipmentType armorKit) { List<Mounted> toRemove = getEquipment().stream() .filter(m -> m.getType().hasFlag(MiscType.F_ARMOR_KIT)) .collect(Collectors.toList()); getEquipment().removeAll(toRemove); getMisc().removeAll(toRemove); if (armorKit != null && armorKit.hasFlag(MiscType.F_ARMOR_KIT)) { try { addEquipment(armorKit, LOC_INFANTRY); } catch (LocationFullException ex) { ex.printStackTrace(); } damageDivisor = ((MiscType)armorKit).getDamageDivisor(); encumbering = (armorKit.getSubType() & MiscType.S_ENCUMBERING) != 0; spaceSuit = (armorKit.getSubType() & MiscType.S_SPACE_SUIT) != 0; dest = (armorKit.getSubType() & MiscType.S_DEST) != 0; sneak_camo = (armorKit.getSubType() & MiscType.S_SNEAK_CAMO) != 0; sneak_ir = (armorKit.getSubType() & MiscType.S_SNEAK_IR) != 0; sneak_ecm = (armorKit.getSubType() & MiscType.S_SNEAK_ECM) != 0; } }
@Override public double getBaseBattleForceMovement() { double move = getOriginalWalkMP(); if (getMisc().stream().filter(m -> m.getType().hasFlag(MiscType.F_MASC)) .map(m -> m.getType().getSubType()) .anyMatch(st -> st == MiscType.S_SUPERCHARGER)) { move *= 1.25; } return move; }
/** * Start of Battle Force Conversion Methods */ @Override public double getBaseBattleForceMovement() { double move = getOriginalWalkMP(); if (hasMASCAndSuperCharger()) { move *= 1.5; } else if (hasMASC()) { move *= 1.25; } if (hasMPReducingHardenedArmor()) { move--; } if (getMisc().stream().filter(m -> m.getType().hasFlag(MiscType.F_CLUB)) .map(m -> m.getType().getSubType()) .anyMatch(st -> st == MiscType.S_SHIELD_LARGE || st == MiscType.S_SHIELD_MEDIUM)) { move--; } return move; }
} else if (et instanceof MiscType && et.hasFlag(MiscType.F_MASC) && (et.getSubType() & MiscType.S_SUPERCHARGER) == 0) { if (null != wn2.getAttributes().getNamedItem("rating")) { int rating = Integer.parseInt(wn2.getAttributes().getNamedItem("rating").getTextContent());
} else if (et instanceof MiscType && et.hasFlag(MiscType.F_MASC) && (et.getSubType() & MiscType.S_SUPERCHARGER) == 0) { if (null != wn2.getAttributes().getNamedItem("rating")) { int rating = Integer.parseInt(wn2.getAttributes().getNamedItem("rating").getTextContent());
specialAbilities.merge(BattleForceSPA.MDS, 1, Integer::sum); } else if (m.getType().hasFlag(MiscType.F_TOOLS) && (m.getType().getSubType() & MiscType.S_MINESWEEPER) == MiscType.S_MINESWEEPER) { specialAbilities.put(BattleForceSPA.MSW, null); } else if (m.getType().hasFlag(MiscType.F_SPACE_ADAPTATION)) {
} else if (m.getType().hasFlag(MiscType.F_CLUB)) { specialAbilities.put(BattleForceSPA.MEL, null); if ((m.getType().getSubType() & (MiscType.S_BACKHOE | MiscType.S_PILE_DRIVER | MiscType.S_MINING_DRILL | MiscType.S_ROCK_CUTTER | MiscType.S_WRECKING_BALL)) != 0) { specialAbilities.put(BattleForceSPA.ENG, null); } else if ((m.getType().getSubType() & (MiscType.S_DUAL_SAW | MiscType.S_CHAINSAW | MiscType.S_BUZZSAW)) != 0) {
/** * QuadVees cannot benefit from MASC in vehicle mode, so in that case we only return true if there * is an armed supercharger. */ @Override public boolean hasArmedMASC() { boolean superchargerOnly = getConversionMode() == CONV_MODE_VEHICLE; for (Mounted m : getEquipment()) { if (!m.isDestroyed() && !m.isBreached() && (m.getType() instanceof MiscType) && m.getType().hasFlag(MiscType.F_MASC) && (!superchargerOnly || m.getType().getSubType() == MiscType.S_SUPERCHARGER) && m.curMode().equals("Armed")) { return true; } } return false; }