From 5bfd1103410659fbb523ad25f0e34413fe032ed2 Mon Sep 17 00:00:00 2001 From: chenxin <chenxin6991@163.com> Date: Sat, 05 Dec 2020 18:19:06 +0800 Subject: [PATCH] 水精灵概率触发冰冻 --- Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs | 59 +++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 47 insertions(+), 12 deletions(-) diff --git a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs index 9869040..d4374be 100644 --- a/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs +++ b/Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs @@ -1,11 +1,8 @@ -using System.Globalization; -using Core.Health; +using Core.Health; using Core.Input; using Core.Utilities; -using DG.Tweening; using JetBrains.Annotations; using System; -using System.Collections; using System.Collections.Generic; using TMPro; using TowerDefense.Level; @@ -15,7 +12,6 @@ using UnityEngine.EventSystems; using UnityEngine.UI; using TowerDefense.Nodes; -using TowerDefense.Affectors; using KTGMGemClient; namespace TowerDefense.UI.HUD @@ -135,6 +131,11 @@ /// 暴击飘字 /// </summary> public Image CritWord; + + /// <summary> + /// 冰冻飘字 + /// </summary> + public Image FrostWord; /// <summary> /// 购买塔防按钮上的Text. @@ -579,7 +580,7 @@ if (tower.towerName != towerOld.towerName) continue; - newT = Instantiate(tower, transform); + newT = tower; break; } @@ -687,6 +688,10 @@ // 判断格子上的塔防: UIPointer pointer = WrapPointer(pinfo); Tower sTower = PickTowerInGrid(pointer); + + // 泡泡禁锢状态不允许合并 + if (sTower && sTower.IsStartBondage) return false; + if (sTower && sTower != towerToMove) { int testLvl = dragTowerLevel; @@ -710,6 +715,9 @@ // 判断格子上的塔防: UIPointer pointer = WrapPointer(pinfo); Tower sTower = PickTowerInGrid(pointer); + + // 泡泡禁锢状态不允许置换 + if (sTower && sTower.IsStartBondage) return false; if (sTower && sTower != towerToMove) { @@ -871,6 +879,7 @@ EndlessBossSkillManager.instance.ClearSkillList(); EndlessBossHPManager.instance.SwitchHP(true); EndlessBossHPManager.instance.SetCurrentHP(0); + EndlessLevelManager.instance.WaveManager.HideTunel(); // 停止所有兵线的出兵 for (int i = 0; i < TotalWaveLines; ++i) @@ -1201,6 +1210,8 @@ towerToMove.Sell(); towerToMove = null; } + if (m_CurrentTower != null && m_CurrentTower.controller != null) + Destroy(m_CurrentTower.controller.gameObject); } else if (EndlessLevelManager.instanceExists && IsSubstitute(pointerInfo)) { @@ -2017,12 +2028,7 @@ if (tm) { tm.GetComponent<Transform>().SetParent(GameObject.Find("MainUI/TextPanel").GetComponent<Transform>(), true); - string bloodStr = ""; - if (doubleHit) - bloodStr += "Dble!"; - if (crit) - bloodStr += "Crt!"; - bloodStr += "-"; + string bloodStr = "-"; bloodStr += ((Int64)val).ToString(); tm.moveBloodText(spos.x, spos.y, bloodStr, crit); @@ -2049,6 +2055,18 @@ GameObject obj = Instantiate(CritWord.gameObject); obj.GetComponent<Transform>().SetParent(GameObject.Find("MainUI/TextPanel").GetComponent<Transform>(), false); obj.GetComponent<TextMoveDoTween>().FloatCritWord(screenPos.x, screenPos.y); + } + + /// <summary> + /// 冰冻飘字 + /// </summary> + /// <param name="worldPos"></param> + public void FloatFrostWord(Vector3 worldPos) + { + Vector3 screenPos = m_Camera.WorldToScreenPoint(worldPos); + GameObject obj = Instantiate(FrostWord.gameObject); + obj.GetComponent<Transform>().SetParent(GameObject.Find("MainUI/TextPanel").GetComponent<Transform>(), false); + obj.GetComponent<TextMoveDoTween>().FloatFrostWord(screenPos.x, screenPos.y); } private void Start() @@ -2223,6 +2241,9 @@ var controller = output.collider.GetComponent<Tower>(); if (controller != null) { + // 泡泡禁锢状态不允许拖动 + if (controller.IsStartBondage) return; + SelectTower(controller); } @@ -2230,7 +2251,21 @@ CalSelTowerScreenOffset(info, controller); } + public void OnPressed(PointerInfo info) + { + UIPointer uiPointer = WrapPointer(info); + RaycastHit output; + bool hasHit = Physics.Raycast(uiPointer.ray, out output, float.MaxValue, towerSelectionLayer); + if (uiPointer.overUI) return; + + if (hasHit) + { + Tower controller = output.collider.GetComponent<Tower>(); + if (controller != null) + controller.OnPressed(); + } + } /// <summary> /// 鼠标选中一个Tower的时候,计算当前鼠标位置与当前Tower位置在屏幕上坐标位置的偏移量。 -- Gitblit v1.9.1