From 56d95fa59a9f6dc12d0fc0723ea449e5b317f994 Mon Sep 17 00:00:00 2001 From: liuzhiwei <liuzhiwei@qq.com> Date: Sat, 26 Dec 2020 14:05:00 +0800 Subject: [PATCH] Merge branch 'master' of http://47.95.218.140:8090/r/GemBattle into master --- Assets/Scripts/TowerDefense/UI/EndlessSettlement.cs | 104 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 93 insertions(+), 11 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/EndlessSettlement.cs b/Assets/Scripts/TowerDefense/UI/EndlessSettlement.cs index 07b0ea3..b6f1ab3 100644 --- a/Assets/Scripts/TowerDefense/UI/EndlessSettlement.cs +++ b/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() -- Gitblit v1.9.1