wangguan
2020-12-09 0690876fea4792f47b18a8e9d3133b8be0cfba7e
Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
@@ -137,6 +137,8 @@
        /// </summary>
        public Image FrostWord;
        public Image RestrainWord;
        /// <summary>
        /// 购买塔防按钮上的Text.
        /// </summary>
@@ -199,6 +201,7 @@
                return m_CurrentTower != null;
            }
        }
        // TowerList用于简单记录相关的数据
        protected List<Tower> m_listTower = new List<Tower>();
@@ -773,6 +776,27 @@
        }
        /// <summary>
        /// 提升所有塔的等级,如果现在塔的等级 < level,设置等级为 level,如果 > level 不做改变
        /// </summary>
        /// <param name="level">从0开始</param>
        public void UpgradeAllTowerMinLevel(int level)
        {
            if (level < 0 || level > ElfUpgradeData.MaxTowerLevel - 1) return;
            for (int i = 0; i < m_listTower.Count; ++i)
            {
                if (m_listTower[i].currentLevel < level)
                {
                    m_listTower[i].currentLevel = level;
                    m_listTower[i].CurrentTowerLevel.SetShowLevel(level + 1);
                    m_listTower[i].CurrentTowerLevel.SetScale(level + 1);
                    PlayUpgradeEffect(m_listTower[i]);
                }
            }
            UpdateMinLevelArr();
        }
        /// <summary>
        /// 成长骰子升级为高一级别的随机骰子.
        /// </summary>
        /// <param name="tower"></param>
@@ -1081,7 +1105,7 @@
            }
        }
        void CloseCanPlace()
        public void CloseCanPlace()
        {
            dragTowerPlacement.CloseCanPlace();
            if (bInAttackModeTower != null)
@@ -1140,6 +1164,15 @@
        }
        #endregion
        /// <summary>
        /// 推拽结束,如果判断HasTower==true 就强行释放
        /// </summary>
        public void EndDragCancelPlaceTower()
        {
            Debug.Log("强行释放了m_CurrentTower");
            CancelPlaceTower(null);
        }
        /// <summary>
        /// 拖动一个Tower之后,松开鼠标或者EndDrag.
@@ -1216,6 +1249,8 @@
            else if (EndlessLevelManager.instanceExists && IsSubstitute(pointerInfo))
            {
                CheckCanChangePos(pointerInfo);
                if (EndlessUIStart.instance.GameStartTime >= JsonDataCenter.DOUBLE_GEM_TIME)
                    UpgradeAllTowerMinLevel(1);
            }
            // 当前是Skill塔位的状态.
            else if (bSkill)
@@ -1289,7 +1324,7 @@
                    newTower2.CheckCtrl();
                    //Debug.Log($"newTower1:{newTower1.towerName}  newTower2:{newTower2.towerName}");
                    TowerPlacementGridEndless.instance.PlayPutPs(newTower2.gridPosition.x,newTower2.gridPosition.y);
                    TowerPlacementGridEndless.instance.PlayPutPs(newTower2.gridPosition.x, newTower2.gridPosition.y);
                    return true;
                }
            }
@@ -1700,6 +1735,7 @@
        public void PlayUpgradeEffect(Tower newTower)
        {
            newTower.CurrentTowerLevel.PlayUpGradeEffect();
            AudioSourceManager.Ins.Play(AudioEnum.Upgrade);
        }
        /// <summary>
@@ -2072,6 +2108,18 @@
            obj.GetComponent<TextMoveDoTween>().FloatFrostWord(screenPos.x, screenPos.y);
        }
        /// <summary>
        /// 克制飘字
        /// </summary>
        /// <param name="worldPos"></param>
        public void FloatRestrainWord(Vector3 worldPos)
        {
            Vector3 screenPos = m_Camera.WorldToScreenPoint(worldPos);
            GameObject obj = Instantiate(RestrainWord.gameObject);
            obj.GetComponent<Transform>().SetParent(GameObject.Find("MainUI/TextPanel").GetComponent<Transform>(), false);
            obj.GetComponent<TextMoveDoTween>().FloatRestrainWord(screenPos.x, screenPos.y);
        }
        private void Start()
        {
            // 获取相应的放置区域。