From ca02a61a608de8df03bc381654d82a44d1b04384 Mon Sep 17 00:00:00 2001 From: humingxing <930621236@qq.com> Date: Fri, 9 Oct 2026 16:43:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E8=B5=84=E6=BA=90=E5=92=8C?= =?UTF-8?q?=E8=A7=A3=E9=94=81=E9=A2=84=E8=A7=88=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../battleGame/prefab/格子锁.prefab | 11 +- .../prefab/monster/兵.prefab | 14 +- assets/bundles/first/config/Battlebuff.json | 2 +- assets/bundles/first/config/Rank.json | 640 ++++++--- assets/bundles/icons/img/土.png | Bin 0 -> 1258 bytes assets/bundles/icons/img/土.png.meta | 134 ++ assets/bundles/icons/img/木.png | Bin 0 -> 1090 bytes assets/bundles/icons/img/木.png.meta | 134 ++ assets/bundles/icons/img/水.png | Bin 0 -> 1062 bytes assets/bundles/icons/img/水.png.meta | 134 ++ assets/bundles/icons/img/火.png | Bin 0 -> 1227 bytes assets/bundles/icons/img/火.png.meta | 134 ++ assets/bundles/icons/img/金.png | Bin 0 -> 1003 bytes assets/bundles/icons/img/金.png.meta | 134 ++ .../prefab/BattlePause.prefab | 1216 +++++------------ .../res/battleGameMonster/spine/小怪X5.meta | 9 + .../battleGameMonster/spine/小怪X5/.WeDrive | 1 + .../spine/小怪X5/小怪X5.atlas | 111 ++ .../spine/小怪X5/小怪X5.atlas.meta | 12 + .../spine/小怪X5/小怪X5.json | 1 + .../spine/小怪X5/小怪X5.json.meta | 13 + .../spine/小怪X5/小怪X5.png | Bin 0 -> 41412 bytes .../spine/小怪X5/小怪X5.png.meta | 134 ++ assets/res/comm/texture/bg/暂停游戏.png | Bin 0 -> 24810 bytes ...�框体.png.meta => 暂停游戏.png.meta} | 40 +- .../comm/texture/bg/暂停游戏框体.png | Bin 23269 -> 0 bytes .../script/battle/map/legacy/MapAreaUnlock.ts | 112 +- .../battle/view/AreaUnlockGuidePresenter.ts | 369 +++++ .../view/AreaUnlockGuidePresenter.ts.meta | 9 + .../script/battle/view/CocosBagBoardView.ts | 28 + assets/script/game/ConfigRes.ts | 2 + assets/script/game/ResPkgBuilder.ts | 2 + 32 files changed, 2241 insertions(+), 1155 deletions(-) create mode 100644 assets/bundles/icons/img/土.png create mode 100644 assets/bundles/icons/img/土.png.meta create mode 100644 assets/bundles/icons/img/木.png create mode 100644 assets/bundles/icons/img/木.png.meta create mode 100644 assets/bundles/icons/img/水.png create mode 100644 assets/bundles/icons/img/水.png.meta create mode 100644 assets/bundles/icons/img/火.png create mode 100644 assets/bundles/icons/img/火.png.meta create mode 100644 assets/bundles/icons/img/金.png create mode 100644 assets/bundles/icons/img/金.png.meta create mode 100644 assets/res/battleGameMonster/spine/小怪X5.meta create mode 100644 assets/res/battleGameMonster/spine/小怪X5/.WeDrive create mode 100644 assets/res/battleGameMonster/spine/小怪X5/小怪X5.atlas create mode 100644 assets/res/battleGameMonster/spine/小怪X5/小怪X5.atlas.meta create mode 100644 assets/res/battleGameMonster/spine/小怪X5/小怪X5.json create mode 100644 assets/res/battleGameMonster/spine/小怪X5/小怪X5.json.meta create mode 100644 assets/res/battleGameMonster/spine/小怪X5/小怪X5.png create mode 100644 assets/res/battleGameMonster/spine/小怪X5/小怪X5.png.meta create mode 100644 assets/res/comm/texture/bg/暂停游戏.png rename assets/res/comm/texture/bg/{暂停游戏框体.png.meta => 暂停游戏.png.meta} (73%) delete mode 100644 assets/res/comm/texture/bg/暂停游戏框体.png create mode 100644 assets/script/battle/view/AreaUnlockGuidePresenter.ts create mode 100644 assets/script/battle/view/AreaUnlockGuidePresenter.ts.meta diff --git a/assets/bundles/battleGame/prefab/格子锁.prefab b/assets/bundles/battleGame/prefab/格子锁.prefab index eb31893..a313b24 100644 --- a/assets/bundles/battleGame/prefab/格子锁.prefab +++ b/assets/bundles/battleGame/prefab/格子锁.prefab @@ -92,7 +92,7 @@ }, "_lpos": { "__type__": "cc.Vec3", - "x": -16.1845703125, + "x": -21.1845703125, "y": 0, "z": 0 }, @@ -228,7 +228,7 @@ }, "_lpos": { "__type__": "cc.Vec3", - "x": 13.5, + "x": 18.5, "y": 0, "z": 0 }, @@ -378,7 +378,7 @@ }, "_contentSize": { "__type__": "cc.Size", - "width": 84.369140625, + "width": 94.369140625, "height": 68 }, "_anchorPoint": { @@ -461,7 +461,7 @@ "_paddingRight": 10, "_paddingTop": 0, "_paddingBottom": 0, - "_spacingX": -10, + "_spacingX": 0, "_spacingY": 0, "_verticalDirection": 1, "_horizontalDirection": 0, @@ -484,6 +484,7 @@ "__id__": 0 }, "fileId": "a01BJWthhKbr3LbCXP7YXR", - "instance": null + "instance": null, + "targetOverrides": null } ] \ No newline at end of file diff --git a/assets/bundles/battleGameMonster/prefab/monster/兵.prefab b/assets/bundles/battleGameMonster/prefab/monster/兵.prefab index 532862f..b123655 100644 --- a/assets/bundles/battleGameMonster/prefab/monster/兵.prefab +++ b/assets/bundles/battleGameMonster/prefab/monster/兵.prefab @@ -127,13 +127,13 @@ }, "_contentSize": { "__type__": "cc.Size", - "width": 57, - "height": 49.70000076293945 + "width": 60.09000015258789, + "height": 50 }, "_anchorPoint": { "__type__": "cc.Vec2", - "x": 0.5182456300969709, - "y": 0.5760563122992055 + "x": 0.4781161502626326, + "y": 0.26 }, "_id": "" }, @@ -164,11 +164,11 @@ "a": 255 }, "_skeletonData": { - "__uuid__": "2ff1a233-3438-41e6-8f86-bff953ab9a68", + "__uuid__": "234ccbbe-0991-444b-9db0-b1211911ea5c", "__expectedType__": "sp.SkeletonData" }, - "defaultSkin": "兵", - "defaultAnimation": "待机", + "defaultSkin": "default", + "defaultAnimation": "金小怪", "_premultipliedAlpha": false, "_timeScale": 1, "_preCacheMode": 2, diff --git a/assets/bundles/first/config/Battlebuff.json b/assets/bundles/first/config/Battlebuff.json index 1391298..8b7bd51 100644 --- a/assets/bundles/first/config/Battlebuff.json +++ b/assets/bundles/first/config/Battlebuff.json @@ -2,7 +2,7 @@ { "id": 1, "name": "灾厄盒", - "desc": "对方Boss出现几率翻倍", + "desc": "Boss出现几率翻倍", "icon": "灾厄盒", "quality": 2, "type": 2, diff --git a/assets/bundles/first/config/Rank.json b/assets/bundles/first/config/Rank.json index 4c7df04..a3f84b1 100644 --- a/assets/bundles/first/config/Rank.json +++ b/assets/bundles/first/config/Rank.json @@ -2,7 +2,7 @@ { "id": 1, "name": "幼儿园小班·上", - "icon": "凡修·初阶", + "icon": "幼儿园小班·上", "level": [ 1, 5 @@ -35,7 +35,7 @@ { "id": 2, "name": "幼儿园小班·下", - "icon": "凡修·中阶", + "icon": "幼儿园小班·下", "level": [ 6, 10 @@ -68,7 +68,7 @@ { "id": 3, "name": "幼儿园中班·上", - "icon": "凡修·高阶", + "icon": "幼儿园中班·上", "level": [ 11, 15 @@ -101,7 +101,7 @@ { "id": 4, "name": "幼儿园中班·下", - "icon": "凡修·圆满", + "icon": "幼儿园中班·下", "level": [ 16, 20 @@ -134,7 +134,7 @@ { "id": 5, "name": "幼儿园大班·上", - "icon": "人仙·初阶", + "icon": "幼儿园大班·上", "level": [ 21, 25 @@ -167,7 +167,7 @@ { "id": 6, "name": "幼儿园大班·下", - "icon": "人仙·中阶", + "icon": "幼儿园大班·下", "level": [ 26, 30 @@ -201,7 +201,7 @@ { "id": 7, "name": "小学一年级·上", - "icon": "人仙·高阶", + "icon": "小学一年级·上", "level": [ 31, 35 @@ -235,7 +235,7 @@ { "id": 8, "name": "小学一年级·下", - "icon": "人仙·圆满", + "icon": "小学一年级·下", "level": [ 36, 40 @@ -269,7 +269,7 @@ { "id": 9, "name": "小学二年级·上", - "icon": "地仙·初阶", + "icon": "小学二年级·上", "level": [ 41, 45 @@ -303,7 +303,7 @@ { "id": 10, "name": "小学二年级·下", - "icon": "地仙·中阶", + "icon": "小学二年级·下", "level": [ 46, 50 @@ -337,7 +337,7 @@ { "id": 11, "name": "小学三年级·上", - "icon": "地仙·高阶", + "icon": "小学三年级·上", "level": [ 51, 55 @@ -372,7 +372,7 @@ { "id": 12, "name": "小学三年级·下", - "icon": "地仙·圆满", + "icon": "小学三年级·下", "level": [ 56, 60 @@ -407,7 +407,7 @@ { "id": 13, "name": "小学四年级·上", - "icon": "天仙·初阶", + "icon": "小学四年级·上", "level": [ 61, 65 @@ -442,7 +442,7 @@ { "id": 14, "name": "小学四年级·下", - "icon": "天仙·中阶", + "icon": "小学四年级·下", "level": [ 66, 70 @@ -477,7 +477,7 @@ { "id": 15, "name": "小学五年级·上", - "icon": "天仙·高阶", + "icon": "小学五年级·上", "level": [ 71, 75 @@ -512,7 +512,7 @@ { "id": 16, "name": "小学五年级·下", - "icon": "天仙·圆满", + "icon": "小学五年级·下", "level": [ 76, 80 @@ -547,7 +547,7 @@ { "id": 17, "name": "小学六年级·上", - "icon": "真仙·初阶", + "icon": "小学六年级·上", "level": [ 81, 85 @@ -582,7 +582,7 @@ { "id": 18, "name": "小学六年级·下", - "icon": "真仙·中阶", + "icon": "小学六年级·下", "level": [ 86, 90 @@ -617,7 +617,7 @@ { "id": 19, "name": "初中一年级·上", - "icon": "真仙·高阶", + "icon": "初中一年级·上", "level": [ 91, 95 @@ -652,7 +652,7 @@ { "id": 20, "name": "初中一年级·下", - "icon": "真仙·圆满", + "icon": "初中一年级·下", "level": [ 96, 100 @@ -687,7 +687,7 @@ { "id": 21, "name": "初中二年级·上", - "icon": "玄仙·初阶", + "icon": "初中二年级·上", "level": [ 101, 105 @@ -722,7 +722,7 @@ { "id": 22, "name": "初中二年级·下", - "icon": "玄仙·中阶", + "icon": "初中二年级·下", "level": [ 106, 110 @@ -757,7 +757,7 @@ { "id": 23, "name": "初中三年级·上", - "icon": "玄仙·高阶", + "icon": "初中三年级·上", "level": [ 111, 115 @@ -792,7 +792,7 @@ { "id": 24, "name": "初中三年级·下", - "icon": "玄仙·圆满", + "icon": "初中三年级·下", "level": [ 116, 120 @@ -827,7 +827,7 @@ { "id": 25, "name": "高中一年级·上", - "icon": "金仙·初阶", + "icon": "高中一年级·上", "level": [ 121, 125 @@ -862,7 +862,7 @@ { "id": 26, "name": "高中一年级·下", - "icon": "金仙·中阶", + "icon": "高中一年级·下", "level": [ 126, 130 @@ -897,7 +897,7 @@ { "id": 27, "name": "高中二年级·上", - "icon": "金仙·高阶", + "icon": "高中二年级·上", "level": [ 131, 135 @@ -932,7 +932,7 @@ { "id": 28, "name": "高中二年级·下", - "icon": "金仙·圆满", + "icon": "高中二年级·下", "level": [ 136, 140 @@ -967,7 +967,7 @@ { "id": 29, "name": "高中三年级·上", - "icon": "太乙·初阶", + "icon": "高中三年级·上", "level": [ 141, 145 @@ -1002,7 +1002,7 @@ { "id": 30, "name": "高中三年级·下", - "icon": "太乙·中阶", + "icon": "高中三年级·下", "level": [ 146, 150 @@ -1037,7 +1037,7 @@ { "id": 31, "name": "大一·上", - "icon": "太乙·高阶", + "icon": "大一·上", "level": [ 151, 155 @@ -1072,7 +1072,7 @@ { "id": 32, "name": "大一·下", - "icon": "太乙·圆满", + "icon": "大一·下", "level": [ 156, 160 @@ -1107,7 +1107,7 @@ { "id": 33, "name": "大二·上", - "icon": "大罗·初阶", + "icon": "大二·上", "level": [ 161, 165 @@ -1142,7 +1142,7 @@ { "id": 34, "name": "大二·下", - "icon": "大罗·中阶", + "icon": "大二·下", "level": [ 166, 170 @@ -1177,7 +1177,7 @@ { "id": 35, "name": "大三·上", - "icon": "大罗·高阶", + "icon": "大三·上", "level": [ 171, 175 @@ -1212,7 +1212,7 @@ { "id": 36, "name": "大三·下", - "icon": "大罗·圆满", + "icon": "大三·下", "level": [ 176, 180 @@ -1247,7 +1247,7 @@ { "id": 37, "name": "大四·上", - "icon": "混元·初阶", + "icon": "大四·上", "level": [ 181, 185 @@ -1282,7 +1282,7 @@ { "id": 38, "name": "大四·下", - "icon": "混元·中阶", + "icon": "大四·下", "level": [ 186, 190 @@ -1317,7 +1317,7 @@ { "id": 39, "name": "硕士一年级·上", - "icon": "混元·高阶", + "icon": "硕士一年级·上", "level": [ 191, 195 @@ -1352,7 +1352,7 @@ { "id": 40, "name": "硕士一年级·下", - "icon": "混元·圆满", + "icon": "硕士一年级·下", "level": [ 196, 200 @@ -1387,7 +1387,7 @@ { "id": 41, "name": "硕士二年级·上", - "icon": "合道·初阶", + "icon": "硕士二年级·上", "level": [ 201, 205 @@ -1422,7 +1422,7 @@ { "id": 42, "name": "硕士二年级·下", - "icon": "合道·中阶", + "icon": "硕士二年级·下", "level": [ 206, 210 @@ -1457,7 +1457,7 @@ { "id": 43, "name": "硕士三年级·上", - "icon": "合道·高阶", + "icon": "硕士三年级·上", "level": [ 211, 215 @@ -1492,7 +1492,7 @@ { "id": 44, "name": "硕士三年级·下", - "icon": "合道·圆满", + "icon": "硕士三年级·下", "level": [ 216, 220 @@ -1527,14 +1527,14 @@ { "id": 45, "name": "博士一年级·上", - "icon": "太初", + "icon": "博士一年级·上", "level": [ 221, - -1 + 225 ], - "reward": "1|200", + "reward": "1|190", "levelvalue": 4, - "diffcult": 11, + "diffcult": 10, "weapondrop": 50, "weaponweight": [ -1, @@ -1562,257 +1562,481 @@ { "id": 46, "name": "博士一年级·下", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "博士一年级·下", + "level": [ + 226, + 230 + ], + "reward": "1|194", + "levelvalue": 4, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 47, "name": "博士二年级·上", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "博士二年级·上", + "level": [ + 231, + 235 + ], + "reward": "1|198", + "levelvalue": 4, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 48, "name": "博士二年级·下", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "博士二年级·下", + "level": [ + 236, + 240 + ], + "reward": "1|202", + "levelvalue": 4, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 49, "name": "博士三年级·上", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "博士三年级·上", + "level": [ + 241, + 245 + ], + "reward": "1|206", + "levelvalue": 4, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 50, "name": "博士三年级·下", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "博士三年级·下", + "level": [ + 246, + 250 + ], + "reward": "1|210", + "levelvalue": 4, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 51, "name": "博士四年级·上", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "博士四年级·上", + "level": [ + 251, + 255 + ], + "reward": "1|214", + "levelvalue": 4, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 52, "name": "博士四年级·下", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "博士四年级·下", + "level": [ + 256, + 260 + ], + "reward": "1|218", + "levelvalue": 4, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 53, "name": "博士五年级·上", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "博士五年级·上", + "level": [ + 261, + 265 + ], + "reward": "1|222", + "levelvalue": 4, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 54, "name": "博士五年级·下", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "博士五年级·下", + "level": [ + 266, + 270 + ], + "reward": "1|226", + "levelvalue": 4, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 55, "name": "讲师初阶", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "讲师初阶", + "level": [ + 271, + 275 + ], + "reward": "1|230", + "levelvalue": 5, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 56, "name": "讲师初阶", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "讲师初阶", + "level": [ + 276, + 280 + ], + "reward": "1|234", + "levelvalue": 5, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 57, "name": "讲师中阶", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "讲师中阶", + "level": [ + 281, + 285 + ], + "reward": "1|238", + "levelvalue": 5, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 58, "name": "讲师中阶", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "讲师中阶", + "level": [ + 286, + 290 + ], + "reward": "1|242", + "levelvalue": 5, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 59, "name": "讲师高阶", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "讲师高阶", + "level": [ + 291, + 295 + ], + "reward": "1|246", + "levelvalue": 5, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 60, "name": "讲师高阶", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "讲师高阶", + "level": [ + 296, + 300 + ], + "reward": "1|250", + "levelvalue": 5, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] }, { "id": 61, "name": "教授", - "icon": "太初", - "level": [], - "reward": "", - "levelvalue": 0, - "diffcult": 0, - "weapondrop": 0, + "icon": "教授", + "level": [ + 301, + -1 + ], + "reward": "1|254", + "levelvalue": 5, + "diffcult": 10, + "weapondrop": 50, "weaponweight": [], "aiweapon": "", - "aiusead": 0, - "aiusechanzi": [], - "aiusetext": [], - "charactersweight": [] + "aiusead": 5500, + "aiusechanzi": [ + 5, + 5, + 5 + ], + "aiusetext": [ + 5, + 5 + ], + "charactersweight": [ + 7, + 8, + 9 + ] } ] \ No newline at end of file diff --git a/assets/bundles/icons/img/土.png b/assets/bundles/icons/img/土.png new file mode 100644 index 0000000000000000000000000000000000000000..1f72a2bb5af433b170d2571179460ef782463663 GIT binary patch literal 1258 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H3?x5i&EW)6Ea{HEjtmSN`?>!lvI6;x#X;^) z4C~IxykuZtni${{;<{=^lahkmy1DI7Zkz=w0D_GRx`E`2yO-2el^`&UkFT(JNs2n1*Lt-F2kn7p+3riHzWXHSL*9^ACx z^0DnrCCNbU#p8P?H5d51+1Q%vFQ3*>UzBKWs1@XCUy>2IWO6MJH@BXqG7B^Fl-{-z zJ68hLHTqI1&S7vu-E#C!K=224)%o|_jqCCzVPL4c;3%EE$($?>+cGCk+!`8UUV zdFsh8DvnxI7|PDZHao|+Gudx(QABgJ^TfP}+1Wnx3j(t}O%3FPXQn#kc$iE~b}e<+ zE$}h-(38*iGR=2XPqR`CG*y!lSVL0>k%)g(^KYmX8 zdFITSbJxy%KXdNOnVX^e&YZc{bm7v|S7)!kd2;LQpZEXnoN>SQ`qSMr53iKsPW7DGxsw--2QRq%%}4Y&OFrr_ekXXclI;S&dmS{X(&JW`}#Y_ z8TB7;&)iUXV0K~)Ft-$Wx;TbNTux44XSydNCUL@#jdO$XhRwURi_;4ZIRwpN(2lrq z<3MPuaAJ{cprEXo@>KNnxrE%~iANfEbXt-w-IP3Xv_&zd z*f?0&z}ZN5{RBs+5SAm?u0-w0aa%0aG4o_#z?p!PiQFk!I&;kH9m~BpYkBPHm?)}o zhAk!Y{MvbzwNd%)Rvt6B)z)lIJ$fZ_^Y2}^v`Qzoel^dHwMtYY$IiPS=ayAIT-iH{GuM(S>hYCuhG_duvhp@s#O7qXh*nOPm&LQIMCH z=jZ3Q=dah;pP=XN$=bXpr-9uoz))jV!Dpirti=|)6uR3AmuN9Bc0AB|*!|%3*_=En zE-jW$JA@k!on!j9DM-dZLF?JcT>d`qGRw;SUJ?@o_#d%yF)|!Km-8wnGsY5>TRdI; KT-G@yGywqZ-UJu` literal 0 HcmV?d00001 diff --git a/assets/bundles/icons/img/土.png.meta b/assets/bundles/icons/img/土.png.meta new file mode 100644 index 0000000..467ee2e --- /dev/null +++ b/assets/bundles/icons/img/土.png.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.27", + "importer": "image", + "imported": true, + "uuid": "483926f6-b44f-4487-b12c-18869e5c2f04", + "files": [ + ".json", + ".png" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "483926f6-b44f-4487-b12c-18869e5c2f04@6c48a", + "displayName": "土", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "imageUuidOrDatabaseUri": "483926f6-b44f-4487-b12c-18869e5c2f04", + "isUuid": true, + "visible": false, + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0 + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "483926f6-b44f-4487-b12c-18869e5c2f04@f9941", + "displayName": "土", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 22, + "height": 22, + "rawWidth": 22, + "rawHeight": 22, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -11, + -11, + 0, + 11, + -11, + 0, + -11, + 11, + 0, + 11, + 11, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 0, + 22, + 22, + 22, + 0, + 0, + 22, + 0 + ], + "nuv": [ + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1 + ], + "minPos": [ + -11, + -11, + 0 + ], + "maxPos": [ + 11, + 11, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "483926f6-b44f-4487-b12c-18869e5c2f04@6c48a", + "atlasUuid": "", + "trimType": "auto" + }, + "ver": "1.0.12", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": false, + "hasAlpha": true, + "redirect": "483926f6-b44f-4487-b12c-18869e5c2f04@6c48a" + } +} diff --git a/assets/bundles/icons/img/木.png b/assets/bundles/icons/img/木.png new file mode 100644 index 0000000000000000000000000000000000000000..a1ab8180f858e4770799f68971a2e24d6278568b GIT binary patch literal 1090 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g;!3-oV%>35?DVB6cUq=Rpjs4tz5?O(K#^NA% zCx&(BWL`2bFeL`~gt!6)sRc}{L#LeC$i>Igyk(A#jfq=lYV*E@lTUAGKe$B9M8&)| zTqoU~lZQ*jNzdqvk8ycW@rH@MSuuf=3#wO5j%zANTiT*-ra$TAI(B~U`t>v7=hvln zSNim28@bwWaC3~R zJM&z7Nh=NON@t~$c8Vu$jnDd;9QQH4;H!1O+2o9`$z^{jTPg{kf+wW&^#!KU@3#$;j!66UBi#|q2z0?=kIvok; zRT0oV>S}Vr$8e9kPMVv}Do4Yu?s{vT%`XHP9`{l|<;=#xrtGev*lTKWIY>Fk!XV$* zEYjNKh>!AF$Hv|B40gI1p7c_lZz+G;R@FvB?~t3_x&WioJ{qN_4tqib#RP2{V+>Du zaR~G3ob@n1>SRQF%xuaGU%O*JW`r2&q;}qrN&RV%Ff27&nFZrZxHL+v3rq(nHuB4Lw3Lv zCRq~X7tD~o$aR{urQk#Fb+?5S?Yj8W&ZoRQ%fb1o{IaPxFm*A7O7O_qL{DOs_E_lrW3)U?gla_{cB

?arMvOGTcTn_i0;zjPj8N9hv!c* zF?*EuU`i-Ux7N{A^-}*?#`QO)JcA|q7HqKbFfp)DGSc3dedDV*`gK?FBIcUEf14f&9?Ep(P5m0W((c|oxoeX+ z9?t68cJ0=ypwe)0XHk`heJ?NnlJ@4>J4fcKO5!1fa{YL#a;M;Zvzu*CY*Z*`uC;Uy zD*Apems`zjw{>$Z+b2~EpKmf&IXm*Z*;H~4Br@?GY(Cx>eb^~bQl^O~N4w!+?V~AN zE(N35?DVB6cUq=Rpjs4tz5?O(K#^NA% zCx&(BWL`2bFo^~Dgt)2&v>C-rYF=@Vg^eAkKvYTzNCH9smRB5Hyg&wrfV8+l0H3S@ zuZ*6EmYZMMnuLyhrL!*@+6Jfxwx{+SVrF5hoPSl@%-tn-ab^q1RGxgt1KJlB2i_1AI z&UV>NV@G$}m~6$xFAbMIOFs59X!OWp~-t|8YluF-*FfaP*hQ zj*q!#|9fOthwlH9aO@Yu#3!t*tZ_$w#vl2Sa`KPHl4mB7b{tAB6WjOPP@$XKXc~anIC6ZFP>37cjgJ# z-+$+xKKg#`=f!6?qVAh1J-%-med9~cwJY-!A9ssCy_$EW>wbg8(}$O?e|_Hghxf|a zKYSYt_ErHy*51>_F+}5hasqp^g_wi^!)M8c8|E(d(}dY({Jp#5z#+4wx+ocr2a0nZ zv50(2+V(8q+O_0_3%%(H2?3Ku9u<6H;bN~W=3w~Av+K1vOLGRBBOhlbn{TLUpuzdt zmqOtN&Mq-t^BmphIt!k8{Pw-BDeLBxCn=IQB1{kD%zHKM*)pYMf#61ENsTisV$arP zD9ch0<{ap=!c+1lXCmp2*n1h$;LwR`!Q z8FS`MpW3CAbI~;O*BeXW=+A+zYnPp!vpwVC9nM_0g2V~Cb<@wrZ_9f6h}E_xpxn9k zL{&}WzEhqQnju%sU10Q}cNc>*d(4x@n#l)<{a`WxXScQkYYzsbY^L@y4 ztZ#FKM9~`-uH`ox9~+st*$WCzpU6022TP;MmKp2}4PD;->jGEAgVL&}tDnm{r-UW| Db~K}w literal 0 HcmV?d00001 diff --git a/assets/bundles/icons/img/水.png.meta b/assets/bundles/icons/img/水.png.meta new file mode 100644 index 0000000..a90ff0d --- /dev/null +++ b/assets/bundles/icons/img/水.png.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.27", + "importer": "image", + "imported": true, + "uuid": "193a9ca0-c402-4984-a744-9484172b90f4", + "files": [ + ".json", + ".png" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "193a9ca0-c402-4984-a744-9484172b90f4@6c48a", + "displayName": "水", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "imageUuidOrDatabaseUri": "193a9ca0-c402-4984-a744-9484172b90f4", + "isUuid": true, + "visible": false, + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0 + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "193a9ca0-c402-4984-a744-9484172b90f4@f9941", + "displayName": "水", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 22, + "height": 23, + "rawWidth": 22, + "rawHeight": 23, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -11, + -11.5, + 0, + 11, + -11.5, + 0, + -11, + 11.5, + 0, + 11, + 11.5, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 0, + 23, + 22, + 23, + 0, + 0, + 22, + 0 + ], + "nuv": [ + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1 + ], + "minPos": [ + -11, + -11.5, + 0 + ], + "maxPos": [ + 11, + 11.5, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "193a9ca0-c402-4984-a744-9484172b90f4@6c48a", + "atlasUuid": "", + "trimType": "auto" + }, + "ver": "1.0.12", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": false, + "hasAlpha": true, + "redirect": "193a9ca0-c402-4984-a744-9484172b90f4@6c48a" + } +} diff --git a/assets/bundles/icons/img/火.png b/assets/bundles/icons/img/火.png new file mode 100644 index 0000000000000000000000000000000000000000..624f18c714481425c22a47485f3c49e783757aa6 GIT binary patch literal 1227 zcmXAmeNfVO9LE9ii3eATp=ig0qJ@AU0fLG^$b%95r1G>_q0Q_no0`kY?RwZ;T9&I# zqgmFvYu44-)~!yDTeG@it)G;g7OY2~avHxMBx|h{*|*#0?)&<_KJV}MkMDgy&5%h) zCeR2N42EpbYb;=202VbW3@}?_z6dsarE0kfgZa6YI9nDDdh9lfPL1hyB~M~7xJJmh zvfy}z;;h8r+j}Gm|KUO^g$f92rsYITRCGHh4|pwuFP*pGn?>^bWwqaP^NR)I(YnUp zpz@dXO-4>;Ph~B*<1nrT?2;LMjcq_8!thsgrIY)PoRb;xINT|rhCV+I=4Y0~O^t!GmMF$~{O@ZpF@jvcJn4kS7Z z4_HO#0{&lDH`KtjyLYmLpjE^s0=9ATYVx)2O%1>a;Sr^YsX*lOsOyr_h!K$ja-1k8 z9wdxtGClgkQ?XcV=ywQ@$NTbfMh&`ikeNgzu2rj%{2aeVg~-LIEC&(sy&N_#jok*B ztF+pw{M?&bjXzK3fR+#Gmm*xwZbPAun~vto{8@ZNo!bGKP+^9T%|x=L5>5sx;G!~- zoXZQ{fxNkLL?AX~XJ0ZIku1@h)62Ze6o^RbmM+O!yx5z{L~SacR66(25;&w^qgEBl zWK$-sM=lMzET}m1m_d)OR-%j9fv%VRbE`Gotq z`1zB;EiYdWcfzAgmX|s(4!<8ALg6(t2RsM2?r{$eB}_c(ABXqOJ|j;)okd>7Ob47g zRsopYW`jnxa?!o@w#Y9j3li?*0*QOvDc1DnxCndD+jISf_VQXtX}LL$v3pBW)>4otfkhbP+mlajCBz_H4+ zNK=0#6Bse(b>^j=*b=LH_0heDR>i|t?e2l%HGSdbg*9Wi#^XvOzvFxm;fa6zTq#Mh z+As8#{rUGZv^Wr}_@r#6;NXPoMD7n4x>r&S_Da_SPhg_o{=oY2#r>(?Yvn`Jr9^67 z@hZw>O7zT@C%~-r+u_ zEWvx8+EcP)mt5JIwe7O#LEmsyyOZ2e;tCWb73`kH`t8|t0e&u7X(482ru+<-C+D-J#TZYm)%tVX`qvJ= zee-y(@AtlOs+EVE{r~^}e~#O%nx7#q%=qv70KN|f>UeuW!boc>D|Nc7e`1iQY&E?{z+Khj$m;c(z{{PR%HIps>-tMeTXa2QMWz!_> z(nRKekC*-4!hU0u#+5BDVnU1tdW!#lz54g|$dB#98tRIFA20lK%=*qwhkxIn{@fw> z@5S~nXMAHLY;SHh_;c9s|Iar8PE5frOluZqu3nINb&Hp(9OLgT98bAMf*OEOXpC zTkYp*r`P*UJY9`{-z;7^*}pW)jf;aJ#)oZ5ubqcA)1p=u0bT}s6DCy^d0Qi<)?AjJ zVipFK6YjtSAy^XR7tG*ZQd<6iM^KLI?mb=sPY+Hzzoc2fL=@xc;uxZFJ~@Gb*{n<= zA-RFsPff2fQDVaLq(?0r#$8=2xfB~#&CpPe*t%lUgdIzI6j)Apba88Taxol@JkpZF zIoIJ5?2x(hpB zZ_4EOc=K#!=0rxhOKDX>j$1c}9Xc9*Cgh|i@Av83u1uYj6}^K`Z(r8AC2UitWMrnh zYOY+TI?LeW*K9H0{O}WeleYy;IrS!PkC@uNs-J&4zq%IA;}cuv_nUxpPhRr zWZsM9^t^;O)2`lH&sS!DVgKi4TS7b<8uqn#2X$7--`Kz5gCo;}4+q8OCFwl)pf9{? z(v=3TEQZ7TLquef|13(%^7yz^P3;tWZ+u$bk{?ggp1HW#x>YeS8rl#tNtUUqEXIBxm;Nd#rMDJtG?>1 zzUm9fu(DovJp=$U9cD}MH?zUu#HRVq_P$xOj5{)FGp|9;v)aRp!XRqv%&S+||8 zw$5$?!%8d6`wb)H^cBLA((yj`9Ovi<1fF?9hi6#~N`6HHdpmTEG?ywaKSpY5Dht##RdRI7t7hmKt7Yg{P|Ywf5f)SFwVtr_KW!t`3@u?z zL)8oo1Jw+5{dd+=%}~=(`NSGJ>Y3U)n#aWA)fLzGRsXxvtEA(jr?0=sK-Xkzi^yL1 z96W{ptrXl&KE*yN5$F96aXs`1kE0LhcrTSsFG~qou>mbT%}rlZ?pOVmT!b&0DJk(w zUMLWIS6jP$lkL1|ZQJlIlg0nYAa7Ijz z#}DW5rQz&5Kb)PXhqLMUa5f$r&bp(+Sb1i5t`=Ns)jk#r9zuKTP0Ph=`QQh1?oN8v`F{`>Edens6$8XDS% z8{50$zicZ(7oOn~`xMK~3D|8&!eQ$@>;!b}b|qrJTX=6Gw!7~WeC9r#?`05@Ttu5) zG3XoVFEyyF(?xOlUs4imD;gV&nm=zQbAFn}=ut!H-=_;*I))P(;)92W9W7hdM^9IC ziJpmOq~hoQid59f>5G#|1EWgX{uL@|4=|~qIlH2<*4%Qc$~ubkewC6^Md4q{3($5l ztiZ*oGaxq)nHJ9le>WI2fTT7ZIA!CnnHfoBcu`%V!mQ56&?XL8HkN~B2R!u|o z49huPJkjv<}sYt;(d@;a!B+L-v?1Yt*o&wLT-Rn`qPG&EWhIdK*p&pgLw|1-?i+`)Q9 z61HpaV!u8~_#U=f1blZ$7Vqy$zKOG?H2N;++lb7|JLBih>PyHzz+Dk!e! zOUS@PE5JZYWpzySKJnvC=RwLUa*NKAUld1v;T7`o;>pg9Cq3&ba~2LjLrZzJin_9a z;&T3x3`No}Z>+Jv$Ut?yfkxQ_`YL6P8>y8&T3t_r2FCi>)vZCen-f-bYhi4n{k3<7 zf(B|SDdqYqs}a?$7kRgC%Rwttym}d>L7p(ECk*cmBYShzBY?A3J|uVsan{j;In7&O zWnzM=vhsZ;Ie3*7SMYbJTsh_Gng;3_jXTvKCF`Pq?JWVz3!lOB&$@_9#64L~=oVul zw|_%>0o~5~zoBLaEwn0W=BlZyY*sAGSN*MOF1*dbScyG7Z6SWUbYw!&CAhwrq9ZFg zI=&ARyxef9Tmfw*rQ2fuwMz14FYQkk_1C0RL2G8`j*%RHkwyKv*Jw8P78XkdaF^f3 zW<>(FYecdY(6tpw*JjgQ0bb#42{>*`7Slw!-grj9l@z?M=HL}|fhsj?qi>=+Q*k~2 zs&tJt9rU%ztzNfczSu{FoVneH)n~rt&<$&Dr37>1RS-8{g>XA1jHL9A97zhs+^sq~ z##*Bkm-TxpUrEQms+L+*u#FWx{r#EJw>N8N|HOgK8@P1rDEDsMAnnC-89#oWFabmL zvWFFy@xLlR;cHSm?MhEyQjeef09r{!(NUBJ3)l|m4ub`72ljx`{V5*Wlasb?oU(Ky z*&|RmfGaNE%xP+dok>NM%a*+-mOE6qjKcc9q-tyGX=Iu8u0wW#_~Ct_WLrp_Sk^;E z9kC>AYem{^uPSr?s{ny^2!R#AYEK0y~X#&>EM50|OfGd)&?K+Wmh3z&73-Hq| z+FyN%+wrIP+{mKEfbnQ)sYeNrTPd#VuS&PPrn#ny(yn>4Mj@S$u05Q`rntInz0{m7 z=bI4sz?X!ScHDd|fcvHmw_ipO^U#UOD;-eRRa>I2tNOj-G8Lt3q}i;ZveMZ}gZoli zTKp?4en+PcAEKg~%28E~az={F`d^aN26mvn0PVzPElFOxUL3)t@;&rQYQGd;S8@U+ z9YdgR7m;lH!LYva>2NWfJdC#@@y41vbIRI<%g$chbNAe(<%aphk?wYBs#vdwyZOKSE7%pot=&6Tp zCGAX+uxBY2?5nkJsjY|R^;vKauubWCGV6U1!p@^e5EgWmwWSgO#lym za);aF#T?rpLwx4eZl3L4$(BA{8Ej=q-LgtWV!2Y<>Y%W`e=4o=>Wh2z?k!vYrfW~A zGvhKX7T&~i$!!7L+t@5mkSE>Mx3OO<{$4M<;f{cA0#*xd;eCc#!iO=-)xu_6?SBl$_nUbbCo%GN85*?F}YJ1;jS>WU?|Ux#rg zHJpUhFs=*W?z>~dfkY21-D{v#UUR(SausDF(rUP?J+CgG=f(5^6z-lu-oaJm$H!7| z|0YGRpHPyWDF9L;+gC3hBw|*jDu$Ib{S}w>zaTZ?xfKLx`&Rjm_*p;0+qd$gxImn{ zQ^Y|nxLcf?OF@^mlmvNG(xU^VT_Y*!)}E5??PY(L^yw^XUU(VkPfT+=&e^#W=itsY zXHOn_`tia$fCLX;Hnp(8%Fs~i)v#Q#Ab(Zm%9Wj}rKgtlgQKzR0@;^pMtE&6iK)1fp2KkR~uD>av3VB%BvL1_*H*dQrElXwj$B)?QRWcHXyY@$|YUY z%%C{$A$cd-l7B3M{ImVYJKcxk%L6IBGm-~OBe>MwlxMRY#CwtAqtgU?#4@sW!1EYh z?O9Cp(1Cc@uKA~rNlhd5r2_^Hkd@@s+Z@~$3Ef-lt_0nscd%V960QKR{mMJo ztQCK+7wLDwRV*f4z-Ce$qpm!`XcGzU#_YM)f~cFOMBOlB=M_^|#0d?*<2O8!K5@}~Kd zKf4_{J7-f|m`_Pz9&Mdns8B&`w&L>s+x4CBLmwq&qI>kFd*VHs=Ai0T6TwNKag8+S(NqeXTbbdENi=cx}4z6MnvxT z<}=uSXkOS=m2QWt(rTm$n&s6ql*^T!p;*wb`qPraz>S~1YQWj${0iD9l;+$PDM0Ey z0(sZQkrx|E{)HjrogYM=G`%p4yh|hD{sdk}_2gz(OP&n35D7SxqFWs)N$v?RMK!y0 zjab5UiuX*xN=HvRCOaz@;`gLspuT3S=6MT;HFO zfu8!jRV(IDRP>t6+&dh;5y+nFP1$$Dg8eroTZ-4_0=(wzxoW|U7vbDbZ^xO3p6t10 z&A~ek#3uP;>sc4w3R?XYmoLerlFq2=8XAWWteG#)V}p2XS(~T!&3GJQOX1HEFw>6` z0o&3k{xDTQcd|cuiBfVMH(DT|9|3v*)6KZk&S~ zH^ub2y)!#Kg1G3{jbBV#p;J~#I>75F7VM8ox*5 z@^@~mB6n4D@^=K1zfJt0xB3YOkh>$8oZaE%M0cS0Vqdbi2J&LO6}fxtD7xrN!Sybb zJP@$VolMHf4!oJ+#o5lD7^uqnlvh$L$Ztu*Kz04-u~OTp)cRJ;*+;KwIOaGlr(eZ# zp-8w31!xxw;EJSczv3?DGcIE`@(e9UpQYuPGXl7$aGr6Nv1jgLy5chC>#pOl=K+pO z_oHKIxWb^4-eARb{t@X`PK)4NyCqqlqp;0lZ)OuMjFj3tEe2GGqe|3 zb4T#R_6J_Lx8S8)E1o+v;dO5hO6Rv1&=tU)89?bQ5zMCg@pj7;+5XzJa1lnzWzYUE z-8F5iw}uYchmX8Fn1wPk5rYuAwuZs}s$Ur}W( zZMB^4KQ*MV_|l(DwwHdxit|W49O6YaYd7BO)IW#o?^tSH=n?Y`Ek+nnPE$F(Y}qnX z6bt@Ue@GpIsw%S)5DIk_*%y9!INb@mMbq&|P#JI{{qFX_qh^agyev zPtkb92^tSNj{Ufk3|<>g+~b!Fj=6=`mTOqAj>mCtGBty`prxa^Lq)xuzT$fSne-~C z4H`FUkT`ztlU5MN-Iq()bE6s20O9?I2Rzn)AxblGmQ*y!L1*YO<|( z;;2Zu3D#~LvTN^!IA;Sz3J&f>VAV>}0lrJIfd540 zRn?RWf=AaND>qIQ^)`Pj*4T5_@SPvM^J{wUZA_aj#-D-ppSkOy zs@ROFh?=%aMwv3Q3zA>;$7N)sq*U}~wfusV?7%D%$EARpY${az_6={>SdzD@CHZ@T z$cyqPcb^|Q2Lj2BZA1R)cEW8bI1@?X*^cC&?LfiVaPlwor10TV@uQ!}y`|oqYuAcv zgB`dr+J(o{TzNA&1h4PEmyXFHiiJ{?nx5*WNmC}t%JWtv?h^7@ci}#@hMmB4>;+m) z6#$)g6Z0u?G#z}L1_O^_HuNa%7M|y)=-X_Jd%%txub6x01NPN|tlLg;z5h)52I{k74s0W@G@i8li`;(klK`ukfUPb2?wE7nj*Sew(YGww zf5Tdqau40L6J>W|-f>S>U-DM^0DQOyE$oI7NmJwlI~^B3-6Ysj}M1mMADtxhLYKBD4gcQ+x;uZOiRVFenX7^ z=D{BS397FmV7n<&fHG5nb>Tu-Bo4rz=1?4WK@Q!5LXjqlD402(($)@?whyH=)EC11 zh5bN!9pWS0TG(5>CtimOM~eS-2#~vDpn!2WFPv;RUb7LuxOx-i6-lgTB!|2sIpE!a zN8QH~7Z^sha%H6hysu(Ge@7LRmCKaYw>K`$FOqsA-1!Z#{C-D@7R8B#dx3;kb2xOzikJjjqVHG=;M#HEmVoX}D-Pdw z~G8PgQ22aZJ2y0oO$QlFfY0%dit7k6bC|7G|*mORZAzTd#&#| zEougDLtV)B5jBO@R%H5FlkI0iik~If6U9DX)K->qi)V+DI<_N4sjq0~>PZD-&AA^h z^S@2fsIM2ps@H-y0=A2PrgY!{*ed00>u_1X zZU0_Mg^7-W1JMw30FEDq)3FeD3gX2)x2_0Z6}|?EB27Mjz`n_om~Lv#1^?b0_vy@0 zUy*$Mx^On64-A{eCL24XlYl5&eZ>MR$WT?aT!C|+I=sw~`UgwR2!Ax$-XN#=v^Zn8 z<;+Vv&b@M!`Rq#vVSDkOWV=s%{g*S7?3u1Mr>fc2lbn@GAAV=ADcrktxJ zAG!CXC3coJtXD}OBd~=(L95c8gu3rp2h>2v>yn&0W$vXFdK z2C@&5rCfQtZPBZ}6kPHlFSZl8dxOb6AYgl_4S7ex$P=*5Kiz@CGo2_nCw#sO`4_v9 zcexk&SNc#C-;I)cLpd`rh|9e!crwqOdo$d5I9qs*2hSI{QM|1ib6eX>$D?$Akl&RA z+!-^c%gU5nm`{4K)VrscS32=`fa?!$X$>4 z@yK(goK9t?fbEZauF_@FFWC45p=)HcRL4MjjbUZIPkJh-Xe)p7@!!8CJrm8Iks<&U z7e6Mq;5K;$NdmZw*mv8GBS~%?OLit!W+#p&Ik5h+1%tOXB4}O>I0s z2jNakKRFnKin_u271W0-u1iv-O8TQJYiJ&Bu5ZBb#&x+G=txnx3q?T=(6Kqdr zs2w?zLt#Y+iiV4X8)Qe``4~p@>`QrV_1%ig{BP1e?=mW6T)zWXE>Y@Y13%4#gGXTf zMv-=xP_ld_CDO&R0(p{AcjZ9hQ=EMHLE?jEUpEDu7+3(ktjQ$g0)KrGm zttTDeDN6s~4qWP5Di6yyR4>WMm9BJ3>F16(yf6O-U_Z5VF)hF3BA4H^6~Oi3%9~K( zkbmmSDIp|eMsVhZKb?1d_otI?$mYrftglMn*xFQXp+(uUWyUFP)4!-`%F4=Ed4|%u z&p4dAj>WgdGpQ^B{{4|E6HK~yWN7mpripY`+C<>hYRv{+x)v5DY&zS;aE@DV=>jt7Yp+eUykLO@w0+-sdEywi)qyZtCk>`zH@B*m|` zaBf5&PPJ>s>!n`2Sme(0#U8x;MF4lcGlfUGQhH<>uH{XnebiO4pzkFC_ovxE$;y-~ zP6ls_a>aR}h^r5u;XCa(eV1Nhi%7JqV{g-U`9-=ey~2QX35?qPgvl{)7_;jhJ?8Gj zHKGTG6-;L87;3N4ucR|vw}SRx9{8ZGuQF%S#G$+`InR}+GdY$xn)$JQ{J6gb6Ardu zdQ1yuAG2iPsTNF*Hl@v??+IB@lZYjCX|woy2JUiV?BNK;MMpB@`~dt1I-;YavP^M3 zA4}Unqh3`b-KCXPHI7>um1kVj2HX^Bx3sgU{f4_y6zWV?2UpSrbo1N0QW)Vx{!Oztsy6x+HkU|wcL#@In&6B^G&R|)Wnv{;zxZ+{Qst@II}tUal_n&lQnBm z*rYx<*%NK$%K8>IEOBsRy?;1oA_s9cVi4Eb_lK#ANbflqcOzN<+}}Opsi>CCs$y!$ zOMWCV<7YAoV+2eSklJEPx%L@oB^Ps*!qRJ8OYKJ7YxmEf`bV6U-ImkO{bb$3q@=3| z){h;rwJL!ds}Qul3SD+rwg7IjMgDmEj$}gCe6u+eS#U6^T&!Fh$GzxD|rRer#iV}nq#p{Q2D0;Dk;?&h5KDs}you-H-~f(>wdCGRcd|Eo@p^>^scXGRTkl22IuCK+FXqDJ9%w2ll`6^i z_h%Bo-7))Tsa*0l-25U@D=aPK(d*ajI&+7`hi@`q}^F(2eE&<_;F!$KdNdQ z?AFv*lWJZ6Rr*#F(wIKcHdE!Wx&m!r;>W#$I zHRGh2BXO)Va#i@6PdGPy+Y;{=!7Fj5&hI>c8P<*{y<2W|Lwyc8 z*>cy_n_Vp&Io!&g)fUz)b@O6-Sa+^>9SuXLz_dkN3~0l5%Ch#{aE0>Aq^hQzWztlS zt63o&dE(BAXW?9aJ(@>Z8$`O0Qttz#5oYgGZxL50F1^X^jDcKu?a3cawu-)-5=^3i zZtN2u+6(9gZ8G_+c_C~|W&GAvCRC)_KGEMY_5Am&NT|iehu^c|$+t9g)BRGwmF}Cm z)7m?d1?Q7x-_ykFd3?9>HMZMRvD%)7xvuf6eg`AZ=aJ$tDVU|)r#>^7ReUPtPYUZZ%mq zc9M55hJt73DNMUVQT7u`@?TS2^llK(N6LKqj054#IoZvIOCrH#Z1N^&rx%%m$RYz^doVjw~7E0~R;>bIED~SQC&oW@mWd?1y!RT#w z7`^2-qjo%`>-60;vT#AKyuo6F3c525D(UoEFg07JKSMYp`hcmory2*u_9 zGwGGrYVl1){Yh1|^rFlRDl$wY-cz17JoT~Xg{L+5T`hRqPMqLIcEzb?T?{L0|LF^Z z|LMBj|C{e2PaG6`wt=4;%ovA5wQtcgG$MNRXc-(O4;?ZLvcy5UZaW9RZ^~&~Z_ay% z5a$uh1&6E8q}-M=kYe8b6&?9EF7+y)gZ%a-H%eQnlw1ToLjmS}4; z9(Z`MQ2_UVr8B2QVvcTU!*XjombVV!UT<*%n6eNi{mdFGTa@Kxsrl(9$boCzM3?K? zojChaYKsja_Nga_A9-`~X?IR0OrYPuAU156NkKu9_yHu7lsTI7uU$Wb=wESSb~{cy z^(A6kRXpaDr?I~d-!xUjXKh9CUKNHOsm6k9wb=Ba4%?p8X6?NiEWi6b>jZQgx_yy^ z+fO*5{ebE0diVyZGP_6o$XDOa!faCt--r{VdO0P$x7@>S&JpTHjG%V-2(0Fv!g+5R zHoH@?+?9sK&NNzWPsePl@RoE;H>J~D*lben5UINOu_vmGhPdHMmEk_xZQ zAY(yeo=y6Jr_-A9>SqxcmROO!#)-F^JVZM7A$ONA1yTNRu_qa^-6=RfnBrR#$T`uQ zD?=RE-^r1EZ5>GdN&Fs;`I588hny%e-RVN!(T-v*F=TBUPjh8eX}bdy3$CWEwtMc} zdGAZa-Ya+Ly5bB&*2Ob&`z^-pN@7y&%KJ^)JuOBi?g_zvi!tRv9ck3M>w(Nj5$|-1D=1yaW8^c zvdIo>4_Q|>nI*tYJXM=@cN-A(tRZ`z)o0WFx~xsE#p=XbtV*oGhDSAMU8}DO)YI{nP2Mm zddnu8S3p*^D!EVId2b4D45aY-PzoepXis6{>|aSs9(kt*2-r5_^?WB%mU@!5+?}lD z4!m7qL(XbTayL7Wx6_?`0Z?8|X2S$0+?pFv@^TTSPnM8-DuCPtEl8bi$B|x6Yz=kc z`KAE47EJzOe+ps*tPlH8@^mSb#uD2vM7pS3prmlCQB^Iqs09n6X_TYha)`tJf4$mc-dH;h;Gqqs$p0 zQtq&W%@`AF&fut4bXd_0uMxFr>HQsgM(R^_g%y|eS0#bBawUUNm34G>)YCPj^|#;g zQ?tfgiD=CPUk{80kQG1k|EpXL#gFaKV38n;i=cf7bZqmk->iV*>`BaTR0k!IazAQG zVA!MyvL9*B`pwvC@5v1T*h^k*xGZ3M#Yd!Dk!UXqziQJNx(?)!M*vznI!w25fFa|! zWbI6VrXF_M`m|EfW_FF*V%@TbFv}GmZ;Twcx?Iid@Ck5#1#er{#JEzWqAu0HtNHNHWvGDdgq%Dk=I4=IT1?=+6l%>pD=VK= zw)e`<&m|%(M1B&gULDt6j|FUhg|34Pwi0}WcL~_;N`D933?eS%;V}LJM(zix5q^gH zJ#JEY(qpO*-ACoB)ud%EQYh!2Rjs;ZlqiZ_Co5~w{UH=4^r0wu97Ty^D7-TU?)F07 zUt0WMq}+_{fu#J@nCEldc{bag*FW2mvD{fC+CXymwWUD7I6r<0`PW7MFO4GW#ST$U z6_)%YE$1vH+2<)q`GuzotzfPQ9|u~KKh1;vot=5OD+rRpDLorZ-XW2)uTK=8IV~zm z>*!Zk76Lx$i>j)n9<^-QB2GU@rQ5O-3|Vo6juThn+_o=`TG?Y@XtY9KYNM^7HCx+I zL%Pe^|B3V~YDa2msBH9XTZh@l>=}2m1wS4$XUL9LgiUIQbx<|*jnzl#=&Q}sGu9Zc zW32I)FWUVhl~pdQTA{LD$0~-pYpQ7JM46YbKrL|0}wN>6cSddON;;Q+d1W zf?3eoSw29aUuXH?gbBlFuBpbn9lK-)bYY>?4keeBi!-L;K;7r+&rP4UTxl&O+b~(1 zZDK$qH~b=))Y6&(4VzI_B-{P119p5Rs94#p=E#c6igY@a$i+XisBickVD@W@#)%j(Y-Dgl$bj)oZ22E^2 zgJ!Y|dFX0u(c0UKUw&D_qes%92xKX8)sbezzA)#|Gc%$dH)F@chHSYnrCd35*Cp3x z^W)ky_WDZ+S5hi)*h$`=j>Q(KX(65JYtv|VJr}!?=g@N4 zN1cvmsng*C4ZGi@`i$q)ofl92W|r@v`&Vx=e{xGib9n*tPf~cd6Ge|EQS@-4m`pcv-!3>8dIA`(;Rs^$Avd*L&)6Ko}8oo$h$I${A<(U%}PjJC1ATl zEOR^Mbu?(_Yc5t0N6GW8khWjEz6l9~N$Ayrg&}p=*}WdQ)15ih!-4oEzT{pEMB=mYosAvwEMR{mr!cwtyD>OfXQDR zzWkr4xxvO2DS7cm96V>h)e?Gll-*p0zMbUvvhCgu=O5~F^Z5(eF)snPK)OSi(DXH{ z2vOIEc75M9BedbV>;jnpu76vehjd`7xfMNrXh>dUSAMBp8%6@F$#FbKN75Q_emzAF}u3ngDfags9TBmu`sT#r@DA5<7Mm)sB|vl`EI^euJc5 z3I+{zxRCz)zzy$NA75`b#UgO>*Zs8?*gELpI<4ferWS%AmXD zNgbMa|7qY#k2P8(b?aJmCK>6HQQ!Om#=p&Fq5y4g0o|U$7Yl#A|7eAa!mOq2f3r?sV&si%0^+i9J)Vj4p$wc3X5xA@leTBG=ogp8*cexWPhaa z;RJXs!a;^es3}9q$a_eA+X#O0Hi31{yjbMV>kScPMD-x|)Nt}Hj3qzrM+z>ErR4S$ zmX7l!e(yk%ug<_gLyf8?dSdB^#Lkg!P<~AK3fC{LroFH1V%P^qbuxvYJh{-$lFQ>< zd9=|*q~yVn6$Rguq}y!5fru)%Nja{LB^G6>goQWS>mdI z)0|D4iR{&jF74XUzim6*EG((4slfp|cW!xy66+kmG2tZd0183_1aSQYa08)R7<3Hc zRj@C|oZM-uXCNKqGD!(n0`B?LNY4ERY$XSDsKdA4RDM?yNgp?sNTZh1*|TR4X3d*Y zR#a!FEi?ZFxDyw)l%C6mlcPQN@5`&QAL~89q^i2qKH71Z9Jq&{wIEsmckh#C?0nSd z*QNyl-K~%7(5&^J0qlW7f)|7%AqRkF!OM4-hpstuDYVHCITFl{v@rkyu;sz})}-86PD$E9@%bZUZW%>=RoMu%ullObG|IC= zMRqo6L6n;}Cj$bw(M9~*Vr+Pwy|PFjq1$*?puzUHs_kX zok+w2q+PoR*aorBK9D=!!6MB{ZOXwiz!ru3k?85fVOvY~**LS=(vi81nq#b{A>ANa zCaDeApn)!D-?aT*;LhG4>%PR)$rC$$aJR5d z!k5|&ox_%wnMjw528vWWM7W3Ws{BG878UbMfHtZykA8XC94N_SOX^#GNPdOSlQ(?d zr6;;NS|XLpPo(l~hbNC8$;#Ym%{&~gq~aQvN?GM{Xc?8q=|~!mhtjZ#PQ`L>Dy?>> zVz~MhgYFix@Y)+1j<|@^th=-rd50!L5-^?gke1V*V6`ikZ;!p8NrxY$WuFyp`|0NV zro02IX^8~;04Z@6-U_Gq#Ue^lRwIFNP%lrhuat-g4&(7JesHT7u|Ee=PE7^ZR@K-z z)`i6b?Z`UPgMyR2$vxSZ{BwgTNgBuFBmL>qwiOFR(&gp zvA>RFYaJLWd;dhgmXyx-;Mq7wiuSvcf5euT>zychAijm79b_(wr1dvdaul}ZtNwmT zgJPs+t8z;65t7nvJEZ|q(w)Xkgrytcv=JVoB=5R-T=sdEAt359Q4Y8wGT?KdDEP zKh}o(qpF%Zk>i%JDg7tqny|eI+d#694ml(I1Pt` z!Uu$-#oxk~hq4Gd_>!s-N2uHXGB$G_V71^et>!+#Y~~YM{`3Od*nDcmr%|uZ&nPR) z+TH(IyIl0)Q4vVVy!h$Q6h2r&(X*W**>2(9iJ!#h%V1Fcn-758HrfeZ{>Yo1?XhW4 zk!mK|3<_yX@x?wA9Pdi*iEiYd?IYYD9*l>Ag`x@~^)T2V*0GCrp|ZASRMoZFuwniC zuknMHu2?1e|E^x9q8iYe=M(HmUFr;RqLy&k9!`qHyVQ?c1AJ&%sZ!ymoATGBtX$@Q z`tdUVK+^E{Cc-YlkxKHL2z@vfe#_EtSvo^b5t4piy( zjnb_gyS1mdOM41Cw)nwXq5arq z;Y33%O=$;x(hpE-!_}*&Dye-c+V_sS7ATTi8QD(m*`o*7;;+hnSjELfED|Ra z>HQ&7ntle_Pns4M$=f@J4IRSWguAkIC{@Ydw}aNLqr;KM7NRT`0=VV^xUB?mrDg?F z_CA)H6&kbcK|?m(Z@`Xc^{MajPZRD>#wL{+yfm7%0rae zMaT4Xx@2cEM!VAlq-X-1l;{;Sno;2BQ6iCg?FhObd1^q<7qnUK2{rF;;=Ub zn{}@-o&N%xGr9cmFoz!|Z$eL3U)o2%IrjdY4xO1b1nG`##qs?ph#Mfgs~1l@v0_Lq z+5UZ#nnp%O2Daijk^UYZS{LpPhD&|O+b`xl-JRT+4&=mkApcYs3eWYV;8H&dZw#gQ z_Gl;+wYK8*csbUVeZF10NHX8ua#WJkd?s1a#x2`q^X%#=YBgKE$y)CU7raEW7B#nx z9-JQP$dz99#B_8+tDM@4PdDX{sce}t8fq$KYip^MX|1cOG__&{?Pcm}%9hGyzk>Ij zLX_mm^jAO%kgBUIVPvGlx8EpHreXjVl=TblqVqAkc9T~nqtwP2^MJC|(TxM<_bMO#WCi+>9q2=0 zsB~wraOf5(1Fh^vZl2{tU3c z<^JOuqg+l7?vMTBI4h1n2;`(lx5tI0CWRvcxQ7IA4?Hzv-;?I-642fDps`4~a^Ti+ z_=mtj<=`aRA&m~dQuoaKrCx0q|K5g+?I`G_d;Ov=3g)5z6b5c zz@58bscgPGTU;QkivYU_6??onHOiIfNEfaSbt7+KDE(SBmgXD#>8AXS$|#jpE>~7h zL$h2ReSI~b$|hRVs#i5Q)UaO7d%kWCIgTyNVt@Fq(g`&crS|F?Dm4^8{&z^nP`&AY z=tZ*j!jv~E%g{ke%$%ysn$?ZixzmT(n1NimvWWXh2S`u3M?pa*MTNQIyUU}vB!}Xn zbTLg4wYW5j3vQB^Eow{o6DTd6DBgP{rmra}KF#O>)!zSp|1D2q`9VuW?x_tMbGdaS zmwdZ$(j$yh?jf9X@#lz>7dxu`z?G3>IKOfgYil$XK=x&|r3+{5-MQoB!Byca;`Iw( zUy8zlc^m3aZW}-H!UD(@FqJ_z*qdw4Hk@tk#;XutN;-y77#SjiuhfLF+{u-7Ha;A6 z3KW11Aj&0>9oAm#wGSYn(=g8aM&M#-B<+;ne2AXZhO1j!B+KVv{}j0AU$x_EN;s=_ zyEAmG83TqjruWdgtd4g40Mt#fE}TgI$9;2SZuzimt0U{Sd$TJhh@&?GW$&MQ9>|&3 z)*|6raqOi?xzEix{JfeR3t>HW9#W$d2a?sA2QFz+LoRtp+TKyT_zb=u=q8 z+T470XXo;BdIp|v-e8fMPH=iA;Ue9JNC`J1ogq0{49I=UK;eEO-Ht2DXJmRdZV%+Z z^}Ku=Wi>U~#XqxVO=PcI{JdD!?BI7l72m{Eyl$mYqfKWSa4lA!63~_4Dy#rp`>0gh z&*oybD2eJ_&(mASPD!{Dd+K3^&yRv)T0$x72L7u3YESvjNZtcoOH?-8tj91fA{X0YQ&hA{%(sS8HjD2uN?5uF$5HY3FyVH>odk#zDJ+(5pSc5R*#CqBnx ziw)}dM{+H%T8=r5O}QpPw{?2~-4NnD+i=+Ktrv#{ zWFNSBa>vb!+s>YH;I<7RUqCiLB8Z}P0;s(@lj3H_svuu#nVDiHs;IjKc~#uYw{2^7Sb1>7yDg80&ft2-{sb6Tly*jpV!_`_YQxp8smbAI zzYp9v0ou6Nk(_=J!HH)qfW}C`DBRT4lbf1OK=lMNfO%+ZF<$Q`I@fp^f ze`6&}xiQb>7tf+a%H93AIooBxZN#n@ji_e+o4{RIwN_&W#ok6_GR74aF)uTlaVhEe zy?jHf*KhDmOB0aIlmRzXz&2R?9VpUnm#hr>zRjlh+qd+5n?qOe1MZjgmLLICe*s(x zy5G9F%i6chm#@P&=@|i!Q)R&Qe<*;PEK=^BG+Hj)EZYYSht0<6_(#nO@7i(SL)ZC8 z7Isl@s5RsY^~c`C^yhoDT>TjHUC(HF@CB9^Qwe;X%gBNPdKVTW4ZWzb{v`T_vRZ~> zDs=BIfL65QXKoCzC38ndQrC%E(t(a#nCFeE2nW{o&L2SeUMttjtNw9|+(fOh3k9+5 zC_L4H!t-4zyd)Ct_5P4Dh1>^|W%D&NbNb}-B_$;v{9ZS1-IC4gUA;Wl+IzFf){0F| zR@@rr$rAzEq?xVBS{lZx0NKUZeV=Z|r_$0_t6QOp#-xh6W#Ve;Y8AV-Fk|Gv0qonp zg=g1dD2Q81!LDxP93MbQ<}swrBStt8HPILb|{xssxH1S>B7(#lTih&;X37% z_O@tLlVywNGGst6n$-RlJ@v9%^mJ5~8CBGZRD68Szgdf<_SeIr)*`96IFs9t{5h9g zol6hva6YjKQE{e3Uu?y>ga%~iNH=`nCIGucKy@u80;VOUyTxk(U1Ejz3HK51KvD5g z0p{Uieo=GbJjI2H4C)~tc`5vFc@m44v4HN+0=hSSI&ejR_mo=zaUMa$d$l3n!kstm zI+J$kA}ej(Sl7&sD0@$ydU)|z_@RJqiU6+k6o_K!p^?42$e_BtPBq4chcWfs1$sN$ zkrUtv-J~b`c7QR%csZaavn(Ci=NK%~tUo&}J=yOZ%!Q7FNu9QmYn=uVWF*@W(pB!? zmDHr5BY=D0X`4@gE4`K=E2Y|#&%=p%9L&CZe(Xy0<;2rKuBCkn%;QOZGRRoknV_X! z7Il>}?7QOi8CZYImxb?UhOzIVFOx1>u;Pw|0IY?8uDP&<0B-IHJz_Rb_bXq@8!Q%OAyi(E#NKM0E=5+Booj?KG0Ac?$ z3B2ia5D@O1nMKE}EJELA(M7;F;#oRA@7i%4_a7ChcA@O`2TRZuz?GU6eD0>uRfn7-=j2{GFEiE$7A!88>t|G5fai?D`=JF0Ua!sy~@?El3+>LfVvy zWbg41Cxn-MIBYN)yr-)te`bSy8nXWa{gw?E{Kg9)fnmI^ImUrFLN>J8!kTh zh8r)caq4yx4qmnQ4P5U$m@uOX(#9t$$-900 zuB3#kQ&WrmPeNsom3k^jpgku*drUz1;KLyHB>S;D$%nnkzC=mTP4eZ)W50JvSAMs! zadXXNkdaxjntHmpo=%frJbT})AVK#%aHW(R zBcxd*~%=h0_!p71ZM<-`2%o<|R zuo8PG*-&~(fcAJh3Qn~b3AeKVZZ8>d3lm3E{CJ93^LFmvTa2}7MYL4PQKM!JY@A&2 z3+;xJPcYS*%KP>j2(R*sB4QUR7NVjec6U8n zpWWS^&-U4!&v+(wCml+6=Or$zZ|_0;cq1UCqJP)#x4d}o+%sq9&aByIpS|~K1^XqP z;I+dB?i;%z>To~YAKwK^68W$U{TCo7Cnv9Oq}j7tNh6P5?b}FqtXhnhwigk0XFZb7 zld-X{4N^9lK)SjTViuP{%vNJ09&Ut$Gi{LkocixL4Jl#QAcGW79y~x-vxbSfI+9}= z+Dc8idGY>o3Z0_rt#uUT&zse)iu0#AWhTv6otzMg)P(;};E9Wg#krHm(4$j3l+x3J zy1e9)j<)g^9Ygi@;x@klh7i%DxiVs7FCqc%5Xx_ULTJP#JadzWoxdI&14`k&UnMvM zn7}u-7^JCW4X2)_t#;Elj**z2A)fqX@gAaA4h4LH1nC(_(!4U$usC zYugdhHs)}zTMN&sSHfwNYM5)*7~9sag{?$rgf3p@JGNd-cKdkhJ87 zJHCBzqCu1Hr;CNJED>xz%0D!ZiaMf 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 literal 0 HcmV?d00001 diff --git a/assets/res/battleGameMonster/spine/小怪X5/小怪X5.png.meta b/assets/res/battleGameMonster/spine/小怪X5/小怪X5.png.meta new file mode 100644 index 0000000..c72f3b7 --- /dev/null +++ b/assets/res/battleGameMonster/spine/小怪X5/小怪X5.png.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.27", + "importer": "image", + "imported": true, + "uuid": "7368e9f2-8522-4425-b272-a68dfa117576", + "files": [ + ".json", + ".png" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "7368e9f2-8522-4425-b272-a68dfa117576@6c48a", + "displayName": "小怪X5", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "imageUuidOrDatabaseUri": "7368e9f2-8522-4425-b272-a68dfa117576", + "isUuid": true, + "visible": false, + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0 + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "7368e9f2-8522-4425-b272-a68dfa117576@f9941", + "displayName": "小怪X5", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 348, + "height": 142, + "rawWidth": 348, + "rawHeight": 142, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -174, + -71, + 0, + 174, + -71, + 0, + -174, + 71, + 0, + 174, + 71, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 0, + 142, + 348, + 142, + 0, + 0, + 348, + 0 + ], + "nuv": [ + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1 + ], + "minPos": [ + -174, + -71, + 0 + ], + "maxPos": [ + 174, + 71, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "7368e9f2-8522-4425-b272-a68dfa117576@6c48a", + "atlasUuid": "", + "trimType": "auto" + }, + "ver": "1.0.12", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": false, + "hasAlpha": true, + "redirect": "7368e9f2-8522-4425-b272-a68dfa117576@6c48a" + } +} diff --git a/assets/res/comm/texture/bg/暂停游戏.png b/assets/res/comm/texture/bg/暂停游戏.png new file mode 100644 index 0000000000000000000000000000000000000000..a8d725dd9ee2ba7fd6ac7dd0c0f2989b3f32f941 GIT binary patch literal 24810 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 0)) continue; - jobs.push({ grids: group, num }); + jobs.push({ camp: track.camp, grids: group, num, heroType }); } + this._tipCamps.length = 0; if (jobs.length <= 0) { this._hideTips(); return; @@ -249,18 +276,24 @@ export class MapAreaUnlock { } for (let i = 0; i < jobs.length; i++) { const tip = this._tips[i]; - if (!tip?.isValid) continue; + if (!tip?.isValid) { + this._tipCamps.push(0); + continue; + } const numNode = tip.getChildByName(LOCK_TIP_NUM); const label = numNode?.getComponent(Label); if (!label) { console.warn('[MapAreaUnlock] 格子锁缺少 num Label'); tip.active = false; + this._tipCamps.push(0); continue; } label.string = String(jobs[i].num); + this._syncCondIcons(tip, jobs[i].heroType); tip.getComponent(Layout)?.updateLayout(); this._placeTipCenter(tip, jobs[i].grids); tip.active = true; + this._tipCamps.push(jobs[i].camp); } for (let i = jobs.length; i < this._tips.length; i++) { const tip = this._tips[i]; @@ -268,6 +301,70 @@ export class MapAreaUnlock { } } + /** + * 同步解锁条件五行图标:类型 0 不加载;1–5 各挂一张对应图标(锁与数字之间)。 + * @param tip 格子锁气泡 + * @param heroType 当前随机到的 Hero.herotype;0 为无属性限制 + */ + private _syncCondIcons(tip: Node, heroType: number): void { + this._clearCondIcons(tip); + const names = this._condIconNames(heroType); + if (names.length <= 0) return; + const numNode = tip.getChildByName(LOCK_TIP_NUM); + let insertAt = numNode ? numNode.getSiblingIndex() : tip.children.length; + for (let i = 0; i < names.length; i++) { + const icon = this._makeCondIcon(names[i]); + tip.insertChild(icon, insertAt); + insertAt++; + } + } + + /** + * 当前条件需要展示的五行图标名列表;无限制返回空。 + * @param heroType Hero.herotype + */ + private _condIconNames(heroType: number): string[] { + const type = Math.floor(Number(heroType) || 0); + if (type <= 0) return []; + const name = HERO_TYPE_ICON[type]; + if (!name) { + console.warn('[MapAreaUnlock] 未知解锁 herotype,无法加载条件图标', type); + return []; + } + return [name]; + } + + /** + * 创建单张条件图标节点(SpriteLoad 从 icons 包加载)。 + * @param name 金/木/水/火/土 + */ + private _makeCondIcon(name: string): Node { + const node = new Node(LOCK_TIP_COND + name); + node.layer = 33554432; + const ut = node.addComponent(UITransform); + ut.setContentSize(COND_ICON_SIZE, COND_ICON_SIZE); + const sp = node.addComponent(Sprite); + sp.sizeMode = Sprite.SizeMode.TRIMMED; + node.addComponent(SpriteLoad).setSprite(GPath.ElementAttr(name), GBundle.Items); + return node; + } + + /** + * 清除气泡上动态挂的条件图标(池化复用前必须清干净)。 + * @param tip 格子锁气泡 + */ + private _clearCondIcons(tip: Node): void { + if (!tip?.isValid) return; + const children = tip.children; + for (let i = children.length - 1; i >= 0; i--) { + const child = children[i]; + if (!child?.isValid) continue; + if (child.name.indexOf(LOCK_TIP_COND) !== 0) continue; + child.removeFromParent(); + child.destroy(); + } + } + /** * 某阵营当前待解锁格。 * @param current 当前区域 ID @@ -372,6 +469,7 @@ export class MapAreaUnlock { /** 隐藏全部气泡(本局内复用节点) */ private _hideTips(): void { + this._tipCamps.length = 0; for (let i = 0; i < this._tips.length; i++) { const tip = this._tips[i]; if (!tip?.isValid) continue; @@ -384,10 +482,12 @@ export class MapAreaUnlock { for (let i = 0; i < this._tips.length; i++) { const tip = this._tips[i]; if (!tip || !isValid(tip)) continue; + this._clearCondIcons(tip); if (tip['resKey']) gg.res.putNode(tip); else tip.destroy(); } this._tips.length = 0; + this._tipCamps.length = 0; } /** diff --git a/assets/script/battle/view/AreaUnlockGuidePresenter.ts b/assets/script/battle/view/AreaUnlockGuidePresenter.ts new file mode 100644 index 0000000..62627cc --- /dev/null +++ b/assets/script/battle/view/AreaUnlockGuidePresenter.ts @@ -0,0 +1,369 @@ +import { Color, Graphics, Node, Sorting2D, UITransform, Vec3, isValid, sp } from 'cc'; +import { isElementGlyphType } from 'db://assets/mx/module/merge'; +import { GBundle } from '../../game/ConfigRes'; +import { AI_VIEW_LOCAL_CAMP } from '../ai/runtime/AiCampArea'; +import type { BattleBagSession } from '../bag/BattleBagSession'; +import { WeaponComposeConfigProvider } from '../bag/WeaponComposeConfigProvider'; +import type { MapManager } from '../map/legacy/MapManager'; +import { BattleSpinePlayback } from '../presentation/BattleSpinePlayback'; +import type { TextGrid } from './TextGrid'; + +/** 引导虚线框预制体路径 */ +const FRAME_PATH = 'prefab/障碍物/'; +/** 引导虚线框预制体名 */ +const FRAME_NAME = '引导虚线框'; +/** 虚线框 Spine 动画名 */ +const FRAME_ANIM = 'animation'; +/** 连线层节点名 */ +const LINE_LAYER = 'ui_areaUnlockGuideLine'; +/** 黑白交替每段长度(对齐效果图) */ +const DASH_LEN = 12; +/** 斑马段半宽(实心矩形,避免细 stroke 在深色底上看不见) */ +const DASH_HALF_W = 2.5; +/** 描边相对半宽加宽,保证黑/白段在任意底上都可见 */ +const DASH_OUTLINE_EXTRA = 1.5; +/** 背包端取字块顶边中点的向上偏移 */ +const BAG_TOP_PAD = 2; +/** 气泡端取底边中点的向下偏移 */ +const TIP_BOTTOM_PAD = 2; +/** 虚线框须压在字形之上(textGrid skin Sorting2D order=3,canUpEff=4) */ +const FRAME_SORT_LAYER = 3; +/** 虚线框 Sorting2D order */ +const FRAME_SORT_ORDER = 6; +/** 交替色:黑 */ +const DASH_BLACK = new Color(15, 15, 15, 255); +/** 交替色:白 */ +const DASH_WHITE = new Color(255, 255, 255, 255); + +/** 世界坐标复用 */ +const _bagWorld = new Vec3(); +/** 气泡世界坐标复用 */ +const _tipWorld = new Vec3(); +/** 本地起点复用 */ +const _fromLocal = new Vec3(); +/** 本地终点复用 */ +const _toLocal = new Vec3(); + +/** 解锁引导刷新入参 */ +export interface AreaUnlockGuideRefresh { + /** 本机背包会话 */ + bagSession: BattleBagSession; + /** 地图 */ + map: MapManager; + /** 阵营 CampAreaID;默认本机下方 */ + campAreaId?: number; + /** 取背包槽字块 */ + slotGridAt: (slotIndex: number) => TextGrid | null; + /** 槽位是否可拖(开启且非待开启) */ + canDragSlot: (slotIndex: number) => boolean; + /** 为 true 时只清不显(拖动中 / 入场中) */ + skip?: boolean; +} + +/** + * 背包可解锁当前地图区域时:随机标一个背包字 + 连到格子锁气泡。 + */ +export class AreaUnlockGuidePresenter { + /** 连线层父节点 */ + private _parent: Node | null = null; + /** Graphics 连线层 */ + private _lineLayer: Node | null = null; + private _graphics: Graphics | null = null; + /** 背包虚线框 */ + private _frame: Node | null = null; + /** 当前标识的背包槽;null 表示未展示 */ + private _slotIndex: number | null = null; + + /** + * 绑定连线层父节点(须同时覆盖地图与背包,如 BattleGame 根)。 + * @param parent 父节点 + */ + bind(parent: Node | null): void { + this.unbind(); + if (!parent?.isValid) return; + this._parent = parent; + this._ensureLineLayer(); + } + + /** 释放节点与池资源 */ + unbind(): void { + this.clear(); + if (this._lineLayer?.isValid) { + this._lineLayer.destroy(); + } + this._lineLayer = null; + this._graphics = null; + this._parent = null; + } + + /** 当前标识的背包槽;无引导时 null */ + get slotIndex(): number | null { + return this._slotIndex; + } + + /** 立刻隐藏虚线框与连线 */ + clear(): void { + this._slotIndex = null; + this._releaseFrame(); + if (this._graphics?.isValid) this._graphics.clear(); + if (this._lineLayer?.isValid) this._lineLayer.active = false; + } + + /** + * 按背包与当前解锁条件刷新引导。 + * 原槽仍可解锁时保持不变,避免频繁乱跳。 + */ + refresh(opts: AreaUnlockGuideRefresh): void { + if (opts.skip || !this._parent?.isValid) { + this.clear(); + return; + } + const camp = Math.floor(Number(opts.campAreaId) || AI_VIEW_LOCAL_CAMP); + const tip = opts.map.areaUnlock.tipOf(camp); + if (!tip?.isValid) { + this.clear(); + return; + } + const current = opts.map.areaUnlock.currentId(camp); + if (current <= 0) { + this.clear(); + return; + } + const unlockGrids = opts.map.areaUnlock.gridsOf(current, camp); + if (unlockGrids.length <= 0) { + this.clear(); + return; + } + const probeIndex = unlockGrids[0].Index; + const candidates = this._collectCandidates(opts, probeIndex); + if (candidates.length <= 0) { + this.clear(); + return; + } + let slot = this._slotIndex; + if (slot == null || !this._listHas(candidates, slot)) { + slot = candidates[Math.floor(Math.random() * candidates.length)]; + } + const grid = opts.slotGridAt(slot); + if (!grid?.node?.isValid) { + this.clear(); + return; + } + if (!this._attachFrame(grid.node)) { + this.clear(); + return; + } + this._slotIndex = slot; + this._drawLine(grid.node, tip); + } + + /** + * 收集可解锁当前区域的背包槽。 + * @param opts 刷新入参 + * @param probeIndex 探测用地图格 + */ + private _collectCandidates(opts: AreaUnlockGuideRefresh, probeIndex: number): number[] { + const out: number[] = []; + WeaponComposeConfigProvider.instance.load(); + const provider = WeaponComposeConfigProvider.instance; + const slots = opts.bagSession.getBagSlots(); + for (let i = 0; i < slots.length; i++) { + const slot = slots[i]; + if (!slot) continue; + if (!opts.canDragSlot(i)) continue; + const t = Number(provider.getWeapon2Type(slot.weapon2Id)); + if (!isElementGlyphType(t)) continue; + if (!opts.slotGridAt(i)?.node?.isValid) continue; + if (!opts.bagSession.canUnlockArea(probeIndex, slot.weapon2Id, slot.level)) continue; + out.push(i); + } + return out; + } + + /** + * @param list 候选槽 + * @param slot 槽下标 + */ + private _listHas(list: readonly number[], slot: number): boolean { + for (let i = 0; i < list.length; i++) { + if (list[i] === slot) return true; + } + return false; + } + + /** + * 把虚线框挂到背包字块上并循环播放。 + * @param host 字块节点 + */ + private _attachFrame(host: Node): boolean { + if (!this._frame?.isValid) { + if (typeof gg === 'undefined' || !gg.res?.getNode) { + console.warn('[AreaUnlockGuide] gg.res 未就绪,无法加载引导虚线框'); + return false; + } + const node = gg.res.getNode(FRAME_PATH, FRAME_NAME, GBundle.BattleMap); + if (!node?.isValid) { + console.warn('[AreaUnlockGuide] 缺少引导虚线框预制体', FRAME_NAME); + return false; + } + this._frame = node; + } + const frame = this._frame; + if (!frame.isValid) return false; + frame.layer = host.layer; + if (frame.parent !== host) { + frame.parent = host; + frame.setPosition(0, 0, 0); + frame.setScale(1, 1, 1); + } + frame.setSiblingIndex(host.children.length - 1); + this._applyFrameSorting(frame); + frame.active = true; + const sk = frame.getComponent(sp.Skeleton) ?? frame.getComponentInChildren(sp.Skeleton); + if (sk?.isValid) { + sk.node.layer = host.layer; + BattleSpinePlayback.play(sk, FRAME_ANIM, { loop: true, optional: true }); + } + return true; + } + + /** + * 虚线框加 Sorting2D,避免被 textGrid 字形盖住。 + * @param frame 引导虚线框 + */ + private _applyFrameSorting(frame: Node): void { + let rootSort = frame.getComponent(Sorting2D); + if (!rootSort) rootSort = frame.addComponent(Sorting2D); + rootSort.sortingLayer = FRAME_SORT_LAYER; + rootSort.sortingOrder = FRAME_SORT_ORDER; + const skels = frame.getComponentsInChildren(sp.Skeleton); + for (let i = 0; i < skels.length; i++) { + const n = skels[i]?.node; + if (!n?.isValid) continue; + let sort = n.getComponent(Sorting2D); + if (!sort) sort = n.addComponent(Sorting2D); + sort.sortingLayer = FRAME_SORT_LAYER; + sort.sortingOrder = FRAME_SORT_ORDER; + } + } + + /** 归还虚线框 */ + private _releaseFrame(): void { + const frame = this._frame; + this._frame = null; + if (!frame || !isValid(frame)) return; + const sk = frame.getComponent(sp.Skeleton) ?? frame.getComponentInChildren(sp.Skeleton); + if (sk?.isValid) { + BattleSpinePlayback.clearPendingComplete(sk); + BattleSpinePlayback.resetTracks(sk); + } + if (frame['resKey']) gg.res.putNode(frame); + else frame.destroy(); + } + + /** 确保 Graphics 连线层 */ + private _ensureLineLayer(): void { + const parent = this._parent; + if (!parent?.isValid) return; + let layer = parent.getChildByName(LINE_LAYER); + if (!layer) { + layer = new Node(LINE_LAYER); + layer.layer = parent.layer; + layer.parent = parent; + layer.setPosition(0, 0, 0); + const ut = layer.addComponent(UITransform); + const parentUt = parent.getComponent(UITransform); + if (parentUt) ut.setContentSize(parentUt.contentSize); + else ut.setContentSize(2000, 2000); + ut.setAnchorPoint(0.5, 0.5); + layer.addComponent(Graphics); + } + this._lineLayer = layer; + this._graphics = layer.getComponent(Graphics); + layer.active = false; + } + + /** + * 从背包字顶边中点连到气泡底边中点。 + * @param bagNode 背包字块 + * @param tip 格子锁气泡 + */ + private _drawLine(bagNode: Node, tip: Node): void { + const layer = this._lineLayer; + const g = this._graphics; + if (!layer?.isValid || !g?.isValid) return; + const layerUt = layer.getComponent(UITransform); + if (!layerUt) return; + + const bagUt = bagNode.getComponent(UITransform); + const tipUt = tip.getComponent(UITransform); + const bagHalfH = bagUt ? bagUt.contentSize.height * 0.5 * Math.abs(bagNode.worldScale.y) : 30; + const tipHalfH = tipUt ? tipUt.contentSize.height * 0.5 * Math.abs(tip.worldScale.y) : 20; + + _bagWorld.set(bagNode.worldPosition.x, bagNode.worldPosition.y + bagHalfH + BAG_TOP_PAD, bagNode.worldPosition.z); + _tipWorld.set(tip.worldPosition.x, tip.worldPosition.y - tipHalfH - TIP_BOTTOM_PAD, tip.worldPosition.z); + layerUt.convertToNodeSpaceAR(_bagWorld, _fromLocal); + layerUt.convertToNodeSpaceAR(_tipWorld, _toLocal); + + g.clear(); + this._fillZebraDash(g, _fromLocal.x, _fromLocal.y, _toLocal.x, _toLocal.y); + layer.active = true; + layer.setSiblingIndex(layer.parent!.children.length - 1); + } + + /** + * 黑白段交替实心绳:每段先画反色描边再画本色,深色/浅色底上都清晰。 + * @param g Graphics + * @param x1 起点 x + * @param y1 起点 y + * @param x2 终点 x + * @param y2 终点 y + */ + private _fillZebraDash(g: Graphics, x1: number, y1: number, x2: number, y2: number): void { + const dx = x2 - x1; + const dy = y2 - y1; + const len = Math.sqrt(dx * dx + dy * dy); + if (len < 1) return; + const ux = dx / len; + const uy = dy / len; + let d = 0; + let useBlack = true; + while (d < len) { + const d1 = Math.min(d + DASH_LEN, len); + const fill = useBlack ? DASH_BLACK : DASH_WHITE; + const outline = useBlack ? DASH_WHITE : DASH_BLACK; + this._fillDashSeg(g, x1, y1, ux, uy, d, d1, DASH_HALF_W + DASH_OUTLINE_EXTRA, outline); + this._fillDashSeg(g, x1, y1, ux, uy, d, d1, DASH_HALF_W, fill); + d = d1; + useBlack = !useBlack; + } + } + + /** + * 沿路径画一段实心矩形(比 stroke 短段更稳、更粗)。 + * @param g Graphics + * @param x1 路径起点 x + * @param y1 路径起点 y + * @param ux 单位方向 x + * @param uy 单位方向 y + * @param d0 段起点路程 + * @param d1 段终点路程 + * @param halfW 半宽 + * @param color 填充色 + */ + private _fillDashSeg(g: Graphics, x1: number, y1: number, ux: number, uy: number, d0: number, d1: number, halfW: number, color: Color): void { + const ax = x1 + ux * d0; + const ay = y1 + uy * d0; + const bx = x1 + ux * d1; + const by = y1 + uy * d1; + const px = -uy * halfW; + const py = ux * halfW; + g.fillColor = color; + g.moveTo(ax + px, ay + py); + g.lineTo(bx + px, by + py); + g.lineTo(bx - px, by - py); + g.lineTo(ax - px, ay - py); + g.close(); + g.fill(); + } +} diff --git a/assets/script/battle/view/AreaUnlockGuidePresenter.ts.meta b/assets/script/battle/view/AreaUnlockGuidePresenter.ts.meta new file mode 100644 index 0000000..465bd4d --- /dev/null +++ b/assets/script/battle/view/AreaUnlockGuidePresenter.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.24", + "importer": "typescript", + "imported": true, + "uuid": "a7c3e91b-2d4f-4a8e-9b1c-6f0e8d5a3c27", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/script/battle/view/CocosBagBoardView.ts b/assets/script/battle/view/CocosBagBoardView.ts index 397e312..444eb33 100644 --- a/assets/script/battle/view/CocosBagBoardView.ts +++ b/assets/script/battle/view/CocosBagBoardView.ts @@ -87,10 +87,12 @@ import { isEnemyMonsterWalkGrid, } from '../map/MapPathQueries'; import { MapDragGuideHelper, type DragPlacementHint } from './MapDragGuideHelper'; +import { AreaUnlockGuidePresenter } from './AreaUnlockGuidePresenter'; import { LevelUpTextFloater } from './GridUpgradeSpineEffect'; import { BattleAudio } from '../audio/BattleAudio'; import { BagTextDragDebugLog } from '../debug/BagTextDragDebugLog'; import { AiBattleBridge } from '../ai/bridge/AiBattleBridge'; +import { AI_VIEW_LOCAL_CAMP } from '../ai/runtime/AiCampArea'; import { HeadIconManager } from '../../manager/HeadIconManager'; import 'db://assets/mx/extension/NodeDragExt'; @@ -173,6 +175,8 @@ export class CocosBagBoardView { private _prepType3DraggingIndex: number | null = null; private _linePresenter = new DragPlaceLinePresenter(); private _rangePresenter = new AttackRangePreviewPresenter(); + /** 背包可解锁地图区域时的连线 / 虚线框引导 */ + private _unlockGuide = new AreaUnlockGuidePresenter(); private _activeDrag: { grid: TextGrid; source: DragSource; @@ -1274,6 +1278,7 @@ export class CocosBagBoardView { this._pathFlow = pathFlow ?? null; this._linePresenter.bind(this._lineNode); this._rangePresenter.bind(rangeNode ?? null, mapRoot?.parent ?? null); + this._unlockGuide.bind(this._lineNode?.parent ?? mapRoot?.parent ?? null); // 槽位下标与格子下标(gridN → N)一致,槽数按最大格子下标 + 1 分配(slot0 对应不到格子,保持空) let maxLandIndex = 0; @@ -1437,6 +1442,7 @@ export class CocosBagBoardView { } catch (e) { console.log('[CocosBagBoardView] _clearDragGuide failed', String(e)); } + this._unlockGuide.unbind(); this._linePresenter.unbind(); this._rangePresenter.unbind(); this._pathFlow?.endDrag(); @@ -3204,6 +3210,9 @@ export class CocosBagBoardView { this._rebuildFromSession(); return; } + if (this._unlockGuide.slotIndex === source.slotIndex) { + this._unlockGuide.clear(); + } } else if (source.kind === 'map') { const mapIndex = this._resolveMapGridIndexForTextGrid(grid); if (mapIndex == null) { @@ -4604,6 +4613,7 @@ if (weapon2Id === GRID_WEAPON2_ID) return true; fromWorld?: Readonly | null, ): void { if (!this._bagSession || !this._bagList) return; + this._unlockGuide.clear(); this._invalidatePlaceFlights(); this._clearTextSelect(); this._bagEntrancePlaying = playBagEntrance; @@ -4794,6 +4804,7 @@ if (weapon2Id === GRID_WEAPON2_ID) return true; fromWorld?: Readonly | null, ): void { if (!this._bagSession || !this._map) return; + this._unlockGuide.clear(); // 先作废飞行中的 drop 回调,再改盘面;否则 onAnimDone 会对新背包再 drop → 空槽 this._invalidatePlaceFlights(); if (this._deploySync && this._map.gridsInitialized) { @@ -5121,6 +5132,7 @@ if (weapon2Id === GRID_WEAPON2_ID) return true; return; } this._clearAllCanUpgradeHints(); + this._refreshAreaUnlockGuide(); if (!this._bagSession) return; WeaponComposeConfigProvider.instance.load(); @@ -5195,6 +5207,22 @@ if (weapon2Id === GRID_WEAPON2_ID) return true; for (const g of this._mapGrids.values()) g.setSleepFx(false); } + /** 背包有可解锁当前地图区域的字时,显示虚线框与连线 */ + private _refreshAreaUnlockGuide(): void { + if (!this._bagSession || !this._map) { + this._unlockGuide.clear(); + return; + } + this._unlockGuide.refresh({ + bagSession: this._bagSession, + map: this._map, + campAreaId: AI_VIEW_LOCAL_CAMP, + slotGridAt: (slotIndex) => this._slotGrids.get(slotIndex) ?? null, + canDragSlot: (slotIndex) => this._land.stateOf(slotIndex) === TextListCellState.Open, + skip: this._activeDrag != null || this._bagEntrancePlaying || !this._canDrag(), + }); + } + private _playBagUpgradeEffect(slotIndex: number): void { BattleAudio.playUpgrade(); this._playLevelUpTextForBag(slotIndex); diff --git a/assets/script/game/ConfigRes.ts b/assets/script/game/ConfigRes.ts index d803c64..498cfd5 100644 --- a/assets/script/game/ConfigRes.ts +++ b/assets/script/game/ConfigRes.ts @@ -162,6 +162,8 @@ export class GPath { static ShopSkillTitle(name: string | number) { return "shopSkillTitle/" + name; } /**通用仙桃图标(icons/img/仙桃) */ static CommPeach() { return "img/仙桃"; } + /** 五行属性图标(icons/img/金|木|水|火|土) */ + static ElementAttr(name: string) { return "img/" + name; } /**障碍物 */ static ObstacleItem(name: string | number) { return "texture/摆放路障/" + name; } /**障碍物预制体 */ diff --git a/assets/script/game/ResPkgBuilder.ts b/assets/script/game/ResPkgBuilder.ts index 0dd1283..de32a25 100644 --- a/assets/script/game/ResPkgBuilder.ts +++ b/assets/script/game/ResPkgBuilder.ts @@ -43,6 +43,8 @@ export class ResPkgBuilder { { name: mapPrefabName, bundle: B.BattleMap, path: 'prefab/地图/', type: Prefab }, { name: '出怪口', bundle: B.BattleMap, path: 'prefab/障碍物/', type: Prefab }, { name: 'levelUpText', bundle: B.BattleMap, path: 'prefab/障碍物/', type: Prefab }, + /** 背包可解锁地图区域时的虚线高亮框 */ + { name: '引导虚线框', bundle: B.BattleMap, path: 'prefab/障碍物/', type: Prefab }, { name: 'monsterTemplate', bundle: B.BattleGameMonster, path: PrefabPath, type: Prefab }, { name: 'textGrid', bundle: B.BattleGame, path: PrefabPath, type: Prefab }, /** 地图区域解锁条件气泡 */