// Start is called before the first frame update void Start() { gManager = GameObject.Find("GameManager").GetComponent <D_GameManager>(); TextAsset WaveData = Resources.Load <TextAsset>("Waves"); string[] arrData = WaveData.text.Split('\n'); for (int i = 0; i < arrData.Length; i++) { string[] row = arrData[i].Split('\t'); WaveDataScript wData = new WaveDataScript(); int.TryParse(row[0], out wData.wave); int.TryParse(row[1], out wData.normalcount); int.TryParse(row[2], out wData.rocketcount); int.TryParse(row[3], out wData.catbosscount); int.TryParse(row[4], out wData.healercount); int.TryParse(row[5], out wData.multiballcount); int.TryParse(row[6], out wData.circlecount); int.TryParse(row[7], out wData.finalcount); Waves.Add(wData); } //Debug.Log(Waves[16].wave); yTime = YarnTimer; SpawningYarn = false; }
IEnumerator SpawnHealers(WaveDataScript data) { yield return(new WaitForSeconds(2f)); for (int i = 0; i < data.healercount; i++) { Instantiate(healerEnemyPrefab, new Vector3(Random.Range(SpawnXmin, SpawnXmax), 8, 0), Quaternion.identity); yield return(new WaitForSeconds(EnemySpawnDelay + 1f)); } yield return(null); }
IEnumerator SpawnEnemies() { WaveDataScript data = Waves[WaveNum]; if (data.wave == 0) { Debug.Log("WIN"); yield return(new WaitForSeconds(2f)); gManager.Win(); gManager.SetSpawn(false); yield return(null); } if (WaveNum >= 9 && !SpawningYarn) { SpawningYarn = true; StartCoroutine(SpawnYarn()); } StartCoroutine(SpawnHealers(data)); if (data.finalcount > 0) { Instantiate(FinalBossPrefab, new Vector3(0, 8, 0), Quaternion.identity); } for (int i = 0; i < data.normalcount; i++) { Instantiate(normalEnemyPrefab, new Vector3(Random.Range(SpawnXmin, SpawnXmax), 8, 0), Quaternion.identity); yield return(new WaitForSeconds(EnemySpawnDelay)); } for (int i = 0; i < data.rocketcount; i++) { Instantiate(rocketEnemyPrefab, new Vector3(Random.Range(SpawnXmin, SpawnXmax), 8, 0), Quaternion.identity); yield return(new WaitForSeconds(EnemySpawnDelay)); } for (int i = 0; i < data.circlecount; i++) { Instantiate(CircleEnemyPrefab, new Vector3(Random.Range(SpawnXmin, SpawnXmax), 8, 0), Quaternion.identity); yield return(new WaitForSeconds(EnemySpawnDelay + 3f)); } for (int i = 0; i < data.catbosscount; i++) { Instantiate(CatBossPrefab, new Vector3(Random.Range(SpawnXmin, SpawnXmax), 8, 0), Quaternion.identity); yield return(new WaitForSeconds(EnemySpawnDelay + 4f)); } for (int i = 0; i < data.multiballcount; i++) { Instantiate(MultiballBossPrefab, new Vector3(Random.Range(SpawnXmin, SpawnXmax), 8, 0), Quaternion.identity); yield return(new WaitForSeconds(EnemySpawnDelay + 4f)); } gManager.SetSpawn(false); yield return(null); }