public WaveManager(IEnemyGenerator enemyGenerator, WaveConfiguration[] waveConfigurations, CoroutinesWrapper coroutinesWrapper, SignalBus bus)
        {
            this.enemyGenerator     = enemyGenerator;
            this.waveConfigurations = waveConfigurations;
            this.coroutinesWrapper  = coroutinesWrapper;

            bus.Subscribe <EnemyState.EnemyHealthChanged>(this.OnEnemyHealthChanged);
        }
        public SpawnManager(IEnemyGenerator enemyGenerator, CoroutinesWrapper coroutinesWrapper)
        {
            this.spawnPoints = GameObject.FindGameObjectsWithTag(SpawnPointTag).Select(g => g.transform).ToArray();
            this.spawnQueue  = new Queue <GameObject>();
            coroutinesWrapper.StartCoroutine(this.WaitForSpawn());

            this.enemyGenerator = enemyGenerator;
        }
Example #3
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        IEnemyGenerator generator = collision.gameObject.GetComponent <IEnemyGenerator>();

        if (generator != null)
        {
            generator.SpawnEnemy();
        }
    }
 public EnemyController(IEnemyGenerator enemyGenerator)
 {
     _enemyGenerator = enemyGenerator;
 }