IEnumerator Phase2Attack() { if (coll.transform.position.x > 13 || coll.transform.position.x < -13) { direction = -1 * direction; if (!halfHp) { if (UnityEngine.Random.value < .5) { stage = FightingStages.Phase2; } else { stage = FightingStages.Phase1; } StopAllCoroutines(); } } if (halfHp) { if (coll.transform.position.y > 9.5) { direction2 = UnityEngine.Random.Range(-1f, -.4f); } if (coll.transform.position.y < -9.5) { direction2 = UnityEngine.Random.Range(.4f, 1f); } counterUntilPhaseChange += Time.deltaTime; if (counterUntilPhaseChange > phase2Length) { counterUntilPhaseChange = 0; if (UnityEngine.Random.value < .5) { stage = FightingStages.Phase2; } else { stage = FightingStages.Phase1; } StopAllCoroutines(); } } for (int i = 0; i < BossSpawns.Length; i++) { yield return(new WaitForSeconds(1f)); Instantiate(Shot, BossSpawns[i].gameObject.transform.position, BossSpawns[i].gameObject.transform.rotation); } //counterUntilPhaseChange++; }
IEnumerator Phase1Attack() { if (coll.transform.position.x > 13 || (coll.transform.position.x < -13)) { direction = -1 * direction; if (!halfHp) { if (UnityEngine.Random.value < .5) { stage = FightingStages.Phase2; } else { stage = FightingStages.Phase1; } StopAllCoroutines(); } } if (halfHp) { if (coll.transform.position.y > 9.5) { direction2 = UnityEngine.Random.Range(-1f, -.4f); } if (coll.transform.position.y < -9.5) { direction2 = UnityEngine.Random.Range(.4f, 1f); } counterUntilPhaseChange += Time.deltaTime; if (counterUntilPhaseChange > phase2Length) { counterUntilPhaseChange = 0; if (UnityEngine.Random.value < .5) { stage = FightingStages.Phase2; } else { stage = FightingStages.Phase1; } StopAllCoroutines(); } } //theBoss.transform.Translate(direction*speed * Time.deltaTime, 0, 0); yield return(new WaitForSeconds(1f)); Instantiate(Shot, shotSpawn.position, shotSpawn.rotation); //counterUntilPhaseChange++; }