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/Weapon/WeaponNode.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponNode.cs index 4d5eec31..2a578516 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponNode.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponNode.cs @@ -423,29 +423,69 @@ public class WeaponNode : MonoBehaviour,IDragHandler, IBeginDragHandler, IEndDra break; case Name.WeaponNodeCondition.positionUnused: Transform weaponSlotA = WeaponManager.Instance.playerWeaponNodeList.GetChild(int.Parse(conditionValue)); - Transform weaponANode = weaponSlotA.GetChild(0); - WeaponNode nodeA = weaponANode.transform.GetComponent(); - if (position == int.Parse(conditionValue)) + if (weaponSlotA == null) { - + check = false; + break; } - else if (!nodeA.ConditionCheck(int.Parse(conditionValue))) + if (weaponSlotA.childCount>0) { - check = true; + Transform weaponANode = weaponSlotA.GetChild(0); + WeaponNode nodeA = weaponANode.transform.GetComponent(); + if (weaponANode == null || nodeA == null) + { + check = false; + break; + } + if (position == int.Parse(conditionValue) || nodeA.condition.Equals(Name.WeaponNodeCondition.position) || nodeA.condition.Equals(Name.WeaponNodeCondition.positionUnused)) + { + check = false; + break; + } + else if (!nodeA.ConditionCheck(int.Parse(conditionValue))) + { + check = true; + } + } + else + { + check = false; + break; } + break; case Name.WeaponNodeCondition.positionUsed: Transform weaponSlotB = WeaponManager.Instance.playerWeaponNodeList.GetChild(int.Parse(conditionValue)); - Transform weaponBNode = weaponSlotB.GetChild(0); - WeaponNode nodeB = weaponBNode.transform.GetComponent(); - if (position == int.Parse(conditionValue)) + if (weaponSlotB == null) { - + check=false; + break; } - else if (nodeB.ConditionCheck(int.Parse(conditionValue))) + if (weaponSlotB.childCount > 0) { - check = true; + Transform weaponBNode = weaponSlotB.GetChild(0); + WeaponNode nodeB = weaponBNode.transform.GetComponent(); + if (weaponBNode == null || nodeB == null) + { + check = false; + break; + } + if (position == int.Parse(conditionValue) || nodeB.condition.Equals(Name.WeaponNodeCondition.position) || nodeB.condition.Equals(Name.WeaponNodeCondition.positionUnused)) + { + check = false; + break; + } + else if (nodeB.ConditionCheck(int.Parse(conditionValue))) + { + check = true; + } } + else + { + check = false; + break; + } + break; case Name.WeaponNodeCondition.node: check = checkConditionNode(nodesMark, nodesColor);