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