// Update is called once per frame void Update() { MoveUsingDFS mus = gameObject.GetComponent <MoveUsingDFS> (); if (mus.i % 3 == 0 && mus.stop) { if ((mus.i + 3) < mus.wayPoints.Count) { int n = mus.i + Random.Range(1, 3); selectEnemy = Random.Range(0, minions.Length); GameObject eO = (GameObject)Instantiate(minions[selectEnemy], mus.wayPoints[n].transform.position, Quaternion.identity); NewSpawnWaves nsw = GameObject.FindGameObjectWithTag("GameController").GetComponent <NewSpawnWaves>(); nsw.numEnemiesRemaining++; //eO.GetComponent<EnemyStats>().mSpeed = eO.GetComponent<EnemyStats>().mSpeed; //eO.GetComponent<EnemyStats>().mHealth = eO.GetComponent<EnemyStats>().mHealth; MoveUsingDFS mud = eO.GetComponent <MoveUsingDFS>(); mud.wayPoints = gameObject.GetComponent <MoveUsingDFS>().wayPoints; mud.fromSpawner = true; mud.i = n; } } }
void SpawnEnemy() { if (numEnemies > 0) { if (spawnDuration <= 0.0f) { if (selectEnemy < enemy.Length - 1) { Instantiate(enemy[selectEnemy], startPoint, Quaternion.identity); } else { Instantiate(enemy[selectEnemy], new Vector3(Random.Range(85.0f, 100.0f), Random.Range(0, 20), Random.Range(-50, 50)), Quaternion.identity); } numEnemies--; numEnemiesRemaining++; //Debug.Log (numEnemiesRemaining); spawnDuration = spawnTime; } spawnDuration -= Time.deltaTime; //Debug.Log(numEnemies); } else { selectEnemy = Random.Range(0, enemy.Length); numEnemies = initEnemies; spawnDuration = 7.0f; } if (waveNo == 1 || waveNo % 2 == 0) { if (newEnem > 0) { if (outsideSpawnDuration <= 0.0f) { newEnem--; Buy_Shoot_Modes bsm = theGC.GetComponent <Buy_Shoot_Modes>(); GameObject eO = (GameObject)Instantiate(enemyOut, new Vector3(95.0f, 0.0f, 15.0f), Quaternion.identity); MoveUsingDFS mud = eO.GetComponent <MoveUsingDFS>(); mud.wayPoints = bsm.thePath; Debug.Log(bsm.thePath.Count); numEnemiesRemaining++; outsideSpawnDuration = outSpawnTime; } outsideSpawnDuration -= Time.deltaTime; } else { newEnem = initEnemies / 2; outsideSpawnDuration = 7.0f; } } //i'll clean this up later and make it a function if (waveNo == 1 || waveNo % 3 == 0) { if (newEnem1 > 0) { if (outsideSpawnDuration1 <= 0.0f) { newEnem1--; Buy_Shoot_Modes bsm = theGC.GetComponent <Buy_Shoot_Modes>(); GameObject eO = (GameObject)Instantiate(enemyOut, new Vector3(95.0f, 0.0f, -45.0f), Quaternion.identity); MoveUsingDFS mud = eO.GetComponent <MoveUsingDFS>(); mud.wayPoints = bsm.thePath2; Debug.Log(mud.wayPoints.Count); numEnemiesRemaining++; outsideSpawnDuration1 = outSpawnTime1; } outsideSpawnDuration1 -= Time.deltaTime; } else { newEnem1 = initEnemies / 2; outsideSpawnDuration1 = 7.0f; } } }
IEnumerator SpawnOutsideWavesBottom(float waveDur, int enemyCount, float hMult, float sMult, float waveWaitTime, float spawnWaitTime) { Debug.Log("OUTSIDE WAVE BOTTOM"); yield return(new WaitForSeconds(startWait)); waveDur -= startWait; waveDur -= Time.deltaTime; while (waveDur >= 0) { yield return(new WaitForSeconds(waveWaitTime)); waveDur -= waveWaitTime; if (waveDur < 0) { break; } if (gameObject.GetComponent <Buy_Shoot_Modes>().gameover) { break; } for (int i = 0; i < enemyCount; i++) { numEnemiesRemaining++; int selectEnemy = 0; if (waveNo < 5) { selectEnemy = Random.Range(0, enemy.Length - 2); } else { selectEnemy = Random.Range(0, enemy.Length); } GameObject eO; if (selectEnemy < outEnemy.Length - 2) { eO = (GameObject)Instantiate(outEnemy[selectEnemy], new Vector3(95.0f, 0.0f, -45.0f), Quaternion.identity); } else { if (selectEnemy == outEnemy.Length - 1) { eO = (GameObject)Instantiate(outEnemy[selectEnemy], new Vector3(Random.Range(85.0f, 100.0f), Random.Range(15.0f, 20.0f), Random.Range(-50.0f, 50.0f)), Quaternion.identity); } else { eO = (GameObject)Instantiate(outEnemy[selectEnemy], new Vector3(Random.Range(85.0f, 100.0f), Random.Range(10.0f, 15.0f), Random.Range(-50, 50)), Quaternion.identity); } } eO.GetComponent <EnemyStats>().mSpeed = sMult * eO.GetComponent <EnemyStats>().mSpeed; eO.GetComponent <EnemyStats>().mHealth = hMult * eO.GetComponent <EnemyStats>().mHealth; if (selectEnemy < outEnemy.Length - 2) { Buy_Shoot_Modes bsm = theGC.GetComponent <Buy_Shoot_Modes>(); MoveUsingDFS mud = eO.GetComponent <MoveUsingDFS>(); mud.wayPoints = bsm.thePath2; } if (i == enemyCount / 2 || i == 1 || i == enemyCount - 2) { int chanceOfBoss = Random.Range(0, 9); if (chanceOfBoss == 0) { Debug.Log("THERE'S A BOSS INCOMING"); int selectBaws = Random.Range(0, boss.Length); if (selectBaws < boss.Length - 1) { GameObject eo = (GameObject)Instantiate(boss[selectBaws], new Vector3(95.0f, 0.0f, -45.0f), Quaternion.identity); Buy_Shoot_Modes bsm = theGC.GetComponent <Buy_Shoot_Modes>(); MoveUsingDFS mud = eo.GetComponent <MoveUsingDFS>(); mud.wayPoints = bsm.thePath2; numEnemiesRemaining += eo.GetComponent <BossBase> ().numEnemiesReq; } else { GameObject eo = (GameObject)Instantiate(boss[selectBaws], new Vector3(95.0f, 15.0f, -45.0f), Quaternion.identity); numEnemiesRemaining += eo.GetComponent <BossBase> ().numEnemiesReq; } } } yield return(new WaitForSeconds(spawnWaitTime)); waveDur -= spawnWaitTime; waveDur -= Time.deltaTime; if (waveDur < 0) { break; } if (gameObject.GetComponent <Buy_Shoot_Modes>().gameover) { break; } } } //waveCompleted++; }