Browse Source

冲突合并0725

pull/160/head
45 5 months ago
parent
commit
7592e55d72
  1. 30
      ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset
  2. 27
      ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta
  3. 53
      ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity
  4. 3
      ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs
  5. 99
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs
  6. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs.meta
  7. 58
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyCard.cs
  8. 11
      ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyCard.cs.meta
  9. 13
      ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs
  10. 60
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs
  11. 2
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs
  12. 93
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs
  13. 36
      ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponNode.cs
  14. 10
      ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs

30
ColorlessWorld-2024-4-2/Assets/GameDate/cardDeckList.asset

@ -13,23 +13,13 @@ MonoBehaviour:
m_Name: cardDeckList m_Name: cardDeckList
m_EditorClassIdentifier: m_EditorClassIdentifier:
cardDeckList: cardDeckList:
- 1018 - 1019
- 1019 - 1019
- 1020 - 1019
- 1021 - 1019
- 1022 - 1019
- 1023 - 1019
- 1024 - 1019
- 1025 - 1019
- 1026 - 1019
- 1027 - 1019
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037

27
ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta

@ -0,0 +1,27 @@
fileFormatVersion: 2
guid: a94cf6fef2879da4c91e5ef768aadf4e
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

53
ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity

@ -22766,8 +22766,8 @@ GameObject:
- component: {fileID: 457398704} - component: {fileID: 457398704}
- component: {fileID: 457398707} - component: {fileID: 457398707}
- component: {fileID: 457398706} - component: {fileID: 457398706}
- component: {fileID: 457398705}
- component: {fileID: 457398708} - component: {fileID: 457398708}
- component: {fileID: 457398709}
m_Layer: 5 m_Layer: 5
m_Name: WeaponNode m_Name: WeaponNode
m_TagString: WeaponDragPanel m_TagString: WeaponDragPanel
@ -22891,6 +22891,37 @@ CanvasGroup:
m_Interactable: 1 m_Interactable: 1
m_BlocksRaycasts: 1 m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0 m_IgnoreParentGroups: 0
--- !u!114 &457398709
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 457398703}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d6302809f06dc36468787c81c4c492aa, type: 3}
m_Name:
m_EditorClassIdentifier:
score: 0
scoreMul: 0
condition: red>5
result: addScore
conditionValue:
resultValue: 5
nodesMark: []
nodesColor: []
extraRedNodeCount: 0
extraBlueNodeCount: 0
extraYellowNodeCount: 0
extraMostNodeCount: 0
extraLeastNodeCount: 0
extraAllNodeCount: 0
isIgnoreCondition: 0
isDoubleSettle: 0
resultDescription:
conditionDescription:
gemImage: {fileID: 0}
--- !u!1 &458000797 --- !u!1 &458000797
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -78223,8 +78254,8 @@ GameObject:
- component: {fileID: 1713025703} - component: {fileID: 1713025703}
- component: {fileID: 1713025706} - component: {fileID: 1713025706}
- component: {fileID: 1713025705} - component: {fileID: 1713025705}
- component: {fileID: 1713025708}
- component: {fileID: 1713025707} - component: {fileID: 1713025707}
- component: {fileID: 1713025708}
m_Layer: 5 m_Layer: 5
m_Name: WeaponNode m_Name: WeaponNode
m_TagString: WeaponDragPanel m_TagString: WeaponDragPanel
@ -78313,7 +78344,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1713025702} m_GameObject: {fileID: 1713025702}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f2fbc27b744afba46a8f18f6c09eed3f, type: 3} m_Script: {fileID: 11500000, guid: d6302809f06dc36468787c81c4c492aa, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
score: 0 score: 0
@ -78328,7 +78359,7 @@ MonoBehaviour:
condition: none condition: none
result: mulScore result: mulScore
conditionValue: conditionValue:
resultValue: 1.0 resultValue: 10
nodesMark: [] nodesMark: []
nodesColor: [] nodesColor: []
extraRedNodeCount: 0 extraRedNodeCount: 0
@ -83227,9 +83258,7 @@ MonoBehaviour:
enemyScore: 0 enemyScore: 0
enemyHp: 60 enemyHp: 60
straightHit: 0 straightHit: 0
attackPattern: {fileID: 2135474817} hitTypeText: {fileID: 0}
defenseIcon: {fileID: 21300000, guid: 8fd74ffa775b75741a21abd9250e2767, type: 3}
attackIcon: {fileID: 21300000, guid: 0a1daf24126ecb54e87fbf1dbf3cec7b, type: 3}
scorResults: 0 scorResults: 0
playerScoreBar: {fileID: 93681350} playerScoreBar: {fileID: 93681350}
playerScoreText: {fileID: 1259852126} playerScoreText: {fileID: 1259852126}
@ -85486,8 +85515,8 @@ MonoBehaviour:
generatePointTest: {fileID: 668478574} generatePointTest: {fileID: 668478574}
cameraObject: {fileID: 0} cameraObject: {fileID: 0}
mapUnity: {fileID: 887005656701010215, guid: b9233122c0864c84dad5899758cf64f2, type: 3} mapUnity: {fileID: 887005656701010215, guid: b9233122c0864c84dad5899758cf64f2, type: 3}
line: 9 line: 15
column: 6 column: 9
lineOffSet: {x: 1, y: 0, z: 0} lineOffSet: {x: 1, y: 0, z: 0}
columnOffSet: {x: 0, y: 0, z: 0.865} columnOffSet: {x: 0, y: 0, z: 0.865}
mapUnityFather: {fileID: 1884246785} mapUnityFather: {fileID: 1884246785}
@ -85501,6 +85530,12 @@ MonoBehaviour:
- Y: [] - Y: []
- Y: [] - Y: []
- Y: [] - Y: []
- Y: []
- Y: []
- Y: []
- Y: []
- Y: []
- Y: []
--- !u!4 &1884246785 --- !u!4 &1884246785
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

3
ColorlessWorld-2024-4-2/Assets/Scripts/Card/TurnMaster.cs

@ -104,7 +104,8 @@ public class TurnMaster : Singleton<TurnMaster>
//敌人动作如移动,涂色 //敌人动作如移动,涂色
//EnemyManager.Instance.EnemyTurn_Observer(); //EnemyManager.Instance.EnemyTurn_Observer();
getNodeTools.RandomPollute(getNodeTools.getAllNotBlackNodes(), 8); //getNodeTools.RandomPollute(getNodeTools.getAllNotBlackNodes(), 8);
GameManager.Instance.enemy.EnemyTurnSettle(3);
turn = Turn.turnStop; turn = Turn.turnStop;
turn = Turn.enemyTurnEnd; turn = Turn.enemyTurnEnd;
} }

