* @return A list of tiles whose visibility changed.
     */
    public List<Tile> exploreMap(boolean reveal) {
        List<Tile> result = new ArrayList<Tile>();
        for (Tile tile : getGame().getMap().getAllTiles()) {
            if (tile.isExploredBy(this) != reveal) {
                tile.setExploredBy(this, reveal);
                result.add(tile);
            }
        }
        resetExploredTiles(getGame().getMap());
        invalidateCanSeeTiles();
        return result;
    }