@Override public MovePath doRelax(MovePath v, MovePath e, Comparator<MovePath> comparator) { if (v == null) return e; // We have to be standing to be able to move // Maybe I should replace this extra condition with a flag in node(?) boolean vprone = v.getFinalProne(), eprone = e.getFinalProne(); if (vprone != eprone) return vprone ? e : null; if (!(v.getEntity() instanceof Tank)) { boolean vhdown = v.getFinalHullDown(), ehdown = e .getFinalHullDown(); if (vhdown != ehdown) return vhdown ? e : null; } return comparator.compare(e, v) < 0 ? e : null; } }
public PathState(MovePath p) { location = p.getFinalCoords(); facing = p.getFinalFacing(); hulldown = p.getFinalHullDown() || p.getFinalProne(); isjumping = p.isJumping(); }
boolean vhdown = topMP.getFinalHullDown(), ehdown = mpCandidate.getFinalHullDown(); if (vhdown != ehdown) { if (vhdown) {
if (mp.getFinalProne() || (mp.getFinalHullDown() && !(entity instanceof Tank))) { if (entity.isCarefulStand()) { result.add(mp.clone().addStep(MoveStepType.CAREFUL_STAND));
+ " for a movement of: " + cmd.getHexesMoved(); } else if (args[1].equalsIgnoreCase("GETUP")) { if (cmd.getFinalProne() || cmd.getFinalHullDown()) { cmd.addStep(MoveStepType.GET_UP); return "Mech will try to stand up. this requieres a piloting roll."; if (cmd.getFinalProne() || cmd.getFinalHullDown() && getClient().getGame().getOptions() .booleanOption(OptionsConstants.ADVGRNDMOV_TACOPS_CAREFUL_STAND)) { cmd.addStep(MoveStepType.CAREFUL_STAND);
if (getFinalProne() || (getFinalHullDown() && !(getEntity() instanceof Tank))) { if ((last != null) && (last.getType() != MoveStepType.TURN_RIGHT)) { result.add(clone().addStep(MovePath.MoveStepType.TURN_LEFT));
if (response.getAnswer()) { ce.setCarefulStand(true); if (cmd.getFinalProne() || cmd.getFinalHullDown()) { cmd.addStep(MoveStepType.CAREFUL_STAND); if (cmd.getFinalProne() || cmd.getFinalHullDown()) { cmd.addStep(MoveStepType.GET_UP); if (cmd.getFinalProne() || cmd.getFinalHullDown()) { cmd.addStep(MoveStepType.GET_UP); } else if (actionCmd.equals(MoveCommand.MOVE_HULL_DOWN.getCmd())) { gear = MovementDisplay.GEAR_LAND; if (!cmd.getFinalHullDown()) { cmd.addStep(MoveStepType.HULL_DOWN);
/** * 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()); }
setGoProneEnabled(false); setHullDownEnabled(true); } else if (cmd.getFinalHullDown()) { if (isMech) { setGetUpEnabled(!ce.isImmobile() && !ce.isStuck()