Browse Source

0903提交

pull/191/head
yjm484 5 months ago
parent
commit
1c5b8524b5
  1. 5
      ColorlessWorld-2024-4-2/.vscode/extensions.json
  2. 10
      ColorlessWorld-2024-4-2/.vscode/launch.json
  3. 60
      ColorlessWorld-2024-4-2/.vscode/settings.json
  4. 351
      ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs
  5. 402
      ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs
  6. BIN
      ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache

5
ColorlessWorld-2024-4-2/.vscode/extensions.json

@ -0,0 +1,5 @@
{
"recommendations": [
"visualstudiotoolsforunity.vstuc"
]
}

10
ColorlessWorld-2024-4-2/.vscode/launch.json

@ -0,0 +1,10 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to Unity",
"type": "vstuc",
"request": "attach"
}
]
}

60
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"
}

351
ColorlessWorld-2024-4-2/Assets/Scripts/Tool/Name.cs

@ -154,7 +154,7 @@ public static class Name
if ((cardEntity.tempIsDisposable||cardOriginalData if ((cardEntity.tempIsDisposable||cardOriginalData
.IsDisposable)&&cardOriginalData.CardType!=Name.CardType.ability) .IsDisposable)&&cardOriginalData.CardType!=Name.CardType.ability)
{ {
sb.Append(",消耗"); sb.Append(",消耗");
} }
/*foreach (KeyValuePair<string, Tuple<string, string>> kvp in cardOriginalData.conditionAndFunctionVal) /*foreach (KeyValuePair<string, Tuple<string, string>> kvp in cardOriginalData.conditionAndFunctionVal)
{ {
@ -233,298 +233,298 @@ public static class Name
case CardFunction.cardDamage: case CardFunction.cardDamage:
if(Usermanager.Instance!=null ) if(Usermanager.Instance!=null )
{ {
sb.Append("<link=\"" + kvp.Key + "\">造成" + Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)) + "点伤害</link>"); sb.Append("<link=\"" + kvp.Key + "\">造成" + Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)) + "点伤害</link>");
} }
else else
{ {
sb.Append("<link=\"" + kvp.Key + "\">造成" + int.Parse(kvp.Value) + "点伤害</link>"); sb.Append("<link=\"" + kvp.Key + "\">造成" + int.Parse(kvp.Value) + "点伤害</link>");
} }
break; break;
case CardFunction.cardShield: case CardFunction.cardShield:
sb.Append("<link=\"" + kvp.Key + "\">获得" + kvp.Value + "点护盾</link>"); sb.Append("<link=\"" + kvp.Key + "\">获得" + kvp.Value + "点护盾</link>");
break; break;
case CardFunction.posion: case CardFunction.posion:
sb.Append("<link=\"" + kvp.Key + "\">施加" + kvp.Value + "层中毒</link>"); sb.Append("<link=\"" + kvp.Key + "\">施加" + kvp.Value + "层中毒</link>");
break; break;
case CardFunction.fireSeed: case CardFunction.fireSeed:
sb.Append("<link=\"" + kvp.Key + "\">施加" + kvp.Value + "层火种</link>"); sb.Append("<link=\"" + kvp.Key + "\">施加" + kvp.Value + "层火种</link>");
break; break;
case CardFunction.vulnerable: case CardFunction.vulnerable:
sb.Append("<link=\"" + kvp.Key + "\">施加" + kvp.Value + "层易伤</link>"); sb.Append("<link=\"" + kvp.Key + "\">施加" + kvp.Value + "层易伤</link>");
break; break;
case CardFunction.weak: case CardFunction.weak:
sb.Append("<link=\"" + kvp.Key + "\">施加" + kvp.Value + "层虚弱</link>"); sb.Append("<link=\"" + kvp.Key + "\">施加" + kvp.Value + "层虚弱</link>");
break; break;
case CardFunction.coma: case CardFunction.coma:
sb.Append("施加" + kvp.Value + "层昏迷"); sb.Append("施加" + kvp.Value + "层昏迷");
break; break;
case CardFunction.disarm: case CardFunction.disarm:
sb.Append("施加" + kvp.Value + "层缴械"); sb.Append("施加" + kvp.Value + "层缴械");
break; break;
case CardFunction.sleep: case CardFunction.sleep:
sb.Append("施加" + kvp.Value + "层睡眠"); sb.Append("施加" + kvp.Value + "层睡眠");
break; break;
case CardFunction.bleed: case CardFunction.bleed:
sb.Append("<link=\"" + kvp.Key + "\">施加" + kvp.Value + "层流血</link>"); sb.Append("<link=\"" + kvp.Key + "\">施加" + kvp.Value + "层流血</link>");
break; break;
case CardFunction.thorn: case CardFunction.thorn:
sb.Append("<link=\"" + kvp.Key + "\">获得" + kvp.Value + "层荆棘</link>"); sb.Append("<link=\"" + kvp.Key + "\">获得" + kvp.Value + "层荆棘</link>");
break; break;
case CardFunction.ember: case CardFunction.ember:
sb.Append("<link=\"" + kvp.Key + "\">获得" + kvp.Value + "层狂热</link>"); sb.Append("<link=\"" + kvp.Key + "\">获得" + kvp.Value + "层狂热</link>");
break; break;
case CardFunction.upSpeed: case CardFunction.upSpeed:
sb.Append("<link=\"" + kvp.Key + "\">获得" + kvp.Value + "层加速</link>"); sb.Append("<link=\"" + kvp.Key + "\">获得" + kvp.Value + "层加速</link>");
break; break;
case CardFunction.calm: case CardFunction.calm:
sb.Append("<link=\"" + kvp.Key + "\">获得" + kvp.Value + "层冷静</link>"); sb.Append("<link=\"" + kvp.Key + "\">获得" + kvp.Value + "层冷静</link>");
break; break;
case CardFunction.tempCastRange: case CardFunction.tempCastRange:
sb.Append("<link=\"" + kvp.Key + "\">卡牌释放距离增加" + kvp.Value + "</link>"); sb.Append("<link=\"" + kvp.Key + "\">卡牌释放距离增加" + kvp.Value + "</link>");
break; break;
case CardFunction.downSpeed: case CardFunction.downSpeed:
sb.Append("获得" + kvp.Value + "层减速"); sb.Append("获得" + kvp.Value + "层减速");
break; break;
case CardFunction.agile: case CardFunction.agile:
sb.Append("获得" + kvp.Value + "层敏捷"); sb.Append("获得" + kvp.Value + "层敏捷");
break; break;
case CardFunction.immunity: case CardFunction.immunity:
sb.Append("获得" + kvp.Value + "层魔抗"); sb.Append("获得" + kvp.Value + "层魔抗");
break; break;
case CardFunction.recoverHp: case CardFunction.recoverHp:
sb.Append("<link=\"" + kvp.Key + "\">恢复" + kvp.Value + "点血量</link>"); sb.Append("<link=\"" + kvp.Key + "\">恢复" + kvp.Value + "点血量</link>");
break; break;
case CardFunction.extraDrawCardsNum: case CardFunction.extraDrawCardsNum:
sb.Append("下回合多抽" + kvp.Value + "张牌"); sb.Append("下回合多抽" + kvp.Value + "张牌");
break; break;
case CardFunction.teleport: case CardFunction.teleport:
sb.Append("瞬移到目标格子"); sb.Append("瞬移到目标格子");
break; break;
case CardFunction.clearAllAbnormalConditons: case CardFunction.clearAllAbnormalConditons:
sb.Append("清除所有异常状态"); sb.Append("清除所有异常状态");
break; break;
case CardFunction.firm: case CardFunction.firm:
sb.Append("护盾不会消失"); sb.Append("护盾不会消失");
break; break;
case CardFunction.costRestore: case CardFunction.costRestore:
sb.Append("<link=\"" + kvp.Key + "\">获得" + kvp.Value + "点能量</link>"); sb.Append("<link=\"" + kvp.Key + "\">获得" + kvp.Value + "点能量</link>");
break; break;
case CardFunction.drawCard: case CardFunction.drawCard:
sb.Append("<link=\"" + kvp.Key + "\">抽" + kvp.Value + "张牌</link>"); sb.Append("<link=\"" + kvp.Key + "\">抽" + kvp.Value + "张牌</link>");
break; break;
case CardFunction.discard: case CardFunction.discard:
sb.Append("弃" + kvp.Value + "张牌"); sb.Append("弃" + kvp.Value + "张牌");
break; break;
case CardFunction.nodeDiffDamage: case CardFunction.nodeDiffDamage:
sb.Append("造成场地差伤害"); sb.Append("造成场地差伤害");
break; break;
case CardFunction.dyeing: case CardFunction.dyeing:
sb.Append("染色"); sb.Append("染色");
break; break;
case CardFunction.consumePlayerNodesForHealth: case CardFunction.consumePlayerNodesForHealth:
sb.Append("消耗范围内的友方格子,恢复消耗数量的血量"); sb.Append("消耗范围内的友方格子,恢复消耗数量的血量");
break; break;
case CardFunction.costStep: case CardFunction.costStep:
sb.Append("消耗" + kvp.Value + "点移动力"); sb.Append("消耗" + kvp.Value + "点移动力");
break; break;
case CardFunction.nextTurnExtraOneCost: case CardFunction.nextTurnExtraOneCost:
sb.Append("下回合额外回复一点能量"); sb.Append("下回合额外回复一点能量");
break; break;
case CardFunction.fireShield: case CardFunction.fireShield:
sb.Append("获得" + kvp.Value + "层火盾"); sb.Append("获得" + kvp.Value + "层火盾");
break; break;
case CardFunction.banStep: case CardFunction.banStep:
sb.Append("施加" + kvp.Value + "层缠绕"); sb.Append("施加" + kvp.Value + "层缠绕");
break; break;
case CardFunction.step: case CardFunction.step:
if (int.Parse(kvp.Value) > 0) if (int.Parse(kvp.Value) > 0)
{ {
sb.Append("<link=\"" + kvp.Key + "\">获得" + kvp.Value + "点移动力</link>"); sb.Append("<link=\"" + kvp.Key + "\">获得" + kvp.Value + "点移动力</link>");
} }
else else
{ {
sb.Append("<link=\"" + kvp.Key + "\">失去" + -int.Parse(kvp.Value) + "点移动力</link>"); sb.Append("<link=\"" + kvp.Key + "\">失去" + -int.Parse(kvp.Value) + "点移动力</link>");
} }
break; break;
case CardFunction.dyeingAround: case CardFunction.dyeingAround:
sb.Append("对目标周围染色"); sb.Append("对目标周围染色");
break; break;
case CardFunction.nextCardCostHp: case CardFunction.nextCardCostHp:
sb.Append("使下一张牌消耗改为血量"); sb.Append("使下一张牌消耗改为血量");
break; break;
case CardFunction.nextCardCostMinusOne: case CardFunction.nextCardCostMinusOne:
sb.Append("使下一张牌消耗-1"); sb.Append("使下一张牌消耗-1");
break; break;
case CardFunction.cantUserEffectCaed: case CardFunction.cantUserEffectCaed:
sb.Append("本回合无法释放效果牌"); sb.Append("本回合无法释放效果牌");
break; break;
case CardFunction.dyeingCardCostMinusOne: case CardFunction.dyeingCardCostMinusOne:
sb.Append("手牌涂色牌费用-1"); sb.Append("手牌涂色牌费用-1");
break; break;
case CardFunction.nextDyeingCardRangeAddTwo: case CardFunction.nextDyeingCardRangeAddTwo:
sb.Append("下张涂色牌施法距离+2"); sb.Append("下张涂色牌施法距离+2");
break; break;
case CardFunction.nextEffectCardDoubleSettle: case CardFunction.nextEffectCardDoubleSettle:
sb.Append("下一张效果牌结算两次"); sb.Append("下一张效果牌结算两次");
break; break;
case CardFunction.deathMark: case CardFunction.deathMark:
sb.Append("<link=\"" + kvp.Key + "\">施加" + kvp.Value + "层死亡印记</link>"); sb.Append("<link=\"" + kvp.Key + "\">施加" + kvp.Value + "层死亡印记</link>");
break; break;
case CardFunction.teleportAround: case CardFunction.teleportAround:
sb.Append("玩家出现在周围随机1格"); sb.Append("玩家出现在周围随机1格");
break; break;
case CardFunction.infCastRange: case CardFunction.infCastRange:
sb.Append("无限施法距离"); sb.Append("无限施法距离");
break; break;
case CardFunction.drawEffectCard: case CardFunction.drawEffectCard:
sb.Append("抽" + kvp.Value + "张效果牌"); sb.Append("抽" + kvp.Value + "张效果牌");
break; break;
case CardFunction.doublebleedDamage: case CardFunction.doublebleedDamage:
sb.Append("使血伤翻倍"); sb.Append("使血伤翻倍");
break; break;
case CardFunction.drawAndCopyCard: case CardFunction.drawAndCopyCard:
sb.Append("抽一张牌,获得这张牌的复制"); sb.Append("抽一张牌,获得这张牌的复制");
break; break;
case CardFunction.nextDyeingCardCostZero: case CardFunction.nextDyeingCardCostZero:
sb.Append("下张涂色牌消耗为0"); sb.Append("下张涂色牌消耗为0");
break; break;
case CardFunction.bleed4TurnCost: case CardFunction.bleed4TurnCost:
sb.Append("回合内触发4次流血,获得1点能量"); sb.Append("回合内触发4次流血,获得1点能量");
break; break;
case CardFunction.bleed3TurnCost: case CardFunction.bleed3TurnCost:
sb.Append("回合内触发3次流血,获得1点能量"); sb.Append("回合内触发3次流血,获得1点能量");
break; break;
case CardFunction.bleedHeal: case CardFunction.bleedHeal:
sb.Append("目标单位的下次流血伤害会治疗玩家"); sb.Append("目标单位的下次流血伤害会治疗玩家");
break; break;
case CardFunction.turnRedNodesToBleed: case CardFunction.turnRedNodesToBleed:
sb.Append("消耗玩家2范围颜色,每消耗1红对1范围内所有敌人施加1流血"); sb.Append("消耗玩家2范围颜色,每消耗1红对1范围内所有敌人施加1流血");
break; break;
case CardFunction.turnRedNodesToBleedInTwoCirCle: case CardFunction.turnRedNodesToBleedInTwoCirCle:
sb.Append("消耗玩家2范围颜色,每消耗1红对2范围内所有敌人施加1流血"); sb.Append("消耗玩家2范围颜色,每消耗1红对2范围内所有敌人施加1流血");
break; break;
case CardFunction.halfHpShield: case CardFunction.halfHpShield:
sb.Append("获得生命值上限一半的护盾"); sb.Append("获得生命值上限一半的护盾");
break; break;
case CardFunction.cantShield: case CardFunction.cantShield:
sb.Append("下" + kvp.Value + "回合无法获得护盾"); sb.Append("下" + kvp.Value + "回合无法获得护盾");
break; break;
case CardFunction.settleAllBleed: case CardFunction.settleAllBleed:
sb.Append("结算单位全部流血层数"); sb.Append("结算单位全部流血层数");
break; break;
case CardFunction.settleHalfBleed: case CardFunction.settleHalfBleed:
sb.Append("结算单位一半流血层数"); sb.Append("结算单位一半流血层数");
break; break;
case CardFunction.doubleBleed: case CardFunction.doubleBleed:
sb.Append("使目标流血层数翻倍"); sb.Append("使目标流血层数翻倍");
break; break;
case CardFunction.tripleBleed: case CardFunction.tripleBleed:
sb.Append("使目标流血层数翻3倍"); sb.Append("使目标流血层数翻3倍");
break; break;
case CardFunction.lostHp: case CardFunction.lostHp:
sb.Append("失去" + kvp.Value + "点生命"); sb.Append("失去" + kvp.Value + "点生命");
break; break;
case CardFunction.ifBleedThenShield: case CardFunction.ifBleedThenShield:
sb.Append("若目标身上有流血,获得" + kvp.Value + "点护盾"); sb.Append("若目标身上有流血,获得" + kvp.Value + "点护盾");
break; break;
case CardFunction.turnHalfYellowNodesToShield: case CardFunction.turnHalfYellowNodesToShield:
sb.Append("获得黄对应数量的护盾,留下一半黄色"); sb.Append("获得黄对应数量的护盾,留下一半黄色");
break; break;
case CardFunction.turnYellowNodesToShield: case CardFunction.turnYellowNodesToShield:
sb.Append("消耗所有黄色,获得对应数量的护盾"); sb.Append("消耗所有黄色,获得对应数量的护盾");
break; break;
case CardFunction.turn3RedNodesToEmber: case CardFunction.turn3RedNodesToEmber:
sb.Append("消耗玩家周围2范围地块,每消耗3红获得1层狂热"); sb.Append("消耗玩家周围2范围地块,每消耗3红获得1层狂热");
break; break;
case CardFunction.turn2RedNodesToEmber: case CardFunction.turn2RedNodesToEmber:
sb.Append("消耗玩家周围2范围地块,每消耗2红获得1层狂热"); sb.Append("消耗玩家周围2范围地块,每消耗2红获得1层狂热");
break; break;
case CardFunction.bleedDamage: case CardFunction.bleedDamage:
sb.Append("<link=\"" + kvp.Key + "\">增加" + kvp.Value + "层血伤</link>"); sb.Append("<link=\"" + kvp.Key + "\">增加" + kvp.Value + "层血伤</link>");
break; break;
case CardFunction.drawDyeingCard: case CardFunction.drawDyeingCard:
sb.Append("抽" + kvp.Value + "张涂色牌"); sb.Append("抽" + kvp.Value + "张涂色牌");
break; break;
case CardFunction.bleedForRedNode: case CardFunction.bleedForRedNode:
sb.Append("对红色地块造成" + kvp.Value + "层流血"); sb.Append("对红色地块造成" + kvp.Value + "层流血");
break; break;
case CardFunction.shieldToDamage: case CardFunction.shieldToDamage:
sb.Append("对目标造成护盾值的伤害"); sb.Append("对目标造成护盾值的伤害");
break; break;
case CardFunction.damageForRedNode: 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) if (Usermanager.Instance != null)
{ {
sb.Append("对红色地块造成" + Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)) + "点伤害"); sb.Append("对红色地块造成" + Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)) + "点伤害");
} }
else else
{ {
sb.Append("对红色地块造成" + kvp.Value + "点伤害"); sb.Append("对红色地块造成" + kvp.Value + "点伤害");
} }
break; break;
case CardFunction.damageForBlueNode: case CardFunction.damageForBlueNode:
if (Usermanager.Instance != null) if (Usermanager.Instance != null)
{ {
sb.Append("对蓝色地块造成" + Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)) + "点伤害"); sb.Append("对蓝色地块造成" + Usermanager.Instance.DamageCalculation(int.Parse(kvp.Value)) + "点伤害");
} }
else else
{ {
sb.Append("对蓝色地块造成" + kvp.Value + "点伤害"); sb.Append("对蓝色地块造成" + kvp.Value + "点伤害");
} }
break; break;
case CardFunction.damagexyForBlueNode: case CardFunction.damagexyForBlueNode:
string[] valuesA = kvp.Value.Split("&"); string[] valuesA = kvp.Value.Split("&");
if (Usermanager.Instance != null) 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 else
{ {
sb.Append("对蓝色地块造成" + int.Parse(valuesA[0]) + "点伤害" + valuesA[1] + "次"); sb.Append("对蓝色地块造成" + int.Parse(valuesA[0]) + "点伤害" + valuesA[1] + "次");
} }
break; break;
case CardFunction.nextRoundCostMinusOne: case CardFunction.nextRoundCostMinusOne:
sb.Append("下回合能量回复-1"); sb.Append("下回合能量回复-1");
break; break;
case CardFunction.damagexy: case CardFunction.damagexy:
string[] values = kvp.Value.Split("&"); string[] values = kvp.Value.Split("&");
if (Usermanager.Instance != null) if (Usermanager.Instance != null)
{ {
sb.Append("<link=\"" + kvp.Key + "\">造成" + Usermanager.Instance.DamageCalculation(int.Parse(values[0])) + "点伤害" + values[1] + "次</link>"); sb.Append("<link=\"" + kvp.Key + "\">造成" + Usermanager.Instance.DamageCalculation(int.Parse(values[0])) + "点伤害" + values[1] + "次</link>");
} }
else else
{ sb.Append("<link=\"" + kvp.Key + "\">造成" + int.Parse(values[0]) + "点伤害" + values[1] + "次</link>"); } { sb.Append("<link=\"" + kvp.Key + "\">造成" + int.Parse(values[0]) + "点伤害" + values[1] + "次</link>"); }
break; break;
case CardFunction.repel: case CardFunction.repel:
sb.Append("击退" + kvp.Value + "格"); sb.Append("击退" + kvp.Value + "格");
break; break;
case CardFunction.repelRound: case CardFunction.repelRound:
sb.Append("击退范围1的单位" + kvp.Value + "格"); sb.Append("击退范围1的单位" + kvp.Value + "格");
break; break;
case CardFunction.reduceCost: case CardFunction.reduceCost:
sb.Append("<link=\"" + kvp.Key + "\">费用-" + kvp.Value + "</link>"); sb.Append("<link=\"" + kvp.Key + "\">费用-" + kvp.Value + "</link>");
break; break;
case CardFunction.spreadColorToAround: case CardFunction.spreadColorToAround:
sb.Append("将目标地块的颜色扩散至周围"); sb.Append("将目标地块的颜色扩散至周围");
break; break;
case CardFunction.repelToEnd: case CardFunction.repelToEnd:
sb.Append("将目标击退至场地边缘"); sb.Append("将目标击退至场地边缘");
break; break;
case CardFunction.damageMulNodeKind: case CardFunction.damageMulNodeKind:
sb.Append("场上每有一种颜色的地块,造成" + kvp.Value + "点伤害"); sb.Append("场上每有一种颜色的地块,造成" + kvp.Value + "点伤害");
break; break;
case CardFunction.bleedIfNot: case CardFunction.bleedIfNot:
sb.Append("如果目标没有流血,施加" + kvp.Value + "层流血"); sb.Append("如果目标没有流血,施加" + kvp.Value + "层流血");
break; break;
case CardFunction.switchStepToCost: case CardFunction.switchStepToCost:
sb.Append("本回合将剩余移动力转化为能量"); sb.Append("本回合将剩余移动力转化为能量");
break; break;
case CardFunction.teleportAndDamageAround: case CardFunction.teleportAndDamageAround:
sb.Append("传送到目标格子,对周围造成" + kvp.Value + "点伤害"); sb.Append("传送到目标格子,对周围造成" + kvp.Value + "点伤害");
break; break;
case CardFunction.damageIfMoved: case CardFunction.damageIfMoved:
sb.Append("如果本回合移动过,造成" + kvp.Value + "点伤害"); sb.Append("如果本回合移动过,造成" + kvp.Value + "点伤害");
break; break;
case CardFunction.damageAndRestoreCostIfKill: case CardFunction.damageAndRestoreCostIfKill:
break; break;
@ -537,47 +537,47 @@ public static class Name
Match match = System.Text.RegularExpressions.Regex.Match(condition, Name.Regex.cardConditionPattern); Match match = System.Text.RegularExpressions.Regex.Match(condition, Name.Regex.cardConditionPattern);
if (match.Success) if (match.Success)
{ {
string firstPart = match.Groups[1].Value; // 第一部分(red) string firstPart = match.Groups[1].Value; // 第一部分(red)
string op = match.Groups[2].Value; // 运算符部分 string op = match.Groups[2].Value; // 运算符部分
string secondPart = match.Groups[3].Value; // 第二部分 string secondPart = match.Groups[3].Value; // 第二部分
Debug.Log("分割"+firstPart); Debug.Log("分割"+firstPart);
Debug .Log ("分割" + secondPart); Debug .Log ("分割" + secondPart);
Debug.Log("分割" + op); Debug.Log("分割" + op);
} }
else else
{ {
switch (condition) switch (condition)
{ {
case Name.WeaponNodeCondition.position: case Name.WeaponNodeCondition.position:
sb.Append("在位置" + (int.Parse(conditionValue) + 1)); sb.Append("在位置" + (int.Parse(conditionValue) + 1));
break; break;
case Name.WeaponNodeCondition.positionUnused: case Name.WeaponNodeCondition.positionUnused:
sb.Append("位置" + (int.Parse(conditionValue) + 1) + "的宝石没有激活"); sb.Append("位置" + (int.Parse(conditionValue) + 1) + "的宝石没有激活");
break; break;
case Name.WeaponNodeCondition.positionUsed: case Name.WeaponNodeCondition.positionUsed:
sb.Append("位置" + (int.Parse(conditionValue) + 1) + "的宝石激活了"); sb.Append("位置" + (int.Parse(conditionValue) + 1) + "的宝石激活了");
break; break;
case Name.WeaponNodeCondition.diffSettle: case Name.WeaponNodeCondition.diffSettle:
sb.Append("与上次成功激活时位置不同"); sb.Append("与上次成功激活时位置不同");
break; break;
case Name.WeaponNodeCondition.usedCard: case Name.WeaponNodeCondition.usedCard:
sb.Append("至少有" + int.Parse(conditionValue) + "个激活的宝石"); sb.Append("至少有" + int.Parse(conditionValue) + "个激活的宝石");
break; break;
case Name.WeaponNodeCondition.threeColorDiffMoreThan: case Name.WeaponNodeCondition.threeColorDiffMoreThan:
sb.Append("蓝红黄地块差值大于" + (int.Parse(conditionValue))); sb.Append("蓝红黄地块差值大于" + (int.Parse(conditionValue)));
break; break;
case Name.WeaponNodeCondition.threeColorCountMoreThan: case Name.WeaponNodeCondition.threeColorCountMoreThan:
sb.Append("蓝红黄地块数量大于" + (int.Parse(conditionValue))); sb.Append("蓝红黄地块数量大于" + (int.Parse(conditionValue)));
break; break;
case Name.WeaponNodeCondition.threeColorCountEqual: case Name.WeaponNodeCondition.threeColorCountEqual:
sb.Append("蓝红黄地块数量等于" + (int.Parse(conditionValue))); sb.Append("蓝红黄地块数量等于" + (int.Parse(conditionValue)));
break; break;
case Name.WeaponNodeCondition.everyNumNodeConvert: case Name.WeaponNodeCondition.everyNumNodeConvert:
sb.Append("每转化"+ (int.Parse(conditionValue)) + "个地块"); sb.Append("每转化"+ (int.Parse(conditionValue)) + "个地块");
break; break;
case Name.WeaponNodeCondition.bombbomb: case Name.WeaponNodeCondition.bombbomb:
sb.Append("每当有炸弹爆炸"); sb.Append("每当有炸弹爆炸");
break; break;
case Name.WeaponNodeCondition.node: case Name.WeaponNodeCondition.node:
break; break;
@ -595,70 +595,70 @@ public static class Name
switch (result) switch (result)
{ {
case Name.WeaponNodeFunction.addScore: case Name.WeaponNodeFunction.addScore:
sb.Append("攻击力+" + int.Parse(resultValue)); sb.Append("攻击力+" + int.Parse(resultValue));
break; break;
case Name.WeaponNodeFunction.mulScore: case Name.WeaponNodeFunction.mulScore:
sb.Append("攻击力*" + (1+float.Parse(resultValue))); sb.Append("攻击力*" + (1+float.Parse(resultValue)));
break; break;
case Name.WeaponNodeFunction.repetWeaponNode: case Name.WeaponNodeFunction.repetWeaponNode:
sb.Append("重复位置" + (int.Parse(resultValue) + 1) +"宝石的效果"); sb.Append("重复位置" + (int.Parse(resultValue) + 1) +"宝石的效果");
break; break;
case Name.WeaponNodeFunction.doubleWeaponNode: case Name.WeaponNodeFunction.doubleWeaponNode:
sb.Append("位置" + (int.Parse(resultValue) + 1) + "宝石的效果翻倍"); sb.Append("位置" + (int.Parse(resultValue) + 1) + "宝石的效果翻倍");
break; break;
case Name.WeaponNodeFunction.redNodeCount: case Name.WeaponNodeFunction.redNodeCount:
sb.Append("红色地块的数量+" + int.Parse(resultValue)); sb.Append("红色地块的数量+" + int.Parse(resultValue));
break; break;
case Name.WeaponNodeFunction.blueNodeCount: case Name.WeaponNodeFunction.blueNodeCount:
sb.Append("蓝色地块的数量+" + int.Parse(resultValue)); sb.Append("蓝色地块的数量+" + int.Parse(resultValue));
break; break;
case Name.WeaponNodeFunction.yellowNodeCount: case Name.WeaponNodeFunction.yellowNodeCount:
sb.Append("黄色地块的数量+" + int.Parse(resultValue)); sb.Append("黄色地块的数量+" + int.Parse(resultValue));
break; break;
case Name.WeaponNodeFunction.mostNodeCount: case Name.WeaponNodeFunction.mostNodeCount:
sb.Append("数量最多的玩家地块数量+" + int.Parse(resultValue)); sb.Append("数量最多的玩家地块数量+" + int.Parse(resultValue));
break; break;
case Name.WeaponNodeFunction.leastNodeCount: case Name.WeaponNodeFunction.leastNodeCount:
sb.Append("数量最少的玩家地块数量+" + int.Parse(resultValue)); sb.Append("数量最少的玩家地块数量+" + int.Parse(resultValue));
break; break;
case Name.WeaponNodeFunction.allNodeCount: case Name.WeaponNodeFunction.allNodeCount:
sb.Append("所有玩家的地块的数量+" + int.Parse(resultValue)); sb.Append("所有玩家的地块的数量+" + int.Parse(resultValue));
break; break;
case Name.WeaponNodeFunction.drawCard: case Name.WeaponNodeFunction.drawCard:
sb.Append("下回合多抽" + int.Parse(resultValue)+"张牌"); sb.Append("下回合多抽" + int.Parse(resultValue)+"张牌");
break; break;
case Name.WeaponNodeFunction.everyRedNodeAddScore: case Name.WeaponNodeFunction.everyRedNodeAddScore:
sb.Append("每有一个红色地块增加" + int.Parse(resultValue) + "点攻击力"); sb.Append("每有一个红色地块增加" + int.Parse(resultValue) + "点攻击力");
break; break;
case Name.WeaponNodeFunction.everyYellowNodeAddScore: case Name.WeaponNodeFunction.everyYellowNodeAddScore:
sb.Append("每有一个黄色地块增加" + int.Parse(resultValue) + "点攻击力"); sb.Append("每有一个黄色地块增加" + int.Parse(resultValue) + "点攻击力");
break; break;
case Name.WeaponNodeFunction.everyBlueNodeAddScore: case Name.WeaponNodeFunction.everyBlueNodeAddScore:
sb.Append("每有一个蓝色地块增加" + int.Parse(resultValue) + "点攻击力"); sb.Append("每有一个蓝色地块增加" + int.Parse(resultValue) + "点攻击力");
break; break;
case Name.WeaponNodeFunction.everyBlackNodeAddScore: case Name.WeaponNodeFunction.everyBlackNodeAddScore:
sb.Append("每有一个黑色地块增加" + int.Parse(resultValue) + "点攻击力"); sb.Append("每有一个黑色地块增加" + int.Parse(resultValue) + "点攻击力");
break; break;
case Name.WeaponNodeFunction.everyHolyNodeAddScore: case Name.WeaponNodeFunction.everyHolyNodeAddScore:
sb.Append("每有一个圣光地块增加" + int.Parse(resultValue) + "点攻击力"); sb.Append("每有一个圣光地块增加" + int.Parse(resultValue) + "点攻击力");
break; break;
case Name.WeaponNodeFunction.everyBombAddScore: case Name.WeaponNodeFunction.everyBombAddScore:
sb.Append("每有一个炸弹增加" + int.Parse(resultValue) + "点攻击力"); sb.Append("每有一个炸弹增加" + int.Parse(resultValue) + "点攻击力");
break; break;
case Name.WeaponNodeFunction.everyBelieverAddScore: case Name.WeaponNodeFunction.everyBelieverAddScore:
sb.Append("每有一个信徒增加" + int.Parse(resultValue) + "点攻击力"); sb.Append("每有一个信徒增加" + int.Parse(resultValue) + "点攻击力");
break; break;
case Name.WeaponNodeFunction.threeColorRedistribution: case Name.WeaponNodeFunction.threeColorRedistribution:
sb.Append("回合结束蓝红黄地块等比例重新分配"); sb.Append("回合结束蓝红黄地块等比例重新分配");
break; break;
case Name.NodeItem.Volcano: case Name.NodeItem.Volcano:
sb.Append("回合结束在场上增加" + int.Parse(resultValue) + "个火山"); sb.Append("回合结束在场上增加" + int.Parse(resultValue) + "个火山");
break; break;
case Name.WeaponNodeFunction.bomb: case Name.WeaponNodeFunction.bomb:
sb.Append("在场上生成一个炸弹"); sb.Append("在场上生成一个炸弹");
break; break;
case Name.NodeItem.AcidRain: case Name.NodeItem.AcidRain:
sb.Append("回合结束在场上增加" + int.Parse(resultValue) + "个酸雨"); sb.Append("回合结束在场上增加" + int.Parse(resultValue) + "个酸雨");
break; break;
} }
return sb.ToString(); return sb.ToString();
@ -988,53 +988,53 @@ public static class Name
public const string pattern1xxx = @"^1\d{3}$"; public const string pattern1xxx = @"^1\d{3}$";
//2*** //2***
public const string pattern2xxx = @"^2\d{3}$"; public const string pattern2xxx = @"^2\d{3}$";
//卡牌条件(red>5) //卡牌条件(red>5)
public const string cardConditionPattern = @"(\w+)([><=+])(\d+)"; public const string cardConditionPattern = @"(\w+)([><=+])(\d+)";
//在位置n //在位置n
public const string position = @"^position\d+$"; public const string position = @"^position\d+$";
//某张卡牌未激活 //某张卡牌未激活
public const string cardUnused = @"^.*CardUnused$"; public const string cardUnused = @"^.*CardUnused$";
//某两个颜色>n //某两个颜色>n
public const string twoColorCondition = @"^[a-zA-Z]+_[a-zA-Z]+(<=|>=|!=|==|[<>=])-?\d+(?:\.\d+)?$"; public const string twoColorCondition = @"^[a-zA-Z]+_[a-zA-Z]+(<=|>=|!=|==|[<>=])-?\d+(?:\.\d+)?$";
//与上次结算时位置不同 //与上次结算时位置不同
public const string diffSettle = "diffSettle"; public const string diffSettle = "diffSettle";
//有两个颜色>n //有两个颜色>n
public const string anyTwoColorCondition = @"^anyTwoColor\s*([<>=])\s*(-?\d+(?:\.\d+)?)$"; public const string anyTwoColorCondition = @"^anyTwoColor\s*([<>=])\s*(-?\d+(?:\.\d+)?)$";
//激活的牌>n //激活的牌>n
public const string usedCard = @"^usedCard\s*([<>=])\s*(-?\d+(?:\.\d+)?)$"; public const string usedCard = @"^usedCard\s*([<>=])\s*(-?\d+(?:\.\d+)?)$";
//具体的地块形状 //具体的地块形状
public const string node = "node"; public const string node = "node";
} }
public static class WeaponNodeCondition public static class WeaponNodeCondition
{ {
//卡牌条件(red>5) //卡牌条件(red>5)
public const string cardConditionPattern = @"(\w+)([><=+])(\d+)"; public const string cardConditionPattern = @"(\w+)([><=+])(\d+)";
//在位置n //在位置n
public const string position = "position"; public const string position = "position";
//某张宝石未激活 //某张宝石未激活
public const string positionUnused = "positionUnused"; public const string positionUnused = "positionUnused";
//某张宝石激活 //某张宝石激活
public const string positionUsed = "positionUsed"; public const string positionUsed = "positionUsed";
//某两个颜色>n //某两个颜色>n
public const string twoColorCondition = @"^[a-zA-Z]+_[a-zA-Z]+(<=|>=|!=|==|[<>=])-?\d+(?:\.\d+)?$"; public const string twoColorCondition = @"^[a-zA-Z]+_[a-zA-Z]+(<=|>=|!=|==|[<>=])-?\d+(?:\.\d+)?$";
//与上次结算时位置不同 //与上次结算时位置不同
public const string diffSettle = "diffSettle"; public const string diffSettle = "diffSettle";
//有两个颜色>n //有两个颜色>n
public const string anyTwoColorCondition = "anyTwoColor"; public const string anyTwoColorCondition = "anyTwoColor";
//激活的牌>n //激活的牌>n
public const string usedCard = "usedCard"; public const string usedCard = "usedCard";
//具体的地块形状 //具体的地块形状
public const string node = "node"; public const string node = "node";
//蓝红黄地块差值大于 //蓝红黄地块差值大于
public const string threeColorDiffMoreThan = "threeColorDiffMoreThan"; public const string threeColorDiffMoreThan = "threeColorDiffMoreThan";
//蓝红黄地块数量大于 //蓝红黄地块数量大于
public const string threeColorCountMoreThan = "threeColorCountMoreThan"; public const string threeColorCountMoreThan = "threeColorCountMoreThan";
//蓝红黄地块数量等于 //蓝红黄地块数量等于
public const string threeColorCountEqual = "threeColorCountEqual"; public const string threeColorCountEqual = "threeColorCountEqual";
//每转化num的地块 //每转化num的地块
public const string everyNumNodeConvert = "everyNumNodeConvert"; public const string everyNumNodeConvert = "everyNumNodeConvert";
//炸弹爆炸 //炸弹爆炸
public const string bombbomb = "bombbomb"; public const string bombbomb = "bombbomb";
public static readonly HashSet<string> PlayerConditionSet= new HashSet<string> { cardConditionPattern,position, positionUnused, positionUsed, diffSettle public static readonly HashSet<string> PlayerConditionSet= new HashSet<string> { cardConditionPattern,position, positionUnused, positionUsed, diffSettle
@ -1115,49 +1115,49 @@ public static class Name
} }
public static class WeaponNodeFunction public static class WeaponNodeFunction
{ {
//加分 //加分
public const string addScore = "addScore"; public const string addScore = "addScore";
//本回合永久加分 //本回合永久加分
public const string addScoreThisTurn = "addScoreThisTurn"; public const string addScoreThisTurn = "addScoreThisTurn";
//乘积 //乘积
public const string mulScore = "mulScore"; public const string mulScore = "mulScore";
//重复某个宝石的效果 //重复某个宝石的效果
public const string repetWeaponNode = "repetWeaponNode"; public const string repetWeaponNode = "repetWeaponNode";
//某个宝石的效果翻倍 //某个宝石的效果翻倍
public const string doubleWeaponNode = "doubleWeaponNode"; public const string doubleWeaponNode = "doubleWeaponNode";
//红色+n //红色+n
public const string redNodeCount = "redNodeCount"; public const string redNodeCount = "redNodeCount";
//红色+n //红色+n
public const string blueNodeCount = "blueNodeCount"; public const string blueNodeCount = "blueNodeCount";
//黄色+n //黄色+n
public const string yellowNodeCount = "yellowNodeCount"; public const string yellowNodeCount = "yellowNodeCount";
//最多色+n //最多色+n
public const string mostNodeCount = "mostNodeCount"; public const string mostNodeCount = "mostNodeCount";
//最少色+n //最少色+n
public const string leastNodeCount = "leastNodeCount"; public const string leastNodeCount = "leastNodeCount";
//所有色+n //所有色+n
public const string allNodeCount = "allNodeCount"; public const string allNodeCount = "allNodeCount";
//下一回合多抽n张涂色牌 //下一回合多抽n张涂色牌
public const string drawCard = "drawCard"; public const string drawCard = "drawCard";
//某个宝石无视条件 //某个宝石无视条件
public const string isIgnoreCondition = "isIgnoreCondition"; public const string isIgnoreCondition = "isIgnoreCondition";
//每有红色+n //每有红色+n
public const string everyRedNodeAddScore = "everyRedNodeAddScore"; public const string everyRedNodeAddScore = "everyRedNodeAddScore";
//每有黄色+n //每有黄色+n
public const string everyYellowNodeAddScore = "everyYellowNodeAddScore"; public const string everyYellowNodeAddScore = "everyYellowNodeAddScore";
//每有蓝色+n //每有蓝色+n
public const string everyBlueNodeAddScore = "everyBlueNodeAddScore"; public const string everyBlueNodeAddScore = "everyBlueNodeAddScore";
//每有黑色+n //每有黑色+n
public const string everyBlackNodeAddScore = "everyBlackNodeAddScore"; public const string everyBlackNodeAddScore = "everyBlackNodeAddScore";
//每有圣光+n //每有圣光+n
public const string everyHolyNodeAddScore = "everyHolyNodeAddScore"; public const string everyHolyNodeAddScore = "everyHolyNodeAddScore";
//每有炸弹+n //每有炸弹+n
public const string everyBombAddScore = "everyBombAddScore"; public const string everyBombAddScore = "everyBombAddScore";
//每有信徒+n //每有信徒+n
public const string everyBelieverAddScore = "everyBelieverAddScore"; public const string everyBelieverAddScore = "everyBelieverAddScore";
//蓝绿黄地块数量重新分配 //蓝绿黄地块数量重新分配
public const string threeColorRedistribution = "threeColorRedistribution"; public const string threeColorRedistribution = "threeColorRedistribution";
//生成炸弹 //生成炸弹
public const string bomb = "bomb"; public const string bomb = "bomb";
public static readonly HashSet<string> PlayerResultSet = new HashSet<string> { addScore,mulScore, repetWeaponNode, redNodeCount, blueNodeCount public static readonly HashSet<string> PlayerResultSet = new HashSet<string> { addScore,mulScore, repetWeaponNode, redNodeCount, blueNodeCount
@ -1183,11 +1183,12 @@ public static class Name
public const string Elementary = "Elementary"; public const string Elementary = "Elementary";
public const string Intermediate = "Intermediate"; public const string Intermediate = "Intermediate";
public const string Advanced = "Advanced"; public const string Advanced = "Advanced";
public static readonly HashSet<string> WeaponNodeLevelSet = new HashSet<string> { Basic,Elementary,Intermediate,Advanced};
} }
public static class DomainFunction public static class DomainFunction
{ {
//加分 //加分
public const string score = "score"; public const string score = "score";
} }
public static class CardFunctionString public static class CardFunctionString

402
ColorlessWorld-2024-4-2/Assets/Scripts/Weapon/WeaponManager.cs

@ -7,20 +7,20 @@ using UnityEngine;
public class WeaponManager : Singleton<WeaponManager> public class WeaponManager : Singleton<WeaponManager>
{ {
[Header("控制是否进行武器结算")] [Header("�����Ƿ������������")]
public bool isWeaponSettle; public bool isWeaponSettle;
[Header ("武器数据组件")] [Header("�����������")]
//玩家武器节点 //��������ڵ�
/*public List<WeaponNode> playerWeaponNodeList = new List<WeaponNode>(); /*public List<WeaponNode> playerWeaponNodeList = new List<WeaponNode>();
//怪物武器节点 //���������ڵ�
public List<WeaponNode> enemyWeaponNodeList = new List<WeaponNode>();*/ public List<WeaponNode> enemyWeaponNodeList = new List<WeaponNode>();*/
public Weapon playerUsingWeapon; public Weapon playerUsingWeapon;
public EnemyWeapon enemyUsingWeapon; public EnemyWeapon enemyUsingWeapon;
public bool isMapChange=true; public bool isMapChange = true;
public bool isWeaponNodeChange = true; public bool isWeaponNodeChange = true;
@ -32,13 +32,13 @@ public class WeaponManager : Singleton<WeaponManager>
private void Start() private void Start()
{ {
DontDestroyOnLoad(this.gameObject); DontDestroyOnLoad(this.gameObject);
} }
private void Update() private void Update()
{ {
if (isWeaponSettle == true ) if (isWeaponSettle == true)
{ {
System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch(); System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
stopwatch.Start(); stopwatch.Start();
@ -48,24 +48,24 @@ public class WeaponManager : Singleton<WeaponManager>
stopwatch.Stop(); stopwatch.Stop();
enemyUsingWeapon.SettleEnemyWeapon(enemyWeaponNodeList); enemyUsingWeapon.SettleEnemyWeapon(enemyWeaponNodeList);
isMapChange = false; 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(); //SettleWeaponNode();
//SettleEnemyWeaponNode(); //SettleEnemyWeaponNode();
} }
@ -114,30 +114,30 @@ public class WeaponManager : Singleton<WeaponManager>
FadeMode(); FadeMode();
} }
} }
public void ShowMode()//展示隐藏的功能 public void ShowMode()//չʾ���صĹ���
{ {
isWeaponSettle= true; isWeaponSettle = true;
enemyWeaponNodeList.gameObject.SetActive (true); enemyWeaponNodeList.gameObject.SetActive(true);
playerUsingWeapon = new Weapon(); playerUsingWeapon = new Weapon();
enemyUsingWeapon = new EnemyWeapon(); enemyUsingWeapon = new EnemyWeapon();
} }
public void FadeMode()//非战斗界面隐藏功能 public void FadeMode()//��ս���������ع���
{ {
isWeaponSettle = false; isWeaponSettle = false;
enemyWeaponNodeList .gameObject .SetActive(false); enemyWeaponNodeList.gameObject.SetActive(false);
foreach (Transform transform in playerWeaponNodeList) foreach (Transform transform in playerWeaponNodeList)
{ {
if(transform .childCount >0) if (transform.childCount > 0)
{ {
WeaponNode weaponNode = transform.GetChild(0).GetComponent<WeaponNode>(); WeaponNode weaponNode = transform.GetChild(0).GetComponent<WeaponNode>();
if (weaponNode.enableVFX != null) if (weaponNode.enableVFX != null)
weaponNode.enableVFX.SetActive(false); weaponNode.enableVFX.SetActive(false);
} }
} }
foreach (Transform transform in enemyWeaponNodeList) foreach (Transform transform in enemyWeaponNodeList)
{ {
@ -147,7 +147,7 @@ public class WeaponManager : Singleton<WeaponManager>
if (weaponNode.enableVFX != null) if (weaponNode.enableVFX != null)
weaponNode.enableVFX.SetActive(false); weaponNode.enableVFX.SetActive(false);
} }
} }
} }
@ -155,15 +155,15 @@ public class WeaponManager : Singleton<WeaponManager>
{ {
GameObject gem = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName)); GameObject gem = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
string condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerConditionSet, 1).ElementAt(0); string condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerConditionSet, 1).ElementAt(0);
string conditionValue=""; string conditionValue = "";
string[] nodesMark=new string[4]; string[] nodesMark = new string[4];
string[] nodesColor = new string[4]; string[] nodesColor = new string[4];
string result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerResultSet, 1).ElementAt(0); string result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerResultSet, 1).ElementAt(0);
string resultValue=""; string resultValue = "";
switch (condition) switch (condition)
{ {
case Name.WeaponNodeCondition.position: case Name.WeaponNodeCondition.position:
conditionValue= MathTool.GetRandomElements(new HashSet<string> {"0","1","2","3","4" }, 1).ElementAt(0); conditionValue = MathTool.GetRandomElements(new HashSet<string> { "0", "1", "2", "3", "4" }, 1).ElementAt(0);
break; break;
case Name.WeaponNodeCondition.positionUnused: case Name.WeaponNodeCondition.positionUnused:
conditionValue = MathTool.GetRandomElements(new HashSet<string> { "0", "1", "2", "3", "4" }, 1).ElementAt(0); conditionValue = MathTool.GetRandomElements(new HashSet<string> { "0", "1", "2", "3", "4" }, 1).ElementAt(0);
@ -172,13 +172,13 @@ public class WeaponManager : Singleton<WeaponManager>
conditionValue = MathTool.GetRandomElements(new HashSet<string> { "0", "1", "2", "3", "4" }, 1).ElementAt(0); conditionValue = MathTool.GetRandomElements(new HashSet<string> { "0", "1", "2", "3", "4" }, 1).ElementAt(0);
break; break;
case Name.WeaponNodeCondition.diffSettle: case Name.WeaponNodeCondition.diffSettle:
conditionValue=Name.none; conditionValue = Name.none;
break; break;
case Name.WeaponNodeCondition.usedCard: case Name.WeaponNodeCondition.usedCard:
conditionValue = MathTool.GetRandomElements(new HashSet<string> { "1", "2", "3", "4", "5" }, 1).ElementAt(0); conditionValue = MathTool.GetRandomElements(new HashSet<string> { "1", "2", "3", "4", "5" }, 1).ElementAt(0);
break; break;
case Name.WeaponNodeCondition.threeColorDiffMoreThan: case Name.WeaponNodeCondition.threeColorDiffMoreThan:
conditionValue = MathTool.GetRandomElements(new HashSet<string> { "3", "4", "5" }, 1).ElementAt(0); conditionValue = MathTool.GetRandomElements(new HashSet<string> { "3", "4", "5" }, 1).ElementAt(0);
break; break;
case Name.WeaponNodeCondition.everyNumNodeConvert: case Name.WeaponNodeCondition.everyNumNodeConvert:
conditionValue = MathTool.GetRandomElements(new HashSet<string> { "7", "8", "9" }, 1).ElementAt(0); conditionValue = MathTool.GetRandomElements(new HashSet<string> { "7", "8", "9" }, 1).ElementAt(0);
@ -190,7 +190,7 @@ public class WeaponManager : Singleton<WeaponManager>
conditionValue = Name.none; conditionValue = Name.none;
HashSet<string> nodesA = MathTool.GetRandomElements(new HashSet<string> { "1_0", "-1_0", "0_1", "0_-1", "-1_1", "-1_-1" }, 3); HashSet<string> nodesA = MathTool.GetRandomElements(new HashSet<string> { "1_0", "-1_0", "0_1", "0_-1", "-1_1", "-1_-1" }, 3);
nodesA.Add("0_0"); nodesA.Add("0_0");
nodesMark=nodesA.ToArray(); nodesMark = nodesA.ToArray();
nodesColor = new string[4] { MathTool.GetRandomElements(new HashSet<string> { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0) nodesColor = new string[4] { MathTool.GetRandomElements(new HashSet<string> { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0)
,MathTool.GetRandomElements(new HashSet<string> { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0) ,MathTool.GetRandomElements(new HashSet<string> { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0)
,MathTool.GetRandomElements(new HashSet<string> { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0) ,MathTool.GetRandomElements(new HashSet<string> { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0)
@ -202,16 +202,16 @@ public class WeaponManager : Singleton<WeaponManager>
sb.Append(MathTool.GetRandomElements(new HashSet<string> { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0)) sb.Append(MathTool.GetRandomElements(new HashSet<string> { Name.Color.Red, Name.Color.Blue, Name.Color.Yellow }, 1).ElementAt(0))
.Append(MathTool.GetRandomElements(new HashSet<string> { "<", ">" }, 1).ElementAt(0)) .Append(MathTool.GetRandomElements(new HashSet<string> { "<", ">" }, 1).ElementAt(0))
.Append(MathTool.GetRandomElements(new HashSet<string> { "5", "6", "7", "8", "9" }, 1).ElementAt(0)); .Append(MathTool.GetRandomElements(new HashSet<string> { "5", "6", "7", "8", "9" }, 1).ElementAt(0));
condition =sb.ToString(); condition = sb.ToString();
break; break;
} }
switch (result) switch (result)
{ {
case Name.WeaponNodeFunction.addScore: 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; break;
case Name.WeaponNodeFunction.mulScore: case Name.WeaponNodeFunction.mulScore:
resultValue = MathTool.GetRandomElements(new HashSet<string> { "1", "2"}, 1).ElementAt(0); resultValue = MathTool.GetRandomElements(new HashSet<string> { "1", "2" }, 1).ElementAt(0);
break; break;
case Name.WeaponNodeFunction.repetWeaponNode: case Name.WeaponNodeFunction.repetWeaponNode:
resultValue = MathTool.GetRandomElements(new HashSet<string> { "0", "1", "2", "3", "4" }, 1).ElementAt(0); resultValue = MathTool.GetRandomElements(new HashSet<string> { "0", "1", "2", "3", "4" }, 1).ElementAt(0);
@ -250,7 +250,7 @@ public class WeaponManager : Singleton<WeaponManager>
resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(1, 2), 1).ElementAt(0); resultValue = MathTool.GetRandomElements(MathTool.GenerateIntegerSet(1, 2), 1).ElementAt(0);
break; break;
} }
WeaponNode weaponNode=gem.GetComponent<WeaponNode>(); WeaponNode weaponNode = gem.GetComponent<WeaponNode>();
weaponNode.result = result; weaponNode.result = result;
weaponNode.resultValue = resultValue; weaponNode.resultValue = resultValue;
weaponNode.condition = condition; weaponNode.condition = condition;
@ -267,7 +267,7 @@ public class WeaponManager : Singleton<WeaponManager>
switch (level) switch (level)
{ {
case Name.WeaponNodeLevel.Basic: case Name.WeaponNodeLevel.Basic:
condition= MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerBasicConditionSet, 1).ElementAt(0); condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerBasicConditionSet, 1).ElementAt(0);
break; break;
case Name.WeaponNodeLevel.Elementary: case Name.WeaponNodeLevel.Elementary:
condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerElementaryConditionSet, 1).ElementAt(0); condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerElementaryConditionSet, 1).ElementAt(0);
@ -279,9 +279,9 @@ public class WeaponManager : Singleton<WeaponManager>
condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerAdvancedConditionSet, 1).ElementAt(0); condition = MathTool.GetRandomElements(Name.WeaponNodeCondition.PlayerAdvancedConditionSet, 1).ElementAt(0);
break; break;
} }
string conditionValue = ""; string conditionValue = "";
List<string> nodesMark =new List<string>(); List<string> nodesMark = new List<string>();
List<string> nodesColor = new List<string>(); List<string> nodesColor = new List<string>();
string result = ""; string result = "";
switch (level) switch (level)
@ -299,7 +299,7 @@ public class WeaponManager : Singleton<WeaponManager>
result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerAdvancedResultSet, 1).ElementAt(0); result = MathTool.GetRandomElements(Name.WeaponNodeFunction.PlayerAdvancedResultSet, 1).ElementAt(0);
break; break;
} }
string resultValue = ""; string resultValue = "";
conditionValue = getConditionValueWithLevel(level, condition, ref nodesMark, ref nodesMark); conditionValue = getConditionValueWithLevel(level, condition, ref nodesMark, ref nodesMark);
resultValue = getResultValueWithLevel(level, result, condition, conditionValue); resultValue = getResultValueWithLevel(level, result, condition, conditionValue);
@ -313,8 +313,294 @@ public class WeaponManager : Singleton<WeaponManager>
return gem; return gem;
} }
public GameObject getRandomWeaponNodeForPlayerWithLevelDiff(int levelDiff)
{
GameObject gem = Instantiate(Resources.Load<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
string condition = "";
HashSet<string> resultSet = new HashSet<string>();
HashSet<string> conditiontSet = new HashSet<string>();
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<string> { Name.WeaponNodeLevel.Elementary, Name.WeaponNodeLevel.Basic, Name.WeaponNodeLevel.Intermediate }, 1).ElementAt(0);
break;
case 2:
conditionLevel = MathTool.GetRandomElements(new HashSet<string> { 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<string> nodesMark = new List<string>();
List<string> nodesColor = new List<string>();
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<string> nodesMark, ref List<string> nodesColor) }
string resultValue = "";
conditionValue = getConditionValueWithLevel(conditionLevel, condition, ref nodesMark, ref nodesMark);
resultValue = getResultValueWithLevel(resultLevel, result, condition, conditionValue);
WeaponNode weaponNode = gem.GetComponent<WeaponNode>();
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<GameObject>(Name.WeaponNode.PrefabPath + Name.WeaponNode.PrefabName));
string condition = "";
HashSet<string> resultSet = new HashSet<string>();
HashSet<string> conditiontSet = new HashSet<string>();
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<string> nodesMark = new List<string>();
List<string> nodesColor = new List<string>();
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>();
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<string> nodesMark, ref List<string> nodesColor)
{ {
string conditionValue = ""; string conditionValue = "";
switch (condition) switch (condition)
@ -335,16 +621,16 @@ public class WeaponManager : Singleton<WeaponManager>
switch (level) switch (level)
{ {
case Name.WeaponNodeLevel.Basic: case Name.WeaponNodeLevel.Basic:
conditionValue = MathTool.GetRandomElements(new HashSet<string> { "1", "2", }, 1).ElementAt(0); conditionValue = MathTool.GetRandomElements(new HashSet<string> { "1", "2", }, 1).ElementAt(0);
break; break;
case Name.WeaponNodeLevel.Elementary: case Name.WeaponNodeLevel.Elementary:
conditionValue = MathTool.GetRandomElements(new HashSet<string> { "2", "3", }, 1).ElementAt(0); conditionValue = MathTool.GetRandomElements(new HashSet<string> { "2", "3", }, 1).ElementAt(0);
break; break;
case Name.WeaponNodeLevel.Intermediate: case Name.WeaponNodeLevel.Intermediate:
conditionValue = MathTool.GetRandomElements(new HashSet<string> { "3", "4", "5" }, 1).ElementAt(0); conditionValue = MathTool.GetRandomElements(new HashSet<string> { "3", "4", "5" }, 1).ElementAt(0);
break; break;
case Name.WeaponNodeLevel.Advanced: case Name.WeaponNodeLevel.Advanced:
conditionValue = MathTool.GetRandomElements(new HashSet<string> { "4", "5" }, 1).ElementAt(0); conditionValue = MathTool.GetRandomElements(new HashSet<string> { "4", "5" }, 1).ElementAt(0);
break; break;
} }
break; break;
@ -356,7 +642,7 @@ public class WeaponManager : Singleton<WeaponManager>
switch (level) switch (level)
{ {
case Name.WeaponNodeLevel.Basic: 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; break;
case Name.WeaponNodeLevel.Elementary: case Name.WeaponNodeLevel.Elementary:
conditionValue = MathTool.GetRandomElements(MathTool.GetTargetRange(4, 6), 1).ElementAt(0); conditionValue = MathTool.GetRandomElements(MathTool.GetTargetRange(4, 6), 1).ElementAt(0);
@ -378,7 +664,7 @@ public class WeaponManager : Singleton<WeaponManager>
switch (level) switch (level)
{ {
case Name.WeaponNodeLevel.Basic: case Name.WeaponNodeLevel.Basic:
nodesA= MathTool.GetRandomElements(new HashSet<string> { "1_0", "-1_0", "0_1", "0_-1", "-1_1", "-1_-1" }, 2); nodesA = MathTool.GetRandomElements(new HashSet<string> { "1_0", "-1_0", "0_1", "0_-1", "-1_1", "-1_-1" }, 2);
break; break;
case Name.WeaponNodeLevel.Elementary: case Name.WeaponNodeLevel.Elementary:
nodesA = MathTool.GetRandomElements(new HashSet<string> { "1_0", "-1_0", "0_1", "0_-1", "-1_1", "-1_-1" }, 3); nodesA = MathTool.GetRandomElements(new HashSet<string> { "1_0", "-1_0", "0_1", "0_-1", "-1_1", "-1_-1" }, 3);
@ -425,7 +711,7 @@ public class WeaponManager : Singleton<WeaponManager>
return conditionValue; 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 = ""; string resultValue = "";
switch (result) switch (result)
@ -550,8 +836,8 @@ public class WeaponManager : Singleton<WeaponManager>
} }
break; break;
case Name.WeaponNodeFunction.isIgnoreCondition: case Name.WeaponNodeFunction.isIgnoreCondition:
HashSet<string> targets= MathTool.GenerateIntegerSet(0, 4); HashSet<string> targets = MathTool.GenerateIntegerSet(0, 4);
if(condition.Equals(Name.WeaponNodeCondition.positionUnused)|| condition.Equals(Name.WeaponNodeCondition.positionUsed)) if (condition.Equals(Name.WeaponNodeCondition.positionUnused) || condition.Equals(Name.WeaponNodeCondition.positionUsed))
{ {
targets.Remove(conditionValue); targets.Remove(conditionValue);
} }
@ -562,9 +848,9 @@ public class WeaponManager : Singleton<WeaponManager>
} }
public void loadEnemyWeaponNode(int position,GameObject weaponNode) public void loadEnemyWeaponNode(int position, GameObject weaponNode)
{ {
Transform weaponSlot = enemyWeaponNodeList.GetChild(position); Transform weaponSlot = enemyWeaponNodeList.GetChild(position);
if (weaponSlot != null) if (weaponSlot != null)
{ {
@ -574,29 +860,29 @@ public class WeaponManager : Singleton<WeaponManager>
weaponNode.transform.localEulerAngles = Vector3.zero; weaponNode.transform.localEulerAngles = Vector3.zero;
weaponNode.transform.localScale = Vector3.one; weaponNode.transform.localScale = Vector3.one;
} }
} }
public void ClearAllChildren(Transform parent) public void ClearAllChildren(Transform parent)
{ {
// 创建临时列表存储子物体(避免在循环中修改集合) // ������ʱ�б��洢�����壨������ѭ�����޸ļ��ϣ�
List<GameObject> children = new List<GameObject>(); List<GameObject> children = new List<GameObject>();
// 收集所有子物体 // �ռ�����������
foreach (Transform child in parent) foreach (Transform child in parent)
{ {
children.Add(child.gameObject); children.Add(child.gameObject);
} }
// 删除所有子物体 // ɾ������������
foreach (GameObject child in children) foreach (GameObject child in children)
{ {
// 根据环境选择销毁方式 // ���ݻ���ѡ�����ٷ�ʽ
if (Application.isPlaying) if (Application.isPlaying)
{ {
Destroy(child); Destroy(child);
} }
else // 编辑器模式下 else // �༭��ģʽ��
{ {
DestroyImmediate(child); DestroyImmediate(child);
} }

BIN
ColorlessWorld-2024-4-2/obj/Debug/Assembly-CSharp-Editor.csproj.AssemblyReference.cache

Binary file not shown.
Loading…
Cancel
Save