From bd0ba263761a866ca0d698169d2d83b6a11c35e7 Mon Sep 17 00:00:00 2001
From: CoderM <coderm@qq.com>
Date: Thu, 10 Dec 2020 17:04:37 +0800
Subject: [PATCH] CoderM: 增加SDKJSON处理

---
 Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs |  106 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 93 insertions(+), 13 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs b/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs
index 1b382f2..8b7f252 100644
--- a/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs
+++ b/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs
@@ -32,6 +32,43 @@
         /// </summary>
         public int CurrentLevel { get; set; } = 1;
 
+        private float dropRate;
+
+        /// <summary>
+        /// 当前金币掉率
+        /// </summary>
+        /// <value></value>
+        public float DropRate
+        {
+            get
+            {
+                return dropRate;
+            }
+            set
+            {
+                dropRate = value;
+                Debug.Log("设置了掉率" + dropRate);
+            }
+        }
+
+        private int dropCoin;
+
+        /// <summary>
+        /// 当前金币
+        /// </summary>
+        /// <value></value>
+        public int DropCoin
+        {
+            get
+            {
+                return dropCoin;
+            }
+            set
+            {
+                dropCoin = value;
+            }
+        }
+
         protected static readonly int MAX_TOWER = 5;
 
         /// <summary>
@@ -142,6 +179,8 @@
         /// </summary>
         public List<Node> StartingNodeList;
 
+        public List<Node> EndNodeList;
+
         /// <summary>
         /// 已经完成的关卡数量
         /// </summary>
@@ -152,8 +191,6 @@
         /// </summary>
         /// <value></value>
         public int SelectBuffNeddLevels { get; set; }
-        // cx test
-        // public int SelectBuffNeddLevels { get; set; } = 2;
 
         /// <summary>
         /// buff是否选择完成
@@ -164,13 +201,15 @@
         /// 新手第一关是否完成
         /// </summary>
         private bool isFirstLevelCompleted = false;
+        private bool isSecondLevelCompleted = false;
+        private bool isThirdLevelCompleted = false;
 
         private bool isStopSecondWaveCompleted = false;
 
         /// <summary>
         /// 赛道长度
         /// </summary>
-        private float tunelLength = 31.94f;
+        private float tunelLength;
 
         private List<Vector3> homeBasePositionList;
 
@@ -298,6 +337,7 @@
         /// </summary>
         public virtual void StartLevel()
         {
+            EndlessPortData.Init();
             ChangeLevelState(LevelState.SpawningEnemies);
             SelfPlacementArea.startCoinGenMode();
         }
@@ -337,6 +377,7 @@
             EndlessGameUI.instance.GameOverEvent += SafelyCallLevelCompleted;
 
             homeBasePositionList = new List<Vector3>();
+            tunelLength = Mathf.Abs(StartingNodeList[0].transform.position.z - EndNodeList[0].transform.position.z);
 
             for (int i = 0; i < StartingNodeList.Count; ++i)
             {
@@ -380,13 +421,19 @@
                     if (!UpdateLevel())
                         ChangeLevelState(LevelState.AllEnemiesSpawned);
                 }
-                else if (!isFirstLevelCompleted)
-                {
-                    isFirstLevelCompleted = true;
-                    EndlessUIStart.instance.Pause();
-                    // 第一关的怪全部被杀光
-                    EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.KillDone);
-                }
+                // else if (!isFirstLevelCompleted)
+                // {
+                //     isFirstLevelCompleted = true;
+                //     EndlessUIStart.instance.Pause();
+                //     // 第一关的怪全部被杀光
+                //     EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.KillDone);
+                // }
+                // else if (!isSecondLevelCompleted)
+                // {
+                //     Debug.Log("开始第三关???");
+                //     isSecondLevelCompleted = true;
+                //     //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.CreateThirdWave);
+                // }
             }
         }
 
@@ -413,6 +460,30 @@
             EndlessScoreManager.instance.AddScore(score);
             EndlessBossSkillManager.instance.ClearSkillList();
             EndlessBossCtrl.instance.ChangeState(EndlessBossActionState.Death);
+
+            if (GameConfig.IsNewbie)
+            {
+                if (!isFirstLevelCompleted)
+                {
+                    isFirstLevelCompleted = true;
+                    EndlessUIStart.instance.Pause();
+                    // 第一关的怪全部被杀光
+                    EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.KillDone);
+                }
+                else if (!isSecondLevelCompleted)
+                {
+                    //Debug.Log("开始第三关???");
+                    isSecondLevelCompleted = true;
+                    EndlessUIStart.instance.Pause();
+                    EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.KillSecondDone);
+                }
+                else if (isFirstLevelCompleted && isSecondLevelCompleted && !isThirdLevelCompleted)
+                {
+                    isThirdLevelCompleted = true;
+                    EndlessUIStart.instance.Pause();
+                    EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.KillThirdDone);
+                }
+            }
         }
 
         /// <summary>
@@ -460,12 +531,18 @@
         private void BeginLevel()
         {
             if (EndlessGameUI.instance.state == EndlessGameUI.State.GameOver) return;
+        
+            EndlessBossCtrl.instance.ClearBoss();
 
             if (CurrentLevel == startLevel)
                 WaveManager.InitPort(CurrentLevel);
 
             if (!GameConfig.IsNewbie)
+            {
+                // buff池的初始化要从正式关卡算起,不算新手关
+                EndlessBuffData.InitEndlessBuffPool(GameConfig.IsNewbieStart ? CurrentLevel - EndlessPortData.NewbieTotalLevel : CurrentLevel);
                 ShowSelectBuffUI();
+            }
             else
             {
                 EndlessUIStart.instance.Restart();
@@ -493,13 +570,14 @@
         }
 
         /// <summary>
-        /// buff选择完成
+        /// buff选择完成p
         /// </summary>
         /// <param name="index"></param>
         public void OnBuffSelectCompleted(int index)
         {
             isBuffSelectCompleted = false;
             EndlessBuffManager.instance.AddBuff(EndlessBuffData.GetBuffByIndex(index));
+            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessBuffRefresh);
         }
 
         /// <summary>
@@ -623,13 +701,15 @@
         /// </summary>
         public void StopSecondWave()
         {
-            Debug.LogError("--------------------- 停止第二关出怪 ---------------------");
             if (!isStopSecondWaveCompleted)
             {
                 isStopSecondWaveCompleted = true;
                 PauseWave();
             }
-            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.SkillStep);
+            //EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.SkillStep);
+            EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.DragStep);
         }
+
+
     }
 }
\ No newline at end of file

--
Gitblit v1.9.1