Beispiel #1
0
        public Controllers(Data data, IEnemySpawnEvent enemySpawnHandler, IGameStartEvent gameStartEventHandler, IGameOverEvent gameOverEventHandler)
        {
            var pcInputHorizontal = new PCInputHorizontal();
            var pcInputVertical   = new PCInputVertical();
            var pcInputFire       = new PCInputFire();

            IPlayerFactory playerFactory = new PlayerFactory(data.Player);
            var            player        = playerFactory.CreatePlayer();

            var enemiesPlaceHolder = new GameObject("enemiesPlaceHolder").transform;
            var bulletsPlaceHolder = new GameObject("bulletsPlaceHolder").transform;

            bulletsPlaceHolder.parent = enemiesPlaceHolder;

            Object.Instantiate(data.Enviroment.spaceParticle, enemiesPlaceHolder.transform);

            var enemies       = new CompositeMove();
            var enemyFactory  = new EnemyFactory();
            var bulletFactory = new BulletFactory();

            var controllers = new List <IExecute>
            {
                new InputController(pcInputHorizontal, pcInputVertical, pcInputFire),
                new MoveController(pcInputHorizontal, pcInputVertical, enemiesPlaceHolder, data.Player),
                new EnemyMoveController(enemies, player),
                new ShootController(pcInputFire, bulletFactory, data.Bullets, bulletsPlaceHolder),
                new EnemySpawnController(enemies, enemyFactory, data.Enemy, enemiesPlaceHolder, enemySpawnHandler),
            };

            _executeControllers = controllers.ToArray();
        }
Beispiel #2
0
        public EnemySpawnController(CompositeMove enemies,
                                    IEnemyFactory enemyFactory,
                                    EnemyData data,
                                    Transform enemiesPlaceHolder,
                                    IEnemySpawnEvent enemySpawnEventHandler)
        {
            _enemiesMove            = enemies;
            _data                   = data;
            _enemiesPlaceHolder     = enemiesPlaceHolder;
            _enemyFactory           = enemyFactory;
            _enemySpawnEventHandler = enemySpawnEventHandler;

            _enemiesPool = new EnemyProvider[_data.MaxEnemiesInPool];
        }