weixudong
2020-11-19 69e0fea6c92fd4e153d45e5f26ef89baecf0405a
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)
            {
@@ -361,6 +357,8 @@
        /// </summary>
        protected virtual void Update()
        {
            if (EndlessGameUI.instance.state == EndlessGameUI.State.GameOver) return;
            if (alwaysGainCurrency || !alwaysGainCurrency && EndlessLeveltate != LevelState.Building && EndlessLeveltate != LevelState.Intro)
            {
                CurrencyGainer.Tick(Time.deltaTime);
@@ -404,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>
@@ -418,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>
@@ -456,7 +453,7 @@
        /// <returns></returns>
        private IEnumerator DelayToNextLevel()
        {
            yield return new WaitForSeconds(5f);
            yield return new WaitForSeconds(2f);
            BeginLevel();
        }
@@ -499,13 +496,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>
@@ -629,7 +627,6 @@
        /// </summary>
        public void StopSecondWave()
        {
            Debug.LogError("--------------------- 停止第二关出怪 ---------------------");
            if (!isStopSecondWaveCompleted)
            {
                isStopSecondWaveCompleted = true;