From e0488cc790cdd4168d8bfb10d5bc82b95607831a Mon Sep 17 00:00:00 2001 From: basil <2428390463@qq.com> Date: Sun, 27 Sep 2026 18:21:26 +0800 Subject: [PATCH] =?UTF-8?q?Phase2.1=20=E6=B7=BB=E5=8A=A0=E6=AD=A6=E5=99=A8?= =?UTF-8?q?tag=E9=85=8D=E7=BD=AE=E5=92=8C=E6=95=B0=E6=8D=AE=E8=A1=A8?= =?UTF-8?q?=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .agents/skills/code-hygiene/SKILL.md | 6 +- .../GameMain/DataTables/tbgoodsconfig.bytes | Bin 146 -> 201 bytes Assets/GameMain/DataTables/tbgoodsconfig.json | 176 ++++--- .../DataTables/tbleveldropconfig.bytes | Bin 221 -> 181 bytes .../DataTables/tbleveldropconfig.json | 10 - Assets/GameMain/DataTables/tbpropconfig.bytes | Bin 915 -> 915 bytes Assets/GameMain/DataTables/tbpropconfig.json | 10 +- .../GameMain/DataTables/tbweaponconfig.bytes | Bin 286 -> 1448 bytes .../GameMain/DataTables/tbweaponconfig.json | 441 +++++++++++++++++- .../DataTables/tbweapontagconfig.bytes | Bin 0 -> 235 bytes .../DataTables/tbweapontagconfig.bytes.meta | 7 + .../DataTables/tbweapontagconfig.json | 259 ++++++++++ .../DataTables/tbweapontagconfig.json.meta | 7 + .../Base/EntityData/Weapon/WeaponData.cs | 2 +- .../GameMain/Scripts/Base/Gen/GoodsConfig.cs | 17 +- .../Scripts/Base/Gen/LevelDropConfig.cs | 7 - Assets/GameMain/Scripts/Base/Gen/Rarity.cs | 10 +- Assets/GameMain/Scripts/Base/Gen/Tables.cs | 3 + .../Scripts/Base/Gen/TbWeaponConfig.cs | 14 +- .../Scripts/Base/Gen/TbWeaponTagConfig.cs | 52 +++ .../Base/Gen/TbWeaponTagConfig.cs.meta | 11 + .../GameMain/Scripts/Base/Gen/WeaponConfig.cs | 35 ++ Assets/GameMain/Scripts/Base/Gen/WeaponTag.cs | 66 +++ .../Scripts/Base/Gen/WeaponTag.cs.meta | 11 + .../Scripts/Base/Gen/WeaponTagConfig.cs | 66 +++ .../Scripts/Base/Gen/WeaponTagConfig.cs.meta | 11 + .../Presentation/Common/View/IconArea.cs | 1 - .../ItemTooltip/ItemTooltipForm.Logic.cs | 6 +- .../Presentation/Shop/GoodsItemContext.cs | 2 +- .../BuiltinComponent/UIComponentExtension.cs | 2 + .../CustomComponent/Luban/LubanComponent.cs | 10 +- .../Runtime/UIBase/Shop/ShopGoodsSelection.cs | 3 +- .../Runtime/UIBase/Shop/ShopUseCase.cs | 17 +- .../Runtime/Utility/EntityDataFactory.cs | 10 +- .../Scripts/Runtime/Utility/RarityUtility.cs | 4 +- .../Scripts/Runtime/Utility/WeaponUtility.cs | 83 ++++ .../Runtime/Utility/WeaponUtility.cs.meta | 11 + .../UI/UIForms/ItemTooltipForm.prefab | 46 +- ProjectSettings/EditorSettings.asset | 2 +- 数据表/Datas/GoodsConfig_商品配置.xlsx | Bin 10681 -> 12707 bytes .../Datas/LevelDropConfig_关卡爆率配置.xlsx | Bin 10276 -> 10184 bytes .../LevelUpRewardConfig_升级奖励配置.xlsx | Bin 11463 -> 11416 bytes 数据表/Datas/PropConfig_道具配置.xlsx | Bin 13386 -> 13304 bytes 数据表/Datas/WeaponConfig_武器配置.xlsx | Bin 11688 -> 13744 bytes .../WeaponTagConfig_武器标签效果配置.xlsx | Bin 0 -> 11849 bytes 数据表/Datas/__enums__.xlsx | Bin 17307 -> 18919 bytes 数据表/Datas/__tables__.xlsx | Bin 12166 -> 12236 bytes 47 files changed, 1249 insertions(+), 169 deletions(-) create mode 100644 Assets/GameMain/DataTables/tbweapontagconfig.bytes create mode 100644 Assets/GameMain/DataTables/tbweapontagconfig.bytes.meta create mode 100644 Assets/GameMain/DataTables/tbweapontagconfig.json create mode 100644 Assets/GameMain/DataTables/tbweapontagconfig.json.meta create mode 100644 Assets/GameMain/Scripts/Base/Gen/TbWeaponTagConfig.cs create mode 100644 Assets/GameMain/Scripts/Base/Gen/TbWeaponTagConfig.cs.meta create mode 100644 Assets/GameMain/Scripts/Base/Gen/WeaponTag.cs create mode 100644 Assets/GameMain/Scripts/Base/Gen/WeaponTag.cs.meta create mode 100644 Assets/GameMain/Scripts/Base/Gen/WeaponTagConfig.cs create mode 100644 Assets/GameMain/Scripts/Base/Gen/WeaponTagConfig.cs.meta create mode 100644 Assets/GameMain/Scripts/Runtime/Utility/WeaponUtility.cs create mode 100644 Assets/GameMain/Scripts/Runtime/Utility/WeaponUtility.cs.meta create mode 100644 数据表/Datas/WeaponTagConfig_武器标签效果配置.xlsx diff --git a/.agents/skills/code-hygiene/SKILL.md b/.agents/skills/code-hygiene/SKILL.md index f8f8bb6..b290206 100644 --- a/.agents/skills/code-hygiene/SKILL.md +++ b/.agents/skills/code-hygiene/SKILL.md @@ -1,15 +1,15 @@ --- name: code-hygiene description: >- - Inspect and clean up code in the Seek-Battle-Evacuate (SBE) project according to AGENTS.md + Inspect and clean up code in Unity project according to AGENTS.md null-checking rules, error handling specifications, and anti-defensive programming guidelines. Use this skill whenever the user asks to format code per AGENTS.md, clean up redundant null checks, remove over-defensive fallbacks, or review code hygiene. --- -# SBE Code Hygiene & Defensive Cleanup +# Code Hygiene & Defensive Cleanup -本技能用于规范 SBE 项目中的 C# 代码质量,消除过度防御(Over-Defensive Programming)、冗余判空与静默吞错,严格对齐 `AGENTS.md` 规范与敏捷“Fail Fast”(快速失败)原则。 +本技能用于规范 Unity 项目中的 C# 代码质量,消除过度防御(Over-Defensive Programming)、冗余判空与静默吞错,严格对齐 `AGENTS.md` 规范与敏捷“Fail Fast”(快速失败)原则。 --- diff --git a/Assets/GameMain/DataTables/tbgoodsconfig.bytes b/Assets/GameMain/DataTables/tbgoodsconfig.bytes index 6f2c956b00333e69830e5807379529ab8a7b5a8b..47c255bfa620a5485fba891cc9292c433335991e 100644 GIT binary patch literal 201 zcmV~$w^76Z07TK*t%g2-umfU7fhxc>fob9lp2H_P>AW`q@10PKnxPodh=x|QjKqks z7&8$QreexW%$SQg3$b7+maN2zwOF$e8@6K0PVCr=JqK~%D30lvI$bkN&ot?qHV;lG zk4`sFPA|_+KQAtB^6KI?Z!Yfg?&3ZJmlyePd6`d_SNU>zoo`pC`EhlYUspx`T%G>| D2<~sq literal 146 zcmWN@#{q&+00qH)UoFCV*JeS%Kn|uk&DkneSQp|o)_D5|n|Q;vP`t+mAF;(}yyGiA tu!~RZ;|qt_;TU_I;(&7;afuVIamFn!xW^UWal=pC@mn}tC>$>-oPHk;Kra9Q diff --git a/Assets/GameMain/DataTables/tbgoodsconfig.json b/Assets/GameMain/DataTables/tbgoodsconfig.json index d63341b..d16d44a 100644 --- a/Assets/GameMain/DataTables/tbgoodsconfig.json +++ b/Assets/GameMain/DataTables/tbgoodsconfig.json @@ -2,151 +2,201 @@ { "id": 1001, "goodsType": 1, - "propId": 1001, - "weaponType": 0 + "refId": 1001 }, { "id": 1002, - "goodsType": 2, - "propId": 0, - "weaponType": 1 + "goodsType": 1, + "refId": 1002 }, { "id": 1003, "goodsType": 1, - "propId": 1002, - "weaponType": 0 + "refId": 1003 }, { "id": 1004, "goodsType": 1, - "propId": 1003, - "weaponType": 0 + "refId": 1004 }, { "id": 1005, "goodsType": 1, - "propId": 1004, - "weaponType": 0 + "refId": 1005 }, { "id": 1006, - "goodsType": 2, - "propId": 0, - "weaponType": 2 + "goodsType": 1, + "refId": 1006 }, { "id": 1007, "goodsType": 1, - "propId": 1005, - "weaponType": 0 + "refId": 1007 }, { "id": 1008, "goodsType": 1, - "propId": 1006, - "weaponType": 0 + "refId": 1008 }, { "id": 1009, "goodsType": 1, - "propId": 1007, - "weaponType": 0 + "refId": 1009 }, { "id": 1010, "goodsType": 1, - "propId": 1008, - "weaponType": 0 + "refId": 1010 }, { "id": 1011, "goodsType": 1, - "propId": 1009, - "weaponType": 0 + "refId": 1011 }, { "id": 1012, "goodsType": 1, - "propId": 1010, - "weaponType": 0 + "refId": 1012 }, { "id": 1013, "goodsType": 1, - "propId": 1011, - "weaponType": 0 + "refId": 1013 }, { "id": 1014, "goodsType": 1, - "propId": 1012, - "weaponType": 0 + "refId": 1014 }, { "id": 1015, "goodsType": 1, - "propId": 1013, - "weaponType": 0 + "refId": 1015 }, { "id": 1016, "goodsType": 1, - "propId": 1014, - "weaponType": 0 + "refId": 1016 }, { "id": 1017, "goodsType": 1, - "propId": 1015, - "weaponType": 0 + "refId": 1017 }, { "id": 1018, "goodsType": 1, - "propId": 1016, - "weaponType": 0 + "refId": 1018 }, { "id": 1019, "goodsType": 1, - "propId": 1017, - "weaponType": 0 + "refId": 1019 }, { "id": 1020, "goodsType": 1, - "propId": 1018, - "weaponType": 0 + "refId": 1020 }, { - "id": 1021, - "goodsType": 1, - "propId": 1019, - "weaponType": 0 - }, - { - "id": 1022, - "goodsType": 1, - "propId": 1020, - "weaponType": 0 - }, - { - "id": 1023, + "id": 2001, "goodsType": 2, - "propId": 0, - "weaponType": 3 + "refId": 1001 }, { - "id": 1024, + "id": 2002, "goodsType": 2, - "propId": 0, - "weaponType": 4 + "refId": 1002 }, { - "id": 1025, + "id": 2003, "goodsType": 2, - "propId": 0, - "weaponType": 5 + "refId": 1003 + }, + { + "id": 2004, + "goodsType": 2, + "refId": 1004 + }, + { + "id": 2005, + "goodsType": 2, + "refId": 2001 + }, + { + "id": 2006, + "goodsType": 2, + "refId": 2002 + }, + { + "id": 2007, + "goodsType": 2, + "refId": 2003 + }, + { + "id": 2008, + "goodsType": 2, + "refId": 2004 + }, + { + "id": 2009, + "goodsType": 2, + "refId": 3001 + }, + { + "id": 2010, + "goodsType": 2, + "refId": 3002 + }, + { + "id": 2011, + "goodsType": 2, + "refId": 3003 + }, + { + "id": 2012, + "goodsType": 2, + "refId": 3004 + }, + { + "id": 2013, + "goodsType": 2, + "refId": 4001 + }, + { + "id": 2014, + "goodsType": 2, + "refId": 4002 + }, + { + "id": 2015, + "goodsType": 2, + "refId": 4003 + }, + { + "id": 2016, + "goodsType": 2, + "refId": 4004 + }, + { + "id": 2017, + "goodsType": 2, + "refId": 5001 + }, + { + "id": 2018, + "goodsType": 2, + "refId": 5002 + }, + { + "id": 2019, + "goodsType": 2, + "refId": 5003 + }, + { + "id": 2020, + "goodsType": 2, + "refId": 5004 } ] \ No newline at end of file diff --git a/Assets/GameMain/DataTables/tbleveldropconfig.bytes b/Assets/GameMain/DataTables/tbleveldropconfig.bytes index 7d0f5e74803876b66691c0ecd63079ba3be7a921..14b31fb56da8cf2e746bad948b3dab55e30cc5ba 100644 GIT binary patch literal 181 zcmd;Te#yWv&541b!2yWv8GxYq6^6)b43Res3?CdB7z%(GqOSQ7ViGy=vc}q+sQ4_{142UIx1g+7*pb|-l z0|O?$B|0*c!I!T926b>|@>-5W3?8?%%k%t_=k9;ce5MPfcD>Nv!w90O^@x_-GFFX5 zG~#PHp+%U|0eDg%0A;m02gx6(;CB`6&3v#Fgqzs*oM`mYb6U>yXy=pV2&Rmip3`!! zJm=(iVYKtbazwL;dvvZkohvZX$vz{gle0RfH7LyV4`)R)^w_R3L5@O!IGq9jD+qw( zQgsf1;TqbSePJR9+c-^?GDCS~Dgv(IJXLNO${SM=`#0rH)cjwuZUw1hSKE~af<79D zwM}h1?uJHzx_jF|9i)bw&iC>lHC`EQw(eLA!g=?$d7OKeBjAQ9^EnSJM>J)#$mJBy zM5%jJdq22_{@H$NLWx*>$4D44KM_c7>@XQj70HL3viq)775puwM&W#nhHxVs3&0o7DF}>AM*o(%>v*6 delta 150 zcmZ3%J&%cxm61C_#rBNGSf3k@-p+%Czmnn+OtB{`XuHhr!uCbFfbgjXJlYl;ILePnc3Lb b*q()fVS)oI0|SFS1F}-Kms9sYo3{!8e;zJo diff --git a/Assets/GameMain/DataTables/tbweaponconfig.json b/Assets/GameMain/DataTables/tbweaponconfig.json index 4207145..ace2069 100644 --- a/Assets/GameMain/DataTables/tbweaponconfig.json +++ b/Assets/GameMain/DataTables/tbweaponconfig.json @@ -1,7 +1,15 @@ [ { + "id": 1001, "weaponType": 1, + "weaponName": "小刀", + "tags": [ + 1, + 2 + ], "logicType": "WeaponKnife", + "scalingStat": 5, + "scalingRatio": 0.2, "rarity": 1, "price": 120, "attack": 100, @@ -20,8 +28,99 @@ "sprite": "小刀" }, { + "id": 1002, + "weaponType": 1, + "weaponName": "小刀", + "tags": [ + 1, + 2 + ], + "logicType": "WeaponKnife", + "scalingStat": 5, + "scalingRatio": 0.2, + "rarity": 2, + "price": 200, + "attack": 150, + "cooldown": 1.5, + "damageType": 1, + "attackRange": 5.2, + "attackSoundId": 10000, + "parameters": [ + [ + 1, + 2.2 + ] + ], + "statModifierConfigs": [], + "prefab": "WeaponKnife", + "sprite": "小刀" + }, + { + "id": 1003, + "weaponType": 1, + "weaponName": "小刀", + "tags": [ + 1, + 2 + ], + "logicType": "WeaponKnife", + "scalingStat": 5, + "scalingRatio": 0.2, + "rarity": 3, + "price": 300, + "attack": 200, + "cooldown": 1.5, + "damageType": 1, + "attackRange": 5.4, + "attackSoundId": 10000, + "parameters": [ + [ + 1, + 2.4 + ] + ], + "statModifierConfigs": [], + "prefab": "WeaponKnife", + "sprite": "小刀" + }, + { + "id": 1004, + "weaponType": 1, + "weaponName": "小刀", + "tags": [ + 1, + 2 + ], + "logicType": "WeaponKnife", + "scalingStat": 5, + "scalingRatio": 0.2, + "rarity": 4, + "price": 400, + "attack": 250, + "cooldown": 1.5, + "damageType": 1, + "attackRange": 5.5, + "attackSoundId": 10000, + "parameters": [ + [ + 1, + 2.5 + ] + ], + "statModifierConfigs": [], + "prefab": "WeaponKnife", + "sprite": "小刀" + }, + { + "id": 2001, "weaponType": 2, + "weaponName": "手枪", + "tags": [ + 3 + ], "logicType": "WeaponHandgun", + "scalingStat": 8, + "scalingRatio": 0.5, "rarity": 1, "price": 130, "attack": 120, @@ -35,8 +134,82 @@ "sprite": "手枪" }, { + "id": 2002, + "weaponType": 2, + "weaponName": "手枪", + "tags": [ + 3 + ], + "logicType": "WeaponHandgun", + "scalingStat": 8, + "scalingRatio": 0.5, + "rarity": 2, + "price": 150, + "attack": 130, + "cooldown": 1, + "damageType": 2, + "attackRange": 20, + "attackSoundId": 10000, + "parameters": [], + "statModifierConfigs": [], + "prefab": "WeaponHandgun", + "sprite": "手枪" + }, + { + "id": 2003, + "weaponType": 2, + "weaponName": "手枪", + "tags": [ + 3 + ], + "logicType": "WeaponHandgun", + "scalingStat": 8, + "scalingRatio": 0.5, + "rarity": 3, + "price": 170, + "attack": 140, + "cooldown": 1, + "damageType": 2, + "attackRange": 23, + "attackSoundId": 10000, + "parameters": [], + "statModifierConfigs": [], + "prefab": "WeaponHandgun", + "sprite": "手枪" + }, + { + "id": 2004, + "weaponType": 2, + "weaponName": "手枪", + "tags": [ + 3 + ], + "logicType": "WeaponHandgun", + "scalingStat": 8, + "scalingRatio": 0.5, + "rarity": 4, + "price": 200, + "attack": 150, + "cooldown": 1, + "damageType": 2, + "attackRange": 25, + "attackSoundId": 10000, + "parameters": [], + "statModifierConfigs": [], + "prefab": "WeaponHandgun", + "sprite": "手枪" + }, + { + "id": 3001, "weaponType": 3, + "weaponName": "斧头", + "tags": [ + 1, + 5 + ], "logicType": "WeaponSlash", + "scalingStat": 5, + "scalingRatio": 0.8, "rarity": 1, "price": 100, "attack": 150, @@ -55,8 +228,99 @@ "sprite": "斧头" }, { + "id": 3002, + "weaponType": 3, + "weaponName": "斧头", + "tags": [ + 1, + 5 + ], + "logicType": "WeaponSlash", + "scalingStat": 5, + "scalingRatio": 0.8, + "rarity": 2, + "price": 140, + "attack": 200, + "cooldown": 2, + "damageType": 1, + "attackRange": 5, + "attackSoundId": 10000, + "parameters": [ + [ + 2, + 120 + ] + ], + "statModifierConfigs": [], + "prefab": "WeaponSlash", + "sprite": "斧头" + }, + { + "id": 3003, + "weaponType": 3, + "weaponName": "斧头", + "tags": [ + 1, + 5 + ], + "logicType": "WeaponSlash", + "scalingStat": 5, + "scalingRatio": 0.8, + "rarity": 3, + "price": 180, + "attack": 300, + "cooldown": 2, + "damageType": 1, + "attackRange": 5, + "attackSoundId": 10000, + "parameters": [ + [ + 2, + 120 + ] + ], + "statModifierConfigs": [], + "prefab": "WeaponSlash", + "sprite": "斧头" + }, + { + "id": 3004, + "weaponType": 3, + "weaponName": "斧头", + "tags": [ + 1, + 5 + ], + "logicType": "WeaponSlash", + "scalingStat": 5, + "scalingRatio": 0.8, + "rarity": 4, + "price": 300, + "attack": 400, + "cooldown": 2, + "damageType": 1, + "attackRange": 5, + "attackSoundId": 10000, + "parameters": [ + [ + 2, + 120 + ] + ], + "statModifierConfigs": [], + "prefab": "WeaponSlash", + "sprite": "斧头" + }, + { + "id": 4001, "weaponType": 4, + "weaponName": "闪电", + "tags": [ + 7 + ], "logicType": "WeaponLightning", + "scalingStat": 7, + "scalingRatio": 0.5, "rarity": 1, "price": 150, "attack": 80, @@ -75,8 +339,97 @@ "sprite": "闪电" }, { + "id": 4002, + "weaponType": 4, + "weaponName": "闪电", + "tags": [ + 7 + ], + "logicType": "WeaponLightning", + "scalingStat": 7, + "scalingRatio": 0.5, + "rarity": 2, + "price": 180, + "attack": 80, + "cooldown": 2.8, + "damageType": 4, + "attackRange": 12, + "attackSoundId": 10000, + "parameters": [ + [ + 1, + 3 + ] + ], + "statModifierConfigs": [], + "prefab": "WeaponLightning", + "sprite": "闪电" + }, + { + "id": 4003, + "weaponType": 4, + "weaponName": "闪电", + "tags": [ + 7 + ], + "logicType": "WeaponLightning", + "scalingStat": 7, + "scalingRatio": 0.5, + "rarity": 3, + "price": 200, + "attack": 80, + "cooldown": 2.7, + "damageType": 4, + "attackRange": 12, + "attackSoundId": 10000, + "parameters": [ + [ + 1, + 3 + ] + ], + "statModifierConfigs": [], + "prefab": "WeaponLightning", + "sprite": "闪电" + }, + { + "id": 4004, + "weaponType": 4, + "weaponName": "闪电", + "tags": [ + 7 + ], + "logicType": "WeaponLightning", + "scalingStat": 7, + "scalingRatio": 0.5, + "rarity": 4, + "price": 250, + "attack": 80, + "cooldown": 2.5, + "damageType": 4, + "attackRange": 12, + "attackSoundId": 10000, + "parameters": [ + [ + 1, + 3 + ] + ], + "statModifierConfigs": [], + "prefab": "WeaponLightning", + "sprite": "闪电" + }, + { + "id": 5001, "weaponType": 5, + "weaponName": "长枪", + "tags": [ + 1, + 6 + ], "logicType": "WeaponLance", + "scalingStat": 9, + "scalingRatio": 1, "rarity": 1, "price": 100, "attack": 100, @@ -88,14 +441,90 @@ [ 3, 0.7 - ], + ] + ], + "statModifierConfigs": [], + "prefab": "WeaponLance", + "sprite": "长枪" + }, + { + "id": 5002, + "weaponType": 5, + "weaponName": "长枪", + "tags": [ + 1, + 6 + ], + "logicType": "WeaponLance", + "scalingStat": 9, + "scalingRatio": 1, + "rarity": 2, + "price": 200, + "attack": 100, + "cooldown": 1.5, + "damageType": 1, + "attackRange": 5, + "attackSoundId": 10000, + "parameters": [ [ - 4, - 4.5 - ], + 3, + 0.7 + ] + ], + "statModifierConfigs": [], + "prefab": "WeaponLance", + "sprite": "长枪" + }, + { + "id": 5003, + "weaponType": 5, + "weaponName": "长枪", + "tags": [ + 1, + 6 + ], + "logicType": "WeaponLance", + "scalingStat": 9, + "scalingRatio": 1, + "rarity": 3, + "price": 300, + "attack": 100, + "cooldown": 1.5, + "damageType": 1, + "attackRange": 5, + "attackSoundId": 10000, + "parameters": [ [ - 5, - 0.5 + 3, + 0.7 + ] + ], + "statModifierConfigs": [], + "prefab": "WeaponLance", + "sprite": "长枪" + }, + { + "id": 5004, + "weaponType": 5, + "weaponName": "长枪", + "tags": [ + 1, + 6 + ], + "logicType": "WeaponLance", + "scalingStat": 9, + "scalingRatio": 1, + "rarity": 4, + "price": 400, + "attack": 100, + "cooldown": 1.5, + "damageType": 1, + "attackRange": 5, + "attackSoundId": 10000, + "parameters": [ + [ + 3, + 0.7 ] ], "statModifierConfigs": [], diff --git a/Assets/GameMain/DataTables/tbweapontagconfig.bytes b/Assets/GameMain/DataTables/tbweapontagconfig.bytes new file mode 100644 index 0000000000000000000000000000000000000000..e9a322c40d465865b22f2e394473b86bf258af6e GIT binary patch literal 235 zcmW;Gy=?+P5C!0!*|}NWnUsLc4PY8Dut!8d1BP^LQkQVM4ItylL`c+uZ4vPsJEe(( z)H|1bdeVD(?N>m^jH!n52Bh*{=D?U_O0k#oq%YM05%R^ZewONp1bOkdN$Ck0^3_*o zAfam!9*lV`B|KSD?h|{KmE)0w4?-x?q?fQHQmzv}iIrNbGlW+2Biu4lrX%5=vGUhT jd|?D=(l}+S)O5zId@m(#9fE5X; Config.DamageType; - public string Title => Config.WeaponType.ToString(); + public string Title => Config.WeaponName; public string Sprite => Config.Sprite; diff --git a/Assets/GameMain/Scripts/Base/Gen/GoodsConfig.cs b/Assets/GameMain/Scripts/Base/Gen/GoodsConfig.cs index 1fd4714..1930acb 100644 --- a/Assets/GameMain/Scripts/Base/Gen/GoodsConfig.cs +++ b/Assets/GameMain/Scripts/Base/Gen/GoodsConfig.cs @@ -18,9 +18,7 @@ public sealed partial class GoodsConfig : Luban.BeanBase { Id = _buf.ReadInt(); GoodsType = (GoodsType)_buf.ReadInt(); - PropId = _buf.ReadInt(); - PropId_Ref = null; - WeaponType = (WeaponType)_buf.ReadInt(); + RefId = _buf.ReadInt(); } public static GoodsConfig DeserializeGoodsConfig(ByteBuf _buf) @@ -37,14 +35,9 @@ public sealed partial class GoodsConfig : Luban.BeanBase /// public readonly GoodsType GoodsType; /// - /// 道具商品Id + /// 引用Id /// - public readonly int PropId; - public PropConfig PropId_Ref; - /// - /// 武器商品类型 - /// - public readonly WeaponType WeaponType; + public readonly int RefId; public const int __ID__ = 1358452248; public override int GetTypeId() => __ID__; @@ -53,7 +46,6 @@ public sealed partial class GoodsConfig : Luban.BeanBase { - PropId_Ref = tables.TbPropConfig.GetOrDefault(PropId); } @@ -62,8 +54,7 @@ public sealed partial class GoodsConfig : Luban.BeanBase return "{ " + "id:" + Id + "," + "goodsType:" + GoodsType + "," - + "propId:" + PropId + "," - + "weaponType:" + WeaponType + "," + + "refId:" + RefId + "," + "}"; } } diff --git a/Assets/GameMain/Scripts/Base/Gen/LevelDropConfig.cs b/Assets/GameMain/Scripts/Base/Gen/LevelDropConfig.cs index 1effb61..b5beaec 100644 --- a/Assets/GameMain/Scripts/Base/Gen/LevelDropConfig.cs +++ b/Assets/GameMain/Scripts/Base/Gen/LevelDropConfig.cs @@ -18,7 +18,6 @@ public sealed partial class LevelDropConfig : Luban.BeanBase { Id = _buf.ReadInt(); WhiteWeight = _buf.ReadFloat(); - GreenWeight = _buf.ReadFloat(); BlueWeight = _buf.ReadFloat(); PurpleWeight = _buf.ReadFloat(); RedWeight = _buf.ReadFloat(); @@ -38,10 +37,6 @@ public sealed partial class LevelDropConfig : Luban.BeanBase /// public readonly float WhiteWeight; /// - /// 绿色掉落率 - /// - public readonly float GreenWeight; - /// /// 蓝色掉落率 /// public readonly float BlueWeight; @@ -64,7 +59,6 @@ public sealed partial class LevelDropConfig : Luban.BeanBase - } public override string ToString() @@ -72,7 +66,6 @@ public sealed partial class LevelDropConfig : Luban.BeanBase return "{ " + "Id:" + Id + "," + "WhiteWeight:" + WhiteWeight + "," - + "GreenWeight:" + GreenWeight + "," + "BlueWeight:" + BlueWeight + "," + "PurpleWeight:" + PurpleWeight + "," + "RedWeight:" + RedWeight + "," diff --git a/Assets/GameMain/Scripts/Base/Gen/Rarity.cs b/Assets/GameMain/Scripts/Base/Gen/Rarity.cs index d12784c..783cf35 100644 --- a/Assets/GameMain/Scripts/Base/Gen/Rarity.cs +++ b/Assets/GameMain/Scripts/Base/Gen/Rarity.cs @@ -25,21 +25,17 @@ namespace SepCore.Definition /// White = 1, /// - /// 绿 - /// - Green = 2, - /// /// 蓝 /// - Blue = 3, + Blue = 2, /// /// 紫 /// - Purple = 4, + Purple = 3, /// /// 红 /// - Red = 5, + Red = 4, } } diff --git a/Assets/GameMain/Scripts/Base/Gen/Tables.cs b/Assets/GameMain/Scripts/Base/Gen/Tables.cs index 43015bb..d4da348 100644 --- a/Assets/GameMain/Scripts/Base/Gen/Tables.cs +++ b/Assets/GameMain/Scripts/Base/Gen/Tables.cs @@ -65,6 +65,7 @@ public partial class Tables /// 角色属性配置 /// public TbStatConfig TbStatConfig {get; } + public TbWeaponTagConfig TbWeaponTagConfig {get; } public Tables(System.Func loader) { @@ -87,6 +88,7 @@ public partial class Tables TbUISoundConfig = new TbUISoundConfig(loader("tbuisoundconfig")); TbWeaponConfig = new TbWeaponConfig(loader("tbweaponconfig")); TbStatConfig = new TbStatConfig(loader("tbstatconfig")); + TbWeaponTagConfig = new TbWeaponTagConfig(loader("tbweapontagconfig")); ResolveRef(); } @@ -111,6 +113,7 @@ public partial class Tables TbUISoundConfig.ResolveRef(this); TbWeaponConfig.ResolveRef(this); TbStatConfig.ResolveRef(this); + TbWeaponTagConfig.ResolveRef(this); } } diff --git a/Assets/GameMain/Scripts/Base/Gen/TbWeaponConfig.cs b/Assets/GameMain/Scripts/Base/Gen/TbWeaponConfig.cs index 09544a6..1aa05be 100644 --- a/Assets/GameMain/Scripts/Base/Gen/TbWeaponConfig.cs +++ b/Assets/GameMain/Scripts/Base/Gen/TbWeaponConfig.cs @@ -17,12 +17,12 @@ namespace SepCore.Definition /// public partial class TbWeaponConfig { - private readonly System.Collections.Generic.Dictionary _dataMap; + private readonly System.Collections.Generic.Dictionary _dataMap; private readonly System.Collections.Generic.List _dataList; public TbWeaponConfig(ByteBuf _buf) { - _dataMap = new System.Collections.Generic.Dictionary(); + _dataMap = new System.Collections.Generic.Dictionary(); _dataList = new System.Collections.Generic.List(); for(int n = _buf.ReadSize() ; n > 0 ; --n) @@ -30,16 +30,16 @@ public partial class TbWeaponConfig WeaponConfig _v; _v = WeaponConfig.DeserializeWeaponConfig(_buf); _dataList.Add(_v); - _dataMap.Add(_v.WeaponType, _v); + _dataMap.Add(_v.Id, _v); } } - public System.Collections.Generic.Dictionary DataMap => _dataMap; + public System.Collections.Generic.Dictionary DataMap => _dataMap; public System.Collections.Generic.List DataList => _dataList; - public WeaponConfig GetOrDefault(WeaponType key) => _dataMap.TryGetValue(key, out var v) ? v : null; - public WeaponConfig Get(WeaponType key) => _dataMap[key]; - public WeaponConfig this[WeaponType key] => _dataMap[key]; + public WeaponConfig GetOrDefault(int key) => _dataMap.TryGetValue(key, out var v) ? v : null; + public WeaponConfig Get(int key) => _dataMap[key]; + public WeaponConfig this[int key] => _dataMap[key]; public void ResolveRef(Tables tables) { diff --git a/Assets/GameMain/Scripts/Base/Gen/TbWeaponTagConfig.cs b/Assets/GameMain/Scripts/Base/Gen/TbWeaponTagConfig.cs new file mode 100644 index 0000000..7762e8a --- /dev/null +++ b/Assets/GameMain/Scripts/Base/Gen/TbWeaponTagConfig.cs @@ -0,0 +1,52 @@ + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using Luban; + + +namespace SepCore.Definition +{ +public partial class TbWeaponTagConfig +{ + private readonly System.Collections.Generic.Dictionary _dataMap; + private readonly System.Collections.Generic.List _dataList; + + public TbWeaponTagConfig(ByteBuf _buf) + { + _dataMap = new System.Collections.Generic.Dictionary(); + _dataList = new System.Collections.Generic.List(); + + for(int n = _buf.ReadSize() ; n > 0 ; --n) + { + WeaponTagConfig _v; + _v = WeaponTagConfig.DeserializeWeaponTagConfig(_buf); + _dataList.Add(_v); + _dataMap.Add(_v.Id, _v); + } + } + + public System.Collections.Generic.Dictionary DataMap => _dataMap; + public System.Collections.Generic.List DataList => _dataList; + + public WeaponTagConfig GetOrDefault(int key) => _dataMap.TryGetValue(key, out var v) ? v : null; + public WeaponTagConfig Get(int key) => _dataMap[key]; + public WeaponTagConfig this[int key] => _dataMap[key]; + + public void ResolveRef(Tables tables) + { + foreach(var _v in _dataList) + { + _v.ResolveRef(tables); + } + } + +} + +} + diff --git a/Assets/GameMain/Scripts/Base/Gen/TbWeaponTagConfig.cs.meta b/Assets/GameMain/Scripts/Base/Gen/TbWeaponTagConfig.cs.meta new file mode 100644 index 0000000..d2d49a0 --- /dev/null +++ b/Assets/GameMain/Scripts/Base/Gen/TbWeaponTagConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2628c2be656a6c348a98ca6e01db6dde +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Base/Gen/WeaponConfig.cs b/Assets/GameMain/Scripts/Base/Gen/WeaponConfig.cs index 048cb72..b1ac70c 100644 --- a/Assets/GameMain/Scripts/Base/Gen/WeaponConfig.cs +++ b/Assets/GameMain/Scripts/Base/Gen/WeaponConfig.cs @@ -16,8 +16,13 @@ public sealed partial class WeaponConfig : Luban.BeanBase { public WeaponConfig(ByteBuf _buf) { + Id = _buf.ReadInt(); WeaponType = (WeaponType)_buf.ReadInt(); + WeaponName = _buf.ReadString(); + {int n0 = System.Math.Min(_buf.ReadSize(), _buf.Size);Tags = new System.Collections.Generic.List(n0);for(var i0 = 0 ; i0 < n0 ; i0++) { WeaponTag _e0; _e0 = (WeaponTag)_buf.ReadInt(); Tags.Add(_e0);}} LogicType = _buf.ReadString(); + ScalingStat = (StatType)_buf.ReadInt(); + ScalingRatio = _buf.ReadFloat(); Rarity = (Rarity)_buf.ReadInt(); Price = _buf.ReadInt(); Attack = _buf.ReadInt(); @@ -38,15 +43,35 @@ public sealed partial class WeaponConfig : Luban.BeanBase return new WeaponConfig(_buf); } + /// + /// 武器编号 + /// + public readonly int Id; /// /// 武器类型 /// public readonly WeaponType WeaponType; /// + /// 武器名 + /// + public readonly string WeaponName; + /// + /// 武器标签列表 + /// + public readonly System.Collections.Generic.List Tags; + /// /// 逻辑类型 /// public readonly string LogicType; /// + /// 加成主属性 + /// + public readonly StatType ScalingStat; + /// + /// 主属性加成系数 + /// + public readonly float ScalingRatio; + /// /// 道具品质 /// public readonly Rarity Rarity; @@ -105,6 +130,11 @@ public sealed partial class WeaponConfig : Luban.BeanBase + + + + + foreach (var _e in StatModifierConfigs) { _e?.ResolveRef(tables); } Prefab_Ref = tables.TbEntityConfig.GetOrDefault(Prefab); Sprite_Ref = tables.TbSpriteConfig.GetOrDefault(Sprite); @@ -113,8 +143,13 @@ public sealed partial class WeaponConfig : Luban.BeanBase public override string ToString() { return "{ " + + "id:" + Id + "," + "weaponType:" + WeaponType + "," + + "weaponName:" + WeaponName + "," + + "tags:" + Luban.StringUtil.CollectionToString(Tags) + "," + "logicType:" + LogicType + "," + + "scalingStat:" + ScalingStat + "," + + "scalingRatio:" + ScalingRatio + "," + "rarity:" + Rarity + "," + "price:" + Price + "," + "attack:" + Attack + "," diff --git a/Assets/GameMain/Scripts/Base/Gen/WeaponTag.cs b/Assets/GameMain/Scripts/Base/Gen/WeaponTag.cs new file mode 100644 index 0000000..6e26808 --- /dev/null +++ b/Assets/GameMain/Scripts/Base/Gen/WeaponTag.cs @@ -0,0 +1,66 @@ + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + + +namespace SepCore.Definition +{ + /// + /// 武器tag + /// + public enum WeaponTag : byte + { + /// + /// 无 + /// + None = 0, + /// + /// 刀剑 + /// + Blade = 1, + /// + /// 精准 + /// + Precise = 2, + /// + /// 枪械 + /// + Gun = 3, + /// + /// 工程 + /// + Engineering = 4, + /// + /// 钝器 + /// + Blunt = 5, + /// + /// 原始 + /// + Primitive = 6, + /// + /// 元素 + /// + Elemental = 7, + /// + /// 徒手 + /// + Unarmed = 8, + /// + /// 医疗 + /// + Medical = 9, + /// + /// 重型 + /// + Heavy = 10, + } + +} + diff --git a/Assets/GameMain/Scripts/Base/Gen/WeaponTag.cs.meta b/Assets/GameMain/Scripts/Base/Gen/WeaponTag.cs.meta new file mode 100644 index 0000000..fcd0911 --- /dev/null +++ b/Assets/GameMain/Scripts/Base/Gen/WeaponTag.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 67a3eb7a61baa114c936b306b55c6b7a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Base/Gen/WeaponTagConfig.cs b/Assets/GameMain/Scripts/Base/Gen/WeaponTagConfig.cs new file mode 100644 index 0000000..6e9b3ea --- /dev/null +++ b/Assets/GameMain/Scripts/Base/Gen/WeaponTagConfig.cs @@ -0,0 +1,66 @@ + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using Luban; + + +namespace SepCore.Definition +{ +public sealed partial class WeaponTagConfig : Luban.BeanBase +{ + public WeaponTagConfig(ByteBuf _buf) + { + Id = _buf.ReadInt(); + Tag = (WeaponTag)_buf.ReadInt(); + RequiredCount = _buf.ReadInt(); + {int n0 = System.Math.Min(_buf.ReadSize(), _buf.Size);StatModifierConfigs = new System.Collections.Generic.List(n0);for(var i0 = 0 ; i0 < n0 ; i0++) { StatModifierConfig _e0; _e0 = StatModifierConfig.DeserializeStatModifierConfig(_buf); StatModifierConfigs.Add(_e0);}} + } + + public static WeaponTagConfig DeserializeWeaponTagConfig(ByteBuf _buf) + { + return new WeaponTagConfig(_buf); + } + + /// + /// 效果编号 + /// + public readonly int Id; + /// + /// 标签 + /// + public readonly WeaponTag Tag; + /// + /// 触发所需条件数 + /// + public readonly int RequiredCount; + public readonly System.Collections.Generic.List StatModifierConfigs; + + public const int __ID__ = -1372305248; + public override int GetTypeId() => __ID__; + + public void ResolveRef(Tables tables) + { + + + + foreach (var _e in StatModifierConfigs) { _e?.ResolveRef(tables); } + } + + public override string ToString() + { + return "{ " + + "id:" + Id + "," + + "tag:" + Tag + "," + + "requiredCount:" + RequiredCount + "," + + "statModifierConfigs:" + Luban.StringUtil.CollectionToString(StatModifierConfigs) + "," + + "}"; + } +} + +} diff --git a/Assets/GameMain/Scripts/Base/Gen/WeaponTagConfig.cs.meta b/Assets/GameMain/Scripts/Base/Gen/WeaponTagConfig.cs.meta new file mode 100644 index 0000000..504fe67 --- /dev/null +++ b/Assets/GameMain/Scripts/Base/Gen/WeaponTagConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: be6aa68432437fb49ac08b59f65b8c6b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/Scripts/Presentation/Common/View/IconArea.cs b/Assets/GameMain/Scripts/Presentation/Common/View/IconArea.cs index e9fa4de..efb5073 100644 --- a/Assets/GameMain/Scripts/Presentation/Common/View/IconArea.cs +++ b/Assets/GameMain/Scripts/Presentation/Common/View/IconArea.cs @@ -26,7 +26,6 @@ namespace SepCore.UI _board.color = rarity switch { Rarity.White => Color.white, - Rarity.Green => Color.green, Rarity.Blue => Color.blue, Rarity.Purple => Color.magenta, Rarity.Red => Color.red, diff --git a/Assets/GameMain/Scripts/Presentation/ItemTooltip/ItemTooltipForm.Logic.cs b/Assets/GameMain/Scripts/Presentation/ItemTooltip/ItemTooltipForm.Logic.cs index 07036e2..7dbb03b 100644 --- a/Assets/GameMain/Scripts/Presentation/ItemTooltip/ItemTooltipForm.Logic.cs +++ b/Assets/GameMain/Scripts/Presentation/ItemTooltip/ItemTooltipForm.Logic.cs @@ -13,11 +13,11 @@ namespace SepCore.UI [SerializeField] private float _fixedTopHeight = 150f; - [SerializeField] private float _fixedBottomHeight = 150f; + [SerializeField] private float _fixedBottomHeight = 250; - [SerializeField] private float _fixedWidth = 300f; + [SerializeField] private float _fixedWidth = 600f; - [SerializeField] private float _screenEdgePadding = 0f; + [SerializeField] private float _screenEdgePadding = 64f; private ItemTooltipContext _context; diff --git a/Assets/GameMain/Scripts/Presentation/Shop/GoodsItemContext.cs b/Assets/GameMain/Scripts/Presentation/Shop/GoodsItemContext.cs index dfacb3c..2a98660 100644 --- a/Assets/GameMain/Scripts/Presentation/Shop/GoodsItemContext.cs +++ b/Assets/GameMain/Scripts/Presentation/Shop/GoodsItemContext.cs @@ -39,7 +39,7 @@ namespace SepCore.UI DamageType damageType; if (rawData.DataRow is WeaponConfig weaponConfig) { - Name = weaponConfig.WeaponType.ToString(); + Name = weaponConfig.WeaponName; Description = ItemDescUtility.CreateWeaponDescription(weaponConfig); damageType = weaponConfig.DamageType; } diff --git a/Assets/GameMain/Scripts/Runtime/BuiltinComponent/UIComponentExtension.cs b/Assets/GameMain/Scripts/Runtime/BuiltinComponent/UIComponentExtension.cs index 8b27024..d8ff2e8 100644 --- a/Assets/GameMain/Scripts/Runtime/BuiltinComponent/UIComponentExtension.cs +++ b/Assets/GameMain/Scripts/Runtime/BuiltinComponent/UIComponentExtension.cs @@ -84,11 +84,13 @@ namespace SepCore.UI { if (uiComponent.IsLoadingUIForm(assetName)) { + Log.Warning("UIComponentExtension.OpenUIForm() skipped '{0}' because it is already loading.", assetName); return null; } if (uiComponent.HasUIForm(assetName)) { + Log.Warning("UIComponentExtension.OpenUIForm() skipped '{0}' because it is already open.", assetName); return null; } } diff --git a/Assets/GameMain/Scripts/Runtime/CustomComponent/Luban/LubanComponent.cs b/Assets/GameMain/Scripts/Runtime/CustomComponent/Luban/LubanComponent.cs index 300cadb..f285413 100644 --- a/Assets/GameMain/Scripts/Runtime/CustomComponent/Luban/LubanComponent.cs +++ b/Assets/GameMain/Scripts/Runtime/CustomComponent/Luban/LubanComponent.cs @@ -36,7 +36,8 @@ namespace SepCore.CustomComponent "tbuiformconfig", "tbuisoundconfig", "tbweaponconfig", - "tbstatconfig" + "tbstatconfig", + "tbweapontagconfig" }; private sealed class TableAccessor @@ -131,7 +132,7 @@ namespace SepCore.CustomComponent }, { typeof(WeaponConfig), - Accessor(tables => id => tables.TbWeaponConfig.GetOrDefault((WeaponType)id), + Accessor(tables => id => tables.TbWeaponConfig.GetOrDefault(id), tables => tables.TbWeaponConfig.DataList) }, { @@ -139,6 +140,11 @@ namespace SepCore.CustomComponent Accessor(tables => id => tables.TbStatConfig.GetOrDefault((StatType)id), tables => tables.TbStatConfig.DataList) }, + { + typeof(WeaponTagConfig), + Accessor(tables => id => tables.TbWeaponTagConfig.GetOrDefault(id), + tables => tables.TbWeaponTagConfig.DataList) + }, }; private static TableAccessor Accessor(Func> rowGetterFactory, diff --git a/Assets/GameMain/Scripts/Runtime/UIBase/Shop/ShopGoodsSelection.cs b/Assets/GameMain/Scripts/Runtime/UIBase/Shop/ShopGoodsSelection.cs index f472fc0..40d45aa 100644 --- a/Assets/GameMain/Scripts/Runtime/UIBase/Shop/ShopGoodsSelection.cs +++ b/Assets/GameMain/Scripts/Runtime/UIBase/Shop/ShopGoodsSelection.cs @@ -5,8 +5,7 @@ namespace SepCore.UI public class ShopGoodsSelection { public GoodsType GoodsType; - public int PropId; - public WeaponType WeaponType; + public int RefId; public int Price; } } diff --git a/Assets/GameMain/Scripts/Runtime/UIBase/Shop/ShopUseCase.cs b/Assets/GameMain/Scripts/Runtime/UIBase/Shop/ShopUseCase.cs index 42e68f1..a226759 100644 --- a/Assets/GameMain/Scripts/Runtime/UIBase/Shop/ShopUseCase.cs +++ b/Assets/GameMain/Scripts/Runtime/UIBase/Shop/ShopUseCase.cs @@ -167,7 +167,7 @@ namespace SepCore.UI if (goodsConfig.GoodsType == GoodsType.Prop) { - PropConfig propConfig = GameEntry.Luban.Get(goodsConfig.PropId); + PropConfig propConfig = GameEntry.Luban.Get(goodsConfig.RefId); int basePrice = propConfig.Price; price = CalculateRandomizedPrice(basePrice, priceRandomPercent); @@ -177,7 +177,7 @@ namespace SepCore.UI } else if (goodsConfig.GoodsType == GoodsType.Weapon) { - WeaponConfig weaponConfig = GameEntry.Luban.Get((int)goodsConfig.WeaponType); + WeaponConfig weaponConfig = GameEntry.Luban.Get(goodsConfig.RefId); int basePrice = weaponConfig.Price; price = CalculateRandomizedPrice(basePrice, priceRandomPercent); @@ -197,8 +197,7 @@ namespace SepCore.UI _selections.Add(new ShopGoodsSelection { GoodsType = goodsConfig.GoodsType, - PropId = goodsConfig.PropId, - WeaponType = goodsConfig.WeaponType, + RefId = goodsConfig.RefId, Price = price }); @@ -253,14 +252,14 @@ namespace SepCore.UI if (goods.GoodsType == GoodsType.Prop) { - PropConfig propConfig = GameEntry.Luban.Get(goods.PropId); + PropConfig propConfig = GameEntry.Luban.Get(goods.RefId); rarity = propConfig.Rarity; return true; } if (goods.GoodsType == GoodsType.Weapon) { - WeaponConfig weaponConfig = GameEntry.Luban.Get((int)goods.WeaponType); + WeaponConfig weaponConfig = GameEntry.Luban.Get(goods.RefId); rarity = weaponConfig.Rarity; return true; } @@ -285,7 +284,7 @@ namespace SepCore.UI { if (goods.GoodsType == GoodsType.Prop) { - PropConfig propConfig = GameEntry.Luban.Get(goods.PropId); + PropConfig propConfig = GameEntry.Luban.Get(goods.RefId); _player.AddProp(new PropItem(propConfig)); return new DisplayItemRawData { @@ -303,7 +302,7 @@ namespace SepCore.UI return null; } - WeaponConfig weaponConfig = GameEntry.Luban.Get((int)goods.WeaponType); + WeaponConfig weaponConfig = GameEntry.Luban.Get(goods.RefId); int id = GameEntry.Entity.NextId(); var weaponData = EntityDataFactory.Create(id, weaponConfig, _player.Id, CampType.Player); @@ -311,7 +310,7 @@ namespace SepCore.UI if (weapon == null) { Log.Warning( - $"ShopFormUseCase::ApplyGoodsPurchase: Show weapon failed, weapon type id = {goods.WeaponType}"); + $"ShopFormUseCase::ApplyGoodsPurchase: Show weapon failed, weapon type id = {goods.RefId}"); return null; } diff --git a/Assets/GameMain/Scripts/Runtime/Utility/EntityDataFactory.cs b/Assets/GameMain/Scripts/Runtime/Utility/EntityDataFactory.cs index 655e8ee..33478c6 100644 --- a/Assets/GameMain/Scripts/Runtime/Utility/EntityDataFactory.cs +++ b/Assets/GameMain/Scripts/Runtime/Utility/EntityDataFactory.cs @@ -17,9 +17,15 @@ namespace SepCore.CustomUtility return new EnemyData(entityId, GetEnemyConfig(enemyType), level); } - public static WeaponData Create(int entityId, WeaponType weaponType, int ownerId, CampType ownerCamp) + public static WeaponData Create(int entityId, WeaponType weaponType, int ownerId, CampType ownerCamp, Rarity rarity = Rarity.White) { - var config = GameEntry.Luban.Get((int)weaponType); + var config = WeaponUtility.GetWeaponConfig(weaponType, rarity); + return new WeaponData(entityId, config, ownerId, ownerCamp); + } + + public static WeaponData Create(int entityId, int weaponId, int ownerId, CampType ownerCamp) + { + var config = WeaponUtility.GetWeaponConfig(weaponId); return new WeaponData(entityId, config, ownerId, ownerCamp); } diff --git a/Assets/GameMain/Scripts/Runtime/Utility/RarityUtility.cs b/Assets/GameMain/Scripts/Runtime/Utility/RarityUtility.cs index 2c4c823..26e9085 100644 --- a/Assets/GameMain/Scripts/Runtime/Utility/RarityUtility.cs +++ b/Assets/GameMain/Scripts/Runtime/Utility/RarityUtility.cs @@ -15,7 +15,7 @@ namespace SepCore.CustomUtility public static Rarity SelectRarity(LevelDropConfig dropConfig) { - float total = dropConfig.WhiteWeight + dropConfig.GreenWeight + dropConfig.BlueWeight + dropConfig.PurpleWeight + dropConfig.RedWeight; + float total = dropConfig.WhiteWeight + dropConfig.BlueWeight + dropConfig.PurpleWeight + dropConfig.RedWeight; if (total <= 0f) { Log.Error("LevelDropConfig '{0}' has invalid total weight '{1}'.", dropConfig.Id, total); @@ -25,8 +25,6 @@ namespace SepCore.CustomUtility float roll = Random.Range(0f, total); if (roll < dropConfig.WhiteWeight) return Rarity.White; roll -= dropConfig.WhiteWeight; - if (roll < dropConfig.GreenWeight) return Rarity.Green; - roll -= dropConfig.GreenWeight; if (roll < dropConfig.BlueWeight) return Rarity.Blue; roll -= dropConfig.BlueWeight; if (roll < dropConfig.PurpleWeight) return Rarity.Purple; diff --git a/Assets/GameMain/Scripts/Runtime/Utility/WeaponUtility.cs b/Assets/GameMain/Scripts/Runtime/Utility/WeaponUtility.cs new file mode 100644 index 0000000..580099b --- /dev/null +++ b/Assets/GameMain/Scripts/Runtime/Utility/WeaponUtility.cs @@ -0,0 +1,83 @@ +using SepCore.Definition; + +namespace SepCore.CustomUtility +{ + public static class WeaponUtility + { + public const int IdMultiplier = 1000; + + /// + /// 根据武器种类与品质换算武器配置编号。 + /// + public static int GetWeaponId(WeaponType weaponType, Rarity rarity = Rarity.White) + { + return (int)weaponType * IdMultiplier + (int)rarity; + } + + /// + /// 根据武器编号反推武器种类。 + /// + public static WeaponType GetWeaponType(int weaponId) + { + return (WeaponType)(weaponId / IdMultiplier); + } + + /// + /// 根据武器编号反推武器品质。 + /// + public static Rarity GetRarity(int weaponId) + { + return (Rarity)(weaponId % IdMultiplier); + } + + /// + /// 获取指定种类与品质的武器配置。 + /// + public static WeaponConfig GetWeaponConfig(WeaponType weaponType, Rarity rarity = Rarity.White) + { + return GameEntry.Luban.Get(GetWeaponId(weaponType, rarity)); + } + + /// + /// 获取指定武器编号的武器配置。 + /// + public static WeaponConfig GetWeaponConfig(int weaponId) + { + return GameEntry.Luban.Get(weaponId); + } + + /// + /// 获取同种武器的下一阶品质配置(用于武器合成升阶)。 + /// 若已达到最高品质(Red)则返回 false。 + /// + public static bool TryGetNextTierConfig(WeaponConfig current, out WeaponConfig nextTierConfig) + { + if (current.Rarity >= Rarity.Red) + { + nextTierConfig = null; + return false; + } + + int nextId = (int)current.WeaponType * IdMultiplier + ((int)current.Rarity + 1); + nextTierConfig = GameEntry.Luban.Get(nextId); + return nextTierConfig != null; + } + + /// + /// 计算同种武器的下一阶品质武器编号。 + /// 若已达到最高品质(Red)则返回 false。 + /// + public static bool TryGetNextTierWeaponId(int currentWeaponId, out int nextWeaponId) + { + Rarity rarity = GetRarity(currentWeaponId); + if (rarity >= Rarity.Red) + { + nextWeaponId = 0; + return false; + } + + nextWeaponId = currentWeaponId + 1; + return true; + } + } +} diff --git a/Assets/GameMain/Scripts/Runtime/Utility/WeaponUtility.cs.meta b/Assets/GameMain/Scripts/Runtime/Utility/WeaponUtility.cs.meta new file mode 100644 index 0000000..917437b --- /dev/null +++ b/Assets/GameMain/Scripts/Runtime/Utility/WeaponUtility.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fff1b5f2bd835a748b998750d7d03154 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GameMain/UI/UIForms/ItemTooltipForm.prefab b/Assets/GameMain/UI/UIForms/ItemTooltipForm.prefab index ef9ee0d..d795029 100644 --- a/Assets/GameMain/UI/UIForms/ItemTooltipForm.prefab +++ b/Assets/GameMain/UI/UIForms/ItemTooltipForm.prefab @@ -9,9 +9,9 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 6368625289863409235} - - component: {fileID: 4303509830935515119} - component: {fileID: 2236042990348165862} - component: {fileID: 139036983684137330} + - component: {fileID: 3908421189656031064} m_Layer: 5 m_Name: ItemTooltipForm m_TagString: Untagged @@ -39,24 +39,6 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &4303509830935515119 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 395929355422612576} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 32469245f20597240a3c51d2cd1fb0c5, type: 3} - m_Name: - m_EditorClassIdentifier: - _view: {fileID: 139036983684137330} - _autoResizeHeight: 1 - _fixedTopHeight: 180 - _fixedBottomHeight: 300 - _fixedWidth: 600 - _screenEdgePadding: 0 --- !u!114 &2236042990348165862 MonoBehaviour: m_ObjectHideFlags: 0 @@ -99,6 +81,24 @@ MonoBehaviour: recycleButton: {fileID: 7966632555814587605} textFormatText: {fileID: 6269556444878685483} cancelButton: {fileID: 6053195524865570449} +--- !u!114 &3908421189656031064 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 395929355422612576} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7489a7d3442947647bee8612880a3f83, type: 3} + m_Name: + m_EditorClassIdentifier: + _view: {fileID: 139036983684137330} + _autoResizeHeight: 1 + _fixedTopHeight: 150 + _fixedBottomHeight: 400 + _fixedWidth: 600 + _screenEdgePadding: 64 --- !u!1 &625540161254782982 GameObject: m_ObjectHideFlags: 0 @@ -295,7 +295,7 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 4303509830935515119} + - m_Target: {fileID: 0} m_TargetAssemblyTypeName: SepCore.UI.UGuiForm, SepCore.Runtime m_MethodName: PlayUISound m_Mode: 3 @@ -311,7 +311,7 @@ MonoBehaviour: _onPointerEnterAction: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 4303509830935515119} + - m_Target: {fileID: 0} m_TargetAssemblyTypeName: SepCore.UI.UGuiForm, SepCore.Runtime m_MethodName: PlayUISound m_Mode: 3 @@ -598,7 +598,7 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 4303509830935515119} + - m_Target: {fileID: 0} m_TargetAssemblyTypeName: SepCore.UI.UGuiForm, SepCore.Runtime m_MethodName: PlayUISound m_Mode: 3 @@ -614,7 +614,7 @@ MonoBehaviour: _onPointerEnterAction: m_PersistentCalls: m_Calls: - - m_Target: {fileID: 4303509830935515119} + - m_Target: {fileID: 0} m_TargetAssemblyTypeName: UI.UGuiForm, Assembly-CSharp m_MethodName: PlayUISound m_Mode: 3 diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset index 9e6ab81..3a01328 100644 --- a/ProjectSettings/EditorSettings.asset +++ b/ProjectSettings/EditorSettings.asset @@ -24,7 +24,7 @@ EditorSettings: m_EnableEditorAsyncCPUTextureLoading: 0 m_AsyncShaderCompilation: 1 m_PrefabModeAllowAutoSave: 1 - m_EnterPlayModeOptionsEnabled: 1 + m_EnterPlayModeOptionsEnabled: 0 m_EnterPlayModeOptions: 3 m_GameObjectNamingDigits: 1 m_GameObjectNamingScheme: 0 diff --git a/数据表/Datas/GoodsConfig_商品配置.xlsx b/数据表/Datas/GoodsConfig_商品配置.xlsx index 211cf172760c07d942d979c89bf81a553240a2e9..35f9ce33c1e1666bd2c45a49991e8b12770a525b 100644 GIT binary patch delta 10036 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 KD4q7N*?$3?a^b1~ diff --git a/数据表/Datas/LevelDropConfig_关卡爆率配置.xlsx b/数据表/Datas/LevelDropConfig_关卡爆率配置.xlsx index 420b85e981d1c8c86ffd64c1e9d9ff7bb969aea5..419fb67e4064692874dd912458c47ffcc7dc1bbf 100644 GIT binary patch delta 2615 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 Z3bm0E<5~m&09_H2;wL-?t0Mpa004mOy;T4J delta 2714 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 AHvj+t delta 6685 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 diff --git a/数据表/Datas/PropConfig_道具配置.xlsx b/数据表/Datas/PropConfig_道具配置.xlsx index af0457659d3c661bd21219eae4c6bf68d5201d5b..68505c9e9d8f270d725fd864481e2676d39982c4 100644 GIT binary patch delta 8826 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 delta 8917 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 Mc6vBQmOoeiA7lat+5i9m diff --git a/数据表/Datas/WeaponConfig_武器配置.xlsx b/数据表/Datas/WeaponConfig_武器配置.xlsx index 7b466dc8766a810040f840682e2ba1ed8972b9f3..d9aca97b37a860de68fd1241d50fdc31a373c27c 100644 GIT binary patch delta 9207 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 ViNg%z|Jqcbwwz)pP~LyO`X9+Zsd)eZ delta 7124 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 diff --git a/数据表/Datas/WeaponTagConfig_武器标签效果配置.xlsx b/数据表/Datas/WeaponTagConfig_武器标签效果配置.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6ca4b35332469fd5ad91aa59ce4da0388e09b331 GIT binary patch literal 11849 zcma)ib9|jm*KTa=*k)rVjcwbuoiw)1#kd-m*w zxv!bMelu%b@=~B+FhFlDRCbsD?eotD{n|0MGm>|-vv;DGe-%T09f0~nEG|D-j1CwG zhzSG;2=Gra1ABWqcN^=h_+H5Y22_#zfEPf0&gcXoG1(*`-0oC>$}*#O7IdS8c(%!q zokJdMFQ0vZZ^5pa^jd)HLUPBGBf))^)Pt9fS|Kn&BkQ}Y7>Xo6h2|O4w7JMYegBrQAzI6#GeKVdtXA(Rhztan6_G>XdddEl2wt7q#Tm75~o8;VxKUk zLN1?Cjn}yn*C2awq_O4Ad7!_uvE?W@(t<9*&}ww#;F%dL{1{n%igWoa zZn~92+x%~An~D5m*j}*}c*Pd!pV%7NIhwqI8yr6?+0TF)atXebx8EhR*85p7!+)$A z7pj7Cb8z1pmd!#ue`9mA^7KTwcl_$*@j5Hfv2I!B8hWZ?NttpQO0p+Rm8zj?MyXTU zjPk2L&S=IGe=x%KY=Dkla-ZTXr@M0%I0otiX+l&A9q6PtIu3bA#*zj8 z?yODSm)$HoV2mK?x{w|+L|g*@GQ4neeo02+^H3`fKU7TY8U29a4=H<>wm>C6axlK{ z=a;E)tZ>ZddXA>-qQ;zesu|UtwpV7{V9)Xm(^rJL@L85mIH-XDxGqX|cq@0Q*kSh1 z{i}K*X6&{lpSfs?j&4isdq77>dBx>C4);Gey6Mp)QHwLmjM8MqwG*;Tzay$4<829f zvIaZp-PYUXrnR+XDlrxvy$NuKsNH-zENS>{1N+#hr3t@+9P|n@%D+H%adNh^d4str zK}xQl0nYDI{5h2Jp3NdX%GHvq3XyaG7|cjbx#$?ZOs1S1Pde;Hb_g?;IxK@kD~E4b z7Jb?q($$bfu>uu>H-w+E8mElyotL_f2NKxOQh6Cyl`zbGUyq2ZPs-;Q4?sb3A5f?~ zd9apM=zGBsI}tsct)k@dMvpVA)9gKnI~Gbq)JMukTkLK)+-R)eO=rk4Ez`d^7rrP_DpVJdhIF6 z0j2G31$t;!!)vP_*txN|OyNQqNjMBYhOne3FEUXYaca#`Q8XI%l8`}vr;?kI*ozh1 zkvRJPb7*o^`tw2JS$Y$u?*r0A7zSXAc98-pI^VZ0k0K-g;$dNN32$y=A-o`>5X;Bz zG~klJ4*`}lTka0xZD;@I-~##zy1VrstMZ=(5Pk``**RJ{nVXn6{~m&(w#y?ZUPDv{ zH4qTy|C0Sfh4GJ2q^Vs)_ldj4J946g4oBL(^>7L>2#a4yW>eQ)~ zi+}QR`}ndiQ7amb`?wo%0IL?$_03^x!RE)>cjhaWBh z@L;FfY+HQQ-9TT_GM`+z@j7zmbjV6iJhIo%*}8SsAAbr`MF9n$iY$^5*r?^q*HZ@` zQhWgEW{o^7=|{?^jPY4gu36tE^P*8b1wtp?=Nmp*!seT9zh3XIP-?m?2i=!sKzV;v zRoxA{z17=@x{pjqIqvQDT$ymdN8LVO5M8`{BWpfN{pjM#Q11_yf$Dc?xT&#?>gP3G{%;6Z&ZS z;#78G7*ZHi*+&5(DzcnG22F|Z2JRMc2I}M(pdU-8jj0v4Q^g8hfl%TTI>qj02kHuA z$ed`}jNVB{7Qs!eiedH0rL4 zy!&xMZ$CE}Q+V3-xA%^kvZc$>40YVrF$oGAQkfQ?syn* z$hteZ{{3)}Y04bxtEAVkX_Xsg_Jq*Efn=t|l*Ro5s8qP01ku9PIP@2;U?5{iRqqlc zf&;T8kxy=4<-+=U5qOnQ=XVHUV8lj{YvoCGcl`YOsBu}`KduUpH+;lXq7r2=cM)a8 zFvh0R!NmHsFk@~|K06;$+P*@o(`k!~kTEw05HKo|sxXZ;F8fFg@qx{NFHK)zUt9|iQsg8d}ePiy#m@Tr_-Ko(?BBV}5E_!|ZuMyyrw5HKV3ZgQI&^PQ@bzNafOd4ob`82G4 z*NPdCbF3zS1Oy^y%HiNiAW?dwcAXeN zhJ^&k(O`6IPmrWSP+-#I8Bm||$zU+`Z~P8J0x*qfK6D~jV#0!3@1en@mqg)4--MA( z88w}`^>~~wdx{ZLpo$A>^wMkO15F51h8eWRB1Rk~uc3kTN2<}7uP_-26nAkXjxZJ( zgP5tPV4#nwf;I%EVyBx(vl{o2b~>G^)ZjRn=%vj=2{<#+OfxrGX2bRGW0PD5&SEqk zsnsx~xd#V?U^An7Od%0pWWut|ohs$=1A_a?)HJi;g8QJ*yua^MG8P(~)u13vkm=^- zJ`TbK<6AJGN{bSginK6msZGStlFg`h5(lf)$f{CC$@ju^Va_pN!vIduV0ymN$&xo{ z<0)b1jZ&$hn50s}LFihV`!OJjPNSC7lExcJjvALSDl}tbf__@qZUtfwS@Xa+h8Dz+ zTj#!MS74+`RV4PmpcYq$F}7T+#8g#j8-fB6)w{v=gg3H4ewyUr@(*MY7`&G)$TjKU z{8+uPs~?%Bd&WBa*(w@~DuxKUK)2s-J07TG1()<9iz_pw`)X}h-&bT7NBV;eGKXG5 zC`(lPxm)n1;it@IqVOY&hJOs$M@6dr{OSwCz@#a(xp;I15Y{oN5*NmdR7MbJO>9z7A^x{w0&z zV}?zE@dt2;R#6l0J7i%r8(;mxx5S06(=%?Uio$TdG>T$cdm`Er9l=i9N4+qLI$R0X zRu^K@QPa;lm&rtkMj@XU)^%Z&2%|v0Ae%Fv&a{Kf+Lx z#X-7wc5cFJQmk6KndC(uy<8=MlA!@#8-A>nk z;L=@NE%N{$`+|GJ@&J^4lp|BXN854?@_%oXLIr8qv?*)33U)g5vGbLxu7<^SUmeyBE_=vo~{n` zI!R_`Ve-A6oCgnjKcgYWBDPYiR7JZmF8*m{>Vi3}htwP_H~m?1X>PTU0<@)_(?Iu6 zFMG4-O>p2ZNz4v_#P7Q1gLvEfqZoj@F0WIIXeRlzEU*B|@8})pFJo+JLV;cDGVMJE5(E>Rwvj$bP$+f+}4fIe!=& zMT17O@}HQ6UYPIS+kDFF_T6qE2xjl?nWGnweAx!Nq%9cqGT$K+-wB0$u%d4b|BkL3 zfXd6=gNVLdpl`54Mo9tg%_$sO@ReiX2t7e{UyFhpM#zq3`3euFJdc*%fVhgXCE{Ex z9i7p2P$wL}!UG!UD?fm~v|n$TL!_=$UpPWVhr>-I#mN9dhQZ^B*VJw!&@835KKD|S z&sJ^2Sz{py^Q8AW20}v8!pYFpN)zBXtq0v@lz^ccPpr|G2T1A%YLTg*+9_!^+o{KH zV#1nFXF8~)hNz+*y;LT%=ErWee6|OZsRkj-xb{pgHQK`HteL{v?QpUyohI5=?ZgG7 zWpYJ>g1FYB6!=(8IOelLG}BOEKXb{B5X#;e(rn`?5;*G|H)qy`Q+Vj}Q^ zMRCxGf>995S+;AAKGTOs2bEQu>&H5i-wDggiPMZL1i0XZ+jDKKWNDSzoK`0)_m)vz zDJfb#Fk-v4BeA~wOwG`%keJ?2#mC-6*s}E)lBD;Bq(xeMS_%cD~1Ct-07Qyq(5(pSn@8WZM4LJm{={A;hoB~%ckVlZ@q%`Yxde( zhoegx@iISP1u_uDcx%r|!S~|yBzU-cs8yK(LAcCYM#8|B7XXbzaXG672{i4g&80#w z%RQECXKns;q-I_03h6WaL=LOjM)+JWj`p}s3}l51Rk?-Agw6vLoU)Eb8rY=~ZqFAH z_=4>LTWgVxy}tVxI5}2S6^$n6AE&A;nG8BsEB@E)7|mv2h8L0!pC^kuYhN65L&PS$ zSN1>CD>6!FsL_lzK3kdm1TR;OWk5W*s%|67EZY~KIYaz+&Y_g?Q?~KzRk#ff2ysswr5l$zysGobd(i+gL}tnpl$*BL>(7_TqX@-IV+9 zlXu=zoo0g_FH}{jSFV>gZPYfQo~+5Leq8#Abs7CLQl|+H{b@VsNQ&^VW6N!76q+Es z{`(Y55GucVi$4Di{i85&PZ-*w0XJb6LMT2D8n`qI<{}(yfL|*@ZEN{vcZt3<*e0w4 zzcj#*FVzHB0!XP}Dg~afW`M@nGH5HmHOdC8kx~|jUs_1_?lF6$xL8ObOkF~pqh^a9 zMxwNaOu#;>@jhhq)Bj7yq} z+7FWbw)9yCKH=ulypZaMtb6+&Bxevs1KmU=Tscz0*Ffv|{-jZg+o^Gx2&O!iYE^82QZ<`)i;Pm}=|K;=a!_d5T z`a$G8XI6Znuaa>aeWz>|o3Dqo2z9rGQ>-k(W>iY%95AgeR|%FTrKk01+u7V1WUR!B zZlvk@l1NWMB#i zs9GDz7C4YyqMZG8?fnOx)gmkFcB6~ZCA%+S}3_p;lFYeKq z_?ae8Ta7SbNLc8R%CM|_Hb5rr$S-YPhFMN!{_rEZLv!#wor~};L1vCQF_B|x5xgGh zJJOBXkH_ovaK@xvPF-IF6J+3oH`KGRv6^FZQ4XZ?giAAkf-9Qw8I99c>ZuYSe#8wr zt3aE?v2>D3#FL4NN+)GQNYD3(&~ij%ZsO!Zr4)Dx9Fb0FnsG!ob{kygY^3iv2M&^6#TB03o!6D2)Fm(FoYjo>_0FbYMIV(UPS23 z7~g5Git&AUK*lfoh<|)m72}MnHj!|`I^D<@c;sPJsbTIPn|zloBR<-H+0rxan!JU#ddu$ z-v>Yj?X5pB9bbgpniNVZpvC*e0g32(y1EUl?8OX^7MCg#!uv}Kl*52Yl1Wwo@Wo-k zXG>FWa?02{IFN zu>`X}dxJd`a=nc}d-+>*CX;JNzt3`g=#cA0Gvk!b=Hmf-^U#IOc&n>9W;F;+$lm$q zyweyuG?=~3JjSCK`ZW?GsP41%soc}PDkpi&Slohj0+f7z6-tcAroLP&1SkAZslaTw zM1keURpX?~)j)-1)_du3XFDa`_a-wPHz&O_uI--ar5^j{z-FzP20RR&F+9!p8<9Qb z`j?j(JVv7ZidEZ~>@vG}v@H#+nQ%A$T&f;-#z(e?3s>>GKdvna@KYQk%$&zB0 zE(c0NOO1Y>hu>$c)D6o;bQ79p99#(e@6>lhTugS)Qk z<^@5{vtExk_X?&MrA%Eq)J;N->sFNWQw8>;RA|c*Re;vqjt*Tyx5-s;?zQ2u zAR3IyFx&)<(==l^4bp`9;3=(h+K8J3eC(b&3QnZ_5D0KoOG5 z<|8TjidcdXIqMXK4Weg~DFjAOL?*M8E)U~Y7CCz8)$XB>4u!8H6B+0TmO5Fb5^Efa zSZ52T!$^+LPg*W7=#|PNv`+l0{FE>m<4is8MY>2AP!#4gzkJLg@8V)S|_5sgR-(Ha_Fy7T04#k~y0!USE&vFT*9iU2fkW zxf)&6D__QM`GgJh{P@mKqVj5NHB~u;E0iTJ@v_gXd+ldgGxHGGBYeGo+(ET#2w|=w zZ@}udy)Qz{yf{}(V+(c!Gg@bQ5{?W+zbI|7#Oquna=d>gm@wGlVA6-u_!a^$ZlLkS z(70(mt5{brx>B}N>2xNA#=FD0Q$;TsQ9^3YvT7()I6)Lri2BMvBeZ*QrAdp-w<5mi zG^;qp_0w~E%7Ilx9?T$RwFG%~1jcE4F{@;gXhB|C^4!T6HGwWw3-czXQUz(Q!iGCF zey>hV8)Yd?4cekCs;+0WG>yqB_6hNyntf6GHDnVO?7F<^mR1PN3Ee3SB#&0mPHR7i z_$F>yL$OBnq&~(!HwC3ljTLRN^>eOjuA7qj(i(_fFC!nIxd7`+I8^=d#gz0V)1Wxe z472)jRhD2W2hCRoZAme}j7uw}?y?VPl@SqP^rf1IxZh;m#bD6YtisL}@yuX3U_4+r zxFjgpO1)rnsx7p32v=JBsUb(RVRa$hm{gHa&R-Y14-3@f-WI*K2iCd%*~rP-N0xm0fEY*EPr2&G;T zXE>!QC;t`g0iaZ ze?$R_S0hJ`%&U0f<3H0mKm| zDBd_N6t%bo7*oY%UY|hqER#32a9ZX?^M#kD$8eFHykkmO-MVFS|KN6=DoYq1{ z+GcVX>B2AvkKaGCISnRG+=hN&usp*`afybz^l2nOz^gDma&L^io9MGOtv^k$9w$q! zy*}0R=oh&(HG^$N$AyC&0yNuT$5`Es;7{X!#zv?rjlCnWR%wS_+Jl|fV)RPBFgM;< z65vg~*zkurtCk4uI`d(l3FK)%S*f0NI=-+r-0Ul#gKxsgqmrft>m6%XI!3>Ywl9}- zi?$0Yr_?ZDVq`4S&49au6Dz4fuhpJa%hDD%0?~E2-BkfyoyYuwSvgP(QwJ87=b{od zrtO^~7#*Cc8Bx=SqM}WLu)XLf0}2BD5Mt0GjIFQG9#4?aGfqTea+Q$6e#+UW*r6^a z&r9tSHIGCEX@RCTGv9ZMu3YM`m6tB!LcNlZ>on#k%*xABD^4x%=B=66oV{#W)g^fT zUYl6YA7%M~S{(=00X$Wl`bs-M^*c;Or=vC~R7N9H0g2_;?Sx0hHc5+OK5e07ajYhX zI2bGyWLC$*mJ|hA1r$L}bF4+=ChS7FW?)SaVdiqO7!G}B(8dYd7$faI7g6uUohcKkub606)^gzuG_X7z|umA~zNApa$rBogS2!u-#$tbaocE z4>b_f=ymsqQ^+3IknP@$nr<(KAGbBKTTeRt5UwOlm*xxGcu;y%qrUiZIX{RA z2}yj&L%TRJlfUiCO$&^C9nJ$V#ptu#v=&fKq8{Jv?aF~#%v_O3dIZQO%_$+y#*6Fpbg-Z00-cuFLhl-Mrf-@6Y}pd-pF$Gx23s!eTh5SP}%E`F>o*0)ubx z1&Rk<@O^kjqIB~*WTcP2urz2?A>xfG;~=XnKO#pFRYn$_q<|@*89~sp{>Wg>i-dYh zCBl&#MS?suNfD6Gixi7^8CO#ZE0^8P)rpZ0D&6C#ucD4hOW5|JK^ZItMl%~Bp8fN7 za6Xg>Iu=@;9xV>n*ZJ^)KDHRqhp*G^{vnWFP!k`cc2tW0RKO=Bh0d|Ty;r%^@9shG zKK9ZJKdgXyDoi-6?6`ow|Jtic0bS7W`|*4&cWg*K0KUY{=kd0I;?;6+Jpgu|o|o(K zP^ahNX0(4Eaf|P9k^-*T{*D~O*Z?^-a!c`Ak{Ab{x;BF3s+cneJ~k%;z}NI>?JnKR z8OD#}|K32i&kUwkjY?2|(1Xla2%`a0|5M;-fds}W+7S7iHnhWA2clZuLuAWZwMf{idJO{`wPc9MDjwYhdlZ zU;fJ~@JlY7V(J2>HiC%C!+gy6&<&KO~9PGACX-=-pFs}lD4*HkJ5_q#-O=^F+4 zQr`5^}P)^Si7AzzrUe5t6RD z^Mw2b5vT5|N*M3EtpX+`GsZH^c4em{J}D7|K-TKy)^vs*CX7-`GLt-5!_u^o<7(qa zlEo2Zx{n;QAYv^9cXF6PA`n8(O!%JrZZfiF8a9Z%v!}4LHvvC{9>745MbY1TG@k6I zLCv&P)0aMCB;Wtc**fB33U2UC+X3MlsNR_W_e=l+XuPCLt6$PZj@suYgFqrWnb28>qI(&$vu0~6CcoI$?`tzVp18nX+f16- zF`c_(O2D~OtjmmIqLhIMz{nQdMa0Is%jvTQ^iK}akp6O$CJx;1Jv!@3K1#0t6$aI5o7l}@m z=53VG7`?CG(T-T}thqvMtK&#II^#J@;nBfGQHORy3*3JGkp=wE^b3gBTdSUY#dy}k6n0_UF0fsIEE&&H!GHz%{tIqVqXEMg#ejlY@X2?+z zG|sy^1r%r&+96}p9uG3Myo@_=HVAbYi(@_oxF`hh+l{z(DO`EEt8WB|S9UIfeo(gW z1M4`sHhc;SJm5}Rqa%&i@lu>&3gvp2Xfb=NEYF|A#VS(rp3jIRkgd~J-gfL-bSMX3 zUWR*clPb)!1HyqL_|v1EUHR$MHcwiC&@?mkzH)q)i*+1YRNyP3-GEyW2#EL7jxN08 zmu`}wl~ty+@FLp5AC)3Lf6?xCph+9nmL-TF%bk4WpPxVM>y4k)Y8)5m3?j=veIaEU z9@tO$z{{#9?s!dG;r9Qmp!_E|N32&J&t73{e}xnK_476H`b+GM_wr|=>wnOdvFv96 z1m6d53QTmRWThxd?psR|tuOKT#SNu|(?U<)47b$S6FCqT;@E-NL3G|vimz`>bA-`L zFF@AhQb_`iWNJGvQN37d+~f$unp!-d@X@5jYb)&Rn(a8ur&335o4p(5 zz-2`v%Ad|+D^zewDN9ty2)uYhSE0BFa=|Ry&hkSU((`dxIzg{T-7s(p}JnyB?OClv3!96TdbjGpvK~bnm8JxVsn^+PAA^+o+#y-DK)?{Md~HzZL|!9=P>1Uqt7JYYH%; zGj_sAv9(@1;(GJThLm@!#H`%Rm!^MHq6*PZ0 z+yzN&No7XFPSH4!ei*ZVy#(E66K9E^Ne=@AD6N4KSQoSJE=qADJ8$EcAbxJ}qw@&J zI+yt!+I2etX&iuEjSoMT+<%*@?QeW{I|g$;wS7n{xaM7cym{Ld-`q{}>09qNBev&P zIu|eq>K_GyUo_C)SLStbfPjGrU!O^o|8bpu8Th|PoHql%7^OeR{*FKYcKUk+deivj zl!*LKoj?9D|IOK3QS(=Oqp!ZTe=uGD?eBN4>znW|e-!^z`yb}(?-2dY=KNbb@O4Z7 z<@8T(=kMyj^A!J9KYEQAf2;q+TKsP>{l>Zb)!trO2keh<^WPNyjgrLc`~DT5exK;? zf$YuCFO=;6srJ9Z+V6ILuSETA=l+!p`=9Dkzgze{_xiU5F^pdp{>sGu|GzurYcluM z`JYAbfA5gr%iw=|r2D7Z-$n7?r~G@N<8K4euhqC$zyE~ozfJnp-T$<=754eH!vCUB o{(I)XlPKSmf2~^i|I+=NQYkM5{&qZgWhWy6LB7h-P`!QoKjm_%ApigX literal 0 HcmV?d00001 diff --git a/数据表/Datas/__enums__.xlsx b/数据表/Datas/__enums__.xlsx index dff0a2ec8cf98de9a7b19aeb31043bac60680fa8..79ec092050c110660e30840958e9869ab41a61cb 100644 GIT binary patch delta 15999 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 CBl`XT delta 14423 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 delta 7613 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