Exemplo n.º 1
0
        private (List <FormationCell> cells, Queue <IncomingWaveQueueItem> waves) BuildFormation(List <FormationLineSettings> enemiesLines,
                                                                                                 int maxRowsCount)
        {
            var incomingWaves = new Queue <IncomingWaveQueueItem>();
            var allCells      = new List <FormationCell>(enemiesLines.Sum(line => line.EnemiesInLine));

            for (var lineIndex = 0; lineIndex < enemiesLines.Count; lineIndex++)
            {
                var line  = enemiesLines[lineIndex];
                var cells = Enumerable.Range(0, line.EnemiesInLine)
                            .Select(columnIndex =>
                                    FormationCell.Create(transform, lineIndex, columnIndex, enemiesLines.Count, line.EnemiesInLine, maxRowsCount))
                            .ToList();
                allCells.AddRange(cells);
                incomingWaves.Enqueue(new IncomingWaveQueueItem(line, cells));
            }

            return(allCells, incomingWaves);
        }
Exemplo n.º 2
0
        public EnemyShip Spawn(FormationCell cell, EnemyType enemyType)
        {
            var pool = SelectPool(enemyType);

            return(pool.Spawn(cell.transform, _levelSettings));
        }