/** * Helper function to determine if a entity is a quad */ public boolean entityIsQuad() { return (getMovementMode() == EntityMovementMode.QUAD); }
/** * Helper function to determine if a entity is a biped */ public boolean entityIsBiped() { return (getMovementMode() == EntityMovementMode.BIPED); }
/** * Is this a naval vessel? * @return Whether it is or not. */ public boolean isNaval() { return (getMovementMode() == EntityMovementMode.NAVAL) || (getMovementMode() == EntityMovementMode.HYDROFOIL) || (getMovementMode() == EntityMovementMode.SUBMARINE); }
public static PlatoonType getPlatoonType(Entity en) { switch (en.getMovementMode()) { case TRACKED: case WHEELED: case HOVER: case VTOL: case SUBMARINE: return MECHANIZED; case INF_MOTORIZED: return MOTORIZED; case INF_JUMP: return JUMP; default: return FOOT; } } }
@Override public boolean isAirborne() { return (getAltitude() > 0) || (getMovementMode() == EntityMovementMode.AERODYNE) || (getMovementMode() == EntityMovementMode.SPHEROID); }
public EntityMovementMode getMovementMode() { if (movementMode == EntityMovementMode.NONE) { return getEntity().getMovementMode(); } return movementMode; }
/** * Get the movement mode of the entity, based on consensus. */ @Override public EntityMovementMode getMovementMode() { if (fighters.size() < 1) { return EntityMovementMode.NONE; } EntityMovementMode moveMode = game.getEntity(fighters.get(0)).getMovementMode(); for (Integer fId : fighters) { Entity fighter = game.getEntity(fId); if (moveMode != fighter.getMovementMode()) { System.out.println("Error: Fighter squadron movement mode " + "doesn't agree!"); return EntityMovementMode.NONE; } } return moveMode; }
/** * Determines if the given entity has a reasonable path to the "opposite" edge of the board from its * current position. * @param entity * @param board * @return */ private boolean hasPathToEdge(Entity entity, IBoard board) { // Flying units can always get anywhere if (entity.isAero() || entity instanceof VTOL) { return true; } BoardEdgePathFinder boardEdgePathFinder; if(deploymentPathFinders.containsKey(entity.getMovementMode())) { boardEdgePathFinder = deploymentPathFinders.get(entity.getMovementMode()); } else { boardEdgePathFinder = new BoardEdgePathFinder(); deploymentPathFinders.put(entity.getMovementMode(), boardEdgePathFinder); } MovePath mp = boardEdgePathFinder.findPathToEdge(entity); return mp != null; }
public double getInfantryFuelCost(Entity e) { if (e instanceof BattleArmor) { if (e.getJumpMP() > 0) { return (e.getWeight() * .02 * 1000 * 4); } else { return 0; } } if (e.getMovementMode() == EntityMovementMode.INF_LEG) { return 0; } else { return (e.getWeight() *.02 * 1000 * 4); } }
private void updateBootleggerButton() { final Entity ce = ce(); if (null == ce) { return; } if (!clientgui.getClient().getGame().getOptions() .booleanOption(OptionsConstants.ADVGRNDMOV_VEHICLE_ADVANCED_MANEUVERS)) { return; } if (!(ce instanceof Tank || ce instanceof QuadVee)) { return; } if (ce.getMovementMode() != EntityMovementMode.WHEELED && ce.getMovementMode() != EntityMovementMode.HOVER && ce.getMovementMode() != EntityMovementMode.VTOL) { return; } setBootleggerEnabled(cmd.getLastStep() != null && cmd.getLastStep().getNStraight() >= 3); }
/** * If the path contains mode conversions, this will determine the movement mode at the end * of movement. Note that LAMs converting from AirMech to Biped mode require two convert commands. * * @return The movement mode resulting from any mode conversions in the path. */ public EntityMovementMode getFinalConversionMode() { if (getLastStep() != null) { return getLastStep().getMovementMode(); } return getEntity().getMovementMode(); }
/** * cycle through entities on team and collect all the airborne VTOL/WIGE * * @return a vector of relevant entity ids */ @Override public Vector<Integer> getAirborneVTOL() { //a vector of unit ids Vector<Integer> units = new Vector<Integer>(); for (Entity entity : game.getEntitiesVector()) { if (entity.getOwner().equals(this)) { if (((entity instanceof VTOL) || (entity.getMovementMode() == EntityMovementMode.WIGE)) && (!entity.isDestroyed()) && (entity.getElevation() > 0)) { units.add(entity.getId()); } } } return units; }
@Override public void setUnit(Unit u) { super.setUnit(u); if ((null != u) && u.getEntity().hasETypeFlag(Entity.ETYPE_TANK)) { fixTankFlag(u.getEntity().getMovementMode() == EntityMovementMode.HOVER); } }
/** * Clears out the currently selected movement data and resets it. */ private void clearAllMoves() { // switch back from swimming to normal mode. if (ce() != null) { if (ce().getMovementMode() == EntityMovementMode.BIPED_SWIM) ce().setMovementMode(EntityMovementMode.BIPED); else if (ce().getMovementMode() == EntityMovementMode.QUAD_SWIM) ce().setMovementMode(EntityMovementMode.QUAD); cmd = new MovePath(getClient().getGame(), ce()); } else { cmd = null; } gear = GEAR_LAND; }
@Override public void performAction() { EntityMovementMode nextMode = ce().nextConversionMode(cmd.getFinalConversionMode()); // LAMs may have to skip the next mode due to damage if (ce() instanceof LandAirMech) { if (!((LandAirMech)ce()).canConvertTo(nextMode)) { nextMode = ce().nextConversionMode(nextMode); } if (!((LandAirMech)ce()).canConvertTo(nextMode)) { nextMode = ce().getMovementMode(); } } adjustConvertSteps(nextMode); clientgui.bv.drawMovementData(ce(), cmd); } });
@Override public Part getNewPart() { boolean useHover = null != unit && unit.getEntity().getMovementMode() == EntityMovementMode.HOVER && unit.getEntity() instanceof Tank; int flags = 0; if(engine.hasFlag(Engine.CLAN_ENGINE)) { flags = Engine.CLAN_ENGINE; } if(null != unit && unit.getEntity() instanceof Tank) { flags |= Engine.TANK_ENGINE; } return new EnginePart(getUnitTonnage(), new Engine(engine.getRating(), engine.getEngineType(), flags), campaign, useHover); }
@Override public boolean isAirborneVTOLorWIGE() { // stuff that moves like a VTOL is flying unless at elevation 0 or on // top of/in a building, if ((getMovementMode() == EntityMovementMode.VTOL) || (getMovementMode() == EntityMovementMode.WIGE)) { if ((game != null) && (game.getBoard() != null) && (getPosition() != null) && (game.getBoard().getHex(getPosition()) != null) && ((game.getBoard().getHex(getPosition()) .terrainLevel(Terrains.BLDG_ELEV) >= getElevation()) || (game .getBoard().getHex(getPosition()) .terrainLevel(Terrains.BRIDGE_ELEV) >= getElevation()))) { return false; } return getElevation() > 0; } return false; }
/** * Apply PSR modifier for difficult terrain at the specified coordinates * * @param roll the PSR to modify * @param c the coordinates where the PSR happens * @param enteringRubble True if entering rubble, else false */ public void addPilotingModifierForTerrain(PilotingRollData roll, Coords c, boolean enteringRubble) { if ((c == null) || (roll == null)) { return; } if (isOffBoard() || !(isDeployed())) { return; } IHex hex = game.getBoard().getHex(c); hex.terrainPilotingModifier(getMovementMode(), roll, enteringRubble); if (hex.containsTerrain(Terrains.JUNGLE) && hasAbility(OptionsConstants.PILOT_TM_FOREST_RANGER)) { roll.addModifier(-1, "Forest Ranger"); } }
private void stockBattleArmorSuits(Campaign c) { //this is just a test for(MechSummary summary : MechSummaryCache.getInstance().getAllMechs()) { if(!summary.getUnitType().equals("BattleArmor")) { continue; } //FIXME: I can't pull entity movement mode and quad shape off of mechsummary //try loading the full entity, but this might take too long if(null != summary) { Entity newEntity = null; try { newEntity = new MechFileParser(summary.getSourceFile(), summary.getEntryName()).getEntity(); } catch (EntityLoadingException e) { e.printStackTrace(); } if(null != newEntity) { BattleArmorSuit ba = new BattleArmorSuit(summary.getChassis(), summary.getModel(), (int)summary.getTons(), 1, summary.getWeightClass(), summary.getWalkMp(), summary.getJumpMp(), newEntity.entityIsQuad(), summary.isClan(), newEntity.getMovementMode(), c); parts.add(ba); } } } }
public boolean canShift() { return ((getEntity() instanceof QuadMech // QuadVee cannot shift in vee mode && !(getEntity() instanceof QuadVee && (entity.getConversionMode() == QuadVee.CONV_MODE_VEHICLE || getEntity().isConvertingNow()))) // Maneuvering Ace allows Bipeds and VTOLs moving at cruise // speed to perform a lateral shift || (getEntity().isUsingManAce() && ((getEntity() instanceof BipedMech) || ((getEntity() instanceof VTOL) && (getMpUsed() <= getEntity().getWalkMP())))) || (game.getOptions().booleanOption(OptionsConstants.ADVGRNDMOV_VEHICLE_ADVANCED_MANEUVERS) && getEntity() instanceof Tank && (getEntity().getMovementMode() == EntityMovementMode.VTOL || getEntity().getMovementMode() == EntityMovementMode.HOVER)) || ((getEntity() instanceof TripodMech) && (((Mech) getEntity()).countBadLegs() == 0))) && !isJumping(); }