| | |
| | | using TowerDefense.UI.HUD; |
| | | using UnityEngine; |
| | | using UnityEngine.AI; |
| | | using TowerDefense.Level; |
| | | |
| | | /// <summary> |
| | | /// 基于兵线的Agent Instance管理器 |
| | |
| | | return agentWaveLineArray; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置某条兵线的所有小兵的移动状态 |
| | | /// </summary> |
| | | /// <param name="waveLineId">兵线id 1~5, 如果是-1则设置所有兵线的状态</param> |
| | | /// <param name="canMove">是否可以移动</param> |
| | | /// <param name="isOppo">是否是敌方</param> |
| | | public void SetWaveLineCanMove(int waveLineId, bool canMove, bool isOppo) |
| | | { |
| | | WaveLineAgentInsMgr[] waveLineAgents = isOppo ? getOppoWaveLineList() : GetWaveLineList(); |
| | | |
| | | for (int i = 0; i < waveLineAgents.Length; ++i) |
| | | { |
| | | if (i == waveLineId - 1 || waveLineId == -1) |
| | | { |
| | | List<Agent> list = waveLineAgents[i].listAgent; |
| | | |
| | | for (int j = 0; j < list.Count; ++j) |
| | | { |
| | | list[j].CanMove = canMove; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | public List<Agent> agentList |
| | | { |
| | | get { return this.agentInsList; } |
| | |
| | | // 这一行防止无限的循环下去。 |
| | | if (forceGet) return ag; |
| | | |
| | | Agent agLeft = GetMinDisAgent(lineid - 1, oppo, true, noPoison); |
| | | Agent agRight = GetMinDisAgent(lineid + 1, oppo, true, noPoison); |
| | | |
| | | agentTmpArr[0] = ag; |
| | | agentTmpArr[1] = agLeft; |
| | | agentTmpArr[2] = agRight; |
| | | |
| | | if (!EndlessLevelManager.instanceExists) |
| | | { |
| | | Agent agLeft = GetMinDisAgent(lineid - 1, oppo, true, noPoison); |
| | | Agent agRight = GetMinDisAgent(lineid + 1, oppo, true, noPoison); |
| | | |
| | | agentTmpArr[1] = agLeft; |
| | | agentTmpArr[2] = agRight; |
| | | } |
| | | else |
| | | { |
| | | agentTmpArr[1] = null; |
| | | agentTmpArr[2] = null; |
| | | } |
| | | |
| | | float minDis = 100000000f; |
| | | int idx = -1; |