moveTo(md); return;
if ( client.doYesNoDialog( "Charge " + target.getDisplayName() + "?", "To Hit: " + toHit.getValueAsString() + " (" + Compute.oddsAbove(toHit.getValue()) + "%)   (" + toHit.getDesc() + ")" + "\nDamage to Target: "+Compute.getChargeDamageFor(ce(),md.getHexesMoved())+" (in 5pt clusters)"+toHit.getTableDesc() + "\nDamage to Self: " + Compute.getChargeDamageTakenBy(ce(),target)+" (in 5pt clusters)" ) ) {  moveTo(md); } else {  clearAllMoves(); }; return;
    public void boardHexMoused(BoardEvent b) {        // ignore buttons other than 1        if (!client.isMyTurn() || (b.getModifiers() & MouseEvent.BUTTON1_MASK) == 0) {            return;        }        // check for shifty goodness        if (shiftheld != ((b.getModifiers() & MouseEvent.SHIFT_MASK) != 0)) {            shiftheld = (b.getModifiers() & MouseEvent.SHIFT_MASK) != 0;        }                if (b.getType() == b.BOARD_HEX_DRAGGED) {            if (!b.getCoords().equals(client.game.board.lastCursor) || shiftheld || gear == Compute.GEAR_TURN) {                client.game.board.cursor(b.getCoords());                // either turn or move                cmd = md.getAppended(currentMove(md.getFinalCoords(ce().getPosition(), ce().getFacing()), md.getFinalFacing(ce().getFacing()), b.getCoords()));                client.bv.drawMovementData(ce(), cmd);            }        } else if (b.getType() == b.BOARD_HEX_CLICKED) {            final Entity target = client.game.getEntity(b.getCoords());            Coords moveto = b.getCoords();            client.bv.drawMovementData(ce(), cmd);            md = new MovementData(cmd);                        client.game.board.select(b.getCoords());            if (shiftheld || gear == Compute.GEAR_TURN) {                butDone.setLabel("Move");                return;            }            if (gear == Compute.GEAR_CHARGE) {                // check if target is valid                if (target == null || target.equals(ce())) {                    client.doAlertDialog("Can't perform charge", "No target!");                    clearAllMoves();                    gear = Compute.GEAR_LAND;                    return;                }                                // check if it's a valid charge                ToHitData toHit = Compute.toHitCharge(client.game, cen, target.getId(), md);                if (toHit.getValue() != ToHitData.IMPOSSIBLE) {                    // if yes, ask them if they want to charge                                                // if they answer yes, charge                        moveTo(md);                        return;                                        // else clear movement                } else {                    // if not valid, tell why                    client.doAlertDialog("Can't perform charge", toHit.getDesc());                    clearAllMoves();                    gear = Compute.GEAR_LAND;                    return;                }            } else if (gear == Compute.GEAR_DFA) {                // check if target is valid                if (target == null || target.equals(ce())) {                    client.doAlertDialog("Can't perform D.F.A.", "No target!");                    clearAllMoves();                    gear = Compute.GEAR_LAND;                    return;                }                                // check if it's a valid charge                ToHitData toHit = Compute.toHitDfa(client.game, cen, target.getId(), md);                if (toHit.getValue() != ToHitData.IMPOSSIBLE) {                    // if yes, ask them if they want to charge                                                // if they answer yes, charge                        moveTo(md);                        return;                                        // else clear movement                } else {                    // if not valid, tell why                    client.doAlertDialog("Can't perform D.F.A.", toHit.getDesc());                    clearAllMoves();                    gear = Compute.GEAR_LAND;                    return;                }            }                        butDone.setLabel("Move");        }    }