Browse Source

Merge pull request 'dev-0524-0710BUGFIX' (#11) from dev-0524-0710BUGFIX into dev-0524

Reviewed-on: #11
pull/13/head
yjm484 2 years ago
parent
commit
e74c43caff
  1. 9
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs
  2. 17
      ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandler6_2.cs
  3. 28
      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=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);
}
}

17
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)]);
}
}

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

@ -1,6 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
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);
}
}
}
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<MapUnity>();
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;
}
/* if (!canPass)
{*/
Debug.Log("¾àÀëÊÇ" + distance + ",½á¹ûÊÇ:" + canPass+",½Ç¶ÈÊÇ:"+dir);
//}
if (mapUnity.locationX==1&& mapUnity.locationY==5)
{
Debug.Log("距离是" + distance + ",结果是:" + canPass + ",角度是:" + dir + " " + layerMask.value + "ray是" + ray + "X是:" + mapUnity.locationX + "Y是:" + mapUnity.locationY);
}
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=MathTool.RemoveDuplicates(castPool);
Debug.Log("去除前数量是" + castPool.Count);
MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent<MapUnity>();
getNodeTools.checkListPass(castPool,playerOnNode);
//castPool.Distinct().ToList();
//getNodeTools.checkListPass(castPool);
//±éÀúÓ°Ïì³Ø±äÉ«
Debug.Log("数量是" + castPool.Count);
for (int i = 0; i < castPool.Count; i++)
{
castPool[i].influenced = true;

Loading…
Cancel
Save