void Update() { if (!firstPhasedEnded && GameIsOn) { time += Time.deltaTime; timeSpawn += Time.deltaTime; if (time > timePreBoss) { firstPhasedEnded = true; Vector3 pos = Vector3.zero; pos.x = 30; GameObject newBoss = Instantiate(boss1, pos, Quaternion.identity); if (configLoaded) { newBoss.GetComponentInChildren <boss1_ia>().InitWithConf(newconfigClass); } } else { if (timeSpawn > timeSpawnEnnemy) { ennemyFactory.createEnnemy(); /* * Vector3 pos = getSpawnEnnemyPosition(); * Instantiate(ennemy, pos, Quaternion.identity);*/ timeSpawn = 0f; } } } if (!GameIsOn) { timeOver += Time.deltaTime; if (timeOver > timeOverLimit) { if (isVictory && (currentLvl != listOfXMLLevel.Count - 1)) { currentLvl++; try { newconfigClass = XmlHelpers.DeserializeFromXML <configClass>(listOfXMLLevel[currentLvl]); timeOverLimit = newconfigClass.timeOverLimit; timePreBoss = newconfigClass.timePreBoss; timeSpawnEnnemy = newconfigClass.timeSpawnEnnemy; configLoaded = true; Debug.Log("Fichier de conf chargé"); } catch (System.Exception exception) { Debug.LogError("Pas de fichier de conf" + exception); } reset(); } else { SceneManager.LoadScene(0); } } } }
// Update is called once per frame void FixedUpdate() { if (!phase1ended) { if (gameObject.transform.position.x > zoneWait1X) { Vector3 movement = Vector3.left * speed * Time.deltaTime; gameObject.transform.position = gameObject.transform.position + movement; if (gameObject.transform.position.x < zoneWait1X) { Vector3 pos = gameObject.transform.position; pos.x = zoneWait1X; gameObject.transform.position = pos; } } else if (shieldColor.a > 0) { shieldColor.a -= Time.deltaTime; if (shieldColor.a <= 0) { shieldColor.a = 0; invulnerability = false; timerShoot = 0; } shield.GetComponent <SpriteRenderer>().color = shieldColor; } else { timerShoot += Time.deltaTime; if (timerShoot > waitShootPhase1) { float angle; Vector3 axe; gameObject.transform.rotation.ToAngleAxis(out angle, out axe); if (axe.z > 0) { if (angle >= 0 && angle < 72) { bulletFactory.createBullet(BulletType.boss, shotspawn2.transform.position); bulletFactory.createBullet(BulletType.boss, shotspawn3.transform.position); } if (angle >= 72 && angle < 140) { bulletFactory.createBullet(BulletType.boss, shotspawn3.transform.position); bulletFactory.createBullet(BulletType.boss, shotspawn4.transform.position); } if (angle >= 140) { bulletFactory.createBullet(BulletType.boss, shotspawn4.transform.position); bulletFactory.createBullet(BulletType.boss, shotspawn5.transform.position); } } else if (axe.z < 0) { if (angle >= 143) { bulletFactory.createBullet(BulletType.boss, shotspawn4.transform.position); bulletFactory.createBullet(BulletType.boss, shotspawn5.transform.position); } if (angle < 143 && angle >= 72) { bulletFactory.createBullet(BulletType.boss, shotspawn5.transform.position); bulletFactory.createBullet(BulletType.boss, shotspawn1.transform.position); } if (angle < 72 && angle >= 0) { bulletFactory.createBullet(BulletType.boss, shotspawn1.transform.position); bulletFactory.createBullet(BulletType.boss, shotspawn2.transform.position); } } timerShoot = 0f; } } } else if (!phase2ended) { if (!prephase2ended) { if (shieldColor.a < 1) { shieldColor.a += Time.deltaTime; if (shieldColor.a > 1) { shieldColor.a = 1; prephase2ended = true; } shield.GetComponent <SpriteRenderer>().color = shieldColor; } else { prephase2ended = true; } } else if (gameObject.transform.position.y < zoneWait2Y) { Vector3 movement = Vector3.up * speed * Time.deltaTime; gameObject.transform.position = gameObject.transform.position + movement; if (gameObject.transform.position.y > zoneWait2Y) { Vector3 pos = gameObject.transform.position; pos.y = zoneWait2Y; gameObject.transform.position = pos; } } else if (shieldColor.a > 0) { shieldColor.a -= Time.deltaTime; if (shieldColor.a <= 0) { shieldColor.a = 0; invulnerability = false; timerShoot = 0; } shield.GetComponent <SpriteRenderer>().color = shieldColor; } else { timerShoot += Time.deltaTime; if (timerShoot > waitShootPhase2) { ennemyFactory.createEnnemy(); /* * Vector3 pos = gameManager.getSpawnEnnemyPosition(); * Instantiate(ennemy, pos, Quaternion.identity);*/ timerShoot = 0f; } } } else if (!phase3ended) { if (!prephase3ended) { if (shieldColor.a < 1) { shieldColor.a += Time.deltaTime; if (shieldColor.a > 1) { shieldColor.a = 1; prephase3ended = true; } shield.GetComponent <SpriteRenderer>().color = shieldColor; } else { prephase3ended = true; } } else if (gameObject.transform.position.y > zoneWait3Y) { Vector3 movement = Vector3.down * speed * Time.deltaTime; gameObject.transform.position = gameObject.transform.position + movement; if (gameObject.transform.position.y < zoneWait3Y) { Vector3 pos = gameObject.transform.position; pos.y = zoneWait3Y; gameObject.transform.position = pos; } } else if (shieldColor.a > 0) { shieldColor.a -= Time.deltaTime; if (shieldColor.a <= 0) { shieldColor.a = 0; invulnerability = false; timerShoot = 0; } shield.GetComponent <SpriteRenderer>().color = shieldColor; } else { timerShoot += Time.deltaTime; if (timerShoot > waitShootPhase3) { waitShootPhase3Count++; bulletFactory.createBullet(BulletType.boss, shotspawn1.transform.position); bulletFactory.createBullet(BulletType.boss, shotspawn2.transform.position); bulletFactory.createBullet(BulletType.boss, shotspawn3.transform.position); bulletFactory.createBullet(BulletType.boss, shotspawn4.transform.position); bulletFactory.createBullet(BulletType.boss, shotspawn5.transform.position); timerShoot = 0f; if (waitShootPhase3Count >= 5) { ennemyFactory.createEnnemy(); /* * Vector3 pos = gameManager.getSpawnEnnemyPosition(); * Instantiate(ennemy, pos, Quaternion.identity);*/ waitShootPhase3Count = 0; } } } } else { if (explosion.GetComponent <Animator>().GetCurrentAnimatorStateInfo(0).normalizedTime >= 0.99f) { GameObject.FindGameObjectWithTag("gameManager").GetComponent <gameManager>().endGame(true); gameObject.GetComponent <destroy>().destroyObject(); } else if (explosion.GetComponent <Animator>().GetCurrentAnimatorStateInfo(0).normalizedTime >= 0.3f) { gameObject.GetComponent <SpriteRenderer>().enabled = false; if (!powerUpPoped) { Instantiate(powerUp1, gameObject.transform.position + Vector3.up, Quaternion.identity); Instantiate(powerUp2, gameObject.transform.position + Vector3.down, Quaternion.identity); Instantiate(powerUp3, gameObject.transform.position + Vector3.left, Quaternion.identity); Instantiate(powerUp4, gameObject.transform.position + Vector3.right, Quaternion.identity); powerUpPoped = true; } } } }