Assets/00000/package/Materials/Object_067.mat | ●●●●● patch | view | raw | blame | history | |
Assets/00000/package/Materials/Object_068.mat | ●●●●● patch | view | raw | blame | history | |
Assets/00000/package/Prefab/Prefab/Effect_UI_LianXuDianJi.prefab | ●●●●● patch | view | raw | blame | history | |
Assets/Materials/UI/tileTowerVSMat.mat | ●●●●● patch | view | raw | blame | history | |
Assets/Resources/Prefabs/Endless/BondageBubbleTap.prefab | ●●●●● patch | view | raw | blame | history | |
Assets/Resources/Prefabs/Endless/BondageBubbleTap.prefab.meta | ●●●●● patch | view | raw | blame | history | |
Assets/Scripts/TowerDefense/Towers/Tower.cs | ●●●●● patch | view | raw | blame | history | |
Assets/Scripts/TowerDefense/UI/EndlessBossSkill/BossSkillBondageBubble.cs | ●●●●● patch | view | raw | blame | history | |
Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs | ●●●●● patch | view | raw | blame | history |
Assets/00000/package/Materials/Object_067.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: "\u8FDE\u7EED\u70B9\u51FB" m_Name: Object_067 m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Materials/Object_068.mat
@@ -7,7 +7,7 @@ m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: "\u8FDE\u7EED\u70B9\u51FB1" m_Name: Object_068 m_Shader: {fileID: 203, guid: 0000000000000000f000000000000000, type: 0} m_ShaderKeywords: m_LightmapFlags: 4 Assets/00000/package/Prefab/Prefab/Effect_UI_LianXuDianJi.prefab
@@ -48,7 +48,7 @@ ringBufferLoopRange: {x: 0, y: 1} looping: 1 prewarm: 0 playOnAwake: 1 playOnAwake: 0 useUnscaledTime: 0 autoRandomSeed: 1 useRigidbodyForVelocity: 1 @@ -4963,7 +4963,7 @@ ringBufferLoopRange: {x: 0, y: 1} looping: 1 prewarm: 0 playOnAwake: 1 playOnAwake: 0 useUnscaledTime: 0 autoRandomSeed: 1 useRigidbodyForVelocity: 1 @@ -9880,7 +9880,7 @@ ringBufferLoopRange: {x: 0, y: 1} looping: 1 prewarm: 0 playOnAwake: 1 playOnAwake: 0 useUnscaledTime: 0 autoRandomSeed: 1 useRigidbodyForVelocity: 1 Assets/Materials/UI/tileTowerVSMat.mat
@@ -40,7 +40,7 @@ m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MainTex: m_Texture: {fileID: 2800000, guid: ea2ffef66c52dd14fbd46187be79f107, type: 3} m_Texture: {fileID: 2800000, guid: 8c9a3d26120e78f40aa4ef9ed23d573c, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MetallicGlossMap: Assets/Resources/Prefabs/Endless/BondageBubbleTap.prefab
Diff too large Assets/Resources/Prefabs/Endless/BondageBubbleTap.prefab.meta
@@ -1,5 +1,5 @@ fileFormatVersion: 2 guid: 382f43d68c7e0ce408b4b171e9750ea5 guid: 181eafb8f02821a4a9cc08dffa1c8db4 PrefabImporter: externalObjects: {} userData: Assets/Scripts/TowerDefense/Towers/Tower.cs
@@ -1,6 +1,4 @@ using UnityEngine.UI; using DG.Tweening; using KTGMGemClient; using KTGMGemClient; using System; using ActionGameFramework.Health; using Core.Utilities; @@ -10,6 +8,8 @@ using TowerDefense.UI.HUD; using UnityEngine; using TowerDefense.Agents; using System.Collections; using System.Collections.Generic; namespace TowerDefense.Towers { @@ -189,16 +189,94 @@ /// </summary> public int BondageTapCount { get; private set; } /// <summary> /// 泡泡上升高度 /// </summary> private float yAdd = 10f; /// <summary> /// 原始y值 /// </summary> private float originY; /// <summary> /// 是否开始禁锢 /// </summary> public bool IsStartBondage { get; set; } private float bombDuration = 0.7f; private float bombTime; /// <summary> /// 爆炸是否结束 /// </summary> private bool isBombCompleted; private void Start() { originY = transform.position.y; promptDic = new Dictionary<string, bool>(); } private void Update() { HandleBondageBubble(); } private static Dictionary<string, bool> promptDic; /// <summary> /// 处理禁锢泡泡技能 /// </summary> private void HandleBondageBubble() { if (IsStartBondage) { if (isBondage) { if (transform.position.y < yAdd + originY && bondageObj != null) { // 上升状态 Vector3 pos = transform.position; pos.y += 28f * Time.deltaTime; transform.position = pos; pos = bondageObj.transform.position; pos.y += 28f * Time.deltaTime; bondageObj.transform.position = pos; } } else { if (!isBombCompleted) { bombTime += Time.deltaTime; if (bombTime > bombDuration) { // 爆炸结束开始下降 isBombCompleted = true; } } else { if (transform.position.y > originY) { // 下降状态 Vector3 pos = transform.position; pos.y -= 55f * Time.deltaTime; transform.position = pos; } else { // 下降结束 IsStartBondage = false; } } } } if (!IsBondage) return; if (BondageWarningTime > 0) @@ -244,44 +322,46 @@ /// </summary> private void ShowTapPrompt() { string key = $"{gridPosition.x}"; if (promptDic.ContainsKey(key)) return; promptDic.Add(key, true); GameObject prefab = Resources.Load<GameObject>("Prefabs/Endless/BondageBubbleTap"); tapObj = Instantiate(prefab); tapObj.transform.SetParent(GameObject.Find("MainUI/CoinPanel").transform, false); Vector3 worldPos = TowerPlacementGridEndless.instance.GetGridWorldPos(gridPosition.x, gridPosition.y); Camera camera = GameObject.Find("SceneCamera3D").GetComponent<Camera>(); Vector3 screenPos = camera.WorldToScreenPoint(worldPos); screenPos.z = 0; screenPos.x += 100; screenPos.y += 85; tapObj.transform.position = screenPos; tapObj.transform.localScale = new Vector3(0.6f, 0.6f, 0.6f); DOTween.To(() => tapObj.transform.localScale, (Vector3 v) => tapObj.transform.localScale = v, new Vector3(1f, 1f, 1f), 0.3f).SetEase(Ease.OutBack); tapObj.transform.SetParent(TowerPlacementGridEndless.instance.GridContainer.transform, false); Vector3 worldPos = TowerPlacementGridEndless.instance.GetGridWorldPos(gridPosition.x, 3); ParticleSystem ps = tapObj.transform.GetChild(0).GetComponent<ParticleSystem>(); tapObj.transform.position = worldPos; Vector3 pos = tapObj.transform.position; pos.x += 5.8f; pos.z += 3f; pos.y = 13f; tapObj.transform.position = pos; ps?.Play(); } private void HideTapPrompt() { if (tapObj != null) { Image img = tapObj.GetComponent<Image>(); DOTween.To(() => img.color, (Color v) => img.color = v, new Color(1f, 1f, 1f, 0f), 0.3f).OnComplete(() => { if (tapObj != null) { Destroy(tapObj); tapObj = null; } }); ParticleSystem ps = tapObj.transform.GetChild(0).GetComponent<ParticleSystem>(); ps?.Stop(); Destroy(tapObj); tapObj = null; string key = $"{gridPosition.x}"; if (promptDic.ContainsKey(key)) promptDic.Remove(key); } } public void OnPressed() { if (!IsBondage || BondageWarningTime > 0) return; if (!IsStartBondage || BondageWarningTime > 0) return; ++BondageTapCount; if (BondageTapCount == 1) if (BondageTapCount >= 3) HideTapPrompt(); BondageTime -= BondageClickDecreaseTime; } @@ -294,7 +374,7 @@ GameObject prefab = Resources.Load<GameObject>("Prefabs/Endless/BondageBubbleBomb"); GameObject obj = Instantiate(prefab); obj.transform.SetParent(TowerPlacementGridEndless.instance.GridContainer.transform, false); obj.transform.position = TowerPlacementGridEndless.instance.GetGridWorldPos(gridPosition.x, gridPosition.y); obj.transform.position = transform.position; obj.transform.GetChild(0).GetComponent<ParticleSystem>().Play(); Destroy(obj, 1.2f); } @@ -304,11 +384,16 @@ /// </summary> private void StartBondage() { bombTime = 0; BondageTapCount = 0; isBombCompleted = false; GameObject prefab = Resources.Load<GameObject>("Prefabs/Endless/BondageBubble"); bondageObj = Instantiate(prefab); bondageObj.transform.SetParent(TowerPlacementGridEndless.instance.GridContainer.transform, false); bondageObj.transform.position = TowerPlacementGridEndless.instance.GetGridWorldPos(gridPosition.x, gridPosition.y); bondageObj.transform.position = transform.position; Vector3 pos = bondageObj.transform.position; pos.y += gridPosition.y == 3 ? 2f : 1f; bondageObj.transform.position = pos; bondageObj.transform.GetChild(0).GetComponent<ParticleSystem>().Play(); } Assets/Scripts/TowerDefense/UI/EndlessBossSkill/BossSkillBondageBubble.cs
@@ -76,6 +76,7 @@ if (tower != null && !tower.IsBondage) { tower.IsBondage = true; tower.IsStartBondage = true; tower.BondageTime = SkillData.effect[0]; tower.BondageClickDecreaseTime = SkillData.effect[1]; tower.BondageWarningTime = BondageTime; @@ -101,6 +102,7 @@ if (tower != null && !tower.IsBondage) { tower.IsBondage = true; tower.IsStartBondage = true; tower.BondageTime = SkillData.effect[0]; tower.BondageClickDecreaseTime = SkillData.effect[1]; tower.BondageWarningTime = BondageTime; @@ -133,6 +135,7 @@ { int random = UnityEngine.Random.Range(0, towerList.Count); towerList[random].IsBondage = true; towerList[random].IsStartBondage = true; towerList[random].BondageTime = SkillData.effect[0]; towerList[random].BondageClickDecreaseTime = SkillData.effect[1]; towerList[random].BondageWarningTime = BondageTime; @@ -173,6 +176,7 @@ if (tower != null) { tower.IsBondage = true; tower.IsStartBondage = true; tower.BondageTime = SkillData.effect[0]; tower.BondageClickDecreaseTime = SkillData.effect[1]; tower.BondageWarningTime = BondageTime; Assets/Scripts/TowerDefense/UI/HUD/EndlessGameUI.cs
@@ -685,7 +685,7 @@ Tower sTower = PickTowerInGrid(pointer); // 泡泡禁锢状态不允许合并 if (sTower && sTower.IsBondage) return false; if (sTower && sTower.IsStartBondage) return false; if (sTower && sTower != towerToMove) { @@ -712,7 +712,7 @@ Tower sTower = PickTowerInGrid(pointer); // 泡泡禁锢状态不允许置换 if (sTower && sTower.IsBondage) return false; if (sTower && sTower.IsStartBondage) return false; if (sTower && sTower != towerToMove) { @@ -2223,7 +2223,7 @@ if (controller != null) { // 泡泡禁锢状态不允许拖动 if (controller.IsBondage) return; if (controller.IsStartBondage) return; SelectTower(controller); }