From 340c905aeb2d12c091eb6a62fa1502d05a0d7c9f Mon Sep 17 00:00:00 2001
From: chenxin <chenxin6991@163.com>
Date: Fri, 20 Nov 2020 17:36:55 +0800
Subject: [PATCH] 一次性buff重复出现问题

---
 Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs |   35 +++++++++++++++++------------------
 1 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs b/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs
index 58d8350..8440073 100644
--- a/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs
+++ b/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs
@@ -6,7 +6,6 @@
 using TowerDefense.Towers.Data;
 using TowerDefense.Towers.Placement;
 using UnityEngine;
-using UnityEngine.UI;
 using KTGMGemClient;
 using System.Collections;
 using System.Collections.Generic;
@@ -24,7 +23,7 @@
     {
         /// <summary>
         /// 起始关卡
-        /// </summary>
+        /// </summary>'
         /// <value></value>
         protected int startLevel { get; set; } = 1;
 
@@ -143,6 +142,8 @@
         /// </summary>
         public List<Node> StartingNodeList;
 
+        public List<Node> EndNodeList;
+
         /// <summary>
         /// 已经完成的关卡数量
         /// </summary>
@@ -171,7 +172,7 @@
         /// <summary>
         /// 赛道长度
         /// </summary>
-        private float tunelLength = 31.94f;
+        private float tunelLength;
 
         private List<Vector3> homeBasePositionList;
 
@@ -330,12 +331,6 @@
             // Iterate through home bases and subscribe
             NumberOfHomeBases = HomeBases.Length;
             NumberOfHomeBasesLeft = NumberOfHomeBases;
-
-            for (int i = 0; i < NumberOfHomeBases; i++)
-            {
-                HomeBases[i].homebaseIdx = i % MAX_TOWER;
-                HomeBases[i].died += OnHomeBaseDestroyed;
-            }
         }
 
         private void Start()
@@ -344,6 +339,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)
             {
@@ -406,12 +402,6 @@
 
             if (WaveManager != null)
                 WaveManager.AllWaveCompleted -= AllWaveCompleted;
-
-            // Iterate through home bases and unsubscribe
-            for (int i = 0; i < NumberOfHomeBases; i++)
-            {
-                HomeBases[i].died -= OnHomeBaseDestroyed;
-            }
         }
 
         /// <summary>
@@ -420,7 +410,12 @@
         protected virtual void AllWaveCompleted()
         {
             IsAllWaveCompleted = true;
+            int score = EndlessPortData.GetLevelScore(CurrentLevel);
+            Debug.Log($"--------------------- 通过第{CurrentLevel}关,+{score}分 ---------------------");
+            // 关卡通过,加分
+            EndlessScoreManager.instance.AddScore(score);
             EndlessBossSkillManager.instance.ClearSkillList();
+            EndlessBossCtrl.instance.ChangeState(EndlessBossActionState.Death);
         }
 
         /// <summary>
@@ -446,6 +441,7 @@
         public void NewbieUpdateLevel()
         {
             ++CurrentLevel;
+            EndlessBuffData.InitEndlessBuffPool(CurrentLevel);
             WaveManager.InitPort(CurrentLevel);
             IsAllWaveCompleted = false;
             EndlessUIStart.instance.Restart();
@@ -458,7 +454,7 @@
         /// <returns></returns>
         private IEnumerator DelayToNextLevel()
         {
-            yield return new WaitForSeconds(5f);
+            yield return new WaitForSeconds(2f);
             BeginLevel();
         }
 
@@ -469,7 +465,10 @@
         {
             if (EndlessGameUI.instance.state == EndlessGameUI.State.GameOver) return;
 
+            EndlessBuffData.InitEndlessBuffPool(CurrentLevel);
+
             if (CurrentLevel == startLevel)
+
                 WaveManager.InitPort(CurrentLevel);
 
             if (!GameConfig.IsNewbie)
@@ -501,13 +500,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>
@@ -631,7 +631,6 @@
         /// </summary>
         public void StopSecondWave()
         {
-            Debug.LogError("--------------------- 停止第二关出怪 ---------------------");
             if (!isStopSecondWaveCompleted)
             {
                 isStopSecondWaveCompleted = true;

--
Gitblit v1.9.1