diff --git a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity index 1bfedf83..8312158e 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity +++ b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity @@ -107060,8 +107060,8 @@ MonoBehaviour: cardFather: {fileID: 1642602660} cardPrefab: {fileID: 5488427976241108427, guid: b4269360e36ee9e49becd4021ec00f97, type: 3} - currentEnemyHP: 60 - maxEnemyHP: 60 + currentEnemyHP: 1 + maxEnemyHP: 1 --- !u!4 &1584057329 Transform: m_ObjectHideFlags: 0 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs index 265fc5ce..7839b083 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs @@ -598,6 +598,9 @@ public static class Name case Name.WeaponNodeFunction.addScore: sb.Append("攻击力+" + int.Parse(resultValue)); break; + case Name.WeaponNodeFunction.addScoreThisTurn: + sb.Append("攻击力+" + int.Parse(resultValue)); + break; case Name.WeaponNodeFunction.mulScore: sb.Append("攻击力*" + (1+float.Parse(resultValue))); break; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs index bc2d769b..810e99ba 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs @@ -305,7 +305,7 @@ public class WeaponManager : Singleton string resultValue = ""; conditionValue = getConditionValueWithLevel(level,ref condition, ref nodesMark, ref nodesColor); - resultValue = getResultValueWithLevel(level, result, condition, conditionValue); + resultValue = getResultValueWithLevel(level,ref result, condition, conditionValue); WeaponNode weaponNode = gem.GetComponent(); weaponNode.result = result; weaponNode.resultValue = resultValue; @@ -458,7 +458,7 @@ public class WeaponManager : Singleton string resultValue = ""; conditionValue = getConditionValueWithLevel(conditionLevel,ref condition, ref nodesMark, ref nodesMark); - resultValue = getResultValueWithLevel(resultLevel, result, condition, conditionValue); + resultValue = getResultValueWithLevel(resultLevel,ref result, condition, conditionValue); WeaponNode weaponNode = gem.GetComponent(); weaponNode.result = result; weaponNode.resultValue = resultValue; @@ -591,7 +591,7 @@ public class WeaponManager : Singleton string resultValue = ""; conditionValue = getConditionValueWithLevel(conditionLevel,ref condition, ref nodesMark, ref nodesMark); - resultValue = getResultValueWithLevel(resultLevel, result, condition, conditionValue); + resultValue = getResultValueWithLevel(resultLevel,ref result, condition, conditionValue); WeaponNode weaponNode = gem.GetComponent(); weaponNode.result = result; weaponNode.resultValue = resultValue; @@ -714,7 +714,7 @@ public class WeaponManager : Singleton return conditionValue; } - public string getResultValueWithLevel(string level, string result, string condition, string conditionValue) + public string getResultValueWithLevel(string level,ref string result, string condition, string conditionValue) { string resultValue = ""; switch (result) @@ -847,6 +847,10 @@ public class WeaponManager : Singleton resultValue = MathTool.GetRandomElements(targets, 1).ElementAt(0); break; } + if (condition.Equals(Name.WeaponNodeCondition.everyNumNodeConvert)&&result.Equals(Name.WeaponNodeFunction.addScore)) + { + result = Name.WeaponNodeFunction.addScoreThisTurn; + } return resultValue; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponNode.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponNode.cs index 5142e7fd..4d7da792 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponNode.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponNode.cs @@ -103,7 +103,7 @@ public class WeaponNode : MonoBehaviour,IDragHandler, IBeginDragHandler, IEndDra Debug.Log("½áËã³É¹¦½Úµã1"); //score = 0; //scoreMul = 0f; - score += turnScore; + if (isIgnoreCondition||ConditionCheck(position)) { Debug.Log("½áËã³É¹¦½Úµã2"+"λÖÃ"+position); @@ -118,6 +118,7 @@ public class WeaponNode : MonoBehaviour,IDragHandler, IBeginDragHandler, IEndDra { } + score += turnScore; } public virtual void SettleWeaponNodeForPlayerTurnEnd(int position) @@ -149,6 +150,7 @@ public class WeaponNode : MonoBehaviour,IDragHandler, IBeginDragHandler, IEndDra extraMostNodeCount = 0; extraLeastNodeCount = 0; extraAllNodeCount = 0; + turnScore = 0; Debug.Log("½áËã³É¹¦½Úµã3"); string[] keys = result.Split("_"); for (int j = 0; j < keys.Length; j++) @@ -255,6 +257,23 @@ public class WeaponNode : MonoBehaviour,IDragHandler, IBeginDragHandler, IEndDra public void SingleFunctionSettle(string result, string resultValue,ref int score) { //score += turnScore; + if (condition.Equals(Name.WeaponNodeCondition.everyNumNodeConvert)) + { + for (int i = 0; i < MapUnityManager.Instance.switchNodeNum / int.Parse(conditionValue); i++) + { + BasicSingleFunctionSettle(result, resultValue,ref score); + } + } + else + { + BasicSingleFunctionSettle(result, resultValue, ref score); + } + + + } + + public void BasicSingleFunctionSettle(string result, string resultValue, ref int score) + { switch (result) { case Name.WeaponNodeFunction.addScore: @@ -262,7 +281,7 @@ public class WeaponNode : MonoBehaviour,IDragHandler, IBeginDragHandler, IEndDra Debug.Log("score=" + score); break; case Name.WeaponNodeFunction.mulScore: - score = (int)(score*(1+float.Parse(resultValue))); + score = (int)(score * (1 + float.Parse(resultValue))); break; case Name.WeaponNodeFunction.redNodeCount: extraRedNodeCount += int.Parse(resultValue); @@ -295,7 +314,7 @@ public class WeaponNode : MonoBehaviour,IDragHandler, IBeginDragHandler, IEndDra Transform weaponSlot = WeaponManager.Instance.playerWeaponNodeList.GetChild(int.Parse(resultValue)); Transform weaponNode = weaponSlot.GetChild(0); WeaponNode node = weaponNode.transform.GetComponent(); - SingleFunctionSettle(node.result, node.resultValue,ref score); + SingleFunctionSettle(node.result, node.resultValue, ref score); break; case Name.WeaponNodeFunction.everyRedNodeAddScore: int redNodeCount = getNodeTools.getNodesCount(Name.Color.Red); @@ -319,9 +338,9 @@ public class WeaponNode : MonoBehaviour,IDragHandler, IBeginDragHandler, IEndDra break; case Name.WeaponNodeFunction.everyBombAddScore: int bombCount = 0; - foreach(MapUnity nodeB in getNodeTools.getAllNodes()) + foreach (MapUnity nodeB in getNodeTools.getAllNodes()) { - if(nodeB.blockNode!=null&& nodeB.blockNode is Bomb) + if (nodeB.blockNode != null && nodeB.blockNode is Bomb) { bombCount++; } @@ -340,10 +359,10 @@ public class WeaponNode : MonoBehaviour,IDragHandler, IBeginDragHandler, IEndDra score += believerCount * int.Parse(resultValue); break; case Name.WeaponNodeFunction.addScoreThisTurn: - turnScore+= int.Parse(resultValue); + turnScore += int.Parse(resultValue); break; case Name.WeaponNodeFunction.bomb: - foreach(MapUnity nodeC in MathTool.GetRandomElements(getNodeTools.getAllNodes(), int.Parse(resultValue))) + foreach (MapUnity nodeC in MathTool.GetRandomElements(getNodeTools.getAllNodes(), int.Parse(resultValue))) { CardManager.Instance.setItemForSingeNode(Name.NodeItem.Bomb, nodeC, Name.itemBelong.none); } @@ -546,7 +565,7 @@ public class WeaponNode : MonoBehaviour,IDragHandler, IBeginDragHandler, IEndDra if(MapUnityManager.Instance.switchNodeNum>= int.Parse(conditionValue)) { check=true; - MapUnityManager.Instance.switchNodeNum-= int.Parse(conditionValue); + //MapUnityManager.Instance.switchNodeNum-= int.Parse(conditionValue); } break;