@Override public boolean isAcceptableReplacement(Part part, boolean refit) { return part instanceof InfantryMotiveType && mode.equals(((InfantryMotiveType)part).getMovementMode()); }
@Override public boolean isSamePartType(Part part) { return part instanceof InfantryMotiveType && mode.equals(((InfantryMotiveType)part).getMovementMode()); }
@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 void addBattleForceSpecialAbilities(Map<BattleForceSPA,Integer> specialAbilities) { super.addBattleForceSpecialAbilities(specialAbilities); for (Mounted m : getEquipment()) { if (!(m.getType() instanceof MiscType)) { continue; } if (m.getType().hasFlag(MiscType.F_MAGNETIC_CLAMP)) { if (getWeight() < 10) { specialAbilities.put(BattleForceSPA.MCS, null); } else { specialAbilities.put(BattleForceSPA.UCS, null); } } } specialAbilities.put(BattleForceSPA.SOA, null); if (getMovementMode().equals(EntityMovementMode.WIGE)) { specialAbilities.put(BattleForceSPA.GLD, null); } }
@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 public String getMovementModeAsString() { if (!hasETypeFlag(Entity.ETYPE_BATTLEARMOR)) { if (getMovementMode().equals(EntityMovementMode.VTOL)) { return hasMicrolite()? "Microlite" : "Microcopter"; } if (getMovementMode() == EntityMovementMode.INF_UMU) { return getOriginalJumpMP() > 1? "Motorized SCUBA" : "SCUBA"; } } return super.getMovementModeAsString(); }
&& (null != secondW) && secondW.hasFlag(WeaponType.F_INF_SUPPORT)) { mp = Math.max(mp - 1, 0); } else if (movementMode.equals(EntityMovementMode.VTOL) && getSecondaryN() > 0) { mp = Math.max(mp - 1, 0);
boolean isAero = ce().isAero(); boolean isVTOL = ce() instanceof VTOL; boolean isWiGE = ce().getMovementMode().equals(EntityMovementMode.WIGE); boolean isTankOnPavement = ce().hasETypeFlag(Entity.ETYPE_TANK) && !ce().hasETypeFlag(Entity.ETYPE_GUN_EMPLACEMENT)