From 0ff8f9bc2818c3171305c7242adf586f0f7991b5 Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Fri, 11 Dec 2020 14:44:22 +0800 Subject: [PATCH] 精灵升级弹出界面 --- Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs | 55 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 43 insertions(+), 12 deletions(-) diff --git a/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs b/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs index 8b7f252..1416840 100644 --- a/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs +++ b/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs @@ -193,9 +193,9 @@ public int SelectBuffNeddLevels { get; set; } /// <summary> - /// buff是否选择完成 + /// 弹框完成 /// </summary> - private bool isBuffSelectCompleted = true; + private bool isPopDone = true; /// <summary> /// 新手第一关是否完成 @@ -212,6 +212,8 @@ private float tunelLength; private List<Vector3> homeBasePositionList; + + private ElfUpgrade elfPanelUpgrade; /// <summary> /// 根据赛道id(1~5)获得基地坐标 @@ -375,6 +377,7 @@ { EndlessBuffSelect.instance.BuffSelectCompleted += OnBuffSelectCompleted; EndlessGameUI.instance.GameOverEvent += SafelyCallLevelCompleted; + EventCenter.Ins.Add((int)KTGMGemClient.EventType.ElfUpgradePanelClosed, ElfUpgradePanelClosed); homeBasePositionList = new List<Vector3>(); tunelLength = Mathf.Abs(StartingNodeList[0].transform.position.z - EndNodeList[0].transform.position.z); @@ -402,10 +405,9 @@ CurrencyGainer.Tick(Time.deltaTime); } - // buff选择完成,开始波次 - if (!isBuffSelectCompleted) + if (!isPopDone) { - isBuffSelectCompleted = true; + isPopDone = true; if (CurrentLevel > startLevel) WaveManager.InitPort(CurrentLevel); EndlessUIStart.instance.Restart(); @@ -531,7 +533,7 @@ private void BeginLevel() { if (EndlessGameUI.instance.state == EndlessGameUI.State.GameOver) return; - + EndlessBossCtrl.instance.ClearBoss(); if (CurrentLevel == startLevel) @@ -541,13 +543,27 @@ { // buff池的初始化要从正式关卡算起,不算新手关 EndlessBuffData.InitEndlessBuffPool(GameConfig.IsNewbieStart ? CurrentLevel - EndlessPortData.NewbieTotalLevel : CurrentLevel); - ShowSelectBuffUI(); + PopUpPanel(); } else { EndlessUIStart.instance.Restart(); WaveManager.StartWaves(CurrentLevel); } + } + + /// <summary> + /// 弹出面板 + /// </summary> + private void PopUpPanel() + { + EndlessUIStart.instance.Pause(); + int level = WaveManager.WaveData[0].Config.evolution_lv; + + if (level > 0) + ShowElfUpgradePanel(level); + else + ShowSelectBuffUI(); } /// <summary> @@ -560,27 +576,42 @@ if (list.Count == 0) { - isBuffSelectCompleted = false; + isPopDone = false; return; } - EndlessUIStart.instance.Pause(); EndlessBuffSelect.instance.Refresh(list); EndlessBuffSelect.instance.ShowBuffUI(); } + private void ShowElfUpgradePanel(int level) + { + GameObject elfUpgradeObj = Instantiate(Resources.Load<GameObject>("UI/ElfUpgrade/ElfUpgradePanel"), GameObject.Find("UICamera/BottomCanvas/Panel").transform); + elfPanelUpgrade = elfUpgradeObj.GetComponent<ElfUpgrade>(); + elfPanelUpgrade.SetUpgradeLevel(level); + } + /// <summary> - /// buff选择完成p + /// buff选择完成 /// </summary> /// <param name="index"></param> - public void OnBuffSelectCompleted(int index) + private void OnBuffSelectCompleted(int index) { - isBuffSelectCompleted = false; + isPopDone = false; EndlessBuffManager.instance.AddBuff(EndlessBuffData.GetBuffByIndex(index)); EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessBuffRefresh); } /// <summary> + /// 关闭了精灵升级界面 + /// </summary> + private void ElfUpgradePanelClosed() + { + isPopDone = false; + EndlessGameUI.instance.UpgradeAllTowerMinLevel(elfPanelUpgrade.GetUpgradeLevel() - 1); + } + + /// <summary> /// Changes the state and broadcasts the event /// </summary> /// <param name="newState">The new state to transitioned to</param> -- Gitblit v1.9.1