dev-0524-0710BUGFIX #11

Merged
yjm484 merged 2 commits from dev-0524-0710BUGFIX into dev-0524 2 years ago
  1. 9
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs
  2. 15
      ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandler6_2.cs
  3. 26
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs
  4. 5
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs

9
ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs

@ -272,6 +272,15 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag
cardEntity.influencePreviewPool = handler.HandleAngleWithResult(euler); cardEntity.influencePreviewPool = handler.HandleAngleWithResult(euler);
} }
cardEntity.influencePreviewPool=MathTool.RemoveDuplicates(cardEntity.influencePreviewPool); cardEntity.influencePreviewPool=MathTool.RemoveDuplicates(cardEntity.influencePreviewPool);
if (effectRange.Equals(EffectRange.range8_2)|| effectRange.Equals(EffectRange.range6_3))
{
getNodeTools.checkListPass(cardEntity.influencePreviewPool, playerOnNode);
}
else
{
getNodeTools.checkListPass(cardEntity.influencePreviewPool, currentNode);
}
} }

15
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) private void get6_2Node(MapUnity currentNode,int value)
{ {
if (tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value,2)])) /*tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value, 2)]);
{
tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value, 2)].unitPool[value]); tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value, 2)].unitPool[value]);
} tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value, 2)]);
if (tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value,2)])) tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value, 2)].unitPool[value]);*/
{
tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value, 2)].unitPool[value]);
}
tryGetNodeInfluencedable(currentNode.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)]);
} }
} }

26
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs

@ -1,6 +1,7 @@
using System; using System;
using System.Collections; using System.Collections;
using System.Collections.Generic; using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using UnityEngine.UIElements; using UnityEngine.UIElements;
@ -96,39 +97,38 @@ public class getNodeTools
} }
public static void checkListPass(List<MapUnity> mapUnityList) public static void checkListPass(List<MapUnity> mapUnityList, MapUnity mapUnity)
{ {
for (int i = 0; i < mapUnityList.Count; i++) for (int i = mapUnityList.Count - 1; i >= 0; i--)
{ {
if (!checkNodePass(mapUnityList[i])) if (!checkNodePass(mapUnityList[i], mapUnity))
{ {
mapUnityList.RemoveAt(i); mapUnityList.RemoveAt(i);
} }
} }
} }
public static bool checkNodePass(MapUnity mapUnity) public static bool checkNodePass(MapUnity mapUnity, MapUnity centerMapUnity)
{ {
LayerMask layerMask=new LayerMask(); LayerMask layerMask=new LayerMask();
int blockLayer = LayerMask.NameToLayer("Block"); int blockLayer = LayerMask.NameToLayer("Block");
layerMask |= (1 << blockLayer); layerMask |= (1 << blockLayer);
bool canPass=true; bool canPass=true;
//MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent<MapUnity>(); //MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent<MapUnity>();
var playerOnNode=GameManager.Instance.player; //var playerOnNode=GameManager.Instance.player;
float distance = Vector3.Distance(playerOnNode.transform.position, mapUnity.transform.position); float distance = Vector3.Distance(centerMapUnity.transform.position, mapUnity.transform.position);
Vector3 dir = mapUnity.transform.position - playerOnNode.transform.position; Vector3 dir = mapUnity.transform.position - centerMapUnity.transform.position;
Ray ray = new Ray(playerOnNode.transform.position, dir); Ray ray = new Ray(centerMapUnity.transform.position, dir);
if (Physics.Raycast(ray, out RaycastHit raycastHit, distance, layerMask.value)) if (Physics.Raycast(ray, out RaycastHit raycastHit, distance, layerMask.value))
{ {
canPass = false; canPass = false;
} }
/* if (!canPass) if (mapUnity.locationX==1&& mapUnity.locationY==5)
{*/ {
Debug.Log("¾àÀëÊÇ" + distance + ",½á¹ûÊÇ:" + canPass+",½Ç¶ÈÊÇ:"+dir); Debug.Log("距离是" + distance + ",结果是:" + canPass + ",角度是:" + dir + " " + layerMask.value + "ray是" + ray + "X是:" + mapUnity.locationX + "Y是:" + mapUnity.locationY);
//} }
return canPass; return canPass;
} }

5
ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs

@ -62,9 +62,14 @@ public class MapUnityManager : Singleton<MapUnityManager>
castPool.Remove(playerOn); castPool.Remove(playerOn);
} }
} }
castPool=MathTool.RemoveDuplicates(castPool);
Debug.Log("去除前数量是" + castPool.Count);
MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent<MapUnity>();
getNodeTools.checkListPass(castPool,playerOnNode);
//castPool.Distinct().ToList(); //castPool.Distinct().ToList();
//getNodeTools.checkListPass(castPool); //getNodeTools.checkListPass(castPool);
//±éÀúÓ°Ïì³Ø±äÉ« //±éÀúÓ°Ïì³Ø±äÉ«
Debug.Log("数量是" + castPool.Count);
for (int i = 0; i < castPool.Count; i++) for (int i = 0; i < castPool.Count; i++)
{ {
castPool[i].influenced = true; castPool[i].influenced = true;

Loading…
Cancel
Save