99
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs

@ -0,0 +1,99 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Enemy
{
public List<EnemyCard> deck = new List<EnemyCard>(); // 卡组
public List<EnemyCard> hand = new List<EnemyCard>(); // 手牌
public List<EnemyCard> discardPile = new List<EnemyCard>();// 弃牌堆
public List<EnemyCard> inPlay = new List<EnemyCard>(); // 战场上的牌
public void EnemyTurnSettle(int num)
{
for (int i = 0; i < num; i++)
{
DrawOneCard();
}
}
public void PlayCard(int num)
{
// 处理无效输入
if (deck == null || deck.Count == 0) return ;
// 如果n超过列表长度,则删除全部元素
if (num >= deck.Count)
{
deck.Clear();
ReshuffleDiscardIntoDeck();
return;
}
// 存储被选中的元素
var selectedElements = new List<EnemyCard>(num);
// 随机选择并删除元素
for (int i = 0; i < num; i++)
{
int randomIndex = new System.Random().Next(deck.Count);
selectedElements.Add(deck[randomIndex]);
deck.RemoveAt(randomIndex);
}
}
// 洗牌(将弃牌堆洗入卡组)
public void ReshuffleDiscardIntoDeck()
{
if (discardPile.Count == 0)
{
Debug.Log("弃牌堆为空,无法洗牌");
return;
}
// 将弃牌堆加入卡组
deck.AddRange(discardPile);
discardPile.Clear();
// 洗牌算法
ShuffleDeck();
Debug.Log($"已将弃牌堆洗入卡组,当前卡组有 {deck.Count} 张牌");
}
// 洗牌算法
void ShuffleDeck()
{
// Fisher-Yates 洗牌算法
for (int i = deck.Count - 1; i > 0; i--)
{
int j = Random.Range(0, i + 1);
EnemyCard temp = deck[i];
deck[i] = deck[j];
deck[j] = temp;
}
}
public void DrawOneCard()
{
if (deck.Count == 0)
{
Debug.Log("卡组空了,无法抽牌!");
ReshuffleDiscardIntoDeck();
if (deck.Count == 0)
{
Debug.Log("洗牌后卡组仍然为空!");
return;
}
}
EnemyCard drawnCard = deck[0];
deck.RemoveAt(0);
settleCard(drawnCard);
discardPile.Add(drawnCard);
}
public void settleCard(EnemyCard card)
{
MapUnity target = getNodeTools.getBestTargetNodeForEnemyCard(card.nodesMark, card.nodesColor);
card.CardSettle(target);
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/Enemy.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a8bcecd86a4bbbd42b662c5ee02ea8d2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

58
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyCard.cs

@ -0,0 +1,58 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyCard
{
public string[] nodesMark;
public string[] nodesColor;
public void CardSettle(MapUnity targetNode)
{
Debug.Log("打出一张");
float euler = 90.0f;
//Debug.Log("currentNode的X是" + targetNode.locationX + "currentNode的Y是" + targetNode.locationY);
//Debug.Log("currentNode的Q是" + currentNode.cubeQ + "currentNode的S是" + currentNode.cubeS + "currentNode的R是" + currentNode.cubeR);
List<(int, int, int)> cubeList = new List<(int, int, int)>();
int intEuler = (int)euler;
//Debug.Log("euler是" + intEuler);
for (int i = 0; i < nodesMark.Length; i++)
{
try
{
string[] marks = nodesMark[i].Split("_");
//Debug.Log("AxialToCube的X是" + int.Parse(marks[0]) + "AxialToCube的Y是" + int.Parse(marks[1]));
(int q, int s, int y) = MathTool.AxialToCube(int.Parse(marks[0]), int.Parse(marks[1]));
cubeList.Add((q, s, y));
}
catch (Exception e)
{ }
}
List<(int, int, int)> rotatedCubeList = new List<(int, int, int)>();
rotatedCubeList = MathTool.RotateCoordinates(cubeList, intEuler);
foreach (var tuple in rotatedCubeList)
{
MapUnity endNode = null;
endNode = getNodeTools.getNodeWithCube(tuple.Item1, tuple.Item2, tuple.Item3);
// Debug.Log("rotatedNode的X是" + endNode.locationX + "rotatedNode的Y是" + endNode.locationY);
//Debug.Log("rotatedNode的Q是" + tuple.Item1 + "rotatedNode的S是" + tuple.Item2 + "rotatedNode的R是" + tuple.Item3);
}
List<(int, int, int)> trueCubeList = new List<(int, int, int)>();
trueCubeList = MathTool.TranslateHexesToNewOrigin(rotatedCubeList, (targetNode.cubeQ, targetNode.cubeS, targetNode.cubeR));
for (int i = 0; i < trueCubeList.Count; i++)
{
MapUnity endNode = null;
endNode = getNodeTools.getNodeWithCube(trueCubeList[i].Item1, trueCubeList[i].Item2, trueCubeList[i].Item3);
// Debug.Log("endNode的X是" + endNode.locationX + "endNode的Y是" + endNode.locationY);
//Debug.Log("endNode的Q是"+endNode.cubeQ+ "endNode的S是" + endNode.cubeS+ "endNode的R是" + endNode.cubeR);
if (endNode != null)
{
endNode.switchColor(Name.stringColorToint(nodesColor[i]));
}
}
}
}

11
ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyCard.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: d8c2b264584fca34c94ae347efe2655b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

13
ColorlessWorld-2024-4-2/Assets/Scripts/GameManager.cs

@ -4,6 +4,7 @@ using System.Collections.Generic;
using TMPro; using TMPro;
using UnityEngine; using UnityEngine;
using UnityEngine.UI; using UnityEngine.UI;
using static UnityEngine.EventSystems.EventTrigger;
public class GameManager : Singleton<GameManager> public class GameManager : Singleton<GameManager>
{ {
@ -117,11 +118,21 @@ public class GameManager : Singleton<GameManager>
public bool isPlayerMoved = false; public bool isPlayerMoved = false;
public Enemy enemy;
private void Start() private void Start()
{ {
//生成角色数据 //生成角色数据
if (PlayerStatsManager.Instance.playerState != null) if (PlayerStatsManager.Instance.playerState != null)
playerState = PlayerStatsManager.Instance.playerState; playerState = PlayerStatsManager.Instance.playerState;
enemy=new Enemy();
EnemyCard enemyCard = new EnemyCard();
enemyCard.nodesMark= new string[1] {"0_0" };
enemyCard.nodesColor = new string[1] { "black" };
for (int i = 0; i < 6; i++)
{
enemy.deck.Add(enemyCard);
}
//生成空地图列表 //生成空地图列表
// GenerateEnmptyMapList(); // GenerateEnmptyMapList();
GenerateEnmptyMapListDefault(); GenerateEnmptyMapListDefault();

60
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/MathTool.cs

@ -43,6 +43,66 @@ public class MathTool
return numbers; return numbers;
} }
public static string GetKeyWithMaxValue(Dictionary<string, int> dict)
{
if (dict == null)
throw new ArgumentNullException(nameof(dict), "字典不能为null");
if (dict.Count == 0)
throw new InvalidOperationException("字典不能为空");
int maxValue = int.MinValue;
var maxKeys = new List<string>();
foreach (var pair in dict)
{
if (pair.Value > maxValue)
{
// 发现更大的值,重置列表
maxValue = pair.Value;
maxKeys.Clear();
maxKeys.Add(pair.Key);
}
else if (pair.Value == maxValue)
{
// 发现相同的最大值,添加到列表
maxKeys.Add(pair.Key);
}
}
return maxKeys[new System.Random().Next(maxKeys.Count)];
}
public static string GetKeyWithMinValue(Dictionary<string, int> dict)
{
if (dict == null)
throw new ArgumentNullException(nameof(dict), "字典不能为null");
if (dict.Count == 0)
throw new InvalidOperationException("字典不能为空");
int minValue = int.MaxValue;
var minKeys = new List<string>();
foreach (var pair in dict)
{
if (pair.Value < minValue)
{
// 发现更小的值,重置列表
minValue = pair.Value;
minKeys.Clear();
minKeys.Add(pair.Key);
}
else if (pair.Value == minValue)
{
// 发现相同的最小值,添加到列表
minKeys.Add(pair.Key);
}
}
return minKeys[new System.Random().Next(minKeys.Count)];
}
public static List<MapUnity> sortByCubeDistance(List<MapUnity> nodeList,MapUnity originNode) public static List<MapUnity> sortByCubeDistance(List<MapUnity> nodeList,MapUnity originNode)
{ {
// 使用LINQ的OrderByDescending来按照距离基准点从远到近排序 // 使用LINQ的OrderByDescending来按照距离基准点从远到近排序

2
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs

@ -761,6 +761,8 @@ public static class Name
public const int Yellow = 7; public const int Yellow = 7;
public static readonly List<int> PlayerColor = new() { Red, Blue, Yellow , Green }; public static readonly List<int> PlayerColor = new() { Red, Blue, Yellow , Green };
public static readonly List<int> EnemyColor = new() { Black }; public static readonly List<int> EnemyColor = new() { Black };
public static readonly List<int> PlayerAndWhiteColor = new() { Red, Blue, Yellow, Green,White };
} }
public static int stringColorToint(string color) public static int stringColorToint(string color)

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

@ -28,6 +28,22 @@ public class getNodeTools
return canPass; return canPass;
} }
public static string getMostPlayerNodeName()
{
Dictionary<string,int> nodes= new Dictionary<string, int>{ { Name.Color.Blue, MapUnityManager.Instance.blueNodeCount},{ Name.Color.Red,MapUnityManager.Instance.redNodeCount},{ Name.Color.Yellow, MapUnityManager.Instance.yellowNodeCount}
,{ Name.Color.Green,MapUnityManager.Instance.greenNodeCount}
};
return MathTool.GetKeyWithMaxValue(nodes);
}
public static string getLeastPlayerNodeName()
{
Dictionary<string, int> nodes = new Dictionary<string, int>{ { Name.Color.Blue, MapUnityManager.Instance.blueNodeCount},{ Name.Color.Red,MapUnityManager.Instance.redNodeCount},{ Name.Color.Yellow, MapUnityManager.Instance.yellowNodeCount}
,{ Name.Color.Green,MapUnityManager.Instance.greenNodeCount}
};
return MathTool.GetKeyWithMinValue(nodes);
}
public static int getEnemyToPlayerUnitPoolOffset(MapUnity playerOn, MapUnity targetNode) public static int getEnemyToPlayerUnitPoolOffset(MapUnity playerOn, MapUnity targetNode)
{ {
int offset = 0; int offset = 0;
@ -41,6 +57,7 @@ public class getNodeTools
return offset; return offset;
} }
public static void playerMoveToNextNode(MapUnity mapNode) public static void playerMoveToNextNode(MapUnity mapNode)
{ {
//角色移动 //角色移动
@ -1167,4 +1184,80 @@ public class getNodeTools
return result; return result;
} }
public static int CheckNodeRewardForEnemy(string[] nodesMark, string[] nodesColor, MapUnity targetNode)
{
int canRemovePlayerNodeCount = 0;
float euler = 90.0f;
//Debug.Log("currentNode的X是" + targetNode.locationX + "currentNode的Y是" + targetNode.locationY);
//Debug.Log("currentNode的Q是" + currentNode.cubeQ + "currentNode的S是" + currentNode.cubeS + "currentNode的R是" + currentNode.cubeR);
List<(int, int, int)> cubeList = new List<(int, int, int)>();
int intEuler = (int)euler;
//Debug.Log("euler是" + intEuler);
for (int i = 0; i < nodesMark.Length; i++)
{
try
{
string[] marks = nodesMark[i].Split("_");
Debug.Log("AxialToCube的X是" + int.Parse(marks[0]) + "AxialToCube的Y是" + int.Parse(marks[1]));
(int q, int s, int y) = MathTool.AxialToCube(int.Parse(marks[0]), int.Parse(marks[1]));
cubeList.Add((q, s, y));
}
catch (Exception e)
{ }
}
List<(int, int, int)> rotatedCubeList = new List<(int, int, int)>();
rotatedCubeList = MathTool.RotateCoordinates(cubeList, intEuler);
foreach (var tuple in rotatedCubeList)
{
MapUnity endNode = null;
endNode = getNodeTools.getNodeWithCube(tuple.Item1, tuple.Item2, tuple.Item3);
// Debug.Log("rotatedNode的X是" + endNode.locationX + "rotatedNode的Y是" + endNode.locationY);
//Debug.Log("rotatedNode的Q是" + tuple.Item1 + "rotatedNode的S是" + tuple.Item2 + "rotatedNode的R是" + tuple.Item3);
}
List<(int, int, int)> trueCubeList = new List<(int, int, int)>();
trueCubeList = MathTool.TranslateHexesToNewOrigin(rotatedCubeList, (targetNode.cubeQ, targetNode.cubeS, targetNode.cubeR));
Debug.Log("入口4" + trueCubeList.Count);
for (int i = 0; i < trueCubeList.Count; i++)
{
MapUnity endNode = null;
endNode = getNodeTools.getNodeWithCube(trueCubeList[i].Item1, trueCubeList[i].Item2, trueCubeList[i].Item3);
// Debug.Log("endNode的X是" + endNode.locationX + "endNode的Y是" + endNode.locationY);
//Debug.Log("endNode的Q是"+endNode.cubeQ+ "endNode的S是" + endNode.cubeS+ "endNode的R是" + endNode.cubeR);
if (endNode != null)
{
Debug.Log("endNode颜色是" + Name.intColorTostring(endNode.whoColour));
if ( Name.NodeColor.PlayerAndWhiteColor.Contains(endNode.whoColour))
{
Debug.Log("canRemovePlayerNodeCount++");
canRemovePlayerNodeCount++;
}
}
}
return canRemovePlayerNodeCount;
}
public static MapUnity getBestTargetNodeForEnemyCard(string[] nodesMark, string[] nodesColor)
{
int mostCanRemovePlayerNodeCount = 0;
HashSet<MapUnity> targetNodes=new HashSet<MapUnity>();
foreach (MapUnity node in getNodeTools.getAllNodes())
{
int count = CheckNodeRewardForEnemy(nodesMark, nodesColor, node);
if (count > mostCanRemovePlayerNodeCount)
{
targetNodes.Clear();
targetNodes.Add(node);
mostCanRemovePlayerNodeCount= count;
}
else if(count == mostCanRemovePlayerNodeCount)
{
targetNodes.Add(node);
}
}
Debug.Log("targetNodes大小是" + targetNodes.Count);
return MathTool.GetRandomElements(targetNodes,1).ElementAt(0);
}
} }

