From f95ac5d8c6663dbe8bc763265b97c55f131949d0 Mon Sep 17 00:00:00 2001 From: yjm484 <171359351@qq.com> Date: Thu, 11 Jul 2024 00:58:19 +0800 Subject: [PATCH] 0710BUGFIX --- .../Assets/Scripts/Card/CardDrag.cs | 10 +++++++- .../Scripts/Handler/EffectRangeHandler6_2.cs | 17 +++++++------ .../Assets/Scripts/Tool/getNodeTools.cs | 24 +++++++++---------- .../Assets/Scripts/manager/MapUnityManager.cs | 3 ++- 4 files changed, 30 insertions(+), 24 deletions(-) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs index 4dc34061..6610106b 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs @@ -272,7 +272,15 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag cardEntity.influencePreviewPool = handler.HandleAngleWithResult(euler); } cardEntity.influencePreviewPool=MathTool.RemoveDuplicates(cardEntity.influencePreviewPool); - getNodeTools.checkListPass(cardEntity.influencePreviewPool); + if (effectRange.Equals(EffectRange.range8_2)|| effectRange.Equals(EffectRange.range6_3)) + { + getNodeTools.checkListPass(cardEntity.influencePreviewPool, playerOnNode); + } + else + { + getNodeTools.checkListPass(cardEntity.influencePreviewPool, currentNode); + } + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandler6_2.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandler6_2.cs index 3cd8362b..9c64f463 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandler6_2.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandler6_2.cs @@ -56,15 +56,14 @@ public class EffectRangeHandler6_2 : EffectRangeHandlerBase private void get6_2Node(MapUnity currentNode,int value) { - if (tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value,2)])) - { - tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value, 2)].unitPool[value]); - } - if (tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value,2)])) - { - tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value, 2)].unitPool[value]); - } + /*tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value, 2)]); + tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value, 2)].unitPool[value]); + tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value, 2)]); + tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value, 2)].unitPool[value]);*/ tryGetNodeInfluencedable(currentNode.unitPool[value]); - + tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value, 2)]); + tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value, 1)]); + tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value, 2)]); + tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value, 1)]); } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs index 66c978eb..1156ee9e 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs @@ -97,32 +97,30 @@ public class getNodeTools } - public static void checkListPass(List mapUnityList) - { - - for (int i = 0; i < mapUnityList.Count; i++) + public static void checkListPass(List mapUnityList, MapUnity mapUnity) + { + + for (int i = mapUnityList.Count - 1; i >= 0; i--) { - Debug.Log( "X是:" + mapUnityList[i].locationX + "Y是:" + mapUnityList[i].locationY); - if (!checkNodePass(mapUnityList[i])) + if (!checkNodePass(mapUnityList[i], mapUnity)) { - mapUnityList.Remove(mapUnityList[i]); + mapUnityList.RemoveAt(i); } - } } - public static bool checkNodePass(MapUnity mapUnity) + public static bool checkNodePass(MapUnity mapUnity, MapUnity centerMapUnity) { LayerMask layerMask=new LayerMask(); int blockLayer = LayerMask.NameToLayer("Block"); layerMask |= (1 << blockLayer); bool canPass=true; //MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent(); - var playerOnNode=GameManager.Instance.player; - float distance = Vector3.Distance(playerOnNode.transform.position, mapUnity.transform.position); - Vector3 dir = mapUnity.transform.position - playerOnNode.transform.position; - Ray ray = new Ray(playerOnNode.transform.position, dir); + //var playerOnNode=GameManager.Instance.player; + float distance = Vector3.Distance(centerMapUnity.transform.position, mapUnity.transform.position); + Vector3 dir = mapUnity.transform.position - centerMapUnity.transform.position; + Ray ray = new Ray(centerMapUnity.transform.position, dir); if (Physics.Raycast(ray, out RaycastHit raycastHit, distance, layerMask.value)) { canPass = false; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs index 52b703a8..cec46f42 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs @@ -64,7 +64,8 @@ public class MapUnityManager : Singleton } castPool=MathTool.RemoveDuplicates(castPool); Debug.Log("去除前数量是" + castPool.Count); - getNodeTools.checkListPass(castPool); + MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent(); + getNodeTools.checkListPass(castPool,playerOnNode); //castPool.Distinct().ToList(); //getNodeTools.checkListPass(castPool); //遍历影响池变色