예제 #1
0
    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();
                }
            }
        }
    }
예제 #2
0
    //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);
    }