@Override public int getUnitType() { EntityMovementMode mm = getMovementMode(); return (mm == EntityMovementMode.NAVAL) || (mm == EntityMovementMode.HYDROFOIL) || (mm == EntityMovementMode.SUBMARINE) ? UnitType.NAVAL : UnitType.TANK; }
/** * @return suspension factor of vehicle */ public int getSuspensionFactor() { return getSuspensionFactor(getMovementMode(), weight); }
@Override public int getMaxElevationDown(int currElevation) { // WIGEs can go down as far as they want // 50 is a pretty arbitrary max amount, but that's also the // highest elevation for VTOLs, so I'll just use that if ((currElevation > 0) && (getMovementMode() == EntityMovementMode.WIGE)) { return 50; } return super.getMaxElevationDown(currElevation); }
@Override public boolean canCharge() { // Tanks can charge, except Hovers when the option is set, and WIGEs return super.canCharge() && !(game.getOptions().booleanOption(OptionsConstants.ADVGRNDMOV_NO_HOVER_CHARGE) && (EntityMovementMode.HOVER == getMovementMode())) && !(EntityMovementMode.WIGE == getMovementMode()) && !(getStunnedTurns() > 0); }
public double getTankWeightLifting() { switch (tank.getMovementMode()) { case HOVER: case VTOL: case HYDROFOIL: case SUBMARINE: case WIGE: return TestEntity.ceilMaxHalf(tank.getWeight() / 10.0f, getWeightCeilingLifting()); default: return 0f; } }
protected static Structure getStructure(Tank tank) { if (tank.isSupportVehicle()) { return new SupportVeeStructure(tank); } int type = EquipmentType.T_STRUCTURE_STANDARD; if (tank.getStructureType() == 1) { type = EquipmentType.T_STRUCTURE_ENDO_STEEL; } return new Structure(type, tank.isSuperHeavy(), tank.getMovementMode()); }
if (getMovementMode() == EntityMovementMode.TRACKED || getMovementMode() == EntityMovementMode.WHEELED) { hitchNeeded = true;
switch (getMovementMode()) { case TRACKED: typeModifier = 0.9; tmmJumped += 2; if (getMovementMode() == EntityMovementMode.WIGE) { tmmRan += 1; tmmJumped += 1; if (getMovementMode() == EntityMovementMode.RAIL) { runMP = getWalkMP(false, true, true);
correct = false; if (tank.hasWorkingMisc(MiscType.F_ARMORED_MOTIVE_SYSTEM) && !((tank.getMovementMode() == EntityMovementMode.WHEELED) || (tank.getMovementMode() == EntityMovementMode.TRACKED) || (tank.getMovementMode() == EntityMovementMode.HOVER) || (tank.getMovementMode() == EntityMovementMode.HYDROFOIL) || (tank.getMovementMode() == EntityMovementMode.NAVAL) || (tank.getMovementMode() == EntityMovementMode.SUBMARINE) || (tank.getMovementMode() == EntityMovementMode.WIGE))) { buff.append("Armored Motive system and incompatible movemement mode!\n\n"); correct = false;
@Override public PilotingRollData addEntityBonuses(PilotingRollData prd) { if (motivePenalty > 0) { prd.addModifier(motivePenalty, "Steering Damage"); } if (commanderHit) { prd.addModifier(1, "commander injured"); } if (driverHit) { prd.addModifier(2, "driver injured"); } // are we wheeled and in light snow? IHex hex = game.getBoard().getHex(getPosition()); if ((null != hex) && (getMovementMode() == EntityMovementMode.WHEELED) && (hex.terrainLevel(Terrains.SNOW) == 1)) { prd.addModifier(1, "thin snow"); } // VDNI bonus? if (hasAbility(OptionsConstants.MD_VDNI) && !hasAbility(OptionsConstants.MD_BVDNI)) { prd.addModifier(-1, "VDNI"); } if (hasModularArmor()) { prd.addModifier(1, "Modular Armor"); } return prd; }
if ((tank.getMovementMode() == EntityMovementMode.VTOL) || (tank.getMovementMode() == EntityMovementMode.WIGE) || (tank.getMovementMode() == EntityMovementMode.HOVER)) { for (int i = 0; i < tank.locations(); i++) { if (tank.getArmorType(i) == EquipmentType.T_ARMOR_HARDENED) {