@Override public int compare(MovePath first, MovePath second) { int s = super.compare(first, second); if (s != 0) { return s; } else { return second.getHexesMoved() - first.getHexesMoved(); } } }
@Override public int compare(Deque<MovePath> q1, Deque<MovePath> q2) { MovePath mp1 = q1.getLast(), mp2 = q2.getLast(); int t = mp2.getHexesMoved() - mp1.getHexesMoved(); if (t != 0) { return t; } else { return mp1.getMpUsed() - mp2.getMpUsed(); } } });
public Coords getSecondFinalPosition(Coords startPos) { Coords priorPos = startPos; Coords finalPos = getFinalCoords(); // if we moved one or fewer hexes, then just return starting position if (getHexesMoved() < 2) { return priorPos; } for (final Enumeration<MoveStep> i = getSteps(); i.hasMoreElements(); ) { final MoveStep step = i.nextElement(); if (step.getPosition() != finalPos) { priorPos = step.getPosition(); } } return priorPos; }
while (!tq.isEmpty()) { MovePath qlast = tq.removeLast(); if (mp.getHexesMoved() == qlast.getHexesMoved() && mp.getMpUsed() > qlast.getMpUsed()) { mp = qlast; } else {
int dHT = topMP.getHexesMoved() - mpCandidate.getHexesMoved(); if (dHT > 0) {
if(candidates.get(0).getHexesMoved() > longestNonEdgePathCache.get(entity.getPosition()).getHexesMoved()) { longestNonEdgePathCache.put(entity.getPosition(), candidates.get(0));
/** * compares MovePaths based on lexicographical order of triples ( hexes * traveled; thrust used; 0-( hexes flown in a straight line ) ) * */ @Override public int compare(MovePath mp1, MovePath mp2) { if (!mp1.getEntity().isAero()) { throw new IllegalArgumentException("wanted aero got:" + mp1.getClass().toString()); } //we want to process shorter paths first int dHT = mp1.getHexesMoved() - mp2.getHexesMoved(); if (dHT != 0) { return dHT; } //then those which used less thrust int dMP = mp1.getMpUsed() - mp2.getMpUsed(); if (dMP != 0) { return dMP; } //lastly those with more hexes flown straight. MoveStep lms1 = mp1.getLastStep(), lms2 = mp2.getLastStep(); int hs1 = lms1 == null ? 0 : lms1.getNStraight(); int hs2 = lms2 == null ? 0 : lms2.getNStraight(); int dHS = hs1 - hs2; return -dHS; } }
return null; } else { if (topMP.getHexesMoved() > mpCandidate.getHexesMoved()) { return null; //topMP path is longer and uses less or same mp. if (topMP.getHexesMoved() == mpCandidate.getHexesMoved()) {
/** * @param boardView1 * @param mp */ public MovementModifierEnvelopeSprite(BoardView1 boardView1, MovePath mp) { super(boardView1, mp.getFinalCoords()); facing = Facing.valueOfInt(mp.getFinalFacing()); int modi = Compute.getTargetMovementModifier(mp.getHexesMoved(), mp.isJumping(), mp.getEntity() instanceof VTOL, boardView1.game).getValue(); //Add evasion bonus for 'Mech with dual cockpit if (mp.getEntity().getCrew().getCrewType().equals(CrewType.DUAL) && mp.getEntity().getCrew().hasDedicatedPilot() && !mp.isJumping() && mp.getHexesMoved() > 0) { modi++; } float hue = 0.7f - 0.15f * modi; color = new Color(Color.HSBtoRGB(hue, 1, 1)); modifier = String.format("%+d", modi); }
} else { int hexesMovedDiff = first.getHexesMoved() - second.getHexesMoved(); if (hexesMovedDiff != 0) { return hexesMovedDiff; return dd; } else { return first.getHexesMoved() - second.getHexesMoved();
+ getDirection(cmd.getFinalFacing()) + ". Total mp used: " + cmd.getMpUsed() + " for a movement of: " + cmd.getHexesMoved(); } else if (args[1].equalsIgnoreCase("GETUP")) { if (cmd.getFinalProne() || cmd.getFinalHullDown()) { + cmd.getFinalCoords().toFriendlyString() + ". Total mp used: " + cmd.getMpUsed() + " for a movement of: " + cmd.getHexesMoved();
moved += getHexesMoved();
/** * Initialize an entity state from a movement path */ EntityState(MovePath path) { position = path.getFinalCoords(); facing = path.getFinalFacing(); hexesMoved = path.getHexesMoved(); heat = path.getEntity().heat; if (path.getLastStepMovementType() == EntityMovementType.MOVE_WALK) { heat = getHeat() + 1; } else if (path.getLastStepMovementType() == EntityMovementType.MOVE_RUN) { heat = getHeat() + 2; } else if ((path.getLastStepMovementType() == EntityMovementType.MOVE_JUMP) && (getHexesMoved() <= 3)) { heat = getHeat() + 3; } else if ((path.getLastStepMovementType() == EntityMovementType.MOVE_JUMP) && (getHexesMoved() > 3)) { heat = getHeat() + getHexesMoved(); } prone = path.getFinalProne() || path.getFinalHullDown(); immobile = path.getEntity().isImmobile(); jumping = path.isJumping(); movementType = path.getLastStepMovementType(); naturalAptGun = path.getEntity().hasAbility(OptionsConstants.PILOT_APTITUDE_GUNNERY); naturalAptPilot = path.getEntity().hasAbility(OptionsConstants.PILOT_APTITUDE_PILOTING); setSecondaryFacing(getFacing()); }
rc.fitness += deploymentPathFinders.get(deployed_ent.getMovementMode()).getLongestNonEdgePath(rc.getCoords()).getHexesMoved();
int toAttacker = RamAttackAction.getDamageTakenBy(ae, (Entity)ta, cmd.getSecondFinalPosition(ce.getPosition()), cmd.getHexesMoved(), ta.getCurrentVelocity()); int toDefender = RamAttackAction.getDamageFor(ae, (Entity)ta, cmd.getSecondFinalPosition(ce.getPosition()), cmd.getHexesMoved(), ta.getCurrentVelocity()); int toAttacker = 0; if (ce.isAirborneVTOLorWIGE()) { toAttacker = AirmechRamAttackAction.getDamageTakenBy(ce, target, cmd.getHexesMoved()); toDefender = AirmechRamAttackAction.getDamageFor(ce, cmd.getHexesMoved()); } else { toDefender = ChargeAttackAction.getDamageFor( ce, clientgui.getClient().getGame().getOptions() .booleanOption(OptionsConstants.ADVCOMBAT_TACOPS_CHARGE_DAMAGE), cmd.getHexesMoved()); if (target.getTargetType() == Targetable.TYPE_ENTITY) { Entity te = (Entity) target; clientgui.getClient().getGame().getOptions() cmd.getHexesMoved()); } else if ((target.getTargetType() == Targetable.TYPE_FUEL_TANK) || (target.getTargetType() == Targetable.TYPE_BUILDING)) {