private IEnumerator SpawnAllEnemiesInWave(WaveConfigurator waveConfigurator) { var numberOfEnemiesInWave = waveConfigurator.GetNumberOfEnemies(); for (int i = 0; i < numberOfEnemiesInWave; i++) { var newEnemy = Instantiate( waveConfigurator.GetEnemyPrefab(), waveConfigurator.GetWaypoints()[0].transform.position, waveConfigurator.GetEnemyPrefab().transform.rotation); newEnemy.GetComponent <Enemy>().SetWaveConfig(waveConfigurator); yield return(new WaitForSeconds(waveConfigurator.GetTimeBetweenSpawns())); } }
// When the enemy is spawned, pull all the settings from the WaveConfigurator for the current wave public void SetWaveConfig(WaveConfigurator waveConfig) { this.waveConfigurator = waveConfig; waypoints = waveConfigurator.GetWaypoints(); transform.position = waypoints[0].transform.position; enemyHealth = waveConfigurator.GetEnemyHealth(); collisionDamage = waveConfigurator.GetEnemyCollisionDamage(); turningSpeed = waveConfigurator.GetEnemyTurningSpeed(); firingSpeed = waveConfigurator.GetEnemyFiringSpeed(); enemyIsAimer = waveConfigurator.GetEnemyAimer(); aimingSpeed = waveConfigurator.GetEnemyAimingSpeed(); projectileSpeed = waveConfigurator.GetEnemyProjectileSpeed(); projectileDamage = waveConfigurator.GetEnemyProjectileDamage(); projectilePrefab = waveConfigurator.GetEnemyProjectilePrefab(); scoreValue = waveConfigurator.GetEnemyScoreValue(); playerObject = GameObject.Find("Player").gameObject; gameSession = GameObject.Find("GameSession").gameObject.GetComponent <GameSession>(); GetComponentInChildren <EnemyWeapon>().SetEnemyWeapon(waveConfig); GetComponent <DamageDealer>().SetDamage(collisionDamage); }