Esempio n. 1
0
        private void OnInitializationStateEnter()
        {
            var cellCreator = new DefaultCellCreator();
            var itemCreator = new DefaultItemCreator(App.Instance.StaticDataProvider);
            var xLength     = LevelData.Cells.GetLength(0);
            var yLength     = LevelData.Cells.GetLength(1);

            Cells = new Cell[xLength, yLength];

            for (var x = 0; x < xLength; x++)
            {
                for (var y = 0; y < yLength; y++)
                {
                    var cellType = LevelData.Cells[x, y];
                    var position = new Vector2Int(x, y);
                    var cell     = cellCreator.Create(cellType, transform, position);

                    if (cellType != CellType.Obstacle)
                    {
                        var randomItem = itemCreator.CreateRandom(cell.transform);
                        randomItem.OnMove += OnItemDragged;
                        cell.SetItem(randomItem);
                    }

                    Cells[x, y] = cell;
                }
            }

            Camera.main.transform
            .SetXPosition((xLength - 1) / 2f)
            .SetYPosition((yLength - 1) / 2f);

            SetState(CellsFieldState.DestroyingMatches);
        }
Esempio n. 2
0
        private void SpawnNewItems()
        {
            var itemCreator = new DefaultItemCreator(App.Instance.StaticDataProvider);
            var spawnCells  = Cells.GetByType(CellType.SpawnPoint);

            foreach (var spawnCell in spawnCells)
            {
                if (spawnCell.Item != null)
                {
                    continue;
                }

                var item = itemCreator.CreateRandom(spawnCell.transform);
                item.OnMove += OnItemDragged;
                spawnCell.SetItem(item);
            }
        }