From 387c4b96924a3a72005f753f3f21607a62788dcc Mon Sep 17 00:00:00 2001 From: yjm484 <171359351@qq.com> Date: Tue, 30 Sep 2025 17:11:02 +0800 Subject: [PATCH] =?UTF-8?q?0930=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/Plugins/Microsoft.CSharp.dll.meta | 27 ++ .../Assets/Scenes/SampleScene.unity | 4 +- .../Assets/Scripts/Enemy/EnemyManager.cs | 2 +- .../Assets/Scripts/Tool/Name.cs | 20 +- .../Assets/Scripts/Weapon/WeaponManager.cs | 240 ++++++++---------- .../Assets/Scripts/Weapon/WeaponNode.cs | 11 +- .../Assets/StreamingAssets/card_data_5.csv | 4 +- ...harp-Editor.csproj.AssemblyReference.cache | Bin 136529 -> 136529 bytes 8 files changed, 158 insertions(+), 150 deletions(-) create mode 100644 ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta diff --git a/ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta b/ColorlessWorld-2024-4-2/Assets/Plugins/Microsoft.CSharp.dll.meta new file mode 100644 index 00000000..17bba4e5 --- /dev/null +++ b/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: diff --git a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity index 5d4c9503..cbf561bb 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity +++ b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity @@ -106796,8 +106796,8 @@ MonoBehaviour: cardFather: {fileID: 1642602660} cardPrefab: {fileID: 5488427976241108427, guid: b4269360e36ee9e49becd4021ec00f97, type: 3} - currentEnemyHP: 1 - maxEnemyHP: 1 + currentEnemyHP: 50 + maxEnemyHP: 50 --- !u!4 &1584057329 Transform: m_ObjectHideFlags: 0 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs index 39b797a9..d21c8a87 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Enemy/EnemyManager.cs @@ -225,7 +225,7 @@ public class EnemyManager : Singleton GameObject gemA = Instantiate(Resources.Load(Name.WeaponNode.EnemyPrefabPath + Name.WeaponNode.PrefabName)); WeaponNode weaponNodeA = gemA.GetComponent(); weaponNodeA.result = Name.WeaponNodeFunction.everyBlackNodeAddScore; - weaponNodeA.resultValue = "1"; + weaponNodeA.resultValue = "1_1"; weaponNodeA.condition = Name.none; weaponNodeA.conditionValue = Name.none; WeaponManager.Instance.loadEnemyWeaponNode(0, gemA); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs index 62020d5f..2c07981b 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs @@ -632,19 +632,19 @@ public static class Name sb.Append("下回合多抽" + int.Parse(resultValue)+"张牌"); break; case Name.WeaponNodeFunction.everyRedNodeAddScore: - sb.Append("每有一个红色地块增加" + int.Parse(resultValue) + "点攻击力"); + sb.Append("每有"+ resultValue.Split("_")[0]+"个红色地块增加" + resultValue.Split("_")[1] + "点攻击力"); break; case Name.WeaponNodeFunction.everyYellowNodeAddScore: - sb.Append("每有一个黄色地块增加" + int.Parse(resultValue) + "点攻击力"); + sb.Append("每有"+ resultValue.Split("_")[0]+"个黄色地块增加" + resultValue.Split("_")[1] + "点攻击力"); break; case Name.WeaponNodeFunction.everyBlueNodeAddScore: - sb.Append("每有一个蓝色地块增加" + int.Parse(resultValue) + "点攻击力"); + sb.Append("每有" + resultValue.Split("_")[0] + "个蓝色地块增加" + resultValue.Split("_")[1] + "点攻击力"); break; case Name.WeaponNodeFunction.everyBlackNodeAddScore: - sb.Append("每有一个黑色地块增加" + int.Parse(resultValue) + "点攻击力"); + sb.Append("每有" + resultValue.Split("_")[0] + "个黑色地块增加" + resultValue.Split("_")[1] + "点攻击力"); break; case Name.WeaponNodeFunction.everyHolyNodeAddScore: - sb.Append("每有一个圣光地块增加" + int.Parse(resultValue) + "点攻击力"); + sb.Append("每有" + resultValue.Split("_")[0] + "个圣光地块增加" + resultValue.Split("_")[1] + "点攻击力"); break; case Name.WeaponNodeFunction.everyBombAddScore: sb.Append("每有一个炸弹增加" + int.Parse(resultValue) + "点攻击力"); @@ -1161,6 +1161,8 @@ public static class Name public const string everyBlueNodeAddScore = "everyBlueNodeAddScore"; //每有黑色+n public const string everyBlackNodeAddScore = "everyBlackNodeAddScore"; + //每有白色+n + public const string everyWhiteNodeAddScore = "everyBlackNodeAddScore"; //每有圣光+n public const string everyHolyNodeAddScore = "everyHolyNodeAddScore"; //每有炸弹+n @@ -1201,6 +1203,14 @@ public static class Name public static readonly HashSet WeaponNodeLevelSet = new HashSet { Basic,Elementary,Intermediate,Advanced}; } + public static class EveryNodeAddScoreResultSet + { + public static readonly HashSet BasiclSet = new HashSet { "2_1", "3_2" }; + public static readonly HashSet ElementarySet = new HashSet { "1_1" }; + public static readonly HashSet IntermediateSet = new HashSet { "1_2" }; + public static readonly HashSet AdvancedSet = new HashSet { "1_3" }; + } + public static class DomainFunction { //加分 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs index bbd53f5e..1c1f7196 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs @@ -8,6 +8,8 @@ using Unity.VisualScripting; using UnityEngine; using static Cinemachine.DocumentationSortingAttribute; using static Name; +using static UnityEngine.InputSystem.InputControlScheme.MatchResult; +using Match = System.Text.RegularExpressions.Match; public class WeaponManager : Singleton { @@ -162,117 +164,15 @@ public class WeaponManager : Singleton public GameObject getRandomWeaponNodeForPlayer() { - GameObject gem = Instantiate(Resources.Load(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName)); - string condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerConditionSet, 1).ElementAt(0); - string conditionValue = ""; - string[] nodesMark = new string[4]; - string[] nodesColor = new string[4]; - string result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerResultSet, 1).ElementAt(0); - string resultValue = ""; - switch (condition) - { - case Name.WeaponNodeCondition.position: - conditionValue = MathTool.GetRandomElements(new HashSet { "0", "1", "2", "3", "4" }, 1).ElementAt(0); - break; - case Name.WeaponNodeCondition.positionUnused: - conditionValue = MathTool.GetRandomElements(new HashSet { "0", "1", "2", "3", "4" }, 1).ElementAt(0); - break; - case Name.WeaponNodeCondition.positionUsed: - conditionValue = MathTool.GetRandomElements(new HashSet { "0", "1", "2", "3", "4" }, 1).ElementAt(0); - break; - case Name.WeaponNodeCondition.diffSettle: - conditionValue = Name.none; - break; - case Name.WeaponNodeCondition.usedCard: - conditionValue = MathTool.GetRandomElements(new HashSet { "1", "2", "3", "4", "5" }, 1).ElementAt(0); - break; - case Name.WeaponNodeCondition.threeColorDiffMoreThan: - conditionValue = MathTool.GetRandomElements(new HashSet { "3", "4", "5" }, 1).ElementAt(0); - break; - case Name.WeaponNodeCondition.everyNumNodeConvert: - conditionValue = MathTool.GetRandomElements(new HashSet { "7", "8", "9" }, 1).ElementAt(0); - break; - case Name.WeaponNodeCondition.bombbomb: - conditionValue = Name.none; - break; - case Name.WeaponNodeCondition.node: - conditionValue = Name.none; - HashSet nodesA = MathTool.GetRandomElements(new HashSet { "1_0", "-1_0", "0_1", "0_-1", "-1_1", "-1_-1" }, 3); - nodesA.Add("0_0"); - nodesMark = nodesA.ToArray(); - nodesColor = new string[4] { MathTool.GetRandomElements(new HashSet { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0) - ,MathTool.GetRandomElements(new HashSet { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0) - ,MathTool.GetRandomElements(new HashSet { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0) - ,MathTool.GetRandomElements(new HashSet { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0)}; - break; - case Name.WeaponNodeCondition.cardConditionPattern: - conditionValue = Name.none; - StringBuilder sb = new StringBuilder(); - sb.Append(MathTool.GetRandomElements(new HashSet { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0)) - .Append(MathTool.GetRandomElements(new HashSet { "<", ">" }, 1).ElementAt(0)) - .Append(MathTool.GetRandomElements(new HashSet { "5", "6", "7", "8", "9" }, 1).ElementAt(0)); - condition = sb.ToString(); - break; - } - switch (result) - { - case Name.WeaponNodeFunction.addScore: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(7, 12), 1).ElementAt(0); - break; - case Name.WeaponNodeFunction.mulScore: - resultValue = MathTool.GetRandomElements(new HashSet { "1", "2" }, 1).ElementAt(0); - break; - case Name.WeaponNodeFunction.repetWeaponNode: - resultValue = MathTool.GetRandomElements(new HashSet { "0", "1", "2", "3", "4" }, 1).ElementAt(0); - break; - case Name.WeaponNodeFunction.redNodeCount: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(3, 8), 1).ElementAt(0); - break; - case Name.WeaponNodeFunction.blueNodeCount: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(3, 8), 1).ElementAt(0); - break; - case Name.WeaponNodeFunction.yellowNodeCount: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(3, 8), 1).ElementAt(0); - break; - case Name.WeaponNodeFunction.mostNodeCount: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(3, 8), 1).ElementAt(0); - break; - case Name.WeaponNodeFunction.leastNodeCount: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(3, 8), 1).ElementAt(0); - break; - case Name.WeaponNodeFunction.allNodeCount: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(2, 4), 1).ElementAt(0); - break; - case Name.WeaponNodeFunction.drawCard: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(1, 4), 1).ElementAt(0); - break; - case Name.WeaponNodeFunction.everyRedNodeAddScore: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(1, 3), 1).ElementAt(0); - break; - case Name.WeaponNodeFunction.everyYellowNodeAddScore: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(1, 3), 1).ElementAt(0); - break; - case Name.WeaponNodeFunction.everyBlueNodeAddScore: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(1, 3), 1).ElementAt(0); - break; - case Name.NodeItem.Volcano: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(1, 2), 1).ElementAt(0); - break; - } - WeaponNode weaponNode = gem.GetComponent(); - weaponNode.result = result; - weaponNode.resultValue = resultValue; - weaponNode.condition = condition; - weaponNode.conditionValue = conditionValue; - weaponNode.nodesMark = nodesMark; - weaponNode.nodesColor = nodesColor; - return gem; + string level= MathTool.GetRandomElements(Name.WeaponNodeLevel.WeaponNodeLevelSet,1).ElementAt(0); + return getRandomWeaponNodeForPlayerWithLevel(level); } public GameObject getRandomWeaponNodeForPlayerWithLevel(string level) { GameObject gem = Instantiate(Resources.Load(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName)); string condition = ""; + HashSet resultSet = new HashSet(); switch (level) { case Name.WeaponNodeLevel.Basic: @@ -296,21 +196,23 @@ public class WeaponManager : Singleton switch (level) { case Name.WeaponNodeLevel.Basic: - result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerBasicResultSet, 1).ElementAt(0); + resultSet = Name.WeaponNodeFunction.PlayerBasicResultSet; break; case Name.WeaponNodeLevel.Elementary: - result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerElementaryResultSet, 1).ElementAt(0); + resultSet = Name.WeaponNodeFunction.PlayerElementaryResultSet; break; case Name.WeaponNodeLevel.Intermediate: - result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerIntermediateResultSet, 1).ElementAt(0); + resultSet = Name.WeaponNodeFunction.PlayerIntermediateResultSet; break; case Name.WeaponNodeLevel.Advanced: - result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerAdvancedResultSet, 1).ElementAt(0); + resultSet = Name.WeaponNodeFunction.PlayerAdvancedResultSet; break; } - + string resultValue = ""; conditionValue = getConditionValueWithLevel(level,ref condition, ref nodesMark, ref nodesColor); + checkResultSetRationality(ref resultSet, condition); + result = MathTool.GetRandomElements(resultSet, 1).ElementAt(0); resultValue = getResultValueWithLevel(level,ref result, condition, conditionValue); WeaponNode weaponNode = gem.GetComponent(); weaponNode.result = result; @@ -321,7 +223,86 @@ public class WeaponManager : Singleton weaponNode.nodesColor = nodesColor.ToArray(); return gem; } - + + public string getEveryNodeAddScoreValue(string level,string condition) + { + string resultValue = ""; + HashSet resultSet = new HashSet(); + switch (level) + { + case Name.WeaponNodeLevel.Basic: + resultSet = Name.EveryNodeAddScoreResultSet.BasiclSet; + break; + case Name.WeaponNodeLevel.Elementary: + resultSet = Name.EveryNodeAddScoreResultSet.ElementarySet; + break; + case Name.WeaponNodeLevel.Intermediate: + resultSet = Name.EveryNodeAddScoreResultSet.IntermediateSet; + break; + case Name.WeaponNodeLevel.Advanced: + resultSet = Name.EveryNodeAddScoreResultSet.AdvancedSet; + break; + } + //checkResultSetRationality(ref resultSet, condition); + resultValue = MathTool.GetRandomElements(resultSet, 1).ElementAt(0); + return resultValue; + } + public void checkResultSetRationality(ref HashSet set,string condition) + { + Match match = System.Text.RegularExpressions.Regex.Match(condition, Name.Regex.cardConditionPattern); + if (match.Success) + { + //Debug.Log("checkResultSetRationality成功2"); + string firstPart = match.Groups[1].Value; // 第一部分 + string op = match.Groups[2].Value; // 运算符部分 + string secondPart = match.Groups[3].Value; // 第二部分 + if (op.Equals("<")) + { + //Debug.Log("checkResultSetRationality成功1"); + resultBlockingPolicy(firstPart,ref set); + } + } + } + //屏蔽策略 + public void resultBlockingPolicy(string firstPart, ref HashSet set) + { + switch (firstPart) + { + case Name.Color.Red: + set.Remove(Name.WeaponNodeFunction.everyRedNodeAddScore); + set.Remove(Name.WeaponNodeFunction.redNodeCount); + set.Remove(Name.WeaponNodeFunction.leastNodeCount); + set.Remove(Name.WeaponNodeFunction.mostNodeCount); + set.Remove(Name.WeaponNodeFunction.allNodeCount); + break; + case Name.Color.Blue: + set.Remove(Name.WeaponNodeFunction.everyBlueNodeAddScore); + set.Remove(Name.WeaponNodeFunction.blueNodeCount); + set.Remove(Name.WeaponNodeFunction.leastNodeCount); + set.Remove(Name.WeaponNodeFunction.mostNodeCount); + set.Remove(Name.WeaponNodeFunction.allNodeCount); + break; + case Name.Color.Yellow: + set.Remove(Name.WeaponNodeFunction.everyYellowNodeAddScore); + set.Remove(Name.WeaponNodeFunction.yellowNodeCount); + set.Remove(Name.WeaponNodeFunction.leastNodeCount); + set.Remove(Name.WeaponNodeFunction.mostNodeCount); + set.Remove(Name.WeaponNodeFunction.allNodeCount); + break; + case Name.Color.Black: + set.Remove(Name.WeaponNodeFunction.everyBlackNodeAddScore); + set.Remove(Name.WeaponNodeFunction.leastNodeCount); + set.Remove(Name.WeaponNodeFunction.mostNodeCount); + set.Remove(Name.WeaponNodeFunction.allNodeCount); + break; + case Name.Color.White: + set.Remove(Name.WeaponNodeFunction.everyWhiteNodeAddScore); + set.Remove(Name.WeaponNodeFunction.leastNodeCount); + set.Remove(Name.WeaponNodeFunction.mostNodeCount); + set.Remove(Name.WeaponNodeFunction.allNodeCount); + break; + } + } public WeaponNodeDataPair getRandomConditionWithLevel(string level) { string condition = ""; @@ -384,6 +365,7 @@ public class WeaponManager : Singleton { GameObject gem = Instantiate(Resources.Load(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName)); string condition = ""; + HashSet resultSet= new HashSet(); switch (level) { case Name.WeaponNodeLevel.Basic: @@ -407,21 +389,22 @@ public class WeaponManager : Singleton switch (level) { case Name.WeaponNodeLevel.Basic: - result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerBasicAddScoreResultSet, 1).ElementAt(0); + resultSet = Name.WeaponNodeFunction.PlayerBasicResultSet; break; case Name.WeaponNodeLevel.Elementary: - result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerElementaryResultSet, 1).ElementAt(0); + resultSet = Name.WeaponNodeFunction.PlayerElementaryResultSet; break; case Name.WeaponNodeLevel.Intermediate: - result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerIntermediateResultSet, 1).ElementAt(0); + resultSet = Name.WeaponNodeFunction.PlayerIntermediateResultSet; break; case Name.WeaponNodeLevel.Advanced: - result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerAdvancedResultSet, 1).ElementAt(0); + resultSet = Name.WeaponNodeFunction.PlayerAdvancedResultSet; break; } - string resultValue = ""; conditionValue = getConditionValueWithLevel(level, ref condition, ref nodesMark, ref nodesColor); + checkResultSetRationality(ref resultSet, condition); + result = MathTool.GetRandomElements(resultSet, 1).ElementAt(0); resultValue = getResultValueWithLevel(level, ref result, condition, conditionValue); WeaponNode weaponNode = gem.GetComponent(); weaponNode.result = result; @@ -833,6 +816,7 @@ public class WeaponManager : Singleton public string getResultValueWithLevel(string level,ref string result, string condition, string conditionValue) { string resultValue = ""; + HashSet resultSet = new HashSet(); switch (result) { case Name.WeaponNodeFunction.addScore: @@ -921,21 +905,7 @@ public class WeaponManager : Singleton case Name.WeaponNodeFunction.everyRedNodeAddScore: case Name.WeaponNodeFunction.everyYellowNodeAddScore: case Name.WeaponNodeFunction.everyBlueNodeAddScore: - switch (level) - { - case Name.WeaponNodeLevel.Basic: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(1, 1), 1).ElementAt(0); - break; - case Name.WeaponNodeLevel.Elementary: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(2, 3), 1).ElementAt(0); - break; - case Name.WeaponNodeLevel.Intermediate: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(4, 5), 1).ElementAt(0); - break; - case Name.WeaponNodeLevel.Advanced: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(6, 8), 1).ElementAt(0); - break; - } + resultValue = getEveryNodeAddScoreValue(level, condition); break; case Name.NodeItem.Volcano: switch (level) @@ -1012,10 +982,10 @@ public class WeaponManager : Singleton { Name.WeaponNodeLevel.Elementary, MathTool.GenerateIntegerSet(3, 3) }, { Name.WeaponNodeLevel.Intermediate, MathTool.GenerateIntegerSet(4, 5) }}; Dictionary> everyNodeAddScoreDict = new Dictionary>{ - { Name.WeaponNodeLevel.Basic, MathTool.GenerateIntegerSet(1, 1) }, - { Name.WeaponNodeLevel.Elementary, MathTool.GenerateIntegerSet(2, 3) }, - { Name.WeaponNodeLevel.Intermediate, MathTool.GenerateIntegerSet(4, 5) }, - { Name.WeaponNodeLevel.Advanced, MathTool.GenerateIntegerSet(6, 8) }}; + { Name.WeaponNodeLevel.Basic, Name.EveryNodeAddScoreResultSet.BasiclSet }, + { Name.WeaponNodeLevel.Elementary, Name.EveryNodeAddScoreResultSet.ElementarySet }, + { Name.WeaponNodeLevel.Intermediate, Name.EveryNodeAddScoreResultSet.IntermediateSet }, + { Name.WeaponNodeLevel.Advanced, Name.EveryNodeAddScoreResultSet.AdvancedSet }}; Dictionary> isIgnoreConditionDict = new Dictionary>(); Dictionary> VolcanoDict = new Dictionary>{ { Name.WeaponNodeLevel.Basic, MathTool.GenerateIntegerSet(1, 1) }, diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponNode.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponNode.cs index 91d81e3c..cc051c32 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponNode.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponNode.cs @@ -2,6 +2,7 @@ using System; using System.Collections; using System.Collections.Generic; using System.Drawing.Imaging; +using System.Linq; using System.Text.RegularExpressions; using TMPro; using Unity.VisualScripting; @@ -318,23 +319,23 @@ public class WeaponNode : MonoBehaviour,IDragHandler, IBeginDragHandler, IEndDra break; case Name.WeaponNodeFunction.everyRedNodeAddScore: int redNodeCount = getNodeTools.getNodesCount(Name.Color.Red); - score += redNodeCount * int.Parse(resultValue); + score += redNodeCount / int.Parse(resultValue.Split("_")[0]) * int.Parse(resultValue.Split("_")[1]); break; case Name.WeaponNodeFunction.everyYellowNodeAddScore: int yellowNodeCount = getNodeTools.getNodesCount(Name.Color.Yellow); - score += yellowNodeCount * int.Parse(resultValue); + score += yellowNodeCount / int.Parse(resultValue.Split("_")[0]) * int.Parse(resultValue.Split("_")[1]); break; case Name.WeaponNodeFunction.everyBlueNodeAddScore: int blueNodeCount = getNodeTools.getNodesCount(Name.Color.Blue); - score += blueNodeCount * int.Parse(resultValue); + score += blueNodeCount / int.Parse(resultValue.Split("_")[0]) * int.Parse(resultValue.Split("_")[1]); break; case Name.WeaponNodeFunction.everyBlackNodeAddScore: int blackNodeCount = getNodeTools.getNodesCount(Name.Color.Black); - score += blackNodeCount * int.Parse(resultValue); + score += blackNodeCount / int.Parse(resultValue.Split("_")[0]) * int.Parse(resultValue.Split("_")[1]); break; case Name.WeaponNodeFunction.everyHolyNodeAddScore: int holyNodeCount = getNodeTools.getNodesCount(Name.Color.Holy); - score += holyNodeCount * int.Parse(resultValue); + score += holyNodeCount / int.Parse(resultValue.Split("_")[0]) * int.Parse(resultValue.Split("_")[1]); break; case Name.WeaponNodeFunction.everyBombAddScore: int bombCount = 0; diff --git a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv index df41bbcf..cdb40bb4 100644 --- a/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv +++ b/ColorlessWorld-2024-4-2/Assets/StreamingAssets/card_data_5.csv @@ -14,7 +14,7 @@ 1016,1,1,1,3_1,none,53,2&3,0_0;1_0;2_0;0_1;0_-1;1_2;1_-2,red;red;red;red;red;red;red,CardIcon/1021,散射,1 1017,1,1,1,3_1,none,17,1,0_0;1_0;2_0;3_0;2_1;2_-1;2_2;2_-2,blue;blue;blue;blue;blue;blue;blue;blue,CardIcon/1021,单向箭头,2 1007,1,2,1,3_1,none,1,20,0_0;1_0;0_1;0_-1;1_1;1_-1;1_2;1_-2,black;black;black;black;black;black;black;black,CardIcon/1021,黑火药,3 -1018,1,0,1,,none,none,none,0_0;1_0;-1_0,red;red_Bomb;blue,CardIcon/1021,Test18,1 +1018,1,0,1,,none,none,none,0_0;1_0;-1_0,red;red;blue,CardIcon/1021,Test18,1 1019,1,0,1,,none,none,none,0_0;1_0;-1_0,blue;blue;blue,CardIcon/1021,Test19,1 1020,1,0,1,,none,none,none,0_0;1_0;-1_0,yellow;yellow;yellow,CardIcon/1021,Test20,1 1021,1,0,1,,none,none,none,0_0;0_1;0_-1;1_0,red;blue;yellow;red,CardIcon/1021,Test21,1 @@ -26,7 +26,7 @@ 1027,1,0,1,,none,none,none,0_0;1_0;-1_0;-1_1;-1_-1,yellow;yellow;yellow;red;red,CardIcon/1021,Test27,1 1028,1,0,1,,none,none,none,0_0;1_0;2_0;-1_0;-2_0,red;blue;blue;yellow;yellow,CardIcon/1021,Test28,1 1029,1,0,1,,none,none,none,0_0;0_1;-1_-1;1_2;-1_-2,blue;blue;blue;blue;blue,CardIcon/1021,Test29,1 -1030,1,0,1,,none,none,none,1_0;0_1;0_-1;-1_0;-1_1;-1_-1,red;red;red;yellow;yellow;yellow_Burrower,CardIcon/1021,Test30,1 +1030,1,0,1,,none,none,none,1_0;0_1;0_-1;-1_0;-1_1;-1_-1,red;red;red;yellow;yellow;yellow,CardIcon/1021,Test30,1 1031,1,0,1,,none,none,none,0_1;0_-1;-1_0;0_0,red;red;yellow;yellow,CardIcon/1021,Test31,1 1032,1,0,1,,none,none,none,1_0;-1_-1;-1_1;0_0,blue;blue;blue;blue,CardIcon/1021,Test32,1 1033,1,0,1,,none,none,none,0_0;-1_1;0_2;-1_-1;0_-2,yellow;yellow;blue;yellow;blue,CardIcon/1021,Test33,1 diff --git a/ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache b/ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache index 5fec28537b4f3df15387100d3e033dd591048d9f..005f92a1d520c661392c19c6c1f497d2f973b421 100644 GIT binary patch delta 1156 zcmY*YTS!zv80H&u+-gj-#a%bi6x7HHBce!f>&Z+q=^-mAvWH0A%IHFnVNpmygkbd3 zL#8AZh8ZLbEQy!IOp01GHoWAevfHNJ=B)R zDdQo+sj>|bad;Tw3!BvnZ<*BmBn zLHLs`I0=e~Qw~4Eafrrf3xSK0p1>tfJ;q*$tLauBC*AhJX(E%EK5Uw%%EJHHpXos) ztr|cYxx+MpLM@AV;QE8v3#!3h;j8ZR6xA_ZQ)E+ zBNxd0KHLD;_+_vk@2z5D5O*LLQyQ5{IB4fE9GXF32+J*#Q$|n-zGcaH^tPa^7{y_5 zJxJmu&Vp+-W#ube0bd>VL0wz%8hapgVRpCEi8rvz<~JysHq}Yb-%aU8hHeGa`VIl1 zeKa4&(Y^rUOjuRv*9Aq*W4W|3fEPU2XNF|e2Sb$qv*x0;6NW_(#J?kSbhGIn< zz9F7kKN(6N`iArBD~hT=qc^1a(J$BzKE69+uEC`LD?H#j%F=jw)9M-gj#>!q#*~8P zKjDz=KXD8~2hRMzSb1TW+kd0Rl0R$`yTEgDO)E=+IAF;=`WKhL^Q+D9o&7KF~hgka5kH~T}Z3?*d!>U&De{^aP}j_se!Xnh?hI8fW%TT zg2hU=jU5W%AR`m0a%d(yKW*upv_vo+?J0}=MsVGNajNqnhL#J~!S(9MNx_UzmPdS5 jAt;^03M{oAMX^&B$IWwD5x8C-*&M@8Bh(<<&Sv2s`%%|k delta 1156 zcmY*YYe-Z<6y_UocC|6F7I$5jEWzxh7!m}6=AR;Z(vSKfLIr`8rILa4Kt-_v5lQn< zlqp4p5d{SUlI&_?CW$T}{uaBx#a?zF)XHs5 zRn=($dASv(;JXg!MdAaT1aHbar%tZ5X(z%chV1|nXv&KOx!sF$i18HFr2kK(>>k8Y z+7pCRZ98l-;8Pu*F|)%%OCG`_uXo@OczI=m8t?2x2}DwJU1&@^rFJ2nTv05Uye$xv z{}Nkh!*4`VW*6S@)K#a|y`)Dt3jTQOc~vxagTM_eGNT6r5bZ1LLlc+jz@!GO+Olbh zBI1%Gy*Ond=%!`;aLbB59EO;?WX^HXT|ZnpGMVAWE(`k=|FJ(afGAr363LVmW)R3R zWYG`Yb67z60~q9v3%bIapDI1RkE=zp^_eOhUj1bCpavntxN!(o5booqQp?rKrE=$U z+yw8k={JHeFm77+br|<7jGeT11Wtp&#A~FRok?$y10HeEKdnKi8pSbi!xD*iIBOQQ zW4Ho7xv@{Rt^0sH2&2#g;GnXPaLBfg*as1eQO@Z9UG(bHyl$lFwugM5Fd+;d^@cb) zGJ!Z9R^93wf}$6*Ewp0-Z@Ix%uK%owA`H3o8*a+}s#)~-3kpmQnUiP;A*F3U;340X zrgZTS)Tpm$YW#+$p;VVlBNzPY#rPSG$%`4}n+9k%Z-LjXQ!>loPc&O>c2emqoU&sU zCoF*0C@&l`_Ya!DjmXQe0QQ@c4h2zULLL2!3*bgXWjR