*      of the <code>Tile</code> for. This object is also used to
     *      get the <code>ColonyTile</code> for the given <code>Tile</code>.
     */
    public void displayColonyTile(Graphics2D g, Tile tile, Colony colony) {
        boolean tileCannotBeWorked = false;
        Unit occupyingUnit = null;
        int price = 0;
        if (colony != null) {
            ColonyTile colonyTile = colony.getColonyTile(tile);
            occupyingUnit = colonyTile.getOccupyingUnit();
            price = colony.getOwner().getLandPrice(tile);
            switch (colonyTile.getNoWorkReason()) {
            case NONE: case COLONY_CENTER: case CLAIM_REQUIRED:
                break;
            default:
                tileCannotBeWorked = true;
            }
        }

        displayBaseTile(g, tile, false);
        displayTileOverlays(g, tile, false, false);
        if (tileCannotBeWorked) {
            g.drawImage(lib.getMiscImage(ImageLibrary.TILE_TAKEN), 0, 0, null);
        }

        if (price > 0 && tile.getSettlement() == null) {
            // tile is owned by an IndianSettlement
            Image image = lib.getMiscImage(ImageLibrary.TILE_OWNED_BY_INDIANS);
            centerImage(g, image);
        }

        if (occupyingUnit != null) {
            ImageIcon image = lib.getUnitImageIcon(occupyingUnit, 0.5);
            g.drawImage(image.getImage(), tileWidth/4 - image.getIconWidth() / 2,
                        halfHeight - image.getIconHeight() / 2, null);
            // Draw an occupation and nation indicator.
            g.drawImage(getOccupationIndicatorImage(g, occupyingUnit),
                        (int) (STATE_OFFSET_X * lib.getScalingFactor()), 0, null);
        }
    }