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