private void OnTriggerEnter(Collider other) { if (!isStable && other.CompareTag("Enemy")) { bool broke = false; EnemyBossEx3 emil = other.GetComponent <EnemyBossEx3>(); if (emil != null && emil.IsAbleToBreak) { broke = true; } EnemyFinalEx3 emilFinal = other.GetComponent <EnemyFinalEx3>(); if (emilFinal != null) { broke = true; } if (broke) { if (MapEx3.instance.IsMoving) { MoveUp(); } else { MoveDown(); } } } }
//Final IEnumerator FinalPhase() { if (isFinalEntered) { if (!SoundManager.instance.IsPlaying) { currentBgm = 1; SoundManager.instance.PlayBgm(bgms[currentBgm], 2f); SoundManager.instance.SetBgmLoop(BGM_LOOP_POINT[currentBgm], BGM_LOOP_LENGTH[currentBgm]); } } else { isFinalEntered = true; if (currentBgm != 1) { currentBgm = 1; SoundManager.instance.PlayBgm(bgms[currentBgm], 6f); SoundManager.instance.SetBgmLoop(BGM_LOOP_POINT[currentBgm], BGM_LOOP_LENGTH[currentBgm]); } yield return(new WaitForSeconds(5f)); map.MoveIn(0); map.MoveIn(1); map.MoveIn(2); yield return(new WaitForSeconds(4f)); PlatformStop(); foreach (EnemyBossEx3 emil in emils) { emil.StartLand(24f, 2); } yield return(new WaitForSeconds(4f)); HUDManager.instance.ShowMessages(Message.GetMessages(finalMessage)); yield return(new WaitForSeconds(20f)); foreach (EnemyBossEx3 emil in emils) { emil.Burst(); } SoundManager.instance.PlayEfx(Efx.DEATH_ENEMY, Vector3.zero); } Vector3 position = new Vector3(0f, 0f, 3f); emilFinal = EnemyManager.instance.SetEnemy(finalPrefab, position); emilFinal.healthPoint = (int)BOSS_HP_FINAL; HUDManager.instance.AddHPBar(BOSS_ID_FINAL, "????", 0.5f, 0.1f, 0.6f); HUDManager.instance.ShowHPBar(BOSS_ID_FINAL); yield return(new WaitForSeconds(3f)); map.SetAllUnstable(); emilFinal.StartCountDown(); while (emilFinal.IsInBattle) { HUDManager.instance.SetHP(999, emilFinal.healthPoint / BOSS_HP_FINAL); yield return(null); } HUDManager.instance.SetHP(BOSS_ID_FINAL, 0f); map.SetAllStable(); yield return(new WaitForSeconds(5f)); HUDManager.instance.HideHPBar(BOSS_ID_FINAL); PlatformDown(160f, 6f); map.MoveInHouse(10f); yield return(new WaitForSeconds(10f)); map.DestroyFloors(); PlatformStop(0f); }