From 78e14d93c46238881339f33a56c81275c55d5089 Mon Sep 17 00:00:00 2001 From: liuzhiwei <liuzhiwei@qq.com> Date: Wed, 04 Nov 2020 14:02:54 +0800 Subject: [PATCH] Merge branch 'master' of http://172.16.1.52:8090/r/GemBattle into master --- Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs | 66 ++++++++++++++++++++++---------- 1 files changed, 45 insertions(+), 21 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs b/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs index 5283f15..418b456 100644 --- a/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs +++ b/Assets/Scripts/TowerDefense/UI/HUD/GameUI.cs @@ -358,7 +358,7 @@ public void delTower(Tower t) { // 删除Tower之前去掉充能条数据. - if( t.bInAttackMode) + if (t.bInAttackMode) t.DisableTowerUICtrl(); // 删除Tower有可能对应的Timer. @@ -609,7 +609,7 @@ towerOld.showTower(false); towerToMove = towerOld; - if( towerOld.bInAttackMode) + if (towerOld.bInAttackMode) { int pro = towerOld.GetTowerUICtrlProgress(); uiCtlProgresss = pro; @@ -865,7 +865,7 @@ if (tw != null) { LevelManager.instance.startWaveLine(m_GridPosition.x, false, tw.attributeId); - + // 顺便设置界面的进展 if (uiCtlProgresss > 0) { @@ -1287,18 +1287,7 @@ //UpgradeSelectedTower(); // 新的代码,合并升级为随机塔防类型. randomUpgradeTower(); - // 在sTower的位置播放升级特效 - GameObject obj = Instantiate(TowerUpgradeEffect); - obj.transform.position = sTower.transform.position; - Vector3 pos = obj.transform.position; - pos.y += 5f; - obj.transform.position = pos; - ParticleSystem ps = obj.GetComponent<ParticleSystem>(); - if (ps == null) - ps = obj.transform.GetChild(0).GetComponent<ParticleSystem>(); - ps.Play(); - Destroy(obj, ps.main.duration); } } else @@ -1331,6 +1320,35 @@ { PlaceGhost(pointer); } + } + + /// <summary> + /// 播放升级特效 + /// </summary> + /// <param name="worldPos"></param> + public void PlayUpgradeEffect(Tower newTower) + { + GameObject effect = TowerUpgradeEffect; + + if (newTower.towerFeature == EFeatureTower.NULL) + { + string path = $"UI/ToBattle_{newTower.attributeId}"; + GameObject prefab = Resources.Load<GameObject>(path); + effect = Instantiate(prefab); + } + + // 在sTower的位置播放升级特效 + GameObject obj = Instantiate(effect); + obj.transform.position = newTower.transform.position; + Vector3 pos = obj.transform.position; + pos.y += 5f; + obj.transform.position = pos; + ParticleSystem ps = obj.GetComponent<ParticleSystem>(); + + if (ps == null) + ps = obj.transform.GetChild(0).GetComponent<ParticleSystem>(); + ps.Play(); + Destroy(obj, ps.main.duration); } /// <summary> @@ -1424,7 +1442,7 @@ /// <exception cref="InvalidOperationException"> /// Throws exception if not in Build State or <see cref="m_CurrentTower"/> is not at a valid position /// </exception> - public void PlaceTower(int lvl = 0, bool opponent = false) + public void PlaceTower(int lvl = 0, bool opponent = false, bool isUpgrade = false) { if (!isBuilding) throw new InvalidOperationException("Trying to place tower when not in a Build Mode"); @@ -1452,7 +1470,13 @@ CancelGhostPlacement(); - PlayAppearEffect(createdTower.transform.position); + if (!opponent) + { + if (!isUpgrade) + PlayAppearEffect(createdTower.transform.position); + else + PlayUpgradeEffect(createdTower); + } // 处理成长骰子,复制骰子等等功能. if (lvl == 0) @@ -1473,10 +1497,10 @@ obj.transform.position = pos; ParticleSystem ps = obj.GetComponent<ParticleSystem>(); - + if (ps == null) ps = obj.transform.GetChild(0).GetComponent<ParticleSystem>(); - + ps.Play(); Destroy(obj, ps.main.duration); } @@ -1743,7 +1767,7 @@ /// 直接在IPlaceArea上随机放置一个Tower。这是随机放置塔防的入口类。这是入口的塔防类。 /// </summary> /// <param name="tow"></param> - public void RandomPlaceTower(Tower tow, int posx = -1, int posy = -1, int lvl = 0) + public void RandomPlaceTower(Tower tow, int posx = -1, int posy = -1, int lvl = 0, bool isUpgrade = false) { // 获取IPlaceArea. if (m_CurrentArea == null) @@ -1804,7 +1828,7 @@ OnSuccessBuyTower(); SetState(State.Building); - PlaceTower(lvl); + PlaceTower(lvl, false, isUpgrade); } } @@ -2212,7 +2236,7 @@ if (ps == null) ps = obj.transform.GetChild(0).GetComponent<ParticleSystem>(); - + ps.Play(); Destroy(obj, ps.main.duration); } -- Gitblit v1.9.1