liuzhiwei
2020-12-26 56d95fa59a9f6dc12d0fc0723ea449e5b317f994
Assets/Scripts/TowerDefense/UI/EndlessSettlement.cs
@@ -41,6 +41,10 @@
        public GameObject SettlementUI;
        public GameObject EffectPrefabObject;
        private GameObject effectObj;
        public void Init()
        {
            LazyLoad();
@@ -53,15 +57,12 @@
        /// </summary>
        public void ReturnToMainMenu()
        {
            if (GameConfig.IsNewbieGuideCompleted)
                GameConfig.IsNewbie = false;
            // 清空所有Tween数据:
            DOTween.Clear();
            EndlessUIStart.bFirstLoaded = false;
            EndlessUIStart.bGameStart = false;
            TowerPlacementGridEndless.GRID_OPENCASH = 100;
            TowerPlacementGridEndless.GRID_OPENCASH = 200;
            SafelyUnsubscribe();
            SceneManager.LoadScene(menuSceneName);
@@ -76,10 +77,69 @@
            if (EndlessGameUI.instance.state == EndlessGameUI.State.Building)
                EndlessGameUI.instance.CancelGhostPlacement();
            ShowGameOverPanel();
            //panelUI.SetPlayEffectAC(PlayEffect);
            //GameObject.Find("UICamera/BottomCanvas").GetComponent<Canvas>().enabled = false;
            RefreshFinalWave();
            RefreshPropList();
            SettlementUI.SetActive(true);
            EndlessUIStart.instance.GameOver();
            return;
            // RefreshFinalWave();
            // RefreshPropList();
            // SettlementUI.SetActive(true);
            // PlayEffect();
        }
        private void ShowGameOverPanel()
        {
            EndlessRandomTower.instance.SetCountDown(false);
            EndlessRandomTower.instance.SetPS(false);
            GameObject go = Instantiate(Resources.Load<GameObject>("Prefabs/GameOverPanel"), GameObject.Find("UICamera/BottomCanvas").transform);
            EventCenter.Ins.Add((int)KTGMGemClient.EventType.GameOverEnd, GameOverEnd);
        }
        private void GameOverEnd()
        {
            EventCenter.Ins.Remove((int)KTGMGemClient.EventType.GameOverEnd, GameOverEnd);
            ShowFinalPanel();
        }
        private void ShowFinalPanel()
        {
            GameObject go = Instantiate(Resources.Load<GameObject>("UI/Final/FinalPanel"), GameObject.Find("UICamera/BottomCanvas").transform);
            FinalPanel panelUI = go.GetComponent<FinalPanel>();
            int level = EndlessLevelManager.instance.CurrentLevel;
            int wave = EndlessLevelManager.instance.WaveManager.CurrentWaveIndex;
            if (GameConfig.IsNewbieStart)
            {
                //panelUI.SetData($"{EndlessLevelManager.instance.CurrentLevel - EndlessPortData.NewbieTotalLevel}关 {EndlessLevelManager.instance.WaveManager.CurrentWaveIndex}波", EndlessScoreData.CurrentSocre);
                level = EndlessLevelManager.instance.CurrentLevel - EndlessPortData.NewbieTotalLevel;
                Debug.Log($"新手开始玩的,实际关卡:{EndlessLevelManager.instance.CurrentLevel}  新手关卡:{EndlessPortData.NewbieTotalLevel}");
            }
            else
            {
                //panelUI.SetData($"{EndlessLevelManager.instance.CurrentLevel}关 {EndlessLevelManager.instance.WaveManager.CurrentWaveIndex}波", EndlessScoreData.CurrentSocre);
            }
            panelUI.SetData($"{level}关 {wave}波", EndlessScoreData.CurrentSocre);
            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessCompletedPort, level, wave);
        }
        private void PlayEffect()
        {
            if (effectObj == null)
            {
                effectObj = Instantiate(EffectPrefabObject);
                GameObject particleSystemObject = GameObject.Find("ParticleSystemObject");
                effectObj.transform.SetParent(particleSystemObject.transform, false);
                effectObj.transform.localPosition = new Vector3(0, -51.6f, 36.6f);
                effectObj.transform.localScale = new Vector3(6, 6, 6);
            }
            ParticleSystem ps = effectObj.transform.GetChild(0).GetComponent<ParticleSystem>();
            ps.Play();
        }
        /// <summary>
@@ -87,11 +147,32 @@
        /// </summary>
        protected void Victory()
        {
            ++GameConfig.GameCompletedCount;
            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessLevelCompleted);
            EndlessUIStart.instance.Pause();
            ShowPanel();
            // int showFavorite = PlayerPrefs.GetInt("GemBattleFavorite");
            // if (showFavorite == 0)
            // {
            //     GameObject go = Instantiate(Resources.Load<GameObject>("UI/Favorite/FavoritePanel"), this.transform.parent.parent);
            //     FavoritePanelUI panelUI = go.GetComponent<FavoritePanelUI>();
            //     panelUI.SetAC(ShowPanel);
            // }
            // else
            // {
            //     ShowPanel();
            // }
        }
        private void ShowPanel()
        {
            OpenEndGameScreen(true);
            if (VictoryAudio != null && AudioSource != null)
                AudioSource.PlayOneShot(VictoryAudio);
            // if (VictoryAudio != null && AudioSource != null)
            //     AudioSource.PlayOneShot(VictoryAudio);
        }
        /// <summary>
@@ -110,7 +191,8 @@
        protected void SafelyUnsubscribe()
        {
            LazyLoad();
            levelManager.LevelCompleted -= Victory;
            if (levelManager != null)
                levelManager.LevelCompleted -= Victory;
        }
        /// <summary>
@@ -132,7 +214,7 @@
            int level = EndlessLevelManager.instance.CurrentLevel;
            int wave = EndlessLevelManager.instance.WaveManager.CurrentWaveIndex;
            FinalWaveText.text = $"最终波次:第{level}关,第{wave}波";
            FinalWaveText.text = $"第{level}关,第{wave}波";
        }
        private void RefreshPropList()