From 80b4237334a773b29bf69f38532a90ca659b3bfe Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Wed, 04 Nov 2020 21:14:16 +0800 Subject: [PATCH] boss技能泡泡炸弹 --- Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs | 61 ++++++++++++++++++++++++++++++ 1 files changed, 60 insertions(+), 1 deletions(-) diff --git a/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs b/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs index d534361..b372b26 100644 --- a/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs +++ b/Assets/Scripts/TowerDefense/Level/EndlessLevelManager.cs @@ -169,6 +169,51 @@ private bool isStopSecondWaveCompleted = false; /// <summary> + /// 赛道长度 + /// </summary> + private float tunelLength = 31.94f; + + private List<Vector3> homeBasePositionList; + + /// <summary> + /// 根据赛道id(1~5)获得基地坐标 + /// </summary> + /// <param name="tunelId"></param> + /// <returns></returns> + public Vector3 GetHomeBasePosition(int tunelId) + { + return homeBasePositionList[tunelId - 1]; + } + + /// <summary> + /// 根据赛道id(1~5)和赛道类型获得世界坐标 + /// </summary> + /// <param name="tunelId"></param> + /// <param name="tunelType"></param> + public Vector3 GetTunelWorldPosition(int tunelId, EndlessBossSkillTunelType tunelType) + { + Vector3 startPos = StartingNodeList[tunelId - 1].transform.position; + Vector3 ret = new Vector3(startPos.x, startPos.y, startPos.z); + float add = 0; + + switch (tunelType) + { + case EndlessBossSkillTunelType.Top: + break; + case EndlessBossSkillTunelType.Center: + add = -(tunelLength / 2); + break; + case EndlessBossSkillTunelType.Bottom: + add = -tunelLength; + break; + } + + ret.z += add; + + return ret; + } + + /// <summary> /// 切换基地 /// </summary> /// <param name="index">列索引</param> @@ -297,6 +342,18 @@ { EndlessBuffSelect.instance.BuffSelectCompleted += OnBuffSelectCompleted; EndlessGameUI.instance.GameOverEvent += SafelyCallLevelCompleted; + + homeBasePositionList = new List<Vector3>(); + + for (int i = 0; i < StartingNodeList.Count; ++i) + { + Vector3 startPos = StartingNodeList[i].transform.position; + Vector3 pos = new Vector3(); + pos.x = startPos.x; + pos.y = startPos.y; + pos.z = startPos.z - tunelLength; + homeBasePositionList.Add(pos); + } } /// <summary> @@ -313,7 +370,8 @@ if (!isBuffSelectCompleted) { isBuffSelectCompleted = true; - WaveManager.InitPort(CurrentLevel); + if (CurrentLevel > startLevel) + WaveManager.InitPort(CurrentLevel); EndlessUIStart.instance.Restart(); WaveManager.StartWaves(CurrentLevel); } @@ -360,6 +418,7 @@ protected virtual void AllWaveCompleted() { IsAllWaveCompleted = true; + EndlessBossSkillManager.instance.ClearSkillList(); } /// <summary> -- Gitblit v1.9.1