public List <MediumAsteroid> GetMediumAsteroid(int count) { if (count <= 0) { throw new ArgumentException("Count must be higher than 0"); } List <MediumAsteroid> mediumAsteroids = new List <MediumAsteroid>(); for (int i = 0; i < _mediumAsteroids.Count && mediumAsteroids.Count < count; i++) { if (!_mediumAsteroids[i].IsActive()) { mediumAsteroids.Add(_mediumAsteroids[i]); } } if (mediumAsteroids.Count < count) { for (int i = mediumAsteroids.Count; i < count; i++) { MediumAsteroid mediumAsteroid = Instantiate(_mediumAsteroidPrefab); _mediumAsteroids.Add(mediumAsteroid); mediumAsteroids.Add(mediumAsteroid); } } return(mediumAsteroids); }
/// <summary> /// Splits the medium asteroid provided into n number of small asteroids /// </summary> public void SplitMediumAsteroid(MediumAsteroid asteroid) { for (int i = 0; i < asteroidSplitCount; i++) { asteroidPooler.SpawnFromPool(asteroidPooler.SmallPoolTag, asteroid.transform.position, levelManager.LevelColor); } // Return 'destroyed' asteroid to the pool asteroidPooler.ReturnToPool(asteroidPooler.MediumPoolTag, asteroid); explosion.Play(); }