From 65a6f11553bcb46d6244dbafe63b6225dfa4d56e Mon Sep 17 00:00:00 2001 From: wangguan <wangguan@kt007.com> Date: Tue, 10 Nov 2020 20:29:12 +0800 Subject: [PATCH] 可以升级的塔播放动画 --- Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs | 59 ++++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 40 insertions(+), 19 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs index 71ae8ab..9de2db0 100644 --- a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs +++ b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs @@ -851,21 +851,37 @@ /// </summary> public void CheckAllCanPlace() { - List<IntVector2> allTowerP = new List<IntVector2>(); - for (int i = 0; i < m_listTower.Count; i++) + if (m_CurrentTower != null) { - if (m_listTower[i].bInAttackMode && towerToMove && m_listTower[i].currentLevel == dragTowerLevel && m_listTower[i].towerName == towerToMove.towerName) + if (m_CurrentTower.controller.towerFeature == EFeatureTower.NULL) { - //说明可以合成 + List<IntVector2> allTowerP = new List<IntVector2>(); + List<IntVector2> allPSTowerP = new List<IntVector2>();//需要播放升级动画的 + + for (int i = 0; i < m_listTower.Count; i++) + { + if (m_listTower[i].bInAttackMode && towerToMove && m_listTower[i].currentLevel == dragTowerLevel && m_listTower[i].towerName == towerToMove.towerName) + { + if (towerToMove.gridPosition != m_listTower[i].gridPosition) + //说明可以合成 + allPSTowerP.Add(m_listTower[i].gridPosition); + } + else + { + //把不符合条件的传进去 + allTowerP.Add(m_listTower[i].gridPosition); + } + } + + (m_CurrentArea as TowerPlacementGridEndless).CheckAllCanPlace(allTowerP); + (m_CurrentArea as TowerPlacementGridEndless).PlayPS(allPSTowerP); } - else + else if (m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Fire || m_CurrentTower.controller.towerFeature == EFeatureTower.Skill_Bomb) { - //把不符合条件的传进去 - allTowerP.Add(m_listTower[i].gridPosition); + //Debug.Log("需要激活兵线下方绿色标识"); + } } - - (m_CurrentArea as TowerPlacementGridEndless).CheckAllCanPlace(allTowerP); } /// <summary> @@ -873,7 +889,8 @@ /// </summary> public void CloseCanPlaceRenderer() { - (m_CurrentArea as TowerPlacementGridEndless).CloseCanPlaceRenderer(); + if (m_CurrentArea != null) + (m_CurrentArea as TowerPlacementGridEndless).CloseCanPlaceRenderer(); } /// <summary> @@ -883,18 +900,22 @@ public void CheckTowerPlace(PointerInfo pointerInfo) { //return; - //下面是为了设置一个虚拟的塔 - if (isFreeAttackGridOnDrag(pointerInfo) && m_CurrentTower.controller.towerFeature == EFeatureTower.NULL) + if (m_CurrentArea != null && m_CurrentArea is TowerPlacementGridEndless) { - //Debug.Log("得到了一个空的塔位"); + //下面是为了设置一个虚拟的塔 + if (isFreeAttackGridOnDrag(pointerInfo) && m_CurrentTower.controller.towerFeature == EFeatureTower.NULL) + { + //Debug.Log("得到了一个空的塔位"); - (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y); - //if(temporaryMat) + (m_CurrentArea as TowerPlacementGridEndless).CheckCanPlaceUpdate(m_GridPosition.x, m_GridPosition.y); + //if(temporaryMat) + } + else + { + (m_CurrentArea as TowerPlacementGridEndless).CloseCanPlace(); + } } - else - { - (m_CurrentArea as TowerPlacementGridEndless).CloseCanPlace(); - } + } /// <summary> -- Gitblit v1.9.1