36
ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponNode.cs

@ -193,8 +193,10 @@ public class WeaponNode : MonoBehaviour,IDragHandler, IBeginDragHandler, IEndDra
extraYellowNodeCount += int.Parse(resultValue); extraYellowNodeCount += int.Parse(resultValue);
break; break;
case Name.WeaponNodeFunction.mostNodeCount: case Name.WeaponNodeFunction.mostNodeCount:
addPlayerMostNodeCount();
break; break;
case Name.WeaponNodeFunction.leastNodeCount: case Name.WeaponNodeFunction.leastNodeCount:
addPlayerLeastNodeCount();
break; break;
case Name.WeaponNodeFunction.allNodeCount: case Name.WeaponNodeFunction.allNodeCount:
extraAllNodeCount += int.Parse(resultValue); extraAllNodeCount += int.Parse(resultValue);
@ -229,6 +231,40 @@ public class WeaponNode : MonoBehaviour,IDragHandler, IBeginDragHandler, IEndDra
} }
} }
public void addPlayerMostNodeCount()
{
string mostNode= getNodeTools.getMostPlayerNodeName();
switch (mostNode)
{
case Name.WeaponNodeFunction.redNodeCount:
extraRedNodeCount += int.Parse(resultValue);
break;
case Name.WeaponNodeFunction.blueNodeCount:
extraBlueNodeCount += int.Parse(resultValue);
break;
case Name.WeaponNodeFunction.yellowNodeCount:
extraYellowNodeCount += int.Parse(resultValue);
break;
}
}
public void addPlayerLeastNodeCount()
{
string mostNode = getNodeTools.getLeastPlayerNodeName();
switch (mostNode)
{
case Name.WeaponNodeFunction.redNodeCount:
extraRedNodeCount += int.Parse(resultValue);
break;
case Name.WeaponNodeFunction.blueNodeCount:
extraBlueNodeCount += int.Parse(resultValue);
break;
case Name.WeaponNodeFunction.yellowNodeCount:
extraYellowNodeCount += int.Parse(resultValue);
break;
}
}
public bool SingleConditionCheck(string condition,int position) public bool SingleConditionCheck(string condition,int position)
{ {
bool check = false; bool check = false;

10
ColorlessWorld-2024-4-2/Assets/Scripts/manager/SettlementManager.cs

@ -51,14 +51,14 @@ public class SettlementManager : Singleton<SettlementManager>
//Ôì³ÉÉ˺¦ //Ôì³ÉÉ˺¦
//Ⱦɫ //Ⱦɫ
private void dyeingWork(List<MapUnity> influencePreviewPool) /* private void dyeingWork(List<MapUnity> influencePreviewPool)
{ {
for (int i = 0; i < influencePreviewPool.Count; i++) for (int i = 0; i < influencePreviewPool.Count; i++)
{ {
influencePreviewPool[i].whoColour = Name.NodeColor.Black; influencePreviewPool[i].whoColour = Name.NodeColor.Black;
} }
} }*/
private void dyeingWork(CardOriginalData cardOriginalData,MapUnity targetNode) private void dyeingWork(CardOriginalData cardOriginalData,MapUnity targetNode)
{ {
@ -284,12 +284,12 @@ public class SettlementManager : Singleton<SettlementManager>
} }
private void dyeingAroundWork(List<MapUnity> influencePreviewPool) private void dyeingAroundWork(CardOriginalData cardOriginalData, List<MapUnity> influencePreviewPool)
{ {
HashSet<MapUnity> influencePreviewPoolSet = new HashSet<MapUnity>(influencePreviewPool); HashSet<MapUnity> influencePreviewPoolSet = new HashSet<MapUnity>(influencePreviewPool);
getNodeTools.getCircleNode(influencePreviewPoolSet, 1); getNodeTools.getCircleNode(influencePreviewPoolSet, 1);
List<MapUnity> targetNodes = new List<MapUnity>(influencePreviewPoolSet); List<MapUnity> targetNodes = new List<MapUnity>(influencePreviewPoolSet);
dyeingWork(targetNodes); dyeingWork(cardOriginalData, targetNodes.ElementAt(0));
} }
private void nodesForCostWork(List<MapUnity> influencePreviewPool, int val) private void nodesForCostWork(List<MapUnity> influencePreviewPool, int val)
@ -830,7 +830,7 @@ public class SettlementManager : Singleton<SettlementManager>
//repelFromPlayer(influencePreviewPool, targetNode, 100); //repelFromPlayer(influencePreviewPool, targetNode, 100);
break; break;
case CardFunction.dyeingAround: case CardFunction.dyeingAround:
dyeingAroundWork(influencePreviewPool); dyeingAroundWork(cardOriginalData,influencePreviewPool);
break; break;
case CardFunction.consumePlayerNodesForHealth: case CardFunction.consumePlayerNodesForHealth:
//consumePlayerNodesForHealthWork(influencePreviewPool); //consumePlayerNodesForHealthWork(influencePreviewPool);

Loading…
Cancel
Save