void newWave() { Debug.Log("new totem wave !"); totemWave++; if (totemWave > waves.Length) { finalBoss(); } else { for (int i = 0; i < waves[totemWave].repartition.Length; i++) { for (int k = 0; k < waves[totemWave].repartition[i]; k++) { //determine if sticky or not bool sticky = false; if (waves[totemWave].sticky > 0) { if (waves[totemWave].good + waves[totemWave].bad - i > waves[totemWave].sticky) { sticky = true; waves[totemWave].sticky--; } else { sticky = Random.Range(0, waves[totemWave].good + waves[totemWave].bad) < waves[totemWave].sticky ? true : false; } } //determine if we pick a good or bad one bool polarity = false; if (waves[totemWave].good > 0) { polarity = Random.Range(0, 1) > 0.5 ? false : true; if (polarity) { waves[totemWave].good--; } } //determine angle float angle = (i * 360 / waves[totemWave].repartition.Length) + (k * 13); TotemObject totem = new TotemObject(firePos.position, i, angle, polarity, sticky); spawnTotem(totem); } } } }
void spawnTotem(TotemObject totem) { // TotemObject totem = new TotemObject(firePos.position, i, false); GameObject Totem; if (totem.polarity) { Totem = Instantiate(totem_good, totem.position, totem.rotation); } else { Totem = Instantiate(totem_bad, totem.position, totem.rotation); } Totem.GetComponent <TotemInstance>().angle = totem.angle; Totem.GetComponent <TotemInstance>().radius = totem.radius; Totem.GetComponent <TotemInstance>().id = totem.id; Totem.GetComponent <TotemInstance>().polarity = totem.polarity; gameManager.addTotemToList(totem); // Debug.Log(totemsAlive.Count); }
public static void addTotemToList(TotemObject totem) { totemsAlive.Add(totem); }