Esempio n. 1
0
        public Mino CreateMino(int x, int y, MinoColorsEnum color)
        {
            CheckIfPositionValid(x, y);

            if (Grid[x, y] != null)
            {
                throw new ArgumentException($"Existing cell found at passed coordinates ({x}, {y}).");
            }

            var result = new Mino(color);

            Grid[x, y] = result;
            OnMinoAdded?.Invoke(new Vector2Int(x, y), result);
            return(result);
        }
Esempio n. 2
0
        public void ReplaceMino(int x, int y, Mino mino)
        {
            CheckIfPositionValid(x, y);

            if (mino == null)
            {
                DeleteMino(x, y);
                return;
            }
            if (Grid[x, y] != null)
            {
                DeleteMino(x, y);
            }

            Grid[x, y] = mino;
            OnMinoAdded?.Invoke(new Vector2Int(x, y), mino);
        }
Esempio n. 3
0
        public void PlaceMino(int x, int y, Mino mino)
        {
            CheckIfPositionValid(x, y);

            if (mino == null)
            {
                return;
            }

            if (Grid[x, y] != null)
            {
                throw new ArgumentException($"Existing cell found at passed coordinates ({x}, {y}).");
            }

            Grid[x, y] = mino;
            OnMinoAdded?.Invoke(new Vector2Int(x, y), mino);
        }
Esempio n. 4
0
 public void ReplaceMino(Vector2Int position, Mino mino)
 {
     ReplaceMino(position.x, position.y, mino);
 }
Esempio n. 5
0
        private bool OverlapsWithFallenBlocks(Vector2Int position)
        {
            Mino cellAtPosition = grid.GetCell(position);

            return(cellAtPosition != null && !currentTetramino.Minos.Contains(cellAtPosition));
        }