liuzhiwei
2020-11-12 18f96c9313bf24d2296e615f44fc0ca005f2e872
Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
@@ -1,4 +1,5 @@
using Core.Health;
using System.Globalization;
using Core.Health;
using Core.Input;
using Core.Utilities;
using DG.Tweening;
@@ -177,6 +178,12 @@
        /// 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>();
@@ -813,6 +820,8 @@
        {
            // 清理技能
            EndlessBossSkillManager.instance.ClearSkillList();
            EndlessBossHPManager.instance.SwitchHP(true);
            EndlessBossHPManager.instance.SetCurrentHP(0);
            // 停止所有兵线的出兵
            for (int i = 0; i < TotalWaveLines; ++i)
@@ -889,13 +898,19 @@
        /// </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>
@@ -912,16 +927,36 @@
                {
                    //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>
        /// 目标位置是否是可攻击属性的空塔位
@@ -945,15 +980,6 @@
                    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;
        }
@@ -1761,7 +1787,10 @@
            // 获取相应的放置区域。
            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);
        }
@@ -2161,7 +2190,7 @@
                    }
                }
                // 炸弹是区域攻击显示:
                if (m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Bomb)
                else if (m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Bomb)
                {
                    // 测试代码与战场区域碰撞,碰撞后显示攻击区域:
                    BattleAreaRaycast(ref npt);