| | |
| | | using Core.Health; |
| | | using System.Globalization; |
| | | using Core.Health; |
| | | using Core.Input; |
| | | using Core.Utilities; |
| | | using DG.Tweening; |
| | |
| | | /// Current tower placeholder. Will be null if not in the <see cref="State.Building" /> state. |
| | | /// </summary> |
| | | TowerPlacementGhost m_CurrentTower; |
| | | |
| | | public bool HasTower{ |
| | | get{ |
| | | return m_CurrentTower!=null; |
| | | } |
| | | } |
| | | |
| | | // TowerList用于简单记录相关的数据 |
| | | protected List<Tower> m_listTower = new List<Tower>(); |
| | |
| | | { |
| | | // 清理技能 |
| | | EndlessBossSkillManager.instance.ClearSkillList(); |
| | | EndlessBossHPManager.instance.SwitchHP(true); |
| | | EndlessBossHPManager.instance.SetCurrentHP(0); |
| | | |
| | | // 停止所有兵线的出兵 |
| | | for (int i = 0; i < TotalWaveLines; ++i) |
| | |
| | | /// </summary> |
| | | public void CloseCanPlaceRenderer() |
| | | { |
| | | if (m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Fire || m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Bomb) |
| | | if (m_CurrentTower && m_CurrentTower.controller && m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Fire || m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Bomb) |
| | | { |
| | | //Debug.Log("需要激活兵线下方绿色标识"); |
| | | EventCenter.Ins.BroadCast((int)KTGMGemClient.EventType.EndlessStartDragSkill, false); |
| | | } |
| | | |
| | | if (m_CurrentArea != null) |
| | | (m_CurrentArea as TowerPlacementGridEndless).CloseCanPlaceRenderer(); |
| | | else |
| | | { |
| | | GameObject placeObj = GameObject.FindGameObjectWithTag("PlaceTower"); |
| | | if (placeObj != null) |
| | | (placeObj.GetComponent<IPlacementArea>() as TowerPlacementGridEndless).CloseCanPlaceRenderer(); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | { |
| | | //Debug.Log("得到了一个空的塔位"); |
| | | |
| | | (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y); |
| | | (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y, false, ""); |
| | | //if(temporaryMat) |
| | | } |
| | | else if ((m_GridPosition.x >= 0) && (m_GridPosition.y >= 0)) |
| | | { |
| | | if (m_CurrentArea.isFreeAtackPos(m_GridPosition.x, m_GridPosition.y)) |
| | | { |
| | | (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y, true, towerToMove.towerName); |
| | | } |
| | | else |
| | | { |
| | | (m_CurrentArea as TowerPlacementGridEndless).CloseCanPlace(); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | (m_CurrentArea as TowerPlacementGridEndless).CloseCanPlace(); |
| | | } |
| | | } |
| | | |
| | | else |
| | | { |
| | | //Debug.Log("什么情况"); |
| | | if (m_CurrentTower.controller.towerFeature == EFeatureTower.NULL) |
| | | { |
| | | dragTowerPlacement.CloseCanPlace(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | TowerPlacementGridEndless dragTowerPlacement; |
| | | |
| | | /// <summary> |
| | | /// 目标位置是否是可攻击属性的空塔位 |
| | |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | if ((m_GridPosition.x >= 0) && (m_GridPosition.y >= 0)) |
| | | { |
| | | if (m_CurrentArea.isFreeAtackPos(m_GridPosition.x, m_GridPosition.y)) |
| | | { |
| | | return true; |
| | | } |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | |
| | | // 获取相应的放置区域。 |
| | | GameObject placeObj = GameObject.FindGameObjectWithTag("PlaceTower"); |
| | | if (placeObj != null) |
| | | { |
| | | m_CurrentArea = placeObj.GetComponent<IPlacementArea>(); |
| | | dragTowerPlacement = placeObj.GetComponent<IPlacementArea>() as TowerPlacementGridEndless; |
| | | } |
| | | placeObj = GameObject.FindGameObjectWithTag("PlaceTowerOpponent"); |
| | | EventCenter.Ins.Add((int)KTGMGemClient.EventType.EndlessHeartAllLose, AllHeartLose); |
| | | } |
| | |
| | | } |
| | | } |
| | | // 炸弹是区域攻击显示: |
| | | if (m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Bomb) |
| | | else if (m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Bomb) |
| | | { |
| | | // 测试代码与战场区域碰撞,碰撞后显示攻击区域: |
| | | BattleAreaRaycast(ref npt); |