From b189305423b89f0fd502363d8874b7c2a948eb29 Mon Sep 17 00:00:00 2001 From: guanchao <18612113337@163.com> Date: Thu, 10 Sep 2026 10:43:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E6=89=8B=E7=A4=BC=E5=8C=85?= =?UTF-8?q?=E5=8F=8A=E4=B8=83=E6=97=A5=E7=AD=BE=E5=88=B0=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/action_bundle/img/newbieGift.meta | 2 +- assets/gacha_bundle/img/cat.meta | 0 assets/seven_day_gift/SevenDayGiftReward.ts | 4 + .../seven_day_gift/prefab/sevenDayGift.prefab | 567 +++++++++--------- assets/seven_day_gift/texture.meta | 13 + tools/test-seven-day-stamina.cjs | 84 +++ 6 files changed, 401 insertions(+), 269 deletions(-) delete mode 100644 assets/gacha_bundle/img/cat.meta create mode 100644 assets/seven_day_gift/texture.meta create mode 100644 tools/test-seven-day-stamina.cjs diff --git a/assets/action_bundle/img/newbieGift.meta b/assets/action_bundle/img/newbieGift.meta index 4a6381d..0adea4c 100644 --- a/assets/action_bundle/img/newbieGift.meta +++ b/assets/action_bundle/img/newbieGift.meta @@ -1,6 +1,6 @@ { "ver": "1.1.3", - "uuid": "c8889cf7-1db7-4299-935a-9a4da43eadd8", + "uuid": "8c37a8a1-86b2-49c3-bab2-60697c0ad3bf", "importer": "folder", "isBundle": false, "bundleName": "", diff --git a/assets/gacha_bundle/img/cat.meta b/assets/gacha_bundle/img/cat.meta deleted file mode 100644 index e69de29..0000000 diff --git a/assets/seven_day_gift/SevenDayGiftReward.ts b/assets/seven_day_gift/SevenDayGiftReward.ts index a991284..6df821a 100644 --- a/assets/seven_day_gift/SevenDayGiftReward.ts +++ b/assets/seven_day_gift/SevenDayGiftReward.ts @@ -95,6 +95,10 @@ export default class SevenDayGiftReward { if (home && home.updateCoin) { home.updateCoin(); } + if (infiniteHealth > 0 && home && typeof home.updatePower === "function") { + // 首次获得无限体力时也要切换主页显示并启动倒计时。 + home.updatePower(); + } if (!propData) { callback(true); diff --git a/assets/seven_day_gift/prefab/sevenDayGift.prefab b/assets/seven_day_gift/prefab/sevenDayGift.prefab index 15aef34..c7d9f27 100644 --- a/assets/seven_day_gift/prefab/sevenDayGift.prefab +++ b/assets/seven_day_gift/prefab/sevenDayGift.prefab @@ -21,20 +21,20 @@ "__id__": 2 }, { - "__id__": 6 + "__id__": 7 } ], "_active": true, "_components": [ { - "__id__": 162 + "__id__": 163 }, { - "__id__": 163 + "__id__": 164 } ], "_prefab": { - "__id__": 164 + "__id__": 165 }, "_opacity": 255, "_color": { @@ -98,10 +98,13 @@ }, { "__id__": 4 + }, + { + "__id__": 5 } ], "_prefab": { - "__id__": 5 + "__id__": 6 }, "_opacity": 185, "_color": { @@ -192,6 +195,33 @@ "_enabled": true, "_id": "" }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 45, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 1080, + "_originalHeight": 1920, + "_id": "" + }, { "__type__": "cc.PrefabInfo", "root": { @@ -212,26 +242,26 @@ }, "_children": [ { - "__id__": 7 + "__id__": 8 }, { - "__id__": 16 + "__id__": 17 }, { - "__id__": 22 + "__id__": 23 }, { - "__id__": 157 + "__id__": 158 } ], "_active": true, "_components": [ { - "__id__": 160 + "__id__": 161 } ], "_prefab": { - "__id__": 161 + "__id__": 162 }, "_opacity": 255, "_color": { @@ -285,24 +315,24 @@ "_name": "header", "_objFlags": 0, "_parent": { - "__id__": 6 + "__id__": 7 }, "_children": [ { - "__id__": 8 + "__id__": 9 }, { - "__id__": 11 + "__id__": 12 } ], "_active": true, "_components": [ { - "__id__": 14 + "__id__": 15 } ], "_prefab": { - "__id__": 15 + "__id__": 16 }, "_opacity": 255, "_color": { @@ -356,17 +386,17 @@ "_name": "title", "_objFlags": 0, "_parent": { - "__id__": 7 + "__id__": 8 }, "_children": [], "_active": false, "_components": [ { - "__id__": 9 + "__id__": 10 } ], "_prefab": { - "__id__": 10 + "__id__": 11 }, "_opacity": 255, "_color": { @@ -420,7 +450,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 8 + "__id__": 9 }, "_enabled": true, "_materials": [ @@ -464,17 +494,17 @@ "_name": "subtitle", "_objFlags": 0, "_parent": { - "__id__": 7 + "__id__": 8 }, "_children": [], "_active": false, "_components": [ { - "__id__": 12 + "__id__": 13 } ], "_prefab": { - "__id__": 13 + "__id__": 14 }, "_opacity": 255, "_color": { @@ -528,7 +558,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 11 + "__id__": 12 }, "_enabled": true, "_materials": [ @@ -572,7 +602,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 7 + "__id__": 8 }, "_enabled": true, "_materials": [ @@ -615,21 +645,21 @@ "_name": "close", "_objFlags": 0, "_parent": { - "__id__": 6 + "__id__": 7 }, "_children": [ { - "__id__": 17 + "__id__": 18 } ], "_active": false, "_components": [ { - "__id__": 20 + "__id__": 21 } ], "_prefab": { - "__id__": 21 + "__id__": 22 }, "_opacity": 255, "_color": { @@ -683,17 +713,17 @@ "_name": "closeLabel", "_objFlags": 0, "_parent": { - "__id__": 16 + "__id__": 17 }, "_children": [], "_active": false, "_components": [ { - "__id__": 18 + "__id__": 19 } ], "_prefab": { - "__id__": 19 + "__id__": 20 }, "_opacity": 255, "_color": { @@ -747,7 +777,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 17 + "__id__": 18 }, "_enabled": true, "_materials": [ @@ -791,7 +821,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 16 + "__id__": 17 }, "_enabled": true, "_materials": [ @@ -834,35 +864,35 @@ "_name": "cards", "_objFlags": 0, "_parent": { - "__id__": 6 + "__id__": 7 }, "_children": [ { - "__id__": 23 + "__id__": 24 }, { - "__id__": 42 + "__id__": 43 }, { - "__id__": 61 + "__id__": 62 }, { - "__id__": 80 + "__id__": 81 }, { - "__id__": 99 + "__id__": 100 }, { - "__id__": 118 + "__id__": 119 }, { - "__id__": 137 + "__id__": 138 } ], "_active": true, "_components": [], "_prefab": { - "__id__": 156 + "__id__": 157 }, "_opacity": 255, "_color": { @@ -916,30 +946,30 @@ "_name": "giftDay1", "_objFlags": 0, "_parent": { - "__id__": 22 + "__id__": 23 }, "_children": [ { - "__id__": 24 + "__id__": 25 }, { - "__id__": 28 + "__id__": 29 }, { - "__id__": 34 + "__id__": 35 }, { - "__id__": 37 + "__id__": 38 } ], "_active": true, "_components": [ { - "__id__": 40 + "__id__": 41 } ], "_prefab": { - "__id__": 41 + "__id__": 42 }, "_opacity": 255, "_color": { @@ -993,20 +1023,20 @@ "_name": "dayLabel", "_objFlags": 0, "_parent": { - "__id__": 23 + "__id__": 24 }, "_children": [], "_active": true, "_components": [ { - "__id__": 25 + "__id__": 26 }, { - "__id__": 26 + "__id__": 27 } ], "_prefab": { - "__id__": 27 + "__id__": 28 }, "_opacity": 255, "_color": { @@ -1060,7 +1090,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 24 + "__id__": 25 }, "_enabled": true, "_materials": [ @@ -1093,7 +1123,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 24 + "__id__": 25 }, "_enabled": true, "_color": { @@ -1122,21 +1152,21 @@ "_name": "rewardIcon", "_objFlags": 0, "_parent": { - "__id__": 23 + "__id__": 24 }, "_children": [ { - "__id__": 29 + "__id__": 30 } ], "_active": true, "_components": [ { - "__id__": 32 + "__id__": 33 } ], "_prefab": { - "__id__": 33 + "__id__": 34 }, "_opacity": 255, "_color": { @@ -1190,17 +1220,17 @@ "_name": "iconLabel", "_objFlags": 0, "_parent": { - "__id__": 28 + "__id__": 29 }, "_children": [], "_active": false, "_components": [ { - "__id__": 30 + "__id__": 31 } ], "_prefab": { - "__id__": 31 + "__id__": 32 }, "_opacity": 255, "_color": { @@ -1254,7 +1284,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 29 + "__id__": 30 }, "_enabled": true, "_materials": [ @@ -1298,7 +1328,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 28 + "__id__": 29 }, "_enabled": true, "_materials": [ @@ -1341,17 +1371,17 @@ "_name": "rewardLabel", "_objFlags": 0, "_parent": { - "__id__": 23 + "__id__": 24 }, "_children": [], "_active": false, "_components": [ { - "__id__": 35 + "__id__": 36 } ], "_prefab": { - "__id__": 36 + "__id__": 37 }, "_opacity": 255, "_color": { @@ -1405,7 +1435,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 34 + "__id__": 35 }, "_enabled": true, "_materials": [ @@ -1449,17 +1479,17 @@ "_name": "statusLabel", "_objFlags": 0, "_parent": { - "__id__": 23 + "__id__": 24 }, "_children": [], "_active": false, "_components": [ { - "__id__": 38 + "__id__": 39 } ], "_prefab": { - "__id__": 39 + "__id__": 40 }, "_opacity": 255, "_color": { @@ -1513,7 +1543,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 37 + "__id__": 38 }, "_enabled": true, "_materials": [ @@ -1557,7 +1587,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 23 + "__id__": 24 }, "_enabled": true, "_materials": [ @@ -1600,30 +1630,30 @@ "_name": "giftDay2", "_objFlags": 0, "_parent": { - "__id__": 22 + "__id__": 23 }, "_children": [ { - "__id__": 43 + "__id__": 44 }, { - "__id__": 47 + "__id__": 48 }, { - "__id__": 53 + "__id__": 54 }, { - "__id__": 56 + "__id__": 57 } ], "_active": true, "_components": [ { - "__id__": 59 + "__id__": 60 } ], "_prefab": { - "__id__": 60 + "__id__": 61 }, "_opacity": 255, "_color": { @@ -1677,20 +1707,20 @@ "_name": "dayLabel", "_objFlags": 0, "_parent": { - "__id__": 42 + "__id__": 43 }, "_children": [], "_active": true, "_components": [ { - "__id__": 44 + "__id__": 45 }, { - "__id__": 45 + "__id__": 46 } ], "_prefab": { - "__id__": 46 + "__id__": 47 }, "_opacity": 255, "_color": { @@ -1744,7 +1774,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 43 + "__id__": 44 }, "_enabled": true, "_materials": [ @@ -1777,7 +1807,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 43 + "__id__": 44 }, "_enabled": true, "_color": { @@ -1806,21 +1836,21 @@ "_name": "rewardIcon", "_objFlags": 0, "_parent": { - "__id__": 42 + "__id__": 43 }, "_children": [ { - "__id__": 48 + "__id__": 49 } ], "_active": true, "_components": [ { - "__id__": 51 + "__id__": 52 } ], "_prefab": { - "__id__": 52 + "__id__": 53 }, "_opacity": 255, "_color": { @@ -1874,17 +1904,17 @@ "_name": "iconLabel", "_objFlags": 0, "_parent": { - "__id__": 47 + "__id__": 48 }, "_children": [], "_active": false, "_components": [ { - "__id__": 49 + "__id__": 50 } ], "_prefab": { - "__id__": 50 + "__id__": 51 }, "_opacity": 255, "_color": { @@ -1938,7 +1968,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 48 + "__id__": 49 }, "_enabled": true, "_materials": [ @@ -1982,7 +2012,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 47 + "__id__": 48 }, "_enabled": true, "_materials": [ @@ -2025,17 +2055,17 @@ "_name": "rewardLabel", "_objFlags": 0, "_parent": { - "__id__": 42 + "__id__": 43 }, "_children": [], "_active": false, "_components": [ { - "__id__": 54 + "__id__": 55 } ], "_prefab": { - "__id__": 55 + "__id__": 56 }, "_opacity": 255, "_color": { @@ -2089,7 +2119,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 53 + "__id__": 54 }, "_enabled": true, "_materials": [ @@ -2133,17 +2163,17 @@ "_name": "statusLabel", "_objFlags": 0, "_parent": { - "__id__": 42 + "__id__": 43 }, "_children": [], "_active": false, "_components": [ { - "__id__": 57 + "__id__": 58 } ], "_prefab": { - "__id__": 58 + "__id__": 59 }, "_opacity": 255, "_color": { @@ -2197,7 +2227,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 56 + "__id__": 57 }, "_enabled": true, "_materials": [ @@ -2241,7 +2271,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 42 + "__id__": 43 }, "_enabled": true, "_materials": [ @@ -2284,30 +2314,30 @@ "_name": "giftDay3", "_objFlags": 0, "_parent": { - "__id__": 22 + "__id__": 23 }, "_children": [ { - "__id__": 62 + "__id__": 63 }, { - "__id__": 66 + "__id__": 67 }, { - "__id__": 72 + "__id__": 73 }, { - "__id__": 75 + "__id__": 76 } ], "_active": true, "_components": [ { - "__id__": 78 + "__id__": 79 } ], "_prefab": { - "__id__": 79 + "__id__": 80 }, "_opacity": 255, "_color": { @@ -2361,20 +2391,20 @@ "_name": "dayLabel", "_objFlags": 0, "_parent": { - "__id__": 61 + "__id__": 62 }, "_children": [], "_active": true, "_components": [ { - "__id__": 63 + "__id__": 64 }, { - "__id__": 64 + "__id__": 65 } ], "_prefab": { - "__id__": 65 + "__id__": 66 }, "_opacity": 255, "_color": { @@ -2428,7 +2458,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 62 + "__id__": 63 }, "_enabled": true, "_materials": [ @@ -2461,7 +2491,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 62 + "__id__": 63 }, "_enabled": true, "_color": { @@ -2490,21 +2520,21 @@ "_name": "rewardIcon", "_objFlags": 0, "_parent": { - "__id__": 61 + "__id__": 62 }, "_children": [ { - "__id__": 67 + "__id__": 68 } ], "_active": true, "_components": [ { - "__id__": 70 + "__id__": 71 } ], "_prefab": { - "__id__": 71 + "__id__": 72 }, "_opacity": 255, "_color": { @@ -2558,17 +2588,17 @@ "_name": "iconLabel", "_objFlags": 0, "_parent": { - "__id__": 66 + "__id__": 67 }, "_children": [], "_active": false, "_components": [ { - "__id__": 68 + "__id__": 69 } ], "_prefab": { - "__id__": 69 + "__id__": 70 }, "_opacity": 255, "_color": { @@ -2622,7 +2652,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 67 + "__id__": 68 }, "_enabled": true, "_materials": [ @@ -2666,7 +2696,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 66 + "__id__": 67 }, "_enabled": true, "_materials": [ @@ -2709,17 +2739,17 @@ "_name": "rewardLabel", "_objFlags": 0, "_parent": { - "__id__": 61 + "__id__": 62 }, "_children": [], "_active": false, "_components": [ { - "__id__": 73 + "__id__": 74 } ], "_prefab": { - "__id__": 74 + "__id__": 75 }, "_opacity": 255, "_color": { @@ -2773,7 +2803,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 72 + "__id__": 73 }, "_enabled": true, "_materials": [ @@ -2817,17 +2847,17 @@ "_name": "statusLabel", "_objFlags": 0, "_parent": { - "__id__": 61 + "__id__": 62 }, "_children": [], "_active": false, "_components": [ { - "__id__": 76 + "__id__": 77 } ], "_prefab": { - "__id__": 77 + "__id__": 78 }, "_opacity": 255, "_color": { @@ -2881,7 +2911,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 75 + "__id__": 76 }, "_enabled": true, "_materials": [ @@ -2925,7 +2955,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 61 + "__id__": 62 }, "_enabled": true, "_materials": [ @@ -2968,30 +2998,30 @@ "_name": "giftDay4", "_objFlags": 0, "_parent": { - "__id__": 22 + "__id__": 23 }, "_children": [ { - "__id__": 81 + "__id__": 82 }, { - "__id__": 85 + "__id__": 86 }, { - "__id__": 91 + "__id__": 92 }, { - "__id__": 94 + "__id__": 95 } ], "_active": true, "_components": [ { - "__id__": 97 + "__id__": 98 } ], "_prefab": { - "__id__": 98 + "__id__": 99 }, "_opacity": 255, "_color": { @@ -3045,20 +3075,20 @@ "_name": "dayLabel", "_objFlags": 0, "_parent": { - "__id__": 80 + "__id__": 81 }, "_children": [], "_active": true, "_components": [ { - "__id__": 82 + "__id__": 83 }, { - "__id__": 83 + "__id__": 84 } ], "_prefab": { - "__id__": 84 + "__id__": 85 }, "_opacity": 255, "_color": { @@ -3112,7 +3142,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 81 + "__id__": 82 }, "_enabled": true, "_materials": [ @@ -3145,7 +3175,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 81 + "__id__": 82 }, "_enabled": true, "_color": { @@ -3174,21 +3204,21 @@ "_name": "rewardIcon", "_objFlags": 0, "_parent": { - "__id__": 80 + "__id__": 81 }, "_children": [ { - "__id__": 86 + "__id__": 87 } ], "_active": true, "_components": [ { - "__id__": 89 + "__id__": 90 } ], "_prefab": { - "__id__": 90 + "__id__": 91 }, "_opacity": 255, "_color": { @@ -3242,17 +3272,17 @@ "_name": "iconLabel", "_objFlags": 0, "_parent": { - "__id__": 85 + "__id__": 86 }, "_children": [], "_active": false, "_components": [ { - "__id__": 87 + "__id__": 88 } ], "_prefab": { - "__id__": 88 + "__id__": 89 }, "_opacity": 255, "_color": { @@ -3306,7 +3336,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 86 + "__id__": 87 }, "_enabled": true, "_materials": [ @@ -3350,7 +3380,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 85 + "__id__": 86 }, "_enabled": true, "_materials": [ @@ -3393,17 +3423,17 @@ "_name": "rewardLabel", "_objFlags": 0, "_parent": { - "__id__": 80 + "__id__": 81 }, "_children": [], "_active": false, "_components": [ { - "__id__": 92 + "__id__": 93 } ], "_prefab": { - "__id__": 93 + "__id__": 94 }, "_opacity": 255, "_color": { @@ -3457,7 +3487,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 91 + "__id__": 92 }, "_enabled": true, "_materials": [ @@ -3501,17 +3531,17 @@ "_name": "statusLabel", "_objFlags": 0, "_parent": { - "__id__": 80 + "__id__": 81 }, "_children": [], "_active": false, "_components": [ { - "__id__": 95 + "__id__": 96 } ], "_prefab": { - "__id__": 96 + "__id__": 97 }, "_opacity": 255, "_color": { @@ -3565,7 +3595,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 94 + "__id__": 95 }, "_enabled": true, "_materials": [ @@ -3609,7 +3639,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 80 + "__id__": 81 }, "_enabled": true, "_materials": [ @@ -3652,30 +3682,30 @@ "_name": "giftDay5", "_objFlags": 0, "_parent": { - "__id__": 22 + "__id__": 23 }, "_children": [ { - "__id__": 100 + "__id__": 101 }, { - "__id__": 104 + "__id__": 105 }, { - "__id__": 110 + "__id__": 111 }, { - "__id__": 113 + "__id__": 114 } ], "_active": true, "_components": [ { - "__id__": 116 + "__id__": 117 } ], "_prefab": { - "__id__": 117 + "__id__": 118 }, "_opacity": 255, "_color": { @@ -3729,20 +3759,20 @@ "_name": "dayLabel", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 100 }, "_children": [], "_active": true, "_components": [ { - "__id__": 101 + "__id__": 102 }, { - "__id__": 102 + "__id__": 103 } ], "_prefab": { - "__id__": 103 + "__id__": 104 }, "_opacity": 255, "_color": { @@ -3796,7 +3826,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 100 + "__id__": 101 }, "_enabled": true, "_materials": [ @@ -3829,7 +3859,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 100 + "__id__": 101 }, "_enabled": true, "_color": { @@ -3858,21 +3888,21 @@ "_name": "rewardIcon", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 100 }, "_children": [ { - "__id__": 105 + "__id__": 106 } ], "_active": true, "_components": [ { - "__id__": 108 + "__id__": 109 } ], "_prefab": { - "__id__": 109 + "__id__": 110 }, "_opacity": 255, "_color": { @@ -3926,17 +3956,17 @@ "_name": "iconLabel", "_objFlags": 0, "_parent": { - "__id__": 104 + "__id__": 105 }, "_children": [], "_active": false, "_components": [ { - "__id__": 106 + "__id__": 107 } ], "_prefab": { - "__id__": 107 + "__id__": 108 }, "_opacity": 255, "_color": { @@ -3990,7 +4020,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 105 + "__id__": 106 }, "_enabled": true, "_materials": [ @@ -4034,7 +4064,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 104 + "__id__": 105 }, "_enabled": true, "_materials": [ @@ -4077,17 +4107,17 @@ "_name": "rewardLabel", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 100 }, "_children": [], "_active": false, "_components": [ { - "__id__": 111 + "__id__": 112 } ], "_prefab": { - "__id__": 112 + "__id__": 113 }, "_opacity": 255, "_color": { @@ -4141,7 +4171,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 110 + "__id__": 111 }, "_enabled": true, "_materials": [ @@ -4185,17 +4215,17 @@ "_name": "statusLabel", "_objFlags": 0, "_parent": { - "__id__": 99 + "__id__": 100 }, "_children": [], "_active": false, "_components": [ { - "__id__": 114 + "__id__": 115 } ], "_prefab": { - "__id__": 115 + "__id__": 116 }, "_opacity": 255, "_color": { @@ -4249,7 +4279,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 113 + "__id__": 114 }, "_enabled": true, "_materials": [ @@ -4293,7 +4323,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 99 + "__id__": 100 }, "_enabled": true, "_materials": [ @@ -4336,30 +4366,30 @@ "_name": "giftDay6", "_objFlags": 0, "_parent": { - "__id__": 22 + "__id__": 23 }, "_children": [ { - "__id__": 119 + "__id__": 120 }, { - "__id__": 123 + "__id__": 124 }, { - "__id__": 129 + "__id__": 130 }, { - "__id__": 132 + "__id__": 133 } ], "_active": true, "_components": [ { - "__id__": 135 + "__id__": 136 } ], "_prefab": { - "__id__": 136 + "__id__": 137 }, "_opacity": 255, "_color": { @@ -4413,20 +4443,20 @@ "_name": "dayLabel", "_objFlags": 0, "_parent": { - "__id__": 118 + "__id__": 119 }, "_children": [], "_active": true, "_components": [ { - "__id__": 120 + "__id__": 121 }, { - "__id__": 121 + "__id__": 122 } ], "_prefab": { - "__id__": 122 + "__id__": 123 }, "_opacity": 255, "_color": { @@ -4480,7 +4510,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 119 + "__id__": 120 }, "_enabled": true, "_materials": [ @@ -4513,7 +4543,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 119 + "__id__": 120 }, "_enabled": true, "_color": { @@ -4542,21 +4572,21 @@ "_name": "rewardIcon", "_objFlags": 0, "_parent": { - "__id__": 118 + "__id__": 119 }, "_children": [ { - "__id__": 124 + "__id__": 125 } ], "_active": true, "_components": [ { - "__id__": 127 + "__id__": 128 } ], "_prefab": { - "__id__": 128 + "__id__": 129 }, "_opacity": 255, "_color": { @@ -4610,17 +4640,17 @@ "_name": "iconLabel", "_objFlags": 0, "_parent": { - "__id__": 123 + "__id__": 124 }, "_children": [], "_active": false, "_components": [ { - "__id__": 125 + "__id__": 126 } ], "_prefab": { - "__id__": 126 + "__id__": 127 }, "_opacity": 255, "_color": { @@ -4674,7 +4704,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 124 + "__id__": 125 }, "_enabled": true, "_materials": [ @@ -4718,7 +4748,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 123 + "__id__": 124 }, "_enabled": true, "_materials": [ @@ -4761,17 +4791,17 @@ "_name": "rewardLabel", "_objFlags": 0, "_parent": { - "__id__": 118 + "__id__": 119 }, "_children": [], "_active": false, "_components": [ { - "__id__": 130 + "__id__": 131 } ], "_prefab": { - "__id__": 131 + "__id__": 132 }, "_opacity": 255, "_color": { @@ -4825,7 +4855,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 129 + "__id__": 130 }, "_enabled": true, "_materials": [ @@ -4869,17 +4899,17 @@ "_name": "statusLabel", "_objFlags": 0, "_parent": { - "__id__": 118 + "__id__": 119 }, "_children": [], "_active": false, "_components": [ { - "__id__": 133 + "__id__": 134 } ], "_prefab": { - "__id__": 134 + "__id__": 135 }, "_opacity": 255, "_color": { @@ -4933,7 +4963,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 132 + "__id__": 133 }, "_enabled": true, "_materials": [ @@ -4977,7 +5007,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 118 + "__id__": 119 }, "_enabled": true, "_materials": [ @@ -5020,30 +5050,30 @@ "_name": "giftDay7", "_objFlags": 0, "_parent": { - "__id__": 22 + "__id__": 23 }, "_children": [ { - "__id__": 138 + "__id__": 139 }, { - "__id__": 142 + "__id__": 143 }, { - "__id__": 148 + "__id__": 149 }, { - "__id__": 151 + "__id__": 152 } ], "_active": true, "_components": [ { - "__id__": 154 + "__id__": 155 } ], "_prefab": { - "__id__": 155 + "__id__": 156 }, "_opacity": 255, "_color": { @@ -5097,20 +5127,20 @@ "_name": "dayLabel", "_objFlags": 0, "_parent": { - "__id__": 137 + "__id__": 138 }, "_children": [], "_active": true, "_components": [ { - "__id__": 139 + "__id__": 140 }, { - "__id__": 140 + "__id__": 141 } ], "_prefab": { - "__id__": 141 + "__id__": 142 }, "_opacity": 255, "_color": { @@ -5164,7 +5194,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 138 + "__id__": 139 }, "_enabled": true, "_materials": [ @@ -5197,7 +5227,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 138 + "__id__": 139 }, "_enabled": true, "_color": { @@ -5226,21 +5256,21 @@ "_name": "rewardIcon", "_objFlags": 0, "_parent": { - "__id__": 137 + "__id__": 138 }, "_children": [ { - "__id__": 143 + "__id__": 144 } ], "_active": true, "_components": [ { - "__id__": 146 + "__id__": 147 } ], "_prefab": { - "__id__": 147 + "__id__": 148 }, "_opacity": 255, "_color": { @@ -5294,17 +5324,17 @@ "_name": "iconLabel", "_objFlags": 0, "_parent": { - "__id__": 142 + "__id__": 143 }, "_children": [], "_active": false, "_components": [ { - "__id__": 144 + "__id__": 145 } ], "_prefab": { - "__id__": 145 + "__id__": 146 }, "_opacity": 255, "_color": { @@ -5358,7 +5388,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 143 + "__id__": 144 }, "_enabled": true, "_materials": [ @@ -5402,7 +5432,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 142 + "__id__": 143 }, "_enabled": true, "_materials": [ @@ -5445,17 +5475,17 @@ "_name": "rewardLabel", "_objFlags": 0, "_parent": { - "__id__": 137 + "__id__": 138 }, "_children": [], "_active": false, "_components": [ { - "__id__": 149 + "__id__": 150 } ], "_prefab": { - "__id__": 150 + "__id__": 151 }, "_opacity": 255, "_color": { @@ -5509,7 +5539,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 148 + "__id__": 149 }, "_enabled": true, "_materials": [ @@ -5553,17 +5583,17 @@ "_name": "statusLabel", "_objFlags": 0, "_parent": { - "__id__": 137 + "__id__": 138 }, "_children": [], "_active": false, "_components": [ { - "__id__": 152 + "__id__": 153 } ], "_prefab": { - "__id__": 153 + "__id__": 154 }, "_opacity": 255, "_color": { @@ -5617,7 +5647,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 151 + "__id__": 152 }, "_enabled": true, "_materials": [ @@ -5661,7 +5691,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 137 + "__id__": 138 }, "_enabled": true, "_materials": [ @@ -5715,17 +5745,17 @@ "_name": "message", "_objFlags": 0, "_parent": { - "__id__": 6 + "__id__": 7 }, "_children": [], "_active": false, "_components": [ { - "__id__": 158 + "__id__": 159 } ], "_prefab": { - "__id__": 159 + "__id__": 160 }, "_opacity": 255, "_color": { @@ -5779,7 +5809,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 157 + "__id__": 158 }, "_enabled": true, "_materials": [ @@ -5823,7 +5853,7 @@ "_name": "", "_objFlags": 0, "node": { - "__id__": 6 + "__id__": 7 }, "_enabled": true, "_materials": [ @@ -5932,7 +5962,6 @@ "infiniteHealthIcon": { "__uuid__": "7d090003-0227-4a00-8b00-000000000227" }, - "_id": "", "rewardNumberFrames": [ { "__uuid__": "837772ce-3a48-4bcb-9ba2-2bda8204fd74" @@ -5973,7 +6002,9 @@ { "__uuid__": "f62e9f2e-72b3-4f73-8ecd-d0fd2a2e1b4d" } - ] + ], + "popupAnimation": 1, + "_id": "" }, { "__type__": "cc.PrefabInfo", @@ -5986,4 +6017,4 @@ "fileId": "", "sync": false } -] +] \ No newline at end of file diff --git a/assets/seven_day_gift/texture.meta b/assets/seven_day_gift/texture.meta new file mode 100644 index 0000000..0be76d0 --- /dev/null +++ b/assets/seven_day_gift/texture.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "0655a2d6-ec8a-4023-bd56-4da160614137", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/tools/test-seven-day-stamina.cjs b/tools/test-seven-day-stamina.cjs new file mode 100644 index 0000000..cbeadf6 --- /dev/null +++ b/tools/test-seven-day-stamina.cjs @@ -0,0 +1,84 @@ +const test = require('node:test'); +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const vm = require('node:vm'); +const ts = require('typescript'); + +function fixture(hp, remaining) { + let now = 1800000000000; + const info = { hp, hp_Max: 5, userPowerTime: remaining ? now / 1000 + remaining : 0 }; + const storage = new Map([['userPowerTime', info.userPowerTime]]); + const timers = new Set(); + const label = { string: '' }; + const children = { + skyLine: { active: remaining > 0, getChildByName: () => ({ getComponent: () => label }) }, + man: { active: remaining === 0 && hp === 5 }, + add: { active: remaining === 0 && hp < 5 }, + time: { opacity: remaining > 0 ? 0 : 255 }, + }; + const cc = { Label: class {}, fx: { + GameConfig: { GM_INFO: info }, + StorageMessage: { getStorage: key => storage.get(key), setStorage: (key, value) => storage.set(key, value) }, + }, find: () => ({ getComponent: () => home }) }; + const context = vm.createContext({ cc, wx: {}, Date: { now: () => now }, + Utils: { setUserPowerTime() {} }, console: { log() {} } }); + function run(source) { + vm.runInContext(ts.transpileModule(source, { + compilerOptions: { target: ts.ScriptTarget.ES2020, module: ts.ModuleKind.CommonJS }, + }).outputText, context); + } + function parse(path) { + return ts.createSourceFile(path, fs.readFileSync(path, 'utf8'), ts.ScriptTarget.Latest, true); + } + const toolSource = parse('assets/Script/module/Tool/GameTool.ts'); + let toolObject; + function visit(node) { + if (ts.isVariableDeclaration(node) && node.name.getText(toolSource) === 'GameTool') toolObject = node.initializer; + ts.forEachChild(node, visit); + } + visit(toolSource); + const toolMethods = toolObject.properties.filter(node => + ['setUserPowerTime', 'getUserPowerTime', 'getTimeMargin2'].includes(node.name?.getText(toolSource))); + run('cc.fx.GameTool = {' + toolMethods.map(node => node.getText(toolSource)).join(',\n') + '};'); + cc.fx.GameTool.shushu_Track = () => {}; + const homeSource = parse('assets/Script/JiaZai.ts'); + const homeMethods = homeSource.statements.find(ts.isClassDeclaration).members.filter(node => + ['updatePower', 'startPowerTime', 'stopPowerTime', 'refreshStaminaDisplay'].includes(node.name?.getText(homeSource))); + run('globalThis.Home = class {' + homeMethods.map(node => node.getText(homeSource)).join('\n') + '};'); + const home = new context.Home(); + home.Stamina = { getChildByName: name => children[name] }; + home.schedule = callback => timers.add(callback); + home.unschedule = callback => timers.delete(callback); + home.updateCoin = () => {}; + if (remaining) home.updatePower(); + + context.exports = {}; + context.require = () => ({ default: { getUid: () => 'test-user' } }); + run(fs.readFileSync('assets/seven_day_gift/SevenDayGiftReward.ts', 'utf8')); + const receipt = { claimId: 'day-one', rewards: [{ type: 'infinite_health', count: 900 }] }; + return { info, children, label, timers, grant() { + let completed = false; + context.exports.default.grant(receipt, success => { assert.equal(success, true); completed = true; }); + assert.equal(completed, true); + }, tick() { now += 1000; [...timers].forEach(callback => callback()); } }; +} + +for (const hp of [5, 2]) { + for (const remaining of [0, 600]) { + test(`day-one reward shows infinite stamina: hp=${hp}, remaining=${remaining}`, () => { + const f = fixture(hp, remaining); + f.grant(); + assert.equal(f.children.skyLine.active, true, 'infinite stamina becomes visible after claiming'); + assert.equal(f.children.man.active, false); + assert.equal(f.children.add.active, false); + assert.equal(f.children.time.opacity, 0); + assert.equal(f.timers.size, 1, 'exactly one infinite stamina timer runs'); + f.tick(); + assert.equal(f.label.string, remaining ? '24:59' : '14:59'); + const expiry = f.info.userPowerTime; + f.grant(); + assert.equal(f.info.userPowerTime, expiry, 'repeated receipt does not add time twice'); + assert.equal(f.timers.size, 1); + }); + } +}