Example #1
0
    public IEnumerator CheckLineClear() //int
    {
        int lines = 0;

        List <int> rows    = GetFullLines(rowSum, ref lines);
        List <int> columns = GetFullLines(columnSum, ref lines);

        foreach (int row in rows)
        {
            rowSum[row] = 0;
            lineSum.UpdateColumnAndRowText(false, row, 0);

            for (int x = 0; x < gridManager.Width; x++)
            {
                columnSum[x] -= gridManager.GetCellValue(x, row);
                lineSum.UpdateColumnAndRowText(true, x, columnSum[x]);
                gridManager.ClearCell(x, row);
            }
        }

        foreach (int column in columns)
        {
            columnSum[column] = 0;
            lineSum.UpdateColumnAndRowText(true, column, 0);

            for (int y = 0; y < gridManager.Height; y++)
            {
                rowSum[y] -= gridManager.GetCellValue(column, y);
                lineSum.UpdateColumnAndRowText(false, y, rowSum[y]);
                gridManager.ClearCell(column, y);
            }
        }

        Debug.Log(lines);
        linesCleared += lines;

        if (lines != 0)
        {
            IEnumerator next = effectsController.LineClearAnim(rows, columns);

            while (next.MoveNext())
            {
                yield return(null);
            }

            next = CheckLineClear();

            while (next.MoveNext())
            {
                yield return(null);
            }
        }

        yield break;
    }