diff --git a/ColorlessWorld-2024-4-2/.vscode/extensions.json b/ColorlessWorld-2024-4-2/.vscode/extensions.json new file mode 100644 index 00000000..ddb6ff85 --- /dev/null +++ b/ColorlessWorld-2024-4-2/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "visualstudiotoolsforunity.vstuc" + ] +} diff --git a/ColorlessWorld-2024-4-2/.vscode/launch.json b/ColorlessWorld-2024-4-2/.vscode/launch.json new file mode 100644 index 00000000..da60e25a --- /dev/null +++ b/ColorlessWorld-2024-4-2/.vscode/launch.json @@ -0,0 +1,10 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Attach to Unity", + "type": "vstuc", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/ColorlessWorld-2024-4-2/.vscode/settings.json b/ColorlessWorld-2024-4-2/.vscode/settings.json new file mode 100644 index 00000000..a14b978e --- /dev/null +++ b/ColorlessWorld-2024-4-2/.vscode/settings.json @@ -0,0 +1,60 @@ +{ + "files.exclude": { + "**/.DS_Store": true, + "**/.git": true, + "**/.vs": true, + "**/.gitmodules": true, + "**/.vsconfig": true, + "**/*.booproj": true, + "**/*.pidb": true, + "**/*.suo": true, + "**/*.user": true, + "**/*.userprefs": true, + "**/*.unityproj": true, + "**/*.dll": true, + "**/*.exe": true, + "**/*.pdf": true, + "**/*.mid": true, + "**/*.midi": true, + "**/*.wav": true, + "**/*.gif": true, + "**/*.ico": true, + "**/*.jpg": true, + "**/*.jpeg": true, + "**/*.png": true, + "**/*.psd": true, + "**/*.tga": true, + "**/*.tif": true, + "**/*.tiff": true, + "**/*.3ds": true, + "**/*.3DS": true, + "**/*.fbx": true, + "**/*.FBX": true, + "**/*.lxo": true, + "**/*.LXO": true, + "**/*.ma": true, + "**/*.MA": true, + "**/*.obj": true, + "**/*.OBJ": true, + "**/*.asset": true, + "**/*.cubemap": true, + "**/*.flare": true, + "**/*.mat": true, + "**/*.meta": true, + "**/*.prefab": true, + "**/*.unity": true, + "build/": true, + "Build/": true, + "Library/": true, + "library/": true, + "obj/": true, + "Obj/": true, + "Logs/": true, + "logs/": true, + "ProjectSettings/": true, + "UserSettings/": true, + "temp/": true, + "Temp/": true + }, + "dotnet.defaultSolution": "ColorlessWorld-2024-4-2.sln" +} \ No newline at end of file diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs index f63c9d08..de4baca4 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs @@ -154,7 +154,7 @@ public static class Name if ((cardEntity.tempIsDisposable||cardOriginalData .IsDisposable)&&cardOriginalData.CardType!=Name.CardType.ability) { - sb.Append(","); + sb.Append(",消耗"); } /*foreach (KeyValuePair> kvp in cardOriginalData.conditionAndFunctionVal) { @@ -233,298 +233,298 @@ public static class Name case CardFunction.cardDamage: if(Usermanager.Instance!=null ) { - sb.Append("" + Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)) + "˺"); + sb.Append("造成" + Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)) + "点伤害"); } else { - sb.Append("" + int.Parse(kvp.Value) + "˺"); + sb.Append("造成" + int.Parse(kvp.Value) + "点伤害"); } break; case CardFunction.cardShield: - sb.Append("" + kvp.Value + "㻤"); + sb.Append("获得" + kvp.Value + "点护盾"); break; case CardFunction.posion: - sb.Append("ʩ" + kvp.Value + "ж"); + sb.Append("施加" + kvp.Value + "层中毒"); break; case CardFunction.fireSeed: - sb.Append("ʩ" + kvp.Value + ""); + sb.Append("施加" + kvp.Value + "层火种"); break; case CardFunction.vulnerable: - sb.Append("ʩ" + kvp.Value + ""); + sb.Append("施加" + kvp.Value + "层易伤"); break; case CardFunction.weak: - sb.Append("ʩ" + kvp.Value + ""); + sb.Append("施加" + kvp.Value + "层虚弱"); break; case CardFunction.coma: - sb.Append("ʩ" + kvp.Value + ""); + sb.Append("施加" + kvp.Value + "层昏迷"); break; case CardFunction.disarm: - sb.Append("ʩ" + kvp.Value + "е"); + sb.Append("施加" + kvp.Value + "层缴械"); break; case CardFunction.sleep: - sb.Append("ʩ" + kvp.Value + "˯"); + sb.Append("施加" + kvp.Value + "层睡眠"); break; case CardFunction.bleed: - sb.Append("ʩ" + kvp.Value + "Ѫ"); + sb.Append("施加" + kvp.Value + "层流血"); break; case CardFunction.thorn: - sb.Append("" + kvp.Value + "㾣"); + sb.Append("获得" + kvp.Value + "层荆棘"); break; case CardFunction.ember: - sb.Append("" + kvp.Value + ""); + sb.Append("获得" + kvp.Value + "层狂热"); break; case CardFunction.upSpeed: - sb.Append("" + kvp.Value + ""); + sb.Append("获得" + kvp.Value + "层加速"); break; case CardFunction.calm: - sb.Append("" + kvp.Value + "侲"); + sb.Append("获得" + kvp.Value + "层冷静"); break; case CardFunction.tempCastRange: - sb.Append("ͷž" + kvp.Value + ""); + sb.Append("卡牌释放距离增加" + kvp.Value + ""); break; case CardFunction.downSpeed: - sb.Append("" + kvp.Value + ""); + sb.Append("获得" + kvp.Value + "层减速"); break; case CardFunction.agile: - sb.Append("" + kvp.Value + ""); + sb.Append("获得" + kvp.Value + "层敏捷"); break; case CardFunction.immunity: - sb.Append("" + kvp.Value + "ħ"); + sb.Append("获得" + kvp.Value + "层魔抗"); break; case CardFunction.recoverHp: - sb.Append("ָ" + kvp.Value + "Ѫ"); + sb.Append("恢复" + kvp.Value + "点血量"); break; case CardFunction.extraDrawCardsNum: - sb.Append("»غ϶" + kvp.Value + ""); + sb.Append("下回合多抽" + kvp.Value + "张牌"); break; case CardFunction.teleport: - sb.Append("˲ƵĿ"); + sb.Append("瞬移到目标格子"); break; case CardFunction.clearAllAbnormalConditons: - sb.Append("쳣״̬"); + sb.Append("清除所有异常状态"); break; case CardFunction.firm: - sb.Append("ܲʧ"); + sb.Append("护盾不会消失"); break; case CardFunction.costRestore: - sb.Append("" + kvp.Value + ""); + sb.Append("获得" + kvp.Value + "点能量"); break; case CardFunction.drawCard: - sb.Append("" + kvp.Value + ""); + sb.Append("抽" + kvp.Value + "张牌"); break; case CardFunction.discard: - sb.Append("" + kvp.Value + ""); + sb.Append("弃" + kvp.Value + "张牌"); break; case CardFunction.nodeDiffDamage: - sb.Append("ɳز˺"); + sb.Append("造成场地差伤害"); break; case CardFunction.dyeing: - sb.Append("Ⱦɫ"); + sb.Append("染色"); break; case CardFunction.consumePlayerNodesForHealth: - sb.Append("ķΧڵѷӣָѪ"); + sb.Append("消耗范围内的友方格子,恢复消耗数量的血量"); break; case CardFunction.costStep: - sb.Append("" + kvp.Value + "ƶ"); + sb.Append("消耗" + kvp.Value + "点移动力"); break; case CardFunction.nextTurnExtraOneCost: - sb.Append("»غ϶ظһ"); + sb.Append("下回合额外回复一点能量"); break; case CardFunction.fireShield: - sb.Append("" + kvp.Value + ""); + sb.Append("获得" + kvp.Value + "层火盾"); break; case CardFunction.banStep: - sb.Append("ʩ" + kvp.Value + ""); + sb.Append("施加" + kvp.Value + "层缠绕"); break; case CardFunction.step: if (int.Parse(kvp.Value) > 0) { - sb.Append("" + kvp.Value + "ƶ"); + sb.Append("获得" + kvp.Value + "点移动力"); } else { - sb.Append("ʧȥ" + -int.Parse(kvp.Value) + "ƶ"); + sb.Append("失去" + -int.Parse(kvp.Value) + "点移动力"); } break; case CardFunction.dyeingAround: - sb.Append("ĿΧȾɫ"); + sb.Append("对目标周围染色"); break; case CardFunction.nextCardCostHp: - sb.Append("ʹһĸΪѪ"); + sb.Append("使下一张牌消耗改为血量"); break; case CardFunction.nextCardCostMinusOne: - sb.Append("ʹһ-1"); + sb.Append("使下一张牌消耗-1"); break; case CardFunction.cantUserEffectCaed: - sb.Append("غ޷ͷЧ"); + sb.Append("本回合无法释放效果牌"); break; case CardFunction.dyeingCardCostMinusOne: - sb.Append("ͿɫƷ-1"); + sb.Append("手牌涂色牌费用-1"); break; case CardFunction.nextDyeingCardRangeAddTwo: - sb.Append("Ϳɫʩ+2"); + sb.Append("下张涂色牌施法距离+2"); break; case CardFunction.nextEffectCardDoubleSettle: - sb.Append("һЧƽ"); + sb.Append("下一张效果牌结算两次"); break; case CardFunction.deathMark: - sb.Append("ʩ" + kvp.Value + "ӡ"); + sb.Append("施加" + kvp.Value + "层死亡印记"); break; case CardFunction.teleportAround: - sb.Append("ҳΧ1"); + sb.Append("玩家出现在周围随机1格"); break; case CardFunction.infCastRange: - sb.Append("ʩ"); + sb.Append("无限施法距离"); break; case CardFunction.drawEffectCard: - sb.Append("" + kvp.Value + "Ч"); + sb.Append("抽" + kvp.Value + "张效果牌"); break; case CardFunction.doublebleedDamage: - sb.Append("ʹѪ˷"); + sb.Append("使血伤翻倍"); break; case CardFunction.drawAndCopyCard: - sb.Append("һ,Ƶĸ"); + sb.Append("抽一张牌,获得这张牌的复制"); break; case CardFunction.nextDyeingCardCostZero: - sb.Append("ͿɫΪ0"); + sb.Append("下张涂色牌消耗为0"); break; case CardFunction.bleed4TurnCost: - sb.Append("غڴ4Ѫ1"); + sb.Append("回合内触发4次流血,获得1点能量"); break; case CardFunction.bleed3TurnCost: - sb.Append("غڴ3Ѫ1"); + sb.Append("回合内触发3次流血,获得1点能量"); break; case CardFunction.bleedHeal: - sb.Append("Ŀ굥λ´Ѫ˺"); + sb.Append("目标单位的下次流血伤害会治疗玩家"); break; case CardFunction.turnRedNodesToBleed: - sb.Append("2Χɫÿ11Χеʩ1Ѫ"); + sb.Append("消耗玩家2范围颜色,每消耗1红对1范围内所有敌人施加1流血"); break; case CardFunction.turnRedNodesToBleedInTwoCirCle: - sb.Append("2Χɫÿ12Χеʩ1Ѫ"); + sb.Append("消耗玩家2范围颜色,每消耗1红对2范围内所有敌人施加1流血"); break; case CardFunction.halfHpShield: - sb.Append("ֵһĻ"); + sb.Append("获得生命值上限一半的护盾"); break; case CardFunction.cantShield: - sb.Append("" + kvp.Value + "غ޷û"); + sb.Append("下" + kvp.Value + "回合无法获得护盾"); break; case CardFunction.settleAllBleed: - sb.Append("㵥λȫѪ"); + sb.Append("结算单位全部流血层数"); break; case CardFunction.settleHalfBleed: - sb.Append("㵥λһѪ"); + sb.Append("结算单位一半流血层数"); break; case CardFunction.doubleBleed: - sb.Append("ʹĿѪ"); + sb.Append("使目标流血层数翻倍"); break; case CardFunction.tripleBleed: - sb.Append("ʹĿѪ3"); + sb.Append("使目标流血层数翻3倍"); break; case CardFunction.lostHp: - sb.Append("ʧȥ" + kvp.Value + ""); + sb.Append("失去" + kvp.Value + "点生命"); break; case CardFunction.ifBleedThenShield: - sb.Append("ĿѪ" + kvp.Value + "㻤"); + sb.Append("若目标身上有流血,获得" + kvp.Value + "点护盾"); break; case CardFunction.turnHalfYellowNodesToShield: - sb.Append("ûƶӦĻ,һɫ"); + sb.Append("获得黄对应数量的护盾,留下一半黄色"); break; case CardFunction.turnYellowNodesToShield: - sb.Append("лɫöӦĻ"); + sb.Append("消耗所有黄色,获得对应数量的护盾"); break; case CardFunction.turn3RedNodesToEmber: - sb.Append("Χ2Χؿ飬ÿ31"); + sb.Append("消耗玩家周围2范围地块,每消耗3红获得1层狂热"); break; case CardFunction.turn2RedNodesToEmber: - sb.Append("Χ2Χؿ飬ÿ21"); + sb.Append("消耗玩家周围2范围地块,每消耗2红获得1层狂热"); break; case CardFunction.bleedDamage: - sb.Append("" + kvp.Value + "Ѫ"); + sb.Append("增加" + kvp.Value + "层血伤"); break; case CardFunction.drawDyeingCard: - sb.Append("" + kvp.Value + "Ϳɫ"); + sb.Append("抽" + kvp.Value + "张涂色牌"); break; case CardFunction.bleedForRedNode: - sb.Append("Ժɫؿ" + kvp.Value + "Ѫ"); + sb.Append("对红色地块造成" + kvp.Value + "层流血"); break; case CardFunction.shieldToDamage: - sb.Append("Ŀɻֵ˺"); + sb.Append("对目标造成护盾值的伤害"); break; case CardFunction.damageForRedNode: - //sb.Append("Ժɫؿ" + Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)) + "˺"); + //sb.Append("对红色地块造成" + Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)) + "点伤害"); if (Usermanager.Instance != null) { - sb.Append("Ժɫؿ" + Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)) + "˺"); + sb.Append("对红色地块造成" + Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)) + "点伤害"); } else { - sb.Append("Ժɫؿ" + kvp.Value + "˺"); + sb.Append("对红色地块造成" + kvp.Value + "点伤害"); } break; case CardFunction.damageForBlueNode: if (Usermanager.Instance != null) { - sb.Append("ɫؿ" + Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)) + "˺"); + sb.Append("对蓝色地块造成" + Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)) + "点伤害"); } else { - sb.Append("ɫؿ" + kvp.Value + "˺"); + sb.Append("对蓝色地块造成" + kvp.Value + "点伤害"); } break; case CardFunction.damagexyForBlueNode: string[] valuesA = kvp.Value.Split("&"); if (Usermanager.Instance != null) { - sb.Append("ɫؿ" + Usermanager.Instance.DamageCalculation(int.Parse(valuesA[0])) + "˺" + valuesA[1] + ""); + sb.Append("对蓝色地块造成" + Usermanager.Instance.DamageCalculation(int.Parse(valuesA[0])) + "点伤害" + valuesA[1] + "次"); } else { - sb.Append("ɫؿ" + int.Parse(valuesA[0]) + "˺" + valuesA[1] + ""); + sb.Append("对蓝色地块造成" + int.Parse(valuesA[0]) + "点伤害" + valuesA[1] + "次"); } break; case CardFunction.nextRoundCostMinusOne: - sb.Append("»غظ-1"); + sb.Append("下回合能量回复-1"); break; case CardFunction.damagexy: string[] values = kvp.Value.Split("&"); if (Usermanager.Instance != null) { - sb.Append("" + Usermanager.Instance.DamageCalculation(int.Parse(values[0])) + "˺" + values[1] + ""); + sb.Append("造成" + Usermanager.Instance.DamageCalculation(int.Parse(values[0])) + "点伤害" + values[1] + "次"); } else - { sb.Append("" + int.Parse(values[0]) + "˺" + values[1] + ""); } + { sb.Append("造成" + int.Parse(values[0]) + "点伤害" + values[1] + "次"); } break; case CardFunction.repel: - sb.Append("" + kvp.Value + ""); + sb.Append("击退" + kvp.Value + "格"); break; case CardFunction.repelRound: - sb.Append("˷Χ1ĵλ" + kvp.Value + ""); + sb.Append("击退范围1的单位" + kvp.Value + "格"); break; case CardFunction.reduceCost: - sb.Append("-" + kvp.Value + ""); + sb.Append("费用-" + kvp.Value + ""); break; case CardFunction.spreadColorToAround: - sb.Append("ĿؿɫɢΧ"); + sb.Append("将目标地块的颜色扩散至周围"); break; case CardFunction.repelToEnd: - sb.Append("ĿرԵ"); + sb.Append("将目标击退至场地边缘"); break; case CardFunction.damageMulNodeKind: - sb.Append("ÿһɫĵؿ飬" + kvp.Value + "˺"); + sb.Append("场上每有一种颜色的地块,造成" + kvp.Value + "点伤害"); break; case CardFunction.bleedIfNot: - sb.Append("ĿûѪʩ" + kvp.Value + "Ѫ"); + sb.Append("如果目标没有流血,施加" + kvp.Value + "层流血"); break; case CardFunction.switchStepToCost: - sb.Append("غϽʣƶתΪ"); + sb.Append("本回合将剩余移动力转化为能量"); break; case CardFunction.teleportAndDamageAround: - sb.Append("͵ĿӣΧ" + kvp.Value + "˺"); + sb.Append("传送到目标格子,对周围造成" + kvp.Value + "点伤害"); break; case CardFunction.damageIfMoved: - sb.Append("غƶ" + kvp.Value + "˺"); + sb.Append("如果本回合移动过,造成" + kvp.Value + "点伤害"); break; case CardFunction.damageAndRestoreCostIfKill: break; @@ -537,47 +537,47 @@ public static class Name Match match = System.Text.RegularExpressions.Regex.Match(condition, Name.Regex.cardConditionPattern); if (match.Success) { - string firstPart = match.Groups[1].Value; // һ(red) - string op = match.Groups[2].Value; // - string secondPart = match.Groups[3].Value; // ڶ + string firstPart = match.Groups[1].Value; // 第一部分(red) + string op = match.Groups[2].Value; // 运算符部分 + string secondPart = match.Groups[3].Value; // 第二部分 - Debug.Log("ָ"+firstPart); - Debug .Log ("ָ" + secondPart); - Debug.Log("ָ" + op); + Debug.Log("分割"+firstPart); + Debug .Log ("分割" + secondPart); + Debug.Log("分割" + op); } else { switch (condition) { case Name.WeaponNodeCondition.position: - sb.Append("λ" + (int.Parse(conditionValue) + 1)); + sb.Append("在位置" + (int.Parse(conditionValue) + 1)); break; case Name.WeaponNodeCondition.positionUnused: - sb.Append("λ" + (int.Parse(conditionValue) + 1) + "ıʯûм"); + sb.Append("位置" + (int.Parse(conditionValue) + 1) + "的宝石没有激活"); break; case Name.WeaponNodeCondition.positionUsed: - sb.Append("λ" + (int.Parse(conditionValue) + 1) + "ıʯ"); + sb.Append("位置" + (int.Parse(conditionValue) + 1) + "的宝石激活了"); break; case Name.WeaponNodeCondition.diffSettle: - sb.Append("ϴγɹʱλòͬ"); + sb.Append("与上次成功激活时位置不同"); break; case Name.WeaponNodeCondition.usedCard: - sb.Append("" + int.Parse(conditionValue) + "ıʯ"); + sb.Append("至少有" + int.Parse(conditionValue) + "个激活的宝石"); break; case Name.WeaponNodeCondition.threeColorDiffMoreThan: - sb.Append("Ƶؿֵ" + (int.Parse(conditionValue))); + sb.Append("蓝红黄地块差值大于" + (int.Parse(conditionValue))); break; case Name.WeaponNodeCondition.threeColorCountMoreThan: - sb.Append("Ƶؿ" + (int.Parse(conditionValue))); + sb.Append("蓝红黄地块数量大于" + (int.Parse(conditionValue))); break; case Name.WeaponNodeCondition.threeColorCountEqual: - sb.Append("Ƶؿ" + (int.Parse(conditionValue))); + sb.Append("蓝红黄地块数量等于" + (int.Parse(conditionValue))); break; case Name.WeaponNodeCondition.everyNumNodeConvert: - sb.Append("ÿת"+ (int.Parse(conditionValue)) + "ؿ"); + sb.Append("每转化"+ (int.Parse(conditionValue)) + "个地块"); break; case Name.WeaponNodeCondition.bombbomb: - sb.Append("ÿըը"); + sb.Append("每当有炸弹爆炸"); break; case Name.WeaponNodeCondition.node: break; @@ -595,70 +595,70 @@ public static class Name switch (result) { case Name.WeaponNodeFunction.addScore: - sb.Append("+" + int.Parse(resultValue)); + sb.Append("攻击力+" + int.Parse(resultValue)); break; case Name.WeaponNodeFunction.mulScore: - sb.Append("*" + (1+float.Parse(resultValue))); + sb.Append("攻击力*" + (1+float.Parse(resultValue))); break; case Name.WeaponNodeFunction.repetWeaponNode: - sb.Append("ظλ" + (int.Parse(resultValue) + 1) +"ʯЧ"); + sb.Append("重复位置" + (int.Parse(resultValue) + 1) +"宝石的效果"); break; case Name.WeaponNodeFunction.doubleWeaponNode: - sb.Append("λ" + (int.Parse(resultValue) + 1) + "ʯЧ"); + sb.Append("位置" + (int.Parse(resultValue) + 1) + "宝石的效果翻倍"); break; case Name.WeaponNodeFunction.redNodeCount: - sb.Append("ɫؿ+" + int.Parse(resultValue)); + sb.Append("红色地块的数量+" + int.Parse(resultValue)); break; case Name.WeaponNodeFunction.blueNodeCount: - sb.Append("ɫؿ+" + int.Parse(resultValue)); + sb.Append("蓝色地块的数量+" + int.Parse(resultValue)); break; case Name.WeaponNodeFunction.yellowNodeCount: - sb.Append("ɫؿ+" + int.Parse(resultValue)); + sb.Append("黄色地块的数量+" + int.Parse(resultValue)); break; case Name.WeaponNodeFunction.mostNodeCount: - sb.Append("ҵؿ+" + int.Parse(resultValue)); + sb.Append("数量最多的玩家地块数量+" + int.Parse(resultValue)); break; case Name.WeaponNodeFunction.leastNodeCount: - sb.Append("ٵҵؿ+" + int.Parse(resultValue)); + sb.Append("数量最少的玩家地块数量+" + int.Parse(resultValue)); break; case Name.WeaponNodeFunction.allNodeCount: - sb.Append("ҵĵؿ+" + int.Parse(resultValue)); + sb.Append("所有玩家的地块的数量+" + int.Parse(resultValue)); break; case Name.WeaponNodeFunction.drawCard: - sb.Append("»غ϶" + int.Parse(resultValue)+""); + sb.Append("下回合多抽" + int.Parse(resultValue)+"张牌"); break; case Name.WeaponNodeFunction.everyRedNodeAddScore: - sb.Append("ÿһɫؿ" + int.Parse(resultValue) + "㹥"); + sb.Append("每有一个红色地块增加" + int.Parse(resultValue) + "点攻击力"); break; case Name.WeaponNodeFunction.everyYellowNodeAddScore: - sb.Append("ÿһɫؿ" + int.Parse(resultValue) + "㹥"); + sb.Append("每有一个黄色地块增加" + int.Parse(resultValue) + "点攻击力"); break; case Name.WeaponNodeFunction.everyBlueNodeAddScore: - sb.Append("ÿһɫؿ" + int.Parse(resultValue) + "㹥"); + sb.Append("每有一个蓝色地块增加" + int.Parse(resultValue) + "点攻击力"); break; case Name.WeaponNodeFunction.everyBlackNodeAddScore: - sb.Append("ÿһɫؿ" + int.Parse(resultValue) + "㹥"); + sb.Append("每有一个黑色地块增加" + int.Parse(resultValue) + "点攻击力"); break; case Name.WeaponNodeFunction.everyHolyNodeAddScore: - sb.Append("ÿһʥؿ" + int.Parse(resultValue) + "㹥"); + sb.Append("每有一个圣光地块增加" + int.Parse(resultValue) + "点攻击力"); break; case Name.WeaponNodeFunction.everyBombAddScore: - sb.Append("ÿһը" + int.Parse(resultValue) + "㹥"); + sb.Append("每有一个炸弹增加" + int.Parse(resultValue) + "点攻击力"); break; case Name.WeaponNodeFunction.everyBelieverAddScore: - sb.Append("ÿһͽ" + int.Parse(resultValue) + "㹥"); + sb.Append("每有一个信徒增加" + int.Parse(resultValue) + "点攻击力"); break; case Name.WeaponNodeFunction.threeColorRedistribution: - sb.Append("غϽƵؿȱ·"); + sb.Append("回合结束蓝红黄地块等比例重新分配"); break; case Name.NodeItem.Volcano: - sb.Append("غϽڳ" + int.Parse(resultValue) + "ɽ"); + sb.Append("回合结束在场上增加" + int.Parse(resultValue) + "个火山"); break; case Name.WeaponNodeFunction.bomb: - sb.Append("ڳһը"); + sb.Append("在场上生成一个炸弹"); break; case Name.NodeItem.AcidRain: - sb.Append("غϽڳ" + int.Parse(resultValue) + ""); + sb.Append("回合结束在场上增加" + int.Parse(resultValue) + "个酸雨"); break; } return sb.ToString(); @@ -988,53 +988,53 @@ public static class Name public const string pattern1xxx = @"^1\d{3}$"; //2*** public const string pattern2xxx = @"^2\d{3}$"; - //(red>5) + //卡牌条件(red>5) public const string cardConditionPattern = @"(\w+)([><=+])(\d+)"; - //λn + //在位置n public const string position = @"^position\d+$"; - //ijſδ + //某张卡牌未激活 public const string cardUnused = @"^.*CardUnused$"; - //ijɫ>n + //某两个颜色>n public const string twoColorCondition = @"^[a-zA-Z]+_[a-zA-Z]+(<=|>=|!=|==|[<>=])-?\d+(?:\.\d+)?$"; - //ϴνʱλòͬ + //与上次结算时位置不同 public const string diffSettle = "diffSettle"; - //ɫ>n + //有两个颜色>n public const string anyTwoColorCondition = @"^anyTwoColor\s*([<>=])\s*(-?\d+(?:\.\d+)?)$"; - //>n + //激活的牌>n public const string usedCard = @"^usedCard\s*([<>=])\s*(-?\d+(?:\.\d+)?)$"; - //ĵؿ״ + //具体的地块形状 public const string node = "node"; } public static class WeaponNodeCondition { - //(red>5) + //卡牌条件(red>5) public const string cardConditionPattern = @"(\w+)([><=+])(\d+)"; - //λn + //在位置n public const string position = "position"; - //ijűʯδ + //某张宝石未激活 public const string positionUnused = "positionUnused"; - //ijűʯ + //某张宝石激活 public const string positionUsed = "positionUsed"; - //ijɫ>n + //某两个颜色>n public const string twoColorCondition = @"^[a-zA-Z]+_[a-zA-Z]+(<=|>=|!=|==|[<>=])-?\d+(?:\.\d+)?$"; - //ϴνʱλòͬ + //与上次结算时位置不同 public const string diffSettle = "diffSettle"; - //ɫ>n + //有两个颜色>n public const string anyTwoColorCondition = "anyTwoColor"; - //>n + //激活的牌>n public const string usedCard = "usedCard"; - //ĵؿ״ + //具体的地块形状 public const string node = "node"; - //Ƶؿֵ + //蓝红黄地块差值大于 public const string threeColorDiffMoreThan = "threeColorDiffMoreThan"; - //Ƶؿ + //蓝红黄地块数量大于 public const string threeColorCountMoreThan = "threeColorCountMoreThan"; - //Ƶؿ + //蓝红黄地块数量等于 public const string threeColorCountEqual = "threeColorCountEqual"; - //ÿתnumĵؿ + //每转化num的地块 public const string everyNumNodeConvert = "everyNumNodeConvert"; - //ըը + //炸弹爆炸 public const string bombbomb = "bombbomb"; public static readonly HashSet PlayerConditionSet= new HashSet { cardConditionPattern,position, positionUnused, positionUsed, diffSettle @@ -1115,49 +1115,49 @@ public static class Name } public static class WeaponNodeFunction { - //ӷ + //加分 public const string addScore = "addScore"; - //غüӷ + //本回合永久加分 public const string addScoreThisTurn = "addScoreThisTurn"; - //˻ + //乘积 public const string mulScore = "mulScore"; - //ظijʯЧ + //重复某个宝石的效果 public const string repetWeaponNode = "repetWeaponNode"; - //ijʯЧ + //某个宝石的效果翻倍 public const string doubleWeaponNode = "doubleWeaponNode"; - //ɫ+n + //红色+n public const string redNodeCount = "redNodeCount"; - //ɫ+n + //红色+n public const string blueNodeCount = "blueNodeCount"; - //ɫ+n + //黄色+n public const string yellowNodeCount = "yellowNodeCount"; - //ɫ+n + //最多色+n public const string mostNodeCount = "mostNodeCount"; - //ɫ+n + //最少色+n public const string leastNodeCount = "leastNodeCount"; - //ɫ+n + //所有色+n public const string allNodeCount = "allNodeCount"; - //һغ϶nͿɫ + //下一回合多抽n张涂色牌 public const string drawCard = "drawCard"; - //ijʯ + //某个宝石无视条件 public const string isIgnoreCondition = "isIgnoreCondition"; - //ÿкɫ+n + //每有红色+n public const string everyRedNodeAddScore = "everyRedNodeAddScore"; - //ÿлɫ+n + //每有黄色+n public const string everyYellowNodeAddScore = "everyYellowNodeAddScore"; - //ÿɫ+n + //每有蓝色+n public const string everyBlueNodeAddScore = "everyBlueNodeAddScore"; - //ÿкɫ+n + //每有黑色+n public const string everyBlackNodeAddScore = "everyBlackNodeAddScore"; - //ÿʥ+n + //每有圣光+n public const string everyHolyNodeAddScore = "everyHolyNodeAddScore"; - //ÿը+n + //每有炸弹+n public const string everyBombAddScore = "everyBombAddScore"; - //ÿͽ+n + //每有信徒+n public const string everyBelieverAddScore = "everyBelieverAddScore"; - //̻Ƶؿ· + //蓝绿黄地块数量重新分配 public const string threeColorRedistribution = "threeColorRedistribution"; - //ը + //生成炸弹 public const string bomb = "bomb"; public static readonly HashSet PlayerResultSet = new HashSet { addScore,mulScore, repetWeaponNode, redNodeCount, blueNodeCount @@ -1183,11 +1183,12 @@ public static class Name public const string Elementary = "Elementary"; public const string Intermediate = "Intermediate"; public const string Advanced = "Advanced"; + public static readonly HashSet WeaponNodeLevelSet = new HashSet { Basic,Elementary,Intermediate,Advanced}; } public static class DomainFunction { - //ӷ + //加分 public const string score = "score"; } public static class CardFunctionString diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs index 08a06f3b..a0e83dc1 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs @@ -7,20 +7,20 @@ using UnityEngine; public class WeaponManager : Singleton { - [Header("Ƿ")] + [Header("�����Ƿ������������")] public bool isWeaponSettle; - [Header ("")] - //ڵ + [Header("�����������")] + //��������ڵ� /*public List playerWeaponNodeList = new List(); - //ڵ + //���������ڵ� public List enemyWeaponNodeList = new List();*/ public Weapon playerUsingWeapon; public EnemyWeapon enemyUsingWeapon; - public bool isMapChange=true; + public bool isMapChange = true; public bool isWeaponNodeChange = true; @@ -32,13 +32,13 @@ public class WeaponManager : Singleton private void Start() { DontDestroyOnLoad(this.gameObject); - + } private void Update() { - if (isWeaponSettle == true ) + if (isWeaponSettle == true) { System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch(); stopwatch.Start(); @@ -48,24 +48,24 @@ public class WeaponManager : Singleton stopwatch.Stop(); enemyUsingWeapon.SettleEnemyWeapon(enemyWeaponNodeList); isMapChange = false; - isWeaponNodeChange =false; + isWeaponNodeChange = false; } - - if (stopwatch.ElapsedMilliseconds>100) + + if (stopwatch.ElapsedMilliseconds > 100) { - Debug.LogWarning($"ܾ棡ʱ {stopwatch.ElapsedMilliseconds}ms"); + Debug.LogWarning($"���ܾ��棡��ʱ {stopwatch.ElapsedMilliseconds}ms"); } - if(stopwatch.ElapsedMilliseconds>10) + if (stopwatch.ElapsedMilliseconds > 10) { - Debug.LogWarning($"ܾ棡ʱ {stopwatch.ElapsedMilliseconds}ms"); + Debug.LogWarning($"���ܾ��棡��ʱ {stopwatch.ElapsedMilliseconds}ms"); } - + } - - + + //SettleWeaponNode(); //SettleEnemyWeaponNode(); } @@ -114,30 +114,30 @@ public class WeaponManager : Singleton FadeMode(); } } - public void ShowMode()//չʾصĹ + public void ShowMode()//չʾ���صĹ��� { - isWeaponSettle= true; + isWeaponSettle = true; - enemyWeaponNodeList.gameObject.SetActive (true); + enemyWeaponNodeList.gameObject.SetActive(true); playerUsingWeapon = new Weapon(); enemyUsingWeapon = new EnemyWeapon(); } - public void FadeMode()//սع + public void FadeMode()//��ս���������ع��� { isWeaponSettle = false; - enemyWeaponNodeList .gameObject .SetActive(false); + enemyWeaponNodeList.gameObject.SetActive(false); foreach (Transform transform in playerWeaponNodeList) { - if(transform .childCount >0) + if (transform.childCount > 0) { WeaponNode weaponNode = transform.GetChild(0).GetComponent(); if (weaponNode.enableVFX != null) weaponNode.enableVFX.SetActive(false); } - + } foreach (Transform transform in enemyWeaponNodeList) { @@ -147,7 +147,7 @@ public class WeaponManager : Singleton if (weaponNode.enableVFX != null) weaponNode.enableVFX.SetActive(false); } - + } } @@ -155,15 +155,15 @@ public class WeaponManager : Singleton { 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 conditionValue = ""; + string[] nodesMark = new string[4]; string[] nodesColor = new string[4]; string result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerResultSet, 1).ElementAt(0); - string resultValue=""; + string resultValue = ""; switch (condition) { case Name.WeaponNodeCondition.position: - conditionValue= MathTool.GetRandomElements(new HashSet {"0","1","2","3","4" }, 1).ElementAt(0); + 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); @@ -172,13 +172,13 @@ public class WeaponManager : Singleton conditionValue = MathTool.GetRandomElements(new HashSet { "0", "1", "2", "3", "4" }, 1).ElementAt(0); break; case Name.WeaponNodeCondition.diffSettle: - conditionValue=Name.none; + conditionValue = Name.none; break; case Name.WeaponNodeCondition.usedCard: - conditionValue = MathTool.GetRandomElements(new HashSet { "1", "2", "3", "4", "5" }, 1).ElementAt(0); + 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); + 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); @@ -190,7 +190,7 @@ public class WeaponManager : Singleton 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(); + 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) @@ -202,16 +202,16 @@ public class WeaponManager : Singleton 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(); + condition = sb.ToString(); break; } switch (result) { case Name.WeaponNodeFunction.addScore: - resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(7, 12), 1).ElementAt(0); + 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); + 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); @@ -250,7 +250,7 @@ public class WeaponManager : Singleton resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(1, 2), 1).ElementAt(0); break; } - WeaponNode weaponNode=gem.GetComponent(); + WeaponNode weaponNode = gem.GetComponent(); weaponNode.result = result; weaponNode.resultValue = resultValue; weaponNode.condition = condition; @@ -267,7 +267,7 @@ public class WeaponManager : Singleton switch (level) { case Name.WeaponNodeLevel.Basic: - condition= MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerBasicConditionSet, 1).ElementAt(0); + condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerBasicConditionSet, 1).ElementAt(0); break; case Name.WeaponNodeLevel.Elementary: condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerElementaryConditionSet, 1).ElementAt(0); @@ -279,9 +279,9 @@ public class WeaponManager : Singleton condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerAdvancedConditionSet, 1).ElementAt(0); break; } - + string conditionValue = ""; - List nodesMark =new List(); + List nodesMark = new List(); List nodesColor = new List(); string result = ""; switch (level) @@ -299,7 +299,7 @@ public class WeaponManager : Singleton result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerAdvancedResultSet, 1).ElementAt(0); break; } - + string resultValue = ""; conditionValue = getConditionValueWithLevel(level, condition, ref nodesMark, ref nodesMark); resultValue = getResultValueWithLevel(level, result, condition, conditionValue); @@ -313,8 +313,294 @@ public class WeaponManager : Singleton return gem; } + public GameObject getRandomWeaponNodeForPlayerWithLevelDiff(int levelDiff) + { + GameObject gem = Instantiate(Resources.Load(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName)); + string condition = ""; + HashSet resultSet = new HashSet(); + HashSet conditiontSet = new HashSet(); + string conditionLevel = ""; + string resultLevel = ""; + switch (levelDiff) + { + case -2: + case -1: + case 0: + conditionLevel = MathTool.GetRandomElements(Name.WeaponNodeLevel.WeaponNodeLevelSet, 1).ElementAt(0); + break; + case 1: + conditionLevel = MathTool.GetRandomElements(new HashSet { Name.WeaponNodeLevel.Elementary, Name.WeaponNodeLevel.Basic, Name.WeaponNodeLevel.Intermediate }, 1).ElementAt(0); + break; + case 2: + conditionLevel = MathTool.GetRandomElements(new HashSet { Name.WeaponNodeLevel.Elementary, Name.WeaponNodeLevel.Basic }, 1).ElementAt(0); + break; + case 3: + conditionLevel = Name.WeaponNodeLevel.Basic; + break; + + + } + switch (conditionLevel) + { + 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; + + } + switch (conditionLevel) + { + case Name.WeaponNodeLevel.Basic: + switch (levelDiff) + { + case 0: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerBasicResultSet, 1).ElementAt(0); + break; + case 1: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerElementaryResultSet, 1).ElementAt(0); + break; + case 2: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerIntermediateResultSet, 1).ElementAt(0); + break; + case 3: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerAdvancedResultSet, 1).ElementAt(0); + break; + } + + break; + case Name.WeaponNodeLevel.Elementary: + switch (levelDiff) + { + case -1: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerBasicResultSet, 1).ElementAt(0); + break; + case 0: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerElementaryResultSet, 1).ElementAt(0); + break; + case 1: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerIntermediateResultSet, 1).ElementAt(0); + break; + case 2: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerAdvancedResultSet, 1).ElementAt(0); + break; + } + break; + case Name.WeaponNodeLevel.Intermediate: + switch (levelDiff) + { + case -2: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerBasicResultSet, 1).ElementAt(0); + break; + case -1: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerElementaryResultSet, 1).ElementAt(0); + break; + case 0: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerIntermediateResultSet, 1).ElementAt(0); + break; + case 1: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerAdvancedResultSet, 1).ElementAt(0); + break; + } + break; + case Name.WeaponNodeLevel.Advanced: + switch (levelDiff) + { + case -3: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerBasicResultSet, 1).ElementAt(0); + break; + case -2: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerElementaryResultSet, 1).ElementAt(0); + break; + case -1: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerIntermediateResultSet, 1).ElementAt(0); + break; + case 0: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerAdvancedResultSet, 1).ElementAt(0); + break; + } + break; + + } + + + + string conditionValue = ""; + List nodesMark = new List(); + List nodesColor = new List(); + string result = ""; + switch (resultLevel) + { + case Name.WeaponNodeLevel.Basic: + result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerBasicResultSet, 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; - public string getConditionValueWithLevel(string level,string condition,ref List nodesMark, ref List nodesColor) + } + + string resultValue = ""; + conditionValue = getConditionValueWithLevel(conditionLevel, condition, ref nodesMark, ref nodesMark); + resultValue = getResultValueWithLevel(resultLevel, 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 getRandomWeaponNodeForPlayerWithLevelDiffAndConditionlevel(int levelDiff,string conditionLevel) + { + GameObject gem = Instantiate(Resources.Load(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName)); + string condition = ""; + HashSet resultSet = new HashSet(); + HashSet conditiontSet = new HashSet(); + string resultLevel = ""; + switch (conditionLevel) + { + 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; + + } + switch (conditionLevel) + { + case Name.WeaponNodeLevel.Basic: + switch (levelDiff) + { + case 0: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerBasicResultSet, 1).ElementAt(0); + break; + case 1: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerElementaryResultSet, 1).ElementAt(0); + break; + case 2: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerIntermediateResultSet, 1).ElementAt(0); + break; + case 3: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerAdvancedResultSet, 1).ElementAt(0); + break; + } + + break; + case Name.WeaponNodeLevel.Elementary: + switch (levelDiff) + { + case -1: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerBasicResultSet, 1).ElementAt(0); + break; + case 0: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerElementaryResultSet, 1).ElementAt(0); + break; + case 1: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerIntermediateResultSet, 1).ElementAt(0); + break; + case 2: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerAdvancedResultSet, 1).ElementAt(0); + break; + } + break; + case Name.WeaponNodeLevel.Intermediate: + switch (levelDiff) + { + case -2: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerBasicResultSet, 1).ElementAt(0); + break; + case -1: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerElementaryResultSet, 1).ElementAt(0); + break; + case 0: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerIntermediateResultSet, 1).ElementAt(0); + break; + case 1: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerAdvancedResultSet, 1).ElementAt(0); + break; + } + break; + case Name.WeaponNodeLevel.Advanced: + switch (levelDiff) + { + case -3: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerBasicResultSet, 1).ElementAt(0); + break; + case -2: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerElementaryResultSet, 1).ElementAt(0); + break; + case -1: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerIntermediateResultSet, 1).ElementAt(0); + break; + case 0: + resultLevel = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerAdvancedResultSet, 1).ElementAt(0); + break; + } + break; + + } + + + + string conditionValue = ""; + List nodesMark = new List(); + List nodesColor = new List(); + string result = ""; + switch (resultLevel) + { + case Name.WeaponNodeLevel.Basic: + result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerBasicResultSet, 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(conditionLevel, condition, ref nodesMark, ref nodesMark); + resultValue = getResultValueWithLevel(resultLevel, 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 string getConditionValueWithLevel(string level, string condition, ref List nodesMark, ref List nodesColor) { string conditionValue = ""; switch (condition) @@ -335,16 +621,16 @@ public class WeaponManager : Singleton switch (level) { case Name.WeaponNodeLevel.Basic: - conditionValue = MathTool.GetRandomElements(new HashSet { "1", "2", }, 1).ElementAt(0); + conditionValue = MathTool.GetRandomElements(new HashSet { "1", "2", }, 1).ElementAt(0); break; case Name.WeaponNodeLevel.Elementary: - conditionValue = MathTool.GetRandomElements(new HashSet { "2", "3", }, 1).ElementAt(0); + conditionValue = MathTool.GetRandomElements(new HashSet { "2", "3", }, 1).ElementAt(0); break; case Name.WeaponNodeLevel.Intermediate: - conditionValue = MathTool.GetRandomElements(new HashSet { "3", "4", "5" }, 1).ElementAt(0); + conditionValue = MathTool.GetRandomElements(new HashSet { "3", "4", "5" }, 1).ElementAt(0); break; case Name.WeaponNodeLevel.Advanced: - conditionValue = MathTool.GetRandomElements(new HashSet { "4", "5" }, 1).ElementAt(0); + conditionValue = MathTool.GetRandomElements(new HashSet { "4", "5" }, 1).ElementAt(0); break; } break; @@ -356,7 +642,7 @@ public class WeaponManager : Singleton switch (level) { case Name.WeaponNodeLevel.Basic: - conditionValue = MathTool.GetRandomElements(MathTool.GetTargetRange(3,5), 1).ElementAt(0); + conditionValue = MathTool.GetRandomElements(MathTool.GetTargetRange(3, 5), 1).ElementAt(0); break; case Name.WeaponNodeLevel.Elementary: conditionValue = MathTool.GetRandomElements(MathTool.GetTargetRange(4, 6), 1).ElementAt(0); @@ -378,7 +664,7 @@ public class WeaponManager : Singleton switch (level) { case Name.WeaponNodeLevel.Basic: - nodesA= MathTool.GetRandomElements(new HashSet { "1_0", "-1_0", "0_1", "0_-1", "-1_1", "-1_-1" }, 2); + nodesA = MathTool.GetRandomElements(new HashSet { "1_0", "-1_0", "0_1", "0_-1", "-1_1", "-1_-1" }, 2); break; case Name.WeaponNodeLevel.Elementary: nodesA = MathTool.GetRandomElements(new HashSet { "1_0", "-1_0", "0_1", "0_-1", "-1_1", "-1_-1" }, 3); @@ -425,7 +711,7 @@ public class WeaponManager : Singleton return conditionValue; } - public string getResultValueWithLevel(string level, string result,string condition,string conditionValue) + public string getResultValueWithLevel(string level, string result, string condition, string conditionValue) { string resultValue = ""; switch (result) @@ -550,8 +836,8 @@ public class WeaponManager : Singleton } break; case Name.WeaponNodeFunction.isIgnoreCondition: - HashSet targets= MathTool.GenerateIntegerSet(0, 4); - if(condition.Equals(Name.WeaponNodeCondition.positionUnused)|| condition.Equals(Name.WeaponNodeCondition.positionUsed)) + HashSet targets = MathTool.GenerateIntegerSet(0, 4); + if (condition.Equals(Name.WeaponNodeCondition.positionUnused) || condition.Equals(Name.WeaponNodeCondition.positionUsed)) { targets.Remove(conditionValue); } @@ -562,9 +848,9 @@ public class WeaponManager : Singleton } - public void loadEnemyWeaponNode(int position,GameObject weaponNode) + public void loadEnemyWeaponNode(int position, GameObject weaponNode) { - + Transform weaponSlot = enemyWeaponNodeList.GetChild(position); if (weaponSlot != null) { @@ -574,29 +860,29 @@ public class WeaponManager : Singleton weaponNode.transform.localEulerAngles = Vector3.zero; weaponNode.transform.localScale = Vector3.one; } - + } public void ClearAllChildren(Transform parent) { - // ʱб洢壨ѭ޸ļϣ + // ������ʱ�б��洢�����壨������ѭ�����޸ļ��ϣ� List children = new List(); - // ռ + // �ռ����������� foreach (Transform child in parent) { children.Add(child.gameObject); } - // ɾ + // ɾ������������ foreach (GameObject child in children) { - // ݻѡٷʽ + // ���ݻ���ѡ�����ٷ�ʽ if (Application.isPlaying) { Destroy(child); } - else // ༭ģʽ + else // �༭��ģʽ�� { DestroyImmediate(child); } 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 a255d9c4..202ed431 100644 Binary files a/ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache and b/ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache differ