private IEnumerator CardSelectTileRoutine(List <Vector3Int> tiles, SelectTileDel SelectTileFunction)
    {
        GridHelper.SetGroundTilesColor(tiles, GridHelper.spawnTileColor);

        Vector3Int?selectedTile = null;

        while (true)
        {
            if (Input.GetMouseButtonDown(0))
            {
                Vector3Int mouseCoords = MouseCoords();
                if (!GridHelper.TileInList(mouseCoords, tiles))
                {
                    break;
                }

                selectedTile = mouseCoords;
                break;
            }
            yield return(null);
        }

        GridHelper.SetGroundTilesColor(tiles, Color.white);
        SelectTileFunction(selectedTile != null && GridHelper.groundTilemap.HasTile(selectedTile.Value) ? selectedTile : null);
    }
    public void CardSelectTile(Vector3Int start, RangeDefined range, SelectTileDel SelectTileFunction)
    {
        List <Vector3Int> tiles;

        if (range.basicRange)
        {
            tiles = TilesInBasic(range.allowedDirections);
        }
        else
        {
            tiles = GridHelper.TilesInRange(start, range);
        }

        StartCoroutine(CardSelectTileRoutine(tiles, SelectTileFunction));
    }
 public void CardSelectTile(RangeDefined range, SelectTileDel SelectTileFunction)
 {
     CardSelectTile(Coords(), range, SelectTileFunction);
 }