Ejemplo n.º 1
0
    public void FixedUpdate()
    {
        float deltaTime = Time.deltaTime;

        m_stageTime += deltaTime;
        m_bUserDie   = m_playerInfo.IsCharacterDie();
        if ((m_iKillMonsterCount >= m_iMaxMonsterNum) && m_endUI.activeSelf == false)
        {
            m_stageUI.SetActive(false);
            m_bStageSuccess = true;
            StageEnd();
            m_endUI.SetActive(true);
            EndUIActive();
            m_playerCrowdControl.PlayerStateClear();
            StageAudioManager.Inst.PlayAudioStateEnd(true);
        }
        else if (m_bUserDie && m_endUI.activeSelf == false)
        {
            m_stageUI.SetActive(false);
            StageEnd();
            m_endUI.SetActive(true);
            EndUIActive();
            m_playerCrowdControl.PlayerStateFail();
            StageAudioManager.Inst.PlayAudioStateEnd(false);
        }

        if (m_endUI.activeSelf == true && m_fRewardTime > 0)
        {
            m_fRewardTime -= Time.fixedDeltaTime;
            if (m_fRewardTime <= 0)
            {
                if (m_bStageSuccess)
                {
                    m_fPrevExp    = (float)PlayerDataManager.Inst.GetPlayerData().exp;
                    m_fPrevMaxExp = (float)PlayerDataManager.Inst.GetPlayerData().maxExp;
                    PlayerDataManager.Inst.PlusExp(StageDataManager.Inst.stageDataSO.MainStageData[(int)m_nowStageIndex].rewardExp);
                    m_fCurrentExp    = (float)PlayerDataManager.Inst.GetPlayerData().exp;
                    m_fCurrentMaxExp = (float)PlayerDataManager.Inst.GetPlayerData().maxExp;

                    PlayerDataManager.Inst.SavePlayerData(PlayerDataManager.PlayerData.DATA_ENUM.DATA_ENUM_GOLD,
                                                          StageDataManager.Inst.stageDataSO.MainStageData[(int)m_nowStageIndex].rewardGold);

                    //StageDataManager.Inst.SaveStageData();
                }

                m_rewardUI.SetActive(true);
                m_resultUiFail.SetActive(false);
                m_resultUiClear.SetActive(false);
                m_resultUiBG.SetActive(false);
                //StageEnd();

                UpdateMaxStage();
            }
        }


        if (m_rewardUI.activeSelf == true && m_bStageSuccess)
        {
            if (m_stageExpBar.fillAmount < ((float)m_fPrevExp + m_fRewardExp) / (float)m_fPrevMaxExp)
            {
                float tempSpeed = 0.3f;
                m_stageExpBar.fillAmount += tempSpeed * Time.fixedDeltaTime;
                m_stageExpText.text       = (Mathf.Round(m_stageExpBar.fillAmount * 10000) / 100).ToString();
                m_stageExpText.text      += "%";
            }

            if (m_stageExpBar.fillAmount >= 1)
            {
                m_fPrevExp               = m_fCurrentExp;
                m_fPrevMaxExp            = m_fCurrentMaxExp;
                m_stageExpBar.fillAmount = 0;
                m_fRewardExp             = 0;
                m_LevelUpUI.SetActive(true);
                SetPlayerInfoInUILevel();
                Invoke(nameof(LevelUpUIOff), 2f);
            }
        }
        UpdatePlayerUI();
    }