| | |
| | | using TowerDefense.Towers.Data; |
| | | using TowerDefense.Towers.Placement; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | using KTGMGemClient; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | |
| | | { |
| | | /// <summary> |
| | | /// 起始关卡 |
| | | /// </summary> |
| | | /// </summary>' |
| | | /// <value></value> |
| | | protected int startLevel { get; set; } = 1; |
| | | |
| | |
| | | /// </summary> |
| | | public List<Node> StartingNodeList; |
| | | |
| | | public List<Node> EndNodeList; |
| | | |
| | | /// <summary> |
| | | /// 已经完成的关卡数量 |
| | | /// </summary> |
| | |
| | | /// <summary> |
| | | /// 赛道长度 |
| | | /// </summary> |
| | | private float tunelLength = 31.94f; |
| | | private float tunelLength; |
| | | |
| | | private List<Vector3> homeBasePositionList; |
| | | |
| | |
| | | // 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() |
| | |
| | | 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) |
| | | { |
| | |
| | | |
| | | if (WaveManager != null) |
| | | WaveManager.AllWaveCompleted -= AllWaveCompleted; |
| | | |
| | | // Iterate through home bases and unsubscribe |
| | | for (int i = 0; i < NumberOfHomeBases; i++) |
| | | { |
| | | HomeBases[i].died -= OnHomeBaseDestroyed; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | 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> |
| | |
| | | } |
| | | |
| | | /// <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> |
| | |
| | | /// </summary> |
| | | public void StopSecondWave() |
| | | { |
| | | Debug.LogError("--------------------- 停止第二关出怪 ---------------------"); |
| | | if (!isStopSecondWaveCompleted) |
| | | { |
| | | isStopSecondWaveCompleted = true; |