@Override public boolean isAcceptableReplacement(Part part, boolean refit) { return part instanceof InfantryMotiveType && mode.equals(((InfantryMotiveType)part).getMovementMode()); }
@Override protected void loadFieldsFromXmlNode(Node wn) { NodeList nl = wn.getChildNodes(); for (int x=0; x<nl.getLength(); x++) { Node wn2 = nl.item(x); if (wn2.getNodeName().equalsIgnoreCase("moveMode")) { mode = EntityMovementMode.getMode(wn2.getTextContent()); assignName(); } } }
@Override public int hashCode() { int result = hexCoords.hashCode(); result = 31 * result + movementMode.hashCode(); return result; }
@Override public String toString() { return getHexCoords() + "_" + getMovementMode().toString(); } }
@Override protected void loadFieldsFromXmlNode(Node wn) { NodeList nl = wn.getChildNodes(); for (int x=0; x<nl.getLength(); x++) { Node wn2 = nl.item(x); if (wn2.getNodeName().equalsIgnoreCase("trooper")) { trooper = Integer.parseInt(wn2.getTextContent()); } else if (wn2.getNodeName().equalsIgnoreCase("groundMP")) { groundMP = Integer.parseInt(wn2.getTextContent()); } else if (wn2.getNodeName().equalsIgnoreCase("jumpMP")) { jumpMP = Integer.parseInt(wn2.getTextContent()); } else if (wn2.getNodeName().equalsIgnoreCase("weightClass")) { weightClass = Integer.parseInt(wn2.getTextContent()); } else if (wn2.getNodeName().equalsIgnoreCase("quad")) { quad = Boolean.parseBoolean(wn2.getTextContent().trim()); } else if (wn2.getNodeName().equalsIgnoreCase("clan")) { clan = Boolean.parseBoolean(wn2.getTextContent().trim()); } else if (wn2.getNodeName().equalsIgnoreCase("chassis")) { chassis = MekHqXmlUtil.unEscape(wn2.getTextContent()); } else if (wn2.getNodeName().equalsIgnoreCase("model")) { model = MekHqXmlUtil.unEscape(wn2.getTextContent()); } else if (wn2.getNodeName().equalsIgnoreCase("jumpType")) { jumpType = EntityMovementMode.type(MekHqXmlUtil.unEscape(wn2.getTextContent())); } } }
pw1.println(MekHqXmlUtil.indentStr(indent+1) +"<jumpType>" +MekHqXmlUtil.escape(EntityMovementMode.token(jumpType)) +"</jumpType>"); writeToXmlEnd(pw1, indent);
public static String token(EntityMovementMode t) { return t.name(); } }
public static EntityMovementMode type(String token) { return EntityMovementMode.valueOf(token); } public static String token(EntityMovementMode t)
@Override public int compareTo(Key o) { int result = getHexCoords().compareTo(o.getHexCoords()); if (result != 0) { return result; } return getMovementMode().compareTo(o.getMovementMode()); }
case "ifMotive": if (!collectionMatchesProperty(fd.getMovementModes().stream().map(mt -> mt.toString()) .collect(Collectors.toList()), predicates.getProperty((String)key))) { return false;
model = MekHqXmlUtil.unEscape(wn2.getTextContent()); } else if (wn2.getNodeName().equalsIgnoreCase("jumpType")) { jumpType = EntityMovementMode.type(MekHqXmlUtil.unEscape(wn2.getTextContent())); } else if (wn2.getNodeName().equalsIgnoreCase("alternateCost")) { alternateCost = Long.parseLong(wn2.getTextContent());
pw1.println(MekHqXmlUtil.indentStr(indent+1) +"<jumpType>" +MekHqXmlUtil.escape(EntityMovementMode.token(jumpType)) +"</jumpType>"); pw1.println(MekHqXmlUtil.indentStr(indent+1)
public List<EntityMovementMode> getMotiveTypes() { return subtypeChecks.stream().filter(chk -> chk.isSelected()) .map(chk -> EntityMovementMode.getMode(chk.getName())).collect(Collectors.toList()); } }
@Override public boolean isSamePartType(Part part) { return part instanceof InfantryMotiveType && mode.equals(((InfantryMotiveType)part).getMovementMode()); }
@Override protected void loadFieldsFromXmlNode(Node wn) { NodeList nl = wn.getChildNodes(); for (int x=0; x<nl.getLength(); x++) { Node wn2 = nl.item(x); if (wn2.getNodeName().equalsIgnoreCase("mode")) { mode = EntityMovementMode.getMode(wn2.getTextContent()); assignName(); } else if (wn2.getNodeName().equalsIgnoreCase("moveMode")) { mode = EntityMovementMode.getMode(wn2.getTextContent()); assignName(); } } }
@Override public void setAlphaStrikeMovement(Map<String,Integer> moves) { if (getMovementMode().equals(EntityMovementMode.INF_JUMP)) { moves.put("j", getJumpMP(true, true, true) * 2); } else if (getMovementMode().equals(EntityMovementMode.INF_UMU)) { moves.put("s", getActiveUMUCount() * 2); } else { moves.put(getMovementModeAsBattleForceString(), getOriginalWalkMP() * 2); } }
@Override public List<MechSummary> generate(int count, String faction, int unitType, int weightClass, int year, int quality, Collection<EntityMovementMode> movementModes, Predicate<MechSummary> filter) { RAT rat = findRAT(faction, unitType, weightClass, year, quality); if (rat != null) { if (!movementModes.isEmpty()) { Predicate<MechSummary> moveFilter = ms -> movementModes.contains(EntityMovementMode.getMode(ms.getUnitSubType())); if (filter == null) { filter = moveFilter; } else { filter = filter.and(moveFilter); } } return RandomUnitGenerator.getInstance().generate(count, rat.ratName, filter); } return new ArrayList<MechSummary>(); }
@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); } }