From 5eef9d8528050440cb738e2f348139bbb5723df1 Mon Sep 17 00:00:00 2001 From: richarjiang Date: Sun, 19 Apr 2026 14:19:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E6=96=B0=E7=89=88?= =?UTF-8?q?=E7=9A=84=E5=85=B3=E5=8D=A1=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/prefabs/PageLevel.prefab | 1376 ++++++++++++++++------ assets/prefabs/PageLevel.ts | 74 +- assets/prefabs/PagePreviewLevels.ts | 4 +- assets/prefabs/PageWriteLevels.ts | 4 +- assets/scripts/types/ApiTypes.ts | 20 +- assets/scripts/types/LevelTypes.ts | 24 +- assets/scripts/utils/LevelDataManager.ts | 31 +- assets/scripts/utils/ShareManager.ts | 38 +- assets/scripts/utils/StorageManager.ts | 4 +- 9 files changed, 1165 insertions(+), 410 deletions(-) diff --git a/assets/prefabs/PageLevel.prefab b/assets/prefabs/PageLevel.prefab index 5a30d13..c3905b4 100644 --- a/assets/prefabs/PageLevel.prefab +++ b/assets/prefabs/PageLevel.prefab @@ -25,44 +25,44 @@ "__id__": 10 }, { - "__id__": 50 + "__id__": 74 }, { - "__id__": 60 + "__id__": 84 }, { - "__id__": 78 + "__id__": 102 }, { - "__id__": 96 + "__id__": 120 }, { - "__id__": 194 + "__id__": 218 }, { - "__id__": 220 + "__id__": 244 }, { - "__id__": 236 + "__id__": 260 } ], "_active": true, "_components": [ { - "__id__": 252 + "__id__": 276 }, { - "__id__": 254 + "__id__": 278 }, { - "__id__": 256 + "__id__": 280 }, { - "__id__": 258 + "__id__": 282 } ], "_prefab": { - "__id__": 260 + "__id__": 284 }, "_lpos": { "__type__": "cc.Vec3", @@ -264,22 +264,34 @@ }, { "__id__": 17 + }, + { + "__id__": 23 + }, + { + "__id__": 29 + }, + { + "__id__": 35 + }, + { + "__id__": 61 } ], "_active": true, "_components": [ { - "__id__": 43 + "__id__": 67 }, { - "__id__": 45 + "__id__": 69 }, { - "__id__": 47 + "__id__": 71 } ], "_prefab": { - "__id__": 49 + "__id__": 73 }, "_lpos": { "__type__": "cc.Vec3", @@ -334,7 +346,7 @@ "_lpos": { "__type__": "cc.Vec3", "x": 8.006, - "y": 0, + "y": 263.395, "z": 0 }, "_lrot": { @@ -375,7 +387,7 @@ "_contentSize": { "__type__": "cc.Size", "width": 900, - "height": 900 + "height": 400 }, "_anchorPoint": { "__type__": "cc.Vec2", @@ -443,6 +455,457 @@ "targetOverrides": null, "nestedPrefabInstanceRoots": null }, + { + "__type__": "cc.Node", + "_name": "ImageLabel", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 10 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 18 + }, + { + "__id__": 20 + } + ], + "_prefab": { + "__id__": 22 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 20.519, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 17 + }, + "_enabled": true, + "__prefab": { + "__id__": 19 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 63.3837890625, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "39epmb7RJG3Y9ei/aaiWnJ" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 17 + }, + "_enabled": true, + "__prefab": { + "__id__": 21 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_string": "label", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 30, + "_fontSize": 30, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 0, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 0, + "_enableOutline": false, + "_outlineColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_outlineWidth": 2, + "_enableShadow": false, + "_shadowColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_shadowOffset": { + "__type__": "cc.Vec2", + "x": 2, + "y": 2 + }, + "_shadowBlur": 2, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "fadIESDAJDAr6siiBmhmWd" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "0b5ItBjf5GZ6I2ZWbevCYF", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.Node", + "_name": "Image2", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 10 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 24 + }, + { + "__id__": 26 + } + ], + "_prefab": { + "__id__": 28 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 8.006, + "y": -231.443, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 0.759 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 23 + }, + "_enabled": true, + "__prefab": { + "__id__": 25 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 900, + "height": 400 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "32wV5le+5Pdq6YZvdDjU/e" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 23 + }, + "_enabled": true, + "__prefab": { + "__id__": 27 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": null, + "_type": 0, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "aeVfvnRGBKFYMk9N4J4GM5" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d59sNBRiFFrLG4MARwAFZy", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, + { + "__type__": "cc.Node", + "_name": "Image2Label", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 10 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 30 + }, + { + "__id__": 32 + } + ], + "_prefab": { + "__id__": 34 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": -437.746, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 29 + }, + "_enabled": true, + "__prefab": { + "__id__": 31 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 63.3837890625, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "2aXvKoQR9EF6X6DJMth7Op" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 29 + }, + "_enabled": true, + "__prefab": { + "__id__": 33 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_string": "label", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 30, + "_fontSize": 30, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 0, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 0, + "_enableOutline": false, + "_outlineColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_outlineWidth": 2, + "_enableShadow": false, + "_shadowColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_shadowOffset": { + "__type__": "cc.Vec2", + "x": 2, + "y": 2 + }, + "_shadowBlur": 2, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "30nCxJn2lHBYE66BHeOSJH" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "c9Jw0uYWlKIa7jBqBD0zHp", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, { "__type__": "cc.Node", "_name": "Action", @@ -453,31 +916,31 @@ }, "_children": [ { - "__id__": 18 + "__id__": 36 }, { - "__id__": 24 + "__id__": 42 }, { - "__id__": 30 + "__id__": 48 } ], "_active": true, "_components": [ { - "__id__": 38 + "__id__": 56 }, { - "__id__": 40 + "__id__": 58 } ], "_prefab": { - "__id__": 42 + "__id__": 60 }, "_lpos": { "__type__": "cc.Vec3", "x": 3.051, - "y": -631.454, + "y": -569.896, "z": 0 }, "_lrot": { @@ -509,20 +972,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 17 + "__id__": 35 }, "_children": [], "_active": true, "_components": [ { - "__id__": 19 + "__id__": 37 }, { - "__id__": 21 + "__id__": 39 } ], "_prefab": { - "__id__": 23 + "__id__": 41 }, "_lpos": { "__type__": "cc.Vec3", @@ -559,11 +1022,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 18 + "__id__": 36 }, "_enabled": true, "__prefab": { - "__id__": 20 + "__id__": 38 }, "_contentSize": { "__type__": "cc.Size", @@ -587,11 +1050,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 18 + "__id__": 36 }, "_enabled": true, "__prefab": { - "__id__": 22 + "__id__": 40 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -668,20 +1131,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 17 + "__id__": 35 }, "_children": [], "_active": true, "_components": [ { - "__id__": 25 + "__id__": 43 }, { - "__id__": 27 + "__id__": 45 } ], "_prefab": { - "__id__": 29 + "__id__": 47 }, "_lpos": { "__type__": "cc.Vec3", @@ -718,11 +1181,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 24 + "__id__": 42 }, "_enabled": true, "__prefab": { - "__id__": 26 + "__id__": 44 }, "_contentSize": { "__type__": "cc.Size", @@ -746,11 +1209,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 24 + "__id__": 42 }, "_enabled": true, "__prefab": { - "__id__": 28 + "__id__": 46 }, "_resizeMode": 1, "_layoutType": 1, @@ -797,23 +1260,23 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 17 + "__id__": 35 }, "_children": [], "_active": true, "_components": [ { - "__id__": 31 + "__id__": 49 }, { - "__id__": 33 + "__id__": 51 }, { - "__id__": 35 + "__id__": 53 } ], "_prefab": { - "__id__": 37 + "__id__": 55 }, "_lpos": { "__type__": "cc.Vec3", @@ -850,11 +1313,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 30 + "__id__": 48 }, "_enabled": true, "__prefab": { - "__id__": 32 + "__id__": 50 }, "_contentSize": { "__type__": "cc.Size", @@ -878,11 +1341,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 30 + "__id__": 48 }, "_enabled": true, "__prefab": { - "__id__": 34 + "__id__": 52 }, "clickEvents": [], "_interactable": true, @@ -934,11 +1397,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 30 + "__id__": 48 }, "_enabled": true, "__prefab": { - "__id__": 36 + "__id__": 54 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -992,11 +1455,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 17 + "__id__": 35 }, "_enabled": true, "__prefab": { - "__id__": 39 + "__id__": 57 }, "_contentSize": { "__type__": "cc.Size", @@ -1020,11 +1483,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 17 + "__id__": 35 }, "_enabled": true, "__prefab": { - "__id__": 41 + "__id__": 59 }, "_resizeMode": 0, "_layoutType": 1, @@ -1065,6 +1528,165 @@ "targetOverrides": null, "nestedPrefabInstanceRoots": null }, + { + "__type__": "cc.Node", + "_name": "PunchlineLabel", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": { + "__id__": 10 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 62 + }, + { + "__id__": 64 + } + ], + "_prefab": { + "__id__": 66 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": -672.578, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_mobility": 0, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 61 + }, + "_enabled": true, + "__prefab": { + "__id__": 63 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 84.51171875, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "34W/3ZumhHyZ/o7/ROVy7d" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "__editorExtras__": {}, + "node": { + "__id__": 61 + }, + "_enabled": true, + "__prefab": { + "__id__": 65 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_string": "label", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 40, + "_fontSize": 40, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 0, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 0, + "_enableOutline": false, + "_outlineColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_outlineWidth": 2, + "_enableShadow": false, + "_shadowColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_shadowOffset": { + "__type__": "cc.Vec2", + "x": 2, + "y": 2 + }, + "_shadowBlur": 2, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "3ak+y0YFZB+afgXqxmKKXy" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "0eVBV8HJFFabxVaWIy0c10", + "instance": null, + "targetOverrides": null, + "nestedPrefabInstanceRoots": null + }, { "__type__": "cc.UITransform", "_name": "", @@ -1075,7 +1697,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 44 + "__id__": 68 }, "_contentSize": { "__type__": "cc.Size", @@ -1103,7 +1725,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 46 + "__id__": 70 }, "_alignFlags": 1, "_target": null, @@ -1139,7 +1761,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 48 + "__id__": 72 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -1199,20 +1821,20 @@ "_active": true, "_components": [ { - "__id__": 51 + "__id__": 75 }, { - "__id__": 53 + "__id__": 77 }, { - "__id__": 55 + "__id__": 79 }, { - "__id__": 57 + "__id__": 81 } ], "_prefab": { - "__id__": 59 + "__id__": 83 }, "_lpos": { "__type__": "cc.Vec3", @@ -1249,11 +1871,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 50 + "__id__": 74 }, "_enabled": true, "__prefab": { - "__id__": 52 + "__id__": 76 }, "_contentSize": { "__type__": "cc.Size", @@ -1277,11 +1899,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 50 + "__id__": 74 }, "_enabled": true, "__prefab": { - "__id__": 54 + "__id__": 78 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -1322,11 +1944,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 50 + "__id__": 74 }, "_enabled": true, "__prefab": { - "__id__": 56 + "__id__": 80 }, "_alignFlags": 9, "_target": null, @@ -1358,11 +1980,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 50 + "__id__": 74 }, "_enabled": true, "__prefab": { - "__id__": 58 + "__id__": 82 }, "clickEvents": [], "_interactable": true, @@ -1431,23 +2053,23 @@ }, "_children": [ { - "__id__": 61 + "__id__": 85 }, { - "__id__": 67 + "__id__": 91 } ], "_active": true, "_components": [ { - "__id__": 73 + "__id__": 97 }, { - "__id__": 75 + "__id__": 99 } ], "_prefab": { - "__id__": 77 + "__id__": 101 }, "_lpos": { "__type__": "cc.Vec3", @@ -1484,20 +2106,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 60 + "__id__": 84 }, "_children": [], "_active": true, "_components": [ { - "__id__": 62 + "__id__": 86 }, { - "__id__": 64 + "__id__": 88 } ], "_prefab": { - "__id__": 66 + "__id__": 90 }, "_lpos": { "__type__": "cc.Vec3", @@ -1534,11 +2156,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 61 + "__id__": 85 }, "_enabled": true, "__prefab": { - "__id__": 63 + "__id__": 87 }, "_contentSize": { "__type__": "cc.Size", @@ -1562,11 +2184,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 61 + "__id__": 85 }, "_enabled": true, "__prefab": { - "__id__": 65 + "__id__": 89 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -1620,20 +2242,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 60 + "__id__": 84 }, "_children": [], "_active": true, "_components": [ { - "__id__": 68 + "__id__": 92 }, { - "__id__": 70 + "__id__": 94 } ], "_prefab": { - "__id__": 72 + "__id__": 96 }, "_lpos": { "__type__": "cc.Vec3", @@ -1670,11 +2292,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 67 + "__id__": 91 }, "_enabled": true, "__prefab": { - "__id__": 69 + "__id__": 93 }, "_contentSize": { "__type__": "cc.Size", @@ -1698,11 +2320,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 67 + "__id__": 91 }, "_enabled": true, "__prefab": { - "__id__": 71 + "__id__": 95 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -1779,11 +2401,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 60 + "__id__": 84 }, "_enabled": true, "__prefab": { - "__id__": 74 + "__id__": 98 }, "_contentSize": { "__type__": "cc.Size", @@ -1807,11 +2429,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 60 + "__id__": 84 }, "_enabled": true, "__prefab": { - "__id__": 76 + "__id__": 100 }, "_alignFlags": 9, "_target": null, @@ -1860,23 +2482,23 @@ }, "_children": [ { - "__id__": 79 + "__id__": 103 }, { - "__id__": 85 + "__id__": 109 } ], "_active": true, "_components": [ { - "__id__": 91 + "__id__": 115 }, { - "__id__": 93 + "__id__": 117 } ], "_prefab": { - "__id__": 95 + "__id__": 119 }, "_lpos": { "__type__": "cc.Vec3", @@ -1913,20 +2535,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 78 + "__id__": 102 }, "_children": [], "_active": true, "_components": [ { - "__id__": 80 + "__id__": 104 }, { - "__id__": 82 + "__id__": 106 } ], "_prefab": { - "__id__": 84 + "__id__": 108 }, "_lpos": { "__type__": "cc.Vec3", @@ -1963,11 +2585,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 79 + "__id__": 103 }, "_enabled": true, "__prefab": { - "__id__": 81 + "__id__": 105 }, "_contentSize": { "__type__": "cc.Size", @@ -1991,11 +2613,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 79 + "__id__": 103 }, "_enabled": true, "__prefab": { - "__id__": 83 + "__id__": 107 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -2049,20 +2671,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 78 + "__id__": 102 }, "_children": [], "_active": true, "_components": [ { - "__id__": 86 + "__id__": 110 }, { - "__id__": 88 + "__id__": 112 } ], "_prefab": { - "__id__": 90 + "__id__": 114 }, "_lpos": { "__type__": "cc.Vec3", @@ -2099,11 +2721,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 85 + "__id__": 109 }, "_enabled": true, "__prefab": { - "__id__": 87 + "__id__": 111 }, "_contentSize": { "__type__": "cc.Size", @@ -2127,11 +2749,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 85 + "__id__": 109 }, "_enabled": true, "__prefab": { - "__id__": 89 + "__id__": 113 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -2198,6 +2820,8 @@ "__id__": 0 }, "fileId": "bc8pnnht9O/4APAtgMaCW3", + "instance": null, + "targetOverrides": null, "nestedPrefabInstanceRoots": null }, { @@ -2206,11 +2830,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 78 + "__id__": 102 }, "_enabled": true, "__prefab": { - "__id__": 92 + "__id__": 116 }, "_contentSize": { "__type__": "cc.Size", @@ -2234,11 +2858,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 78 + "__id__": 102 }, "_enabled": true, "__prefab": { - "__id__": 94 + "__id__": 118 }, "_alignFlags": 33, "_target": null, @@ -2287,29 +2911,29 @@ }, "_children": [ { - "__id__": 97 + "__id__": 121 }, { - "__id__": 127 + "__id__": 151 }, { - "__id__": 157 + "__id__": 181 } ], "_active": true, "_components": [ { - "__id__": 187 + "__id__": 211 }, { - "__id__": 189 + "__id__": 213 }, { - "__id__": 191 + "__id__": 215 } ], "_prefab": { - "__id__": 193 + "__id__": 217 }, "_lpos": { "__type__": "cc.Vec3", @@ -2346,27 +2970,27 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 96 + "__id__": 120 }, "_children": [ { - "__id__": 98 + "__id__": 122 }, { - "__id__": 104 + "__id__": 128 } ], "_active": true, "_components": [ { - "__id__": 122 + "__id__": 146 }, { - "__id__": 124 + "__id__": 148 } ], "_prefab": { - "__id__": 126 + "__id__": 150 }, "_lpos": { "__type__": "cc.Vec3", @@ -2403,20 +3027,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 97 + "__id__": 121 }, "_children": [], "_active": true, "_components": [ { - "__id__": 99 + "__id__": 123 }, { - "__id__": 101 + "__id__": 125 } ], "_prefab": { - "__id__": 103 + "__id__": 127 }, "_lpos": { "__type__": "cc.Vec3", @@ -2453,11 +3077,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 98 + "__id__": 122 }, "_enabled": true, "__prefab": { - "__id__": 100 + "__id__": 124 }, "_contentSize": { "__type__": "cc.Size", @@ -2481,11 +3105,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 98 + "__id__": 122 }, "_enabled": false, "__prefab": { - "__id__": 102 + "__id__": 126 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -2539,27 +3163,27 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 97 + "__id__": 121 }, "_children": [ { - "__id__": 105 + "__id__": 129 }, { - "__id__": 111 + "__id__": 135 } ], "_active": true, "_components": [ { - "__id__": 117 + "__id__": 141 }, { - "__id__": 119 + "__id__": 143 } ], "_prefab": { - "__id__": 121 + "__id__": 145 }, "_lpos": { "__type__": "cc.Vec3", @@ -2596,20 +3220,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 104 + "__id__": 128 }, "_children": [], "_active": true, "_components": [ { - "__id__": 106 + "__id__": 130 }, { - "__id__": 108 + "__id__": 132 } ], "_prefab": { - "__id__": 110 + "__id__": 134 }, "_lpos": { "__type__": "cc.Vec3", @@ -2646,11 +3270,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 105 + "__id__": 129 }, "_enabled": true, "__prefab": { - "__id__": 107 + "__id__": 131 }, "_contentSize": { "__type__": "cc.Size", @@ -2674,11 +3298,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 105 + "__id__": 129 }, "_enabled": true, "__prefab": { - "__id__": 109 + "__id__": 133 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -2732,20 +3356,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 104 + "__id__": 128 }, "_children": [], "_active": true, "_components": [ { - "__id__": 112 + "__id__": 136 }, { - "__id__": 114 + "__id__": 138 } ], "_prefab": { - "__id__": 116 + "__id__": 140 }, "_lpos": { "__type__": "cc.Vec3", @@ -2782,11 +3406,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 111 + "__id__": 135 }, "_enabled": true, "__prefab": { - "__id__": 113 + "__id__": 137 }, "_contentSize": { "__type__": "cc.Size", @@ -2810,11 +3434,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 111 + "__id__": 135 }, "_enabled": true, "__prefab": { - "__id__": 115 + "__id__": 139 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -2891,11 +3515,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 104 + "__id__": 128 }, "_enabled": true, "__prefab": { - "__id__": 118 + "__id__": 142 }, "_contentSize": { "__type__": "cc.Size", @@ -2919,11 +3543,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 104 + "__id__": 128 }, "_enabled": true, "__prefab": { - "__id__": 120 + "__id__": 144 }, "_resizeMode": 0, "_layoutType": 1, @@ -2970,11 +3594,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 97 + "__id__": 121 }, "_enabled": true, "__prefab": { - "__id__": 123 + "__id__": 147 }, "_contentSize": { "__type__": "cc.Size", @@ -2998,11 +3622,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 97 + "__id__": 121 }, "_enabled": true, "__prefab": { - "__id__": 125 + "__id__": 149 }, "clickEvents": [], "_interactable": true, @@ -3042,7 +3666,7 @@ "_duration": 0.1, "_zoomScale": 1.2, "_target": { - "__id__": 97 + "__id__": 121 }, "_id": "" }, @@ -3069,27 +3693,27 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 96 + "__id__": 120 }, "_children": [ { - "__id__": 128 + "__id__": 152 }, { - "__id__": 134 + "__id__": 158 } ], "_active": true, "_components": [ { - "__id__": 152 + "__id__": 176 }, { - "__id__": 154 + "__id__": 178 } ], "_prefab": { - "__id__": 156 + "__id__": 180 }, "_lpos": { "__type__": "cc.Vec3", @@ -3126,20 +3750,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 127 + "__id__": 151 }, "_children": [], "_active": false, "_components": [ { - "__id__": 129 + "__id__": 153 }, { - "__id__": 131 + "__id__": 155 } ], "_prefab": { - "__id__": 133 + "__id__": 157 }, "_lpos": { "__type__": "cc.Vec3", @@ -3176,11 +3800,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 128 + "__id__": 152 }, "_enabled": true, "__prefab": { - "__id__": 130 + "__id__": 154 }, "_contentSize": { "__type__": "cc.Size", @@ -3204,11 +3828,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 128 + "__id__": 152 }, "_enabled": true, "__prefab": { - "__id__": 132 + "__id__": 156 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3262,27 +3886,27 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 127 + "__id__": 151 }, "_children": [ { - "__id__": 135 + "__id__": 159 }, { - "__id__": 141 + "__id__": 165 } ], "_active": true, "_components": [ { - "__id__": 147 + "__id__": 171 }, { - "__id__": 149 + "__id__": 173 } ], "_prefab": { - "__id__": 151 + "__id__": 175 }, "_lpos": { "__type__": "cc.Vec3", @@ -3319,20 +3943,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 134 + "__id__": 158 }, "_children": [], "_active": true, "_components": [ { - "__id__": 136 + "__id__": 160 }, { - "__id__": 138 + "__id__": 162 } ], "_prefab": { - "__id__": 140 + "__id__": 164 }, "_lpos": { "__type__": "cc.Vec3", @@ -3369,11 +3993,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 135 + "__id__": 159 }, "_enabled": true, "__prefab": { - "__id__": 137 + "__id__": 161 }, "_contentSize": { "__type__": "cc.Size", @@ -3397,11 +4021,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 135 + "__id__": 159 }, "_enabled": true, "__prefab": { - "__id__": 139 + "__id__": 163 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3455,20 +4079,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 134 + "__id__": 158 }, "_children": [], "_active": true, "_components": [ { - "__id__": 142 + "__id__": 166 }, { - "__id__": 144 + "__id__": 168 } ], "_prefab": { - "__id__": 146 + "__id__": 170 }, "_lpos": { "__type__": "cc.Vec3", @@ -3505,11 +4129,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 141 + "__id__": 165 }, "_enabled": true, "__prefab": { - "__id__": 143 + "__id__": 167 }, "_contentSize": { "__type__": "cc.Size", @@ -3533,11 +4157,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 141 + "__id__": 165 }, "_enabled": true, "__prefab": { - "__id__": 145 + "__id__": 169 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3614,11 +4238,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 134 + "__id__": 158 }, "_enabled": true, "__prefab": { - "__id__": 148 + "__id__": 172 }, "_contentSize": { "__type__": "cc.Size", @@ -3642,11 +4266,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 134 + "__id__": 158 }, "_enabled": true, "__prefab": { - "__id__": 150 + "__id__": 174 }, "_resizeMode": 0, "_layoutType": 1, @@ -3693,11 +4317,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 127 + "__id__": 151 }, "_enabled": true, "__prefab": { - "__id__": 153 + "__id__": 177 }, "_contentSize": { "__type__": "cc.Size", @@ -3721,11 +4345,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 127 + "__id__": 151 }, "_enabled": true, "__prefab": { - "__id__": 155 + "__id__": 179 }, "clickEvents": [], "_interactable": true, @@ -3765,7 +4389,7 @@ "_duration": 0.1, "_zoomScale": 1.2, "_target": { - "__id__": 127 + "__id__": 151 }, "_id": "" }, @@ -3792,27 +4416,27 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 96 + "__id__": 120 }, "_children": [ { - "__id__": 158 + "__id__": 182 }, { - "__id__": 164 + "__id__": 188 } ], "_active": true, "_components": [ { - "__id__": 182 + "__id__": 206 }, { - "__id__": 184 + "__id__": 208 } ], "_prefab": { - "__id__": 186 + "__id__": 210 }, "_lpos": { "__type__": "cc.Vec3", @@ -3849,20 +4473,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 157 + "__id__": 181 }, "_children": [], "_active": false, "_components": [ { - "__id__": 159 + "__id__": 183 }, { - "__id__": 161 + "__id__": 185 } ], "_prefab": { - "__id__": 163 + "__id__": 187 }, "_lpos": { "__type__": "cc.Vec3", @@ -3899,11 +4523,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 158 + "__id__": 182 }, "_enabled": true, "__prefab": { - "__id__": 160 + "__id__": 184 }, "_contentSize": { "__type__": "cc.Size", @@ -3927,11 +4551,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 158 + "__id__": 182 }, "_enabled": true, "__prefab": { - "__id__": 162 + "__id__": 186 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -3985,27 +4609,27 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 157 + "__id__": 181 }, "_children": [ { - "__id__": 165 + "__id__": 189 }, { - "__id__": 171 + "__id__": 195 } ], "_active": true, "_components": [ { - "__id__": 177 + "__id__": 201 }, { - "__id__": 179 + "__id__": 203 } ], "_prefab": { - "__id__": 181 + "__id__": 205 }, "_lpos": { "__type__": "cc.Vec3", @@ -4042,20 +4666,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 164 + "__id__": 188 }, "_children": [], "_active": true, "_components": [ { - "__id__": 166 + "__id__": 190 }, { - "__id__": 168 + "__id__": 192 } ], "_prefab": { - "__id__": 170 + "__id__": 194 }, "_lpos": { "__type__": "cc.Vec3", @@ -4092,11 +4716,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 165 + "__id__": 189 }, "_enabled": true, "__prefab": { - "__id__": 167 + "__id__": 191 }, "_contentSize": { "__type__": "cc.Size", @@ -4120,11 +4744,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 165 + "__id__": 189 }, "_enabled": true, "__prefab": { - "__id__": 169 + "__id__": 193 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -4178,20 +4802,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 164 + "__id__": 188 }, "_children": [], "_active": true, "_components": [ { - "__id__": 172 + "__id__": 196 }, { - "__id__": 174 + "__id__": 198 } ], "_prefab": { - "__id__": 176 + "__id__": 200 }, "_lpos": { "__type__": "cc.Vec3", @@ -4228,11 +4852,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 171 + "__id__": 195 }, "_enabled": true, "__prefab": { - "__id__": 173 + "__id__": 197 }, "_contentSize": { "__type__": "cc.Size", @@ -4256,11 +4880,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 171 + "__id__": 195 }, "_enabled": true, "__prefab": { - "__id__": 175 + "__id__": 199 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -4337,11 +4961,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 164 + "__id__": 188 }, "_enabled": true, "__prefab": { - "__id__": 178 + "__id__": 202 }, "_contentSize": { "__type__": "cc.Size", @@ -4365,11 +4989,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 164 + "__id__": 188 }, "_enabled": true, "__prefab": { - "__id__": 180 + "__id__": 204 }, "_resizeMode": 0, "_layoutType": 1, @@ -4416,11 +5040,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 157 + "__id__": 181 }, "_enabled": true, "__prefab": { - "__id__": 183 + "__id__": 207 }, "_contentSize": { "__type__": "cc.Size", @@ -4444,11 +5068,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 157 + "__id__": 181 }, "_enabled": true, "__prefab": { - "__id__": 185 + "__id__": 209 }, "clickEvents": [], "_interactable": true, @@ -4488,7 +5112,7 @@ "_duration": 0.1, "_zoomScale": 1.2, "_target": { - "__id__": 157 + "__id__": 181 }, "_id": "" }, @@ -4515,11 +5139,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 96 + "__id__": 120 }, "_enabled": true, "__prefab": { - "__id__": 188 + "__id__": 212 }, "_contentSize": { "__type__": "cc.Size", @@ -4543,11 +5167,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 96 + "__id__": 120 }, "_enabled": true, "__prefab": { - "__id__": 190 + "__id__": 214 }, "_resizeMode": 1, "_layoutType": 2, @@ -4581,11 +5205,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 96 + "__id__": 120 }, "_enabled": true, "__prefab": { - "__id__": 192 + "__id__": 216 }, "_alignFlags": 4, "_target": null, @@ -4634,29 +5258,29 @@ }, "_children": [ { - "__id__": 195 + "__id__": 219 }, { - "__id__": 201 + "__id__": 225 }, { - "__id__": 207 + "__id__": 231 } ], "_active": true, "_components": [ { - "__id__": 213 + "__id__": 237 }, { - "__id__": 215 + "__id__": 239 }, { - "__id__": 217 + "__id__": 241 } ], "_prefab": { - "__id__": 219 + "__id__": 243 }, "_lpos": { "__type__": "cc.Vec3", @@ -4693,20 +5317,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 194 + "__id__": 218 }, "_children": [], "_active": false, "_components": [ { - "__id__": 196 + "__id__": 220 }, { - "__id__": 198 + "__id__": 222 } ], "_prefab": { - "__id__": 200 + "__id__": 224 }, "_lpos": { "__type__": "cc.Vec3", @@ -4743,11 +5367,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 195 + "__id__": 219 }, "_enabled": true, "__prefab": { - "__id__": 197 + "__id__": 221 }, "_contentSize": { "__type__": "cc.Size", @@ -4771,11 +5395,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 195 + "__id__": 219 }, "_enabled": true, "__prefab": { - "__id__": 199 + "__id__": 223 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -4852,20 +5476,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 194 + "__id__": 218 }, "_children": [], "_active": true, "_components": [ { - "__id__": 202 + "__id__": 226 }, { - "__id__": 204 + "__id__": 228 } ], "_prefab": { - "__id__": 206 + "__id__": 230 }, "_lpos": { "__type__": "cc.Vec3", @@ -4902,11 +5526,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 201 + "__id__": 225 }, "_enabled": true, "__prefab": { - "__id__": 203 + "__id__": 227 }, "_contentSize": { "__type__": "cc.Size", @@ -4930,11 +5554,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 201 + "__id__": 225 }, "_enabled": true, "__prefab": { - "__id__": 205 + "__id__": 229 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5011,20 +5635,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 194 + "__id__": 218 }, "_children": [], "_active": true, "_components": [ { - "__id__": 208 + "__id__": 232 }, { - "__id__": 210 + "__id__": 234 } ], "_prefab": { - "__id__": 212 + "__id__": 236 }, "_lpos": { "__type__": "cc.Vec3", @@ -5061,11 +5685,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 207 + "__id__": 231 }, "_enabled": true, "__prefab": { - "__id__": 209 + "__id__": 233 }, "_contentSize": { "__type__": "cc.Size", @@ -5089,11 +5713,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 207 + "__id__": 231 }, "_enabled": true, "__prefab": { - "__id__": 211 + "__id__": 235 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5147,11 +5771,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 194 + "__id__": 218 }, "_enabled": true, "__prefab": { - "__id__": 214 + "__id__": 238 }, "_contentSize": { "__type__": "cc.Size", @@ -5175,11 +5799,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 194 + "__id__": 218 }, "_enabled": true, "__prefab": { - "__id__": 216 + "__id__": 240 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5217,21 +5841,21 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 194 + "__id__": 218 }, "_enabled": true, "__prefab": { - "__id__": 218 + "__id__": 242 }, "editingDidBegan": [], "textChanged": [], "editingDidEnded": [], "editingReturn": [], "_textLabel": { - "__id__": 198 + "__id__": 222 }, "_placeholderLabel": { - "__id__": 204 + "__id__": 228 }, "_returnType": 0, "_string": "", @@ -5269,26 +5893,26 @@ }, "_children": [ { - "__id__": 221 + "__id__": 245 } ], "_active": true, "_components": [ { - "__id__": 227 + "__id__": 251 }, { - "__id__": 229 + "__id__": 253 }, { - "__id__": 231 + "__id__": 255 }, { - "__id__": 233 + "__id__": 257 } ], "_prefab": { - "__id__": 235 + "__id__": 259 }, "_lpos": { "__type__": "cc.Vec3", @@ -5325,20 +5949,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 220 + "__id__": 244 }, "_children": [], "_active": true, "_components": [ { - "__id__": 222 + "__id__": 246 }, { - "__id__": 224 + "__id__": 248 } ], "_prefab": { - "__id__": 226 + "__id__": 250 }, "_lpos": { "__type__": "cc.Vec3", @@ -5375,11 +5999,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 221 + "__id__": 245 }, "_enabled": true, "__prefab": { - "__id__": 223 + "__id__": 247 }, "_contentSize": { "__type__": "cc.Size", @@ -5403,11 +6027,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 221 + "__id__": 245 }, "_enabled": true, "__prefab": { - "__id__": 225 + "__id__": 249 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5484,11 +6108,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 220 + "__id__": 244 }, "_enabled": true, "__prefab": { - "__id__": 228 + "__id__": 252 }, "_contentSize": { "__type__": "cc.Size", @@ -5512,11 +6136,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 220 + "__id__": 244 }, "_enabled": true, "__prefab": { - "__id__": 230 + "__id__": 254 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5557,11 +6181,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 220 + "__id__": 244 }, "_enabled": true, "__prefab": { - "__id__": 232 + "__id__": 256 }, "_alignFlags": 12, "_target": null, @@ -5593,11 +6217,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 220 + "__id__": 244 }, "_enabled": true, "__prefab": { - "__id__": 234 + "__id__": 258 }, "clickEvents": [], "_interactable": true, @@ -5666,26 +6290,26 @@ }, "_children": [ { - "__id__": 237 + "__id__": 261 } ], "_active": true, "_components": [ { - "__id__": 243 + "__id__": 267 }, { - "__id__": 245 + "__id__": 269 }, { - "__id__": 247 + "__id__": 271 }, { - "__id__": 249 + "__id__": 273 } ], "_prefab": { - "__id__": 251 + "__id__": 275 }, "_lpos": { "__type__": "cc.Vec3", @@ -5722,20 +6346,20 @@ "_objFlags": 0, "__editorExtras__": {}, "_parent": { - "__id__": 236 + "__id__": 260 }, "_children": [], "_active": true, "_components": [ { - "__id__": 238 + "__id__": 262 }, { - "__id__": 240 + "__id__": 264 } ], "_prefab": { - "__id__": 242 + "__id__": 266 }, "_lpos": { "__type__": "cc.Vec3", @@ -5772,11 +6396,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 237 + "__id__": 261 }, "_enabled": true, "__prefab": { - "__id__": 239 + "__id__": 263 }, "_contentSize": { "__type__": "cc.Size", @@ -5800,11 +6424,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 237 + "__id__": 261 }, "_enabled": true, "__prefab": { - "__id__": 241 + "__id__": 265 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5881,11 +6505,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 236 + "__id__": 260 }, "_enabled": true, "__prefab": { - "__id__": 244 + "__id__": 268 }, "_contentSize": { "__type__": "cc.Size", @@ -5909,11 +6533,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 236 + "__id__": 260 }, "_enabled": true, "__prefab": { - "__id__": 246 + "__id__": 270 }, "_customMaterial": null, "_srcBlendFactor": 2, @@ -5954,11 +6578,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 236 + "__id__": 260 }, "_enabled": true, "__prefab": { - "__id__": 248 + "__id__": 272 }, "_alignFlags": 36, "_target": null, @@ -5990,11 +6614,11 @@ "_objFlags": 0, "__editorExtras__": {}, "node": { - "__id__": 236 + "__id__": 260 }, "_enabled": true, "__prefab": { - "__id__": 250 + "__id__": 274 }, "clickEvents": [], "_interactable": true, @@ -6063,7 +6687,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 253 + "__id__": 277 }, "_contentSize": { "__type__": "cc.Size", @@ -6091,7 +6715,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 255 + "__id__": 279 }, "_alignFlags": 0, "_target": null, @@ -6127,49 +6751,61 @@ }, "_enabled": true, "__prefab": { - "__id__": 257 + "__id__": 281 }, "inputLayout": { - "__id__": 24 + "__id__": 42 }, "submitButton": { - "__id__": 30 + "__id__": 48 }, "inputTemplate": { - "__id__": 194 + "__id__": 218 }, "actionNode": { - "__id__": 17 + "__id__": 35 }, "iconSetting": { - "__id__": 50 + "__id__": 74 }, "tipsLayout": { - "__id__": 96 + "__id__": 120 }, "mainImage": { "__id__": 11 }, + "mainImage2": { + "__id__": 23 + }, + "image1DescLabel": { + "__id__": 20 + }, + "image2DescLabel": { + "__id__": 32 + }, + "punchlineLabel": { + "__id__": 64 + }, "tipsItem1": { - "__id__": 97 + "__id__": 121 }, "tipsItem2": { - "__id__": 127 + "__id__": 151 }, "tipsItem3": { - "__id__": 157 + "__id__": 181 }, "unLockTipsBtn": { - "__id__": 220 + "__id__": 244 }, "addTimeBtn": { - "__id__": 236 + "__id__": 260 }, "clockLabel": { - "__id__": 88 + "__id__": 112 }, "liveLabel": { - "__id__": 70 + "__id__": 94 }, "currentLevelIndex": 0, "clickAudio": { @@ -6204,7 +6840,7 @@ }, "_enabled": true, "__prefab": { - "__id__": 259 + "__id__": 283 }, "_clip": null, "_loop": false, diff --git a/assets/prefabs/PageLevel.ts b/assets/prefabs/PageLevel.ts index 4ecceae..b5d36a0 100644 --- a/assets/prefabs/PageLevel.ts +++ b/assets/prefabs/PageLevel.ts @@ -43,6 +43,18 @@ export class PageLevel extends BaseView { @property(Node) mainImage: Node | null = null; + @property(Node) + mainImage2: Node | null = null; + + @property(Label) + image1DescLabel: Label | null = null; + + @property(Label) + image2DescLabel: Label | null = null; + + @property(Label) + punchlineLabel: Label | null = null; + @property(Node) tipsItem1: Node | null = null; @@ -268,8 +280,17 @@ export class PageLevel extends BaseView { this._isTimeUp = false; this._countdown = 60; - // 设置主图 - this.setMainImage(config.spriteFrame); + // 设置主图(图片1) + this.setMainImage(config.spriteFrame1); + + // 设置图片2 + this.setMainImage2(config.spriteFrame2); + + // 设置图片描述 + this.setImageDescriptions(config.image1Description, config.image2Description); + + // 隐藏谐音梗说明(通关后才显示) + this.setPunchline(null); // 设置线索1(默认解锁,如果有的话) if (config.clue1) { @@ -618,7 +639,7 @@ export class PageLevel extends BaseView { // ========== 主图相关方法 ========== /** - * 设置主图 + * 设置主图(图片1) */ private setMainImage(spriteFrame: SpriteFrame | null): void { if (!this.mainImage) return; @@ -626,7 +647,47 @@ export class PageLevel extends BaseView { const sprite = this.mainImage.getComponent(Sprite); if (sprite && spriteFrame) { sprite.spriteFrame = spriteFrame; - console.log('[PageLevel] 设置主图'); + console.log('[PageLevel] 设置主图1'); + } + } + + /** + * 设置图片2 + */ + private setMainImage2(spriteFrame: SpriteFrame | null): void { + if (!this.mainImage2) return; + + const sprite = this.mainImage2.getComponent(Sprite); + if (sprite && spriteFrame) { + sprite.spriteFrame = spriteFrame; + console.log('[PageLevel] 设置主图2'); + } + } + + /** + * 设置图片描述文本 + */ + private setImageDescriptions(desc1: string | null, desc2: string | null): void { + if (this.image1DescLabel) { + this.image1DescLabel.string = desc1 ?? ''; + } + if (this.image2DescLabel) { + this.image2DescLabel.string = desc2 ?? ''; + } + } + + /** + * 设置谐音梗说明(通关后展示,未通关时传 null 隐藏) + */ + private setPunchline(punchline: string | null): void { + if (!this.punchlineLabel) return; + + if (punchline) { + this.punchlineLabel.node.active = true; + this.punchlineLabel.string = punchline; + } else { + this.punchlineLabel.node.active = false; + this.punchlineLabel.string = ''; } } @@ -819,6 +880,11 @@ export class PageLevel extends BaseView { // 播放成功音效 this.playSuccessSound(); + // 通关后展示谐音梗说明 + if (this._currentConfig?.punchline) { + this.setPunchline(this._currentConfig.punchline); + } + const levelId = this._currentConfig?.id ?? ''; const timeSpent = Math.max(0, Math.round((Date.now() - this._levelStartTime) / 1000)); diff --git a/assets/prefabs/PagePreviewLevels.ts b/assets/prefabs/PagePreviewLevels.ts index 4cd677a..f5219b9 100644 --- a/assets/prefabs/PagePreviewLevels.ts +++ b/assets/prefabs/PagePreviewLevels.ts @@ -204,8 +204,8 @@ export class PagePreviewLevels extends BaseView { const levelCover = item.getChildByName('LevelCover'); if (levelCover) { const sprite = levelCover.getComponent(Sprite); - if (sprite && config.spriteFrame) { - sprite.spriteFrame = config.spriteFrame; + if (sprite && config.spriteFrame1) { + sprite.spriteFrame = config.spriteFrame1; } } diff --git a/assets/prefabs/PageWriteLevels.ts b/assets/prefabs/PageWriteLevels.ts index 3a349a1..bad459e 100644 --- a/assets/prefabs/PageWriteLevels.ts +++ b/assets/prefabs/PageWriteLevels.ts @@ -326,8 +326,8 @@ export class PageWriteLevels extends BaseView { const levelCover = item.getChildByName('LevelCover'); if (levelCover) { const sprite = levelCover.getComponent(Sprite); - if (sprite && config.spriteFrame) { - sprite.spriteFrame = config.spriteFrame; + if (sprite && config.spriteFrame1) { + sprite.spriteFrame = config.spriteFrame1; } } diff --git a/assets/scripts/types/ApiTypes.ts b/assets/scripts/types/ApiTypes.ts index a06e658..1140369 100644 --- a/assets/scripts/types/ApiTypes.ts +++ b/assets/scripts/types/ApiTypes.ts @@ -14,7 +14,7 @@ export interface ApiEnvelope { export interface StaminaInfo { /** 当前体力值(已计算恢复) */ current: number; - /** 体力上限,固定为 5 */ + /** 体力上限,固定为 50 */ max: number; /** 下一点体力恢复的时间(ISO 8601),满体力时为 null */ nextRecoverAt: string | null; @@ -50,8 +50,12 @@ export interface GameData { export interface LevelListItem { id: string; level: number; - imageUrl: string; + image1Url: string; + image1Description: string | null; + image2Url: string; + image2Description: string | null; answer: string | null; + punchline: string | null; hint1: string | null; hint2: string | null; hint3: string | null; @@ -69,8 +73,12 @@ export interface LevelListData { export interface EnterLevelData { id: string; level: number; - imageUrl: string; + image1Url: string; + image1Description: string | null; + image2Url: string; + image2Description: string | null; answer: string; + punchline: string | null; hint1: string | null; hint2: string | null; hint3: string | null; @@ -95,8 +103,12 @@ export interface CreateShareData { export interface ShareLevelData { id: string; level: number; - imageUrl: string; + image1Url: string; + image1Description: string | null; + image2Url: string; + image2Description: string | null; answer: string; + punchline: string | null; hint1: string | null; hint2: string | null; hint3: string | null; diff --git a/assets/scripts/types/LevelTypes.ts b/assets/scripts/types/LevelTypes.ts index f30c49e..4dfe4e0 100644 --- a/assets/scripts/types/LevelTypes.ts +++ b/assets/scripts/types/LevelTypes.ts @@ -8,8 +8,16 @@ export interface ApiLevelData { id: string; /** 关卡序号 */ level: number; - /** 主图 URL */ - imageUrl: string; + /** 图片1 URL */ + image1Url: string; + /** 图片1 文本说明 */ + image1Description: string | null; + /** 图片2 URL */ + image2Url: string; + /** 图片2 文本说明 */ + image2Description: string | null; + /** 谐音梗说明(仅通关后返回,未通关为 null) */ + punchline: string | null; /** 线索1(未通关时为 null) */ hint1: string | null; /** 线索2(未通关时为 null) */ @@ -47,8 +55,16 @@ export interface RuntimeLevelConfig { id: string; /** 关卡名称 */ name: string; - /** 主图 SpriteFrame(可能为 null 如果加载失败) */ - spriteFrame: SpriteFrame | null; + /** 图片1 SpriteFrame(可能为 null 如果加载失败) */ + spriteFrame1: SpriteFrame | null; + /** 图片2 SpriteFrame(可能为 null 如果加载失败) */ + spriteFrame2: SpriteFrame | null; + /** 图片1 文本说明 */ + image1Description: string | null; + /** 图片2 文本说明 */ + image2Description: string | null; + /** 谐音梗说明 */ + punchline: string | null; /** 线索1(未通关时为 null,进入关卡后由 enter 接口获取) */ clue1: string | null; /** 线索2(未通关时为 null) */ diff --git a/assets/scripts/utils/LevelDataManager.ts b/assets/scripts/utils/LevelDataManager.ts index 12bc427..0a70f0a 100644 --- a/assets/scripts/utils/LevelDataManager.ts +++ b/assets/scripts/utils/LevelDataManager.ts @@ -78,10 +78,11 @@ export class LevelDataManager { const firstLevel = apiData[0]; onProgress?.(0.3, '正在加载游戏必备资源...'); - const spriteFrame = await this._loadImage(firstLevel.imageUrl); - if (spriteFrame) { - this._levelConfigs.set(0, this._createRuntimeConfig(firstLevel, spriteFrame)); - } + const [spriteFrame1, spriteFrame2] = await Promise.all([ + this._loadImage(firstLevel.image1Url), + this._loadImage(firstLevel.image2Url), + ]); + this._levelConfigs.set(0, this._createRuntimeConfig(firstLevel, spriteFrame1, spriteFrame2)); console.log('[LevelDataManager] 初始化完成,第一关资源已加载'); onProgress?.(0.8, '游戏资源加载完成'); @@ -245,15 +246,18 @@ export class LevelDataManager { console.log(`[LevelDataManager] 开始加载关卡 ${index} 资源...`); const data = this._apiData[index]; - const spriteFrame = await this._loadImage(data.imageUrl); + const [spriteFrame1, spriteFrame2] = await Promise.all([ + this._loadImage(data.image1Url), + this._loadImage(data.image2Url), + ]); this._loadingLevels.delete(index); - if (!spriteFrame) { - console.error(`[LevelDataManager] 加载关卡 ${index} 图片失败`); + if (!spriteFrame1) { + console.error(`[LevelDataManager] 加载关卡 ${index} 图片1失败`); return null; } - const config = this._createRuntimeConfig(data, spriteFrame); + const config = this._createRuntimeConfig(data, spriteFrame1, spriteFrame2); this._levelConfigs.set(index, config); console.log(`[LevelDataManager] 关卡 ${index} 资源加载完成`); @@ -358,13 +362,18 @@ export class LevelDataManager { /** * 创建运行时关卡配置 * @param data API 关卡数据 - * @param spriteFrame 已加载的精灵帧 + * @param spriteFrame1 已加载的图片1精灵帧 + * @param spriteFrame2 已加载的图片2精灵帧 */ - private _createRuntimeConfig(data: ApiLevelData, spriteFrame: SpriteFrame | null): RuntimeLevelConfig { + private _createRuntimeConfig(data: ApiLevelData, spriteFrame1: SpriteFrame | null, spriteFrame2: SpriteFrame | null): RuntimeLevelConfig { return { id: data.id, name: `第${data.level}关`, - spriteFrame: spriteFrame, + spriteFrame1: spriteFrame1, + spriteFrame2: spriteFrame2, + image1Description: data.image1Description, + image2Description: data.image2Description, + punchline: data.punchline, clue1: data.hint1, clue2: data.hint2, clue3: data.hint3, diff --git a/assets/scripts/utils/ShareManager.ts b/assets/scripts/utils/ShareManager.ts index 5a7ed41..69447b1 100644 --- a/assets/scripts/utils/ShareManager.ts +++ b/assets/scripts/utils/ShareManager.ts @@ -23,7 +23,7 @@ export class ShareManager { /** 分享模式的关卡数据(null 表示正常模式) */ private _shareLevels: RuntimeLevelConfig[] | null = null; - /** API 返回的原始关卡数据(保留 imageUrl 用于懒加载) */ + /** API 返回的原始关卡数据(保留 image1Url/image2Url 用于懒加载) */ private _shareApiLevels: ShareLevelData[] = []; private _shareTitle: string = ''; @@ -91,7 +91,11 @@ export class ShareManager { const runtimeLevels: RuntimeLevelConfig[] = levels.map((level) => ({ id: level.id, name: `第${level.level}关`, - spriteFrame: null, + spriteFrame1: null, + spriteFrame2: null, + image1Description: level.image1Description, + image2Description: level.image2Description, + punchline: level.punchline, clue1: level.hint1, clue2: level.hint2, clue3: level.hint3, @@ -99,11 +103,17 @@ export class ShareManager { completed: false, })); - // 预加载首关图片 + // 预加载首关图片(两张并行加载) if (levels.length > 0) { - const sf = await this._loadImage(levels[0].imageUrl); - if (sf) { - runtimeLevels[0].spriteFrame = sf; + const [sf1, sf2] = await Promise.all([ + this._loadImage(levels[0].image1Url), + this._loadImage(levels[0].image2Url), + ]); + if (sf1) { + runtimeLevels[0].spriteFrame1 = sf1; + } + if (sf2) { + runtimeLevels[0].spriteFrame2 = sf2; } } @@ -143,15 +153,21 @@ export class ShareManager { } const config = this._shareLevels[index]; - if (config.spriteFrame) { + if (config.spriteFrame1) { return config; } const apiLevel = this._shareApiLevels[index]; - if (apiLevel?.imageUrl) { - const sf = await this._loadImage(apiLevel.imageUrl); - if (sf) { - config.spriteFrame = sf; + if (apiLevel?.image1Url) { + const [sf1, sf2] = await Promise.all([ + this._loadImage(apiLevel.image1Url), + this._loadImage(apiLevel.image2Url), + ]); + if (sf1) { + config.spriteFrame1 = sf1; + } + if (sf2) { + config.spriteFrame2 = sf2; } } diff --git a/assets/scripts/utils/StorageManager.ts b/assets/scripts/utils/StorageManager.ts index 6aa4f52..55fb116 100644 --- a/assets/scripts/utils/StorageManager.ts +++ b/assets/scripts/utils/StorageManager.ts @@ -38,8 +38,8 @@ export class StorageManager { /** 默认体力值 */ private static readonly DEFAULT_STAMINA: StaminaInfo = { - current: 5, - max: 5, + current: 50, + max: 50, nextRecoverAt: null, };