public boolean isMechanized() { return (getMovementMode() == EntityMovementMode.WHEELED) || (getMovementMode() == EntityMovementMode.HOVER) || (getMovementMode() == EntityMovementMode.TRACKED) || (getMovementMode() == EntityMovementMode.SUBMARINE) || (getMovementMode() == EntityMovementMode.VTOL); }
/** * Used to check for standard or motorized SCUBA infantry, which have a maximum * depth of 2. * @return true if this is a conventional infantry unit with non-mechanized SCUBA specialization */ public boolean isNonMechSCUBA() { if (this instanceof BattleArmor) { return false; } return getMovementMode() == EntityMovementMode.INF_UMU; }
case MOVE_WALK: case MOVE_RUN: switch (getMovementMode()) { case INF_LEG: return "Walked";
/** * Returns the abbreviation of the type of movement used. This is * Infantry-specific. */ @Override public String getMovementAbbr(EntityMovementType mtype) { switch (mtype) { case MOVE_NONE: return "N"; case MOVE_WALK: return "W"; case MOVE_RUN: switch (getMovementMode()) { case INF_LEG: return "R"; case INF_MOTORIZED: return "B"; case HOVER: case TRACKED: case WHEELED: return "D"; default: return "?"; } case MOVE_JUMP: return "J"; default: return "?"; } }
@Override public boolean doomedInVacuum() { if (getMovementMode() == EntityMovementMode.VTOL) { return true; } else { return !hasSpaceSuit(); } }
@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(); }
@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); } }
&& ((null == getCrew()) || !hasAbility(OptionsConstants.MD_DERMAL_ARMOR)) && (null != secondW) && secondW.hasFlag(WeaponType.F_INF_SUPPORT) && (getMovementMode() != EntityMovementMode.TRACKED) && (getMovementMode() != EntityMovementMode.INF_JUMP)) { mp = Math.max(mp - 1, 0); && ((getMovementMode() == EntityMovementMode.INF_LEG) || (getMovementMode() == EntityMovementMode.INF_JUMP))) { mp += 1; && ((getMovementMode() == EntityMovementMode.INF_LEG) || (getMovementMode() == EntityMovementMode.INF_JUMP))) { mp += 1;
private void addWeaponNotes(List<String> notes) { if ((inf.getMovementMode() == EntityMovementMode.INF_UMU) || (inf.getMovementMode() == EntityMovementMode.SUBMARINE)) { notes.add(Messages.getString("TROView.InfantryNote.SCUBA"));
public PilotingRollData checkBogDown(MoveStep step, IHex curHex, Coords lastPos, Coords curPos, boolean isPavementStep) { PilotingRollData roll = new PilotingRollData(getId(), 4, "entering boggy terrain"); int bgMod = curHex.getBogDownModifier(getMovementMode(), false); final boolean onBridge = (curHex.terrainLevel(Terrains.BRIDGE) > 0) && (getElevation() == curHex.terrainLevel(Terrains.BRIDGE_ELEV)); if (!lastPos.equals(curPos) && (bgMod != TargetRoll.AUTOMATIC_SUCCESS) && (step.getMovementType(false) != EntityMovementType.MOVE_JUMP) && (getMovementMode() != EntityMovementMode.HOVER) && (getMovementMode() != EntityMovementMode.VTOL) && (getMovementMode() != EntityMovementMode.WIGE) && (step.getElevation() == 0) && !isPavementStep && !onBridge) { roll.append(new PilotingRollData(getId(), bgMod, "avoid bogging down")); } else { roll.addModifier(TargetRoll.CHECK_FALSE, "Check false: Not entering bog-down terrain, " + "or jumping/hovering over such terrain"); } return roll; }
@Override public int getJumpMP(boolean gravity) { int mp = 0; if (getMovementMode() != EntityMovementMode.INF_UMU && getMovementMode() != EntityMovementMode.SUBMARINE) { mp = getOriginalJumpMP(); && ((null == getCrew()) || !hasAbility(OptionsConstants.MD_TSM_IMPLANT)) && ((null == getCrew()) || !hasAbility(OptionsConstants.MD_DERMAL_ARMOR)) && (getMovementMode() != EntityMovementMode.SUBMARINE) && (null != secondW) && secondW.hasFlag(WeaponType.F_INF_SUPPORT)) { mp = Math.max(mp - 1, 0);
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; }
/** * Convenience method for setting the anti-mek skill of the unit based on * whether or not they have anti-mek training. If the input is false, the * anti-mek skill is set to the default untrained value, otherwise it's * set to the default value based on motive type. * * @param amTraining */ public void setAntiMekSkill(boolean amTraining) { if (getCrew() == null) { return; } if (amTraining) { if ((getMovementMode() == EntityMovementMode.INF_MOTORIZED) || getMovementMode() == EntityMovementMode.INF_JUMP) { getCrew().setPiloting(ANTI_MECH_SKILL_JUMP, 0); } else { getCrew().setPiloting(ANTI_MECH_SKILL_FOOT, 0); } } else { getCrew().setPiloting(ANTI_MECH_SKILL_UNTRAINED, 0); } }
max = maxSquadSize(inf.getMovementMode(), inf.hasMicrolite() || (inf.getAllUMUCount() > 1)); if (inf.getSquadSize() > max) { buff.append("Maximum squad size is " + max + "\n\n"); max = maxUnitSize(inf.getMovementMode(), inf.hasMicrolite() || (inf.getAllUMUCount() > 1), inf.hasSpecialization(Infantry.COMBAT_ENGINEERS | Infantry.MOUNTAIN_TROOPS)); if (inf.getShootingStrength() > max) {
if (getMovementMode() == EntityMovementMode.WHEELED) { if (hex.containsTerrain(Terrains.WOODS) || hex.containsTerrain(Terrains.ROUGH) if (getMovementMode() == EntityMovementMode.TRACKED) { if ((hex.terrainLevel(Terrains.WOODS) > 1) || hex.containsTerrain(Terrains.JUNGLE) if (getMovementMode() == EntityMovementMode.HOVER) { if (hex.containsTerrain(Terrains.WOODS) || hex.containsTerrain(Terrains.JUNGLE) && getMovementMode() == EntityMovementMode.SUBMARINE) { return true; if ((getMovementMode() == EntityMovementMode.HOVER) || (getMovementMode() == EntityMovementMode.INF_UMU) || (getMovementMode() == EntityMovementMode.SUBMARINE) || (getMovementMode() == EntityMovementMode.VTOL)) { return false;
Infantry infantry = (Infantry)newEntity; String chassis = "?"; switch (infantry.getMovementMode()) { case INF_UMU: chassis = "Scuba ";
switch (getMovementMode()){ case INF_UMU: cost += 17888;
@Override public double getWeight() { double mult; switch (getMovementMode()) { case INF_MOTORIZED: mult = 0.195;
switch (getMovementMode()) { case INF_MOTORIZED: setOriginalWalkMP(3);
.getMovementMode() == EntityMovementMode.INF_UMU)) && (attacker.moved == EntityMovementType.MOVE_JUMP)) { data.addModifier(