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/Scripts/StartChoosePoint/GetWeaponNode.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/StartChoosePoint/GetWeaponNode.cs index 0083cbba..f21e0bb6 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/StartChoosePoint/GetWeaponNode.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/StartChoosePoint/GetWeaponNode.cs @@ -52,7 +52,15 @@ public class GetWeaponNode : MonoBehaviour StartChooseCardManager.Instance.getWeaponNodeAnimator.SetTrigger("end"); TipManager.Instance.SendGetItemTip("附魔次数已用尽"); } - StartChooseCardManager.Instance.RefreshWeaponNode(); + if (StartChooseCardManager.Instance.getWeaponNodeCount == 1 && StartChooseCardManager.Instance.CheckPlayerHaveAddScore()) + { + StartChooseCardManager.Instance.RefreshWeaponNodeWithAddScore(); + } + else + { + StartChooseCardManager.Instance.RefreshWeaponNode(); + } + //StartChooseCardManager.Instance.RefreshWeaponNode(); break; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/StartChoosePoint/StartChooseCardManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/StartChoosePoint/StartChooseCardManager.cs index de343304..574925ca 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/StartChoosePoint/StartChooseCardManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/StartChoosePoint/StartChooseCardManager.cs @@ -2,6 +2,7 @@ using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngine; +using static Name; public class StartChooseCardManager : Singleton { @@ -120,6 +121,25 @@ public class StartChooseCardManager : Singleton } } + + public void RefreshWeaponNodeWithAddScore() + { + for (int i = 0; i < getWeaponNodeList.Count; i++) + { + if (getWeaponNodeList[i].currentWeaponNode != null) + { + Destroy(getWeaponNodeList[i].currentWeaponNode); + } + //GameObject weaponNode = WeaponManager.Instance.getRandomWeaponNodeForPlayer(); + GameObject weaponNode = WeaponManager.Instance.getRandomAddScoreWeaponNodeForPlayerWithLevel(Name.WeaponNodeLevel.Basic); + weaponNode.transform.parent = getWeaponNodeList[i].weaponNodeFather; + weaponNode.transform.localPosition = Vector3.zero; + weaponNode.transform.localScale = Vector3.one; + weaponNode.transform.localEulerAngles = Vector3.zero; + getWeaponNodeList[i].currentWeaponNode = weaponNode; + + } + } public void LoadWeaponNodeToGame() { if (openCount > 0 || getWeaponNodeCount > 0) @@ -193,6 +213,27 @@ public class StartChooseCardManager : Singleton } } + public bool CheckPlayerHaveAddScore() + { + bool result=true; + for (int i = 0; i < playerWeaponNode.childCount; i++) + { + Transform weaponSlot = playerWeaponNode.GetChild(i); + if (weaponSlot.childCount != 0) + { + Transform weaponNode = weaponSlot.GetChild(0); + WeaponNode node = weaponNode.transform.GetComponent(); + if (Name.WeaponNodeFunction.PlayerBasicAddScoreResultSet.Contains(node.result)) + { + Debug.Log("成功进入3"); + result =false; + return result; + } + } + } + return result; + } + public void OpenBag() { PlayerStatusUIManager.Instance.OpenBag(); diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs index 7839b083..9827c6d7 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs @@ -1178,6 +1178,9 @@ public static class Name public static readonly HashSet PlayerBasicResultSet = new HashSet { addScore, redNodeCount, blueNodeCount ,yellowNodeCount,everyRedNodeAddScore,everyYellowNodeAddScore,everyBlueNodeAddScore}; + public static readonly HashSet PlayerBasicAddScoreResultSet = new HashSet { addScore + ,everyRedNodeAddScore,everyYellowNodeAddScore,everyBlueNodeAddScore}; + public static readonly HashSet PlayerElementaryResultSet = new HashSet { addScore, redNodeCount, blueNodeCount ,yellowNodeCount,mostNodeCount,leastNodeCount,drawCard,everyRedNodeAddScore,everyYellowNodeAddScore,everyBlueNodeAddScore}; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs index af638721..c688fc81 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs @@ -316,6 +316,59 @@ public class WeaponManager : Singleton return gem; } + + public GameObject getRandomAddScoreWeaponNodeForPlayerWithLevel(string level) + { + GameObject gem = Instantiate(Resources.Load(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName)); + string condition = ""; + switch (level) + { + case Name.WeaponNodeLevel.Basic: + condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerBasicConditionSet, 1).ElementAt(0); + break; + case Name.WeaponNodeLevel.Elementary: + condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerElementaryConditionSet, 1).ElementAt(0); + break; + case Name.WeaponNodeLevel.Intermediate: + condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerIntermediateConditionSet, 1).ElementAt(0); + break; + case Name.WeaponNodeLevel.Advanced: + condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerAdvancedConditionSet, 1).ElementAt(0); + break; + } + + string conditionValue = ""; + List nodesMark = new List(); + List nodesColor = new List(); + string result = ""; + switch (level) + { + case Name.WeaponNodeLevel.Basic: + result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerBasicAddScoreResultSet, 1).ElementAt(0); + break; + case Name.WeaponNodeLevel.Elementary: + result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerElementaryResultSet, 1).ElementAt(0); + break; + case Name.WeaponNodeLevel.Intermediate: + result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerIntermediateResultSet, 1).ElementAt(0); + break; + case Name.WeaponNodeLevel.Advanced: + result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerAdvancedResultSet, 1).ElementAt(0); + break; + } + + string resultValue = ""; + conditionValue = getConditionValueWithLevel(level, ref condition, ref nodesMark, ref nodesColor); + resultValue = getResultValueWithLevel(level, ref result, condition, conditionValue); + WeaponNode weaponNode = gem.GetComponent(); + weaponNode.result = result; + weaponNode.resultValue = resultValue; + weaponNode.condition = condition; + weaponNode.conditionValue = conditionValue; + weaponNode.nodesMark = nodesMark.ToArray(); + weaponNode.nodesColor = nodesColor.ToArray(); + return gem; + } public GameObject getRandomWeaponNodeForPlayerWithLevelDiff(int levelDiff) { GameObject gem = Instantiate(Resources.Load(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));