public GameInitialization(Controllers controllers, Data data) { Camera camera = Camera.main; var inputInitialization = new InputInitialization(); var playerFactory = new PlayerFactory(data.Player); var playerInitialization = new PlayerInitialization(playerFactory, data.Player); var boundaries = new Boundaries(camera); var backgroundImage = new BackgroundMainImage(data); var dynamicStart = new BackgroundDynamicStars(data.LevelBackground); var weaponsListInitialization = new WeaponsListInit(data); var leftSpanPointInit = new SpawnPointsInit(data.SpawnPoints.LeftSpawnPoint); var centerSpanPointInit = new SpawnPointsInit(data.SpawnPoints.CenterpawnPoint); var rightSpanPointInit = new SpawnPointsInit(data.SpawnPoints.RightSpawnPoint); var viewServises = new ViewServices(); var leftEnemyPool = new EnemyPool(leftSpanPointInit.GetSpwanPoint(), data.EnemyPoolsData); var centerEnemyPool = new EnemyPool(centerSpanPointInit.GetSpwanPoint(), data.EnemyPoolsData); var rightEnemyPool = new EnemyPool(rightSpanPointInit.GetSpwanPoint(), data.EnemyPoolsData); ServiceLocator.SetService <IService>(leftEnemyPool); EnemyAddControllers(controllers, ServiceLocator.Resolve <IService>().GetPoolDictionary()); EnemyAddControllers(controllers, rightEnemyPool.GetPoolDictionary()); EnemyAddControllers(controllers, centerEnemyPool.GetPoolDictionary()); var activator = new EnemyActivator(leftEnemyPool, centerEnemyPool, rightEnemyPool, data); controllers.Add(new BackgroundStaticStars(data.LevelBackground)); controllers.Add(inputInitialization); controllers.Add(playerInitialization); controllers.Add(backgroundImage); controllers.Add(dynamicStart); controllers.Add(new BackgroundSpriteMover(backgroundImage.GetBackgroundImage(), dynamicStart.GetBackgroundStars(), data.LevelBackground.SpeedBackground, data.LevelBackground.SpeedSmallStars)); controllers.Add(new InputController(inputInitialization.GetInput())); controllers.Add(new MoveController(inputInitialization.GetInput(), playerInitialization.GetPlayer(), data.Player, boundaries.ScreenBounds)); controllers.Add(new ShootingController(playerInitialization.GetPlayer(), data, weaponsListInitialization, viewServises)); controllers.Add(activator); }
public EnemyActivator(EnemyPool leftPool, EnemyPool centerPool, EnemyPool rigthPool, Data data) { _leftPool = leftPool; _rigthPool = rigthPool; _centerPool = centerPool; _listOfEnemies = data.LevelsDatas[0].EnemyInfoList; _timerBetweenDifferentTypesOfShips = data.LevelsDatas[0].TimerForDifferentType; _timerBetweenSameTypeOfShips = data.LevelsDatas[0].TimerForSameType; _countOfSHips = _listOfEnemies[0].count; _pools = new List <EnemyPool>(); _pools.Add(_leftPool); _pools.Add(_centerPool); _pools.Add(_rigthPool); }
private void SetActiveShips(float deltatime, List <LevelsData.EnemyInfo> listOfEnemies, EnemyPool pool) { if (_timerBetweenSameTypeOfShips <= timeCount && nextInList < listOfEnemies.Count) { var enemy = pool.SpawnFromPool(listOfEnemies[nextInList].nameOfEnemy.name); enemy.gameObject.SetActive(true); _countOfSHips -= 1; timeCount = 0; if (_countOfSHips == 0) { nextInList += 1; if (nextInList < listOfEnemies.Count) { _countOfSHips = listOfEnemies[nextInList].count; } } } timeCount += deltatime; }