if (le.getSmoke() > 0) { message.append( le.getSmoke() ) .append( " smoke hex(es) in line of sight.\n" );
if (le.getLightSmoke() > 0) { message.append( le.getLightSmoke() ) .append( " light smoke hex(es) in line of sight.\n" ); } if (le.getHeavySmoke() > 0) { message.append( le.getHeavySmoke() ); if (game.getOptions().booleanOption("maxtech_fire")) message.append( " heavy"); message.append( " smoke hex(es) in line of sight.\n" );
    public void boardSecondLOSHex(BoardEvent b, Coords c1) {        if (useLOSTool) {            Coords c2 = b.getCoords();            moveCursor(firstLOSSprite, c1);            moveCursor(secondLOSSprite, c2);            LosEffects.AttackInfo ai = new LosEffects.AttackInfo();            ai.attackPos = c1;            ai.targetPos = c2;            ai.attackHeight = game.getMechInFirst()?1:0;            ai.targetHeight = game.getMechInSecond()?1:0;            ai.attackAbsHeight = game.getBoard().getHex(c1).floor() + ai.attackHeight;            ai.targetAbsHeight = game.getBoard().getHex(c2).floor() + ai.targetHeight;            LosEffects le = LosEffects.calculateLos(game, ai);            StringBuffer message = new StringBuffer();            message.append( "Attacker(")                .append(game.getMechInFirst() ? "Mech" : "non Mech")                .append(") hex is " )                .append( c1.getBoardNum() )                .append( ".\n" );            message.append( "Target(")                .append(game.getMechInSecond() ? "Mech" : "non Mech")                .append(") hex is " )                .append( c2.getBoardNum() )                .append( ".\n" );            if (!le.canSee()) {                message.append( "Line of sight is blocked.\n" );                message.append( "Range is " )                    .append( c1.distance(c2) )                    .append( " hex(es).\n");            } else {                message.append( "Line of sight is not blocked.\n" );                message.append( "Range is " )                    .append( c1.distance(c2) )                    .append( " hex(es).\n");                if (le.getHeavyWoods() > 0) {                    message.append( le.getHeavyWoods() )                        .append( " heavy wood hex(es) in line of sight.\n" );                }                if (le.getLightWoods() > 0) {                    message.append( le.getLightWoods() )                        .append( " light wood hex(es) in line of sight.\n" );                }                if (le.getSmoke() > 0) {                    message.append( le.getSmoke() )                        .append( " smoke hex(es) in line of sight.\n" );                }                if (le.isTargetCover()) {                    message.append("Target has partial cover.\n");                }                if (le.isAttackerCover()) {                    message.append("Attacker has partial cover.\n");                }            }            AlertDialog alert = new AlertDialog(frame,                                                "Range / Line of Sight",                                                message.toString(), false);            alert.show();        }    }