From 306d92c2fe9270459b480e923753f5d39be3328b Mon Sep 17 00:00:00 2001 From: "YZ\\249929363" <249929363@qq.com> Date: Wed, 30 Oct 2024 15:21:35 +0800 Subject: [PATCH] =?UTF-8?q?=E9=B2=81=E7=8F=AD=E9=94=81=E5=9B=BE=E9=A6=96?= =?UTF-8?q?=E6=AC=A1=E6=8F=90=E4=BA=A4=EF=BC=8C=E5=B7=AE=E7=BB=93=E6=9D=9F?= =?UTF-8?q?=E9=A1=B5UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/Scene.meta | 13 + assets/Scene/GameScene.fire | 3210 ++ assets/Scene/GameScene.fire.meta | 8 + assets/Scene/LoadScene.fire | 2603 ++ assets/Scene/LoadScene.fire.meta | 8 + assets/Scene/OverScene.fire | 274 + assets/Scene/OverScene.fire.meta | 8 + assets/Scene/RankScene.fire | 5234 +++ assets/Scene/RankScene.fire.meta | 8 + assets/Script.meta | 13 + assets/Script/Block.ts | 137 + assets/Script/Block.ts.meta | 10 + assets/Script/DynamicAtlasManager.js | 10 + assets/Script/DynamicAtlasManager.js.meta | 10 + assets/Script/GameManager.ts | 498 + assets/Script/GameManager.ts.meta | 10 + assets/Script/GameOver.ts | 99 + assets/Script/GameOver.ts.meta | 10 + assets/Script/Load.ts | 53 + assets/Script/Load.ts.meta | 10 + assets/Script/RankManager.ts | 133 + assets/Script/RankManager.ts.meta | 10 + assets/Script/Sdk.meta | 13 + assets/Script/Sdk/DouyinEntranceView.ts | 29 + assets/Script/Sdk/DouyinEntranceView.ts.meta | 10 + assets/Script/Sdk/MiniGameManager.ts | 340 + assets/Script/Sdk/MiniGameManager.ts.meta | 10 + assets/Script/Sdk/MiniGameSdk.ts | 1130 + assets/Script/Sdk/MiniGameSdk.ts.meta | 10 + assets/Script/module.meta | 13 + assets/Script/module/Config.meta | 13 + assets/Script/module/Config/GameConfig.ts | 335 + .../Script/module/Config/GameConfig.ts.meta | 10 + assets/Script/module/Crypto.meta | 13 + assets/Script/module/Crypto/HttpUtil.ts | 248 + assets/Script/module/Crypto/HttpUtil.ts.meta | 10 + assets/Script/module/Crypto/crypto-js.min.js | 3 + .../module/Crypto/crypto-js.min.js.meta | 10 + assets/Script/module/GameStart.meta | 13 + .../Script/module/GameStart/GameAppStart.ts | 108 + .../module/GameStart/GameAppStart.ts.meta | 10 + assets/Script/module/Music.meta | 13 + assets/Script/module/Music/AudioManager.ts | 245 + .../Script/module/Music/AudioManager.ts.meta | 10 + assets/Script/module/Notification.meta | 13 + .../module/Notification/Notification.ts | 45 + .../module/Notification/Notification.ts.meta | 10 + assets/Script/module/RankList.meta | 13 + assets/Script/module/RankList/ItemRender.ts | 76 + .../Script/module/RankList/ItemRender.ts.meta | 10 + assets/Script/module/RankList/List.ts | 592 + assets/Script/module/RankList/List.ts.meta | 10 + assets/Script/module/Share.meta | 13 + assets/Script/module/Share.zip | Bin 0 -> 1863 bytes assets/Script/module/Share.zip.meta | 6 + assets/Script/module/Share/share.ts | 101 + assets/Script/module/Share/share.ts.meta | 10 + assets/Script/module/Storage.meta | 13 + assets/Script/module/Storage/Storage.ts | 27 + assets/Script/module/Storage/Storage.ts.meta | 10 + assets/Script/module/Tool.meta | 13 + assets/Script/module/Tool/GameTool.ts | 370 + assets/Script/module/Tool/GameTool.ts.meta | 10 + assets/Shader.meta | 13 + assets/Texture.meta | 13 + assets/Texture/HelloWorld.png | Bin 0 -> 37864 bytes assets/Texture/HelloWorld.png.meta | 38 + assets/Texture/singleColor.png | Bin 0 -> 82 bytes assets/Texture/singleColor.png.meta | 38 + assets/animation.meta | 13 + assets/migration.meta | 13 + .../use_v2.1-2.2.1_cc.Toggle_event.js | 17 + .../use_v2.1-2.2.1_cc.Toggle_event.js.meta | 10 + assets/music.meta | 13 + assets/prefab.meta | 13 + assets/prefab/Canvas.prefab | 5181 +++ assets/prefab/Canvas.prefab.meta | 9 + assets/prefab/RankListItem.prefab | 1364 + assets/prefab/RankListItem.prefab.meta | 9 + assets/prefab/kuang1.prefab | 578 + assets/prefab/kuang1.prefab.meta | 9 + assets/prefab/kuang2.prefab | 578 + assets/prefab/kuang2.prefab.meta | 9 + assets/res.meta | 13 + assets/resources.meta | 25 + assets/resources/Json.meta | 13 + assets/resources/Json/CLICK_DATA.json | 18 + assets/resources/Json/CLICK_DATA.json.meta | 6 + assets/resources/Json/GM_INFO.json | 14 + assets/resources/Json/GM_INFO.json.meta | 6 + assets/resources/Json/LEVEL_INFO.json | 205 + assets/resources/Json/LEVEL_INFO.json.meta | 6 + assets/resources/UI.meta | 13 + assets/resources/UI/publicUI.plist | 506 + assets/resources/UI/publicUI.plist.meta | 749 + assets/resources/UI/publicUI.png | Bin 0 -> 562542 bytes assets/resources/UI/publicUI.png.meta | 15 + assets/resources/bg.meta | 13 + assets/resources/bg/bg.jpg | Bin 0 -> 50539 bytes assets/resources/bg/bg.jpg.meta | 38 + build-templates/splash.jpg | Bin 0 -> 17076 bytes build-templates/web-mobile/index.html | 324 + build-templates/web-mobile/main.js | 140 + build-templates/web-mobile/splash.jpg | Bin 0 -> 17076 bytes build-templates/web-mobile/style-mobile.css | 124 + build-templates/web-mobile2/index.html | 261 + build/LockDiagram.zip | Bin 0 -> 604830 bytes .../assets/internal/config.52d36.json | 1 + .../internal/import/05/05464a930.3c4b0.json | 1 + .../assets/internal/index.52d36.js | 1 + ...e94c-56a7-410f-bd1a-fc7483f7d14a.cea68.png | Bin 0 -> 82 bytes .../LockDiagram/assets/main/config.472d7.json | 1 + .../main/import/02/02989e146.ec823.json | 1 + .../main/import/08/08429701d.2aec9.json | 1 + .../main/import/09/09b7df110.c36e8.json | 1 + build/LockDiagram/assets/main/index.472d7.js | 1 + ...1142-4c83-4933-afca-cb7a17f67053.c06a9.png | Bin 0 -> 1050 bytes ...f3c2-02bb-4874-81f7-f2dea6970f18.83fcc.png | Bin 0 -> 1114 bytes ...e89b-faa2-4484-bea6-5c01dd9f06e2.90cf4.png | Bin 0 -> 1082 bytes .../assets/resources/config.f4f05.json | 1 + .../resources/import/07/07d38f4d7.573ad.json | 1 + .../resources/import/0f/0f61f5a15.84bdb.json | 1 + ...dcb-5dba-4b13-960c-9ebe6d17a7db.22ebd.json | 1 + ...479-18ec-4787-b35f-e9a9b3247435.a519a.json | 1 + ...acf-2b42-4105-b5ae-89638029e07b.a3eff.json | 1 + ...e63-4f2f-467d-9c55-0a889d5533a8.34d4f.json | 1 + .../assets/resources/index.f4f05.js | 1 + ...f908-1e8d-428d-8838-b74f3929a189.ac198.jpg | Bin 0 -> 46956 bytes ...ac2e-33a3-4be5-a30b-842c51bdc0c2.9da80.png | Bin 0 -> 168431 bytes build/LockDiagram/cocos2d-js-min.15c3a.js | 1 + build/LockDiagram/favicon.8de18.ico | Bin 0 -> 1150 bytes build/LockDiagram/index.html | 324 + build/LockDiagram/main.cdbb7.js | 140 + build/LockDiagram/splash.85cfd.png | Bin 0 -> 13709 bytes build/LockDiagram/splash.99e2c.jpg | Bin 0 -> 17076 bytes build/LockDiagram/src/settings.3df40.js | 1 + build/LockDiagram/style-desktop.dfd76.css | 116 + build/LockDiagram/style-mobile.0003a.css | 124 + creator.d.ts | 32078 ++++++++++++++++ jsconfig.json | 15 + .../0004d1cf-a0ad-47d8-ab17-34d3db9d35a3.json | 409 + .../018d5411-05b3-492b-821b-ba3edf7060f7.json | 28 + .../0275e94c-56a7-410f-bd1a-fc7483f7d14a.json | 4 + .../0275e94c-56a7-410f-bd1a-fc7483f7d14a.png | Bin 0 -> 82 bytes .../0291c134-b3da-4098-b7b5-e397edbe947f.json | 4 + .../0291c134-b3da-4098-b7b5-e397edbe947f.png | Bin 0 -> 1047 bytes .../046f172c-1574-488b-bbb8-6415a9adb96d.bin | Bin 0 -> 840 bytes .../046f172c-1574-488b-bbb8-6415a9adb96d.json | 90 + .../0cf30284-9073-46bc-9eba-e62b69dbbff3.json | 117 + .../0d272a57-5428-450e-a8b9-1574c3d89951.js | 339 + ...d272a57-5428-450e-a8b9-1574c3d89951.js.map | 1 + .../0d784963-d024-4ea6-a7db-03be0ad63010.json | 384 + .../0e42ba95-1fa1-46aa-b2cf-143cd1bcee2c.json | 101 + .../0e93aeaa-0b53-4e40-b8e0-6268b4e07bd7.json | 125 + .../10029dfc-5454-4977-bd11-8809e8f48cac.js | 34 + ...0029dfc-5454-4977-bd11-8809e8f48cac.js.map | 1 + .../115286d1-2e10-49ee-aab4-341583f607e8.json | 106 + .../144c3297-af63-49e8-b8ef-1cfa29b3be28.json | 84 + .../14c74869-bdb4-4f57-86d8-a7875de2be30.bin | Bin 0 -> 47136 bytes .../14c74869-bdb4-4f57-86d8-a7875de2be30.json | 90 + .../17af346d-cfbe-4ad2-b2d3-e469d3dcc1a8.json | 28 + .../1a32fc76-f0bd-4f66-980f-56929c0ca0b3.json | 28 + .../1c5e4038-953a-44c2-b620-0bbfc6170477.json | 109 + .../1f55e3be-b89b-4b79-88de-47fd31018044.json | 112 + .../232d2782-c4bd-4bb4-9e01-909f03d6d3b9.json | 108 + .../27756ebb-3d33-44b0-9b96-e858fadd4dd4.json | 105 + .../2874f8dd-416c-4440-81b7-555975426e93.json | 136 + .../29158224-f8dd-4661-a796-1ffab537140e.json | 28 + .../2a296057-247c-4a1c-bbeb-0548b6c98650.json | 21 + .../2a7c0036-e0b3-4fe1-8998-89a54b8a2bec.json | 653 + .../2b0b3da4-9df3-4131-9317-1ca35bbd4d64.json | 28 + .../2be36297-9abb-4fee-8049-9ed5e271da8a.json | 6 + .../2be36297-9abb-4fee-8049-9ed5e271da8a.mp4 | Bin 0 -> 213983 bytes .../2c937608-2562-40ea-b264-7395df6f0cea.json | 249 + .../2cddbdcb-5dba-4b13-960c-9ebe6d17a7db.json | 210 + .../2d2f792f-a40c-49bb-a189-ed176a246e49.json | 5235 +++ .../2d69a479-18ec-4787-b35f-e9a9b3247435.json | 20 + .../2d9a4b85-b0ab-4c46-84c5-18f393ab2058.json | 109 + .../2eb8b301-8d35-4fbd-9828-dd913d7ce29b.json | 28 + .../30682f87-9f0d-4f17-8a44-72863791461b.json | 102 + .../31bc895a-c003-4566-a9f3-2e54ae1c17dc.json | 28 + .../31d8962d-babb-4ec7-be19-8e9f54a4ea99.json | 28 + .../32044bd2-481f-4cf1-a656-e2b2fb1594eb.json | 710 + .../36b6bacf-2b42-4105-b5ae-89638029e07b.json | 28 + .../39ad0953-ab6b-4eb7-abaa-aaaf656e7582.json | 28 + .../3a7bb79f-32fd-422e-ada2-96f518fed422.json | 10 + .../3bbdb0f6-c5f6-45de-9f33-8b5cbafb4d6d.bin | Bin 0 -> 47136 bytes .../3bbdb0f6-c5f6-45de-9f33-8b5cbafb4d6d.json | 90 + .../3ed7577b-2b8a-450f-8e76-2251304b2916.json | 28 + .../3f376125-a699-40ca-ad05-04d662eaa1f2.json | 109 + .../410fb916-8721-4663-bab8-34397391ace7.json | 28 + .../4218b31d-564a-49f9-b83a-2b4192387ed9.json | 28 + .../4300f941-ba03-4d19-bdb1-959ef40f1852.json | 28 + .../430eccbf-bf2c-4e6e-8c0c-884bbb487f32.json | 194 + .../432fa09c-cf03-4cff-a186-982604408a07.json | 39 + .../43bfc27a-ff6e-45b3-87c7-504d0f781397.js | 364 + ...3bfc27a-ff6e-45b3-87c7-504d0f781397.js.map | 1 + .../43dea732-290b-4a7e-9d64-70a5f9812381.json | 29 + .../454ad829-851a-40ea-8ab9-941e828357ca.js | 85 + ...54ad829-851a-40ea-8ab9-941e828357ca.js.map | 1 + .../4648a734-e59a-4d14-a07b-ce9ca5d5c62b.json | 29 + .../4660cc1d-1e61-43fe-89e0-40e0323c1096.json | 29 + .../466d4f9b-e5f4-4ea8-85d5-3c6e9a65658a.json | 18 + .../472df5d3-35e7-4184-9e6c-7f41bee65ee3.json | 28 + .../48f0add1-7741-4b9a-b25e-186ad457e4ac.json | 28 + .../4a37dd57-78cd-4cec-aad4-f11a73d12b63.json | 104 + .../4b9c5a7e-c645-48a4-9aca-5df381ce4ef5.json | 275 + .../4bab67cb-18e6-4099-b840-355f0473f890.json | 4 + .../4bab67cb-18e6-4099-b840-355f0473f890.png | Bin 0 -> 1178 bytes .../4c7c1f0b-ebe7-4025-8148-ac61cb2a2d8f.json | 29 + .../4dd594fe-a599-468b-a82e-4a36f5133ec1.json | 28 + .../4eaf518b-35ec-4262-928d-4d497c3f2830.json | 3211 ++ .../55403563-1a5a-4f2f-9eb8-82c762641837.js | 52 + ...5403563-1a5a-4f2f-9eb8-82c762641837.js.map | 1 + .../567dcd80-8bf4-4535-8a5a-313f1caf078a.json | 4 + .../567dcd80-8bf4-4535-8a5a-313f1caf078a.png | Bin 0 -> 1675 bytes .../573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc.json | 28 + .../58403fe7-d7a2-426b-9b19-84d3236731a8.js | 250 + ...8403fe7-d7a2-426b-9b19-84d3236731a8.js.map | 1 + .../5965ffac-69da-4b55-bcde-9225d0613c28.json | 250 + .../5c3bb932-6c3c-468f-88a9-c8c61d458641.json | 28 + .../5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f.js | 15 + ...c9b8159-89a3-4b32-b303-b3d4f7ac1c9f.js.map | 1 + .../5e344685-dbe0-4509-8b66-27ddb72e2d23.json | 578 + .../5f924dc2-df92-448a-8b30-f4d0cbaae29c.json | 28 + .../5fe5dcaa-b513-4dc5-a166-573627b3a159.json | 28 + .../600301aa-3357-4a10-b086-84f011fa32ba.json | 4 + .../600301aa-3357-4a10-b086-84f011fa32ba.png | Bin 0 -> 7518 bytes .../617323dd-11f4-4dd3-8eec-0caf6b3b45b9.json | 4 + .../617323dd-11f4-4dd3-8eec-0caf6b3b45b9.png | Bin 0 -> 1187 bytes .../61906da3-7003-4bda-9abc-5769c76faee4.json | 117 + .../61aeb05b-3b32-452b-8eed-2b76deeed554.json | 535 + .../61d4c718-db3b-4b31-8221-f16bea3cf030.js | 99 + ...1d4c718-db3b-4b31-8221-f16bea3cf030.js.map | 1 + .../67e68bc9-dad5-4ad9-a2d8-7e03d458e32f.json | 28 + .../6827ca32-0107-4552-bab2-dfb31799bb44.json | 28 + .../6aa0aa6a-ebee-4155-a088-a687a6aadec4.json | 4 + .../6aa0aa6a-ebee-4155-a088-a687a6aadec4.png | Bin 0 -> 37864 bytes .../6c5cf6e1-b044-4eac-9431-835644d57381.json | 103 + .../6c9ef10d-b479-420b-bfe6-39cdda6a8ae0.json | 109 + .../6d91e591-4ce0-465c-809f-610ec95019c6.json | 333 + .../6e056173-d285-473c-b206-40a7fff5386e.json | 4 + .../6e056173-d285-473c-b206-40a7fff5386e.png | Bin 0 -> 1633 bytes .../6f801092-0c37-4f30-89ef-c8d960825b36.json | 10 + .../70bbeb73-6dc2-4ee4-8faf-76b3a0e34ec4.json | 2327 ++ .../70d7cdb0-04cd-41bb-9480-c06a4785f386.json | 123 + .../70f7f908-1e8d-428d-8838-b74f3929a189.jpg | Bin 0 -> 46956 bytes .../70f7f908-1e8d-428d-8838-b74f3929a189.json | 4 + .../71561142-4c83-4933-afca-cb7a17f67053.json | 4 + .../71561142-4c83-4933-afca-cb7a17f67053.png | Bin 0 -> 1050 bytes .../7168db62-0edc-42e5-be5d-682cf6c4a165.json | 28 + .../7290c680-dfdc-4c59-9736-a614cc2a8bcf.js | 134 + ...290c680-dfdc-4c59-9736-a614cc2a8bcf.js.map | 1 + .../73a0903d-d80e-4e3c-aa67-f999543c08f5.json | 4 + .../73a0903d-d80e-4e3c-aa67-f999543c08f5.png | Bin 0 -> 1422 bytes .../759e19f2-e8f6-4dcd-87af-a85388ae698e.json | 29 + .../75ce7d0b-eaf0-4929-90cf-d6b7c1bf8f6b.json | 29 + .../771a3d9a-4013-4654-a777-fbaea0c93280.js | 365 + ...71a3d9a-4013-4654-a777-fbaea0c93280.js.map | 1 + .../785a442c-3ceb-45be-a46e-7317f625f3b9.json | 150 + .../7a17de6e-227a-46b1-8009-e7157d4d3acf.bin | Bin 0 -> 4512 bytes .../7a17de6e-227a-46b1-8009-e7157d4d3acf.json | 90 + .../7a231473-d1df-4b05-8620-6376c36252c1.js | 24 + ...a231473-d1df-4b05-8620-6376c36252c1.js.map | 1 + .../7afd064b-113f-480e-b793-8817d19f63c3.json | 10 + .../7d4ffd94-42d6-4045-9db7-a744229adfc4.json | 28 + .../7de03a80-4457-438d-95a7-3e7cdffd6086.json | 96 + .../805c69df-dfdf-4759-97ae-5a7341f424c7.js | 141 + ...05c69df-dfdf-4759-97ae-5a7341f424c7.js.map | 1 + .../829a282c-b049-4019-bd38-5ace8d8a6417.json | 939 + .../83f5eff8-3385-4f95-9b76-8da0aa1d96cd.bin | Bin 0 -> 49248 bytes .../83f5eff8-3385-4f95-9b76-8da0aa1d96cd.json | 90 + .../8425f40b-c669-446a-ab0b-2daf892ef5c2.json | 28 + .../8521a571-ee5b-4fbf-9ad2-7b39af586606.json | 28 + .../88e79fd5-96b4-4a77-a1f4-312467171014.json | 28 + .../897ef7a1-4860-4f64-968d-f5924b18668a.json | 123 + .../8a024faa-e4af-4cae-9c5c-693bee7120c1.js | 58 + ...a024faa-e4af-4cae-9c5c-693bee7120c1.js.map | 1 + .../8a96b965-2dc0-4e03-aa90-3b79cb93b5b4.json | 4 + .../8a96b965-2dc0-4e03-aa90-3b79cb93b5b4.png | Bin 0 -> 1439 bytes .../8c5001fd-07ee-4a4b-a8a0-63e15195e94d.json | 100 + .../8cdb44ac-a3f6-449f-b354-7cd48cf84061.json | 28 + .../90004ad6-2f6d-40e1-93ef-b714375c6f06.json | 28 + .../907b33f0-998c-44e2-b2a3-697e56dc3ebb.json | 28 + .../954fec8b-cd16-4bb9-a3b7-7719660e7558.json | 215 + .../96083d03-c332-4a3f-9386-d03e2d19e8ee.json | 112 + .../972b9a4d-47ee-4c74-b5c3-61d8a69bc29f.json | 421 + .../99170b0b-d210-46f1-b213-7d9e3f23098a.json | 4 + .../99170b0b-d210-46f1-b213-7d9e3f23098a.png | Bin 0 -> 1177 bytes .../9bbda31e-ad49-43c9-aaf2-f7d9896bac69.json | 28 + .../9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d.json | 2604 ++ .../9d60001f-b5f4-4726-a629-2659e3ded0b8.json | 4 + .../9d60001f-b5f4-4726-a629-2659e3ded0b8.png | Bin 0 -> 2066 bytes .../a153945d-2511-4c14-be7b-05d242f47d57.json | 15 + .../a1ef2fc9-9c57-418a-8f69-6bed9a7a0e7f.bin | Bin 0 -> 5072 bytes .../a1ef2fc9-9c57-418a-8f69-6bed9a7a0e7f.json | 90 + .../a23235d1-15db-4b95-8439-a2e005bfff91.json | 28 + .../a264c8df-80f6-474f-9fe5-28b7ae529d95.json | 1364 + .../a579b610-0aa7-4a8b-b36b-be34cc834dcc.bin | Bin 0 -> 161028 bytes .../a579b610-0aa7-4a8b-b36b-be34cc834dcc.json | 7 + .../a5849239-3ad3-41d1-8ab4-ae9fea11f97f.json | 24 + .../a8027877-d8d6-4645-97a0-52d4a0123dba.json | 4 + .../a8027877-d8d6-4645-97a0-52d4a0123dba.png | Bin 0 -> 82 bytes .../a87cc147-01b2-43f8-8e42-a7ca90b0c757.json | 109 + .../ab2fdde9-10c2-44e4-bfe1-fcfcc1a86aa9.json | 884 + .../abc2cb62-7852-4525-a90d-d474487b88f2.json | 653 + .../b0432040-dbde-438c-839c-ba2b5d18a3b5.js | 536 + ...0432040-dbde-438c-839c-ba2b5d18a3b5.js.map | 1 + .../b181c1e4-0a72-4a91-bfb0-ae6f36ca60bd.json | 4 + .../b181c1e4-0a72-4a91-bfb0-ae6f36ca60bd.png | Bin 0 -> 1622 bytes .../b2687ac4-099e-403c-a192-ff477686f4f5.json | 9 + ...b2687ac4-099e-403c-a192-ff477686f4f5.plist | 108 + .../b42c4fc1-4cd1-4b12-b206-930cea3d49ca.json | 6 + .../b42c4fc1-4cd1-4b12-b206-930cea3d49ca.zip | Bin 0 -> 1863 bytes .../b430cea3-6ab3-4106-b073-26c698918edd.bin | Bin 0 -> 6944 bytes .../b430cea3-6ab3-4106-b073-26c698918edd.json | 90 + .../b43ff3c2-02bb-4874-81f7-f2dea6970f18.json | 4 + .../b43ff3c2-02bb-4874-81f7-f2dea6970f18.png | Bin 0 -> 1114 bytes .../b48b18b9-75c5-4181-93d6-b21930056fdc.json | 578 + .../b5fc2cf2-7942-483d-be1f-bbeadc4714ad.json | 109 + .../b8223619-7e38-47c4-841f-9160c232495a.json | 9 + ...b8223619-7e38-47c4-841f-9160c232495a.plist | 108 + .../badb56f7-1c07-4fbb-87e6-5bfd805fe81b.json | 5181 +++ .../bb42ed8e-0867-4584-ad63-b6f84f83bba8.json | 28 + .../bf0a434c-84dd-4a8e-a08a-7a36f180cc75.json | 1217 + .../c0040c95-c57f-49cd-9cbc-12316b73d0d4.json | 54 + .../c05702e6-5198-4968-b28e-8c2e26a9ba5b.json | 29 + .../c1af99dd-ee03-40f7-9609-d3887d0dd357.js | 1102 + ...1af99dd-ee03-40f7-9609-d3887d0dd357.js.map | 1 + .../c25b9d50-c8fc-4d27-beeb-6e7c1f2e5c0f.json | 4 + .../c25b9d50-c8fc-4d27-beeb-6e7c1f2e5c0f.png | Bin 0 -> 1553 bytes .../c4480a0a-6ac5-443f-8b40-361a14257fc8.json | 16 + .../c5692be7-8703-45e4-9f67-23b54d290356.js | 281 + ...5692be7-8703-45e4-9f67-23b54d290356.js.map | 1 + .../c88956df-63f6-4e7a-bf8b-54d5eeb0baa5.json | 28 + .../c9fa51ff-3f01-4601-8f80-325d1b11dab7.json | 28 + .../ca0f9934-a015-436e-9402-f8e30d4c5de6.js | 105 + ...a0f9934-a015-436e-9402-f8e30d4c5de6.js.map | 1 + .../ca79d87e-f6f3-4659-97fe-e43a65fec29c.json | 29 + .../ca8401fe-ad6e-41a8-bd46-8e3e4e9945be.json | 875 + .../cd33edea-55f5-46c2-958d-357a01384a36.json | 177 + .../ceccf45d-0116-4337-8d8d-412fb1ad3c82.json | 28 + .../cf7e0bb8-a81c-44a9-ad79-d28d43991032.json | 10 + .../cfef78f1-c8df-49b7-8ed0-4c953ace2621.json | 4 + .../cfef78f1-c8df-49b7-8ed0-4c953ace2621.png | Bin 0 -> 1140 bytes .../d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2.json | 4 + .../d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2.png | Bin 0 -> 168431 bytes .../d0a82d39-bede-46c4-b698-c81ff0dedfff.json | 4 + .../d0a82d39-bede-46c4-b698-c81ff0dedfff.png | Bin 0 -> 1439 bytes .../d1b8be49-b0a0-435c-83b7-552bed4bbe35.json | 1222 + .../d29077ba-1627-4a72-9579-7b56a235340c.json | 4 + .../d29077ba-1627-4a72-9579-7b56a235340c.png | Bin 0 -> 1062 bytes .../d54211e0-2d28-4528-88e3-e5fd7c9b59a2.js | 622 + ...54211e0-2d28-4528-88e3-e5fd7c9b59a2.js.map | 1 + .../d63eea97-a92e-4657-94ff-8a733a2b4680.js | 149 + ...63eea97-a92e-4657-94ff-8a733a2b4680.js.map | 1 + .../d6d3ca85-4681-47c1-b5dd-d036a9d39ea2.json | 4 + .../d6d3ca85-4681-47c1-b5dd-d036a9d39ea2.png | Bin 0 -> 1047 bytes .../d81ec8ad-247c-4e62-aa3c-d35c4193c7af.json | 4 + .../d81ec8ad-247c-4e62-aa3c-d35c4193c7af.png | Bin 0 -> 158 bytes .../d95bdbfb-bf4f-4a2a-8063-86225e9583e9.json | 29 + .../da411ff5-9431-4eec-8943-b2e786a28415.json | 29 + .../dbd5f874-ad43-4e46-be45-1bf69f991c8b.json | 28 + .../ddb99b39-7004-47cd-9705-751905c43c46.json | 117 + .../de510076-056b-484f-b94c-83bef217d0e1.json | 109 + .../e02d87d4-e599-4d16-8001-e14891ac6506.json | 16 + .../e1d57e63-4f2f-467d-9c55-0a889d5533a8.json | 23 + .../e2f00085-c597-422d-9759-52c360279106.json | 825 + .../e64e1a97-c93f-4257-ab34-80341d8ff79d.js | 2328 ++ ...64e1a97-c93f-4257-ab34-80341d8ff79d.js.map | 1 + .../e74a9f7d-2031-4e69-bcb2-9998174088b2.js | 167 + ...74a9f7d-2031-4e69-bcb2-9998174088b2.js.map | 1 + .../e7aba14b-f956-4480-b254-8d57832e273f.json | 28 + .../e851e89b-faa2-4484-bea6-5c01dd9f06e2.json | 4 + .../e851e89b-faa2-4484-bea6-5c01dd9f06e2.png | Bin 0 -> 1082 bytes .../e883b928-b637-44d9-af8d-b83e856a59f7.json | 104 + .../e93d3fa9-8c21-4375-8a21-14ba84066c77.bin | Bin 0 -> 140 bytes .../e93d3fa9-8c21-4375-8a21-14ba84066c77.json | 90 + .../e9ec654c-97a2-4787-9325-e6a10375219a.json | 28 + .../eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432.json | 16 + .../ed88f13d-fcad-4848-aa35-65a2cb973584.json | 512 + .../edd215b9-2796-4a05-aaf5-81f96c9281ce.json | 4 + .../edd215b9-2796-4a05-aaf5-81f96c9281ce.png | Bin 0 -> 1038 bytes .../efd308fc-f5b3-4bb7-9f63-775758313496.json | 28 + .../f0048c10-f03e-4c97-b9d3-3506e1d58952.json | 28 + .../f18742d7-56d2-4eb5-ae49-2d9d710b37c8.json | 182 + .../f3bd36fb-2048-4444-9c18-217ee62b977a.json | 29 + .../f3d1de85-86c8-49b8-a555-7fed576930c6.json | 29 + .../f5331fd2-bf42-4ee3-a3fd-3e1657600eff.json | 117 + .../fa0cfe73-8bf5-45e4-a2fd-e6edd6a92f69.json | 28 + .../fcbb8992-3ccc-4495-a18b-7d436796a992.json | 29 + .../fe1417b6-fe6b-46a4-ae7c-9fd331f33a2a.json | 109 + .../ff0e91c7-55c6-4086-a39f-cb6e457b8c3b.json | 28 + library/uuid-to-mtime.json | 812 + local/builder.json | 20 + local/layout.editor.json | 109 + local/local.json | 21 + local/node-library.json | 6 + local/node-tree-state.json | 321 + local/settings.json | 7 + project.json | 8 + settings/builder.json | 58 + settings/project.json | 60 + settings/services.json | 6 + temp/BackupAssets/assets/Scene/GameScene.fire | 3210 ++ temp/BackupAssets/assets/Scene/LoadScene.fire | 2603 ++ temp/BackupAssets/assets/Scene/OverScene.fire | 274 + temp/BackupAssets/assets/Scene/RankScene.fire | 5234 +++ temp/BackupAssets/assets/prefab/Canvas.prefab | 5183 +++ temp/BackupAssets/assets/prefab/Middle.prefab | 4030 ++ temp/BackupAssets/assets/prefab/kuang1.prefab | 578 + temp/BackupAssets/assets/prefab/kuang2.prefab | 576 + temp/RemovedMetas/Script/Ball.ts.meta | 10 + .../6bc1eafbe1f4f6f74220e523a312d225.gltf | 859 + .../buffer.bin | Bin 0 -> 161028 bytes temp/quick-scripts/dst/__file_stats__.json | 1 + temp/quick-scripts/dst/__qc_bundle__.js | 7778 ++++ temp/quick-scripts/dst/__qc_index__.js | 44 + temp/quick-scripts/dst/__quick_compile__.js | 267 + temp/quick-scripts/dst/assets/Script/Block.js | 171 + .../dst/assets/Script/DynamicAtlasManager.js | 37 + .../dst/assets/Script/GameManager.js | 558 + .../dst/assets/Script/GameOver.js | 163 + temp/quick-scripts/dst/assets/Script/Load.js | 107 + .../dst/assets/Script/RankManager.js | 189 + .../assets/Script/Sdk/DouyinEntranceView.js | 80 + .../dst/assets/Script/Sdk/MiniGameManager.js | 361 + .../dst/assets/Script/Sdk/MiniGameSdk.js | 1124 + .../assets/Script/module/Config/GameConfig.js | 303 + .../assets/Script/module/Crypto/HttpUtil.js | 387 + .../Script/module/Crypto/crypto-js.min.js | 2350 ++ .../Script/module/GameStart/GameAppStart.js | 121 + .../Script/module/Music/AudioManager.js | 272 + .../module/Notification/Notification.js | 74 + .../Script/module/RankList/ItemRender.js | 127 + .../dst/assets/Script/module/RankList/List.js | 644 + .../dst/assets/Script/module/Share/share.js | 156 + .../assets/Script/module/Storage/Storage.js | 56 + .../dst/assets/Script/module/Tool/GameTool.js | 386 + .../use_v2.1-2.2.1_cc.Toggle_event.js | 46 + temp/quick-scripts/src/__qc_index__.js | 22 + temp/quick-scripts/src/assets/Script/Block.js | 149 + .../src/assets/Script/Block.js.map | 1 + .../src/assets/Script/DynamicAtlasManager.js | 15 + .../assets/Script/DynamicAtlasManager.js.map | 1 + .../src/assets/Script/GameManager.js | 536 + .../src/assets/Script/GameManager.js.map | 1 + .../src/assets/Script/GameOver.js | 141 + .../src/assets/Script/GameOver.js.map | 1 + temp/quick-scripts/src/assets/Script/Load.js | 85 + .../src/assets/Script/Load.js.map | 1 + .../src/assets/Script/RankManager.js | 167 + .../src/assets/Script/RankManager.js.map | 1 + .../assets/Script/Sdk/DouyinEntranceView.js | 58 + .../Script/Sdk/DouyinEntranceView.js.map | 1 + .../src/assets/Script/Sdk/MiniGameManager.js | 339 + .../assets/Script/Sdk/MiniGameManager.js.map | 1 + .../src/assets/Script/Sdk/MiniGameSdk.js | 1102 + .../src/assets/Script/Sdk/MiniGameSdk.js.map | 1 + .../assets/Script/module/Config/GameConfig.js | 281 + .../Script/module/Config/GameConfig.js.map | 1 + .../assets/Script/module/Crypto/HttpUtil.js | 365 + .../Script/module/Crypto/HttpUtil.js.map | 1 + .../Script/module/Crypto/crypto-js.min.js | 2328 ++ .../Script/module/Crypto/crypto-js.min.js.map | 1 + .../Script/module/GameStart/GameAppStart.js | 99 + .../module/GameStart/GameAppStart.js.map | 1 + .../Script/module/Music/AudioManager.js | 250 + .../Script/module/Music/AudioManager.js.map | 1 + .../module/Notification/Notification.js | 52 + .../module/Notification/Notification.js.map | 1 + .../Script/module/RankList/ItemRender.js | 105 + .../Script/module/RankList/ItemRender.js.map | 1 + .../src/assets/Script/module/RankList/List.js | 622 + .../assets/Script/module/RankList/List.js.map | 1 + .../src/assets/Script/module/Share/share.js | 134 + .../assets/Script/module/Share/share.js.map | 1 + .../assets/Script/module/Storage/Storage.js | 34 + .../Script/module/Storage/Storage.js.map | 1 + .../src/assets/Script/module/Tool/GameTool.js | 364 + .../assets/Script/module/Tool/GameTool.js.map | 1 + .../use_v2.1-2.2.1_cc.Toggle_event.js | 24 + .../use_v2.1-2.2.1_cc.Toggle_event.js.map | 1 + tsconfig.json | 19 + 资源文件/UI/again.png | Bin 0 -> 19393 bytes 资源文件/UI/cictrl.png | Bin 0 -> 2637 bytes 资源文件/UI/daan.png | Bin 0 -> 2370 bytes 资源文件/UI/err.png | Bin 0 -> 4190 bytes 资源文件/UI/gezi.png | Bin 0 -> 141510 bytes 资源文件/UI/kuang1.jpg | Bin 0 -> 2527 bytes 资源文件/UI/kuang2.jpg | Bin 0 -> 1766 bytes 资源文件/UI/kuang3.jpg | Bin 0 -> 2151 bytes 资源文件/UI/lun.png | Bin 0 -> 119331 bytes 资源文件/UI/over_Logo.png | Bin 0 -> 38938 bytes 资源文件/UI/progress.png | Bin 0 -> 4394 bytes 资源文件/UI/progressOver.png | Bin 0 -> 6971 bytes 资源文件/UI/start.png | Bin 0 -> 18652 bytes 资源文件/UI/texture1.png | Bin 0 -> 2358 bytes 资源文件/UI/texture10.png | Bin 0 -> 1742 bytes 资源文件/UI/texture11.png | Bin 0 -> 4270 bytes 资源文件/UI/texture12.png | Bin 0 -> 2303 bytes 资源文件/UI/texture13.png | Bin 0 -> 4487 bytes 资源文件/UI/texture14.png | Bin 0 -> 1743 bytes 资源文件/UI/texture18.png | Bin 0 -> 2320 bytes 资源文件/UI/texture19.png | Bin 0 -> 2060 bytes 资源文件/UI/texture2.png | Bin 0 -> 1498 bytes 资源文件/UI/texture20.png | Bin 0 -> 1590 bytes 资源文件/UI/texture3.png | Bin 0 -> 1835 bytes 资源文件/UI/texture4.png | Bin 0 -> 3311 bytes 资源文件/UI/texture5.png | Bin 0 -> 1860 bytes 资源文件/UI/texture6.png | Bin 0 -> 2186 bytes 资源文件/UI/texture7.png | Bin 0 -> 1963 bytes 资源文件/UI/texture8.png | Bin 0 -> 1566 bytes 资源文件/UI/texture9.png | Bin 0 -> 2415 bytes 资源文件/UI/tiao.png | Bin 0 -> 3875 bytes 资源文件/UI/time_icon.png | Bin 0 -> 2938 bytes 资源文件/UI/tip.png | Bin 0 -> 12926 bytes 资源文件/UI/tipBg.png | Bin 0 -> 65919 bytes 资源文件/UI/top.png | Bin 0 -> 67350 bytes 资源文件/UI/xingxing01.png | Bin 0 -> 1422 bytes 资源文件/UI/xingxing02.png | Bin 0 -> 2572 bytes 资源文件/UI/yes.png | Bin 0 -> 5079 bytes 资源文件/bg.jpg | Bin 0 -> 50539 bytes 资源文件/publicUI.plist | 596 + 资源文件/publicUI.png | Bin 0 -> 562542 bytes 资源文件/x效果图.jpg | Bin 0 -> 107647 bytes 资源文件/图形/texture1.png | Bin 0 -> 2358 bytes 资源文件/图形/texture10.png | Bin 0 -> 1742 bytes 资源文件/图形/texture11.png | Bin 0 -> 1590 bytes 资源文件/图形/texture12.png | Bin 0 -> 2303 bytes 资源文件/图形/texture13.png | Bin 0 -> 4487 bytes 资源文件/图形/texture14.png | Bin 0 -> 1743 bytes 资源文件/图形/texture15.png | Bin 0 -> 4270 bytes 资源文件/图形/texture16.png | Bin 0 -> 1566 bytes 资源文件/图形/texture17.png | Bin 0 -> 1963 bytes 资源文件/图形/texture2.png | Bin 0 -> 1498 bytes 资源文件/图形/texture3.png | Bin 0 -> 1835 bytes 资源文件/图形/texture4.png | Bin 0 -> 3311 bytes 资源文件/图形/texture5.png | Bin 0 -> 1860 bytes 资源文件/图形/texture6.png | Bin 0 -> 2186 bytes 资源文件/图形/texture7.png | Bin 0 -> 2320 bytes 资源文件/图形/texture8.png | Bin 0 -> 2060 bytes 资源文件/图形/texture9.png | Bin 0 -> 2415 bytes 资源文件/存图10.28/again.png | Bin 0 -> 19393 bytes 资源文件/存图10.28/bg.jpg | Bin 0 -> 50539 bytes 资源文件/存图10.28/cictrl.png | Bin 0 -> 2637 bytes 资源文件/存图10.28/lun.png | Bin 0 -> 119331 bytes 资源文件/存图10.28/over_Logo.png | Bin 0 -> 38938 bytes 资源文件/存图10.28/progressOver.png | Bin 0 -> 6971 bytes 资源文件/存图10.28/tiao.png | Bin 0 -> 3875 bytes 资源文件/存图10.28/色值.jpg | Bin 0 -> 69553 bytes 资源文件/存图10.28/鲁班锁图_结算界面.jpg | Bin 0 -> 103308 bytes 资源文件/色值.jpg | Bin 0 -> 37522 bytes 资源文件/鲁班锁图存图/bg.jpg | Bin 0 -> 46956 bytes 资源文件/鲁班锁图存图/gezi.png | Bin 0 -> 141510 bytes 资源文件/鲁班锁图存图/toutu.png | Bin 0 -> 67350 bytes 资源文件/鲁班锁图存图/xingxing01.png | Bin 0 -> 1422 bytes 资源文件/鲁班锁图存图/xingxing02.png | Bin 0 -> 2572 bytes 资源文件/鲁班锁图存图/x效果图.jpg | Bin 0 -> 107647 bytes 资源文件/鲁班锁图存图/时间图标.png | Bin 0 -> 2938 bytes 资源文件/鲁班锁图存图/色值.jpg | Bin 0 -> 37522 bytes 资源文件/鲁班锁图存图/进度条01.png | Bin 0 -> 4394 bytes 资源文件/鲁班锁图存图9.20/bg.jpg | Bin 0 -> 92404 bytes 资源文件/鲁班锁图存图9.20/kuang1.jpg | Bin 0 -> 2527 bytes 资源文件/鲁班锁图存图9.20/kuang2.jpg | Bin 0 -> 1766 bytes 资源文件/鲁班锁图存图9.20/kuang3.jpg | Bin 0 -> 2151 bytes 566 files changed, 154219 insertions(+) create mode 100644 assets/Scene.meta create mode 100644 assets/Scene/GameScene.fire create mode 100644 assets/Scene/GameScene.fire.meta create mode 100644 assets/Scene/LoadScene.fire create mode 100644 assets/Scene/LoadScene.fire.meta create mode 100644 assets/Scene/OverScene.fire create mode 100644 assets/Scene/OverScene.fire.meta create mode 100644 assets/Scene/RankScene.fire create mode 100644 assets/Scene/RankScene.fire.meta create mode 100644 assets/Script.meta create mode 100644 assets/Script/Block.ts create mode 100644 assets/Script/Block.ts.meta create mode 100644 assets/Script/DynamicAtlasManager.js create mode 100644 assets/Script/DynamicAtlasManager.js.meta create mode 100644 assets/Script/GameManager.ts create mode 100644 assets/Script/GameManager.ts.meta create mode 100644 assets/Script/GameOver.ts create mode 100644 assets/Script/GameOver.ts.meta create mode 100644 assets/Script/Load.ts create mode 100644 assets/Script/Load.ts.meta create mode 100644 assets/Script/RankManager.ts create mode 100644 assets/Script/RankManager.ts.meta create mode 100644 assets/Script/Sdk.meta create mode 100644 assets/Script/Sdk/DouyinEntranceView.ts create mode 100644 assets/Script/Sdk/DouyinEntranceView.ts.meta create mode 100644 assets/Script/Sdk/MiniGameManager.ts create mode 100644 assets/Script/Sdk/MiniGameManager.ts.meta create mode 100644 assets/Script/Sdk/MiniGameSdk.ts create mode 100644 assets/Script/Sdk/MiniGameSdk.ts.meta create mode 100644 assets/Script/module.meta create mode 100644 assets/Script/module/Config.meta create mode 100644 assets/Script/module/Config/GameConfig.ts create mode 100644 assets/Script/module/Config/GameConfig.ts.meta create mode 100644 assets/Script/module/Crypto.meta create mode 100644 assets/Script/module/Crypto/HttpUtil.ts create mode 100644 assets/Script/module/Crypto/HttpUtil.ts.meta create mode 100644 assets/Script/module/Crypto/crypto-js.min.js create mode 100644 assets/Script/module/Crypto/crypto-js.min.js.meta create mode 100644 assets/Script/module/GameStart.meta create mode 100644 assets/Script/module/GameStart/GameAppStart.ts create mode 100644 assets/Script/module/GameStart/GameAppStart.ts.meta create mode 100644 assets/Script/module/Music.meta create mode 100644 assets/Script/module/Music/AudioManager.ts create mode 100644 assets/Script/module/Music/AudioManager.ts.meta create mode 100644 assets/Script/module/Notification.meta create mode 100644 assets/Script/module/Notification/Notification.ts create mode 100644 assets/Script/module/Notification/Notification.ts.meta create mode 100644 assets/Script/module/RankList.meta create mode 100644 assets/Script/module/RankList/ItemRender.ts create mode 100644 assets/Script/module/RankList/ItemRender.ts.meta create mode 100644 assets/Script/module/RankList/List.ts create mode 100644 assets/Script/module/RankList/List.ts.meta create mode 100644 assets/Script/module/Share.meta create mode 100644 assets/Script/module/Share.zip create mode 100644 assets/Script/module/Share.zip.meta create mode 100644 assets/Script/module/Share/share.ts create mode 100644 assets/Script/module/Share/share.ts.meta create mode 100644 assets/Script/module/Storage.meta create mode 100644 assets/Script/module/Storage/Storage.ts create mode 100644 assets/Script/module/Storage/Storage.ts.meta create mode 100644 assets/Script/module/Tool.meta create mode 100644 assets/Script/module/Tool/GameTool.ts create mode 100644 assets/Script/module/Tool/GameTool.ts.meta create mode 100644 assets/Shader.meta create mode 100644 assets/Texture.meta create mode 100644 assets/Texture/HelloWorld.png create mode 100644 assets/Texture/HelloWorld.png.meta create mode 100644 assets/Texture/singleColor.png create mode 100644 assets/Texture/singleColor.png.meta create mode 100644 assets/animation.meta create mode 100644 assets/migration.meta create mode 100644 assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js create mode 100644 assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js.meta create mode 100644 assets/music.meta create mode 100644 assets/prefab.meta create mode 100644 assets/prefab/Canvas.prefab create mode 100644 assets/prefab/Canvas.prefab.meta create mode 100644 assets/prefab/RankListItem.prefab create mode 100644 assets/prefab/RankListItem.prefab.meta create mode 100644 assets/prefab/kuang1.prefab create mode 100644 assets/prefab/kuang1.prefab.meta create mode 100644 assets/prefab/kuang2.prefab create mode 100644 assets/prefab/kuang2.prefab.meta create mode 100644 assets/res.meta create mode 100644 assets/resources.meta create mode 100644 assets/resources/Json.meta create mode 100644 assets/resources/Json/CLICK_DATA.json create mode 100644 assets/resources/Json/CLICK_DATA.json.meta create mode 100644 assets/resources/Json/GM_INFO.json create mode 100644 assets/resources/Json/GM_INFO.json.meta create mode 100644 assets/resources/Json/LEVEL_INFO.json create mode 100644 assets/resources/Json/LEVEL_INFO.json.meta create mode 100644 assets/resources/UI.meta create mode 100644 assets/resources/UI/publicUI.plist create mode 100644 assets/resources/UI/publicUI.plist.meta create mode 100644 assets/resources/UI/publicUI.png create mode 100644 assets/resources/UI/publicUI.png.meta create mode 100644 assets/resources/bg.meta create mode 100644 assets/resources/bg/bg.jpg create mode 100644 assets/resources/bg/bg.jpg.meta create mode 100644 build-templates/splash.jpg create mode 100644 build-templates/web-mobile/index.html create mode 100644 build-templates/web-mobile/main.js create mode 100644 build-templates/web-mobile/splash.jpg create mode 100644 build-templates/web-mobile/style-mobile.css create mode 100644 build-templates/web-mobile2/index.html create mode 100644 build/LockDiagram.zip create mode 100644 build/LockDiagram/assets/internal/config.52d36.json create mode 100644 build/LockDiagram/assets/internal/import/05/05464a930.3c4b0.json create mode 100644 build/LockDiagram/assets/internal/index.52d36.js create mode 100644 build/LockDiagram/assets/internal/native/02/0275e94c-56a7-410f-bd1a-fc7483f7d14a.cea68.png create mode 100644 build/LockDiagram/assets/main/config.472d7.json create mode 100644 build/LockDiagram/assets/main/import/02/02989e146.ec823.json create mode 100644 build/LockDiagram/assets/main/import/08/08429701d.2aec9.json create mode 100644 build/LockDiagram/assets/main/import/09/09b7df110.c36e8.json create mode 100644 build/LockDiagram/assets/main/index.472d7.js create mode 100644 build/LockDiagram/assets/main/native/71/71561142-4c83-4933-afca-cb7a17f67053.c06a9.png create mode 100644 build/LockDiagram/assets/main/native/b4/b43ff3c2-02bb-4874-81f7-f2dea6970f18.83fcc.png create mode 100644 build/LockDiagram/assets/main/native/e8/e851e89b-faa2-4484-bea6-5c01dd9f06e2.90cf4.png create mode 100644 build/LockDiagram/assets/resources/config.f4f05.json create mode 100644 build/LockDiagram/assets/resources/import/07/07d38f4d7.573ad.json create mode 100644 build/LockDiagram/assets/resources/import/0f/0f61f5a15.84bdb.json create mode 100644 build/LockDiagram/assets/resources/import/2c/2cddbdcb-5dba-4b13-960c-9ebe6d17a7db.22ebd.json create mode 100644 build/LockDiagram/assets/resources/import/2d/2d69a479-18ec-4787-b35f-e9a9b3247435.a519a.json create mode 100644 build/LockDiagram/assets/resources/import/36/36b6bacf-2b42-4105-b5ae-89638029e07b.a3eff.json create mode 100644 build/LockDiagram/assets/resources/import/e1/e1d57e63-4f2f-467d-9c55-0a889d5533a8.34d4f.json create mode 100644 build/LockDiagram/assets/resources/index.f4f05.js create mode 100644 build/LockDiagram/assets/resources/native/70/70f7f908-1e8d-428d-8838-b74f3929a189.ac198.jpg create mode 100644 build/LockDiagram/assets/resources/native/d0/d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2.9da80.png create mode 100644 build/LockDiagram/cocos2d-js-min.15c3a.js create mode 100644 build/LockDiagram/favicon.8de18.ico create mode 100644 build/LockDiagram/index.html create mode 100644 build/LockDiagram/main.cdbb7.js create mode 100644 build/LockDiagram/splash.85cfd.png create mode 100644 build/LockDiagram/splash.99e2c.jpg create mode 100644 build/LockDiagram/src/settings.3df40.js create mode 100644 build/LockDiagram/style-desktop.dfd76.css create mode 100644 build/LockDiagram/style-mobile.0003a.css create mode 100644 creator.d.ts create mode 100644 jsconfig.json create mode 100644 library/imports/00/0004d1cf-a0ad-47d8-ab17-34d3db9d35a3.json create mode 100644 library/imports/01/018d5411-05b3-492b-821b-ba3edf7060f7.json create mode 100644 library/imports/02/0275e94c-56a7-410f-bd1a-fc7483f7d14a.json create mode 100644 library/imports/02/0275e94c-56a7-410f-bd1a-fc7483f7d14a.png create mode 100644 library/imports/02/0291c134-b3da-4098-b7b5-e397edbe947f.json create mode 100644 library/imports/02/0291c134-b3da-4098-b7b5-e397edbe947f.png create mode 100644 library/imports/04/046f172c-1574-488b-bbb8-6415a9adb96d.bin create mode 100644 library/imports/04/046f172c-1574-488b-bbb8-6415a9adb96d.json create mode 100644 library/imports/0c/0cf30284-9073-46bc-9eba-e62b69dbbff3.json create mode 100644 library/imports/0d/0d272a57-5428-450e-a8b9-1574c3d89951.js create mode 100644 library/imports/0d/0d272a57-5428-450e-a8b9-1574c3d89951.js.map create mode 100644 library/imports/0d/0d784963-d024-4ea6-a7db-03be0ad63010.json create mode 100644 library/imports/0e/0e42ba95-1fa1-46aa-b2cf-143cd1bcee2c.json create mode 100644 library/imports/0e/0e93aeaa-0b53-4e40-b8e0-6268b4e07bd7.json create mode 100644 library/imports/10/10029dfc-5454-4977-bd11-8809e8f48cac.js create mode 100644 library/imports/10/10029dfc-5454-4977-bd11-8809e8f48cac.js.map create mode 100644 library/imports/11/115286d1-2e10-49ee-aab4-341583f607e8.json create mode 100644 library/imports/14/144c3297-af63-49e8-b8ef-1cfa29b3be28.json create mode 100644 library/imports/14/14c74869-bdb4-4f57-86d8-a7875de2be30.bin create mode 100644 library/imports/14/14c74869-bdb4-4f57-86d8-a7875de2be30.json create mode 100644 library/imports/17/17af346d-cfbe-4ad2-b2d3-e469d3dcc1a8.json create mode 100644 library/imports/1a/1a32fc76-f0bd-4f66-980f-56929c0ca0b3.json create mode 100644 library/imports/1c/1c5e4038-953a-44c2-b620-0bbfc6170477.json create mode 100644 library/imports/1f/1f55e3be-b89b-4b79-88de-47fd31018044.json create mode 100644 library/imports/23/232d2782-c4bd-4bb4-9e01-909f03d6d3b9.json create mode 100644 library/imports/27/27756ebb-3d33-44b0-9b96-e858fadd4dd4.json create mode 100644 library/imports/28/2874f8dd-416c-4440-81b7-555975426e93.json create mode 100644 library/imports/29/29158224-f8dd-4661-a796-1ffab537140e.json create mode 100644 library/imports/2a/2a296057-247c-4a1c-bbeb-0548b6c98650.json create mode 100644 library/imports/2a/2a7c0036-e0b3-4fe1-8998-89a54b8a2bec.json create mode 100644 library/imports/2b/2b0b3da4-9df3-4131-9317-1ca35bbd4d64.json create mode 100644 library/imports/2b/2be36297-9abb-4fee-8049-9ed5e271da8a.json create mode 100644 library/imports/2b/2be36297-9abb-4fee-8049-9ed5e271da8a.mp4 create mode 100644 library/imports/2c/2c937608-2562-40ea-b264-7395df6f0cea.json create mode 100644 library/imports/2c/2cddbdcb-5dba-4b13-960c-9ebe6d17a7db.json create mode 100644 library/imports/2d/2d2f792f-a40c-49bb-a189-ed176a246e49.json create mode 100644 library/imports/2d/2d69a479-18ec-4787-b35f-e9a9b3247435.json create mode 100644 library/imports/2d/2d9a4b85-b0ab-4c46-84c5-18f393ab2058.json create mode 100644 library/imports/2e/2eb8b301-8d35-4fbd-9828-dd913d7ce29b.json create mode 100644 library/imports/30/30682f87-9f0d-4f17-8a44-72863791461b.json create mode 100644 library/imports/31/31bc895a-c003-4566-a9f3-2e54ae1c17dc.json create mode 100644 library/imports/31/31d8962d-babb-4ec7-be19-8e9f54a4ea99.json create mode 100644 library/imports/32/32044bd2-481f-4cf1-a656-e2b2fb1594eb.json create mode 100644 library/imports/36/36b6bacf-2b42-4105-b5ae-89638029e07b.json create mode 100644 library/imports/39/39ad0953-ab6b-4eb7-abaa-aaaf656e7582.json create mode 100644 library/imports/3a/3a7bb79f-32fd-422e-ada2-96f518fed422.json create mode 100644 library/imports/3b/3bbdb0f6-c5f6-45de-9f33-8b5cbafb4d6d.bin create mode 100644 library/imports/3b/3bbdb0f6-c5f6-45de-9f33-8b5cbafb4d6d.json create mode 100644 library/imports/3e/3ed7577b-2b8a-450f-8e76-2251304b2916.json create mode 100644 library/imports/3f/3f376125-a699-40ca-ad05-04d662eaa1f2.json create mode 100644 library/imports/41/410fb916-8721-4663-bab8-34397391ace7.json create mode 100644 library/imports/42/4218b31d-564a-49f9-b83a-2b4192387ed9.json create mode 100644 library/imports/43/4300f941-ba03-4d19-bdb1-959ef40f1852.json create mode 100644 library/imports/43/430eccbf-bf2c-4e6e-8c0c-884bbb487f32.json create mode 100644 library/imports/43/432fa09c-cf03-4cff-a186-982604408a07.json create mode 100644 library/imports/43/43bfc27a-ff6e-45b3-87c7-504d0f781397.js create mode 100644 library/imports/43/43bfc27a-ff6e-45b3-87c7-504d0f781397.js.map create mode 100644 library/imports/43/43dea732-290b-4a7e-9d64-70a5f9812381.json create mode 100644 library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js create mode 100644 library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js.map create mode 100644 library/imports/46/4648a734-e59a-4d14-a07b-ce9ca5d5c62b.json create mode 100644 library/imports/46/4660cc1d-1e61-43fe-89e0-40e0323c1096.json create mode 100644 library/imports/46/466d4f9b-e5f4-4ea8-85d5-3c6e9a65658a.json create mode 100644 library/imports/47/472df5d3-35e7-4184-9e6c-7f41bee65ee3.json create mode 100644 library/imports/48/48f0add1-7741-4b9a-b25e-186ad457e4ac.json create mode 100644 library/imports/4a/4a37dd57-78cd-4cec-aad4-f11a73d12b63.json create mode 100644 library/imports/4b/4b9c5a7e-c645-48a4-9aca-5df381ce4ef5.json create mode 100644 library/imports/4b/4bab67cb-18e6-4099-b840-355f0473f890.json create mode 100644 library/imports/4b/4bab67cb-18e6-4099-b840-355f0473f890.png create mode 100644 library/imports/4c/4c7c1f0b-ebe7-4025-8148-ac61cb2a2d8f.json create mode 100644 library/imports/4d/4dd594fe-a599-468b-a82e-4a36f5133ec1.json create mode 100644 library/imports/4e/4eaf518b-35ec-4262-928d-4d497c3f2830.json create mode 100644 library/imports/55/55403563-1a5a-4f2f-9eb8-82c762641837.js create mode 100644 library/imports/55/55403563-1a5a-4f2f-9eb8-82c762641837.js.map create mode 100644 library/imports/56/567dcd80-8bf4-4535-8a5a-313f1caf078a.json create mode 100644 library/imports/56/567dcd80-8bf4-4535-8a5a-313f1caf078a.png create mode 100644 library/imports/57/573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc.json create mode 100644 library/imports/58/58403fe7-d7a2-426b-9b19-84d3236731a8.js create mode 100644 library/imports/58/58403fe7-d7a2-426b-9b19-84d3236731a8.js.map create mode 100644 library/imports/59/5965ffac-69da-4b55-bcde-9225d0613c28.json create mode 100644 library/imports/5c/5c3bb932-6c3c-468f-88a9-c8c61d458641.json create mode 100644 library/imports/5c/5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f.js create mode 100644 library/imports/5c/5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f.js.map create mode 100644 library/imports/5e/5e344685-dbe0-4509-8b66-27ddb72e2d23.json create mode 100644 library/imports/5f/5f924dc2-df92-448a-8b30-f4d0cbaae29c.json create mode 100644 library/imports/5f/5fe5dcaa-b513-4dc5-a166-573627b3a159.json create mode 100644 library/imports/60/600301aa-3357-4a10-b086-84f011fa32ba.json create mode 100644 library/imports/60/600301aa-3357-4a10-b086-84f011fa32ba.png create mode 100644 library/imports/61/617323dd-11f4-4dd3-8eec-0caf6b3b45b9.json create mode 100644 library/imports/61/617323dd-11f4-4dd3-8eec-0caf6b3b45b9.png create mode 100644 library/imports/61/61906da3-7003-4bda-9abc-5769c76faee4.json create mode 100644 library/imports/61/61aeb05b-3b32-452b-8eed-2b76deeed554.json create mode 100644 library/imports/61/61d4c718-db3b-4b31-8221-f16bea3cf030.js create mode 100644 library/imports/61/61d4c718-db3b-4b31-8221-f16bea3cf030.js.map create mode 100644 library/imports/67/67e68bc9-dad5-4ad9-a2d8-7e03d458e32f.json create mode 100644 library/imports/68/6827ca32-0107-4552-bab2-dfb31799bb44.json create mode 100644 library/imports/6a/6aa0aa6a-ebee-4155-a088-a687a6aadec4.json create mode 100644 library/imports/6a/6aa0aa6a-ebee-4155-a088-a687a6aadec4.png create mode 100644 library/imports/6c/6c5cf6e1-b044-4eac-9431-835644d57381.json create mode 100644 library/imports/6c/6c9ef10d-b479-420b-bfe6-39cdda6a8ae0.json create mode 100644 library/imports/6d/6d91e591-4ce0-465c-809f-610ec95019c6.json create mode 100644 library/imports/6e/6e056173-d285-473c-b206-40a7fff5386e.json create mode 100644 library/imports/6e/6e056173-d285-473c-b206-40a7fff5386e.png create mode 100644 library/imports/6f/6f801092-0c37-4f30-89ef-c8d960825b36.json create mode 100644 library/imports/70/70bbeb73-6dc2-4ee4-8faf-76b3a0e34ec4.json create mode 100644 library/imports/70/70d7cdb0-04cd-41bb-9480-c06a4785f386.json create mode 100644 library/imports/70/70f7f908-1e8d-428d-8838-b74f3929a189.jpg create mode 100644 library/imports/70/70f7f908-1e8d-428d-8838-b74f3929a189.json create mode 100644 library/imports/71/71561142-4c83-4933-afca-cb7a17f67053.json create mode 100644 library/imports/71/71561142-4c83-4933-afca-cb7a17f67053.png create mode 100644 library/imports/71/7168db62-0edc-42e5-be5d-682cf6c4a165.json create mode 100644 library/imports/72/7290c680-dfdc-4c59-9736-a614cc2a8bcf.js create mode 100644 library/imports/72/7290c680-dfdc-4c59-9736-a614cc2a8bcf.js.map create mode 100644 library/imports/73/73a0903d-d80e-4e3c-aa67-f999543c08f5.json create mode 100644 library/imports/73/73a0903d-d80e-4e3c-aa67-f999543c08f5.png create mode 100644 library/imports/75/759e19f2-e8f6-4dcd-87af-a85388ae698e.json create mode 100644 library/imports/75/75ce7d0b-eaf0-4929-90cf-d6b7c1bf8f6b.json create mode 100644 library/imports/77/771a3d9a-4013-4654-a777-fbaea0c93280.js create mode 100644 library/imports/77/771a3d9a-4013-4654-a777-fbaea0c93280.js.map create mode 100644 library/imports/78/785a442c-3ceb-45be-a46e-7317f625f3b9.json create mode 100644 library/imports/7a/7a17de6e-227a-46b1-8009-e7157d4d3acf.bin create mode 100644 library/imports/7a/7a17de6e-227a-46b1-8009-e7157d4d3acf.json create mode 100644 library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js create mode 100644 library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js.map create mode 100644 library/imports/7a/7afd064b-113f-480e-b793-8817d19f63c3.json create mode 100644 library/imports/7d/7d4ffd94-42d6-4045-9db7-a744229adfc4.json create mode 100644 library/imports/7d/7de03a80-4457-438d-95a7-3e7cdffd6086.json create mode 100644 library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js create mode 100644 library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js.map create mode 100644 library/imports/82/829a282c-b049-4019-bd38-5ace8d8a6417.json create mode 100644 library/imports/83/83f5eff8-3385-4f95-9b76-8da0aa1d96cd.bin create mode 100644 library/imports/83/83f5eff8-3385-4f95-9b76-8da0aa1d96cd.json create mode 100644 library/imports/84/8425f40b-c669-446a-ab0b-2daf892ef5c2.json create mode 100644 library/imports/85/8521a571-ee5b-4fbf-9ad2-7b39af586606.json create mode 100644 library/imports/88/88e79fd5-96b4-4a77-a1f4-312467171014.json create mode 100644 library/imports/89/897ef7a1-4860-4f64-968d-f5924b18668a.json create mode 100644 library/imports/8a/8a024faa-e4af-4cae-9c5c-693bee7120c1.js create mode 100644 library/imports/8a/8a024faa-e4af-4cae-9c5c-693bee7120c1.js.map create mode 100644 library/imports/8a/8a96b965-2dc0-4e03-aa90-3b79cb93b5b4.json create mode 100644 library/imports/8a/8a96b965-2dc0-4e03-aa90-3b79cb93b5b4.png create mode 100644 library/imports/8c/8c5001fd-07ee-4a4b-a8a0-63e15195e94d.json create mode 100644 library/imports/8c/8cdb44ac-a3f6-449f-b354-7cd48cf84061.json create mode 100644 library/imports/90/90004ad6-2f6d-40e1-93ef-b714375c6f06.json create mode 100644 library/imports/90/907b33f0-998c-44e2-b2a3-697e56dc3ebb.json create mode 100644 library/imports/95/954fec8b-cd16-4bb9-a3b7-7719660e7558.json create mode 100644 library/imports/96/96083d03-c332-4a3f-9386-d03e2d19e8ee.json create mode 100644 library/imports/97/972b9a4d-47ee-4c74-b5c3-61d8a69bc29f.json create mode 100644 library/imports/99/99170b0b-d210-46f1-b213-7d9e3f23098a.json create mode 100644 library/imports/99/99170b0b-d210-46f1-b213-7d9e3f23098a.png create mode 100644 library/imports/9b/9bbda31e-ad49-43c9-aaf2-f7d9896bac69.json create mode 100644 library/imports/9c/9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d.json create mode 100644 library/imports/9d/9d60001f-b5f4-4726-a629-2659e3ded0b8.json create mode 100644 library/imports/9d/9d60001f-b5f4-4726-a629-2659e3ded0b8.png create mode 100644 library/imports/a1/a153945d-2511-4c14-be7b-05d242f47d57.json create mode 100644 library/imports/a1/a1ef2fc9-9c57-418a-8f69-6bed9a7a0e7f.bin create mode 100644 library/imports/a1/a1ef2fc9-9c57-418a-8f69-6bed9a7a0e7f.json create mode 100644 library/imports/a2/a23235d1-15db-4b95-8439-a2e005bfff91.json create mode 100644 library/imports/a2/a264c8df-80f6-474f-9fe5-28b7ae529d95.json create mode 100644 library/imports/a5/a579b610-0aa7-4a8b-b36b-be34cc834dcc.bin create mode 100644 library/imports/a5/a579b610-0aa7-4a8b-b36b-be34cc834dcc.json create mode 100644 library/imports/a5/a5849239-3ad3-41d1-8ab4-ae9fea11f97f.json create mode 100644 library/imports/a8/a8027877-d8d6-4645-97a0-52d4a0123dba.json create mode 100644 library/imports/a8/a8027877-d8d6-4645-97a0-52d4a0123dba.png create mode 100644 library/imports/a8/a87cc147-01b2-43f8-8e42-a7ca90b0c757.json create mode 100644 library/imports/ab/ab2fdde9-10c2-44e4-bfe1-fcfcc1a86aa9.json create mode 100644 library/imports/ab/abc2cb62-7852-4525-a90d-d474487b88f2.json create mode 100644 library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js create mode 100644 library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js.map create mode 100644 library/imports/b1/b181c1e4-0a72-4a91-bfb0-ae6f36ca60bd.json create mode 100644 library/imports/b1/b181c1e4-0a72-4a91-bfb0-ae6f36ca60bd.png create mode 100644 library/imports/b2/b2687ac4-099e-403c-a192-ff477686f4f5.json create mode 100644 library/imports/b2/b2687ac4-099e-403c-a192-ff477686f4f5.plist create mode 100644 library/imports/b4/b42c4fc1-4cd1-4b12-b206-930cea3d49ca.json create mode 100644 library/imports/b4/b42c4fc1-4cd1-4b12-b206-930cea3d49ca.zip create mode 100644 library/imports/b4/b430cea3-6ab3-4106-b073-26c698918edd.bin create mode 100644 library/imports/b4/b430cea3-6ab3-4106-b073-26c698918edd.json create mode 100644 library/imports/b4/b43ff3c2-02bb-4874-81f7-f2dea6970f18.json create mode 100644 library/imports/b4/b43ff3c2-02bb-4874-81f7-f2dea6970f18.png create mode 100644 library/imports/b4/b48b18b9-75c5-4181-93d6-b21930056fdc.json create mode 100644 library/imports/b5/b5fc2cf2-7942-483d-be1f-bbeadc4714ad.json create mode 100644 library/imports/b8/b8223619-7e38-47c4-841f-9160c232495a.json create mode 100644 library/imports/b8/b8223619-7e38-47c4-841f-9160c232495a.plist create mode 100644 library/imports/ba/badb56f7-1c07-4fbb-87e6-5bfd805fe81b.json create mode 100644 library/imports/bb/bb42ed8e-0867-4584-ad63-b6f84f83bba8.json create mode 100644 library/imports/bf/bf0a434c-84dd-4a8e-a08a-7a36f180cc75.json create mode 100644 library/imports/c0/c0040c95-c57f-49cd-9cbc-12316b73d0d4.json create mode 100644 library/imports/c0/c05702e6-5198-4968-b28e-8c2e26a9ba5b.json create mode 100644 library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js create mode 100644 library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js.map create mode 100644 library/imports/c2/c25b9d50-c8fc-4d27-beeb-6e7c1f2e5c0f.json create mode 100644 library/imports/c2/c25b9d50-c8fc-4d27-beeb-6e7c1f2e5c0f.png create mode 100644 library/imports/c4/c4480a0a-6ac5-443f-8b40-361a14257fc8.json create mode 100644 library/imports/c5/c5692be7-8703-45e4-9f67-23b54d290356.js create mode 100644 library/imports/c5/c5692be7-8703-45e4-9f67-23b54d290356.js.map create mode 100644 library/imports/c8/c88956df-63f6-4e7a-bf8b-54d5eeb0baa5.json create mode 100644 library/imports/c9/c9fa51ff-3f01-4601-8f80-325d1b11dab7.json create mode 100644 library/imports/ca/ca0f9934-a015-436e-9402-f8e30d4c5de6.js create mode 100644 library/imports/ca/ca0f9934-a015-436e-9402-f8e30d4c5de6.js.map create mode 100644 library/imports/ca/ca79d87e-f6f3-4659-97fe-e43a65fec29c.json create mode 100644 library/imports/ca/ca8401fe-ad6e-41a8-bd46-8e3e4e9945be.json create mode 100644 library/imports/cd/cd33edea-55f5-46c2-958d-357a01384a36.json create mode 100644 library/imports/ce/ceccf45d-0116-4337-8d8d-412fb1ad3c82.json create mode 100644 library/imports/cf/cf7e0bb8-a81c-44a9-ad79-d28d43991032.json create mode 100644 library/imports/cf/cfef78f1-c8df-49b7-8ed0-4c953ace2621.json create mode 100644 library/imports/cf/cfef78f1-c8df-49b7-8ed0-4c953ace2621.png create mode 100644 library/imports/d0/d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2.json create mode 100644 library/imports/d0/d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2.png create mode 100644 library/imports/d0/d0a82d39-bede-46c4-b698-c81ff0dedfff.json create mode 100644 library/imports/d0/d0a82d39-bede-46c4-b698-c81ff0dedfff.png create mode 100644 library/imports/d1/d1b8be49-b0a0-435c-83b7-552bed4bbe35.json create mode 100644 library/imports/d2/d29077ba-1627-4a72-9579-7b56a235340c.json create mode 100644 library/imports/d2/d29077ba-1627-4a72-9579-7b56a235340c.png create mode 100644 library/imports/d5/d54211e0-2d28-4528-88e3-e5fd7c9b59a2.js create mode 100644 library/imports/d5/d54211e0-2d28-4528-88e3-e5fd7c9b59a2.js.map create mode 100644 library/imports/d6/d63eea97-a92e-4657-94ff-8a733a2b4680.js create mode 100644 library/imports/d6/d63eea97-a92e-4657-94ff-8a733a2b4680.js.map create mode 100644 library/imports/d6/d6d3ca85-4681-47c1-b5dd-d036a9d39ea2.json create mode 100644 library/imports/d6/d6d3ca85-4681-47c1-b5dd-d036a9d39ea2.png create mode 100644 library/imports/d8/d81ec8ad-247c-4e62-aa3c-d35c4193c7af.json create mode 100644 library/imports/d8/d81ec8ad-247c-4e62-aa3c-d35c4193c7af.png create mode 100644 library/imports/d9/d95bdbfb-bf4f-4a2a-8063-86225e9583e9.json create mode 100644 library/imports/da/da411ff5-9431-4eec-8943-b2e786a28415.json create mode 100644 library/imports/db/dbd5f874-ad43-4e46-be45-1bf69f991c8b.json create mode 100644 library/imports/dd/ddb99b39-7004-47cd-9705-751905c43c46.json create mode 100644 library/imports/de/de510076-056b-484f-b94c-83bef217d0e1.json create mode 100644 library/imports/e0/e02d87d4-e599-4d16-8001-e14891ac6506.json create mode 100644 library/imports/e1/e1d57e63-4f2f-467d-9c55-0a889d5533a8.json create mode 100644 library/imports/e2/e2f00085-c597-422d-9759-52c360279106.json create mode 100644 library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js create mode 100644 library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js.map create mode 100644 library/imports/e7/e74a9f7d-2031-4e69-bcb2-9998174088b2.js create mode 100644 library/imports/e7/e74a9f7d-2031-4e69-bcb2-9998174088b2.js.map create mode 100644 library/imports/e7/e7aba14b-f956-4480-b254-8d57832e273f.json create mode 100644 library/imports/e8/e851e89b-faa2-4484-bea6-5c01dd9f06e2.json create mode 100644 library/imports/e8/e851e89b-faa2-4484-bea6-5c01dd9f06e2.png create mode 100644 library/imports/e8/e883b928-b637-44d9-af8d-b83e856a59f7.json create mode 100644 library/imports/e9/e93d3fa9-8c21-4375-8a21-14ba84066c77.bin create mode 100644 library/imports/e9/e93d3fa9-8c21-4375-8a21-14ba84066c77.json create mode 100644 library/imports/e9/e9ec654c-97a2-4787-9325-e6a10375219a.json create mode 100644 library/imports/ec/eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432.json create mode 100644 library/imports/ed/ed88f13d-fcad-4848-aa35-65a2cb973584.json create mode 100644 library/imports/ed/edd215b9-2796-4a05-aaf5-81f96c9281ce.json create mode 100644 library/imports/ed/edd215b9-2796-4a05-aaf5-81f96c9281ce.png create mode 100644 library/imports/ef/efd308fc-f5b3-4bb7-9f63-775758313496.json create mode 100644 library/imports/f0/f0048c10-f03e-4c97-b9d3-3506e1d58952.json create mode 100644 library/imports/f1/f18742d7-56d2-4eb5-ae49-2d9d710b37c8.json create mode 100644 library/imports/f3/f3bd36fb-2048-4444-9c18-217ee62b977a.json create mode 100644 library/imports/f3/f3d1de85-86c8-49b8-a555-7fed576930c6.json create mode 100644 library/imports/f5/f5331fd2-bf42-4ee3-a3fd-3e1657600eff.json create mode 100644 library/imports/fa/fa0cfe73-8bf5-45e4-a2fd-e6edd6a92f69.json create mode 100644 library/imports/fc/fcbb8992-3ccc-4495-a18b-7d436796a992.json create mode 100644 library/imports/fe/fe1417b6-fe6b-46a4-ae7c-9fd331f33a2a.json create mode 100644 library/imports/ff/ff0e91c7-55c6-4086-a39f-cb6e457b8c3b.json create mode 100644 library/uuid-to-mtime.json create mode 100644 local/builder.json create mode 100644 local/layout.editor.json create mode 100644 local/local.json create mode 100644 local/node-library.json create mode 100644 local/node-tree-state.json create mode 100644 local/settings.json create mode 100644 project.json create mode 100644 settings/builder.json create mode 100644 settings/project.json create mode 100644 settings/services.json create mode 100644 temp/BackupAssets/assets/Scene/GameScene.fire create mode 100644 temp/BackupAssets/assets/Scene/LoadScene.fire create mode 100644 temp/BackupAssets/assets/Scene/OverScene.fire create mode 100644 temp/BackupAssets/assets/Scene/RankScene.fire create mode 100644 temp/BackupAssets/assets/prefab/Canvas.prefab create mode 100644 temp/BackupAssets/assets/prefab/Middle.prefab create mode 100644 temp/BackupAssets/assets/prefab/kuang1.prefab create mode 100644 temp/BackupAssets/assets/prefab/kuang2.prefab create mode 100644 temp/RemovedMetas/Script/Ball.ts.meta create mode 100644 temp/gltf/6bc1eafbe1f4f6f74220e523a312d225_out/6bc1eafbe1f4f6f74220e523a312d225.gltf create mode 100644 temp/gltf/6bc1eafbe1f4f6f74220e523a312d225_out/buffer.bin create mode 100644 temp/quick-scripts/dst/__file_stats__.json create mode 100644 temp/quick-scripts/dst/__qc_bundle__.js create mode 100644 temp/quick-scripts/dst/__qc_index__.js create mode 100644 temp/quick-scripts/dst/__quick_compile__.js create mode 100644 temp/quick-scripts/dst/assets/Script/Block.js create mode 100644 temp/quick-scripts/dst/assets/Script/DynamicAtlasManager.js create mode 100644 temp/quick-scripts/dst/assets/Script/GameManager.js create mode 100644 temp/quick-scripts/dst/assets/Script/GameOver.js create mode 100644 temp/quick-scripts/dst/assets/Script/Load.js create mode 100644 temp/quick-scripts/dst/assets/Script/RankManager.js create mode 100644 temp/quick-scripts/dst/assets/Script/Sdk/DouyinEntranceView.js create mode 100644 temp/quick-scripts/dst/assets/Script/Sdk/MiniGameManager.js create mode 100644 temp/quick-scripts/dst/assets/Script/Sdk/MiniGameSdk.js create mode 100644 temp/quick-scripts/dst/assets/Script/module/Config/GameConfig.js create mode 100644 temp/quick-scripts/dst/assets/Script/module/Crypto/HttpUtil.js create mode 100644 temp/quick-scripts/dst/assets/Script/module/Crypto/crypto-js.min.js create mode 100644 temp/quick-scripts/dst/assets/Script/module/GameStart/GameAppStart.js create mode 100644 temp/quick-scripts/dst/assets/Script/module/Music/AudioManager.js create mode 100644 temp/quick-scripts/dst/assets/Script/module/Notification/Notification.js create mode 100644 temp/quick-scripts/dst/assets/Script/module/RankList/ItemRender.js create mode 100644 temp/quick-scripts/dst/assets/Script/module/RankList/List.js create mode 100644 temp/quick-scripts/dst/assets/Script/module/Share/share.js create mode 100644 temp/quick-scripts/dst/assets/Script/module/Storage/Storage.js create mode 100644 temp/quick-scripts/dst/assets/Script/module/Tool/GameTool.js create mode 100644 temp/quick-scripts/dst/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js create mode 100644 temp/quick-scripts/src/__qc_index__.js create mode 100644 temp/quick-scripts/src/assets/Script/Block.js create mode 100644 temp/quick-scripts/src/assets/Script/Block.js.map create mode 100644 temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js create mode 100644 temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js.map create mode 100644 temp/quick-scripts/src/assets/Script/GameManager.js create mode 100644 temp/quick-scripts/src/assets/Script/GameManager.js.map create mode 100644 temp/quick-scripts/src/assets/Script/GameOver.js create mode 100644 temp/quick-scripts/src/assets/Script/GameOver.js.map create mode 100644 temp/quick-scripts/src/assets/Script/Load.js create mode 100644 temp/quick-scripts/src/assets/Script/Load.js.map create mode 100644 temp/quick-scripts/src/assets/Script/RankManager.js create mode 100644 temp/quick-scripts/src/assets/Script/RankManager.js.map create mode 100644 temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js create mode 100644 temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js.map create mode 100644 temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js create mode 100644 temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js.map create mode 100644 temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js create mode 100644 temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js.map create mode 100644 temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js create mode 100644 temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js.map create mode 100644 temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js create mode 100644 temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js.map create mode 100644 temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js create mode 100644 temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js.map create mode 100644 temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js create mode 100644 temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js.map create mode 100644 temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js create mode 100644 temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js.map create mode 100644 temp/quick-scripts/src/assets/Script/module/Notification/Notification.js create mode 100644 temp/quick-scripts/src/assets/Script/module/Notification/Notification.js.map create mode 100644 temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js create mode 100644 temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js.map create mode 100644 temp/quick-scripts/src/assets/Script/module/RankList/List.js create mode 100644 temp/quick-scripts/src/assets/Script/module/RankList/List.js.map create mode 100644 temp/quick-scripts/src/assets/Script/module/Share/share.js create mode 100644 temp/quick-scripts/src/assets/Script/module/Share/share.js.map create mode 100644 temp/quick-scripts/src/assets/Script/module/Storage/Storage.js create mode 100644 temp/quick-scripts/src/assets/Script/module/Storage/Storage.js.map create mode 100644 temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js create mode 100644 temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js.map create mode 100644 temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js create mode 100644 temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js.map create mode 100644 tsconfig.json create mode 100644 资源文件/UI/again.png create mode 100644 资源文件/UI/cictrl.png create mode 100644 资源文件/UI/daan.png create mode 100644 资源文件/UI/err.png create mode 100644 资源文件/UI/gezi.png create mode 100644 资源文件/UI/kuang1.jpg create mode 100644 资源文件/UI/kuang2.jpg create mode 100644 资源文件/UI/kuang3.jpg create mode 100644 资源文件/UI/lun.png create mode 100644 资源文件/UI/over_Logo.png create mode 100644 资源文件/UI/progress.png create mode 100644 资源文件/UI/progressOver.png create mode 100644 资源文件/UI/start.png create mode 100644 资源文件/UI/texture1.png create mode 100644 资源文件/UI/texture10.png create mode 100644 资源文件/UI/texture11.png create mode 100644 资源文件/UI/texture12.png create mode 100644 资源文件/UI/texture13.png create mode 100644 资源文件/UI/texture14.png create mode 100644 资源文件/UI/texture18.png create mode 100644 资源文件/UI/texture19.png create mode 100644 资源文件/UI/texture2.png create mode 100644 资源文件/UI/texture20.png create mode 100644 资源文件/UI/texture3.png create mode 100644 资源文件/UI/texture4.png create mode 100644 资源文件/UI/texture5.png create mode 100644 资源文件/UI/texture6.png create mode 100644 资源文件/UI/texture7.png create mode 100644 资源文件/UI/texture8.png create mode 100644 资源文件/UI/texture9.png create mode 100644 资源文件/UI/tiao.png create mode 100644 资源文件/UI/time_icon.png create mode 100644 资源文件/UI/tip.png create mode 100644 资源文件/UI/tipBg.png create mode 100644 资源文件/UI/top.png create mode 100644 资源文件/UI/xingxing01.png create mode 100644 资源文件/UI/xingxing02.png create mode 100644 资源文件/UI/yes.png create mode 100644 资源文件/bg.jpg create mode 100644 资源文件/publicUI.plist create mode 100644 资源文件/publicUI.png create mode 100644 资源文件/x效果图.jpg create mode 100644 资源文件/图形/texture1.png create mode 100644 资源文件/图形/texture10.png create mode 100644 资源文件/图形/texture11.png create mode 100644 资源文件/图形/texture12.png create mode 100644 资源文件/图形/texture13.png create mode 100644 资源文件/图形/texture14.png create mode 100644 资源文件/图形/texture15.png create mode 100644 资源文件/图形/texture16.png create mode 100644 资源文件/图形/texture17.png create mode 100644 资源文件/图形/texture2.png create mode 100644 资源文件/图形/texture3.png create mode 100644 资源文件/图形/texture4.png create mode 100644 资源文件/图形/texture5.png create mode 100644 资源文件/图形/texture6.png create mode 100644 资源文件/图形/texture7.png create mode 100644 资源文件/图形/texture8.png create mode 100644 资源文件/图形/texture9.png create mode 100644 资源文件/存图10.28/again.png create mode 100644 资源文件/存图10.28/bg.jpg create mode 100644 资源文件/存图10.28/cictrl.png create mode 100644 资源文件/存图10.28/lun.png create mode 100644 资源文件/存图10.28/over_Logo.png create mode 100644 资源文件/存图10.28/progressOver.png create mode 100644 资源文件/存图10.28/tiao.png create mode 100644 资源文件/存图10.28/色值.jpg create mode 100644 资源文件/存图10.28/鲁班锁图_结算界面.jpg create mode 100644 资源文件/色值.jpg create mode 100644 资源文件/鲁班锁图存图/bg.jpg create mode 100644 资源文件/鲁班锁图存图/gezi.png create mode 100644 资源文件/鲁班锁图存图/toutu.png create mode 100644 资源文件/鲁班锁图存图/xingxing01.png create mode 100644 资源文件/鲁班锁图存图/xingxing02.png create mode 100644 资源文件/鲁班锁图存图/x效果图.jpg create mode 100644 资源文件/鲁班锁图存图/时间图标.png create mode 100644 资源文件/鲁班锁图存图/色值.jpg create mode 100644 资源文件/鲁班锁图存图/进度条01.png create mode 100644 资源文件/鲁班锁图存图9.20/bg.jpg create mode 100644 资源文件/鲁班锁图存图9.20/kuang1.jpg create mode 100644 资源文件/鲁班锁图存图9.20/kuang2.jpg create mode 100644 资源文件/鲁班锁图存图9.20/kuang3.jpg diff --git a/assets/Scene.meta b/assets/Scene.meta new file mode 100644 index 0000000..240fb44 --- /dev/null +++ b/assets/Scene.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "29f52784-2fca-467b-92e7-8fd9ef8c57b7", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Scene/GameScene.fire b/assets/Scene/GameScene.fire new file mode 100644 index 0000000..84ec69e --- /dev/null +++ b/assets/Scene/GameScene.fire @@ -0,0 +1,3210 @@ +[ + { + "__type__": "cc.SceneAsset", + "_name": "", + "_objFlags": 0, + "_native": "", + "scene": { + "__id__": 1 + } + }, + { + "__type__": "cc.Scene", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": false, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "autoReleaseAssets": true, + "_id": "4eaf518b-35ec-4262-928d-4d497c3f2830" + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + }, + { + "__id__": 5 + } + ], + "_active": true, + "_components": [ + { + "__id__": 67 + }, + { + "__id__": 68 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 375, + 667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a5esZu+45LA5mBpvttspPD" + }, + { + "__type__": "cc.Node", + "_name": "Main Camera", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 960, + "height": 640 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e1WoFrQ79G7r4ZuQE3HlNb" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "_cullingMask": 4294967295, + "_clearFlags": 7, + "_backgroundColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": -1, + "_zoomRatio": 1, + "_targetTexture": null, + "_fov": 60, + "_orthoSize": 10, + "_nearClip": 1, + "_farClip": 4096, + "_ortho": true, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_renderStages": 1, + "_alignWithScreen": true, + "_id": "81GN3uXINKVLeW4+iKSlim" + }, + { + "__type__": "cc.Node", + "_name": "GameNode", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 6 + }, + { + "__id__": 8 + }, + { + "__id__": 10 + }, + { + "__id__": 13 + }, + { + "__id__": 39 + }, + { + "__id__": 41 + }, + { + "__id__": 61 + } + ], + "_active": true, + "_components": [ + { + "__id__": 65 + }, + { + "__id__": 66 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "b0VHqWWqlJ4qVyuwnLGCWw" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1660 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "78Sk802p9L/Ip+ZPEFbJnp" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "36b6bacf-2b42-4105-b5ae-89638029e07b" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "76jLexG/ZCWKRhLE23/DmU" + }, + { + "__type__": "cc.Node", + "_name": "gezi", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 9 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 682, + "height": 682 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "deuN+RqPVOL7aPYkbITraW" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "17af346d-cfbe-4ad2-b2d3-e469d3dcc1a8" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "45bvM0WjFLYKCO0H2jKu8N" + }, + { + "__type__": "cc.Node", + "_name": "Block", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 11 + }, + { + "__id__": 12 + } + ], + "_active": true, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 25, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "94ah0p8lVKAr7i4brV6jPj" + }, + { + "__type__": "cc.Node", + "_name": "inside", + "_objFlags": 0, + "_parent": { + "__id__": 10 + }, + "_children": [], + "_active": true, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e2Jn8DMJNFdo8lTeb2rK4c" + }, + { + "__type__": "cc.Node", + "_name": "outside", + "_objFlags": 0, + "_parent": { + "__id__": 10 + }, + "_children": [], + "_active": true, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "766/905WJME4onjR15oPn+" + }, + { + "__type__": "cc.Node", + "_name": "Top", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 14 + }, + { + "__id__": 16 + }, + { + "__id__": 18 + }, + { + "__id__": 20 + }, + { + "__id__": 22 + }, + { + "__id__": 24 + }, + { + "__id__": 26 + }, + { + "__id__": 28 + }, + { + "__id__": 30 + }, + { + "__id__": 32 + }, + { + "__id__": 34 + }, + { + "__id__": 36 + } + ], + "_active": true, + "_components": [ + { + "__id__": 38 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "ccqfR9VQxGGoGkDkWlHLCr" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 15 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 127 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -64.575, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "f7S28jqDxGba4Tn8zGeYBV" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "4c7c1f0b-ebe7-4025-8148-ac61cb2a2d8f" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "1bf4KPF19MAZvWnc9NQtNq" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 17 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 225.516, + -27.081, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "b2QazzR6xM+rUKHTRlk3uA" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 16 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "5f924dc2-df92-448a-8b30-f4d0cbaae29c" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "a56Q8R7h9FBJHqZYOXZSRh" + }, + { + "__type__": "cc.Node", + "_name": "progress", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 19 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 344, + "height": 88 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -172, + -47.117, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "5aDGuYtC9PPaqll2DZrh+R" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 18 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "da411ff5-9431-4eec-8943-b2e786a28415" + }, + "_type": 3, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "a5oPWevqJEea0zXOVwMrLq" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 21 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 30, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -102.254, + -56.575, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "28QBCXPFJP34lzjTYviLs/" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8425f40b-c669-446a-ab0b-2daf892ef5c2" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "8btj95waFNAZB7aG5+5sPX" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 23 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 30, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0.871, + -84.206, + 0, + 0, + 0, + 0.25881904510252074, + 0.9659258262890683, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 30 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "3660I3fR9HGa8TFc9UHIxK" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 22 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8425f40b-c669-446a-ab0b-2daf892ef5c2" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "04L9zBz5lNZ6CqbO0wEF2i" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 25 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 30, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 102.254, + -57.272, + 0, + 0, + 0, + -0.08715574274765817, + 0.9961946980917455, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": -10 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a5/zgEmxJMhq1QAMBZvViw" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 24 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8425f40b-c669-446a-ab0b-2daf892ef5c2" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "33Kzj2sF5BALfGRsE/283z" + }, + { + "__type__": "cc.Node", + "_name": "time", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 27 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 248, + "g": 234, + "b": 199, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 87.59, + "height": 44.1 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 301.784, + -27.081, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "1cgi/VVFVNTohRzMELqUFC" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 26 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "00:00", + "_N$string": "00:00", + "_fontSize": 35, + "_lineHeight": 35, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "7c/Thczj1DDqZr67azD/vg" + }, + { + "__type__": "cc.Node", + "_name": "lianxi", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 29 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 248, + "g": 234, + "b": 199, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 126.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -262.714, + -26.184, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "cayisXp3RCXIYf9oqnE/Qd" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 28 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "第 轮", + "_N$string": "第 轮", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "5fsyYuhy1AzLCDkhL01Izi" + }, + { + "__type__": "cc.Node", + "_name": "level", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 31 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 248, + "g": 234, + "b": 199, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 22.25, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -262.714, + -26.184, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "46kNYNocVO27MPt+G5C5dk" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 30 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1", + "_N$string": "1", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "024B6uP85IfZ6OiIklg+xR" + }, + { + "__type__": "cc.Node", + "_name": "star1", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 33 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -102.254, + -56.575, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "6eSUtXbbJBk6dDMAP97jBR" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 32 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "a2yzrkWtBGu5n6/lVs3E6F" + }, + { + "__type__": "cc.Node", + "_name": "star2", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 35 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0.871, + -84.206, + 0, + 0, + 0, + 0.25881904510252074, + 0.9659258262890683, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 30 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "0fjQrep25EPoANYqXpQBxY" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 34 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "56zKAo9qJGNYwUiro8TNrT" + }, + { + "__type__": "cc.Node", + "_name": "star3", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 37 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 102.254, + -57.272, + 0, + 0, + 0, + -0.08715574274765817, + 0.9961946980917455, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": -10 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "4fx8ezI8NKRKIShom1u7Mg" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 36 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "1061u5qxxKqp0GcwBsZ/3i" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 13 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 1, + "_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": 0, + "_originalHeight": 0, + "_id": "b8uytztWJHU5DR3wBGgIUY" + }, + { + "__type__": "cc.Node", + "_name": "tip", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 40 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 248, + "g": 234, + "b": 199, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 80, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 381.5, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "df7d+tTuFLIqAht/SwZZOv" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 39 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "练习", + "_N$string": "练习", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "70YS2zSnZKWowRhZaw07yK" + }, + { + "__type__": "cc.Node", + "_name": "Guide", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 42 + }, + { + "__id__": 46 + }, + { + "__id__": 48 + }, + { + "__id__": 50 + }, + { + "__id__": 52 + }, + { + "__id__": 54 + }, + { + "__id__": 56 + } + ], + "_active": false, + "_components": [ + { + "__id__": 60 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "ba8b6ruCtC7q2FfTXpbfir" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite(Splash)", + "_objFlags": 0, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 43 + }, + { + "__id__": 44 + }, + { + "__id__": 45 + } + ], + "_prefab": null, + "_opacity": 30, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "67jAT7pfxK8ITzRPp7F8yd" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 42 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "a8QJoo7HxJzatd2XAmn6dv" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 42 + }, + "_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": 750, + "_originalHeight": 1334, + "_id": "fcBQqrvGpJCrymGl8t7upS" + }, + { + "__type__": "cc.BlockInputEvents", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 42 + }, + "_enabled": true, + "_id": "4cW3HTcrVCD5xw4ESURcK0" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 47 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 728, + "height": 440 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "08kx2QK4NH8L48lGNWGSv1" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 46 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "fcbb8992-3ccc-4495-a18b-7d436796a992" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "45F6qZlUlIwLroErTvZ30O" + }, + { + "__type__": "cc.Node", + "_name": "one", + "_objFlags": 0, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 49 + } + ], + "_prefab": null, + "_opacity": 0, + "_color": { + "__type__": "cc.Color", + "r": 175, + "g": 127, + "b": 79, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 600, + "height": 195.6 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -6.417, + 48.77, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "ba6I+/BUZO9aK0TJd3fUuO" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 48 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "屏幕中央会短暂出现一个零件图样,接下来请找出相同形状的零件并选中它。", + "_N$string": "屏幕中央会短暂出现一个零件图样,接下来请找出相同形状的零件并选中它。", + "_fontSize": 40, + "_lineHeight": 60, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 3, + "_N$cacheMode": 0, + "_id": "2bZKhqTShIQ4zL4DBI+ogY" + }, + { + "__type__": "cc.Node", + "_name": "two", + "_objFlags": 0, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 51 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 175, + "g": 127, + "b": 79, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 600, + "height": 195.6 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -6.417, + 30.651, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e2uU6JJXRPhrTzwzMr46ip" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 50 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "接下来,周围的平台上会出现一个或很多零件,找到独一无二的零件。", + "_N$string": "接下来,周围的平台上会出现一个或很多零件,找到独一无二的零件。", + "_fontSize": 40, + "_lineHeight": 60, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 3, + "_N$cacheMode": 0, + "_id": "c9cneBsDJDt78ba51U8T5g" + }, + { + "__type__": "cc.Node", + "_name": "three", + "_objFlags": 0, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 53 + } + ], + "_prefab": null, + "_opacity": 0, + "_color": { + "__type__": "cc.Color", + "r": 175, + "g": 127, + "b": 79, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 650, + "height": 255.6 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -6.417, + 42.181, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "87GoM/vs9FsKjTOJrdIeGq" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 52 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "最后阶段,周围和中心会同时出现零件,你需要同时应对两种规则,加油!\n提示:中间区域找出相同零件,周边区域找出唯一的零件。", + "_N$string": "最后阶段,周围和中心会同时出现零件,你需要同时应对两种规则,加油!\n提示:中间区域找出相同零件,周边区域找出唯一的零件。", + "_fontSize": 38, + "_lineHeight": 60, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 3, + "_N$cacheMode": 0, + "_id": "15/tKDB9FL855eg+2MDLBu" + }, + { + "__type__": "cc.Node", + "_name": "four", + "_objFlags": 0, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 55 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 175, + "g": 127, + "b": 79, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 600, + "height": 75.6 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -6.417, + 30.651, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "1cDlLWPrRNJ600AzFcaVzP" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 54 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "恭喜你完成练习!", + "_N$string": "恭喜你完成练习!", + "_fontSize": 40, + "_lineHeight": 60, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 3, + "_N$cacheMode": 0, + "_id": "6coPxjcQVETonSgK/9aySZ" + }, + { + "__type__": "cc.Node", + "_name": "btn", + "_objFlags": 0, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 57 + }, + { + "__id__": 58 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 270, + "height": 72 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -142.46, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "c0xqOlsXtKuaXSp8G3XIla" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 56 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d95bdbfb-bf4f-4a2a-8063-86225e9583e9" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "8fspnMZZJHHotZJH2bxK5o" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 56 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + { + "__id__": 59 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": { + "__id__": 56 + }, + "_id": "b4zgv7XfxIBbRvQbyAIg15" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 5 + }, + "component": "", + "_componentId": "b0432BA295DjIOcuitdGKO1", + "handler": "closeGuide", + "customEventData": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 41 + }, + "_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": 0, + "_originalHeight": 0, + "_id": "a9q+UQqOJO77l3KXdsColU" + }, + { + "__type__": "cc.Node", + "_name": "Mask", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 62 + }, + { + "__id__": 63 + }, + { + "__id__": 64 + } + ], + "_prefab": null, + "_opacity": 0, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "7dOfd/xzxJ8r6o5vJnOmsM" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 61 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "9dZcl/TBBO07vFGUfwYgWH" + }, + { + "__type__": "cc.BlockInputEvents", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 61 + }, + "_enabled": true, + "_id": "22dO7HxEZETrHjiHW4YMwF" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 61 + }, + "_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": 750, + "_originalHeight": 1334, + "_id": "e8OCUlj+hLmLYOXmbttupc" + }, + { + "__type__": "b0432BA295DjIOcuitdGKO1", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "kuang1_Prefab": { + "__uuid__": "5e344685-dbe0-4509-8b66-27ddb72e2d23" + }, + "kuang2_Prefab": { + "__uuid__": "5e344685-dbe0-4509-8b66-27ddb72e2d23" + }, + "Block": { + "__id__": 10 + }, + "TimeLabel": { + "__id__": 27 + }, + "LevelLabel": { + "__id__": 31 + }, + "Guide": { + "__id__": 41 + }, + "progress": { + "__id__": 19 + }, + "Top": { + "__id__": 13 + }, + "_id": "7dXON6+8BHRrnLvjmlXv+P" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_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": 0, + "_originalHeight": 0, + "_id": "dfOLca1KVCyLxvg197AIBc" + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_designResolution": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_fitWidth": true, + "_fitHeight": false, + "_id": "59Cd0ovbdF4byw5sbjJDx7" + }, + { + "__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": 0, + "_originalHeight": 0, + "_id": "29zXboiXFBKoIV4PQ2liTe" + } +] \ No newline at end of file diff --git a/assets/Scene/GameScene.fire.meta b/assets/Scene/GameScene.fire.meta new file mode 100644 index 0000000..ac79655 --- /dev/null +++ b/assets/Scene/GameScene.fire.meta @@ -0,0 +1,8 @@ +{ + "ver": "1.3.2", + "uuid": "4eaf518b-35ec-4262-928d-4d497c3f2830", + "importer": "scene", + "asyncLoadAssets": false, + "autoReleaseAssets": true, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Scene/LoadScene.fire b/assets/Scene/LoadScene.fire new file mode 100644 index 0000000..ea80f42 --- /dev/null +++ b/assets/Scene/LoadScene.fire @@ -0,0 +1,2603 @@ +[ + { + "__type__": "cc.SceneAsset", + "_name": "", + "_objFlags": 0, + "_native": "", + "scene": { + "__id__": 1 + } + }, + { + "__type__": "cc.Scene", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": true, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "autoReleaseAssets": true, + "_id": "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d" + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + }, + { + "__id__": 6 + }, + { + "__id__": 8 + }, + { + "__id__": 12 + }, + { + "__id__": 15 + }, + { + "__id__": 17 + }, + { + "__id__": 43 + }, + { + "__id__": 45 + }, + { + "__id__": 48 + } + ], + "_active": true, + "_components": [ + { + "__id__": 54 + }, + { + "__id__": 55 + }, + { + "__id__": 56 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 375, + 667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a5esZu+45LA5mBpvttspPD" + }, + { + "__type__": "cc.Node", + "_name": "Main Camera", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + }, + { + "__id__": 5 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 960, + "height": 640 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e1WoFrQ79G7r4ZuQE3HlNb" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "_cullingMask": 4294967295, + "_clearFlags": 7, + "_backgroundColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": -1, + "_zoomRatio": 1, + "_targetTexture": null, + "_fov": 60, + "_orthoSize": 10, + "_nearClip": 1, + "_farClip": 4096, + "_ortho": true, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_renderStages": 1, + "_alignWithScreen": true, + "_id": "81GN3uXINKVLeW4+iKSlim" + }, + { + "__type__": "5c9b8FZiaNLMrMDs9T3rByf", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "_id": "82rBHh8bJIGKuGw03a3Yrd" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 598, + "height": 260 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 5, + 239.142, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "760ocQbgdH36eN/vTVINU/" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "9fIRjhoHRMobgBYXu/5KEN" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 9 + }, + { + "__id__": 10 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 410, + "height": 151 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 8.043, + -419.976, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "fbUHhjpABG74DdpeYzdl/2" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "52EGND0ndDGotGRX4hdp75" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + { + "__id__": 11 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": { + "__id__": 8 + }, + "_id": "5fQ0XX+HFAlq0Hihrzp10i" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "454adgphRpA6oq5lB6Cg1fK", + "handler": "startGame", + "customEventData": "" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 13 + }, + { + "__id__": 14 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66.72, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 337.463, + -646.72, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "27YGKHGM1I5Y41cMXxZ0rs" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "0.0.0", + "_N$string": "0.0.0", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "1covBYbbRHJqGD17ZsJC+d" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 36, + "_left": 0, + "_right": 4.176999999999964, + "_top": 0, + "_bottom": 1.3799999999999955, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "6cDomcvMdDrae8KzaaoZg5" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 16 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1660 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "f4ldUOGdlK4JfP630lVR7t" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 15 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "36b6bacf-2b42-4105-b5ae-89638029e07b" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "beBh1DCIFJN7gZxDtN/Uuz" + }, + { + "__type__": "cc.Node", + "_name": "Top", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 18 + }, + { + "__id__": 20 + }, + { + "__id__": 22 + }, + { + "__id__": 24 + }, + { + "__id__": 26 + }, + { + "__id__": 28 + }, + { + "__id__": 30 + }, + { + "__id__": 32 + }, + { + "__id__": 34 + }, + { + "__id__": 36 + }, + { + "__id__": 38 + }, + { + "__id__": 40 + } + ], + "_active": true, + "_components": [ + { + "__id__": 42 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "26BdU6blJBRJUge8eUsmon" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 19 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 127 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -64.575, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "20lblp57FCKYe6SdNMXZyg" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 18 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "4c7c1f0b-ebe7-4025-8148-ac61cb2a2d8f" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "10pCiFzqFMyof2Je97a2GD" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 21 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 225.516, + -27.081, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a3snrZoTxLnZ3Ldmf6mAF7" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "5f924dc2-df92-448a-8b30-f4d0cbaae29c" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "84OFNWOWNDe6NTkLGw2/rJ" + }, + { + "__type__": "cc.Node", + "_name": "progress", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 23 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 344, + "height": 88 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -172, + -47.117, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "42EiWhBVBD/bo5qnSjWu4T" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 22 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "da411ff5-9431-4eec-8943-b2e786a28415" + }, + "_type": 3, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "99YFaTFPpFNan/i9g4XVBz" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 25 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 30, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -102.254, + -56.575, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "38YJlzD5dN7ZgqiOrOVkML" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 24 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8425f40b-c669-446a-ab0b-2daf892ef5c2" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "3cU/c2VB1GaLF4OFJUZmPn" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 27 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 30, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0.871, + -84.206, + 0, + 0, + 0, + 0.25881904510252074, + 0.9659258262890683, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 30 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "35VMqWe8BMrpFZIClXdF5+" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 26 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8425f40b-c669-446a-ab0b-2daf892ef5c2" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "devM/dV0VMpoknDl445hlT" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 29 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 30, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 102.254, + -57.272, + 0, + 0, + 0, + -0.08715574274765817, + 0.9961946980917455, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": -10 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "c3r75lyW5EiZjeSZ0AQLyF" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 28 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8425f40b-c669-446a-ab0b-2daf892ef5c2" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "88MQpnTlhOwaJdjNviyBI9" + }, + { + "__type__": "cc.Node", + "_name": "time", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 31 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 248, + "g": 234, + "b": 199, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 87.59, + "height": 44.1 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 301.784, + -27.081, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "37kM84EAdIhKQIvGKw5f3E" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 30 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "00:00", + "_N$string": "00:00", + "_fontSize": 35, + "_lineHeight": 35, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "99dMrfrc9BJ6yyHdGmwX0s" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 33 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 248, + "g": 234, + "b": 199, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 126.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -262.714, + -26.184, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "47PjmCN59NYbRr6IElRD4L" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 32 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "第 轮", + "_N$string": "第 轮", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "c2APvEnbFKoqStQ374HJbH" + }, + { + "__type__": "cc.Node", + "_name": "level", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 35 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 248, + "g": 234, + "b": 199, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 22.25, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -262.714, + -26.184, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "46xlJ4GZ1FnarQXVUvg3mU" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 34 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1", + "_N$string": "1", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "2a1m/g1stLB4/+FHrBQ+p3" + }, + { + "__type__": "cc.Node", + "_name": "star1", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 37 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -102.254, + -56.575, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "12ISiwZcVL3ZAM/mKpdk5h" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 36 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "0dPRCw3DZNnZ4PdqYteKo7" + }, + { + "__type__": "cc.Node", + "_name": "star2", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 39 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0.871, + -84.206, + 0, + 0, + 0, + 0.25881904510252074, + 0.9659258262890683, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 30 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e7Nb51N9hOXpzyvAd3GhK2" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 38 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "a08+ljPWlDH47pXCxdtZZV" + }, + { + "__type__": "cc.Node", + "_name": "star3", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 41 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 102.254, + -57.272, + 0, + 0, + 0, + -0.08715574274765817, + 0.9961946980917455, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": -10 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "df4j84Y3FNxItXfy+zrMU0" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 40 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "57sMhskC9OH7G9wb3BTEH9" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 17 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 1, + "_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": 0, + "_originalHeight": 0, + "_id": "73jtnO6HVHSYWHQTakz4iS" + }, + { + "__type__": "cc.Node", + "_name": "gezi", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 44 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 682, + "height": 682 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "1basG4FvZLb7Mh7NO1vCdG" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 43 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "17af346d-cfbe-4ad2-b2d3-e469d3dcc1a8" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "d9ql1oosxIqpanTxvwqnx4" + }, + { + "__type__": "cc.Node", + "_name": "version", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 46 + }, + { + "__id__": 47 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 98.33, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 251.592, + -645.818, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "bdRIfCxsZBpLpMK3p5LzXO" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 45 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "版本号:", + "_N$string": "版本号:", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "25U7z7AG5OR5kWiQhll6Z2" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 45 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 36, + "_left": 0, + "_right": 74.243, + "_top": 0, + "_bottom": 2.282000000000039, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "b9dR0vgWtBPbilfwsIX0Gk" + }, + { + "__type__": "cc.Node", + "_name": "New Button", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 49 + } + ], + "_active": true, + "_components": [ + { + "__id__": 52 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -490.097, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "d4XKS39tRLrrP4AdRBbbcC" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 0, + "_parent": { + "__id__": 48 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 50 + }, + { + "__id__": 51 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 270, + "height": 72 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 2.753, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a7br9FUkxBAZGyTgAXpjiE" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 49 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d95bdbfb-bf4f-4a2a-8063-86225e9583e9" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "e9n7+/1xFHj7v+Jk1hPXrw" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 49 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 45, + "_left": -85, + "_right": -85, + "_top": -18.753, + "_bottom": -13.246999999999998, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 100, + "_originalHeight": 40, + "_id": "48q8ghX29FyJejtYoayFp5" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 48 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 53 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 230, + "g": 230, + "b": 230, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 120, + "g": 120, + "b": 120, + "a": 200 + }, + "_N$normalSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "_N$hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$disabledSprite": { + "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" + }, + "_N$target": { + "__id__": 49 + }, + "_id": "aaqG+QMK5CCYJdMzYINcYX" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "454adgphRpA6oq5lB6Cg1fK", + "handler": "startGame", + "customEventData": "" + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_designResolution": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_fitWidth": true, + "_fitHeight": false, + "_id": "59Cd0ovbdF4byw5sbjJDx7" + }, + { + "__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": 0, + "_originalHeight": 0, + "_id": "29zXboiXFBKoIV4PQ2liTe" + }, + { + "__type__": "454adgphRpA6oq5lB6Cg1fK", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "localTest": false, + "clientTestVersion": "1.1.0", + "testVersion": { + "__id__": 13 + }, + "_id": "50zCP3Mq9MKIKjMbohPY8j" + } +] \ No newline at end of file diff --git a/assets/Scene/LoadScene.fire.meta b/assets/Scene/LoadScene.fire.meta new file mode 100644 index 0000000..5a4227c --- /dev/null +++ b/assets/Scene/LoadScene.fire.meta @@ -0,0 +1,8 @@ +{ + "ver": "1.3.2", + "uuid": "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d", + "importer": "scene", + "asyncLoadAssets": false, + "autoReleaseAssets": true, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Scene/OverScene.fire b/assets/Scene/OverScene.fire new file mode 100644 index 0000000..5f60bca --- /dev/null +++ b/assets/Scene/OverScene.fire @@ -0,0 +1,274 @@ +[ + { + "__type__": "cc.SceneAsset", + "_name": "", + "_objFlags": 0, + "_native": "", + "scene": { + "__id__": 1 + } + }, + { + "__type__": "cc.Scene", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": false, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "autoReleaseAssets": true, + "_id": "4b9c5a7e-c645-48a4-9aca-5df381ce4ef5" + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + } + ], + "_active": true, + "_components": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 375, + 667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a5esZu+45LA5mBpvttspPD" + }, + { + "__type__": "cc.Node", + "_name": "Main Camera", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 960, + "height": 640 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e1WoFrQ79G7r4ZuQE3HlNb" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "_cullingMask": 4294967295, + "_clearFlags": 7, + "_backgroundColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": -1, + "_zoomRatio": 1, + "_targetTexture": null, + "_fov": 60, + "_orthoSize": 10, + "_nearClip": 1, + "_farClip": 4096, + "_ortho": true, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_renderStages": 1, + "_alignWithScreen": true, + "_id": "81GN3uXINKVLeW4+iKSlim" + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_designResolution": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_fitWidth": true, + "_fitHeight": false, + "_id": "59Cd0ovbdF4byw5sbjJDx7" + }, + { + "__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": 0, + "_originalHeight": 0, + "_id": "29zXboiXFBKoIV4PQ2liTe" + } +] \ No newline at end of file diff --git a/assets/Scene/OverScene.fire.meta b/assets/Scene/OverScene.fire.meta new file mode 100644 index 0000000..7403015 --- /dev/null +++ b/assets/Scene/OverScene.fire.meta @@ -0,0 +1,8 @@ +{ + "ver": "1.3.2", + "uuid": "4b9c5a7e-c645-48a4-9aca-5df381ce4ef5", + "importer": "scene", + "asyncLoadAssets": false, + "autoReleaseAssets": true, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Scene/RankScene.fire b/assets/Scene/RankScene.fire new file mode 100644 index 0000000..2809d62 --- /dev/null +++ b/assets/Scene/RankScene.fire @@ -0,0 +1,5234 @@ +[ + { + "__type__": "cc.SceneAsset", + "_name": "", + "_objFlags": 0, + "_native": "", + "scene": { + "__id__": 1 + } + }, + { + "__type__": "cc.Scene", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": false, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "autoReleaseAssets": true, + "_id": "2d2f792f-a40c-49bb-a189-ed176a246e49" + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + }, + { + "__id__": 6 + }, + { + "__id__": 9 + }, + { + "__id__": 65 + }, + { + "__id__": 76 + }, + { + "__id__": 99 + }, + { + "__id__": 102 + }, + { + "__id__": 137 + } + ], + "_active": true, + "_components": [ + { + "__id__": 143 + }, + { + "__id__": 144 + }, + { + "__id__": 145 + } + ], + "_prefab": { + "__id__": 146 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 252, + "b": 252, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 375, + 667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a286bbGknJLZpRpxROV6M94" + }, + { + "__type__": "cc.Node", + "_name": "Main Camera", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + } + ], + "_prefab": { + "__id__": 5 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 252.87547223450972, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "8cVHFRc19FO4you3NT7Y+N" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "_cullingMask": 4294967295, + "_clearFlags": 7, + "_backgroundColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": -1, + "_zoomRatio": 1, + "_targetTexture": null, + "_fov": 60, + "_orthoSize": 10, + "_nearClip": 1, + "_farClip": 4096, + "_ortho": true, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_renderStages": 1, + "_alignWithScreen": true, + "_id": "40YcGtOLdDr6BSLg4kOPDC" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "97fLKw9fpLKIc0dJLpbPlR", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "background", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + } + ], + "_prefab": { + "__id__": 8 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1600 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e2e0crkOLxGrpMxpbC4iQg1" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 1, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "888hvGBMlC74RLITj4GjZH" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "8dEBgqFXxELpmAzyYl1ZRR", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "ScrollView", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 10 + }, + { + "__id__": 17 + } + ], + "_active": true, + "_components": [ + { + "__id__": 62 + }, + { + "__id__": 15 + }, + { + "__id__": 63 + } + ], + "_prefab": { + "__id__": 64 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 174, + "g": 121, + "b": 121, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 680, + "height": 1400 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 1 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "8ak5WlHVBELqSzRzcpZa3P" + }, + { + "__type__": "cc.Node", + "_name": "scrollBar", + "_objFlags": 512, + "_parent": { + "__id__": 9 + }, + "_children": [ + { + "__id__": 11 + } + ], + "_active": false, + "_components": [ + { + "__id__": 14 + }, + { + "__id__": 59 + }, + { + "__id__": 60 + } + ], + "_prefab": { + "__id__": 61 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 12, + "height": 820 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 340, + -410, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "16gqVcPfxELJJJvzrWZur+" + }, + { + "__type__": "cc.Node", + "_name": "bar", + "_objFlags": 512, + "_parent": { + "__id__": 10 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 12 + } + ], + "_prefab": { + "__id__": 13 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 10, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "88oQE4wgFOborC60bIDsV9" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 11 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "5c3bb932-6c3c-468f-88a9-c8c61d458641" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "3c5hqDysBEP4STnJxq6+Kh" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "d7LA6B6L9KYrPYs9FOPGKR", + "sync": false + }, + { + "__type__": "cc.Scrollbar", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "_scrollView": { + "__id__": 15 + }, + "_touching": false, + "_opacity": 255, + "enableAutoHide": true, + "autoHideTime": 1, + "_N$handle": { + "__id__": 12 + }, + "_N$direction": 1, + "_id": "96ZRZ1fLtOo4EwcQEvfvZQ" + }, + { + "__type__": "cc.ScrollView", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": true, + "horizontal": false, + "vertical": true, + "inertia": true, + "brake": 0.75, + "elastic": true, + "bounceDuration": 0.23, + "scrollEvents": [], + "cancelInnerEvents": true, + "_N$content": { + "__id__": 16 + }, + "content": { + "__id__": 16 + }, + "_N$horizontalScrollBar": null, + "_N$verticalScrollBar": null, + "_id": "9e/+xucD5F4ZxPMvguWtL2" + }, + { + "__type__": "cc.Node", + "_name": "content", + "_objFlags": 512, + "_parent": { + "__id__": 17 + }, + "_children": [ + { + "__id__": 20 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 58 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 680, + "height": 600 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 1 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "7dABu6LfBPVrHU5tOjT7Yt" + }, + { + "__type__": "cc.Node", + "_name": "view", + "_objFlags": 512, + "_parent": { + "__id__": 9 + }, + "_children": [ + { + "__id__": 16 + } + ], + "_active": true, + "_components": [ + { + "__id__": 18 + } + ], + "_prefab": { + "__id__": 19 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 680, + "height": 700 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 1 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a2Zfykcl1GPqJhA7ixiKd3" + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 17 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 0, + "_segments": 64, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "26KueHItNK14Rh/HjkmD9I" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "01e0xqlUVFcY0MMajauQHo", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "RankListItem", + "_objFlags": 0, + "_parent": { + "__id__": 16 + }, + "_children": [ + { + "__id__": 21 + }, + { + "__id__": 24 + }, + { + "__id__": 33 + }, + { + "__id__": 44 + }, + { + "__id__": 47 + }, + { + "__id__": 50 + }, + { + "__id__": 53 + } + ], + "_active": true, + "_components": [ + { + "__id__": 56 + } + ], + "_prefab": { + "__id__": 57 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 650, + "height": 94 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -100, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "55FH2q1HJAyK0hrjxGH/+q" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 22 + } + ], + "_prefab": { + "__id__": 23 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 650, + "height": 94 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "6eyN1+nK5HT7svNqUsa2/+" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 21 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "3df9QOnDFJV7TAVFba88/C" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 20 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "6eyN1+nK5HT7svNqUsa2/+", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "pic", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [ + { + "__id__": 25 + }, + { + "__id__": 28 + } + ], + "_active": true, + "_components": [ + { + "__id__": 31 + } + ], + "_prefab": { + "__id__": 32 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -171.687, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "9a3MBWS0tATp1bXC+684by" + }, + { + "__type__": "cc.Node", + "_name": "pic", + "_objFlags": 0, + "_parent": { + "__id__": 24 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 26 + } + ], + "_prefab": { + "__id__": 27 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "afQOj7Nf1G+obAarDvFiss" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 25 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "3dQTyGvVtFoYuz2oICw3zW" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 20 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "08Vcf5jRBOhLOtnEzMUku6", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 24 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 29 + } + ], + "_prefab": { + "__id__": 30 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 64, + "height": 64 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "04+nh113dEUadg6AGURjqn" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 28 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "d4jJKsPmREIIvqtNo9qT9a" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 20 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "f0DfDJ4PNDbb7lvykwzyBm", + "sync": false + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 24 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 1, + "_segments": 60, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "08y5EI06ZOg5mNtTnvGYlB" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 20 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "38W68aamJOhbnBDiSboSCF", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "rank", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [ + { + "__id__": 34 + }, + { + "__id__": 37 + }, + { + "__id__": 40 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 43 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 36 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -261.233, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "bdbEH+735OxrggnQuRlqF2" + }, + { + "__type__": "cc.Node", + "_name": "one", + "_objFlags": 0, + "_parent": { + "__id__": 33 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 35 + } + ], + "_prefab": { + "__id__": 36 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "34MaLWCWxBHoY//3pYJXcH" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 34 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "81Vy6ELJROcJi8tTw2Qjb5" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 20 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "07jJ4rjvBM3K8UmWuJPTSW", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "two", + "_objFlags": 0, + "_parent": { + "__id__": 33 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 38 + } + ], + "_prefab": { + "__id__": 39 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "84qKc8CKlOI522xR39xkzA" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 37 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "9b7R4QlpVKqqTMybq9FiqI" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 20 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "cf00JqB1FL4J82EdUA2X13", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "three", + "_objFlags": 0, + "_parent": { + "__id__": 33 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 41 + } + ], + "_prefab": { + "__id__": 42 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "9166Yb071H1Zr8Ui2B+hsT" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 40 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "43yfKjDd5NG61vmnAMcyS5" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 20 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "1beDtXl+VD86kzCArCfEPs", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 20 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "d03AAa5MpCZY7eWAmnGlia", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "rankLab", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 45 + } + ], + "_prefab": { + "__id__": 46 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 16.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -259.131, + -2.054, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "de4HHWkIhExrJq1+nHHMA6" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 44 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "5", + "_N$string": "5", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "bf3FH41FFOi7NWKgMyLmiz" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 20 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "de4HHWkIhExrJq1+nHHMA6", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "totalLab", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 48 + } + ], + "_prefab": { + "__id__": 49 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 16.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 224.356, + -2.205, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "05c46heZhJV4sYMqYyxlB5" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 47 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "4", + "_N$string": "4", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 2, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "ebZXHD9xdJPKtw0xxjWGui" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 20 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "05c46heZhJV4sYMqYyxlB5", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "nameLab", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 51 + } + ], + "_prefab": { + "__id__": 52 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 240, + "height": 27.72 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -99.704, + -2.205, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "ccHej6ZKxK6o8+pWYH7dhC" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 50 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "测试", + "_N$string": "测试", + "_fontSize": 25, + "_lineHeight": 25, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 0, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 1, + "_N$cacheMode": 1, + "_id": "8a0mkATQNJ+535H7jzhXTI" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 20 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "2an+mxcU5ApJz+ZlYlaw5G", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "label", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 54 + } + ], + "_prefab": { + "__id__": 55 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 28, + "height": 35.28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 246.176, + -2.205, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "92Mpgy3EtIv4wmJ47iTkc3" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 53 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "个", + "_N$string": "个", + "_fontSize": 28, + "_lineHeight": 28, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "bcz4eS315IoobyvAzd3NQl" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 20 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "78MlwwIH1CYrPsut4N5MBU", + "sync": false + }, + { + "__type__": "ca0f9k0oBVDbpQC+OMNTF3m", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_id": "c1c+DMgdRG3q56NuEbVYb0" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 20 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "55FH2q1HJAyK0hrjxGH/+q", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "b21uNyrqhLbqirpS1MD+7t", + "sync": false + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 37, + "_left": 350.07654921020657, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 237, + "_id": "15Ij2+io5Kf75wBTFmM1FH" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "5fe5dcaa-b513-4dc5-a166-573627b3a159" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "18yu9m8C1KVImpGMQfBH6e" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "7by3ovAnJLYoQqKmlhCACY", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": false, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "9bbda31e-ad49-43c9-aaf2-f7d9896bac69" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "366jlZ4HBD27bc2JZMq5cN" + }, + { + "__type__": "d5421HgLShFKIjj5f18m1mi", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": true, + "itemRender": { + "__id__": 20 + }, + "type": 2, + "startAxis": 2, + "spaceX": 10, + "spaceY": 10, + "padding_top": 10, + "padding_buttom": 10, + "padding_left": 10, + "_padding": 0, + "padding_right": 10, + "_id": "5eHjeDnZlKvI3Vhx1nh5nF" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "bdWGhni0BLgaAOrQnsfTP4", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Node", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 66 + }, + { + "__id__": 69 + }, + { + "__id__": 72 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 75 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "10unPSfi1NUb30N1EjhieB" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 65 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 67 + } + ], + "_prefab": { + "__id__": 68 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 54, + "height": 34.02 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -258.909, + 177.468, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "16l1mnOX5M1beKvcPbem8A" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 66 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "排名", + "_N$string": "排名", + "_fontSize": 27, + "_lineHeight": 27, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "8fbqxr8WlF+4EtfRkmqVmB" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "7bzdCzsURJc4G7MwOL0Blj", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 65 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 70 + } + ], + "_prefab": { + "__id__": 71 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 108, + "height": 34.02 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -48.622, + 177.468, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a3bCpEpCRBD7MKBsIRT6v6" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 69 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "用户昵称", + "_N$string": "用户昵称", + "_fontSize": 27, + "_lineHeight": 27, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "0f+OS1A5VBkY5x0F5RYDoj" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "517a9VdPBNUK5P35X44CpK", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 65 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 73 + } + ], + "_prefab": { + "__id__": 74 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 108, + "height": 34.02 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 223.658, + 177.468, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "efg8TK/nNEdrmy1CcmmR0z" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 72 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "驱逐太阳", + "_N$string": "驱逐太阳", + "_fontSize": 27, + "_lineHeight": 27, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "66yy55ZIJLOajbzHnk0Pyq" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "12KoCg1NRLpJU9aRF1iPkq", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "9963O/IP5CCLrawiVnAqdg", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "player", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 77 + }, + { + "__id__": 88 + } + ], + "_active": true, + "_components": [ + { + "__id__": 97 + } + ], + "_prefab": { + "__id__": 98 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 98, + "height": 106 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -254, + 377, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "791LpnRkFNkqdfpCoJ3Pqk" + }, + { + "__type__": "cc.Node", + "_name": "rank", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [ + { + "__id__": 78 + }, + { + "__id__": 81 + }, + { + "__id__": 84 + } + ], + "_active": false, + "_components": [], + "_prefab": { + "__id__": 87 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "7aHA1K+7hE8YNbYjVirEih" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 77 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 79 + } + ], + "_prefab": { + "__id__": 80 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 72, + "height": 30.24 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -42.835, + 60.883, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "96xrp90GJO8rwMqGxxlacV" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 78 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "超过了", + "_N$string": "超过了", + "_fontSize": 24, + "_lineHeight": 24, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "daHyJzw/xLho0dlbkuPHvm" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "b0QUZ3hixHY4BCC7p7EwaX", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 77 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 82 + } + ], + "_prefab": { + "__id__": 83 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 48, + "height": 30.24 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 74.991, + 60.883, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "66pdXEqLtLUaXZg+PhM/Z/" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 81 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "的人", + "_N$string": "的人", + "_fontSize": 24, + "_lineHeight": 24, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "5bSRJmjgtCUrA2vxudA4QN" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "d3ySguqntO5bgnP95er4PW", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "number", + "_objFlags": 0, + "_parent": { + "__id__": 77 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 85 + } + ], + "_prefab": { + "__id__": 86 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 51, + "b": 51, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 58.04, + "height": 36.54 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 21.936, + 61.459, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "08JiIvh25MQLbBHF2EDuB8" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 84 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "30%", + "_N$string": "30%", + "_fontSize": 29, + "_lineHeight": 29, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "4ejvYL3kxDzq6r/YHZLUuV" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "d6vzzOaCBH2JMQzL1q75Qk", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "01Wu1da3hD9qLoiu2u15Dh", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "mask", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [ + { + "__id__": 89 + }, + { + "__id__": 92 + } + ], + "_active": true, + "_components": [ + { + "__id__": 95 + } + ], + "_prefab": { + "__id__": 96 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 65, + "height": 65 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -0.079, + 4.153, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "0fcDfHHpRHXKM9MyyslQY8" + }, + { + "__type__": "cc.Node", + "_name": "phone", + "_objFlags": 0, + "_parent": { + "__id__": 88 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 90 + } + ], + "_prefab": { + "__id__": 91 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 65, + "height": 65 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "37ak2GKuNHfqHwY+7IEFc+" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 89 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "e5IQcGfCFLqoqf/wuxBYOY" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "a9FdZ8QGNM77omYBmm7jeP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 88 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 93 + } + ], + "_prefab": { + "__id__": 94 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "4ekK/6ZIFECYG79nYYRw1X" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 92 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "01l/YIk+JMKblUfKTyfTVO" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "082qUxbaNDrIu5wftUXuxE", + "sync": false + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 88 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 1, + "_segments": 64, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "237hnicvNDF57wjWEhMu97" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "15yWGxXfFKHYDj+6AKZ+hO", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 76 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "c3I2fvdkFB9I3xv3zy8H3C" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "777yycF4RPu7K18m/uyO1m", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 100 + } + ], + "_prefab": { + "__id__": 101 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 118 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -609, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "b525Z//RNMt7kDFipTkumj" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 99 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "3cEUZF+3RNUYwTQQpf9d/W" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "adJ7tHdodDiYvg71t3toeY", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Self", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 103 + }, + { + "__id__": 112 + }, + { + "__id__": 115 + }, + { + "__id__": 126 + }, + { + "__id__": 129 + }, + { + "__id__": 132 + } + ], + "_active": true, + "_components": [ + { + "__id__": 135 + } + ], + "_prefab": { + "__id__": 136 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "cf4fwLe4hJXLYT5vY7WfC9" + }, + { + "__type__": "cc.Node", + "_name": "pic", + "_objFlags": 0, + "_parent": { + "__id__": 102 + }, + "_children": [ + { + "__id__": 104 + }, + { + "__id__": 107 + } + ], + "_active": true, + "_components": [ + { + "__id__": 110 + } + ], + "_prefab": { + "__id__": 111 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -171.687, + 62, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "fe7qLOC0RM9qPt+IfQpa5W" + }, + { + "__type__": "cc.Node", + "_name": "pic", + "_objFlags": 0, + "_parent": { + "__id__": 103 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 105 + } + ], + "_prefab": { + "__id__": 106 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "24ACHKIZFGcoFu+5kISL5f" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 104 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "0eYZNHU9lK5Z0d0kmu6v2F" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "f513pLQ/9KMbKpOTC4nuyz", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 103 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 108 + } + ], + "_prefab": { + "__id__": 109 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "54GC+JJxVI+a5Fp8J91GjX" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 107 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "79BxLIwZdOjIPk+JbpAeFu" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "c8vhbkrhtGw72GydJ4enTg", + "sync": false + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 103 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 1, + "_segments": 60, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "6fiuDWjOBCBLIM3SAArXZT" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "47dNJgs3hCIZESImEUA8wi", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "rankLab", + "_objFlags": 0, + "_parent": { + "__id__": 102 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 113 + } + ], + "_prefab": { + "__id__": 114 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 249, + "b": 232, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 13.9, + "height": 31.5 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -259.131, + 59.946, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "c5SNuw5RxJOYLInx0KcLRh" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 112 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "5", + "_N$string": "5", + "_fontSize": 25, + "_lineHeight": 25, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "f4PjLXFaJKY7WwqSqZK1UD" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "25WXxoGV5I/KgHBE8D1rsK", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "rank", + "_objFlags": 0, + "_parent": { + "__id__": 102 + }, + "_children": [ + { + "__id__": 116 + }, + { + "__id__": 119 + }, + { + "__id__": 122 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 125 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 36 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -261.233, + 62, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "8fIUbpCjhI5r01JqiMBRub" + }, + { + "__type__": "cc.Node", + "_name": "one", + "_objFlags": 0, + "_parent": { + "__id__": 115 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 117 + } + ], + "_prefab": { + "__id__": 118 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "ef7AEay5ZBFJGkhxtuK3Ko" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 116 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "9fZk18R5pFzpXsHYRZLIyB" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "09Kg3hfzBBu6HptPpAFSW9", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "two", + "_objFlags": 0, + "_parent": { + "__id__": 115 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 120 + } + ], + "_prefab": { + "__id__": 121 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "0cB1/6h6lOm4PGv/txe9Wi" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 119 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "bcmZsyS4BDw7p0EU0wLam9" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "0dKJ2TWjFCOJ/iqhRFSLjk", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "three", + "_objFlags": 0, + "_parent": { + "__id__": 115 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 123 + } + ], + "_prefab": { + "__id__": 124 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "afrNKzhE5OH5xP4nKm+QPz" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 122 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "7d/VdpTjhGQZaLUUl7Uh/+" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "1aJ6eRDI5HH7V7ePpX8123", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "1dS3urBJ1F55mw2t/Q3F7w", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "totalLab", + "_objFlags": 0, + "_parent": { + "__id__": 102 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 127 + } + ], + "_prefab": { + "__id__": 128 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 249, + "b": 232, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 16.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 224.356, + 59.795, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "9cOTvlFrBPn7N/fP4D0g6m" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 126 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "4", + "_N$string": "4", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 2, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "0ckqDgb/BOnqmrI+CX+7LF" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "31xa76G7lPaao3sNmpqjSI", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "nameLab", + "_objFlags": 0, + "_parent": { + "__id__": 102 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 130 + } + ], + "_prefab": { + "__id__": 131 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 249, + "b": 232, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 25, + "height": 31.5 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -99.704, + 59.795, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "50Dn8FD+VLk49n1cFrrRa/" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 129 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "我", + "_N$string": "我", + "_fontSize": 25, + "_lineHeight": 25, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 0, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "f1wOeDKU5ID6PNtDXFhMnG" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "42BvS5Yl5GfY/GLeE5YQOh", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "label", + "_objFlags": 0, + "_parent": { + "__id__": 102 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 133 + } + ], + "_prefab": { + "__id__": 134 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 249, + "b": 232, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 28, + "height": 35.28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 246.176, + 59.795, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "d8Zmkz2h9P87uZl2UiIrfD" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 132 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "个", + "_N$string": "个", + "_fontSize": 28, + "_lineHeight": 28, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "8f59Obe2BI3okn2hSUf1uI" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "7bFLMTAaRJZbZdCmLU7NlT", + "sync": false + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 102 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 4, + "_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": 0, + "_originalHeight": 0, + "_id": "d3X22XFMBBOqWuJHIN1DzL" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "02TaTwJ1tM844wDACOg8Uk", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "backBtn", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 138 + }, + { + "__id__": 139 + }, + { + "__id__": 140 + } + ], + "_prefab": { + "__id__": 142 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 25, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -320.09, + 618, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "581Fkp6jhEH7Z3JUXkk7L4" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 137 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "73ZWxCtxxKOZAy/xTAw+AX" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 137 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 9, + "_left": 42.410000000000025, + "_right": 0, + "_top": 29, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "464mXeXUJPK5u6GxXJMzRG" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 137 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + { + "__id__": 141 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": null, + "_id": "f4kBI/sjNNqYrNDgEFFZFu" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "e74a999IDFOabyymZgXQIiy", + "handler": "backClick", + "customEventData": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "34+hXrhBBJUqEHHRNeqJSa", + "sync": false + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_designResolution": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_fitWidth": false, + "_fitHeight": true, + "_id": "17HeE62vtFurfhKbLJeXdc" + }, + { + "__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": 0, + "_originalHeight": 0, + "_id": "45wIx1qRNIfKRBbYhYEP1r" + }, + { + "__type__": "e74a999IDFOabyymZgXQIiy", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "Player": { + "__id__": 76 + }, + "selfNode": { + "__id__": 102 + }, + "phone": { + "__id__": 105 + }, + "_id": "81Iy69gIdCtp0UzAUPZ1+M" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 2 + }, + "asset": { + "__uuid__": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b" + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/assets/Scene/RankScene.fire.meta b/assets/Scene/RankScene.fire.meta new file mode 100644 index 0000000..e8c4f8e --- /dev/null +++ b/assets/Scene/RankScene.fire.meta @@ -0,0 +1,8 @@ +{ + "ver": "1.3.2", + "uuid": "2d2f792f-a40c-49bb-a189-ed176a246e49", + "importer": "scene", + "asyncLoadAssets": false, + "autoReleaseAssets": true, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script.meta b/assets/Script.meta new file mode 100644 index 0000000..4474a1c --- /dev/null +++ b/assets/Script.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "4734c20c-0db8-4eb2-92ea-e692f4d70934", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/Block.ts b/assets/Script/Block.ts new file mode 100644 index 0000000..3f87f43 --- /dev/null +++ b/assets/Script/Block.ts @@ -0,0 +1,137 @@ +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html + +//出现块的类型,问题以及答案 +var BlockType = cc.Enum({ + problem_In: 1, //内圈问题 + problem_Out: 2, //外圈问题 + correct_In:3, //内圈正确答案 + correct_Out:4, //外圈正确答案 + err_In:5, //内圈错误答案 + err_Out:6, //外圈错误答案 +}); + +const {ccclass, property} = cc._decorator; + +@ccclass +export default class Block extends cc.Component { + + @property(cc.Asset) + UI: cc.Asset = null; + + _touch: boolean; + _start: boolean; + _answer: boolean; + _inside: boolean; + _idNumber: number; + GameManager: any; + tube_Array: number[][];//管子数组 + + // LIFE-CYCLE CALLBACKS: + + onLoad () { + // this.init(); + this.GameManager = this.node.parent.parent.parent.getComponent("GameManager"); + this._touch = false; + this._start = false; + this._answer = false; + this._inside = true; + this.node.on(cc.Node.EventType.TOUCH_START, this.touchStart, this); + } + + init(type,id){ + if(type == BlockType.correct_Out){ + + } + } + + setId(id){ + this._idNumber = id; + } + + answerShow(texture){ + this.node.getChildByName("texture").active = true; + let textureName = "texture"+texture; + // @ts-ignore + this.node.getChildByName("texture").getComponent(cc.Sprite).spriteFrame = this.UI._spriteFrames[textureName]; + cc.tween(this.node.getChildByName("texture")) + .to(0.01,{opacity:255}) + .delay(this.GameManager.config["showTime"]-0.05) + .call(() =>{ + if(this._inside){ + this.node.getChildByName("texture").opacity = 0; + } + }) + .start(); + } + + lockShow(type,inside){ + this.node.getChildByName("texture").active = false; + this._answer = type; + this._inside = inside; + this.node.getChildByName("lock").active = true; + this._touch = true; + } + + lockHide(){ + this.node.getChildByName("lock").active = false; + this._touch = false; + } + + show(type,inside,texture){ + // this._answer = type; + this._inside = inside; + if(inside) this._answer = type; + let textureName = "texture"+texture; + this.node.getChildByName("texture").active = true; + //正确答案 + //@ts-ignore + this.node.getChildByName("texture").getComponent(cc.Sprite).spriteFrame = this.UI._spriteFrames[textureName]; + cc.tween(this.node.getChildByName("texture")) + .to(0.01,{opacity:255}) + // .delay(this.GameManager.config["showTime"]-0.1) + .call(() =>{ + if(inside){ + this._touch = true; + } + }) + .start(); + + } + + set_Pos(){ + this._start = true; + } + + set_Touch(type){ + this._touch = type; + } + + start () { + + } + //开始点击,提高层级 + touchStart (event) { + if(this._touch){ + if(this._answer){ + this.node.getChildByName("yes").active = true; + let data = {"result":true,"type":this._inside,id:this._idNumber}; + cc.fx.Notifications.emit("result",data); + } + else{ + this.node.getChildByName("err").active = true; + let data = {"result":false,"type":this._inside,id:this._idNumber}; + cc.fx.Notifications.emit("result",data); + } + } + + } + + // update (dt) { + + // } +} diff --git a/assets/Script/Block.ts.meta b/assets/Script/Block.ts.meta new file mode 100644 index 0000000..a14c936 --- /dev/null +++ b/assets/Script/Block.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "d63eea97-a92e-4657-94ff-8a733a2b4680", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/DynamicAtlasManager.js b/assets/Script/DynamicAtlasManager.js new file mode 100644 index 0000000..a2a6000 --- /dev/null +++ b/assets/Script/DynamicAtlasManager.js @@ -0,0 +1,10 @@ +cc.Class({ + extends: cc.Component, + + properties: { + }, + + onLoad () { + cc.dynamicAtlasManager.enabled = false; + }, +}); diff --git a/assets/Script/DynamicAtlasManager.js.meta b/assets/Script/DynamicAtlasManager.js.meta new file mode 100644 index 0000000..fd5b134 --- /dev/null +++ b/assets/Script/DynamicAtlasManager.js.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f", + "importer": "javascript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/GameManager.ts b/assets/Script/GameManager.ts new file mode 100644 index 0000000..95614cb --- /dev/null +++ b/assets/Script/GameManager.ts @@ -0,0 +1,498 @@ +// 主游戏控制类 +const {ccclass, property} = cc._decorator; +@ccclass +export default class GameManager extends cc.Component { + @property(cc.Prefab) + kuang1_Prefab: cc.Prefab = null; + @property(cc.Prefab) + kuang2_Prefab: cc.Prefab = null; + @property(cc.Node) + Block: cc.Node = null; + @property(cc.Label) + TimeLabel: cc.Label = null; + @property(cc.Label) + LevelLabel: cc.Label = null; + @property(cc.Node) + Guide: cc.Node = null; + + @property(cc.Sprite) + progress: cc.Sprite = null; //-95 640 + @property(cc.Node) + Top: cc.Node = null;//80 -725 + + countTime: number; //游戏总daojishi + startTime: number; //游戏开始时间,时间戳 + pause: boolean ; //游戏暂停 + gameOver: boolean ; //游戏结束 + result: number; //当前小局结束标杆 + + outside_Array: any; //内圈数组 + inside_Array: any; //外圈数组 + level: number; //关卡等级 + guide_Level: number; //引导等级 + guide_State: boolean; //引导等级 + config: {}; //当前关卡配置 + answerInside: number; //正确答案位置 + answerOutside: number; //正确答案位置 + pass: boolean; //是否通关 + outside: any; //外圈实际执行数组 + inside: any; //内圈实际执行数组 + answerInsideTexture: number; //争取答案图片 + answerOutsideTexture: number; //争取答案图片 + insideTexture: number[]; //错误答案数组 + outsideTexture: number[]; //错误答案数组 + + + + onLoad () { + this.guide_State = false; + this.level = cc.fx.GameConfig.GM_INFO.level; + this.guide_Level = cc.fx.GameConfig.GM_INFO.guide_Level; + this.LevelLabel.string = (this.level+1)+""; + this.progress.fillRange = cc.fx.GameConfig.GM_INFO.score/24; + if(this.progress.fillRange>= 0.2) this.Top.getChildByName("star1").active = true; + if(this.progress.fillRange>= 0.5) this.Top.getChildByName("star2").active = true; + if(this.progress.fillRange>= 0.8) this.Top.getChildByName("star3").active = true; + if((this.level == 0 && this.guide_Level == 4) || + (this.level == 4 && this.guide_Level == 3) || + (this.level == 8 && this.guide_Level == 1)){ + this.openGuide(false); + } + else{ + this.LevelLabel.node.active = true; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "第 轮"; + this.init(); + } + } + + init(){ + if(this.level == 4 && this.guide_Level == 2) { + cc.fx.GameConfig.GM_INFO.guide_Level -= 1; + this.guide_State = true; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + // this.node.getChildByName("tip").active = true; + } + + this.result = 0; + this.countTime = 6; + this.TimeLabel.string = cc.fx.GameTool.getTimeMargin(this.countTime); + this.createBlock(); + setTimeout(() => { + this.createCustom(); + }, 1000); + } + + openGuide(type){ + this.Guide.active = true; + this.guide_State = true; + // this.node.getChildByName("tip").active = true; + if(!type) cc.fx.GameConfig.GM_INFO.guide_Level -= 1; + this.Guide.getChildByName("one").active = false; + this.Guide.getChildByName("two").active = false; + this.Guide.getChildByName("three").active = false; + this.Guide.getChildByName("four").active = false; + let name = "one"; + if(this.level == 0){ + name = "one"; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + } + else if(this.level == 4){ + name = "two"; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + } + else if(this.level == 8){ + name = "three"; + this.guide_State = false; + } + if(type) name = "four"; + this.Guide.getChildByName(name).active = true; + cc.tween(this.Guide.getChildByName(name)) + .to(0.5,{opacity:255}) + .start(); + } + + closeGuide(){ + if(this.Guide.getChildByName("four").active){ + this.Guide.active = false; + cc.director.loadScene("GameScene"); + } + else{ + this.Guide.active = false; + this.init(); + } + // + + } + + //创建方块地图 + createBlock(){ + this.outside_Array = []; + this.inside_Array = []; + this.outside = []; + this.inside = []; + for(let i=0; i<16; i++){ + let block = cc.instantiate(this.kuang1_Prefab); + block.getComponent("Block").setId(i); + block.parent = this.Block.getChildByName("outside"); + let x,y = 0; + if(i < 5){ + x = -284 + 142*i; y = 259; + } + else if(i < 9){ + x = 284; y = 259 - (i-4)*142; + } + else if(i < 13){ + x = 284 - (i-8)*142; y = -309; + } + else if(i < 16){ + x = -284; y = -309 + (i-12)*142; + } + block.setPosition(x,y); + this.outside_Array.push(block); + } + for(let j=3; j<12; j++){ + let block = cc.instantiate(this.kuang2_Prefab); + block.getComponent("Block").setId(j); + block.parent = this.Block.getChildByName("inside"); + block.setPosition(-132+j%3*132,239-parseInt(j/3 + "")*132); + this.inside_Array.push(block); + } + } + + //创建关卡 + createCustom(){ + //初始化关卡配置数据 + this.level = cc.fx.GameConfig.GM_INFO.level; + this.LevelLabel.string = (this.level+1)+""; + this.config = cc.fx.GameConfig.LEVEL_INFO[this.level]; + if(this.level == 4 && this.guide_Level == 2) { + this.config = cc.fx.GameConfig.LEVEL_INFO[6]; + } + this.pass = false; + //放正确答案和错误答案 + this.answerInsideTexture = Math.floor(Math.random()*14 + 1); + //内圈错误答案随机 + this.insideTexture = []; + this.outsideTexture = []; + for(let k=0; k<14; k++){ + if((k+1) != this.answerInsideTexture){ + this.insideTexture.push(k+1); + } + } + cc.fx.GameTool.shuffleArray(this.insideTexture); + this.answerOutsideTexture = this.insideTexture[11]; + + //分配正确答案和错误答案位置 + if(this.config["inside"] > 0){ + this.result += 1; + let random = Math.random()*100; + let arrayTemp = [0,1,2,3,5,6,7,8]; + + if(this.config["insideType"] == 1){ + if(random >= 50) this.inside = [0,1,2]; + else this.inside = [6,7,8]; + } + else if(this.config["insideType"] == 2){ + if(random >= 50) this.inside = [0,3,6]; + else this.inside = [2,5,8]; + } + else{ + this.inside = cc.fx.GameTool.shuffleArray(arrayTemp); + this.inside.splice(this.config["inside"],this.inside.length-this.config["inside"]); + } + this.answerInside = this.inside[Math.floor(Math.random()*this.inside.length)]; + } + //分配外圈正确答案和错误答案位置 + if(this.config["outside"] > 0){ + this.result += 1; + if(this.config["outsideType"] == 1){ + this.outside = [1,2,3,5,6,7,9,10,11,13,14,15]; + } + else if(this.config["outsideType"] == 2){ + this.outside = [0,4,8,12]; + } + else{ + this.outside = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]; + } + cc.fx.GameTool.shuffleArray(this.outside); + this.answerOutside = this.outside[Math.floor(Math.random()*this.outside.length)]; + if(this.config["outside"] == 2){ + for(let j=0; j<15; j++){ + this.outsideTexture.push(this.insideTexture[3]); + } + } + else if(this.config["outside"] == 3){ + this.outsideTexture = [this.insideTexture[5],this.insideTexture[6],this.insideTexture[5],this.insideTexture[6],this.insideTexture[5]]; + for(let j=0; j<10; j++){ + let randomTemp = Math.random()*100; + if(randomTemp>50) this.outsideTexture.push(this.insideTexture[5]); + else this.outsideTexture.push(this.insideTexture[6]); + } + cc.fx.GameTool.shuffleArray(this.outsideTexture); + } + else if(this.config["outside"] == 4){ + this.outsideTexture = [this.insideTexture[2],this.insideTexture[4],this.insideTexture[6], + this.insideTexture[2],this.insideTexture[4],this.insideTexture[6]]; + for(let j=0; j<9; j++){ + let randomTemp = Math.random()*100; + if(randomTemp<33) this.outsideTexture.push(this.insideTexture[2]); + else if(randomTemp<66) this.outsideTexture.push(this.insideTexture[4]); + else this.outsideTexture.push(this.insideTexture[6]); + } + cc.fx.GameTool.shuffleArray(this.outsideTexture); + } + } + this.runBlock(); + } + + //块执行图片出现消失动画 + runBlock(){ + if(this.config["inside"] > 0){ + this.inside_Array[4].getComponent("Block").answerShow(this.answerInsideTexture); + setTimeout(() => { + let insideNumber = 0; + for(let i=0; i 0){ + this.outside_Array[this.answerOutside].getComponent("Block").answerShow(this.answerOutsideTexture); + if(this.config["outside"] > 1){ + let outsideNumber = 0; + for(let i=0; i { + let outsideNumber = 0; + for(let i=0; i { + if(!this.guide_State){ + this.startTime = cc.fx.GameTool.getTime(); + this.schedule(this.updateCountDownTime,1); + } + + }, this.config["showTime"]*1000); + } + + //正确 + openResult(result){ + this.result -= 1; + //非引导状态 + if(!this.guide_State){ + this.flipBlock(result); + if(this.result == 0){ + this.unschedule(this.updateCountDownTime); + setTimeout(() => { + this.setData(result); + }, 1000); + setTimeout(() => { + if(cc.fx.GameConfig.GM_INFO.level < cc.fx.GameConfig.LEVEL_INFO.length-1){ + cc.fx.GameConfig.GM_INFO.level += 1; + cc.director.loadScene("GameScene"); + } + }, 2000); + } + } + //引导状态下 + else{ + if(result.result){ + this.flipBlock(result); + setTimeout(() => { + if(this.level == 4 && cc.fx.GameConfig.GM_INFO.guide_Level == 2){ + cc.director.loadScene("GameScene"); + } + else this.openGuide(true); + }, 1000); + + } + } + + } + + //翻转形状变成问号 + flipBlock(result){ + if(result.type){ + let pos = this.changePos(true,result.id); + if(!this.guide_State) cc.fx.GameConfig.CLICK_DATA.userChoiceInner.push(pos.x,pos.y); + for(let i=0; i= 1) progress = 1; + cc.tween(this.progress) + .to(0.2,{fillRange:progress}) + .call(()=>{ + if(this.Top.getChildByName("star1").active == false && progress>= 0.2){ + this.Top.getChildByName("star1").active = true; + this.Top.getChildByName("star1").opacity = 0; this.Top.getChildByName("star1").scale = 0.1; + cc.tween(this.Top.getChildByName("star1")) + .to(0.3,{opacity:255,scale:1.1}) + .to(0.1,{opacity:255,scale:0.9}) + .to(0.1,{opacity:255,scale:1}) + .start(); + } + if(this.Top.getChildByName("star2").active == false && progress>= 0.5){ + this.Top.getChildByName("star2").active = true; + this.Top.getChildByName("star2").opacity = 0; this.Top.getChildByName("star2").scale = 0.1; + cc.tween(this.Top.getChildByName("star2")) + .to(0.3,{opacity:255,scale:1.1}) + .to(0.1,{opacity:255,scale:0.9}) + .to(0.1,{opacity:255,scale:1}) + .start(); + } + if(this.Top.getChildByName("star3").active == false && progress>= 0.8){ + this.Top.getChildByName("star3").active = true; + this.Top.getChildByName("star3").opacity = 0; this.Top.getChildByName("star3").scale = 0.1; + cc.tween(this.Top.getChildByName("star3")) + .to(0.3,{opacity:255,scale:1.1}) + .to(0.1,{opacity:255,scale:0.9}) + .to(0.1,{opacity:255,scale:1}) + .start(); + } + }) + .start(); + } + } + + //返回首页 + backScene(){ + cc.director.loadScene("LoadScene"); + } + //重新开始 + reStart(){ + + } + //获取时间戳 + getTime(){ + var timestamp = new Date().getTime(); + return timestamp; + } + //获胜 + passLevel(){ + + } + //失败 + loseLevel(type){ + + } + + changePos(type,num){ + var x = 0; var y = 0; + //内部 + if(type){ + y = parseInt(num/3+""); + x = num%3; + } + //外部 + else{ + if(num < 5){ + y=0; x=num; + } + else if(num < 9){ + x=5; y=num-4; + } + else if(num < 13){ + y=4; x=12-num; + } + else if(num < 16){ + x=0; y=16-num; + } + } + var jg = cc.v2(x,y); + return jg; + } + //如果是倒计时 调用此方法 + updateCountDownTime () { + if (this.countTime > 0) { + this.countTime -= 1; + // this.TimeLabel.string =this.countTime + ""; + this.TimeLabel.string = cc.fx.GameTool.getTimeMargin(this.countTime); + if(this.countTime <= 0){ + this.unschedule(this.updateCountDownTime); + this.node.getChildByName("Mask").active = true; + let data = {"result":false,"type":true,"id":null}; + if(this.config["inside"] > 0) cc.fx.Notifications.emit("result",data); + let data2 = {"result":false,"type":false,"id":null}; + if(this.config["outside"] > 0) cc.fx.Notifications.emit("result",data2); + } + } + } + //上传每次操作数据 + setData(result){ + cc.fx.GameConfig.CLICK_DATA.success = result.result; + cc.fx.GameConfig.CLICK_DATA.round = (cc.fx.GameConfig.GM_INFO.level + 1); + cc.fx.GameConfig.CLICK_DATA.duration = new Date().getTime() - this.startTime - 1000; + cc.fx.GameTool.setGameData(); + } + + onEnable () { + cc.fx.Notifications.on("result", this.openResult, this); + + } + onDisable () { + cc.fx.Notifications.off("result", this.openResult, this); + } + update (dt) { + + } +} diff --git a/assets/Script/GameManager.ts.meta b/assets/Script/GameManager.ts.meta new file mode 100644 index 0000000..1a800a4 --- /dev/null +++ b/assets/Script/GameManager.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "b0432040-dbde-438c-839c-ba2b5d18a3b5", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/GameOver.ts b/assets/Script/GameOver.ts new file mode 100644 index 0000000..8d1c09b --- /dev/null +++ b/assets/Script/GameOver.ts @@ -0,0 +1,99 @@ + +const {ccclass, property} = cc._decorator; + +@ccclass +export default class NewClass extends cc.Component { + @property(cc.Label) + count: cc.Label = null; + @property(cc.Label) + time: cc.Label = null; + @property(cc.Node) + selfNode: cc.Node = null; + @property(cc.Node) + one: cc.Node = null; + @property(cc.Node) + two: cc.Node = null; + @property(cc.Node) + three: cc.Node = null; + @property(cc.Node) + four: cc.Node = null; + @property(cc.Node) + five: cc.Node = null; + listData: any; + selfData: any; + efficiency: number; + level: number; + // onLoad () {} + start () { + this.init(); + } + + + //初始化数据 + init(){ + this.listData = []; + this.selfData = null; + // this.getRank(); + } + //打开排行榜 + openRank(){ + // alert("跳转"); + cc.director.loadScene("LoadScene"); + } + //重新开始玩 + again(){ + // let levelTemp = cc.fx.GameConfig.GM_INFO.level; + cc.fx.GameConfig.GM_INFO_init(); + // if(cc.fx.GameConfig.GM_INFO.isCustom){ + // cc.fx.GameConfig.GM_INFO.level = levelTemp; + // } + cc.director.loadScene("GameScene"); + + } + //获取排行榜 + getRank(){ + //获取排行榜数据 所需数据量 + let dataFile = { + length:5 + } + cc.fx.GameTool.getRank(dataFile,data =>this.getRankData(data)); + } + //设置排行信息 + getRankData(data){ + if(data){ + cc.fx.GameTool.getRankData(data,this,4); + cc.fx.GameTool.setPic(this.selfNode.getChildByName("pic").getChildByName("icon"),this.selfData.pic); + for(let i=0;i<=4;i++){ + this.setRank(i,this.listData[i]); + } + } + } + //根据内容填充排行榜 + setRank(num,data){ + var hitNode = null; + if(num == 0){ + hitNode = this.one; + } + else if(num == 1){ + hitNode = this.two; + } + else if(num == 2){ + hitNode = this.three; + } + else if(num == 3){ + hitNode = this.four; + } + else if(num == 4){ + hitNode = this.five; + } + if(hitNode){ + hitNode.active = true; + cc.fx.GameTool.subName(data.nickName,4); + hitNode.getChildByName("name").getComponent(cc.Label).string = data.nickName; + hitNode.getChildByName("total").getComponent(cc.Label).string = data.totalSunCount; + cc.fx.GameTool.setPic(hitNode.getChildByName("pic").getChildByName("icon"),data.pic); + } + } + + +} diff --git a/assets/Script/GameOver.ts.meta b/assets/Script/GameOver.ts.meta new file mode 100644 index 0000000..b407263 --- /dev/null +++ b/assets/Script/GameOver.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "805c69df-dfdf-4759-97ae-5a7341f424c7", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/Load.ts b/assets/Script/Load.ts new file mode 100644 index 0000000..0a0e081 --- /dev/null +++ b/assets/Script/Load.ts @@ -0,0 +1,53 @@ + +const {ccclass, property, requireComponent} = cc._decorator; + +@ccclass +export default class NewClass extends cc.Component { + + @property(false) + localTest: boolean = false; + + @property("") + clientTestVersion: string = "1.0.1"; + + @property(cc.Label) + testVersion: cc.Label = null; + + start () { + cc.macro.ENABLE_MULTI_TOUCH = false; + window.initMgr(); + cc.fx.GameConfig.init(this.localTest); + + // cc.fx.AudioManager.Instance.init(); + // this.testVersion.string = this.clientTestVersion; + } + + //开始游戏,跳转至引导页面 + startGame(){ + cc.fx.GameConfig.GM_INFO.isCustom = false; + cc.director.loadScene("GameScene"); + // cc.director.loadScene("GuideScene"); + } + //备用,用来测试跳转 指定关卡 + clickBtn(event,data){ + cc.fx.GameConfig.GM_INFO.level = parseInt(data); + cc.fx.GameConfig.GM_INFO.isCustom = true; + cc.director.loadScene("GameScene"); + } + //打开排行榜 + openRank(){ + cc.director.loadScene("RankScene"); + } + + showCustom(){ + if(this.node.getChildByName("Custom").active){ + this.node.getChildByName("Custom").active = false; + } + else{ + this.node.getChildByName("Custom").active = true; + } + } + + protected update(dt: number): void { + } +} diff --git a/assets/Script/Load.ts.meta b/assets/Script/Load.ts.meta new file mode 100644 index 0000000..7822b7e --- /dev/null +++ b/assets/Script/Load.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "454ad829-851a-40ea-8ab9-941e828357ca", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/RankManager.ts b/assets/Script/RankManager.ts new file mode 100644 index 0000000..708fbe1 --- /dev/null +++ b/assets/Script/RankManager.ts @@ -0,0 +1,133 @@ + +import List from "./module/RankList/List"; +const { ccclass, property } = cc._decorator; +//排行榜 +@ccclass +export default class RankManager extends cc.Component { + @property(cc.Node) //用户上方头像 + Player: cc.Node = null; + @property(cc.Node) //用户最下方个人信息 + selfNode: cc.Node = null; + @property(cc.Sprite) //用户头像换图 + phone: cc.Sprite = null; + private rankList: List; //排行榜 + tween: cc.Tween; //最上方用户头像动画 + listData: any; //总列表信息 + selfData: any; //自己信息 + rankNumber: number; //用户自己排名 有可能不在排行榜内99+ + rankTotal: number; //获取排行榜用户数量 现在为100 + + onLoad() { + this.init(); + } + //初始化数据 + init(){ + this.rankList = cc.find("ScrollView", this.node).getComponent(List); + this.Player.getChildByName("rank").active = false; + this.listData = []; + this.selfData = null; + this.rankNumber = 100; + this.rankTotal= 100; + this.selfNode.opacity = 0; + } + + start() { + this.Player.active = false; + this.getRank(); + } + //调用获取排行榜接口 + getRank(){ + let dataFile = { + length:100 + } + cc.fx.GameTool.getRank(dataFile,data =>this.getRankData(data)); + } + //实际设置排行数据 + getRankData(data){ + if(data){ + // console.log(data); + cc.fx.GameTool.getRankData(data,this,6); + this.setPic(this.selfData.pic); + } + } + //返回按钮 + backClick(){ + cc.director.loadScene("LoadScene"); + } + //最上方用户动画 + playerAction(){ + //-254 377 210 453 + this.Player.getChildByName("rank").active = false; + let time = 1; + this.tween = cc.tween(this.Player) + .to(2,{position:cc.v3(210,453,0)}) + .call(() =>{ + this.Player.getChildByName("rank").active = true; + this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time*100 + "") + "%"; + }) + .start(); + time = (this.listData.length - this.rankNumber)/this.listData.length; + if(this.listData.length >= 99){ + if(this.rankNumber >= 99){ + time = (Math.random()*49+1)/100 + var matchId = cc.sys.localStorage.getItem("matchNumber"); + if(matchId == null || matchId == undefined){ + time = 0; + } + } + } + setTimeout(() => { + if(this.tween)this.tween.stop(); + this.Player.getChildByName("rank").active = true; + this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time*100 + "") + "%"; + }, time*2000); + + } + //设置头像 处理的逻辑比较多,不用公共类的了 + public setPic(pic){ + this.phone.node.parent.getChildByName("icon").active = false; + this.phone.node.active = false; + this.Player.active = true; + this.Player.opacity = 0; + this.Player.getChildByName("mask").getChildByName("icon").active = false; + this.Player.getChildByName("mask").getChildByName("phone").active = false; + fetch(pic) + .then(response => { + return response.headers.get('Content-Length'); + }) + .then(errNo => { + if(errNo == "5093"){ + this.phone.node.parent.getChildByName("icon").active = true; + this.Player.getChildByName("mask").getChildByName("icon").active = true; + } + }) + .catch(error => { + console.error('Error fetching X-Info:', error); + }); + var self = this; + cc.assetManager.loadRemote(pic, {ext:'.png'},(err, texture:cc.Texture2D) => { + self.Player.opacity = 255; + if(texture){ + self.phone.node.active = true; + self.phone.spriteFrame = new cc.SpriteFrame(texture); + self.Player.getChildByName("mask").getChildByName("icon").active = false; + self.Player.getChildByName("mask").getChildByName("phone").active = true; + self.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite) + .spriteFrame = new cc.SpriteFrame(texture); + setTimeout(() => { + self.playerAction(); + }, 500); + } + else{ + self.Player.getChildByName("mask").getChildByName("icon").active = true; + setTimeout(() => { + self.playerAction(); + }, 500); + } + + }) + } + +} diff --git a/assets/Script/RankManager.ts.meta b/assets/Script/RankManager.ts.meta new file mode 100644 index 0000000..fd3f5dc --- /dev/null +++ b/assets/Script/RankManager.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "e74a9f7d-2031-4e69-bcb2-9998174088b2", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/Sdk.meta b/assets/Script/Sdk.meta new file mode 100644 index 0000000..4f30dc1 --- /dev/null +++ b/assets/Script/Sdk.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "ec0a44ff-c813-4573-8b85-268526211437", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/Sdk/DouyinEntranceView.ts b/assets/Script/Sdk/DouyinEntranceView.ts new file mode 100644 index 0000000..0a5a334 --- /dev/null +++ b/assets/Script/Sdk/DouyinEntranceView.ts @@ -0,0 +1,29 @@ +import { MiniGameSdk } from "./MiniGameSdk"; +const { ccclass, property } = cc._decorator; + + +@ccclass +export class DouyinEntranceView extends cc.Component { + start() { + + } + + update(deltaTime: number) { + + } + + onCloseClick() { + this.node.active = false; + } + + onNavigateToDouyinClick() { + + MiniGameSdk.BytedanceSidebar.navigateToSidebar((success: boolean) => { // 跳转到抖音侧边栏 + if (success) { + console.log('跳转成功'); + } else { + console.log('跳转失败'); + } + }); + } +} diff --git a/assets/Script/Sdk/DouyinEntranceView.ts.meta b/assets/Script/Sdk/DouyinEntranceView.ts.meta new file mode 100644 index 0000000..43bb3f1 --- /dev/null +++ b/assets/Script/Sdk/DouyinEntranceView.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "8a024faa-e4af-4cae-9c5c-693bee7120c1", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/Sdk/MiniGameManager.ts b/assets/Script/Sdk/MiniGameManager.ts new file mode 100644 index 0000000..cf30206 --- /dev/null +++ b/assets/Script/Sdk/MiniGameManager.ts @@ -0,0 +1,340 @@ + +import { MiniGameSdk } from "./MiniGameSdk"; +const { ccclass, property } = cc._decorator; +enum EWechatAD { + CUMSTOM_01 = 'adunit-f7c2417eb2c2e473' +} + +@ccclass +export class MiniGameManager extends cc.Component { + + @property(cc.Node) + entranceView: cc.Node = null; + /** + * 开始游戏前的初始化操作。 + * 主要负责检查并处理游戏入口按钮的激活状态,以及在特定环境下设置侧边栏的监听器。 + * + * @remarks + * 此方法首先将游戏入口视图设为非激活状态,以准备进行后续的检查和设置。 + * 如果当前环境是抖音小游戏,会检查是否存在侧边栏,并根据检查结果激活或禁用游戏入口按钮。 + * 对于非抖音小游戏环境,直接激活游戏入口按钮。 + * 此外,无论环境如何,都会设置一个监听器,以处理来自侧边栏的事件,如成功触发时显示奖励提示。 + */ + private _id:any; + private _userData:any; + + private static _instance: MiniGameManager; + static get instance(): MiniGameManager { + if (!MiniGameManager._instance) { + MiniGameManager._instance = new MiniGameManager(); + } + return MiniGameManager._instance; + } + + start() { + // 禁用游戏入口视图 + // this.entranceView.active = false; + // MiniGameSdk.API.getUserProfile(this.setUserId); + // cc.fx.GameTool.setUserInfo(""); + this.onGetLoginCode(); + // 尝试获取游戏入口按钮,如果存在则直接返回,不进行后续操作 + // let buttonEntrance = this.node.getChildByName('Btns')?.getChildByName('Button_EntranceView'); + // if (buttonEntrance) { + // return; + // } + + // 如果是字节跳动小游戏环境,检查侧边栏是否存在 + + if (MiniGameSdk.isBytedance()) { + //抖音环境,检测侧边栏存在 + MiniGameSdk.BytedanceSidebar.checkSideBar((success: boolean) => { + // 根据侧边栏存在性激活或禁用游戏入口按钮 + // buttonEntrance.active = success; + }); + } else { + // 非抖音小游戏环境,直接激活游戏入口按钮 + // 非抖音环境,正常显示按钮 + // buttonEntrance.active = true; + } + + // 设置监听器,以处理来自侧边栏的交互事件 + MiniGameSdk.BytedanceSidebar.listenFromSidebar((success: boolean) => { + // 如果交互成功,显示奖励提示 + if (success) { + MiniGameSdk.API.showToast('侧边栏奖励', 5); + } + }); + } + + update(deltaTime: number) { + + } + + /** + * 弹出广告横幅。 + * 此方法用于加载并显示广告横幅。它首先加载指定广告位的横幅广告,然后显示广告。 + * 加载广告和显示广告是通过MiniGameSdk.AdvertManager的实例方法来实现的。 + * + * @remarks + * 此方法提供了两种显示横幅广告的方式: + * 1. 默认方式:调用showBanner方法显示广告,系统会自动选择显示位置。 + * 2. 指定位置方式:可以通过传入额外的参数来指定广告显示在屏幕的顶部或底部,或者通过坐标指定显示位置。 + * + * 示例代码中注释掉了两种显示广告的具体方法,可以根据实际需求选择使用。 + */ + onShowBanner() { + // 加载指定广告位的横幅广告。 + MiniGameSdk.AdvertManager.instance.loadBanner('adunit-4e7ef467e3eaab51'); + + // 默认方式显示横幅广告。 + // 方法1:默认调用 + MiniGameSdk.AdvertManager.instance.showBanner(); + + // 示例:指定屏幕底部正中显示横幅广告。 + // 方法2:指定屏幕顶部或底部正中 + // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', MiniGameSdk.EAdBannerLocation.BOTTOM); + + // 示例:通过坐标指定位置显示横幅广告。 + // 方法2:指定坐标 + // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', { top: 10, left: 10 }); + } + + /** + * 隐藏广告横幅的函数。 + * + * 该函数调用MiniGameSdk.AdvertManager实例的方法,用于隐藏广告横幅。 + * 当需要暂时停止展示广告或用户主动请求隐藏广告时,可以调用此函数。 + * + * @remarks + * 此函数不接受任何参数,也不返回任何值。 + * 它单纯地触发广告横幅的隐藏操作,具体实现依赖于AdvertManager的实现。 + */ + onHideBanner() { + MiniGameSdk.AdvertManager.instance.hideBanner(); + } + + /** + * 显示插屏广告的函数。 + * + * 此函数调用MiniGameSdk.AdvertManager实例的方法,以显示一个指定的插屏广告。 + * 它使用了硬编码的广告单元标识符,这意味着它专为特定的广告位设计。 + * 在实际应用中,可能需要根据应用的配置或用户的特定条件来动态选择广告单元标识符。 + */ + onShowInterstitial() { + MiniGameSdk.AdvertManager.instance.showInterstitial('adunit-eadd67851d3050ad'); + } + + /** + * 调用广告管理器加载并展示自定义广告。 + * 此方法首先通过广告管理器的实例加载指定的自定义广告单元,然后展示这个自定义广告。 + * 加载和展示广告是广告管理系统中的常见操作,这里通过两步分别完成加载和展示的过程, + * 以确保广告在展示前正确且充分地被加载。 + */ + onShowCustom() { + // 加载指定的自定义广告单元。 + MiniGameSdk.AdvertManager.instance.loadCustom(EWechatAD.CUMSTOM_01); + // 展示已加载的自定义广告。 + MiniGameSdk.AdvertManager.instance.showCustom(EWechatAD.CUMSTOM_01); + } + + /** + * 隐藏自定义广告。 + * + * 本函数调用MiniGameSdk.AdvertManager.instance.hideCustom()来隐藏自定义广告。 + * 这是对接广告管理系统的一部分,用于控制广告的显示与隐藏。 + * 在需要隐藏自定义广告的场景下,调用此函数即可实现相应功能。 + */ + onHideCustom() { + MiniGameSdk.AdvertManager.instance.hideCustom(EWechatAD.CUMSTOM_01); + } + + /** + * 触发显示视频广告的函数。 + * 通过调用MiniGameSdk.AdvertManager.instance.showVideo方法,显示一个视频广告,并根据用户观看广告的情况执行相应的逻辑。 + * + * @remarks + * 此函数首先传入一个广告单元ID,用于标识要显示的视频广告。然后传入一个回调函数,该回调函数在用户观看广告后被调用,无论用户是完成了观看、拒绝了观看还是观看过程中发生了错误。 + * 回调函数接收两个参数:一个是用户观看广告的结果,另一个是用户观看的广告数量。根据观看结果的不同,显示不同的提示信息。 + */ + onShowVideo() { + // 广告单元ID,用于标识要显示的视频广告 + // 广告单元ID的样例 + //抖音形如: 1re3nfqkmy81m4m8ge + //微信形如: adunit-a7718f6e195e42fe + MiniGameSdk.AdvertManager.instance.showVideo('1re3nfqkmy81m4m8ge', (res: MiniGameSdk.EAdVideoResult, count: number) => { + // 输出用户观看的广告数量 + console.log('用户看的视频广告个数是:', count); + + // 根据用户观看广告的结果,执行不同的逻辑 + switch (res) { + case MiniGameSdk.EAdVideoResult.ACCEPT: + // 用户完成了广告观看,显示奖励提示 + MiniGameSdk.API.showToast('用户看完广告,可以奖励'); + break; + case MiniGameSdk.EAdVideoResult.REJECT: + // 用户拒绝了广告观看,显示不奖励提示 + MiniGameSdk.API.showToast('用户拒绝掉广告,不奖励'); + break; + case MiniGameSdk.EAdVideoResult.ERROR: + // 广告播放发生错误,显示错误提示 + MiniGameSdk.API.showToast('播放广告发生错误,不奖励'); + break; + default: + // 其他情况,不作处理 + break; + } + }); + } + + /** + * 引导用户分享应用给朋友。 + * + * 通过调用MiniGameSdk的API分享功能,向用户的朋友圈发送邀请,邀请他们一起玩游戏。 + * 这是一个重要的推广手段,可以增加应用的曝光度和用户量。 + * + * @remarks + * 此方法中调用的API依赖于特定的小游戏平台,因此在不同的平台上可能需要不同的实现。 + */ + onShare() { + MiniGameSdk.API.shareAppToFriends('来玩游戏吧'); + } + + /** + * 显示一个toast提示。 + * + * 通过调用MiniGameSdk的API方法来显示一个简短的提示信息。toast是一种轻量级的提示方式,用于在界面上短暂地展示一些信息,不影响用户操作。 + * 这里使用了固定的提示文本 '这是一个toast',在实际应用中,可以根据需要动态设置提示文本。 + */ + onShowToast() { + MiniGameSdk.API.showToast('这是一个toast'); + } + + /** + * 触发设备振动功能。 + * + * 该方法用于调用MiniGameSdk提供的API,以实现设备的振动功能。当需要提醒用户或提供触觉反馈时,可以调用此方法。 + * 例如,在游戏或应用中,当用户完成特定操作或发生特定事件时,可以通过振动给予用户反馈。 + * + * @remarks + * 此方法无参数,也不返回任何值。 + */ + onVirbrate() { + MiniGameSdk.API.vibrate(); + } + + /** + * 重新启动游戏实例。 + * + * 此函数调用MiniGameSdk中的API重新启动游戏。重新启动操作可能是为了初始化游戏环境、重置游戏状态或处理其他需要重启的场景。 + * 调用此函数后,游戏将会重新开始,当前的游戏状态将会被清除。 + * + * @remarks + * 此函数不接受任何参数。 + * + * @returns 无返回值。 + */ + onReboot() { + MiniGameSdk.API.reboot(); + } + + /** + * 当前函数用于在迷你游戏中实现退出功能。 + * 它调用了MiniGameSdk提供的API方法来触发退出操作。 + * 该方法通常在需要结束当前迷你游戏或返回到上一级菜单时被调用。 + */ + onExit() { + MiniGameSdk.API.exit(); + } + + /** + * 显示分享菜单。 + * + * 通过调用MiniGameSdk的API方法,触发显示分享菜单的操作。此函数旨在提供一个统一的入口, + * 以便在需要时轻松调用分享功能,而无需直接与具体的SDK接口交互。 + * + * @remarks + * 此方法不接受任何参数,也不返回任何值。 + */ + onShowShareMenu() { + MiniGameSdk.API.showShareMenu(); + } + + /** + * 导航到指定的小游戏。 + * + * 本函数用于触发导航到一个特定的小游戏。这需要提供目标小游戏的ID, + * 以便系统能够正确地将用户重定向到目标小游戏。 + * + * 注意:这里的'xxx'是占位符,实际使用时需要替换为具体的小游戏ID。 + */ + onNavigate() { + MiniGameSdk.API.navigateTo('xxx'); // xxx替换为你的小游戏id + } + + /** + * 激活字节跳动入口视图。 + * + * 此方法用于将字节跳动入口视图设置为活跃状态。当需要在用户界面中显示字节跳动的入口时, + * 可以调用此方法来激活相应的视图元素,使其对用户可见。 + */ + onBytedanceEntranceView() { + // this.entranceView.active = true; + } + + /** + * 请求登录代码 + * + * 本函数用于触发小程序的登录流程,获取微信或头条等第三方平台的登录代码。 + * 这些代码可以用于后续的用户身份验证和数据同步流程。 + */ + onGetLoginCode() { + // 调用MiniGameSdk的API登录方法,传入一个回调函数处理登录结果 + MiniGameSdk.API.login((code: string, anonymousCode: string) => { + // 打印微信或头条的登录代码 + console.log('Wechat Or Bytedance Code:', code); + // 打印头条的匿名登录代码 + // console.log('Bytedance Anonymous Code:', anonymousCode); + if(code){ + cc.fx.GameTool.getUserId(code, data => this.setUserId(data)); + } + }); + } + + setUserId(data){ + cc.fx.GameConfig.GM_INFO.userId = data.data.userId; + MiniGameSdk.API.getUserInfo(this.setUserInfo); + } + + setUserInfo(data){ + console.log("获取到的用户信息",data.userInfo); + var useData = { + "gameId": cc.fx.GameConfig.GM_INFO.gameId, + "userId": cc.fx.GameConfig.GM_INFO.userId, + "nickName":data.userInfo.nickName, + "pic": data.userInfo.avatarUrl + + } + console.log("即将上传的用户信息:",cc.fx.GameConfig.GM_INFO.userId,data.userInfo.nickName,data.userInfo.avatarUrl); + console.log("Post数据:",useData); + cc.fx.HttpUtil.setUserInfo(useData,(res)=>{ + console.log("上传成功:",res); + }); + } + + /** + * 创建并显示游戏圈按钮 + * + * 本函数通过调用MiniGameSdk的GameClub实例方法,实现游戏俱乐部的创建和显示。 + * 它首先配置俱乐部的图标类型和位置大小,然后创建俱乐部,最后显示俱乐部。 + * 这样做是为了在小游戏内创建并展示一个游戏俱乐部的图标,供玩家加入或互动。 + */ + onCreateClub() { + // 配置俱乐部图标为绿色,设置图标的位置为顶部200像素,左侧0像素 + MiniGameSdk.GameClub.instance.create( + MiniGameSdk.EGameClubIcon.GREEN, + { top: 200, left: 0 }, + { width: 50, height: 50 }); + // 显示游戏俱乐部图标 + MiniGameSdk.GameClub.instance.show(); + } +} diff --git a/assets/Script/Sdk/MiniGameManager.ts.meta b/assets/Script/Sdk/MiniGameManager.ts.meta new file mode 100644 index 0000000..84df67f --- /dev/null +++ b/assets/Script/Sdk/MiniGameManager.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "0d272a57-5428-450e-a8b9-1574c3d89951", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/Sdk/MiniGameSdk.ts b/assets/Script/Sdk/MiniGameSdk.ts new file mode 100644 index 0000000..911c9ea --- /dev/null +++ b/assets/Script/Sdk/MiniGameSdk.ts @@ -0,0 +1,1130 @@ +/** + * 小游戏平台SDK工具封装,目前只支持微信和抖音平台 + */ +export namespace MiniGameSdk { + + interface ISize { + width: number; + height: number; + } + + export interface IPosition { + top: number; + left: number; + } + + export function isWechat(): boolean { + //@ts-ignore + return window.wx !== null && window.wx !== undefined; + } + + export function isBytedance(): boolean { + //@ts-ignore + return window.tt !== null && window.tt !== undefined; + } + + + function getSysWinSize(): ISize { + let sys: any; + if (isWechat()) { + // @ts-ignore + sys = wx.getSystemInfoSync(); + } else if (isBytedance()) { + // @ts-ignore + sys = tt.getSystemInfoSync(); + } + + let size: ISize = { width: 0, height: 0 }; + if (sys) { + size.width = sys.windowWidth; + size.height = sys.windowHeight; + } + + return size; + } + + /** + * 插屏广告。微信抖音都支持! + */ + class ADInterstitial { + private _adUid: string; + private _interstitial: any; + + get aduid() { + return this._adUid; + } + + constructor(adUid: string) { + this._adUid = adUid; + } + + show() { + // @ts-ignore + if (isWechat() && !wx.createInterstitialAd) { + console.warn('wechat unsupport interstitial AD!'); + this._interstitial = null; + return; + } + + // @ts-ignore + if (isBytedance() && !tt.createInterstitialAd) { + console.warn('bytedance unsupport interstitial AD!'); + this._interstitial = null; + return; + } + + + if (this._interstitial) { + this._interstitial.load(); + } else { + if (isWechat()) { + // @ts-ignore + this._interstitial = wx.createInterstitialAd({ adUnitId: this._adUid }); + } else if (isBytedance()) { + // @ts-ignore + this._interstitial = tt.createInterstitialAd({ adUnitId: this._adUid }); + } else { + this._interstitial = null; + } + + this._interstitial?.onLoad(() => { + console.log('load interstitial ad success'); + this._interstitial.show().catch((err: any) => { + console.log('catch interstitial ad error:', err); + }); + }); + + this._interstitial?.onError((err: any) => { + console.log('interstitial ad on error:', err); + }); + } + } + destory() { + this._interstitial?.destroy(); + } + } + + class ADBanner { + private _adUid: string; + private _banner: any; + + get aduid() { + return this._adUid; + } + + /** + * 抖音和微信都支持 + * 横幅广告。预估宽度默认为300,预估高度为140。如果你不确定就按默认值来。 + * @param adUid 广告UID,后端配置 + * @param isTop 是否在屏幕顶部展示。内部会自动居中计算位置。 + * @param bannerWidth 横幅广告的预估宽度。默认300 + * @param autoShow 广告加载完成后是否立刻显示,默认为不显示 + */ + constructor(adUid: string, param: boolean | IPosition, bannerWidth: number = 300, autoShow: boolean = false) { + this._adUid = adUid; + this.create(autoShow, bannerWidth, param); // 默认300比较合适 + } + + private create(autoShow: boolean, bannerWidth: number, param: boolean | IPosition) { + if (!isWechat() && !isBytedance()) { + this._banner = null; + return; + } + + this.destroy(); + + let winSize = getSysWinSize(); + + let height = bannerWidth * 0.4; + let top = 0, left = 0; + + if (typeof param === "boolean") { + left = (winSize.width - bannerWidth) / 2 + top = param ? 5 : (winSize.height - height); + } else { + left = param.left; + top = param.top; + } + + let params = { + adUnitId: this._adUid, + adIntervals: 30,// 自动刷新频率不能小于30秒 + style: { left: left, top: top, width: bannerWidth } + } + + if (isWechat()) { + // @ts-ignore + this._banner = wx.createBannerAd(params); + } else if (isBytedance()) { + // @ts-ignore + this._banner = tt.createBannerAd(params); + } else { + this._banner = null; + } + + this._banner?.onError((err: any) => { + console.log('ad banner error:', err); + }); + + this._banner?.onLoad(() => { + autoShow && this._banner.show(); + }); + } + + show() { + this._banner?.show(); + } + + hide() { + this._banner?.hide(); + } + + destroy() { + this._banner?.destroy(); + } + } + + class ADCustom { + private _adUid: string; + private _adCustom: any; + + get aduid() { + return this._adUid; + } + /** + * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持! + * @param adUid 广告UID,后端配置 + * @param top 从左上角开始,距离屏幕顶部的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。 + * @param left 从左上角开始,距离屏幕最左边的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。 + * @param scale 原生模板广告的尺寸,默认为1,即100%。此值在微信服务后端广告中获得,默认为100%,目前有100%,90%,80%三种,一般情况不用修改。若有修改,记得传入值,例如90%就传入0.9。 + */ + constructor(adUid: string, top: number = 0, left: number = 0, scale: number = 1.0) { + this._adUid = adUid; + this.createCustomAd(top, left, scale); + } + + private createCustomAd(top: number, left: number, scale: number) { + if (!isWechat()) { // only wechat support custom ad + this._adCustom = null; + console.log('Only wechat support Custom Ad'); + return; + } + + this.destroy(); + // 原生模板5个应用宽度为375,若设置了缩放比例,则宽度也需要设置 + // let width = 375 * this._scale; + // let newLeft = (sys.windowWidth - width) / 2; + // let newTop = sys.windowHeight / 2; // 120是预估高度 + + // @ts-ignore + this._adCustom = wx.createCustomAd({ + adUnitId: this._adUid, + style: { left: left, top: top, fixed: true } + }); + + this._adCustom?.onError((err: any) => { + console.log('ad custom error:', err); + }); + } + show() { + this._adCustom?.show(); + } + + hide() { + this._adCustom?.hide(); + } + + destroy() { + this._adCustom?.destroy(); + } + } + + + /** + * 视频广告用户点击行为结果 + */ + export enum EAdVideoResult { + /** + * 用户看完了广告,游戏可发放奖励。 + */ + ACCEPT, + + /** + * 用户中途关闭了广告,即未看完状态。不可发放奖励。 + */ + REJECT, + + /** + * 广告组件内部发生了错误。不可发放奖励。 + */ + ERROR, + } + + class ADVideo { + private _adUid: string; + private _adVideo: any = null; + + get aduid() { + return this._adUid; + } + + constructor(adUid: string) { + this._adUid = adUid; + } + + /** + * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount + * @param onResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 + * @param target onResult的拥有者 + * @param maxVideoCount 可以连续看最大视频个数,可最大化商业效率。默认为3个。 + * @returns + */ + show(onResult: (res: EAdVideoResult, count: number) => void, target?: any, maxVideoCount: number = 3): void { + let callback = (state: EAdVideoResult, count: number) => { + onResult?.call(target, state, count); + } + + if (!isWechat() && !isBytedance()) { + callback(EAdVideoResult.ACCEPT, 1); + this._adVideo = null; + return; + } + + let onAdVideoClosed = (res: any) => { + this._adVideo?.offClose(onAdVideoClosed); + if (isWechat()) { + if (res && res.isEnded || res === undefined) { + callback(EAdVideoResult.ACCEPT, 1); + } else { + callback(EAdVideoResult.REJECT, 0); + } + } else if (isBytedance()) { + let resConverted = res as { isEnded: boolean, count: number }; + if (resConverted && resConverted.count > 0) { + callback(EAdVideoResult.ACCEPT, resConverted.count); + } else { + callback(EAdVideoResult.REJECT, 0); + } + } + } + + this._adVideo?.offClose(onAdVideoClosed); + + if (isWechat()) { + // @ts-ignore + this._adVideo = wx.createRewardedVideoAd({ + adUnitId: this._adUid + }); + } else if (isBytedance()) { + // @ts-ignore + this._adVideo = tt.createRewardedVideoAd({ + adUnitId: this._adUid, + multiton: true, + multitonRewardMsg: ['多1次奖励', '再多一次奖励', '再多一次奖励'], + multitonRewardTimes: maxVideoCount, + }); + } else { + this._adVideo = null; + } + + + this._adVideo?.onLoad(() => { + console.log('Ad load success'); + }); + + this._adVideo?.onError((err: { errMsg: string, errCode: number }) => { + console.log('Ad video error:', err); + callback(EAdVideoResult.ERROR, 0); + }); + + this._adVideo?.onClose(onAdVideoClosed); + + this._adVideo?.show().catch(() => { + this._adVideo?.load().then(() => + this._adVideo?.show()).catch((err: { errMsg: string, errCode: number }) => { + console.log('Catch video ad error:', err); + callback(EAdVideoResult.ERROR, 0); + }); + }); + } + + destory() { + this._adVideo?.destory(); + } + } + + export enum EAdBannerLocation { + /** + * 屏幕顶部 + */ + TOP, + + /** + * 屏幕底部 + */ + BOTTOM, + } + + export class AdvertManager { + + private static _instance: AdvertManager; + + static get instance(): AdvertManager { + if (!AdvertManager._instance) { + AdvertManager._instance = new AdvertManager(); + } + return AdvertManager._instance; + } + + private _video: ADVideo; + private _interstitial: ADInterstitial; + private _banner: ADBanner; + private _customs: Record = {}; + + private constructor() { + + } + + /** + * 预加载横幅广告,不会显示。只有你在调用showBanner时才会显示。 + * 可重复调用,但是会销毁上一次的实例。一般情况,全局有一个就行了,太多占用内存,而且没必要。 + * @param adUid 广告UID + * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置 + * @param scale 默认为跟屏幕一样的宽度,可以通过设置缩放比例来调整大小。当然,平台有规定最大或最小宽度,函数内部会自动计算。 + */ + public loadBanner(adUid: string, location: EAdBannerLocation | IPosition = EAdBannerLocation.TOP, scale: number = 1.0) { + this._banner?.destroy(); + let size: ISize = getSysWinSize(); + // 当 style.width 小于 300 时,会取作 300。 当 style.width 大于屏幕宽度时,会取作屏幕宽度。 + let width = size.width * scale; + width = width < 300 ? 300 : width; // 最小值矫正 + width = width > size.width ? size.width : width; //最大值矫正 + this._banner = typeof location === 'number' ? new ADBanner(adUid, location === EAdBannerLocation.TOP, width, false) : new ADBanner(adUid, location, width, false); + } + + /** + * 显示横幅广告 + */ + public showBanner() { + if (this._banner) { + this._banner.show(); + } else { + console.warn('MiniGameSDK: banner is null, you must call loadBanner(...) first!'); + } + } + + /** + * 隐藏横幅广告 + */ + public hideBanner() { + this._banner?.hide(); + } + + /** + * 弹出插屏广告 + * @param adUid 广告单元id + */ + public showInterstitial(adUid: string) { + if (this._interstitial && this._interstitial.aduid === adUid) { + this._interstitial.show(); + } else { + this._interstitial?.destory(); + this._interstitial = new ADInterstitial(adUid); + this._interstitial.show(); + } + } + + /** + * 加载原生模板广告,不会显示。只有你在调用showCustom时才会显示。 + * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持本函数,会调用无效! + * @param adUid 广告ID + * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置 + * @param scale 缩放比例,默认是1,即不缩放。这个缩放并不是自己填,而是根据微信MP后台你配置的原生模板广告的缩放比例填,目前有100%,90%,80%三种,一般情况不用修改。若有后台修改,记得传入值,例如90%就传入0.9。 + */ + public loadCustom(adUid: string, location: IPosition = { top: 0, left: 0 }, scale: number = 1) { + // this._custom?.destroy(); + // this._custom = new ADCustom(adUid, location.top, location.left, scale); + if (this._customs[adUid]) { + console.log(`${adUid} has been loaded.`); + return; + } + + this._customs[adUid] = new ADCustom(adUid, location.top, location.left, scale); + } + + /** + * 显示自定义广告。 + * @param adUid 广告的唯一标识符。使用此标识符来查找和显示特定的自定义广告。 + * + * 此方法尝试根据提供的adUid显示一个自定义广告。如果给定的adUid对应的自定义广告已加载, + * 则调用该广告的显示方法。如果广告未加载,则在控制台输出警告信息。 + */ + public showCustom(adUid: string) { + if (this._customs[adUid]) { + this._customs[adUid].show(); + } else { + console.warn(`You have not load ${adUid} of Custom AD, can not show!`); + } + } + + /** + * 隐藏指定的自定义广告单元 + * + * 此方法用于隐藏通过广告单元标识符(adUid)指定的自定义广告。如果指定的广告单元已加载并显示, + * 则将其隐藏;如果广告单元未加载,则在控制台输出警告信息。 + * + * @param adUid 广告单元标识符,用于唯一标识一个自定义广告单元。 + */ + public hideCustom(adUid: string) { + if (this._customs[adUid]) { + this._customs[adUid].hide(); + } else { + console.warn(`You have not load ${adUid} of Custom AD, can not hide!`); + } + } + + /** + * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount + * @param adUid 广告ID。如果与上一次UID不同,则内部会重新创建实例。开发者完全不用关心这个细节。 + * @param onVideoResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 + * @param target onVideoResult的拥有者 + * @param maxVideoCount 最大视频个数。默认是3,仅对抖音平台生效。微信平台看完视频count的结果永远是1或0 + */ + public showVideo(adUid: string, onVideoResult: (res: EAdVideoResult, count: number) => void, target?: any, maxVideoCount: number = 3) { + if (this._video && this._video.aduid === adUid) { + this._video.show(onVideoResult, target, maxVideoCount); + } else { + this._video?.destory(); + this._video = new ADVideo(adUid); + this._video.show(onVideoResult, target, maxVideoCount); + } + } + + /** + * 销毁内部所有实例,清空内存 + */ + public destroyAll() { + this._banner?.destroy(); + this._banner = null; + + this._interstitial?.destory(); + this._interstitial = null; + + this._video?.destory(); + this._video = null; + + if (this._customs) { + for (let val in this._customs) { + this._customs[val]?.destroy(); + } + this._customs = {}; + } + } + } + + export enum EGameClubIcon { + /** 绿色图标 */ + GREEN = 'green', + + /** 红色图标 */ + WHITE = 'white', + + /** 有黑色圆角背景的白色图标 */ + DARK = 'dark', + + /** 有白色圆角背景的绿色图标 */ + LIGHT = 'light' + } + + export class GameClub { + private static _instance: GameClub; + + static get instance(): GameClub { + if (!this._instance) { + this._instance = new GameClub(); + } + return this._instance; + } + + private _club: any; + + private constructor() { + + } + + /** + * 创建游戏圈按钮 + * @param icon + * @param position + * @param size + * @param openLink + */ + create(icon: EGameClubIcon = EGameClubIcon.GREEN, position: IPosition = { top: 0, left: 0 }, size: ISize = { width: 40, height: 40 }, openLink?: string) { + if (isWechat()) { + // @ts-ignore + this._club = wx.createGameClubButton({ + icon: icon, + style: { + left: position.left, + top: position.top, + width: size.width, + height: size.height + }, + openlink: openLink + }); + } + } + + show() { + this._club?.show(); + } + + hide() { + this._club?.hide(); + } + + destory() { + this._club?.destroy(); + } + } + + + /** + * 振动类型 + */ + export enum EVirbrateType { + /** + * 短振动 + */ + SHORT, + + /** + * 长振动 + */ + LONG + } + + /** + * 平台常用API合集 + */ + export class API { + private static _loginCode: string = null; + private static _loginAnonymousCode: string = null; + private static _hasInitWechatCloudFunction: boolean = false; + private static _userInfo: any = null; + + /** + * 分享app给朋友,微信小游戏分享是没有onSuccess回调的。 + * @param title 标题 + * @param description 细节描述信息 + * @param imageUrl 图片地址 + * @param query 查询信息 + * @param onSuccess 抖音会回调,微信不会回调 + */ + static shareAppToFriends(title: string, description: string = '', imageUrl?: string, query?: string, onSuccess?: () => void) { + if (isWechat()) { + try { + //@ts-ignore + wx.shareAppMessage({ + title: title, + imageUrl: imageUrl, + query: query, + }); + } catch (err) { + console.log(`share faild: ${err}`); + } + } + + if (isBytedance()) { + //@ts-ignore + tt.shareAppMessage({ + title: title, + desc: description, + imageUrl: imageUrl ?? '', + query: query ?? '', + success(res: any) { + console.log('share success:', res); + onSuccess?.(); + }, + fail(res: any) { + console.log('share fail:', res); + } + }); + } + } + + /** + * 显示提示信息 + * @param title 标题 + * @param duration 时长(单位:秒) + * @returns + */ + static showToast(title: string, duration: number = 2) { + if (isWechat()) { + // @ts-ignore + wx.showToast({ + title: title, + icon: 'success', + duration: duration * 1000 + }); + } + + if (isBytedance()) { + //@ts-ignore + tt.showToast({ + title: title, + duration: duration * 1000, + success(res: any) { + console.log(`${res}`); + }, + fail(res: any) { + console.log(`showToast调用失败`); + }, + }); + } + } + + /** + * 设备震动效果,默认为短震动。注意:可能一些机型不会生效,具体看平台方的说明 + * @param type MiniGameSdk.API.EVirbrateType + */ + static vibrate(type: EVirbrateType = EVirbrateType.SHORT) { + if (isWechat()) { + switch (type) { + case EVirbrateType.SHORT: + //@ts-ignore + wx.vibrateShort({ + success(res: any) { + console.log('vibrate success:', res); + }, + fail(res: any) { + console.log('vibrateShort failed', res); + }, + }); + break; + case EVirbrateType.LONG: + //@ts-ignore + wx.vibrateLong({ + success(res: any) { + console.log('vibrate success', res); + }, + fail(res: any) { + console.log(`vibrateLong failed`, res); + }, + }); + break; + default: + break; + } + } + + if (isBytedance()) { + switch (type) { + case EVirbrateType.SHORT: + //@ts-ignore + tt.vibrateShort({ + success(res: any) { + console.log('vibrate success:', res); + }, + fail(res: any) { + console.log('vibrateShort failed', res); + }, + }); + break; + case EVirbrateType.LONG: + //@ts-ignore + tt.vibrateLong({ + success(res: any) { + console.log('vibrate success', res); + }, + fail(res: any) { + console.log(`vibrateLong failed`, res); + }, + }); + break; + default: + break; + } + } + } + + /** + * 重启小游戏 + */ + static reboot() { + if (isWechat()) { + //@ts-ignore + wx.restartMiniProgram({ + success: () => { + console.log('restart success'); + }, + + fail: () => { + console.log('restart failed'); + } + }) + } + + if (isBytedance()) { + try { + // @ts-ignore + tt.restartMiniProgramSync(); + } catch (error) { + console.log(`restartMiniProgramSync`, error); + } + } + } + + /** + * 退出小游戏 + */ + static exit() { + if (isWechat()) { + //@ts-ignore + wx.exitMiniProgram({ + success: () => { + console.log('exit success'); + }, + fail: () => { + console.log('exit failed'); + } + }); + } + + if (isBytedance()) { + // @ts-ignore + tt.exitMiniProgram({ + success(res: any) { + console.log("exit success:", res?.data); + }, + fail(res: any) { + console.log("exit fail:", res?.errMsg); + }, + }); + } + } + + /** + * 显示转发按钮。通常在刚进入游戏的时候调用。 + * 主要是打开平台“...”这个按钮里面的分享菜单,一般默认是关闭的,需要调用这个函数打开。可以让用户分享你的游戏入口。 + */ + static showShareMenu() { + if (isWechat()) { + //@ts-ignore + wx.showShareMenu({ + withShareTicket: true, + menus: ['shareAppMessage', 'shareTimeline'], + success: () => { }, + fail: () => { }, + complete: () => { } + }); + } + + if (isBytedance()) { + //@ts-ignore + tt.showShareMenu({ + success(res: any) { + console.log("show menu is showing"); + }, + fail(err: any) { + console.log("showShareMenu:", err.errMsg); + }, + complete(res: any) { + console.log("showShareMenu complete"); + }, + }); + } + } + + /** + * 微信小游戏:跳转到另外一款小游戏 + * 抖音小游戏:跳转到指定的视频界面 + * @param targetId 微信小游戏appid或者视频界面 + */ + static navigateTo(targetId: string, onSuccess?: () => void) { + if (isWechat()) { + // @ts-ignore + wx.navigateToMiniProgram({ + appId: targetId, + extraData: { + foo: 'bar' + }, + envVersion: 'develop', + success(res: any) { + onSuccess?.(); + } + }); + } + + if (isBytedance()) { + // @ts-ignore + tt.navigateToVideoView({ + videoId: targetId, + success: (res: any) => { + onSuccess?.(); + }, + fail: (err: any) => { + console.log("bytedance navigateToVideoView fail", err); + }, + }); + } + } + + + /** + * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session + * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null + */ + static login(callback: (code: string, anonymousCode: string) => void) { + let loginPlatform = () => { + if (isWechat()) { + //@ts-ignore + wx.login({ + success: (res: { code: any; errMsg: any; }) => { + if (res.code) { + API._loginCode = res.code; + API._loginAnonymousCode = null; + callback?.(API._loginCode, API._loginAnonymousCode); + } else { + console.log('login error:', res.errMsg) + } + }, + + fail: () => { + API._loginCode = null; + API._loginAnonymousCode = null; + callback?.(API._loginCode, API._loginAnonymousCode); + console.log('login fail') + } + }); + } else if (isBytedance()) { + //@ts-ignore + tt.login({ + force: true, + success(res: any) { + console.log(`login ${res.code} ${res.anonymousCode}`); + if (res.code) { + API._loginCode = res.code?.toString(); + API._loginAnonymousCode = res.anonymousCode?.toString(); + callback?.(API._loginCode, API._loginAnonymousCode); + } else { + console.log('login error:', res.errMsg) + } + }, + fail(res: any) { + API._loginCode = null; + API._loginAnonymousCode = null; + callback?.(API._loginCode, API._loginAnonymousCode); + console.log(`login fail`, res); + }, + }); + } else { + API._loginCode = null; + API._loginAnonymousCode = null; + callback?.(API._loginCode, API._loginAnonymousCode); + console.log('not mini game platform, login codes are all null'); + } + } + + + + if (!API._loginCode) { + loginPlatform(); + } else { + if (isWechat()) { + //@ts-ignore + wx.checkSession({ + success() { + console.log(`session is valid, use current code:`, API._loginCode); + callback?.(API._loginCode, API._loginAnonymousCode); + }, + fail() { + console.log(`session expired`); + loginPlatform(); + } + }); + } else if (isBytedance()) { + //@ts-ignore + tt.checkSession({ + success() { + console.log(`session is valid, user current code: ${API._loginCode}, ${API._loginAnonymousCode}`); + callback?.(API._loginCode, API._loginAnonymousCode); + }, + fail() { + console.log(`session expired`); + loginPlatform(); + }, + }); + + } else { + console.log('not mini game platform, login null'); + callback?.(null, null); + } + } + } + + /** + * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session + * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null + */ + static getUserInfo(callback: (userInfo: any) => void) { + //@ts-ignore + tt.getUserInfo({ + withCredentials: true, + success: (res: any) => { + API._userInfo = res; + callback(API._userInfo); + }, + fail: (err: any) =>{ + callback(err); + } + }); + } + + /** + * 调用微信云函数。由于参数需要自定义,所以为any,需要自行解释。函数只完成通道和处理一场的作用 + * @param callback 返回云函数调用结果。需要检查返回参数是否为空,失败的时候为空 + * @param name 云函数的名字 + * @param data 云函数的内容 + */ + static callWechatCloudFunction(callback: (res: any) => void, name: string, data: {}) { + if (!isWechat()) { + console.log('Not wechat platform, not support callWechatCloudFunction'); + return; + } + + this.login((code: string, anonymousCode: string) => { + if (!API._hasInitWechatCloudFunction) { + //@ts-ignore + wx.cloud.init(); + API._hasInitWechatCloudFunction = true; + } + //@ts-ignore + wx.cloud.callFunction({ + name: name, + data: data, + success: (res: any) => callback?.(res), + fail: (err: any) => { + console.log('wechat cloud function error:', err); + callback?.(null); + } + }); + }); + } + + /** + * 存储用户信息,数据量不能大。可以考虑用于分数排行榜。用户之间可共享排行数据。 + * @param key + * @param value + */ + static setUserCloudStorage(key: string, value: string) { + if (isWechat()) { + // @ts-ignore + wx.setUserCloudStorage({ + KVDataList: [{ key: key, value: value }], + success: () => console.log(`set cloud storage success:${key}, value:${value}`), + fail: (err: any) => console.log('set cloud storage error:', err) + }); + } + + if (isBytedance()) { + // @ts-ignore + tt.setUserCloudStorage({ + KVDataList: [{ key: key, value: value, }], + success: () => console.log(`set cloud storage success:${key}, value:${value}`), + fail: (err: any) => console.log('set cloud storage error:', err) + }); + } + } + } + + + /** + * 抖音侧边栏专属接口 + */ + export class BytedanceSidebar { + /** + * 本游戏在抖音环境下启动监控,需要放在全局环境中,保证能第一时间启动。因为可能监听抖音失败(抖音小游戏官方的说明)! + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + */ + static listenFromSidebar(onResult: (success: boolean) => void, target?: any) { + if (!isBytedance()) { + onResult?.call(target, false); + return; + } + // @ts-ignore + tt.onShow((res: any) => { + console.log('onShow launch res:', res); + if (res.scene === '021036') { + onResult?.call(target, true); + console.log('launch from sidebar'); + } else { + onResult?.call(target, false); + console.log('NOT launch from douyin sidebar!'); + } + }); + + // @ts-ignore + let options = tt.getLaunchOptionsSync(); + if (options && options.scene === '021036') { + onResult?.call(target, true); + } + } + + /** + * 检测抖音侧边栏是否存在 + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + * @returns + */ + static checkSideBar(onResult: (success: boolean) => void, target?: any) { + if (!isBytedance()) { + onResult?.call(target, false); + return; + } + + //@ts-ignore + tt.checkScene({ + scene: "sidebar", + success: (res: any) => { + console.log("check scene success: ", res.isExist); + onResult?.call(target, res.isExist); + + }, + fail: (res: any) => { + console.log("check scene fail:", res); + onResult?.call(target, false); + } + }); + } + + /** + * 跳转到抖音侧边栏 + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + * @returns + */ + static navigateToSidebar(onResult: (success: boolean) => void, target?: any) { + if (!isBytedance()) { + console.log("not douyin platform!"); + onResult?.call(target, false); + return; + } + + // @ts-ignore + tt.navigateToScene({ + scene: "sidebar", + success: () => { + console.log("navigate success"); + onResult?.call(target, true); + }, + fail: (res: any) => { + console.log("navigate failed reason:", res); + onResult?.call(target, false); + }, + }); + } + } + +} \ No newline at end of file diff --git a/assets/Script/Sdk/MiniGameSdk.ts.meta b/assets/Script/Sdk/MiniGameSdk.ts.meta new file mode 100644 index 0000000..42a905b --- /dev/null +++ b/assets/Script/Sdk/MiniGameSdk.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "c1af99dd-ee03-40f7-9609-d3887d0dd357", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module.meta b/assets/Script/module.meta new file mode 100644 index 0000000..d2f5dcc --- /dev/null +++ b/assets/Script/module.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "eaa8b84d-69d0-4170-9f7d-8179ea948cde", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Config.meta b/assets/Script/module/Config.meta new file mode 100644 index 0000000..c57cc9c --- /dev/null +++ b/assets/Script/module/Config.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "8848cd9b-8115-456d-a656-2abcda1dadbe", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Config/GameConfig.ts b/assets/Script/module/Config/GameConfig.ts new file mode 100644 index 0000000..656e492 --- /dev/null +++ b/assets/Script/module/Config/GameConfig.ts @@ -0,0 +1,335 @@ +import { WeChat } from "../Share/share"; +import { GameTool } from "../Tool/GameTool"; + + +const { ccclass, property } = cc._decorator; +@ccclass('GameConfig') +export class GameConfig { + //所有控制信息都通过GameAppStart内控制 + private static _instance : GameConfig = null; + + static GAME_DATA: any[]; + //关卡数据 + + + + static LEVEL_INFO: { + id: string; //难度id + inside: number; //内圈答案个数 + insideType: number; //内圈排列形式,1:一排,2:一列,3:随机 + outside: number; //外圈答案种类个数,大于1时,填满其他图案 + outsideType: number; //外圈排列形式,1:非四角,2:四角,3:随机 + showTime: number; //显示时间 + }[]; + static CLICK_DATA: { + type: number; //上传数据类型 + success: boolean; //是否正确 + round: number; //回合数轮次 + duration: number; //本轮用时 + rightChoiceOuter: any[]; //外部正确选项坐标 + userChoiceOuter: any[]; //外部玩家选项坐标 + rightChoiceInner: any[]; //内部正确选项坐标 + userChoiceInner: any[]; + }; + static GUIDE_INFO: { + id: string; //难度id + inside: number; //内圈答案个数 + insideType: number; //内圈排列形式,1:一排,2:一列,3:随机 + outside: number; //外圈答案种类个数,大于1时,填满其他图案 + outsideType: number; //外圈排列形式,1:非四角,2:四角,3:随机 + showTime: number; + }[]; + static GM_INFO: { + isCustom: boolean; //选择关卡模式 + mean_Time: number; //平均放箭速度 + total: number; //总共对的个数 + currSeed: number; //用于随机数种子 + gameId: string; //游戏ID + userId: number; //用户ID + guide: boolean; //是否有引导 + url: string; //访问域名 + success: boolean; //用户游戏成功与否 + matchId: any; //用于埋点上传的ID + custom: number; //用于测试跳关卡 + round: number; //回合数 + level: number; //具体游戏难度 + guide_Level: number; //引导等级 + startTime: number; //玩家第一步操作 + random: number; //当前难度随机数 + stepTimeList: number; //整局游戏用时,由于涉及场景切换,数据需要保留 + successList: any[]; //整局胜负 + fen: number; //小局得分 + score: number; //总得分 + igniteCount: number; //玩家总计成功点火数 + min_Steps: number; //每次上一把最小步数 + min_Time: number; //每一把上次距离洪峰到来时间 + }; + + // static LEVEL_INFO: { + // id: string; //地图ID + // start: string[][]; //起始状态 + // goal: string[][]; //目标状态 + // middle: string[][][]; //中间状态 + // steps: number; //最大步数 + // }[]; + + + //游戏内信息 + static get Instance() + { + if (this._instance == null) + { + this._instance = new GameConfig(); + } + return this._instance; + } + //getSeedRandom + static init(Authentication){ + this.CLICK_init(); + this.LEVEL_INFO_init(); + this.GM_INFO_init(); + var self = this; + //GAME_DATA 废弃了,暂时不删除以防后面修改回 一整局传一次 + this.GAME_DATA = [ + ] + + WeChat.setShare(location.href); + if(!Authentication) self.Authentication(); + } + + //数据备用 + static GM_INFO_init() { + this.GM_INFO = { + isCustom: false, //选择关卡模式 + mean_Time: 0, //平均放箭速度 + total: 0, //总共对的个数 + currSeed: 200000, //用于随机数种子 + gameId: "100019", //游戏ID + userId: 0, //用户ID + guide: true, //是否有引导 + url: "https://api.sparkus.cn",//访问域名 + success: false, //用户游戏成功与否 + matchId: null, //用于埋点上传的ID + custom: 0, //用于测试跳关卡 + round:0, //回合数 + level: 0, //具体游戏难度 + guide_Level:4, //引导等级 + startTime:-1, //玩家第一步操作 + random:0, //当前难度随机数 + stepTimeList:0, //整局游戏用时,由于涉及场景切换,数据需要保留 + successList:[], //整局胜负 + fen:0, //小局得分 + score:0, //总得分 + igniteCount: 0, //玩家总计成功点火数 + min_Steps:0, //每次上一把最小步数 + min_Time:0 //每一把上次距离洪峰到来时间 + }; + + } + static GM_INFO_SET(key,value) { + this.GM_INFO[key] = value; + } + static CLICK_init() { + this.CLICK_DATA = + { + type: 1, //上传数据类型 + success: false, //是否正确 + round: 0, //回合数轮次 + duration:0, //本轮用时 + rightChoiceOuter:[],//外部正确选项坐标 + userChoiceOuter:[], //外部玩家选项坐标 + rightChoiceInner:[],//内部正确选项坐标 + userChoiceInner:[], //内部玩家选项坐标 + } + } + + static CLICK_SET(key,value) { + this.CLICK_DATA[key] = value; + } + + static LEVEL_INFO_init() { + this.LEVEL_INFO = [{ + "id":"1", //难度id + "inside":3, //内圈答案个数 + "insideType":1, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":0, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":1, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":1.2, //显示时间,秒为单位 + }, + { + "id":"2", //难度id + "inside":3, //内圈答案个数 + "insideType":2, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":0, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":1, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":1.2, //显示时间,秒为单位 + }, + { + "id":"3", //难度id + "inside":3, //内圈答案个数 + "insideType":3, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":0, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":1, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":1, //显示时间,秒为单位 + }, + { + "id":"4", //难度id + "inside":4, //内圈答案个数 + "insideType":3, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":0, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":1, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":1, //显示时间,秒为单位 + }, + { + "id":"5", //难度id + "inside":0, //内圈答案个数 + "insideType":1, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":1, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":1, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":0.9, //显示时间,秒为单位 + }, + { + "id":"6", //难度id + "inside":0, //内圈答案个数 + "insideType":1, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":1, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":2, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":0.9, //显示时间,秒为单位 + }, + { + "id":"7", //难度id + "inside":0, //内圈答案个数 + "insideType":1, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":2, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":1, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":1.2, //显示时间,秒为单位 + }, + { + "id":"8", //难度id + "inside":0, //内圈答案个数 + "insideType":1, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":3, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":2, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":1.2, //显示时间,秒为单位 + }, + { + "id":"9", //难度id + "inside":3, //内圈答案个数 + "insideType":1, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":1, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":1, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":1.2, //显示时间,秒为单位 + }, + { + "id":"10", //难度id + "inside":3, //内圈答案个数 + "insideType":2, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":1, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":2, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":1.2, //显示时间,秒为单位 + }, + { + "id":"11", //难度id + "inside":3, //内圈答案个数 + "insideType":1, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":2, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":1, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":1.8, //显示时间,秒为单位 + }, + { + "id":"12", //难度id + "inside":3, //内圈答案个数 + "insideType":2, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":2, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":2, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":1.8, //显示时间,秒为单位 + }, + { + "id":"13", //难度id + "inside":4, //内圈答案个数 + "insideType":3, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":3, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":3, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":1.8, //显示时间,秒为单位 + }, + { + "id":"14", //难度id + "inside":4, //内圈答案个数 + "insideType":3, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":3, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":3, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":1.8, //显示时间,秒为单位 + }, + { + "id":"15", //难度id + "inside":5, //内圈答案个数 + "insideType":3, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":3, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":3, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":1.5, //显示时间,秒为单位 + }, + { + "id":"16", //难度id + "inside":5, //内圈答案个数 + "insideType":3, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":3, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":3, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":1.5, //显示时间,秒为单位 + } + ] + + this.GUIDE_INFO =[ + { + "id":"1", //难度id + "inside":3, //内圈答案个数 + "insideType":1, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":0, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":1, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":10000, //显示时间,秒为单位 + }, + { + "id":"5", //难度id + "inside":0, //内圈答案个数 + "insideType":1, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":1, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":1, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":10000, //显示时间,秒为单位 + }, + { + "id":"7", //难度id + "inside":0, //内圈答案个数 + "insideType":1, //内圈排列形式,1:一排,2:一列,3:随机 + "outside":2, //外圈答案种类个数,大于1时,填满其他图案 + "outsideType":1, //外圈排列形式,1:非四角,2:四角,3:随机 + "showTime":10000, //显示时间,秒为单位 + }, + ] + + // this.LEVEL_INFO = [{"id":"0001", //地图ID + // "start":[['r'], ['b'], ['g']], //起始状态 + // "goal":[[], ['r', 'g'], ['b']], //目标状态 + // "middle":[[['b', 'r', 'g'], [], []], [['g'], ['b'], ['r']], [['r', 'b'], ['g'], []]],//中间状态 + // "steps":17 //最大步数 + // }]; + + + // 0 12 3 + // 312 0 0 2 3 1 13 2 0 + + + // [2], [1], [3] + // [[2, 1, 3], [], []] + + + // [[], [2, 3], [1]] + // [[1, 2], [], [3]] + // [[[1], [2, 3], []], + // [[1], [], [3, 2]]] + } + + + static Authentication(){ + cc.fx.GameTool.Authentication(); + } +} + diff --git a/assets/Script/module/Config/GameConfig.ts.meta b/assets/Script/module/Config/GameConfig.ts.meta new file mode 100644 index 0000000..4bff73c --- /dev/null +++ b/assets/Script/module/Config/GameConfig.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "c5692be7-8703-45e4-9f67-23b54d290356", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Crypto.meta b/assets/Script/module/Crypto.meta new file mode 100644 index 0000000..0f7b146 --- /dev/null +++ b/assets/Script/module/Crypto.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "13a0b173-d59e-4a9d-b5e3-4dbe4dc37cc1", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Crypto/HttpUtil.ts b/assets/Script/module/Crypto/HttpUtil.ts new file mode 100644 index 0000000..da2860b --- /dev/null +++ b/assets/Script/module/Crypto/HttpUtil.ts @@ -0,0 +1,248 @@ + +const {ccclass, property} = cc._decorator; +import CryptoJS = require('./crypto-js.min.js'); //引用AES源码js + +const BASE_URL = "https://api.sparkus.cn"; +//只负责网络接口 次类只负责和后端交互,不负责处理数据 数据处理在GameTool +@ccclass +export default class HttpUtil extends cc.Component { + //排行榜 + static async rankData(type,callback,data): Promise { + const time = Math.floor((new Date().getTime()) / 1000) + const url = HttpUtil.apiSign(`/api/get/rank/data?gameId=${config.gameId}&dataType=${type}&time=${time}`, data) + this.post(url,data,callback,0); + } + + static async uploadUserLogData(data,callback): Promise { + const url = '/log/collect/data'; + this.post(url,data,callback,3); + } + //暂时用不到 + static async getUserRecord(data,callback): Promise { + const time = Math.floor((new Date().getTime()) / 1000) + const url = HttpUtil.apiSign(`/api/get/user/data?gameId=${config.gameId}&time=${time}`, data) + this.post(url,data,callback,0); + } + + static async get(url, callback,count) { + let repeat = count?count:0; + const response = await this.fetchData(url, null, 'GET',repeat); + callback && callback(response); + } + + static async post(url, data, callback,count) { + let repeat = count?count:0; + const response = await this.fetchData(url, data, 'POST',repeat); + callback && callback(response); + } + + static async fetchData(url, data, method,repeat) { + const fullUrl = `${BASE_URL}${url}`; + const headers = { 'Content-Type': 'application/json' }; + const options = { + method, + headers, + body: data ? JSON.stringify(data) : null, + }; + + try { + var response = await this.fetchWithTimeout(fullUrl,options); + if (!response.ok) { + throw new Error(`HTTP_______________error! status: ${response.status}`); + } + return await response.json(); + } catch (error) { + console.error('Fetch_______________error:', error); + if(repeat > 0){ + repeat -= 1; + const timeOut = (3-repeat)*5000; + setTimeout(async () => { + response = await this.fetchData(url, data, method,repeat); + }, timeOut); + } + else{ + return null; + } + } + } + + static async fetchWithTimeout(resource, options = {}) { + const controller = new AbortController(); + const id = setTimeout(() => controller.abort(), 5000); + const response = await fetch(resource, { + ...options, + signal: controller.signal + }); + clearTimeout(id); + + return response; + } + + + /** + * + * @param url {string} 接口地址 + * @param params {object} 需要加密的参数对象 + */ + static apiSign(url: string, params = {}) { + + let convertUrl = url.trim() + if (convertUrl.indexOf('?') === -1) { + convertUrl += '?' + } + + // 传入参数转换拼接字符串 + let postStr = getQueryString(params) + + const signedStr = genSignStr(convertUrl, postStr) + const encryptStr = `sign=${signedStr}` + + let encryptSignStr = fxCry.encryptByDES(encryptStr, config.secretKey) + encryptSignStr = encodeURIComponent(encryptSignStr) + + return `${urlencode(convertUrl)}&_p=${encryptSignStr}` + } +} + +function responseHandler(response: { data: any }) { + return response.data +} +// 响应拦截器 +// Rq.interceptors.response.use(responseHandler) +const config = { + gameId: "100019", + secretKey: "15ELeamO", + EK:"hui231%1" +}; + +interface CrypotoType { + encryptByDES: any + decryptByDES: any + hmacSha256: any +} + +class Crypoto implements CrypotoType { + // 加密的向明值,自己根据项目实际情况定,需要跟后端开发保持一致 + private keyHex = this.getHetKey() + private getHetKey() { + return CryptoJS.enc.Utf8.parse(config.EK); + } + + /** DES加密 */ + encryptByDES(message: string, secret?: string) { + if(!message) { + return message + } + const key = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex + const encrypted = CryptoJS.DES.encrypt(message, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return encrypted.toString() + } + + /** DES解密 */ + decryptByDES(message: string, secret?: string) { + const key = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex + + const decrypted = CryptoJS.DES.decrypt({ + ciphertext: CryptoJS.enc.Base64.parse(message) + }, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }) + + return decrypted.toString(CryptoJS.enc.Utf8) + } + + /** hmacSHA256加密 */ + hmacSha256(message: string, secret?: string) { + const keyHex = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex + + const hash = CryptoJS.HmacSHA256(message, keyHex); + return hash.toString() + } + + /** hmacSHA256验证 */ + verifyHmacSha256(message: string, signature: string) { + const hash = CryptoJS.HmacSHA256(message, this.keyHex); + return hash.toString() === signature + } + + /** CBC加密 */ + encryptCBC(word: string) { + if (!word) { + return word; + } + const srcs = CryptoJS.enc.Utf8.parse(word); + const encrypted = CryptoJS.AES.encrypt(srcs, this.keyHex, { + iv: this.keyHex, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.ZeroPadding + }); + return encrypted.toString(); + } + + /** CBC解密 */ + decryptCBC(word: string) { + if (!word) { + return word; + } + const encryptedHexStr = CryptoJS.enc.Hex.parse(word); + const srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr); + const decrypt = CryptoJS.AES.decrypt(srcs, this.keyHex, { + iv: this.keyHex, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.ZeroPadding + }); + const decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); + return decryptedStr.toString(); + } +} +const fxCry = new Crypoto(); + +function isEmpty(data) { + return data === "" || data === null || data === undefined || data.length === 0 || JSON.stringify(data) == "{}" +} + +function getQueryString(obj) { + // 首先对对象的键进行排序并过滤空值 + const sortedKeys = Object.keys(obj).sort(); + const sortedObj = {}; + for (let i = 0; i < sortedKeys.length; i++) { + if (isEmpty(obj[sortedKeys[i]])) { + continue; + } + sortedObj[sortedKeys[i]] = obj[sortedKeys[i]]; + } + + // 然后将排序后的对象转换为查询字符串 + const params = []; + for (const key in sortedObj) { + params.push(`${encodeURIComponent(key)}=${encodeURIComponent(sortedObj[key])}`); + } + return params.join('&'); +} + + +/** + * 组装签名字符串 + * @param string url: 请求地址 + * @param string postStr: post参数的a=1&b=2 + * @returns + */ + +function genSignStr(url: string, postStr: string): string { + let lessUrl = url.replace('?', '') + lessUrl = lessUrl + "&" + postStr + return encodeURIComponent(fxCry.hmacSha256(lessUrl)) +} +// 对参数进行统一urlencode +function urlencode(url: string): string { + const [baseUrl, queryString] = url.split("?", 2); + const params = new URLSearchParams(queryString); + return `${baseUrl}?${params.toString()}`; +} + + + diff --git a/assets/Script/module/Crypto/HttpUtil.ts.meta b/assets/Script/module/Crypto/HttpUtil.ts.meta new file mode 100644 index 0000000..878e61f --- /dev/null +++ b/assets/Script/module/Crypto/HttpUtil.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "771a3d9a-4013-4654-a777-fbaea0c93280", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Crypto/crypto-js.min.js b/assets/Script/module/Crypto/crypto-js.min.js new file mode 100644 index 0000000..cfbb59e --- /dev/null +++ b/assets/Script/module/Crypto/crypto-js.min.js @@ -0,0 +1,3 @@ +!function(t,r){"object"==typeof exports?module.exports=exports=r():"function"==typeof define&&define.amd?define([],r):t.CryptoJS=r()}(this,function(){var t=t||function(t,r){var e=Object.create||function(){function t(){}return function(r){var e;return t.prototype=r,e=new t,t.prototype=null,e}}(),i={},n=i.lib={},o=n.Base=function(){return{extend:function(t){var r=e(this);return t&&r.mixIn(t),r.hasOwnProperty("init")&&this.init!==r.init||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),s=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],e!=r?this.sigBytes=e:this.sigBytes=4*t.length},toString:function(t){return(t||c).stringify(this)},concat:function(t){var r=this.words,e=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;r[i+o>>>2]|=s<<24-(i+o)%4*8}else for(var o=0;o>>2]=e[o>>>2];return this.sigBytes+=n,this},clamp:function(){var r=this.words,e=this.sigBytes;r[e>>>2]&=4294967295<<32-e%4*8,r.length=t.ceil(e/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(r){for(var e,i=[],n=function(r){var r=r,e=987654321,i=4294967295;return function(){e=36969*(65535&e)+(e>>16)&i,r=18e3*(65535&r)+(r>>16)&i;var n=(e<<16)+r&i;return n/=4294967296,n+=.5,n*(t.random()>.5?1:-1)}},o=0;o>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join("")},parse:function(t){for(var r=t.length,e=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new s.init(e,r/2)}},h=a.Latin1={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var r=t.length,e=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new s.init(e,r)}},l=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(h.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return h.parse(unescape(encodeURIComponent(t)))}},f=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=l.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(r){var e=this._data,i=e.words,n=e.sigBytes,o=this.blockSize,a=4*o,c=n/a;c=r?t.ceil(c):t.max((0|c)-this._minBufferSize,0);var h=c*o,l=t.min(4*h,n);if(h){for(var f=0;f>>6-s%4*2;i[o>>>2]|=(a|c)<<24-o%4*8,o++}return n.create(i,o)}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Base64={stringify:function(t){var r=t.words,e=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255,a=r[o+1>>>2]>>>24-(o+1)%4*8&255,c=r[o+2>>>2]>>>24-(o+2)%4*8&255,h=s<<16|a<<8|c,l=0;l<4&&o+.75*l>>6*(3-l)&63));var f=i.charAt(64);if(f)for(;n.length%4;)n.push(f);return n.join("")},parse:function(t){var e=t.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>32-o)+r}function i(t,r,e,i,n,o,s){var a=t+(r&i|e&~i)+n+s;return(a<>>32-o)+r}function n(t,r,e,i,n,o,s){var a=t+(r^e^i)+n+s;return(a<>>32-o)+r}function o(t,r,e,i,n,o,s){var a=t+(e^(r|~i))+n+s;return(a<>>32-o)+r}var s=t,a=s.lib,c=a.WordArray,h=a.Hasher,l=s.algo,f=[];!function(){for(var t=0;t<64;t++)f[t]=4294967296*r.abs(r.sin(t+1))|0}();var u=l.MD5=h.extend({_doReset:function(){this._hash=new c.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,r){for(var s=0;s<16;s++){var a=r+s,c=t[a];t[a]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var h=this._hash.words,l=t[r+0],u=t[r+1],d=t[r+2],v=t[r+3],p=t[r+4],_=t[r+5],y=t[r+6],g=t[r+7],B=t[r+8],w=t[r+9],k=t[r+10],S=t[r+11],m=t[r+12],x=t[r+13],b=t[r+14],H=t[r+15],z=h[0],A=h[1],C=h[2],D=h[3];z=e(z,A,C,D,l,7,f[0]),D=e(D,z,A,C,u,12,f[1]),C=e(C,D,z,A,d,17,f[2]),A=e(A,C,D,z,v,22,f[3]),z=e(z,A,C,D,p,7,f[4]),D=e(D,z,A,C,_,12,f[5]),C=e(C,D,z,A,y,17,f[6]),A=e(A,C,D,z,g,22,f[7]),z=e(z,A,C,D,B,7,f[8]),D=e(D,z,A,C,w,12,f[9]),C=e(C,D,z,A,k,17,f[10]),A=e(A,C,D,z,S,22,f[11]),z=e(z,A,C,D,m,7,f[12]),D=e(D,z,A,C,x,12,f[13]),C=e(C,D,z,A,b,17,f[14]),A=e(A,C,D,z,H,22,f[15]),z=i(z,A,C,D,u,5,f[16]),D=i(D,z,A,C,y,9,f[17]),C=i(C,D,z,A,S,14,f[18]),A=i(A,C,D,z,l,20,f[19]),z=i(z,A,C,D,_,5,f[20]),D=i(D,z,A,C,k,9,f[21]),C=i(C,D,z,A,H,14,f[22]),A=i(A,C,D,z,p,20,f[23]),z=i(z,A,C,D,w,5,f[24]),D=i(D,z,A,C,b,9,f[25]),C=i(C,D,z,A,v,14,f[26]),A=i(A,C,D,z,B,20,f[27]),z=i(z,A,C,D,x,5,f[28]),D=i(D,z,A,C,d,9,f[29]),C=i(C,D,z,A,g,14,f[30]),A=i(A,C,D,z,m,20,f[31]),z=n(z,A,C,D,_,4,f[32]),D=n(D,z,A,C,B,11,f[33]),C=n(C,D,z,A,S,16,f[34]),A=n(A,C,D,z,b,23,f[35]),z=n(z,A,C,D,u,4,f[36]),D=n(D,z,A,C,p,11,f[37]),C=n(C,D,z,A,g,16,f[38]),A=n(A,C,D,z,k,23,f[39]),z=n(z,A,C,D,x,4,f[40]),D=n(D,z,A,C,l,11,f[41]),C=n(C,D,z,A,v,16,f[42]),A=n(A,C,D,z,y,23,f[43]),z=n(z,A,C,D,w,4,f[44]),D=n(D,z,A,C,m,11,f[45]),C=n(C,D,z,A,H,16,f[46]),A=n(A,C,D,z,d,23,f[47]),z=o(z,A,C,D,l,6,f[48]),D=o(D,z,A,C,g,10,f[49]),C=o(C,D,z,A,b,15,f[50]),A=o(A,C,D,z,_,21,f[51]),z=o(z,A,C,D,m,6,f[52]),D=o(D,z,A,C,v,10,f[53]),C=o(C,D,z,A,k,15,f[54]),A=o(A,C,D,z,u,21,f[55]),z=o(z,A,C,D,B,6,f[56]),D=o(D,z,A,C,H,10,f[57]),C=o(C,D,z,A,y,15,f[58]),A=o(A,C,D,z,x,21,f[59]),z=o(z,A,C,D,p,6,f[60]),D=o(D,z,A,C,S,10,f[61]),C=o(C,D,z,A,d,15,f[62]),A=o(A,C,D,z,w,21,f[63]),h[0]=h[0]+z|0,h[1]=h[1]+A|0,h[2]=h[2]+C|0,h[3]=h[3]+D|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32;var o=r.floor(i/4294967296),s=i;e[(n+64>>>9<<4)+15]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e[(n+64>>>9<<4)+14]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),t.sigBytes=4*(e.length+1),this._process();for(var a=this._hash,c=a.words,h=0;h<4;h++){var l=c[h];c[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var t=h.clone.call(this);return t._hash=this._hash.clone(),t}});s.MD5=h._createHelper(u),s.HmacMD5=h._createHmacHelper(u)}(Math),function(){var r=t,e=r.lib,i=e.WordArray,n=e.Hasher,o=r.algo,s=[],a=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],a=e[3],c=e[4],h=0;h<80;h++){if(h<16)s[h]=0|t[r+h];else{var l=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+c+s[h];f+=h<20?(n&o|~n&a)+1518500249:h<40?(n^o^a)+1859775393:h<60?(n&o|n&a|o&a)-1894007588:(n^o^a)-899497514,c=a,a=o,o=n<<30|n>>>2,n=i,i=f}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+a|0,e[4]=e[4]+c|0},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;return r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=Math.floor(e/4294967296),r[(i+64>>>9<<4)+15]=e,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});r.SHA1=n._createHelper(a),r.HmacSHA1=n._createHmacHelper(a)}(),function(r){var e=t,i=e.lib,n=i.WordArray,o=i.Hasher,s=e.algo,a=[],c=[];!function(){function t(t){for(var e=r.sqrt(t),i=2;i<=e;i++)if(!(t%i))return!1;return!0}function e(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)t(i)&&(n<8&&(a[n]=e(r.pow(i,.5))),c[n]=e(r.pow(i,1/3)),n++),i++}();var h=[],l=s.SHA256=o.extend({_doReset:function(){this._hash=new n.init(a.slice(0))},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],l=e[5],f=e[6],u=e[7],d=0;d<64;d++){if(d<16)h[d]=0|t[r+d];else{var v=h[d-15],p=(v<<25|v>>>7)^(v<<14|v>>>18)^v>>>3,_=h[d-2],y=(_<<15|_>>>17)^(_<<13|_>>>19)^_>>>10;h[d]=p+h[d-7]+y+h[d-16]}var g=a&l^~a&f,B=i&n^i&o^n&o,w=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),k=(a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25),S=u+k+g+c[d]+h[d],m=w+B;u=f,f=l,l=a,a=s+S|0,s=o,o=n,n=i,i=S+m|0}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+s|0,e[4]=e[4]+a|0,e[5]=e[5]+l|0,e[6]=e[6]+f|0,e[7]=e[7]+u|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[(n+64>>>9<<4)+14]=r.floor(i/4294967296),e[(n+64>>>9<<4)+15]=i,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(l),e.HmacSHA256=o._createHmacHelper(l)}(Math),function(){function r(t){return t<<8&4278255360|t>>>8&16711935}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Utf16=o.Utf16BE={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join("")},parse:function(t){for(var r=t.length,e=[],i=0;i>>1]|=t.charCodeAt(i)<<16-i%2*16;return n.create(e,2*r)}};o.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join("")},parse:function(t){for(var e=t.length,i=[],o=0;o>>1]|=r(t.charCodeAt(o)<<16-o%2*16);return n.create(i,2*e)}}}(),function(){if("function"==typeof ArrayBuffer){var r=t,e=r.lib,i=e.WordArray,n=i.init,o=i.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,e=[],i=0;i>>2]|=t[i]<<24-i%4*8;n.call(this,e,r)}else n.apply(this,arguments)};o.prototype=i}}(),function(r){function e(t,r,e){return t^r^e}function i(t,r,e){return t&r|~t&e}function n(t,r,e){return(t|~r)^e}function o(t,r,e){return t&e|r&~e}function s(t,r,e){return t^(r|~e)}function a(t,r){return t<>>32-r}var c=t,h=c.lib,l=h.WordArray,f=h.Hasher,u=c.algo,d=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),v=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),p=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),_=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),B=u.RIPEMD160=f.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var c=0;c<16;c++){var h=r+c,l=t[h];t[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}var f,u,B,w,k,S,m,x,b,H,z=this._hash.words,A=y.words,C=g.words,D=d.words,R=v.words,E=p.words,M=_.words;S=f=z[0],m=u=z[1],x=B=z[2],b=w=z[3],H=k=z[4];for(var F,c=0;c<80;c+=1)F=f+t[r+D[c]]|0,F+=c<16?e(u,B,w)+A[0]:c<32?i(u,B,w)+A[1]:c<48?n(u,B,w)+A[2]:c<64?o(u,B,w)+A[3]:s(u,B,w)+A[4],F|=0,F=a(F,E[c]),F=F+k|0,f=k,k=w,w=a(B,10),B=u,u=F,F=S+t[r+R[c]]|0,F+=c<16?s(m,x,b)+C[0]:c<32?o(m,x,b)+C[1]:c<48?n(m,x,b)+C[2]:c<64?i(m,x,b)+C[3]:e(m,x,b)+C[4],F|=0,F=a(F,M[c]),F=F+H|0,S=H,H=b,b=a(x,10),x=m,m=F;F=z[1]+B+b|0,z[1]=z[2]+w+H|0,z[2]=z[3]+k+S|0,z[3]=z[4]+f+m|0,z[4]=z[0]+u+x|0,z[0]=F},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8),t.sigBytes=4*(r.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var a=o[s];o[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return n},clone:function(){var t=f.clone.call(this);return t._hash=this._hash.clone(),t}});c.RIPEMD160=f._createHelper(B),c.HmacRIPEMD160=f._createHmacHelper(B)}(Math),function(){var r=t,e=r.lib,i=e.Base,n=r.enc,o=n.Utf8,s=r.algo;s.HMAC=i.extend({init:function(t,r){t=this._hasher=new t.init,"string"==typeof r&&(r=o.parse(r));var e=t.blockSize,i=4*e;r.sigBytes>i&&(r=t.finalize(r)),r.clamp();for(var n=this._oKey=r.clone(),s=this._iKey=r.clone(),a=n.words,c=s.words,h=0;h>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8);var a=e[n];a.high^=s,a.low^=o}for(var c=0;c<24;c++){for(var d=0;d<5;d++){for(var v=0,p=0,_=0;_<5;_++){var a=e[d+5*_];v^=a.high,p^=a.low}var y=u[d];y.high=v,y.low=p}for(var d=0;d<5;d++)for(var g=u[(d+4)%5],B=u[(d+1)%5],w=B.high,k=B.low,v=g.high^(w<<1|k>>>31),p=g.low^(k<<1|w>>>31),_=0;_<5;_++){var a=e[d+5*_];a.high^=v,a.low^=p}for(var S=1;S<25;S++){var a=e[S],m=a.high,x=a.low,b=h[S];if(b<32)var v=m<>>32-b,p=x<>>32-b;else var v=x<>>64-b,p=m<>>64-b;var H=u[l[S]];H.high=v,H.low=p}var z=u[0],A=e[0];z.high=A.high,z.low=A.low;for(var d=0;d<5;d++)for(var _=0;_<5;_++){var S=d+5*_,a=e[S],C=u[S],D=u[(d+1)%5+5*_],R=u[(d+2)%5+5*_];a.high=C.high^~D.high&R.high,a.low=C.low^~D.low&R.low}var a=e[0],E=f[c];a.high^=E.high,a.low^=E.low}},_doFinalize:function(){var t=this._data,e=t.words,i=(8*this._nDataBytes,8*t.sigBytes),o=32*this.blockSize;e[i>>>5]|=1<<24-i%32,e[(r.ceil((i+1)/o)*o>>>5)-1]|=128,t.sigBytes=4*e.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,h=[],l=0;l>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h.push(d),h.push(u)}return new n.init(h,a)},clone:function(){for(var t=o.clone.call(this),r=t._state=this._state.slice(0),e=0;e<25;e++)r[e]=r[e].clone();return t}});e.SHA3=o._createHelper(d),e.HmacSHA3=o._createHmacHelper(d)}(Math),function(){function r(){return s.create.apply(s,arguments)}var e=t,i=e.lib,n=i.Hasher,o=e.x64,s=o.Word,a=o.WordArray,c=e.algo,h=[r(1116352408,3609767458),r(1899447441,602891725),r(3049323471,3964484399),r(3921009573,2173295548),r(961987163,4081628472),r(1508970993,3053834265),r(2453635748,2937671579),r(2870763221,3664609560),r(3624381080,2734883394),r(310598401,1164996542),r(607225278,1323610764),r(1426881987,3590304994),r(1925078388,4068182383),r(2162078206,991336113),r(2614888103,633803317),r(3248222580,3479774868),r(3835390401,2666613458),r(4022224774,944711139),r(264347078,2341262773),r(604807628,2007800933),r(770255983,1495990901),r(1249150122,1856431235),r(1555081692,3175218132),r(1996064986,2198950837),r(2554220882,3999719339),r(2821834349,766784016),r(2952996808,2566594879),r(3210313671,3203337956),r(3336571891,1034457026),r(3584528711,2466948901),r(113926993,3758326383),r(338241895,168717936),r(666307205,1188179964),r(773529912,1546045734),r(1294757372,1522805485),r(1396182291,2643833823),r(1695183700,2343527390),r(1986661051,1014477480),r(2177026350,1206759142),r(2456956037,344077627),r(2730485921,1290863460),r(2820302411,3158454273),r(3259730800,3505952657),r(3345764771,106217008),r(3516065817,3606008344),r(3600352804,1432725776),r(4094571909,1467031594),r(275423344,851169720),r(430227734,3100823752),r(506948616,1363258195),r(659060556,3750685593),r(883997877,3785050280),r(958139571,3318307427),r(1322822218,3812723403),r(1537002063,2003034995),r(1747873779,3602036899),r(1955562222,1575990012),r(2024104815,1125592928),r(2227730452,2716904306),r(2361852424,442776044),r(2428436474,593698344),r(2756734187,3733110249),r(3204031479,2999351573),r(3329325298,3815920427),r(3391569614,3928383900),r(3515267271,566280711),r(3940187606,3454069534),r(4118630271,4000239992),r(116418474,1914138554),r(174292421,2731055270),r(289380356,3203993006),r(460393269,320620315),r(685471733,587496836),r(852142971,1086792851),r(1017036298,365543100),r(1126000580,2618297676),r(1288033470,3409855158),r(1501505948,4234509866),r(1607167915,987167468),r(1816402316,1246189591)],l=[];!function(){for(var t=0;t<80;t++)l[t]=r()}();var f=c.SHA512=n.extend({_doReset:function(){this._hash=new a.init([new s.init(1779033703,4089235720),new s.init(3144134277,2227873595),new s.init(1013904242,4271175723),new s.init(2773480762,1595750129),new s.init(1359893119,2917565137),new s.init(2600822924,725511199),new s.init(528734635,4215389547),new s.init(1541459225,327033209)])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],c=e[5],f=e[6],u=e[7],d=i.high,v=i.low,p=n.high,_=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=a.high,S=a.low,m=c.high,x=c.low,b=f.high,H=f.low,z=u.high,A=u.low,C=d,D=v,R=p,E=_,M=y,F=g,P=B,W=w,O=k,U=S,I=m,K=x,X=b,L=H,j=z,N=A,T=0;T<80;T++){var Z=l[T];if(T<16)var q=Z.high=0|t[r+2*T],G=Z.low=0|t[r+2*T+1];else{var J=l[T-15],$=J.high,Q=J.low,V=($>>>1|Q<<31)^($>>>8|Q<<24)^$>>>7,Y=(Q>>>1|$<<31)^(Q>>>8|$<<24)^(Q>>>7|$<<25),tt=l[T-2],rt=tt.high,et=tt.low,it=(rt>>>19|et<<13)^(rt<<3|et>>>29)^rt>>>6,nt=(et>>>19|rt<<13)^(et<<3|rt>>>29)^(et>>>6|rt<<26),ot=l[T-7],st=ot.high,at=ot.low,ct=l[T-16],ht=ct.high,lt=ct.low,G=Y+at,q=V+st+(G>>>0>>0?1:0),G=G+nt,q=q+it+(G>>>0>>0?1:0),G=G+lt,q=q+ht+(G>>>0>>0?1:0);Z.high=q,Z.low=G}var ft=O&I^~O&X,ut=U&K^~U&L,dt=C&R^C&M^R&M,vt=D&E^D&F^E&F,pt=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),_t=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),yt=(O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9),gt=(U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9),Bt=h[T],wt=Bt.high,kt=Bt.low,St=N+gt,mt=j+yt+(St>>>0>>0?1:0),St=St+ut,mt=mt+ft+(St>>>0>>0?1:0),St=St+kt,mt=mt+wt+(St>>>0>>0?1:0),St=St+G,mt=mt+q+(St>>>0>>0?1:0),xt=_t+vt,bt=pt+dt+(xt>>>0<_t>>>0?1:0);j=X,N=L,X=I,L=K,I=O,K=U,U=W+St|0,O=P+mt+(U>>>0>>0?1:0)|0,P=M,W=F,M=R,F=E,R=C,E=D,D=St+xt|0,C=mt+bt+(D>>>0>>0?1:0)|0}v=i.low=v+D,i.high=d+C+(v>>>0>>0?1:0),_=n.low=_+E,n.high=p+R+(_>>>0>>0?1:0),g=o.low=g+F,o.high=y+M+(g>>>0>>0?1:0),w=s.low=w+W,s.high=B+P+(w>>>0>>0?1:0),S=a.low=S+U,a.high=k+O+(S>>>0>>0?1:0),x=c.low=x+K,c.high=m+I+(x>>>0>>0?1:0),H=f.low=H+L,f.high=b+X+(H>>>0>>0?1:0),A=u.low=A+N,u.high=z+j+(A>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+128>>>10<<5)+30]=Math.floor(e/4294967296),r[(i+128>>>10<<5)+31]=e,t.sigBytes=4*r.length,this._process();var n=this._hash.toX32();return n},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});e.SHA512=n._createHelper(f),e.HmacSHA512=n._createHmacHelper(f)}(),function(){var r=t,e=r.x64,i=e.Word,n=e.WordArray,o=r.algo,s=o.SHA512,a=o.SHA384=s.extend({_doReset:function(){this._hash=new n.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var t=s._doFinalize.call(this);return t.sigBytes-=16,t}});r.SHA384=s._createHelper(a),r.HmacSHA384=s._createHmacHelper(a)}(),t.lib.Cipher||function(r){var e=t,i=e.lib,n=i.Base,o=i.WordArray,s=i.BufferedBlockAlgorithm,a=e.enc,c=(a.Utf8,a.Base64),h=e.algo,l=h.EvpKDF,f=i.Cipher=s.extend({cfg:n.extend(),createEncryptor:function(t,r){return this.create(this._ENC_XFORM_MODE,t,r)},createDecryptor:function(t,r){return this.create(this._DEC_XFORM_MODE,t,r)},init:function(t,r,e){this.cfg=this.cfg.extend(e),this._xformMode=t,this._key=r,this.reset()},reset:function(){s.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){t&&this._append(t);var r=this._doFinalize();return r},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?m:w}return function(r){return{encrypt:function(e,i,n){return t(i).encrypt(r,e,i,n)},decrypt:function(e,i,n){return t(i).decrypt(r,e,i,n)}}}}()}),u=(i.StreamCipher=f.extend({_doFinalize:function(){var t=this._process(!0);return t},blockSize:1}),e.mode={}),d=i.BlockCipherMode=n.extend({createEncryptor:function(t,r){return this.Encryptor.create(t,r)},createDecryptor:function(t,r){return this.Decryptor.create(t,r)},init:function(t,r){this._cipher=t,this._iv=r}}),v=u.CBC=function(){function t(t,e,i){var n=this._iv;if(n){var o=n;this._iv=r}else var o=this._prevBlock;for(var s=0;s>>2];t.sigBytes-=r}},y=(i.BlockCipher=f.extend({cfg:f.cfg.extend({mode:v,padding:_}),reset:function(){f.reset.call(this);var t=this.cfg,r=t.iv,e=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=e.createEncryptor;else{var i=e.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==i?this._mode.init(this,r&&r.words):(this._mode=i.call(e,this,r&&r.words),this._mode.__creator=i)},_doProcessBlock:function(t,r){this._mode.processBlock(t,r)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var r=this._process(!0)}else{var r=this._process(!0);t.unpad(r)}return r},blockSize:4}),i.CipherParams=n.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),g=e.format={},B=g.OpenSSL={stringify:function(t){var r=t.ciphertext,e=t.salt;if(e)var i=o.create([1398893684,1701076831]).concat(e).concat(r);else var i=r;return i.toString(c)},parse:function(t){var r=c.parse(t),e=r.words;if(1398893684==e[0]&&1701076831==e[1]){var i=o.create(e.slice(2,4));e.splice(0,4),r.sigBytes-=16}return y.create({ciphertext:r,salt:i})}},w=i.SerializableCipher=n.extend({cfg:n.extend({format:B}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=t.createEncryptor(e,i),o=n.finalize(r),s=n.cfg;return y.create({ciphertext:o,key:e,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=t.createDecryptor(e,i).finalize(r.ciphertext);return n},_parse:function(t,r){return"string"==typeof t?r.parse(t,this):t}}),k=e.kdf={},S=k.OpenSSL={execute:function(t,r,e,i){i||(i=o.random(8));var n=l.create({keySize:r+e}).compute(t,i),s=o.create(n.words.slice(r),4*e);return n.sigBytes=4*r,y.create({key:n,iv:s,salt:i})}},m=i.PasswordBasedCipher=w.extend({cfg:w.cfg.extend({kdf:S}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=i.kdf.execute(e,t.keySize,t.ivSize);i.iv=n.iv;var o=w.encrypt.call(this,t,r,n.key,i);return o.mixIn(n),o},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=i.kdf.execute(e,t.keySize,t.ivSize,r.salt);i.iv=n.iv;var o=w.decrypt.call(this,t,r,n.key,i);return o}})}(),t.mode.CFB=function(){function r(t,r,e,i){var n=this._iv;if(n){var o=n.slice(0);this._iv=void 0}else var o=this._prevBlock;i.encryptBlock(o,0);for(var s=0;s>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso10126={pad:function(r,e){var i=4*e,n=i-r.sigBytes%i;r.concat(t.lib.WordArray.random(n-1)).concat(t.lib.WordArray.create([n<<24],1))},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso97971={pad:function(r,e){r.concat(t.lib.WordArray.create([2147483648],1)),t.pad.ZeroPadding.pad(r,e)},unpad:function(r){t.pad.ZeroPadding.unpad(r),r.sigBytes--}},t.mode.OFB=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),e.encryptBlock(o,0);for(var s=0;s>>8^255&n^99,o[e]=n,s[n]=e;var p=t[e],_=t[p],y=t[_],g=257*t[n]^16843008*n;a[e]=g<<24|g>>>8,c[e]=g<<16|g>>>16,h[e]=g<<8|g>>>24,l[e]=g;var g=16843009*y^65537*_^257*p^16843008*e;f[n]=g<<24|g>>>8,u[n]=g<<16|g>>>16,d[n]=g<<8|g>>>24,v[n]=g,e?(e=p^t[t[t[y^p]]],i^=t[t[i]]):e=i=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],_=n.AES=i.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,r=t.words,e=t.sigBytes/4,i=this._nRounds=e+6,n=4*(i+1),s=this._keySchedule=[],a=0;a6&&a%e==4&&(c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c]):(c=c<<8|c>>>24,c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c],c^=p[a/e|0]<<24),s[a]=s[a-e]^c}for(var h=this._invKeySchedule=[],l=0;l>>24]]^u[o[c>>>16&255]]^d[o[c>>>8&255]]^v[o[255&c]]}}},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._keySchedule,a,c,h,l,o)},decryptBlock:function(t,r){var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e,this._doCryptBlock(t,r,this._invKeySchedule,f,u,d,v,s);var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e},_doCryptBlock:function(t,r,e,i,n,o,s,a){for(var c=this._nRounds,h=t[r]^e[0],l=t[r+1]^e[1],f=t[r+2]^e[2],u=t[r+3]^e[3],d=4,v=1;v>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&u]^e[d++],_=i[l>>>24]^n[f>>>16&255]^o[u>>>8&255]^s[255&h]^e[d++],y=i[f>>>24]^n[u>>>16&255]^o[h>>>8&255]^s[255&l]^e[d++],g=i[u>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^e[d++];h=p,l=_,f=y,u=g}var p=(a[h>>>24]<<24|a[l>>>16&255]<<16|a[f>>>8&255]<<8|a[255&u])^e[d++],_=(a[l>>>24]<<24|a[f>>>16&255]<<16|a[u>>>8&255]<<8|a[255&h])^e[d++],y=(a[f>>>24]<<24|a[u>>>16&255]<<16|a[h>>>8&255]<<8|a[255&l])^e[d++],g=(a[u>>>24]<<24|a[h>>>16&255]<<16|a[l>>>8&255]<<8|a[255&f])^e[d++];t[r]=p,t[r+1]=_,t[r+2]=y,t[r+3]=g},keySize:8});r.AES=i._createHelper(_)}(),function(){function r(t,r){var e=(this._lBlock>>>t^this._rBlock)&r;this._rBlock^=e,this._lBlock^=e<>>t^this._lBlock)&r;this._lBlock^=e,this._rBlock^=e<>>5]>>>31-n%32&1}for(var o=this._subKeys=[],s=0;s<16;s++){for(var a=o[s]=[],f=l[s],i=0;i<24;i++)a[i/6|0]|=e[(h[i]-1+f)%28]<<31-i%6,a[4+(i/6|0)]|=e[28+(h[i+24]-1+f)%28]<<31-i%6;a[0]=a[0]<<1|a[0]>>>31;for(var i=1;i<7;i++)a[i]=a[i]>>>4*(i-1)+3;a[7]=a[7]<<5|a[7]>>>27}for(var u=this._invSubKeys=[],i=0;i<16;i++)u[i]=o[15-i]},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._subKeys)},decryptBlock:function(t,r){this._doCryptBlock(t,r,this._invSubKeys)},_doCryptBlock:function(t,i,n){this._lBlock=t[i],this._rBlock=t[i+1],r.call(this,4,252645135),r.call(this,16,65535),e.call(this,2,858993459),e.call(this,8,16711935),r.call(this,1,1431655765);for(var o=0;o<16;o++){for(var s=n[o],a=this._lBlock,c=this._rBlock,h=0,l=0;l<8;l++)h|=f[l][((c^s[l])&u[l])>>>0];this._lBlock=c,this._rBlock=a^h}var d=this._lBlock;this._lBlock=this._rBlock,this._rBlock=d,r.call(this,1,1431655765),e.call(this,8,16711935),e.call(this,2,858993459),r.call(this,16,65535),r.call(this,4,252645135),t[i]=this._lBlock,t[i+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});i.DES=s._createHelper(d);var v=a.TripleDES=s.extend({_doReset:function(){var t=this._key,r=t.words;this._des1=d.createEncryptor(o.create(r.slice(0,2))),this._des2=d.createEncryptor(o.create(r.slice(2,4))),this._des3=d.createEncryptor(o.create(r.slice(4,6)))},encryptBlock:function(t,r){this._des1.encryptBlock(t,r),this._des2.decryptBlock(t,r),this._des3.encryptBlock(t,r)},decryptBlock:function(t,r){this._des3.decryptBlock(t,r),this._des2.encryptBlock(t,r),this._des1.decryptBlock(t,r)},keySize:6,ivSize:2,blockSize:2});i.TripleDES=s._createHelper(v)}(),function(){function r(){for(var t=this._S,r=this._i,e=this._j,i=0,n=0;n<4;n++){r=(r+1)%256,e=(e+t[r])%256;var o=t[r];t[r]=t[e],t[e]=o,i|=t[(t[r]+t[e])%256]<<24-8*n}return this._i=r,this._j=e,i}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=o.RC4=n.extend({_doReset:function(){for(var t=this._key,r=t.words,e=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;for(var n=0,o=0;n<256;n++){var s=n%e,a=r[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+a)%256;var c=i[n];i[n]=i[o],i[o]=c}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=r.call(this)},keySize:8,ivSize:0});e.RC4=n._createHelper(s);var a=o.RC4Drop=s.extend({cfg:s.cfg.extend({drop:192}),_doReset:function(){s._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)r.call(this)}});e.RC4Drop=n._createHelper(a)}(),t.mode.CTRGladman=function(){function r(t){if(255===(t>>24&255)){var r=t>>16&255,e=t>>8&255,i=255&t;255===r?(r=0,255===e?(e=0,255===i?i=0:++i):++e):++r,t=0,t+=r<<16,t+=e<<8,t+=i}else t+=1<<24;return t}function e(t){return 0===(t[0]=r(t[0]))&&(t[1]=r(t[1])),t}var i=t.lib.BlockCipherMode.extend(),n=i.Encryptor=i.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),e(s);var a=s.slice(0);i.encryptBlock(a,0);for(var c=0;c>>0>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0>>0?1:0)|0,this._b=r[7]>>>0>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.Rabbit=n.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,i=0;i<4;i++)t[i]=16711935&(t[i]<<8|t[i]>>>24)|4278255360&(t[i]<<24|t[i]>>>8);var n=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],o=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var i=0;i<4;i++)r.call(this);for(var i=0;i<8;i++)o[i]^=n[i+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;o[0]^=h,o[1]^=f,o[2]^=l,o[3]^=u,o[4]^=h,o[5]^=f,o[6]^=l,o[7]^=u;for(var i=0;i<4;i++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.Rabbit=n._createHelper(h)}(),t.mode.CTR=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);e.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var a=0;a>>0>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0>>0?1:0)|0,this._b=r[7]>>>0>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.RabbitLegacy=n.extend({_doReset:function(){var t=this._key.words,e=this.cfg.iv,i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var o=0;o<4;o++)r.call(this);for(var o=0;o<8;o++)n[o]^=i[o+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;n[0]^=h,n[1]^=f,n[2]^=l,n[3]^=u,n[4]^=h,n[5]^=f,n[6]^=l,n[7]^=u;for(var o=0;o<4;o++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.RabbitLegacy=n._createHelper(h)}(),t.pad.ZeroPadding={pad:function(t,r){var e=4*r;t.clamp(),t.sigBytes+=e-(t.sigBytes%e||e)},unpad:function(t){for(var r=t.words,e=t.sigBytes-1;!(r[e>>>2]>>>24-e%4*8&255);)e--;t.sigBytes=e+1}},t}); +//# sourceMappingURL=crypto-js.min.js.map \ No newline at end of file diff --git a/assets/Script/module/Crypto/crypto-js.min.js.meta b/assets/Script/module/Crypto/crypto-js.min.js.meta new file mode 100644 index 0000000..029408f --- /dev/null +++ b/assets/Script/module/Crypto/crypto-js.min.js.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "e64e1a97-c93f-4257-ab34-80341d8ff79d", + "importer": "javascript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/GameStart.meta b/assets/Script/module/GameStart.meta new file mode 100644 index 0000000..f45a5e7 --- /dev/null +++ b/assets/Script/module/GameStart.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "b4e113c6-a987-4133-bfa0-3355d8ab4bd1", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/GameStart/GameAppStart.ts b/assets/Script/module/GameStart/GameAppStart.ts new file mode 100644 index 0000000..2aff7f2 --- /dev/null +++ b/assets/Script/module/GameStart/GameAppStart.ts @@ -0,0 +1,108 @@ +import { GameConfig } from "../Config/GameConfig"; +import HttpUtil from "../Crypto/HttpUtil"; +import AudioManager from "../Music/AudioManager"; +import { Notifications } from "../Notification/Notification"; +import { StorageMessage } from "../Storage/Storage"; +import { GameTool } from "../Tool/GameTool"; + + +window.initMgr = function() { + if(cc.fx) + { + return; + } + cc.fx = {}; + + + //基础状态信息 + cc.fx.StateInfo = { + debugMode: true, + networkConnected: true, //网络状态 + networkType: 'none', //网络类型 + isOnForeground: true //当前是否是在前台 + }; + + //应用系统信息 + //配置文件 + + cc.fx.GameConfig = GameConfig; + cc.fx.HttpUtil = HttpUtil; + cc.fx.GameTool = GameTool; + cc.fx.AudioManager = AudioManager; + cc.fx.Notifications = Notifications; + cc.fx.StorageMessage = StorageMessage; + + cc.fx.ShareInfo = { + queryId : -1 //分享id + }; + + cc.fx.Message = { + control: "10001", //传递操作控制 + startGame:"10002", //传递开始建筑 + next: "10003" , //传递执行下一个格子洪水流过 + changePath: "10004", //传递操作控制 + changeMap: "10005", //改变那地图 + nextWater: "10006" , //传递执行下一个格子洪水流过 + addEnd: "10007" , //添加结束点 + setData: "10008" , //上传分数 + guideNext: "10009" , //引导进入下一步 + showResult: "10010", //展示治水结果 + removeTip: "10011" //执行撤回或者后退动作,移除提示 + } + + /* + * 客户端埋点分享类型 + */ + cc.fx.BurialShareType = { + Default : "default", //默认分享类型,分享到群 + Invite : "invite", // 邀请好友 + + DailyInviteRoomJoin:'invite_join_room', //邀请好友加入 + DailyInviteFriend : 'invite_friend', // 日常邀请好友 + DailyInviteGroup : 'invate_group', // 日常分享群 + DailyInviteGroupAlive: 'invate_alive', //日常分享群复活 + DailyInviteGroupReward: 'invate_rewared',//分享奖励翻倍 + DailyInviteGroupBox: 'invate_box', //宝箱分享奖励 + DailyInviteGroupBall: 'invate_ball', //分享领取球球 + + MatchResult : 'matchResult', // 比赛结算分享 + MatchFix5: 'MatchFix5', // 5元红包赛 + MatchFix20: 'MatchFix20', // 20元红包赛 + MatchFix100: 'MatchFix100', // 100元红包赛 + MatchFix500: 'MatchFix500', // 500元红包赛 + NewerRedEnvelope: 'newerRedEnvelope', // 新手红包 + CoinRoomResult: 'coinRoomResult', // 金币桌结算 + HighRate : "highRate",//高倍分享 + CoinRoomWinStreak: 'coinRoomWinStreak', // 连胜 + CoinRoomBankruptcy1: 'coinRoomBankruptcy1', // 金币桌破产 + CoinRoomBankruptcy2: 'coinRoomBankruptcy2', // 金币桌破产 + CoinRoomBankruptcy3: 'coinRoomBankruptcy3', // 金币桌破产 + }; + + /* + * 分享到哪儿给奖励 group frined all + */ + cc.fx.ShareWhereReward = { + Group :"group", //微信群 + Friend : "friend",//好友 + All : "all", //不区分 + }; + + //用于存储消息的ID + cc.fx.storageType = cc.Enum({ + storageTypeCustom: 1000101, //用于存储关卡等级 + }); + + //用于存储提示语 按照步骤提示 + cc.fx.tipType = cc.Enum({ + tipOne: '神农氏回到家中,开始整理今天收集来的物品。当他第一次拿出或说出一种植物时,请告诉他这是新植物。', + tipTwo: '如果他拿出或说出的植物你今天看到过,请告诉他上次是看到的;如果你听他说过,则请告诉他上次是听到的。', //用于存储关卡等级 + tipErrNew: '这是这局游戏第一次出现{植物}', + tipErrOld: '{植物}刚才出现过呢', + tipErrHear: '上次遇到{植物}时,似乎不是听到的吧', + tipErrSee: '上次遇到{植物}时,似乎不是看到的吧', + tipErrLast: '之前确实看到过{植物},但最近一次似乎不是看到的呢', + + }); + +}; \ No newline at end of file diff --git a/assets/Script/module/GameStart/GameAppStart.ts.meta b/assets/Script/module/GameStart/GameAppStart.ts.meta new file mode 100644 index 0000000..e226d6e --- /dev/null +++ b/assets/Script/module/GameStart/GameAppStart.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "61d4c718-db3b-4b31-8221-f16bea3cf030", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Music.meta b/assets/Script/module/Music.meta new file mode 100644 index 0000000..85d3a58 --- /dev/null +++ b/assets/Script/module/Music.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "0487cacb-b94a-4ab6-a301-b6402ab0ac5d", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Music/AudioManager.ts b/assets/Script/module/Music/AudioManager.ts new file mode 100644 index 0000000..c49e23a --- /dev/null +++ b/assets/Script/module/Music/AudioManager.ts @@ -0,0 +1,245 @@ + + +const {ccclass, property} = cc._decorator; +@ccclass +export default class AudioManager extends cc.Component { + static _instance: any; + //背景音乐 + @property(cc.AudioClip) + audioGameBgm0: cc.AudioClip = null; + + @property(cc.AudioClip) + chehui: cc.AudioClip = null; + @property(cc.AudioClip) + jineng: cc.AudioClip = null; + @property(cc.AudioClip) + qingkong: cc.AudioClip = null; + @property(cc.AudioClip) + fangxiang: cc.AudioClip = null; + @property(cc.AudioClip) + build: cc.AudioClip = null; + @property(cc.AudioClip) + win: cc.AudioClip = null; + @property(cc.AudioClip) + lose: cc.AudioClip = null; + + + + + mAudioMap: {}; + bgMusicVolume: number; + effectMusicVolume: number; + mMusicSwitch: number; + mEffectSwitch: number; + brickSound: any; + reward: boolean; + finish: boolean; + rewardCount: number; + mMusicKey: any; + + onLoad() { + if (AudioManager._instance == null) { + AudioManager._instance = this; + cc.game.addPersistRootNode(this.node); + } + else { + return; + } + this.reward = false; + this.finish = false; + this.rewardCount = 0; + this.ctor(); + + this.preload(); + } + + ctor () { + this.mAudioMap = {}; + /** + * 默认音量大小 + * @type {number} + */ + this.bgMusicVolume = 0.1; + this.effectMusicVolume = 1; + + this.mMusicSwitch = 1; + this.mEffectSwitch = 1; + } + play (audioSource, loop, callback, isBgMusic) { + // if (isBgMusic && !this.mMusicSwitch) return; + // if (!isBgMusic && !this.mEffectSwitch) return; + var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume; + + // if (cc.sys.isBrowser) { + // if(audioSource == this.brickSound){ + // volume = 0.1; + // } + volume = 1; + cc.audioEngine.setEffectsVolume(1); + cc.audioEngine.setMusicVolume(1); + if(audioSource.name == "lose"){ + cc.audioEngine.setEffectsVolume(0.5); + } + else{ + cc.audioEngine.setEffectsVolume(1); + } + var context = cc.audioEngine.playEffect(audioSource, loop); + if (callback){ + cc.audioEngine.setFinishCallback(context, function(){ + callback.call(this); + }.bind(this)); + } + // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src); + + this.mAudioMap[audioSource] = context; + return audioSource; + // } else { + // return audioSource; + // } + } + + save () { + // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch); + // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch); + } + + // static get Instance() + // { + // if (this._instance == null) + // { + // this._instance = new AudioManager(); + // } + // return this._instance; + // } + + preload () { + if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { return; } + + var musics = [ + this.audioGameBgm0, + ]; + musics.forEach(function(path) { + }) + } + + getAudioMusicSwitch() + { + return this.mMusicSwitch; + + } + getAudioEffectSwitch() + { + return this.mEffectSwitch; + } + trunAudioSound(on) + { + this.switchMusic(on); + this.switchEffect(on) + } + switchMusic (on) { + if (this.mMusicSwitch != (on?1:0)) + { + this.mMusicSwitch = 1-this.mMusicSwitch; + // this.save(); + } + if(on) + { + this.playMusicGame(); + } + else + { + this.stopMusic(); + } + } + switchEffect (on) { + if (this.mEffectSwitch != (on?1:0)){ + this.mEffectSwitch = 1-this.mEffectSwitch; + // this.save(); + + } + } + onHide () { + cc.audioEngine.pauseAll(); + } + + onShow () { + cc.audioEngine.resumeAll(); + } + + //播放音效 + playEffect(name,callback){ + if(this[name]) + return this.play(this[name], false,callback,this.mEffectSwitch); + } + playMusic (key, callback, loop) { + loop = typeof loop == 'undefined' || loop ? true : false; + this.stopMusic(); + this.mMusicKey = this.play(key, loop, callback, true); + } + /** + * 游戏背景音乐 + */ + playMusicGame () { + this.playMusic(this.audioGameBgm0,{},true); + } + /** + * 停止背景音乐播放 + */ + stopMusic () { + // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey); + + var context = this.mAudioMap[this.mMusicKey]; + + if (typeof(context) != 'undefined') { + if (cc.sys.isBrowser) { + cc.audioEngine.stop(context); + } else { + context.stop(); + } + cc.audioEngine.stop(context); + + } + } + + /* + * 游戏开始音效 + * + */ + playGameStart() + { + + } + /* + * 失败的游戏结束 + */ + playGameOver() + { + + } + /* + * 成功的游戏结束 + */ + playGameResultFailed() + { + + } + /* + * 成功的游戏结束 + */ + playGameResultSuccess() + { + + } + /** + * 报警的音效 + */ + + /** + * 按钮 + */ + playAudioButton () { + // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch); + } +}; + +// export { AudioManager }; diff --git a/assets/Script/module/Music/AudioManager.ts.meta b/assets/Script/module/Music/AudioManager.ts.meta new file mode 100644 index 0000000..0965413 --- /dev/null +++ b/assets/Script/module/Music/AudioManager.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "58403fe7-d7a2-426b-9b19-84d3236731a8", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Notification.meta b/assets/Script/module/Notification.meta new file mode 100644 index 0000000..909e75b --- /dev/null +++ b/assets/Script/module/Notification.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "ff6560d9-676d-42ad-8ec7-e44acb84ad9e", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Notification/Notification.ts b/assets/Script/module/Notification/Notification.ts new file mode 100644 index 0000000..bbe2893 --- /dev/null +++ b/assets/Script/module/Notification/Notification.ts @@ -0,0 +1,45 @@ +//全局通知 +var Notifications = { + _eventMap: [], + on: function (masgId, callback, target) { + if (this._eventMap[masgId] === undefined) { + this._eventMap[masgId] = []; + } + this._eventMap[masgId].push({ callback: callback, target: target }); + }, + + emit: function (masgId, parameter) { + let array = this._eventMap[masgId]; + if (array === undefined) return; + + for (let i = 0; i < array.length; i++) { + let element = array[i]; + if (element) element.callback.call(element.target, parameter); + } + }, + + off: function (masgId, callback) { + let array = this._eventMap[masgId]; + if (array === undefined) return; + for (let i = 0; i < array.length; i++) { + let element = array[i]; + if (element && element.callback === callback) { + array[i] = undefined; + break; + } + } + }, + + offMasgId: function (masgId) { + this._eventMap[masgId] = undefined; + }, + + removeAllMsg: function () { + for (let k in this._eventMap) { + if (this._eventMap[k]) { + this.offMasgId(k); + } + } + } +}; +export { Notifications }; \ No newline at end of file diff --git a/assets/Script/module/Notification/Notification.ts.meta b/assets/Script/module/Notification/Notification.ts.meta new file mode 100644 index 0000000..04a1a62 --- /dev/null +++ b/assets/Script/module/Notification/Notification.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "55403563-1a5a-4f2f-9eb8-82c762641837", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/RankList.meta b/assets/Script/module/RankList.meta new file mode 100644 index 0000000..827c351 --- /dev/null +++ b/assets/Script/module/RankList.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "d3520299-33dc-43d2-b522-d424efb5575d", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/RankList/ItemRender.ts b/assets/Script/module/RankList/ItemRender.ts new file mode 100644 index 0000000..7d8752a --- /dev/null +++ b/assets/Script/module/RankList/ItemRender.ts @@ -0,0 +1,76 @@ + +import List, { ListType } from "./List"; + +const { ccclass, property } = cc._decorator; + +@ccclass +export default class ItemRender extends cc.Component { + /**数据 */ + public data:any = null; + /**索引 0表示第一项*/ + public itemIndex:number = 0; + + /**数据改变时调用 */ + public dataChanged(){ + cc.fx.GameTool.subName(this.data.name,6); + this.node.getChildByName("rankLab").getComponent(cc.Label).string = this.data.rank + ""; + this.node.getChildByName("nameLab").getComponent(cc.Label).string = this.data.name + ""; + this.node.getChildByName("totalLab").getComponent(cc.Label).string = this.data.total; + let timeTemp = cc.fx.GameTool.getTimeShenNong(this.data.time); + // this.node.getChildByName("timeLab").getComponent(cc.Label).string = timeTemp + ""; + this.node.getChildByName("rank").getChildByName("one").active = false; + this.node.getChildByName("rank").getChildByName("two").active = false; + this.node.getChildByName("rank").getChildByName("three").active = false; + if(this.data.rank == 1){ + this.node.getChildByName("rank").getChildByName("one").active = true; + this.node.getChildByName("rankLab").active = false; + } + else if(this.data.rank == 2){ + this.node.getChildByName("rank").getChildByName("two").active = true; + this.node.getChildByName("rankLab").active = false; + } + else if(this.data.rank == 3){ + this.node.getChildByName("rank").getChildByName("three").active = true; + this.node.getChildByName("rankLab").active = false; + }else{ + this.node.getChildByName("rankLab").active = true; + } + this.setPic(); + } + + public setPic(){ + this.node.getChildByName("pic").getChildByName("icon").active = false; + this.node.getChildByName("pic").getChildByName("pic").active= false; + var self = this; + let url = this.data.pic; + fetch(url) + .then(response => { + return response.headers.get('Content-Length'); + }) + + .then(errNo => { + // console.log(this.data.rank,'X-Info:', errNo); // 输出X-ErrNo的值 + if(errNo == "5093"){ + // console.log(this.data.rank,"没头像"); + this.node.getChildByName("pic").getChildByName("icon").active = true; + } + }) + .catch(error => { + // console.error('Error fetching X-Info:', error); + }); + cc.assetManager.loadRemote(url, {ext:'.png'},(err, texture:cc.Texture2D) => { + if(texture){ + this.node.getChildByName("pic").getChildByName("pic").active= true; + var sprite = this.node.getChildByName("pic").getChildByName("pic").getComponent(cc.Sprite); + sprite.spriteFrame = new cc.SpriteFrame(texture); + // console.log(this.data.rank,"设置头像成功",err); + } + else{ + // console.log("设置头像失败",url); + console.log(err,texture) + } + }) + } + + +} diff --git a/assets/Script/module/RankList/ItemRender.ts.meta b/assets/Script/module/RankList/ItemRender.ts.meta new file mode 100644 index 0000000..57a45d3 --- /dev/null +++ b/assets/Script/module/RankList/ItemRender.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "ca0f9934-a015-436e-9402-f8e30d4c5de6", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/RankList/List.ts b/assets/Script/module/RankList/List.ts new file mode 100644 index 0000000..706d342 --- /dev/null +++ b/assets/Script/module/RankList/List.ts @@ -0,0 +1,592 @@ +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html + +import ItemRender from "./ItemRender" + +const { ccclass, property } = cc._decorator; + +/**列表排列方式 */ +export enum ListType { + /**水平排列 */ + Horizontal = 1, + /**垂直排列 */ + Vertical = 2, + /**网格排列 */ + Grid = 3 +} + +/**网格布局中的方向 */ +export enum StartAxisType { + /**水平排列 */ + Horizontal = 1, + /**垂直排列 */ + Vertical = 2, +} + +/** + * 列表 + * 根据cocos_example的listView改动而来 + * @author chenkai 2020.7.8 + * @example + * 1.创建cocos的ScrollView组件,添加List,设置List属性即可 + * + */ +@ccclass +export default class List extends cc.Component { + + //==================== 属性面板 ========================= + /**列表选项 */ + @property({ type: cc.Node, tooltip: "列表项" }) + public itemRender: cc.Node = null; + + /**排列方式 */ + @property({ type: cc.Enum(ListType), tooltip: "排列方式" }) + public type: ListType = ListType.Vertical; + + /**网格布局中的方向 */ + @property({ type: cc.Enum(StartAxisType), tooltip: "网格布局中的方向", visible() { return this.type == ListType.Grid } }) + public startAxis: StartAxisType = StartAxisType.Horizontal; + + /**列表项之间X间隔 */ + @property({ type: cc.Integer, tooltip: "列表项X间隔", visible() { return (this.type == ListType.Horizontal || this.type == ListType.Grid) } }) + public spaceX: number = 0; + + /**列表项之间Y间隔 */ + @property({ type: cc.Integer, tooltip: "列表项Y间隔", visible() { return this.type == ListType.Vertical || this.type == ListType.Grid } }) + public spaceY: number = 0; + + /**上间距 */ + @property({ type: cc.Integer, tooltip: "上间距", visible() { return (this.type == ListType.Vertical || this.type == ListType.Grid) } }) + public padding_top: number = 0; + + /**下间距 */ + @property({ type: cc.Integer, tooltip: "下间距", visible() { return (this.type == ListType.Vertical || this.type == ListType.Grid) } }) + public padding_buttom: number = 0; + + /**左间距 */ + @property({ type: cc.Integer, tooltip: "左间距", visible() { return (this.type == ListType.Horizontal || this.type == ListType.Grid) } }) + public padding_left: number = 0; + + + + @property(cc.Integer) + public _padding: number = 0; + + /**右间距 */ + @property({ type: cc.Integer, tooltip: "右间距", visible() { return (this.type == ListType.Horizontal || this.type == ListType.Grid) } }) + public padding_right: number = 0; + + //====================== 滚动容器 =============================== + /**列表滚动容器 */ + public scrollView: cc.ScrollView = null; + /**scrollView的内容容器 */ + private content: cc.Node = null; + + //======================== 列表项 =========================== + /**列表项数据 */ + private itemDataList: Array = []; + /**应创建的实例数量 */ + private spawnCount: number = 0; + /**存放列表项实例的数组 */ + private itemList: Array = []; + /**item的高度 */ + private itemHeight: number = 0; + /**item的宽度 */ + private itemWidth: number = 0; + /**存放不再使用中的列表项 */ + private itemPool: Array = []; + + //======================= 计算参数 ========================== + /**距离scrollView中心点的距离,超过这个距离的item会被重置,一般设置为 scrollVIew.height/2 + item.heigt/2 + space,因为这个距离item正好超出scrollView显示范围 */ + private halfScrollView: number = 0; + /**上一次content的X值,用于和现在content的X值比较,得出是向左还是向右滚动 */ + private lastContentPosX: number = 0; + /**上一次content的Y值,用于和现在content的Y值比较,得出是向上还是向下滚动 */ + private lastContentPosY: number = 0; + /**网格行数 */ + private gridRow: number = 0; + /**网格列数 */ + private gridCol: number = 0; + /**刷新时间,单位s */ + private updateTimer: number = 0; + /**刷新间隔,单位s */ + private updateInterval: number = 0.1; + /**是否滚动容器 */ + private bScrolling: boolean = false; + /**刷新的函数 */ + private updateFun: Function = function () { }; + + onLoad() { + this.itemHeight = this.itemRender.height; + this.itemWidth = this.itemRender.width; + this.scrollView = this.node.getComponent(cc.ScrollView); + this.content = this.scrollView.content; + this.content.anchorX = 0; + this.content.anchorY = 1; + this.content.removeAllChildren(); + this.scrollView.node.on("scrolling", this.onScrolling, this); + } + + /** + * 列表数据 (列表数据复制使用,如果列表数据改变,则需要重新设置一遍数据) + * @param itemDataList item数据列表 + */ + public setData(itemDataList: Array) { + this.itemDataList = itemDataList.slice(); + this.updateContent(); + + } + + /**计算列表的各项参数 */ + private countListParam() { + let dataLen = this.itemDataList.length; + if (this.type == ListType.Vertical) { + this.scrollView.horizontal = false; + this.scrollView.vertical = true; + this.content.width = this.content.parent.width; + this.content.height = dataLen * this.itemHeight + (dataLen - 1) * this.spaceY + this.padding_top + this.padding_buttom; + this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) + 2; //计算创建的item实例数量,比当前scrollView容器能放下的item数量再加上2个 + this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; //计算bufferZone,item的显示范围 + this.updateFun = this.updateV; + } else if (this.type == ListType.Horizontal) { + this.scrollView.horizontal = true; + this.scrollView.vertical = false; + this.content.width = dataLen * this.itemWidth + (dataLen - 1) * this.spaceX + this.padding_left + this.padding_right; + this.content.height = this.content.parent.height; + this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) + 2; + this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX; + this.updateFun = this.udpateH; + } else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + this.scrollView.horizontal = false; + this.scrollView.vertical = true; + this.content.width = this.content.parent.width; + //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效 + if (this.padding_left + this.padding_right + this.itemWidth + this.spaceX > this.content.width) { + this.padding_left = 0; + this.padding_right = 0; + console.error("padding_left或padding_right过大"); + } + + this.gridCol = Math.floor((this.content.width - this.padding_left - this.padding_right) / (this.itemWidth + this.spaceX)); + this.gridRow = Math.ceil(dataLen / this.gridCol); + this.content.height = this.gridRow * this.itemHeight + (this.gridRow - 1) * this.spaceY + this.padding_top + this.padding_buttom; + this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) * this.gridCol + this.gridCol * 2; + this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; + this.updateFun = this.updateGrid_V; + } else if (this.startAxis == StartAxisType.Horizontal) { + this.scrollView.horizontal = true; + this.scrollView.vertical = false; + //计算高间隔 + this.content.height = this.content.parent.height; + //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效 + if (this.padding_top + this.padding_buttom + this.itemHeight + this.spaceY > this.content.height) { + this.padding_top = 0; + this.padding_buttom = 0; + console.error("padding_top或padding_buttom过大"); + } + + this.gridRow = Math.floor((this.content.height - this.padding_top - this.padding_buttom) / (this.itemHeight + this.spaceY)); + this.gridCol = Math.ceil(dataLen / this.gridRow); + this.content.width = this.gridCol * this.itemWidth + (this.gridCol - 1) * this.spaceX + this.padding_left + this.padding_right; + this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) * this.gridRow + this.gridRow * 2; + this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX; + this.updateFun = this.updateGrid_H; + } + } + } + + /** + * 创建列表 + * @param startIndex 起始显示的数据索引 0表示第一项 + * @param offset scrollView偏移量 + */ + private createList(startIndex: number, offset: cc.Vec2) { + //当需要显示的数据长度 > 虚拟列表长度, 删除最末尾几个数据时,列表需要重置位置到scrollView最底端 + if (this.itemDataList.length > this.spawnCount && (startIndex + this.spawnCount - 1) >= this.itemDataList.length) { + startIndex = this.itemDataList.length - this.spawnCount; + offset = this.scrollView.getMaxScrollOffset(); + + //当需要显示的数据长度 <= 虚拟列表长度, 隐藏多余的虚拟列表项 + } else if (this.itemDataList.length <= this.spawnCount) { + startIndex = 0; + } + + for (let i = 0; i < this.spawnCount; i++) { + let item: cc.Node; + //需要显示的数据索引在数据范围内,则item实例显示出来 + if (i + startIndex < this.itemDataList.length) { + if (this.itemList[i] == null) { + item = this.getItem(); + this.itemList.push(item); + item.parent = this.content; + } else { + item = this.itemList[i]; + } + //需要显示的数据索引超过了数据范围,则item实例隐藏起来 + } else { + //item实例数量 > 需要显示的数据量 + if (this.itemList.length > (this.itemDataList.length - startIndex)) { + item = this.itemList.pop(); + item.removeFromParent(); + this.itemPool.push(item); + } + continue; + } + + let itemRender: ItemRender = item.getComponent(ItemRender); + itemRender.itemIndex = i + startIndex; + itemRender.data = this.itemDataList[i + startIndex]; + itemRender.dataChanged(); + + if (this.type == ListType.Vertical) { + //因为content的锚点X是0,所以item的x值是content.with/2表示居中,锚点Y是1,所以item的y值从content顶部向下是0到负无穷。所以item.y= -item.height/2时,是在content的顶部。 + item.setPosition(this.content.width / 2, -item.height * (0.5 + i + startIndex) - this.spaceY * (i + startIndex) - this.padding_top); + } else if (this.type == ListType.Horizontal) { + item.setPosition(item.width * (0.5 + i + startIndex) + this.spaceX * (i + startIndex) + this.padding_left, -this.content.height / 2); + } else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + var row = Math.floor((i + startIndex) / this.gridCol); + var col = (i + startIndex) % this.gridCol; + item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top); + item.opacity = 255; + } else if (this.startAxis == StartAxisType.Horizontal) { + var row = (i + startIndex) % this.gridRow; + var col = Math.floor((i + startIndex) / this.gridRow); + item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top); + item.opacity = 255; + } + } + } + + this.scrollView.scrollToOffset(offset); + } + + /**获取一个列表项 */ + private getItem() { + if (this.itemPool.length == 0) { + return cc.instantiate(this.itemRender); + } else { + return this.itemPool.pop(); + } + } + + update(dt) { + if (this.bScrolling == false) { + return; + } + this.updateTimer += dt; + if (this.updateTimer < this.updateInterval) { + return; + } + this.updateTimer = 0; + this.bScrolling = false; + this.updateFun(); + } + + onScrolling() { + this.bScrolling = true; + } + + /**垂直排列 */ + private updateV() { + let items = this.itemList; + let item; + let bufferZone = this.halfScrollView; + let isUp = this.scrollView.content.y > this.lastContentPosY; + let offset = (this.itemHeight + this.spaceY) * items.length; + for (let i = 0; i < items.length; i++) { + item = items[i]; + let viewPos = this.getPositionInView(item); + if (isUp) { + //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界 + if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) { + let itemRender: ItemRender = item.getComponent(ItemRender); + let itemIndex = itemRender.itemIndex + items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.y = item.y - offset; + } + } else { + //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界 + if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) { + let itemRender: ItemRender = item.getComponent(ItemRender); + let itemIndex = itemRender.itemIndex - items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.y = item.y + offset; + } + } + } + this.lastContentPosY = this.scrollView.content.y; + } + + /**水平排列 */ + private udpateH() { + let items = this.itemList; + let item; + let bufferZone = this.halfScrollView; + let isRight = this.scrollView.content.x > this.lastContentPosX; + let offset = (this.itemWidth + this.spaceX) * items.length; + for (let i = 0; i < items.length; i++) { + item = items[i]; + let viewPos = this.getPositionInView(item); + if (isRight) { + //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界 + if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) { + let itemRender: ItemRender = item.getComponent(ItemRender); + let itemIndex = itemRender.itemIndex - items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.x = item.x - offset; + } + } else { + //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界 + if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) { + let itemRender: ItemRender = item.getComponent(ItemRender); + let itemIndex = itemRender.itemIndex + items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.x = item.x + offset; + } + } + } + this.lastContentPosX = this.scrollView.content.x; + } + + /**网格垂直排列 */ + private updateGrid_V() { + let items = this.itemList; + let item: cc.Node; + let bufferZone = this.halfScrollView; + let isUp = this.scrollView.content.y > this.lastContentPosY; + let offset = (this.itemHeight + this.spaceY) * (this.spawnCount / this.gridCol); + for (let i = 0; i < items.length; i++) { + item = items[i]; + let viewPos = this.getPositionInView(item); + if (isUp) { + //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界 + if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) { + let itemRender: ItemRender = item.getComponent(ItemRender); + let itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridCol) * this.gridCol; + if (this.itemDataList[itemIndex] != null) { + item.y = item.y - offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } else { + item.y = item.y - offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } else {//item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界 + if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) { + let itemRender: ItemRender = item.getComponent(ItemRender); + let itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridCol) * this.gridCol; + if (this.itemDataList[itemIndex] != null) { + item.y = item.y + offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } else { + item.y = item.y + offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + } + this.lastContentPosY = this.scrollView.content.y; + } + + /**网格水平排列 */ + private updateGrid_H() { + let items = this.itemList; + let item; + let bufferZone = this.halfScrollView; + let isRight = this.scrollView.content.x > this.lastContentPosX; + let offset = (this.itemWidth + this.spaceX) * (this.spawnCount / this.gridRow); + for (let i = 0; i < items.length; i++) { + item = items[i]; + let viewPos = this.getPositionInView(item); + if (isRight) { + //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界 + if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) { + let itemRender: ItemRender = item.getComponent(ItemRender); + let itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridRow) * this.gridRow; + if (this.itemDataList[itemIndex] != null) { + item.x = item.x - offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } else { + item.x = item.x - offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } else { + //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界 + if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) { + let itemRender: ItemRender = item.getComponent(ItemRender); + let itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridRow) * this.gridRow; + if (this.itemDataList[itemIndex] != null) { + item.x = item.x + offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } else { + item.x = item.x + offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + } + this.lastContentPosX = this.scrollView.content.x; + } + + /**获取item在scrollView的局部坐标 */ + private getPositionInView(item) { + let worldPos = item.parent.convertToWorldSpaceAR(item.position); + let viewPos = this.scrollView.node.convertToNodeSpaceAR(worldPos); + return viewPos; + } + + /**获取列表数据 */ + public getListData() { + return this.itemDataList; + } + + /** + * 增加一项数据到列表的末尾 + * @param data 数据 + */ + public addItem(data: any) { + this.itemDataList.push(data); + this.updateContent(); + } + + /** + * 增加一项数据到列表指定位置 + * @param index 位置,0表示第1项 + * @param data 数据 + */ + public addItemAt(index: number, data: any) { + if (this.itemDataList[index] != null || this.itemDataList.length == index) { + this.itemDataList.splice(index, 1, data); + this.updateContent(); + } + } + + /** + * 删除一项数据 + * @param index 删除项的位置 ,0表示第1项 + */ + public deleteItem(index: number) { + if (this.itemDataList[index] != null) { + this.itemDataList.splice(index, 1); + this.updateContent(); + } + } + + /** + * 改变一项数据 + * @param index 位置,0表示第1项 + * @param data 替换的数据 + */ + public changeItem(index: number, data: any) { + if (this.itemDataList[index] != null) { + this.itemDataList[index] = data; + this.updateContent(); + } + } + + /**获取第一个Item的位置 */ + private updateContent() { + //显示列表实例为0个 + if (this.itemList.length == 0) { + this.countListParam(); + this.createList(0, new cc.Vec2(0, 0)); + //显示列表的实例不为0个,则需要重新排列item实例数组 + } else { + if (this.type == ListType.Vertical) { + this.itemList.sort((a: any, b: any) => { + return b.y - a.y; + }); + } else if (this.type == ListType.Horizontal) { + this.itemList.sort((a: any, b: any) => { + return a.x - b.x; + }); + } else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + this.itemList.sort((a: any, b: any) => { + return a.x - b.x; + }); + this.itemList.sort((a: any, b: any) => { + return b.y - a.y; + }); + } else if (this.startAxis == StartAxisType.Horizontal) { + this.itemList.sort((a: any, b: any) => { + return b.y - a.y; + }); + this.itemList.sort((a: any, b: any) => { + return a.x - b.x; + }); + } + } + + this.countListParam(); + + //获取第一个item实例需要显示的数据索引 + var startIndex = this.itemList[0].getComponent(ItemRender).itemIndex; + + if (this.type == ListType.Grid && this.startAxis == StartAxisType.Vertical) { + startIndex += (startIndex + this.spawnCount) % this.gridCol; + } else if (this.type == ListType.Grid && this.startAxis == StartAxisType.Horizontal) { + startIndex += (startIndex + this.spawnCount) % this.gridRow; + } + + //getScrollOffset()和scrollToOffset()的x值是相反的 + var offset: cc.Vec2 = this.scrollView.getScrollOffset(); + offset.x = - offset.x; + + this.createList(startIndex, offset); + } + } + + /**销毁 */ + public onDestroy() { + //清理列表项 + let len = this.itemList.length; + for (let i = 0; i < len; i++) { + if (cc.isValid(this.itemList[i], true)) { + this.itemList[i].destroy(); + } + } + this.itemList.length = 0; + //清理对象池 + len = this.itemPool.length; + for (let i = 0; i < len; i++) { + if (cc.isValid(this.itemPool[i], true)) { + this.itemPool[i].destroy(); + } + } + this.itemPool.length = 0; + //清理列表数据 + this.itemDataList.length = 0; + } +} diff --git a/assets/Script/module/RankList/List.ts.meta b/assets/Script/module/RankList/List.ts.meta new file mode 100644 index 0000000..18cde3b --- /dev/null +++ b/assets/Script/module/RankList/List.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "d54211e0-2d28-4528-88e3-e5fd7c9b59a2", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Share.meta b/assets/Script/module/Share.meta new file mode 100644 index 0000000..e87268a --- /dev/null +++ b/assets/Script/module/Share.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "bdc76845-baea-4381-911e-af437cccf839", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Share.zip b/assets/Script/module/Share.zip new file mode 100644 index 0000000000000000000000000000000000000000..705f1904f5f9107284f210f979cf4016b08211fb GIT binary patch literal 1863 zcmZ`)2~d;Q7XCrfhCD%*fRP#ruP!7=L{_b=5=2mxtw@Qifq`g(8Ui8_s{xwGA|SE} zsX`39ML;kmZ4?afq9{>8APGVWDQh4C$|}5|kB&}X&z(EpIWymUXU@Gd=W{=@K?MQ; zU;u~<81V%@i?0;9S41!=Y>&Hw166RqKy>hkZ)bw?79|h>>{bH+^}je#YfLmbN_L{} zxX1_kV@KdQ9b%fXlREiKFu7tx_(HkBwRhXj`+8A>?0wxi@%}-Eo`Ty+o)Eq99>_N= zcmm!l$glE}{9VV8-Y|Z(`FTBq*Xp3{IcGVOF;3}dn<|{)w9&lBejyle46*Ds1jx;) zF9MY`;33tTgg;}F!=0U-!=1kypIW>guh(=|{w~{AM6#VyOSk1_9^VX?{qZ$p>U>FX zsW{tJN}_*%tMg5J9rKhdw$7FlOY)7@pZYbWD{Gh8B-6NI)|#c6e3x1k)VTzjL_RUc zXbohzWj(%E&eE)Z+F$IaD)L6>U%(W;1UFELAsV1fo|f8#iNYbD23+ntaQ!)9p1o zl7_xY$=e9SJY!)S{T#sVE&~}fozs-A95Vt$af3-X<`YaPvb?LzvFe@QFu}J5!n;|3scJ47tlH z+;YvqFoo~ExyCex@%U8MBurd)MJ-%Y%wLRaS&A0M2b>E;+jp>SVPrMS2V=y^<#@S( zQOzEoc}qM)X zCwr!iJz7XT(T8iB>q)SvUVO@L)xFU#V({k+!Hs20vzI>fZX%-V?p}_Q$&rE`0-O9x zquieJMxqH3?cI~#IP!v}?rR6?RCwjpK22b3K-v!he$&_Hv~nb*RHbui>B#?r@sx#cG)!9@TH~7rM4Lrj8bYT+; z8y6j)@%?b`#If7{6#uuA4-ebFbRElJIkMBr6U&f8*z6>S6a=;H zn_A^nQ`n-vxTM_aPuQ`908bMYCG8eii=!2Vl6oDlakR`%MDNWZn+Px*Le%V4o`EQ9 zJG}%i4i~u_-P!FK>aU-fU9;SE&o$F9%=E%&=RVgD2B22vrF>l$H4>JCkVi;b?ahV< z=AE=Kn$r31az|^HdeP;E;=@U*quN1YjV^K?&HU$ck{ETL{raKDkY)OyRU7g{E1mxY zCUnb%C&yPS&JT>0dLlfyk36nyT}1{0`u8Gveq0748ER7{K&o6W2;VO{OoK_CCPX^= znFeVgwaZQSD_xe`HsjSxq@8wOE=zN(>458sB`Hx{?Y}KcG%<`E9Nk`{PBnohNf@OF zhH()cB!+J_k9;m|$lGaO@IHs9@uu(J=vMYh;Pd<}^Bq~Fp**den%%oN^@+EoH!F(y zSGxCSGgSPVi;CRphrQ4GC_{@Qi$uC{_gW<}iN`Cg_YvRXR$kL++nCYCb7OGIw?jD{ zgZ}j|1WAF7kj|{d(p}{**wumh!jyv&Tw!kL1ts?*O3HS?Ke@to#TaX$@d^It5fA|J zu~q_L0O?REYD^$h%H@1QRur#&L{Wdz{U;|`*Im { + WeChat.changeShare(); + }, 100); + setTimeout(() => { + WeChat.changeShare(); + }, 200); + } + }); + } + } + + static changeShare(){ + wx.ready(() => { + wx.updateAppMessageShareData({ + title: '逻辑性认知测评', // 分享标题 + desc: '你的认知灵活性和选择注意有问题吗', // 分享描述 + link: shareConfig.shareLine, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 + imgUrl: 'https://static.sparkus.cn/public/shennong.jpg', // 分享图标 + success: function () { + // 设置成功 + console.log("分享好友成功回调"); + } + }); + setTimeout(() => { + wx.updateTimelineShareData({ + title: '逻辑性认知测评', // 分享标题 + link: shareConfig.shareLine, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致 + imgUrl: 'https://static.sparkus.cn/public/shennong.jpg', // 分享图标 + success: function () { + // 设置成功 + console.log("分享朋友圈成功回调"); + } + }) + }, 500); + + }); + } + + static getSignature(url: string): Promise { + return new Promise((resolve) => { + WeChat.getShareInfo((encodeURIComponent(url)),WeChat.getResult); + }); + } + static async getShareInfo(shareUrl: string, callback:Function): Promise { + const time = Math.floor((new Date().getTime()) / 1000) + const url = cc.fx.HttpUtil.apiSign(`/api/share/cfg?gameId=${shareConfig.gameId}&time=${time}&url=${shareUrl}`,{}) + return cc.fx.HttpUtil.get(url,callback,0); + } + + + static containsNanana(str) { + return /test/i.test(str); + } + + static removeQueryParams(url) { + return url.replace(/\?.*$/, ''); + } + +} diff --git a/assets/Script/module/Share/share.ts.meta b/assets/Script/module/Share/share.ts.meta new file mode 100644 index 0000000..5137d2b --- /dev/null +++ b/assets/Script/module/Share/share.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "7290c680-dfdc-4c59-9736-a614cc2a8bcf", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Storage.meta b/assets/Script/module/Storage.meta new file mode 100644 index 0000000..8f85b4b --- /dev/null +++ b/assets/Script/module/Storage.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "2af8f2ef-b8a0-43ad-a144-ef4a887f2fa9", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Storage/Storage.ts b/assets/Script/module/Storage/Storage.ts new file mode 100644 index 0000000..ea5d843 --- /dev/null +++ b/assets/Script/module/Storage/Storage.ts @@ -0,0 +1,27 @@ +//缓存浏览器数据 +var StorageMessage = { + getStorage : function(key){ + var result = null; + if(cc.sys.localStorage.getItem(key)){ + var result = cc.sys.localStorage.getItem(key); + } + + if(result){ + result = JSON.parse(result); + } + return result; + }, + setStorage : function(key,value){ + //主动拉起分享接口 + var temp = JSON.stringify(value); + cc.sys.localStorage.setItem(key, temp) + }, + removeStorage : function(key){ + //主动删除消息接口 + if(cc.sys.localStorage.getItem(key)){ + cc.sys.localStorage.removeItem(key) + } + }, +}; + +export { StorageMessage }; \ No newline at end of file diff --git a/assets/Script/module/Storage/Storage.ts.meta b/assets/Script/module/Storage/Storage.ts.meta new file mode 100644 index 0000000..fcef259 --- /dev/null +++ b/assets/Script/module/Storage/Storage.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "10029dfc-5454-4977-bd11-8809e8f48cac", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Tool.meta b/assets/Script/module/Tool.meta new file mode 100644 index 0000000..10f9f32 --- /dev/null +++ b/assets/Script/module/Tool.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "2a81f82d-8d16-44af-b947-44eea4dde54f", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Script/module/Tool/GameTool.ts b/assets/Script/module/Tool/GameTool.ts new file mode 100644 index 0000000..0262cea --- /dev/null +++ b/assets/Script/module/Tool/GameTool.ts @@ -0,0 +1,370 @@ + +//最大工具类 各种公共方法,以及处理上传,获取后端接口数据 +var GameTool = { + _startTime: 0, + _endTime: 0, + _totalTime: 0, + //获取userId + Authentication(){ + let name = "user_" + cc.fx.GameConfig.GM_INFO.gameId; + var data = JSON.parse(localStorage.getItem(name)); + if(data == "undifend" || data==null || data == ""){ + let url = "https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback="+ + encodeURIComponent(location.href); + console.log("链接没ID准备跳转",url); + window.location.href = url; + + } + else{ + if(!this.isNumber(data.userId)){ + let url = "https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback="+ + encodeURIComponent(location.href); + console.log("链接不合法",url); + window.location.href = url; + } + else{ + cc.fx.StorageMessage.setStorage(name,data); + cc.fx.GameConfig.GM_INFO.userId = parseInt(data.userId); + } + } + }, + + isNumber(value) { + var result = false; + result = typeof value === 'number'; + if(result) if(value < 200000) result = false; + return result; + }, + + containsTrain(str) { + return /from=train/i.test(str); + }, + + + //埋点上传 + setGameData(){ + //GAME_DATA 初始化 每次清零 + cc.fx.GameConfig.GAME_DATA = []; + cc.fx.GameConfig.GAME_DATA.push(cc.fx.GameConfig.CLICK_DATA); + cc.fx.GameConfig.CLICK_init(); + let data = cc.fx.GameConfig.GAME_DATA; + let matchId = this.getMatchId(); + let postData = { + "gameId":cc.fx.GameConfig.GM_INFO.gameId, + "userId":cc.fx.GameConfig.GM_INFO.userId, + "matchId":matchId, + "data": data + }; + + console.log("上传数据:",data); + cc.fx.HttpUtil.uploadUserLogData(postData,function(){}) + }, + //上传排行榜 type为1 + setRank(data){ + //GAME_DATA 初始化 每次清零 + let postData = { + "gameId":cc.fx.GameConfig.GM_INFO.gameId, + "userId":cc.fx.GameConfig.GM_INFO.userId, + "type":1, + "score": data.score, + "accuracy": data.date, + "success": cc.fx.GameConfig.GM_INFO.success + }; + cc.fx.HttpUtil.rankData(1,function(){},postData); + }, + //获取排行榜 type为2 + getRank(data,callback){ + let rankLength = data.length; + let postData = { + "gameId":cc.fx.GameConfig.GM_INFO.gameId, + "userId":cc.fx.GameConfig.GM_INFO.userId, + "page":1, + "pageSize":rankLength + }; + //回调进getRankData + cc.fx.HttpUtil.rankData(2,data =>{callback(data)},postData); + + }, + //获取matchId 用于上传每次点击数据里面记录id方便查询 + getMatchId (){ + let matchId = cc.sys.localStorage.getItem("matchId"); + let tempId = matchId; + if(matchId == "undifend" || matchId==null){ + matchId = this.setMatchId(); + } + else{ + if(this.containsNanana(matchId) == true){ + matchId = this.setMatchId(); + } + else{ + let char = parseInt(tempId.substring(10,tempId.length)); + if(cc.fx.GameConfig.GM_INFO.level == 1){ + char += 1; + matchId = tempId.slice(0, 10) + char + ""; + if(this.containsNanana(matchId)) matchId = this.setMatchId(); + cc.fx.GameConfig.GM_INFO.matchId = matchId; + cc.sys.localStorage.setItem("matchId",matchId); + } + } + } + + if(this.containsNanana(matchId) == true){ + matchId = this.setMatchId(); + } + return matchId; + }, + //检测matchId 如果有缓存以前的nanana数据清除 + containsNanana(str) { + return /na/i.test(str); + }, + //重新设置MatchId + setMatchId (){ + // 定义包含可用字符的字符集 + const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; + // 创建一个数组以保存随机字符 + const uuidArray = []; + // 循环10次 生成10位的UUID + for (let i = 0; i < 10; i++) { + // 生成随机索引,范围是字符集的长度 + const randomIndex = Math.floor(Math.random() * characters.length); + // 从字符集中获取随机字符 + const randomChar = characters.charAt(randomIndex); + // 将字符添加到数组中 + uuidArray.push(randomChar); + } + let data = uuidArray.join('') + 1 + ""; + cc.sys.localStorage.setItem("matchNumber",1); + cc.sys.localStorage.setItem("matchId",data); + cc.fx.GameConfig.GM_INFO.matchId = data; + return data; + }, + //截取名字 + subName(name,length){ + if(name.length > length){ + name = name.substring(0,length) + "..." + } + return name; + }, + //设置头像 + setPic(node,pic){ + node.active = false; + let url = pic; + setTimeout(() => { + fetch(url) + .then(response => { + return response.headers.get('Content-Length'); + }) + .then(errNo => { + if(errNo == "5093"){ + node.active = true; + } + }) + .catch(error => { + // console.error('Error fetching X-Info:', error); + }); + }, 100); + cc.assetManager.loadRemote(url, {ext:'.png'},(err, texture:cc.Texture2D) => { + if(texture){ + node.active = true; + node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); + } + else{ + console.log(err,texture) + } + }) + }, + //第一个参数把目标带进来处理,第二个参数为名字长度,不同场景不同需求 + //名字4短,小排行,名字6长,大排行 + getRankData(data,target,nameLength){ + target.listData = data.data.list; + target.selfData = data.data.info; + let rankData = []; + let self = false; + cc.fx.GameTool.setPic(target.selfNode.getChildByName("pic").getChildByName("icon"),target.selfData.pic); + for(let i=0;i<=target.listData.length-1;i++){ + rankData.push({rank:(i+1), name:target.listData[i].nickName, total:target.listData[i].score,time:null, pic:target.listData[i].pic}); + if(cc.fx.GameConfig.GM_INFO.userId == target.listData[i].userId){ + self = true; + target.rankNumber = i; + target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string =(i+1) + ""; + } + if(i == (target.listData.length-1) && self == false){ + target.rankNumber = i; + target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string = "99+"; + } + } + cc.fx.GameTool.subName(target.selfData.nickName,nameLength); + target.selfNode.getChildByName("nameLab").getComponent(cc.Label).string = target.selfData.nickName; + target.selfNode.getChildByName("totalLab").getComponent(cc.Label).string = target.selfData.score; + let timeTemp = cc.fx.GameTool.getTimeShenNong(target.selfData.totleTimes); + // target.selfNode.getChildByName("timeLab").getComponent(cc.Label).string = timeTemp + ""; + switch(target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string){ + case "1": + target.selfNode.getChildByName("rank").getChildByName("one").active = true; + break; + case "2": + target.selfNode.getChildByName("rank").getChildByName("two").active = true; + break; + case "3": + target.selfNode.getChildByName("rank").getChildByName("three").active = true; + break; + } + // 大排行 + if(nameLength == 6){ + target.rankList.setData(rankData); + target.selfNode.opacity = 255; + if(target.selfData.totalSunCount == 0) target.selfNode.opacity = 0; + } + }, + + getSeedRandom: function (min, max) {//包含min 不包含max + // console.log("随机数:",cc.fx.GameConfig.GM_INFO.currSeed); + max = max || 1; + min = min || 0; + cc.fx.GameConfig.GM_INFO.currSeed = (cc.fx.GameConfig.GM_INFO.currSeed * 9301 + 49297) % 233280; + let rnd = cc.fx.GameConfig.GM_INFO.currSeed / 233280.0; + let tmp = min + rnd * (max - min); + return parseInt(tmp); + }, + //获取关卡配置的那个关卡数 + getCustom(type){ + let custom = cc.fx.StorageMessage.getStorage(cc.fx.storageType.storageTypeCustom); + if(custom == "undifend" || custom==null || custom == ""){ + this.setCustom(); + } + else{ + cc.fx.GameConfig.GM_INFO_SET("custom",custom[0]); + if(custom[0] != 0 || type == true){ + custom.shift(); + if(custom.length == 0){ + this.setCustom(); + } + else cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,custom); + } + } + }, + //本地没有存储到配置,或者配置用完,重新创建配置 + setCustom(){ + let arrayLength = cc.fx.GameConfig.LEVEL_INFO.length; + let arrayList = []; + for(let i=1; i Math.random() - 0.5); + arrayList.unshift(0) + cc.fx.GameConfig.GM_INFO_SET("custom",arrayList[0]); + cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,arrayList); + }, + + + getSetScreenResolutionFlag: function () { + let size = cc.winSize; + let width = size.width; + let height = size.height; + if ((height / width) > (16.2 / 9)) return false; + return true; + }, + //判断全面屏适配 + setFit: function (canvas) { + let flag = cc.fx.GameTool.getSetScreenResolutionFlag(); + if (flag) { + // console.log("不是全面屏"); + } else { + // console.log("是全面屏"); + } + return flag; + }, + //获取游戏信息 + getGameInfo: function(node){ + var jg = false; + return jg; + }, + //设置游戏信息 + setGameInfo: function(pd){ + + }, + + //打乱数组 + shuffleArray(arr) { + return arr.sort(() => Math.random() - 0.5); + }, + + //打字机效果 + typingAni(label,text,cb,target){ + var self = target; + var html = ''; + var arr = text.split(''); + var len = arr.length; + var step = 0; + self.func = ()=>{ + html += arr[step]; + label.string = html; + if (++step == len) { + self.unschedule(self.func); + cb && cb(); + } + } + self.schedule(self.func,0.1, cc.macro.REPEAT_FOREVER, 0) + }, + + //输入秒,返回需要展示时间格式 + getTimeMargin:(second) => { + let total = 0; + total = second; + let hour = 0; + hour = parseInt((total / 3600) + "");//计算整数小时数 + let afterHour = total - hour * 60 * 60;//取得算出小时数后剩余的秒数 + let min = parseInt((afterHour / 60)+"");//计算整数分 + let m = "" + min; + if(min < 10) m = "0"+min; + let afterMin = total - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数 + let miao = afterMin + ""; + if(afterMin < 10) miao = "0" + afterMin; + return m + ':' + miao + }, + + //输入秒,返回需要展示时间格式 + getTimeShenNong:(second) => { + second = parseInt(second/1000+""); + let total = 0; + total = second; + let min = 0; + if(total > 60){ + min = parseInt((total / 60)+"");//计算整数分 + } + let m = min + "'"; + + let afterMin = total - min * 60;//取得算出分后剩余的秒数 + let miao = afterMin + "''"; + return m + miao + }, + + //输入秒,返回需要展示时间格式 + getTimeLondon:(second) => { + let total = 0; + total = second; + let min = 0; + if(total >= 60){ + min = parseInt((total / 60)+"");//计算整数分 + } + let m = min + " 分"; + + let afterMin = total - min * 60;//取得算出分后剩余的秒数 + let miao = afterMin + " 秒"; + return m + " " + miao + }, + + //获取时间戳 + getTime(){ + var timestamp = (new Date().getTime()) + return timestamp; + }, + pushLister:function () { + + }, + removeAllLister:function () { + + }, + +}; +export { GameTool }; \ No newline at end of file diff --git a/assets/Script/module/Tool/GameTool.ts.meta b/assets/Script/module/Tool/GameTool.ts.meta new file mode 100644 index 0000000..1ffcdae --- /dev/null +++ b/assets/Script/module/Tool/GameTool.ts.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "43bfc27a-ff6e-45b3-87c7-504d0f781397", + "importer": "typescript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Shader.meta b/assets/Shader.meta new file mode 100644 index 0000000..7181fff --- /dev/null +++ b/assets/Shader.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "afa9e39a-94ca-477f-8a2a-25082d9092c3", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Texture.meta b/assets/Texture.meta new file mode 100644 index 0000000..b5b2335 --- /dev/null +++ b/assets/Texture.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "7b81d4e8-ec84-4716-968d-500ac1d78a54", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Texture/HelloWorld.png b/assets/Texture/HelloWorld.png new file mode 100644 index 0000000000000000000000000000000000000000..21d4326855d2b03c033a9b774d2f4f133a23833c GIT binary patch literal 37864 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 literal 0 HcmV?d00001 diff --git a/assets/Texture/HelloWorld.png.meta b/assets/Texture/HelloWorld.png.meta new file mode 100644 index 0000000..95162df --- /dev/null +++ b/assets/Texture/HelloWorld.png.meta @@ -0,0 +1,38 @@ +{ + "ver": "2.3.7", + "uuid": "6aa0aa6a-ebee-4155-a088-a687a6aadec4", + "importer": "texture", + "type": "sprite", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 195, + "height": 270, + "platformSettings": {}, + "subMetas": { + "HelloWorld": { + "ver": "1.0.6", + "uuid": "31bc895a-c003-4566-a9f3-2e54ae1c17dc", + "importer": "sprite-frame", + "rawTextureUuid": "6aa0aa6a-ebee-4155-a088-a687a6aadec4", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 195, + "height": 270, + "rawWidth": 195, + "rawHeight": 270, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/Texture/singleColor.png b/assets/Texture/singleColor.png new file mode 100644 index 0000000000000000000000000000000000000000..fa6376e6316ae9bd38595b550b5fdf78a6fa6d6b GIT binary patch literal 82 zcmeAS@N?(olHy`uVBq!ia0vp^Od!n23?w}&=BEQG<^Z1%*Z=?jFFzuE0?6g^ba4#f bxSkAB$il#=a7i~GD9YgJ>gTe~DWM4fnP3tm literal 0 HcmV?d00001 diff --git a/assets/Texture/singleColor.png.meta b/assets/Texture/singleColor.png.meta new file mode 100644 index 0000000..d69211d --- /dev/null +++ b/assets/Texture/singleColor.png.meta @@ -0,0 +1,38 @@ +{ + "ver": "2.3.7", + "uuid": "a8027877-d8d6-4645-97a0-52d4a0123dba", + "importer": "texture", + "type": "sprite", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 2, + "height": 2, + "platformSettings": {}, + "subMetas": { + "singleColor": { + "ver": "1.0.6", + "uuid": "410fb916-8721-4663-bab8-34397391ace7", + "importer": "sprite-frame", + "rawTextureUuid": "a8027877-d8d6-4645-97a0-52d4a0123dba", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 2, + "height": 2, + "rawWidth": 2, + "rawHeight": 2, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/animation.meta b/assets/animation.meta new file mode 100644 index 0000000..c3f6f2b --- /dev/null +++ b/assets/animation.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "7c1d6faa-66b9-4423-aa04-8c38a15768cf", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/migration.meta b/assets/migration.meta new file mode 100644 index 0000000..6f25837 --- /dev/null +++ b/assets/migration.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "2e3d6223-9889-4122-8121-c6d837f5367e", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js b/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js new file mode 100644 index 0000000..0750b46 --- /dev/null +++ b/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js @@ -0,0 +1,17 @@ +/* + * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version. + * You do not need to manually add this script in any other project. + * If you don't use cc.Toggle in your project, you can delete this script directly. + * If your project is hosted in VCS such as git, submit this script together. + * + * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程, + * 你无需在任何其它项目中手动添加此脚本。 + * 如果你的项目中没用到 Toggle,可直接删除该脚本。 + * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 + */ + +if (cc.Toggle) { + // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code + // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 + cc.Toggle._triggerEventInScript_isChecked = true; +} diff --git a/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js.meta b/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js.meta new file mode 100644 index 0000000..1906e0d --- /dev/null +++ b/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js.meta @@ -0,0 +1,10 @@ +{ + "ver": "1.1.0", + "uuid": "7a231473-d1df-4b05-8620-6376c36252c1", + "importer": "javascript", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/music.meta b/assets/music.meta new file mode 100644 index 0000000..bf283d0 --- /dev/null +++ b/assets/music.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "6ebfe2d9-539a-4853-8b16-fca5c89cf2ce", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/prefab.meta b/assets/prefab.meta new file mode 100644 index 0000000..a92762d --- /dev/null +++ b/assets/prefab.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "bf3935ca-518a-42f4-84e4-ad96badfd1b4", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/prefab/Canvas.prefab b/assets/prefab/Canvas.prefab new file mode 100644 index 0000000..95a382a --- /dev/null +++ b/assets/prefab/Canvas.prefab @@ -0,0 +1,5181 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 8 + }, + { + "__id__": 64 + }, + { + "__id__": 75 + }, + { + "__id__": 98 + }, + { + "__id__": 101 + }, + { + "__id__": 136 + } + ], + "_active": true, + "_components": [ + { + "__id__": 142 + }, + { + "__id__": 143 + }, + { + "__id__": 144 + } + ], + "_prefab": { + "__id__": 145 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 252, + "b": 252, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 375, + 667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Main Camera", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 252.87547223450972, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_cullingMask": 4294967295, + "_clearFlags": 7, + "_backgroundColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": -1, + "_zoomRatio": 1, + "_targetTexture": null, + "_fov": 60, + "_orthoSize": 10, + "_nearClip": 1, + "_farClip": 4096, + "_ortho": true, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_renderStages": 1, + "_alignWithScreen": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "97fLKw9fpLKIc0dJLpbPlR", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "background", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 6 + } + ], + "_prefab": { + "__id__": 7 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1600 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 1, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "8dEBgqFXxELpmAzyYl1ZRR", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "ScrollView", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 9 + }, + { + "__id__": 16 + } + ], + "_active": true, + "_components": [ + { + "__id__": 61 + }, + { + "__id__": 14 + }, + { + "__id__": 62 + } + ], + "_prefab": { + "__id__": 63 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 174, + "g": 121, + "b": 121, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 680, + "height": 1400 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 1 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "scrollBar", + "_objFlags": 512, + "_parent": { + "__id__": 8 + }, + "_children": [ + { + "__id__": 10 + } + ], + "_active": false, + "_components": [ + { + "__id__": 13 + }, + { + "__id__": 58 + }, + { + "__id__": 59 + } + ], + "_prefab": { + "__id__": 60 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 12, + "height": 820 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 340, + -410, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "bar", + "_objFlags": 512, + "_parent": { + "__id__": 9 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 11 + } + ], + "_prefab": { + "__id__": 12 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 10, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "5c3bb932-6c3c-468f-88a9-c8c61d458641" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d7LA6B6L9KYrPYs9FOPGKR", + "sync": false + }, + { + "__type__": "cc.Scrollbar", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": true, + "_scrollView": { + "__id__": 14 + }, + "_touching": false, + "_opacity": 255, + "enableAutoHide": true, + "autoHideTime": 1, + "_N$handle": { + "__id__": 11 + }, + "_N$direction": 1, + "_id": "" + }, + { + "__type__": "cc.ScrollView", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "horizontal": false, + "vertical": true, + "inertia": true, + "brake": 0.75, + "elastic": true, + "bounceDuration": 0.23, + "scrollEvents": [], + "cancelInnerEvents": true, + "_N$content": { + "__id__": 15 + }, + "content": { + "__id__": 15 + }, + "_N$horizontalScrollBar": null, + "_N$verticalScrollBar": null, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "content", + "_objFlags": 512, + "_parent": { + "__id__": 16 + }, + "_children": [ + { + "__id__": 19 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 57 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 680, + "height": 600 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 1 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "view", + "_objFlags": 512, + "_parent": { + "__id__": 8 + }, + "_children": [ + { + "__id__": 15 + } + ], + "_active": true, + "_components": [ + { + "__id__": 17 + } + ], + "_prefab": { + "__id__": 18 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 680, + "height": 700 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 1 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 16 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 0, + "_segments": 64, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "01e0xqlUVFcY0MMajauQHo", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "RankListItem", + "_objFlags": 0, + "_parent": { + "__id__": 15 + }, + "_children": [ + { + "__id__": 20 + }, + { + "__id__": 23 + }, + { + "__id__": 32 + }, + { + "__id__": 43 + }, + { + "__id__": 46 + }, + { + "__id__": 49 + }, + { + "__id__": 52 + } + ], + "_active": true, + "_components": [ + { + "__id__": 55 + } + ], + "_prefab": { + "__id__": 56 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 650, + "height": 94 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -100, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 19 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 21 + } + ], + "_prefab": { + "__id__": 22 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 650, + "height": 94 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "6eyN1+nK5HT7svNqUsa2/+", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "pic", + "_objFlags": 0, + "_parent": { + "__id__": 19 + }, + "_children": [ + { + "__id__": 24 + }, + { + "__id__": 27 + } + ], + "_active": true, + "_components": [ + { + "__id__": 30 + } + ], + "_prefab": { + "__id__": 31 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -171.687, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "pic", + "_objFlags": 0, + "_parent": { + "__id__": 23 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 25 + } + ], + "_prefab": { + "__id__": 26 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 24 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "08Vcf5jRBOhLOtnEzMUku6", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 23 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 28 + } + ], + "_prefab": { + "__id__": 29 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 64, + "height": 64 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 27 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "f0DfDJ4PNDbb7lvykwzyBm", + "sync": false + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 23 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 1, + "_segments": 60, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "38W68aamJOhbnBDiSboSCF", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "rank", + "_objFlags": 0, + "_parent": { + "__id__": 19 + }, + "_children": [ + { + "__id__": 33 + }, + { + "__id__": 36 + }, + { + "__id__": 39 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 42 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 36 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -261.233, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "one", + "_objFlags": 0, + "_parent": { + "__id__": 32 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 34 + } + ], + "_prefab": { + "__id__": 35 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 33 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "07jJ4rjvBM3K8UmWuJPTSW", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "two", + "_objFlags": 0, + "_parent": { + "__id__": 32 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 37 + } + ], + "_prefab": { + "__id__": 38 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 36 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "cf00JqB1FL4J82EdUA2X13", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "three", + "_objFlags": 0, + "_parent": { + "__id__": 32 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 40 + } + ], + "_prefab": { + "__id__": 41 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 39 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "1beDtXl+VD86kzCArCfEPs", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "d03AAa5MpCZY7eWAmnGlia", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "rankLab", + "_objFlags": 0, + "_parent": { + "__id__": 19 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 44 + } + ], + "_prefab": { + "__id__": 45 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 16.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -259.131, + -2.054, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 43 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "5", + "_N$string": "5", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "de4HHWkIhExrJq1+nHHMA6", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "totalLab", + "_objFlags": 0, + "_parent": { + "__id__": 19 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 47 + } + ], + "_prefab": { + "__id__": 48 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 16.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 224.356, + -2.205, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 46 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "4", + "_N$string": "4", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 2, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "05c46heZhJV4sYMqYyxlB5", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "nameLab", + "_objFlags": 0, + "_parent": { + "__id__": 19 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 50 + } + ], + "_prefab": { + "__id__": 51 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 240, + "height": 27.72 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -99.704, + -2.205, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 49 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "测试", + "_N$string": "测试", + "_fontSize": 25, + "_lineHeight": 25, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 0, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 1, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "2an+mxcU5ApJz+ZlYlaw5G", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "label", + "_objFlags": 0, + "_parent": { + "__id__": 19 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 53 + } + ], + "_prefab": { + "__id__": 54 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 28, + "height": 35.28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 246.176, + -2.205, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 52 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "个", + "_N$string": "个", + "_fontSize": 28, + "_lineHeight": 28, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "78MlwwIH1CYrPsut4N5MBU", + "sync": false + }, + { + "__type__": "ca0f9k0oBVDbpQC+OMNTF3m", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 19 + }, + "_enabled": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "e4hxD496RFvpdq8xavWmsV", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "b21uNyrqhLbqirpS1MD+7t", + "sync": false + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 37, + "_left": 350.07654921020657, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 237, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "5fe5dcaa-b513-4dc5-a166-573627b3a159" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7by3ovAnJLYoQqKmlhCACY", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": false, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "9bbda31e-ad49-43c9-aaf2-f7d9896bac69" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "d5421HgLShFKIjj5f18m1mi", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "itemRender": null, + "type": 2, + "startAxis": 2, + "spaceX": 10, + "spaceY": 10, + "padding_top": 10, + "padding_buttom": 10, + "padding_left": 10, + "_padding": 0, + "padding_right": 10, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "bdWGhni0BLgaAOrQnsfTP4", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Node", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 65 + }, + { + "__id__": 68 + }, + { + "__id__": 71 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 74 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 64 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 66 + } + ], + "_prefab": { + "__id__": 67 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 54, + "height": 34.02 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -258.909, + 177.468, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 65 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "排名", + "_N$string": "排名", + "_fontSize": 27, + "_lineHeight": 27, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7bzdCzsURJc4G7MwOL0Blj", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 64 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 69 + } + ], + "_prefab": { + "__id__": 70 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 108, + "height": 34.02 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -48.622, + 177.468, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 68 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "用户昵称", + "_N$string": "用户昵称", + "_fontSize": 27, + "_lineHeight": 27, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "517a9VdPBNUK5P35X44CpK", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 64 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 72 + } + ], + "_prefab": { + "__id__": 73 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 108, + "height": 34.02 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 223.658, + 177.468, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 71 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "驱逐太阳", + "_N$string": "驱逐太阳", + "_fontSize": 27, + "_lineHeight": 27, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "12KoCg1NRLpJU9aRF1iPkq", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "9963O/IP5CCLrawiVnAqdg", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "player", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 76 + }, + { + "__id__": 87 + } + ], + "_active": true, + "_components": [ + { + "__id__": 96 + } + ], + "_prefab": { + "__id__": 97 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 98, + "height": 106 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -254, + 377, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "rank", + "_objFlags": 0, + "_parent": { + "__id__": 75 + }, + "_children": [ + { + "__id__": 77 + }, + { + "__id__": 80 + }, + { + "__id__": 83 + } + ], + "_active": false, + "_components": [], + "_prefab": { + "__id__": 86 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 78 + } + ], + "_prefab": { + "__id__": 79 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 72, + "height": 30.24 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -42.835, + 60.883, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 77 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "超过了", + "_N$string": "超过了", + "_fontSize": 24, + "_lineHeight": 24, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "b0QUZ3hixHY4BCC7p7EwaX", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 81 + } + ], + "_prefab": { + "__id__": 82 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 48, + "height": 30.24 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 74.991, + 60.883, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 80 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "的人", + "_N$string": "的人", + "_fontSize": 24, + "_lineHeight": 24, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d3ySguqntO5bgnP95er4PW", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "number", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 84 + } + ], + "_prefab": { + "__id__": 85 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 51, + "b": 51, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 58.04, + "height": 36.54 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 21.936, + 61.459, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 83 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "30%", + "_N$string": "30%", + "_fontSize": 29, + "_lineHeight": 29, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d6vzzOaCBH2JMQzL1q75Qk", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "01Wu1da3hD9qLoiu2u15Dh", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "mask", + "_objFlags": 0, + "_parent": { + "__id__": 75 + }, + "_children": [ + { + "__id__": 88 + }, + { + "__id__": 91 + } + ], + "_active": true, + "_components": [ + { + "__id__": 94 + } + ], + "_prefab": { + "__id__": 95 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 65, + "height": 65 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -0.079, + 4.153, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "phone", + "_objFlags": 0, + "_parent": { + "__id__": 87 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 89 + } + ], + "_prefab": { + "__id__": 90 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 65, + "height": 65 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 88 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "a9FdZ8QGNM77omYBmm7jeP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 87 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 92 + } + ], + "_prefab": { + "__id__": 93 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 91 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "082qUxbaNDrIu5wftUXuxE", + "sync": false + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 87 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 1, + "_segments": 64, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "15yWGxXfFKHYDj+6AKZ+hO", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 75 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "777yycF4RPu7K18m/uyO1m", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 99 + } + ], + "_prefab": { + "__id__": 100 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 118 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -609, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 98 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "adJ7tHdodDiYvg71t3toeY", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Self", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 102 + }, + { + "__id__": 111 + }, + { + "__id__": 114 + }, + { + "__id__": 125 + }, + { + "__id__": 128 + }, + { + "__id__": 131 + } + ], + "_active": true, + "_components": [ + { + "__id__": 134 + } + ], + "_prefab": { + "__id__": 135 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "pic", + "_objFlags": 0, + "_parent": { + "__id__": 101 + }, + "_children": [ + { + "__id__": 103 + }, + { + "__id__": 106 + } + ], + "_active": true, + "_components": [ + { + "__id__": 109 + } + ], + "_prefab": { + "__id__": 110 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -171.687, + 62, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "pic", + "_objFlags": 0, + "_parent": { + "__id__": 102 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 104 + } + ], + "_prefab": { + "__id__": 105 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 103 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "f513pLQ/9KMbKpOTC4nuyz", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 102 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 107 + } + ], + "_prefab": { + "__id__": 108 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 106 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "c8vhbkrhtGw72GydJ4enTg", + "sync": false + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 102 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 1, + "_segments": 60, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "47dNJgs3hCIZESImEUA8wi", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "rankLab", + "_objFlags": 0, + "_parent": { + "__id__": 101 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 112 + } + ], + "_prefab": { + "__id__": 113 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 249, + "b": 232, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 13.9, + "height": 31.5 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -259.131, + 59.946, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 111 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "5", + "_N$string": "5", + "_fontSize": 25, + "_lineHeight": 25, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "25WXxoGV5I/KgHBE8D1rsK", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "rank", + "_objFlags": 0, + "_parent": { + "__id__": 101 + }, + "_children": [ + { + "__id__": 115 + }, + { + "__id__": 118 + }, + { + "__id__": 121 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 124 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 36 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -261.233, + 62, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "one", + "_objFlags": 0, + "_parent": { + "__id__": 114 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 116 + } + ], + "_prefab": { + "__id__": 117 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 115 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "09Kg3hfzBBu6HptPpAFSW9", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "two", + "_objFlags": 0, + "_parent": { + "__id__": 114 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 119 + } + ], + "_prefab": { + "__id__": 120 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 118 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "0dKJ2TWjFCOJ/iqhRFSLjk", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "three", + "_objFlags": 0, + "_parent": { + "__id__": 114 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 122 + } + ], + "_prefab": { + "__id__": 123 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 121 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "1aJ6eRDI5HH7V7ePpX8123", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "1dS3urBJ1F55mw2t/Q3F7w", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "totalLab", + "_objFlags": 0, + "_parent": { + "__id__": 101 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 126 + } + ], + "_prefab": { + "__id__": 127 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 249, + "b": 232, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 16.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 224.356, + 59.795, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 125 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "4", + "_N$string": "4", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 2, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "31xa76G7lPaao3sNmpqjSI", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "nameLab", + "_objFlags": 0, + "_parent": { + "__id__": 101 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 129 + } + ], + "_prefab": { + "__id__": 130 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 249, + "b": 232, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 25, + "height": 31.5 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -99.704, + 59.795, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 128 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "我", + "_N$string": "我", + "_fontSize": 25, + "_lineHeight": 25, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 0, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "42BvS5Yl5GfY/GLeE5YQOh", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "label", + "_objFlags": 0, + "_parent": { + "__id__": 101 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 132 + } + ], + "_prefab": { + "__id__": 133 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 249, + "b": 232, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 28, + "height": 35.28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 246.176, + 59.795, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 131 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "个", + "_N$string": "个", + "_fontSize": 28, + "_lineHeight": 28, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7bFLMTAaRJZbZdCmLU7NlT", + "sync": false + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 101 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 4, + "_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": 0, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "02TaTwJ1tM844wDACOg8Uk", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "backBtn", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 137 + }, + { + "__id__": 138 + }, + { + "__id__": 139 + } + ], + "_prefab": { + "__id__": 141 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 25, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -320.09, + 618, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 136 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 136 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 9, + "_left": 42.410000000000025, + "_right": 0, + "_top": 29, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 136 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + { + "__id__": 140 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": null, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 1 + }, + "component": "", + "_componentId": "e74a999IDFOabyymZgXQIiy", + "handler": "backClick", + "customEventData": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "34+hXrhBBJUqEHHRNeqJSa", + "sync": false + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_designResolution": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_fitWidth": false, + "_fitHeight": true, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_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": 0, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "e74a999IDFOabyymZgXQIiy", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "Player": { + "__id__": 75 + }, + "selfNode": { + "__id__": 101 + }, + "phone": { + "__id__": 104 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/assets/prefab/Canvas.prefab.meta b/assets/prefab/Canvas.prefab.meta new file mode 100644 index 0000000..3aac29b --- /dev/null +++ b/assets/prefab/Canvas.prefab.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.3.2", + "uuid": "badb56f7-1c07-4fbb-87e6-5bfd805fe81b", + "importer": "prefab", + "optimizationPolicy": "AUTO", + "asyncLoadAssets": false, + "readonly": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/prefab/RankListItem.prefab b/assets/prefab/RankListItem.prefab new file mode 100644 index 0000000..eb15137 --- /dev/null +++ b/assets/prefab/RankListItem.prefab @@ -0,0 +1,1364 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "RankListItem", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 14 + }, + { + "__id__": 25 + }, + { + "__id__": 28 + }, + { + "__id__": 31 + }, + { + "__id__": 34 + } + ], + "_active": true, + "_components": [ + { + "__id__": 37 + } + ], + "_prefab": { + "__id__": 38 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 650, + "height": 94 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -100, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 650, + "height": 94 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "6eyN1+nK5HT7svNqUsa2/+", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "pic", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 6 + }, + { + "__id__": 9 + } + ], + "_active": true, + "_components": [ + { + "__id__": 12 + } + ], + "_prefab": { + "__id__": 13 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -171.687, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "pic", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + } + ], + "_prefab": { + "__id__": 8 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "08Vcf5jRBOhLOtnEzMUku6", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 10 + } + ], + "_prefab": { + "__id__": 11 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 64, + "height": 64 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "f0DfDJ4PNDbb7lvykwzyBm", + "sync": false + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 1, + "_segments": 60, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "38W68aamJOhbnBDiSboSCF", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "rank", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 15 + }, + { + "__id__": 18 + }, + { + "__id__": 21 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 24 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 36 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -261.233, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "one", + "_objFlags": 0, + "_parent": { + "__id__": 14 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 16 + } + ], + "_prefab": { + "__id__": 17 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 15 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "07jJ4rjvBM3K8UmWuJPTSW", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "two", + "_objFlags": 0, + "_parent": { + "__id__": 14 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 19 + } + ], + "_prefab": { + "__id__": 20 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 18 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "cf00JqB1FL4J82EdUA2X13", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "three", + "_objFlags": 0, + "_parent": { + "__id__": 14 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 22 + } + ], + "_prefab": { + "__id__": 23 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 21 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "1beDtXl+VD86kzCArCfEPs", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d03AAa5MpCZY7eWAmnGlia", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "rankLab", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 26 + } + ], + "_prefab": { + "__id__": 27 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 16.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -259.131, + -2.054, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 25 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "5", + "_N$string": "5", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "de4HHWkIhExrJq1+nHHMA6", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "totalLab", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 29 + } + ], + "_prefab": { + "__id__": 30 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 16.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 224.356, + -2.205, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 28 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "4", + "_N$string": "4", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 2, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "05c46heZhJV4sYMqYyxlB5", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "nameLab", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 32 + } + ], + "_prefab": { + "__id__": 33 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 240, + "height": 27.72 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -99.704, + -2.205, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 31 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "测试", + "_N$string": "测试", + "_fontSize": 25, + "_lineHeight": 25, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 0, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 1, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "2an+mxcU5ApJz+ZlYlaw5G", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "label", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 35 + } + ], + "_prefab": { + "__id__": 36 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 28, + "height": 35.28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 246.176, + -2.205, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 34 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "个", + "_N$string": "个", + "_fontSize": 28, + "_lineHeight": 28, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "78MlwwIH1CYrPsut4N5MBU", + "sync": false + }, + { + "__type__": "ca0f9k0oBVDbpQC+OMNTF3m", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/assets/prefab/RankListItem.prefab.meta b/assets/prefab/RankListItem.prefab.meta new file mode 100644 index 0000000..f433f20 --- /dev/null +++ b/assets/prefab/RankListItem.prefab.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.3.2", + "uuid": "a264c8df-80f6-474f-9fe5-28b7ae529d95", + "importer": "prefab", + "optimizationPolicy": "AUTO", + "asyncLoadAssets": false, + "readonly": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/prefab/kuang1.prefab b/assets/prefab/kuang1.prefab new file mode 100644 index 0000000..2219051 --- /dev/null +++ b/assets/prefab/kuang1.prefab @@ -0,0 +1,578 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "kuang1", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 8 + }, + { + "__id__": 11 + } + ], + "_active": true, + "_components": [ + { + "__id__": 14 + }, + { + "__id__": 15 + } + ], + "_prefab": { + "__id__": 16 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 114, + "height": 114 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "texture", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 114, + "height": 114 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "cb+RD2JWVCkJUw7HZjeVJw", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "lock", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 6 + } + ], + "_prefab": { + "__id__": 7 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 46, + "height": 74 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0.607, + 1.821, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "48f0add1-7741-4b9a-b25e-186ad457e4ac" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "b2FjX80FNLLphA9TbTenI5", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "yes", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 9 + } + ], + "_prefab": { + "__id__": 10 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 74, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "907b33f0-998c-44e2-b2a3-697e56dc3ebb" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "6aiWrN5ntPEZ1DTfyuRYrh", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "err", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 12 + } + ], + "_prefab": { + "__id__": 13 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 57, + "height": 49 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 11 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "4dd594fe-a599-468b-a82e-4a36f5133ec1" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "5fygkPzHdC16MoH5hPg3LA", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "d63eeqXqS5GV5T/inM6K0aA", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "UI": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/assets/prefab/kuang1.prefab.meta b/assets/prefab/kuang1.prefab.meta new file mode 100644 index 0000000..9acb104 --- /dev/null +++ b/assets/prefab/kuang1.prefab.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.3.2", + "uuid": "b48b18b9-75c5-4181-93d6-b21930056fdc", + "importer": "prefab", + "optimizationPolicy": "AUTO", + "asyncLoadAssets": false, + "readonly": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/prefab/kuang2.prefab b/assets/prefab/kuang2.prefab new file mode 100644 index 0000000..35cc22f --- /dev/null +++ b/assets/prefab/kuang2.prefab @@ -0,0 +1,578 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "kuang2", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 8 + }, + { + "__id__": 11 + } + ], + "_active": true, + "_components": [ + { + "__id__": 14 + }, + { + "__id__": 15 + } + ], + "_prefab": { + "__id__": 16 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 114, + "height": 114 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "texture", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "23WEB0XcVFr77K2a8TMpQf", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "lock", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 6 + } + ], + "_prefab": { + "__id__": 7 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 46, + "height": 74 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0.607, + 1.821, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "48f0add1-7741-4b9a-b25e-186ad457e4ac" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "6c4kkHqqBGk7Uzo0NLuWTe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "yes", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 9 + } + ], + "_prefab": { + "__id__": 10 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 74, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "907b33f0-998c-44e2-b2a3-697e56dc3ebb" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "8fLsGa13pEq5tEAv7CeQA9", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "err", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 12 + } + ], + "_prefab": { + "__id__": 13 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 57, + "height": 49 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 11 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "4dd594fe-a599-468b-a82e-4a36f5133ec1" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "81rn3gLHtJJZCY62CJzWlY", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "d63eeqXqS5GV5T/inM6K0aA", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "UI": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/assets/prefab/kuang2.prefab.meta b/assets/prefab/kuang2.prefab.meta new file mode 100644 index 0000000..e3f7451 --- /dev/null +++ b/assets/prefab/kuang2.prefab.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.3.2", + "uuid": "5e344685-dbe0-4509-8b66-27ddb72e2d23", + "importer": "prefab", + "optimizationPolicy": "AUTO", + "asyncLoadAssets": false, + "readonly": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/res.meta b/assets/res.meta new file mode 100644 index 0000000..993a616 --- /dev/null +++ b/assets/res.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "2880dc26-5b38-48bd-baba-daaec97499cb", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/resources.meta b/assets/resources.meta new file mode 100644 index 0000000..1e7dc88 --- /dev/null +++ b/assets/resources.meta @@ -0,0 +1,25 @@ +{ + "ver": "1.1.3", + "uuid": "52e78fe3-9095-42ad-8e4d-f9bb12dc69ce", + "importer": "folder", + "isBundle": true, + "bundleName": "resources", + "priority": 8, + "compressionType": { + "web-mobile": "default", + "wechatgame": "default" + }, + "optimizeHotUpdate": { + "web-mobile": false, + "wechatgame": false + }, + "inlineSpriteFrames": { + "web-mobile": false, + "wechatgame": false + }, + "isRemoteBundle": { + "web-mobile": false, + "wechatgame": true + }, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/resources/Json.meta b/assets/resources/Json.meta new file mode 100644 index 0000000..1beebf3 --- /dev/null +++ b/assets/resources/Json.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "066e91c2-fc55-407c-b061-9e4de4a9f224", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/resources/Json/CLICK_DATA.json b/assets/resources/Json/CLICK_DATA.json new file mode 100644 index 0000000..c04e75a --- /dev/null +++ b/assets/resources/Json/CLICK_DATA.json @@ -0,0 +1,18 @@ +{ + "data" : + { + "type": 1, + "success": false, + "round": 0, + "totalSunCount": 0, + "movedSunCount": 0, + "sunSpeed": 0, + "overlapSunCount": 0, + "colorList": [], + "duration": 0, + "difficultyLevel": 0, + "sunList": [], + "stepTimeList": [], + "remainder": 120 + } +} \ No newline at end of file diff --git a/assets/resources/Json/CLICK_DATA.json.meta b/assets/resources/Json/CLICK_DATA.json.meta new file mode 100644 index 0000000..e2e81fb --- /dev/null +++ b/assets/resources/Json/CLICK_DATA.json.meta @@ -0,0 +1,6 @@ +{ + "ver": "1.0.2", + "uuid": "e1d57e63-4f2f-467d-9c55-0a889d5533a8", + "importer": "json", + "subMetas": {} +} \ No newline at end of file diff --git a/assets/resources/Json/GM_INFO.json b/assets/resources/Json/GM_INFO.json new file mode 100644 index 0000000..a05048d --- /dev/null +++ b/assets/resources/Json/GM_INFO.json @@ -0,0 +1,14 @@ +{ + "data":{ + "mean_Time": 0, + "total": 0, + "currSeed": 203213, + "gameId": 100009, + "userId": 0, + "guide": true, + "url": "http://api.sparkus.cn", + "success": false, + "matchId": null, + "custom": 0 + } +} \ No newline at end of file diff --git a/assets/resources/Json/GM_INFO.json.meta b/assets/resources/Json/GM_INFO.json.meta new file mode 100644 index 0000000..4dc294f --- /dev/null +++ b/assets/resources/Json/GM_INFO.json.meta @@ -0,0 +1,6 @@ +{ + "ver": "1.0.2", + "uuid": "2d69a479-18ec-4787-b35f-e9a9b3247435", + "importer": "json", + "subMetas": {} +} \ No newline at end of file diff --git a/assets/resources/Json/LEVEL_INFO.json b/assets/resources/Json/LEVEL_INFO.json new file mode 100644 index 0000000..c4f68a1 --- /dev/null +++ b/assets/resources/Json/LEVEL_INFO.json @@ -0,0 +1,205 @@ +{ + "data" : [ + { + "number": 3, + "moveNumber": 0, + "moveSpeed": 0, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 0 + }, + { + "number": 4, + "moveNumber": 0, + "moveSpeed": 0, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 0 + }, + { + "number": 4, + "moveNumber": 0, + "moveSpeed": 0, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 1 + }, + { + "number": 5, + "moveNumber": 1, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 0 + }, + { + "number": 5, + "moveNumber": 0, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 1 + }, + { + "number": 6, + "moveNumber": 0, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 1 + }, + { + "number": 6, + "moveNumber": 3, + "moveSpeed": 4, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 0 + }, + { + "number": 7, + "moveNumber": 0, + "moveSpeed": 4, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 0 + }, + { + "number": 7, + "moveNumber": 3, + "moveSpeed": 4, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 0 + }, + { + "number": 7, + "moveNumber": 3, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 1 + }, + { + "number": 8, + "moveNumber": 3, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 0 + }, + { + "number": 8, + "moveNumber": 5, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 1 + }, + { + "number": 9, + "moveNumber": 3, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 0 + }, + { + "number": 9, + "moveNumber": 5, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 1 + }, + { + "number": 10, + "moveNumber": 5, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 1 + }, + { + "number": 3, + "moveNumber": 0, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 0 + }, + { + "number": 4, + "moveNumber": 0, + "moveSpeed": 0, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 0 + }, + { + "number": 4, + "moveNumber": 1, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 0 + }, + { + "number": 4, + "moveNumber": 0, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 1 + }, + { + "number": 4, + "moveNumber": 1, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 1 + }, + { + "number": 5, + "moveNumber": 1, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 0 + }, + { + "number": 5, + "moveNumber": 0, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 1 + }, + { + "number": 5, + "moveNumber": 1, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 1 + }, + { + "number": 5, + "moveNumber": 2, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 1 + }, + { + "number": 5, + "moveNumber": 3, + "moveSpeed": 6, + "maxDistance": 200, + "maxMove": 1200, + "repeat": 1 + } + + ] +} \ No newline at end of file diff --git a/assets/resources/Json/LEVEL_INFO.json.meta b/assets/resources/Json/LEVEL_INFO.json.meta new file mode 100644 index 0000000..5b9c72e --- /dev/null +++ b/assets/resources/Json/LEVEL_INFO.json.meta @@ -0,0 +1,6 @@ +{ + "ver": "1.0.2", + "uuid": "2cddbdcb-5dba-4b13-960c-9ebe6d17a7db", + "importer": "json", + "subMetas": {} +} \ No newline at end of file diff --git a/assets/resources/UI.meta b/assets/resources/UI.meta new file mode 100644 index 0000000..a19d59a --- /dev/null +++ b/assets/resources/UI.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "07f848f0-b267-4197-ad13-369b4960e8fd", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/resources/UI/publicUI.plist b/assets/resources/UI/publicUI.plist new file mode 100644 index 0000000..fc581fd --- /dev/null +++ b/assets/resources/UI/publicUI.plist @@ -0,0 +1,506 @@ + + + + + frames + + daan.png + + aliases + + spriteOffset + {0,1} + spriteSize + {46,74} + spriteSourceSize + {114,114} + textureRect + {{719,1285},{46,74}} + textureRotated + + + err.png + + aliases + + spriteOffset + {0,0} + spriteSize + {57,49} + spriteSourceSize + {57,49} + textureRect + {{715,1361},{57,49}} + textureRotated + + + gezi.png + + aliases + + spriteOffset + {0,0} + spriteSize + {682,682} + spriteSourceSize + {682,682} + textureRect + {{1,1},{682,682}} + textureRotated + + + kuang1.jpg + + aliases + + spriteOffset + {0,0} + spriteSize + {114,114} + spriteSourceSize + {114,114} + textureRect + {{605,887},{114,114}} + textureRotated + + + kuang2.jpg + + aliases + + spriteOffset + {0,0} + spriteSize + {114,114} + spriteSourceSize + {114,114} + textureRect + {{517,1303},{114,114}} + textureRotated + + + kuang3.jpg + + aliases + + spriteOffset + {0,0} + spriteSize + {132,132} + spriteSourceSize + {132,132} + textureRect + {{605,753},{132,132}} + textureRotated + + + progress.png + + aliases + + spriteOffset + {0,0} + spriteSize + {344,88} + spriteSourceSize + {344,88} + textureRect + {{515,685},{344,88}} + textureRotated + + + start.png + + aliases + + spriteOffset + {0,0} + spriteSize + {270,72} + spriteSourceSize + {270,72} + textureRect + {{515,1031},{270,72}} + textureRotated + + + texture1.png + + aliases + + spriteOffset + {0,1} + spriteSize + {64,86} + spriteSourceSize + {114,114} + textureRect + {{721,923},{64,86}} + textureRotated + + + texture10.png + + aliases + + spriteOffset + {0,0} + spriteSize + {86,62} + spriteSourceSize + {114,114} + textureRect + {{671,1197},{86,62}} + textureRotated + + + texture11.png + + aliases + + spriteOffset + {0,0} + spriteSize + {88,88} + spriteSourceSize + {114,114} + textureRect + {{589,1103},{88,88}} + textureRotated + + + texture12.png + + aliases + + spriteOffset + {0,0} + spriteSize + {44,52} + spriteSourceSize + {114,114} + textureRect + {{767,1281},{44,52}} + textureRotated + + + texture13.png + + aliases + + spriteOffset + {0,0} + spriteSize + {98,98} + spriteSourceSize + {114,114} + textureRect + {{605,1003},{98,98}} + textureRotated + + + texture14.png + + aliases + + spriteOffset + {0,1} + spriteSize + {90,26} + spriteSourceSize + {114,114} + textureRect + {{733,1097},{90,26}} + textureRotated + + + texture18.png + + aliases + + spriteOffset + {0,0} + spriteSize + {46,86} + spriteSourceSize + {114,114} + textureRect + {{751,989},{46,86}} + textureRotated + + + texture19.png + + aliases + + spriteOffset + {0,1} + spriteSize + {80,70} + spriteSourceSize + {114,114} + textureRect + {{739,841},{80,70}} + textureRotated + + + texture2.png + + aliases + + spriteOffset + {0,1} + spriteSize + {84,60} + spriteSourceSize + {114,114} + textureRect + {{633,1285},{84,60}} + textureRotated + + + texture20.png + + aliases + + spriteOffset + {0,0} + spriteSize + {90,32} + spriteSourceSize + {114,114} + textureRect + {{735,1189},{90,32}} + textureRotated + + + texture3.png + + aliases + + spriteOffset + {0,0} + spriteSize + {72,86} + spriteSourceSize + {114,114} + textureRect + {{739,753},{72,86}} + textureRotated + + + texture4.png + + aliases + + spriteOffset + {-1,0} + spriteSize + {52,92} + spriteSourceSize + {114,114} + textureRect + {{679,1103},{52,92}} + textureRotated + + + texture5.png + + aliases + + spriteOffset + {-1,1} + spriteSize + {36,88} + spriteSourceSize + {114,114} + textureRect + {{761,1077},{36,88}} + textureRotated + + + texture6.png + + aliases + + spriteOffset + {0,0} + spriteSize + {90,80} + spriteSourceSize + {114,114} + textureRect + {{589,1193},{90,80}} + textureRotated + + + texture7.png + + aliases + + spriteOffset + {0,1} + spriteSize + {92,44} + spriteSourceSize + {114,114} + textureRect + {{705,1003},{92,44}} + textureRotated + + + texture8.png + + aliases + + spriteOffset + {0,0} + spriteSize + {72,84} + spriteSourceSize + {114,114} + textureRect + {{443,1347},{72,84}} + textureRotated + + + texture9.png + + aliases + + spriteOffset + {0,0} + spriteSize + {58,80} + spriteSourceSize + {114,114} + textureRect + {{633,1347},{58,80}} + textureRotated + + + time_icon.png + + aliases + + spriteOffset + {0,0} + spriteSize + {40,40} + spriteSourceSize + {40,40} + textureRect + {{769,1167},{40,40}} + textureRotated + + + tip.png + + aliases + + spriteOffset + {0,0} + spriteSize + {660,70} + spriteSourceSize + {660,70} + textureRect + {{443,685},{660,70}} + textureRotated + + + tipBg.png + + aliases + + spriteOffset + {0,0} + spriteSize + {728,440} + spriteSourceSize + {728,440} + textureRect + {{1,685},{728,440}} + textureRotated + + + top.png + + aliases + + spriteOffset + {0,0} + spriteSize + {750,127} + spriteSourceSize + {750,127} + textureRect + {{685,1},{750,127}} + textureRotated + + + xingxing01.png + + aliases + + spriteOffset + {0,0} + spriteSize + {30,30} + spriteSourceSize + {30,30} + textureRect + {{774,1335},{30,30}} + textureRotated + + + xingxing02.png + + aliases + + spriteOffset + {0,0} + spriteSize + {40,40} + spriteSourceSize + {40,40} + textureRect + {{769,1209},{40,40}} + textureRotated + + + yes.png + + aliases + + spriteOffset + {0,0} + spriteSize + {74,60} + spriteSourceSize + {74,60} + textureRect + {{605,685},{74,60}} + textureRotated + + + + metadata + + format + 3 + pixelFormat + RGBA8888 + premultiplyAlpha + + realTextureFileName + publicUI.png + size + {813,1432} + smartupdate + $TexturePacker:SmartUpdate:7b85d662ab58b0662809115178ad3ca0:f6ea1142336b736d5f607913cf61c88b:1c7d81f68058ada321959f2296017bb5$ + textureFileName + publicUI.png + + + diff --git a/assets/resources/UI/publicUI.plist.meta b/assets/resources/UI/publicUI.plist.meta new file mode 100644 index 0000000..a1d6b07 --- /dev/null +++ b/assets/resources/UI/publicUI.plist.meta @@ -0,0 +1,749 @@ +{ + "ver": "1.2.6", + "uuid": "e883b928-b637-44d9-af8d-b83e856a59f7", + "importer": "asset", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "size": { + "width": 813, + "height": 1432 + }, + "type": "Texture Packer", + "subMetas": { + "daan.png": { + "ver": "1.0.6", + "uuid": "48f0add1-7741-4b9a-b25e-186ad457e4ac", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 1, + "trimX": 719, + "trimY": 1285, + "width": 46, + "height": 74, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "err.png": { + "ver": "1.0.6", + "uuid": "4dd594fe-a599-468b-a82e-4a36f5133ec1", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 715, + "trimY": 1361, + "width": 57, + "height": 49, + "rawWidth": 57, + "rawHeight": 49, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "gezi.png": { + "ver": "1.0.6", + "uuid": "17af346d-cfbe-4ad2-b2d3-e469d3dcc1a8", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 1, + "trimY": 1, + "width": 682, + "height": 682, + "rawWidth": 682, + "rawHeight": 682, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "kuang1.jpg": { + "ver": "1.0.6", + "uuid": "fa0cfe73-8bf5-45e4-a2fd-e6edd6a92f69", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 605, + "trimY": 887, + "width": 114, + "height": 114, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "kuang2.jpg": { + "ver": "1.0.6", + "uuid": "2eb8b301-8d35-4fbd-9828-dd913d7ce29b", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 517, + "trimY": 1303, + "width": 114, + "height": 114, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "kuang3.jpg": { + "ver": "1.0.6", + "uuid": "dbd5f874-ad43-4e46-be45-1bf69f991c8b", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 605, + "trimY": 753, + "width": 132, + "height": 132, + "rawWidth": 132, + "rawHeight": 132, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "progress.png": { + "ver": "1.0.6", + "uuid": "da411ff5-9431-4eec-8943-b2e786a28415", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 515, + "trimY": 685, + "width": 344, + "height": 88, + "rawWidth": 344, + "rawHeight": 88, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "start.png": { + "ver": "1.0.6", + "uuid": "d95bdbfb-bf4f-4a2a-8063-86225e9583e9", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 515, + "trimY": 1031, + "width": 270, + "height": 72, + "rawWidth": 270, + "rawHeight": 72, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture1.png": { + "ver": "1.0.6", + "uuid": "ca79d87e-f6f3-4659-97fe-e43a65fec29c", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 1, + "trimX": 721, + "trimY": 923, + "width": 64, + "height": 86, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture10.png": { + "ver": "1.0.6", + "uuid": "4660cc1d-1e61-43fe-89e0-40e0323c1096", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 671, + "trimY": 1197, + "width": 86, + "height": 62, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture11.png": { + "ver": "1.0.6", + "uuid": "39ad0953-ab6b-4eb7-abaa-aaaf656e7582", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 589, + "trimY": 1103, + "width": 88, + "height": 88, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture12.png": { + "ver": "1.0.6", + "uuid": "018d5411-05b3-492b-821b-ba3edf7060f7", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 767, + "trimY": 1281, + "width": 44, + "height": 52, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture13.png": { + "ver": "1.0.6", + "uuid": "ceccf45d-0116-4337-8d8d-412fb1ad3c82", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 605, + "trimY": 1003, + "width": 98, + "height": 98, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture14.png": { + "ver": "1.0.6", + "uuid": "759e19f2-e8f6-4dcd-87af-a85388ae698e", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 1, + "trimX": 733, + "trimY": 1097, + "width": 90, + "height": 26, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture18.png": { + "ver": "1.0.6", + "uuid": "3ed7577b-2b8a-450f-8e76-2251304b2916", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 751, + "trimY": 989, + "width": 46, + "height": 86, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture19.png": { + "ver": "1.0.6", + "uuid": "43dea732-290b-4a7e-9d64-70a5f9812381", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 1, + "trimX": 739, + "trimY": 841, + "width": 80, + "height": 70, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture2.png": { + "ver": "1.0.6", + "uuid": "2b0b3da4-9df3-4131-9317-1ca35bbd4d64", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 1, + "trimX": 633, + "trimY": 1285, + "width": 84, + "height": 60, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture20.png": { + "ver": "1.0.6", + "uuid": "f3d1de85-86c8-49b8-a555-7fed576930c6", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 735, + "trimY": 1189, + "width": 90, + "height": 32, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture3.png": { + "ver": "1.0.6", + "uuid": "efd308fc-f5b3-4bb7-9f63-775758313496", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 739, + "trimY": 753, + "width": 72, + "height": 86, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture4.png": { + "ver": "1.0.6", + "uuid": "4218b31d-564a-49f9-b83a-2b4192387ed9", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": -1, + "offsetY": 0, + "trimX": 679, + "trimY": 1103, + "width": 52, + "height": 92, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture5.png": { + "ver": "1.0.6", + "uuid": "8521a571-ee5b-4fbf-9ad2-7b39af586606", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": -1, + "offsetY": 1, + "trimX": 761, + "trimY": 1077, + "width": 36, + "height": 88, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture6.png": { + "ver": "1.0.6", + "uuid": "75ce7d0b-eaf0-4929-90cf-d6b7c1bf8f6b", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 589, + "trimY": 1193, + "width": 90, + "height": 80, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture7.png": { + "ver": "1.0.6", + "uuid": "4648a734-e59a-4d14-a07b-ce9ca5d5c62b", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 1, + "trimX": 705, + "trimY": 1003, + "width": 92, + "height": 44, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture8.png": { + "ver": "1.0.6", + "uuid": "c88956df-63f6-4e7a-bf8b-54d5eeb0baa5", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 443, + "trimY": 1347, + "width": 72, + "height": 84, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "texture9.png": { + "ver": "1.0.6", + "uuid": "f3bd36fb-2048-4444-9c18-217ee62b977a", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 633, + "trimY": 1347, + "width": 58, + "height": 80, + "rawWidth": 114, + "rawHeight": 114, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "time_icon.png": { + "ver": "1.0.6", + "uuid": "5f924dc2-df92-448a-8b30-f4d0cbaae29c", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 769, + "trimY": 1167, + "width": 40, + "height": 40, + "rawWidth": 40, + "rawHeight": 40, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "tip.png": { + "ver": "1.0.6", + "uuid": "c05702e6-5198-4968-b28e-8c2e26a9ba5b", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 443, + "trimY": 685, + "width": 660, + "height": 70, + "rawWidth": 660, + "rawHeight": 70, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "tipBg.png": { + "ver": "1.0.6", + "uuid": "fcbb8992-3ccc-4495-a18b-7d436796a992", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 1, + "trimY": 685, + "width": 728, + "height": 440, + "rawWidth": 728, + "rawHeight": 440, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "top.png": { + "ver": "1.0.6", + "uuid": "4c7c1f0b-ebe7-4025-8148-ac61cb2a2d8f", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": true, + "offsetX": 0, + "offsetY": 0, + "trimX": 685, + "trimY": 1, + "width": 750, + "height": 127, + "rawWidth": 750, + "rawHeight": 127, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "xingxing01.png": { + "ver": "1.0.6", + "uuid": "8425f40b-c669-446a-ab0b-2daf892ef5c2", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 774, + "trimY": 1335, + "width": 30, + "height": 30, + "rawWidth": 30, + "rawHeight": 30, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "xingxing02.png": { + "ver": "1.0.6", + "uuid": "573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 769, + "trimY": 1209, + "width": 40, + "height": 40, + "rawWidth": 40, + "rawHeight": 40, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + }, + "yes.png": { + "ver": "1.0.6", + "uuid": "907b33f0-998c-44e2-b2a3-697e56dc3ebb", + "importer": "sprite-frame", + "rawTextureUuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 605, + "trimY": 685, + "width": 74, + "height": 60, + "rawWidth": 74, + "rawHeight": 60, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "spriteType": "normal", + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/resources/UI/publicUI.png b/assets/resources/UI/publicUI.png new file mode 100644 index 0000000000000000000000000000000000000000..47e5377281ba8e91bb8ae5e6077b58afebf631d9 GIT binary patch literal 562542 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
)yWHNKlKF!eC-ZGzM$%l^DGwZfo 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

Mj`u<&C3F} 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Ðs69} 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

Tsk!TV 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 z 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 P03O#(ZWvb^x;^?2fI5;6 literal 0 HcmV?d00001 diff --git a/assets/resources/UI/publicUI.png.meta b/assets/resources/UI/publicUI.png.meta new file mode 100644 index 0000000..bfe0c81 --- /dev/null +++ b/assets/resources/UI/publicUI.png.meta @@ -0,0 +1,15 @@ +{ + "ver": "2.3.7", + "uuid": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "importer": "texture", + "type": "raw", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 918, + "height": 885, + "platformSettings": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/resources/bg.meta b/assets/resources/bg.meta new file mode 100644 index 0000000..c8e8161 --- /dev/null +++ b/assets/resources/bg.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.3", + "uuid": "6e3288a4-3bdb-4608-84ec-c0975b506d86", + "importer": "folder", + "isBundle": false, + "bundleName": "", + "priority": 1, + "compressionType": {}, + "optimizeHotUpdate": {}, + "inlineSpriteFrames": {}, + "isRemoteBundle": {}, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/resources/bg/bg.jpg b/assets/resources/bg/bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8b3877f195f9a504bc27dec28bb1cba261ec5938 GIT binary patch literal 50539 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 literal 0 HcmV?d00001 diff --git a/assets/resources/bg/bg.jpg.meta b/assets/resources/bg/bg.jpg.meta new file mode 100644 index 0000000..4a7b61a --- /dev/null +++ b/assets/resources/bg/bg.jpg.meta @@ -0,0 +1,38 @@ +{ + "ver": "2.3.7", + "uuid": "70f7f908-1e8d-428d-8838-b74f3929a189", + "importer": "texture", + "type": "sprite", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 750, + "height": 1660, + "platformSettings": {}, + "subMetas": { + "bg": { + "ver": "1.0.6", + "uuid": "36b6bacf-2b42-4105-b5ae-89638029e07b", + "importer": "sprite-frame", + "rawTextureUuid": "70f7f908-1e8d-428d-8838-b74f3929a189", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 750, + "height": 1660, + "rawWidth": 750, + "rawHeight": 1660, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/build-templates/splash.jpg b/build-templates/splash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c72e9a7a1b59c1f4d0a510787913fb8fda5a3d4 GIT binary patch literal 17076 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 Xr@QH+dfKP}{{RZ2zyAO({{a8lp%?xA literal 0 HcmV?d00001 diff --git a/build-templates/web-mobile/index.html b/build-templates/web-mobile/index.html new file mode 100644 index 0000000..a9760fd --- /dev/null +++ b/build-templates/web-mobile/index.html @@ -0,0 +1,324 @@ + + + + + + + 思赞 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ Head Icon +
逻辑性
+
+
+ Tag Icon +
+
+
+
+ Highlight Icon +
+
+
+ + + + + + + + + + + + + diff --git a/build-templates/web-mobile/main.js b/build-templates/web-mobile/main.js new file mode 100644 index 0000000..7d7ce4b --- /dev/null +++ b/build-templates/web-mobile/main.js @@ -0,0 +1,140 @@ +var remote_url="http://static.sparkus.cn/shoot-sun/assets/"; + +window.boot = function () { + var settings = window._CCSettings; + window._CCSettings = undefined; + var onProgress = null; + + // var RESOURCES = remote_url + cc.AssetManager.BuiltinBundleName.RESOURCES; + var RESOURCES = cc.AssetManager.BuiltinBundleName.RESOURCES; + var INTERNAL = cc.AssetManager.BuiltinBundleName.INTERNAL; + var MAIN = cc.AssetManager.BuiltinBundleName.MAIN; + function setLoadingDisplay () { + // Loading splash scene + var progressBar = document.getElementById('progress-bar'); + var progressIcon = document.getElementById('progress-icon'); + var progressContainer = document.querySelector('.progress-container'); + onProgress = function (finish, total) { + }; + cc.director.once(cc.Director.EVENT_AFTER_SCENE_LAUNCH, function () { + progressBar.style.display = 'none'; + progressIcon.style.display = 'none'; + progressContainer.style.display = 'none'; + }); + } + + var onStart = function () { + cc.view.enableRetina(true); + cc.view.resizeWithBrowserSize(true); + if (cc.sys.isBrowser) { + setLoadingDisplay(); + } + + if (cc.sys.isMobile) { + if (settings.orientation === 'landscape') { + cc.view.setOrientation(cc.macro.ORIENTATION_LANDSCAPE); + } + else if (settings.orientation === 'portrait') { + cc.view.setOrientation(cc.macro.ORIENTATION_PORTRAIT); + } + cc.view.enableAutoFullScreen([ + cc.sys.BROWSER_TYPE_BAIDU, + cc.sys.BROWSER_TYPE_BAIDU_APP, + cc.sys.BROWSER_TYPE_WECHAT, + cc.sys.BROWSER_TYPE_MOBILE_QQ, + cc.sys.BROWSER_TYPE_MIUI, + cc.sys.BROWSER_TYPE_HUAWEI, + cc.sys.BROWSER_TYPE_UC, + ].indexOf(cc.sys.browserType) < 0); + } + + // Limit downloading max concurrent task to 2, + // more tasks simultaneously may cause performance draw back on some android system / browsers. + // You can adjust the number based on your own test result, you have to set it before any loading process to take effect. + if (cc.sys.isBrowser && cc.sys.os === cc.sys.OS_ANDROID) { + cc.assetManager.downloader.maxConcurrency = 2; + cc.assetManager.downloader.maxRequestsPerFrame = 2; + } + + var launchScene = settings.launchScene; + var bundle = cc.assetManager.bundles.find(function (b) { + return b.getSceneInfo(launchScene); + }); + + bundle.loadScene(launchScene, null, onProgress, + function (err, scene) { + if (!err) { + cc.director.runSceneImmediate(scene); + if (cc.sys.isBrowser) { + // show canvas + var canvas = document.getElementById('GameCanvas'); + canvas.style.visibility = ''; + var div = document.getElementById('GameDiv'); + if (div) { + div.style.backgroundImage = ''; + } + console.log('Success to load scene: ' + launchScene); + } + } + } + ); + }; + + var option = { + id: 'GameCanvas', + debugMode: settings.debug ? cc.debug.DebugMode.INFO : cc.debug.DebugMode.ERROR, + showFPS: settings.debug, + frameRate: 60, + groupList: settings.groupList, + collisionMatrix: settings.collisionMatrix, + }; + + cc.assetManager.init({ + bundleVers: settings.bundleVers, + remoteBundles: settings.remoteBundles, + server: settings.server + }); + + var bundleRoot = [INTERNAL]; + settings.hasResourcesBundle && bundleRoot.push(RESOURCES); + + var count = 0; + function cb (err) { + if (err) return console.error(err.message, err.stack); + count++; + if (count === bundleRoot.length + 1) { + cc.assetManager.loadBundle(MAIN, function (err) { + if (!err) cc.game.run(option, onStart); + }); + } + } + + cc.assetManager.loadScript(settings.jsList.map(function (x) { return 'src/' + x;}), cb); + + for (var i = 0; i < bundleRoot.length; i++) { + cc.assetManager.loadBundle(bundleRoot[i], cb); + } +}; + +if (window.jsb) { + var isRuntime = (typeof loadRuntime === 'function'); + if (isRuntime) { + require('src/settings.js'); + require('src/cocos2d-runtime.js'); + if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) { + require('src/physics.js'); + } + require('jsb-adapter/engine/index.js'); + } + else { + require('src/settings.js'); + require('src/cocos2d-jsb.js'); + if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) { + require('src/physics.js'); + } + require('jsb-adapter/jsb-engine.js'); + } + + cc.macro.CLEANUP_IMAGE_CACHE = true; + window.boot(); +} \ No newline at end of file diff --git a/build-templates/web-mobile/splash.jpg b/build-templates/web-mobile/splash.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c72e9a7a1b59c1f4d0a510787913fb8fda5a3d4 GIT binary patch literal 17076 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 Xr@QH+dfKP}{{RZ2zyAO({{a8lp%?xA literal 0 HcmV?d00001 diff --git a/build-templates/web-mobile/style-mobile.css b/build-templates/web-mobile/style-mobile.css new file mode 100644 index 0000000..1211ac3 --- /dev/null +++ b/build-templates/web-mobile/style-mobile.css @@ -0,0 +1,124 @@ +html { + -ms-touch-action: none; +} + +body, canvas, div { + display: block; + outline: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + + user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + -khtml-user-select: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +/* Remove spin of input type number */ +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + /* display: none; <- Crashes Chrome on hover */ + -webkit-appearance: none; + margin: 0; /* <-- Apparently some margin are still there even though it's hidden */ +} + +body { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 0; + border: 0; + margin: 0; + + cursor: default; + color: #888; + background-color: #333; + + text-align: center; + font-family: Helvetica, Verdana, Arial, sans-serif; + + display: flex; + flex-direction: column; + + /* fix bug: https://github.com/cocos-creator/2d-tasks/issues/791 */ + /* overflow cannot be applied in Cocos2dGameContainer, + otherwise child elements will be hidden when Cocos2dGameContainer rotated 90 deg */ + overflow: hidden; +} + +#Cocos2dGameContainer { + position: absolute; + margin: 0; + left: 0px; + top: 0px; + + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: center; + -webkit-box-pack: center; +} + +canvas { + background-color: rgba(0, 0, 0, 0); +} + +a:link, a:visited { + color: #666; +} + +a:active, a:hover { + color: #666; +} + +p.header { + font-size: small; +} + +p.footer { + font-size: x-small; +} + +/* #splash { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #171717 url(./splash.jpg) no-repeat center; + background-size: 100%; +} */ + +/* .progress-bar { + position: absolute; + left: 27.5%; + top: 80%; + height: 3px; + padding: 2px; + width: 0%; + border-radius: 7px; + box-shadow: 0 1px 5px #000 inset, 0 1px 0 #444; +} + +.progress-bar span { + display: block; + height: 0%; + border-radius: 3px; + transition: width .4s ease-in-out; + background-color: #3dc5de; +} */ + +.stripes span { + background-size: 30px 30px; + background-image: linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%, + transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, + transparent 75%, transparent); + + animation: animate-stripes 1s linear infinite; +} + +@keyframes animate-stripes { + 0% {background-position: 0 0;} 100% {background-position: 60px 0;} +} diff --git a/build-templates/web-mobile2/index.html b/build-templates/web-mobile2/index.html new file mode 100644 index 0000000..8f116fa --- /dev/null +++ b/build-templates/web-mobile2/index.html @@ -0,0 +1,261 @@ + + + + + + + 彩子妙算 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + 逻辑性 +
+
+
+
+
+
+
+
+ + + + + + + + + + + + diff --git a/build/LockDiagram.zip b/build/LockDiagram.zip new file mode 100644 index 0000000000000000000000000000000000000000..fc5fa464fb676de503158c2ef957f294880d99ad GIT binary patch literal 604830 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
*xf_x4mHJvRn|;aM}T0`ZK*0Siw2~Mh~LqY^5p2 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%0DPRV435>At@z{T9mB(aRjMNM+ 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 z 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

!~$5%-jpYmse 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Ê^BS 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 literal 0 HcmV?d00001 diff --git a/build/LockDiagram/assets/internal/config.52d36.json b/build/LockDiagram/assets/internal/config.52d36.json new file mode 100644 index 0000000..75327f5 --- /dev/null +++ b/build/LockDiagram/assets/internal/config.52d36.json @@ -0,0 +1 @@ +{"paths":{"1":["effects/builtin-2d-gray-sprite",0],"2":["effects/builtin-2d-sprite",0],"3":["materials/builtin-unlit",1],"4":["effects/builtin-3d-trail",0],"5":["effects/builtin-2d-graphics",0],"6":["materials/builtin-2d-gray-sprite",1],"7":["materials/builtin-3d-trail",1],"8":["effects/builtin-unlit",0],"9":["materials/builtin-2d-base",1],"10":["materials/builtin-2d-graphics",1],"11":["effects/builtin-clear-stencil",0],"12":["materials/builtin-clear-stencil",1],"13":["materials/builtin-2d-label",1],"14":["materials/builtin-2d-sprite",1],"15":["effects/builtin-2d-label",0]},"types":["cc.EffectAsset","cc.Material"],"uuids":["02delMVqdBD70a/HSD99FK","14TDKXr2NJ6LjvHPops74o","28dPjdQWxEQIG3VVl1Qm6T","2aKWBXJHxKHLvrBUi2yYZQ","2afAA24LNP4YmYiaVLiivs","30aC+Hnw1PF4pEcoY3kUYb","3ae7efMv1CLq2ilvUY/tQi","46bU+b5fROqIXVPG6aZWWK","6dkeWRTOBGXICfYQ7JUBnG","6fgBCSDDdPMInvyNlggls2","a1U5RdJRFMFL57BdJC9H1X","c0BAyVxX9JzZy8EjFrc9DU","cffgu4qBxEqa150o1DmRAy","e0LYfU5ZlNFoAB4UiRrGUG","ecpdLyjvZBwrvm+cedCcQy","f1h0LXVtJOta5JLZ1xCzfI"],"scenes":{},"redirect":[],"deps":[],"packs":{"05464a930":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]},"name":"internal","importBase":"import","nativeBase":"native","debug":false,"isZip":false,"encrypted":false,"versions":{"import":["05464a930","3c4b0"],"native":[0,"cea68"]}} \ No newline at end of file diff --git a/build/LockDiagram/assets/internal/import/05/05464a930.3c4b0.json b/build/LockDiagram/assets/internal/import/05/05464a930.3c4b0.json new file mode 100644 index 0000000..b345999 --- /dev/null +++ b/build/LockDiagram/assets/internal/import/05/05464a930.3c4b0.json @@ -0,0 +1 @@ +[1,["02delMVqdBD70a/HSD99FK","28dPjdQWxEQIG3VVl1Qm6T","6dkeWRTOBGXICfYQ7JUBnG","14TDKXr2NJ6LjvHPops74o","2afAA24LNP4YmYiaVLiivs","30aC+Hnw1PF4pEcoY3kUYb","c0BAyVxX9JzZy8EjFrc9DU","f1h0LXVtJOta5JLZ1xCzfI"],["_effectAsset","diffuseTexture","mainTexture"],["cc.Texture2D",["cc.EffectAsset",["_name","shaders","techniques"],0],["cc.Material",["_name","_techniqueData"],2,11],["cc.Material",["_name","_techniqueData"],1]],[[1,0,1,2,4],[3,0,1,3],[2,0,1,2]],[[["0,9729,9729,33071,33071,0,0,1",-1],[0],0,[],[],[]],[[[0,"builtin-2d-gray-sprite",[{"hash":4278481454,"record":null,"name":"builtin-2d-gray-sprite|vs|fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nin vec3 a_position;\nin mediump vec2 a_uv0;\nout mediump vec2 v_uv0;\nin vec4 a_color;\nout vec4 v_color;\nvoid main () {\n gl_Position = cc_matViewProj * vec4(a_position, 1);\n v_uv0 = a_uv0;\n v_color = a_color;\n}","frag":"\nprecision highp float;\nuniform sampler2D texture;\nin mediump vec2 v_uv0;\nin vec4 v_color;\nvoid main () {\n vec4 color = v_color;\n vec4 texture_tmp = texture(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n color.a *= texture_tmp.a;\n #else\n color *= texture_tmp;\n #endif\n float gray = 0.2126*color.r + 0.7152*color.g + 0.0722*color.b;\n gl_FragColor = vec4(gray, gray, gray, color.a);\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matViewProj;\nattribute vec3 a_position;\nattribute mediump vec2 a_uv0;\nvarying mediump vec2 v_uv0;\nattribute vec4 a_color;\nvarying vec4 v_color;\nvoid main () {\n gl_Position = cc_matViewProj * vec4(a_position, 1);\n v_uv0 = a_uv0;\n v_color = a_color;\n}","frag":"\nprecision highp float;\nuniform sampler2D texture;\nvarying mediump vec2 v_uv0;\nvarying vec4 v_color;\nvoid main () {\n vec4 color = v_color;\n vec4 texture_tmp = texture2D(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n color.a *= texture_tmp.a;\n #else\n color *= texture_tmp;\n #endif\n float gray = 0.2126*color.r + 0.7152*color.g + 0.0722*color.b;\n gl_FragColor = vec4(gray, gray, gray, color.a);\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[],"samplers":[]}},"defines":[{"name":"CC_USE_ALPHA_ATLAS_texture","type":"boolean","defines":[]},{"name":"INPUT_IS_GAMMA","type":"boolean","defines":[]}],"blocks":[],"samplers":[{"name":"texture","type":29,"count":1,"binding":30,"defines":[]}]}],[{"passes":[{"program":"builtin-2d-gray-sprite|vs|fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"properties":{"texture":{"value":"white","type":29}}}]}]]],0,0,[],[],[]],[[[0,"builtin-2d-sprite",[{"hash":2440430725,"record":null,"name":"builtin-2d-sprite|vs|fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\n#if USE_TEXTURE\nin vec2 a_uv0;\nout vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}","frag":"\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nin vec4 v_color;\n#if USE_TEXTURE\nin vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n vec4 texture_tmp = texture(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n o.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n o.a *= texture_tmp.a;\n #else\n o *= texture_tmp;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n #if USE_BGRA\n gl_FragColor = o.bgra;\n #else\n gl_FragColor = o.rgba;\n #endif\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\n#if USE_TEXTURE\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}","frag":"\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvarying vec4 v_color;\n#if USE_TEXTURE\nvarying vec2 v_uv0;\nuniform sampler2D texture;\n#endif\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n vec4 texture_tmp = texture2D(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n o.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n o.a *= texture_tmp.a;\n #else\n o *= texture_tmp;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n #if USE_BGRA\n gl_FragColor = o.bgra;\n #else\n gl_FragColor = o.rgba;\n #endif\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"USE_TEXTURE","type":"boolean","defines":[]},{"name":"CC_USE_MODEL","type":"boolean","defines":[]},{"name":"USE_ALPHA_TEST","type":"boolean","defines":[]},{"name":"CC_USE_ALPHA_ATLAS_texture","type":"boolean","defines":["USE_TEXTURE"]},{"name":"INPUT_IS_GAMMA","type":"boolean","defines":["USE_TEXTURE"]},{"name":"USE_BGRA","type":"boolean","defines":[]}],"blocks":[{"name":"ALPHA_TEST","binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]}],"samplers":[{"name":"texture","type":29,"count":1,"binding":30,"defines":["USE_TEXTURE"]}]}],[{"passes":[{"program":"builtin-2d-sprite|vs|fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"properties":{"texture":{"value":"white","type":29},"alphaThreshold":{"type":13,"value":[0.5]}}}]}]]],0,0,[],[],[]],[[[2,"builtin-unlit",[{},"0",11,[{"defines":{"USE_DIFFUSE_TEXTURE":true}},"props",11,[{},"diffuseTexture",6,0]]]]],0,0,[0,0],[1,0],[0,2]],[[[0,"builtin-3d-trail",[{"hash":2929688198,"record":null,"name":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:add","glsl3":{"vert":"\nprecision mediump float;\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nin vec3 a_position;\nin vec4 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n out vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\n#if CC_DRAW_WIRE_FRAME\n in vec3 vBarycentric;\n#endif\nuniform sampler2D mainTexture;\nuniform FragConstants {\n vec4 tintColor;\n};\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * texture(mainTexture, uv);\n #if CC_DRAW_WIRE_FRAME\n if (any(lessThan(vBarycentric, vec3(0.02)))) {\n col = vec4(0., 1., 1., 1.);\n }\n #endif\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = add(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform vec4 mainTiling_Offset;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nattribute vec3 a_position;\nattribute vec4 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nuniform sampler2D mainTexture;\nuniform vec4 tintColor;\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * texture2D(mainTexture, uv);\n #if CC_DRAW_WIRE_FRAME\n if (any(lessThan(vBarycentric, vec3(0.02)))) {\n col = vec4(0., 1., 1., 1.);\n }\n #endif\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = add(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_DRAW_WIRE_FRAME","type":"boolean","defines":[]},{"name":"CC_USE_WORLD_SPACE","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]}],"blocks":[{"name":"Constants","binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1}],"defines":[]},{"name":"FragConstants","binding":1,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"mainTexture","type":29,"count":1,"binding":30,"defines":[]}]},{"hash":4224037318,"record":null,"name":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:multiply","glsl3":{"vert":"\nprecision mediump float;\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nin vec3 a_position;\nin vec4 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n out vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\n#if CC_DRAW_WIRE_FRAME\n in vec3 vBarycentric;\n#endif\nuniform sampler2D mainTexture;\nuniform FragConstants {\n vec4 tintColor;\n};\nvec4 multiply () {\n vec4 col;\n vec4 texColor = texture(mainTexture, uv);\n col.rgb = tintColor.rgb * texColor.rgb * color.rgb * vec3(2.0);\n col.a = (1.0 - texColor.a) * (tintColor.a * color.a * 2.0);\n #if CC_DRAW_WIRE_FRAME\n if (any(lessThan(vBarycentric, vec3(0.02)))) {\n col = vec4(0., 1., 1., col.a);\n }\n #endif\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = multiply(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform vec4 mainTiling_Offset;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nattribute vec3 a_position;\nattribute vec4 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nuniform sampler2D mainTexture;\nuniform vec4 tintColor;\nvec4 multiply () {\n vec4 col;\n vec4 texColor = texture2D(mainTexture, uv);\n col.rgb = tintColor.rgb * texColor.rgb * color.rgb * vec3(2.0);\n col.a = (1.0 - texColor.a) * (tintColor.a * color.a * 2.0);\n #if CC_DRAW_WIRE_FRAME\n if (any(lessThan(vBarycentric, vec3(0.02)))) {\n col = vec4(0., 1., 1., col.a);\n }\n #endif\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = multiply(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_DRAW_WIRE_FRAME","type":"boolean","defines":[]},{"name":"CC_USE_WORLD_SPACE","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]}],"blocks":[{"name":"Constants","binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1}],"defines":[]},{"name":"FragConstants","binding":1,"members":[{"name":"tintColor","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"mainTexture","type":29,"count":1,"binding":30,"defines":[]}]},{"hash":1704877102,"record":null,"name":"builtin-3d-trail|particle-trail:vs_main|no-tint-fs:addSmooth","glsl3":{"vert":"\nprecision mediump float;\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nin vec3 a_position;\nin vec4 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n out vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nvec4 addSmooth () {\n vec4 col = color * texture(mainTexture, uv);\n col.rgb *= col.a;\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = addSmooth(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform vec4 mainTiling_Offset;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nattribute vec3 a_position;\nattribute vec4 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\nvec4 addSmooth () {\n vec4 col = color * texture2D(mainTexture, uv);\n col.rgb *= col.a;\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = addSmooth(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_DRAW_WIRE_FRAME","type":"boolean","defines":[]},{"name":"CC_USE_WORLD_SPACE","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]}],"blocks":[{"name":"Constants","binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"mainTexture","type":29,"count":1,"binding":30,"defines":[]}]},{"hash":2717357054,"record":null,"name":"builtin-3d-trail|particle-trail:vs_main|no-tint-fs:premultiplied","glsl3":{"vert":"\nprecision mediump float;\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nin vec3 a_position;\nin vec4 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n out vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nvec4 premultiplied () {\n vec4 col = color * texture(mainTexture, uv) * color.a;\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = premultiplied(); }"},"glsl1":{"vert":"\nprecision mediump float;\nuniform vec4 mainTiling_Offset;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nattribute vec3 a_position;\nattribute vec4 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_DRAW_WIRE_FRAME\n varying vec3 vBarycentric;\n#endif\nvec4 vs_main() {\n highp vec4 pos = vec4(a_position, 1);\n vec4 velocity = vec4(a_texCoord1.xyz, 0);\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n velocity = cc_matWorld * velocity;\n#endif\n float vertOffset = (a_texCoord.x - 0.5) * a_texCoord.y;\n vec3 camUp = normalize(cross(pos.xyz - cc_cameraPos.xyz, velocity.xyz));\n pos.xyz += camUp * vertOffset;\n pos = cc_matViewProj * pos;\n uv = a_texCoord.zw * mainTiling_Offset.xy + mainTiling_Offset.zw;;\n color = a_color;\n#if CC_DRAW_WIRE_FRAME\n vBarycentric = a_texCoord2;\n#endif\n return pos;\n}\nvoid main() { gl_Position = vs_main(); }","frag":"\nprecision mediump float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\nvec4 premultiplied () {\n vec4 col = color * texture2D(mainTexture, uv) * color.a;\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = premultiplied(); }"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_DRAW_WIRE_FRAME","type":"boolean","defines":[]},{"name":"CC_USE_WORLD_SPACE","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]}],"blocks":[{"name":"Constants","binding":0,"members":[{"name":"mainTiling_Offset","type":16,"count":1},{"name":"frameTile_velLenScale","type":16,"count":1},{"name":"scale","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"mainTexture","type":29,"count":1,"binding":30,"defines":[]}]}],[{"name":"add","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":770,"blendDst":1,"blendSrcAlpha":770,"blendDstAlpha":1}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5],"inspector":{"type":"color"}}}}]},{"name":"alpha-blend","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:add","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5],"inspector":{"type":"color"}}}}]},{"name":"add-multiply","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|tinted-fs:multiply","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]},"tintColor":{"type":16,"value":[0.5,0.5,0.5,0.5],"inspector":{"type":"color"}}}}]},{"name":"add-smooth","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|no-tint-fs:addSmooth","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]}}}]},{"name":"premultiply-blend","passes":[{"program":"builtin-3d-trail|particle-trail:vs_main|no-tint-fs:premultiplied","rasterizerState":{"cullMode":0},"blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"mainTexture":{"value":"grey","type":29},"mainTiling_Offset":{"type":16,"value":[1,1,0,0]},"frameTile_velLenScale":{"type":16,"value":[1,1,0,0]}}}]}]]],0,0,[],[],[]],[[[0,"builtin-2d-graphics",[{"hash":550349795,"record":null,"name":"builtin-2d-graphics|vs|fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\nin float a_dist;\nout float v_dist;\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n pos = cc_matViewProj * cc_matWorld * pos;\n v_color = a_color;\n v_dist = a_dist;\n gl_Position = pos;\n}","frag":"\n#if CC_SUPPORT_standard_derivatives\n #extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nin vec4 v_color;\nin float v_dist;\nvoid main () {\n vec4 o = v_color;\n ALPHA_TEST(o);\n #if CC_SUPPORT_standard_derivatives\n float aa = fwidth(v_dist);\n #else\n float aa = 0.05;\n #endif\n float alpha = 1. - smoothstep(-aa, 0., abs(v_dist) - 1.0);\n o.rgb *= o.a;\n o *= alpha;\n gl_FragColor = o;\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\nattribute float a_dist;\nvarying float v_dist;\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n pos = cc_matViewProj * cc_matWorld * pos;\n v_color = a_color;\n v_dist = a_dist;\n gl_Position = pos;\n}","frag":"\n#if CC_SUPPORT_standard_derivatives\n #extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvarying vec4 v_color;\nvarying float v_dist;\nvoid main () {\n vec4 o = v_color;\n ALPHA_TEST(o);\n #if CC_SUPPORT_standard_derivatives\n float aa = fwidth(v_dist);\n #else\n float aa = 0.05;\n #endif\n float alpha = 1. - smoothstep(-aa, 0., abs(v_dist) - 1.0);\n o.rgb *= o.a;\n o *= alpha;\n gl_FragColor = o;\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_SUPPORT_standard_derivatives","type":"boolean","defines":[]},{"name":"USE_ALPHA_TEST","type":"boolean","defines":[]}],"blocks":[{"name":"ALPHA_TEST","binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]}],"samplers":[]}],[{"passes":[{"program":"builtin-2d-graphics|vs|fs","blendState":{"targets":[{"blend":true,"blendSrc":1,"blendDst":771,"blendSrcAlpha":1,"blendDstAlpha":771}]},"rasterizerState":{"cullMode":0},"properties":{"alphaThreshold":{"type":13,"value":[0.5]}}}]}]]],0,0,[],[],[]],[[[1,"builtin-2d-gray-sprite",{}]],0,0,[0],[0],[3]],[[[2,"builtin-3d-trail",[{},"0",11,[{},"props",11,[{},"mainTexture",6,0]]]]],0,0,[0,0],[2,0],[0,4]],[[[0,"builtin-unlit",[{"hash":922858114,"record":null,"name":"builtin-unlit|unlit-vs|unlit-fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\n#if CC_USE_SKINNING\n in vec4 a_weights;\n in vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform SKINNING {\n vec2 jointsTextureSize;\n };\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform JOINT_MATRIX {\n mat4 jointMatrices[50];\n };\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nstruct StandardVertInput {\n vec2 uv;\n vec4 position;\n vec3 normal;\n vec4 tangent;\n vec4 color;\n};\nin vec3 a_position;\n#if CC_USE_ATTRIBUTE_UV0\nin vec2 a_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\nin vec4 a_color;\n#endif\n#if CC_USE_ATTRIBUTE_NORMAL\nin vec3 a_normal;\n#endif\n#if CC_USE_ATTRIBUTE_TANGENT\nin vec4 a_tangent;\n#endif\nvoid CCAttribute (out StandardVertInput In) {\n In.position = vec4(a_position, 1.0);\n #if CC_USE_ATTRIBUTE_UV0\n In.uv = a_uv0;\n #else\n In.uv = vec2(0.0);\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n In.color = a_color;\n #else\n In.color = vec4(1.0);\n #endif\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = a_normal;\n #else\n In.normal = vec3(0.0, 1.0, 0.0);\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = a_tangent;\n #else\n In.tangent = vec4(1.0, 0.0, 0.0, 0.0);\n #endif\n}\nvoid CCVertInput(out StandardVertInput In) {\n CCAttribute(In);\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n In.position = m * In.position;\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = (m * vec4(In.normal, 0)).xyz;\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = m * In.tangent;\n #endif\n #endif\n}\nuniform MAIN_TILING {\n vec2 mainTiling;\n vec2 mainOffset;\n};\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n out mediump vec2 v_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n out lowp vec4 v_color;\n#endif\nvoid main () {\n StandardVertInput In;\n CCVertInput(In);\n #if CC_USE_ATTRIBUTE_COLOR\n v_color = In.color;\n #endif\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n v_uv0 = In.uv * mainTiling + mainOffset;\n #endif\n gl_Position = cc_matViewProj * cc_matWorld * In.position;\n}","frag":"\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nuniform UNLIT {\n lowp vec4 diffuseColor;\n};\n#if USE_DIFFUSE_TEXTURE\n uniform sampler2D diffuseTexture;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n in lowp vec4 v_color;\n#endif\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n in mediump vec2 v_uv0;\n#endif\nvoid main () {\n vec4 color = diffuseColor;\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n vec4 diffuseTexture_tmp = texture(diffuseTexture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_diffuseTexture\n diffuseTexture_tmp.a *= texture(diffuseTexture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (diffuseTexture_tmp.rgb * diffuseTexture_tmp.rgb);\n color.a *= diffuseTexture_tmp.a;\n #else\n color *= diffuseTexture_tmp;\n #endif\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n color *= v_color;\n #endif\n ALPHA_TEST(color);\n gl_FragColor = CCFragOutput(color);\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matWorld;\nuniform mat4 cc_matViewProj;\n#if CC_USE_SKINNING\n attribute vec4 a_weights;\n attribute vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform vec2 jointsTextureSize;\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture2D(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture2D(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture2D(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture2D(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture2D(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform mat4 jointMatrices[50];\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nstruct StandardVertInput {\n vec2 uv;\n vec4 position;\n vec3 normal;\n vec4 tangent;\n vec4 color;\n};\nattribute vec3 a_position;\n#if CC_USE_ATTRIBUTE_UV0\nattribute vec2 a_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\nattribute vec4 a_color;\n#endif\n#if CC_USE_ATTRIBUTE_NORMAL\nattribute vec3 a_normal;\n#endif\n#if CC_USE_ATTRIBUTE_TANGENT\nattribute vec4 a_tangent;\n#endif\nvoid CCAttribute (out StandardVertInput In) {\n In.position = vec4(a_position, 1.0);\n #if CC_USE_ATTRIBUTE_UV0\n In.uv = a_uv0;\n #else\n In.uv = vec2(0.0);\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n In.color = a_color;\n #else\n In.color = vec4(1.0);\n #endif\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = a_normal;\n #else\n In.normal = vec3(0.0, 1.0, 0.0);\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = a_tangent;\n #else\n In.tangent = vec4(1.0, 0.0, 0.0, 0.0);\n #endif\n}\nvoid CCVertInput(out StandardVertInput In) {\n CCAttribute(In);\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n In.position = m * In.position;\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = (m * vec4(In.normal, 0)).xyz;\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = m * In.tangent;\n #endif\n #endif\n}\nuniform vec2 mainTiling;\nuniform vec2 mainOffset;\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n varying mediump vec2 v_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n varying lowp vec4 v_color;\n#endif\nvoid main () {\n StandardVertInput In;\n CCVertInput(In);\n #if CC_USE_ATTRIBUTE_COLOR\n v_color = In.color;\n #endif\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n v_uv0 = In.uv * mainTiling + mainOffset;\n #endif\n gl_Position = cc_matViewProj * cc_matWorld * In.position;\n}","frag":"\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nuniform lowp vec4 diffuseColor;\n#if USE_DIFFUSE_TEXTURE\n uniform sampler2D diffuseTexture;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n varying lowp vec4 v_color;\n#endif\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n varying mediump vec2 v_uv0;\n#endif\nvoid main () {\n vec4 color = diffuseColor;\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n vec4 diffuseTexture_tmp = texture2D(diffuseTexture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_diffuseTexture\n diffuseTexture_tmp.a *= texture2D(diffuseTexture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (diffuseTexture_tmp.rgb * diffuseTexture_tmp.rgb);\n color.a *= diffuseTexture_tmp.a;\n #else\n color *= diffuseTexture_tmp;\n #endif\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n color *= v_color;\n #endif\n ALPHA_TEST(color);\n gl_FragColor = CCFragOutput(color);\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"CC_USE_SKINNING","type":"boolean","defines":[]},{"name":"CC_USE_JOINTS_TEXTRUE","type":"boolean","defines":["CC_USE_SKINNING"]},{"name":"CC_JOINTS_TEXTURE_FLOAT32","type":"boolean","defines":["CC_USE_SKINNING","CC_USE_JOINTS_TEXTRUE"]},{"name":"CC_USE_ATTRIBUTE_UV0","type":"boolean","defines":[]},{"name":"CC_USE_ATTRIBUTE_COLOR","type":"boolean","defines":[]},{"name":"CC_USE_ATTRIBUTE_NORMAL","type":"boolean","defines":[]},{"name":"CC_USE_ATTRIBUTE_TANGENT","type":"boolean","defines":[]},{"name":"USE_DIFFUSE_TEXTURE","type":"boolean","defines":[]},{"name":"USE_ALPHA_TEST","type":"boolean","defines":[]},{"name":"OUTPUT_TO_GAMMA","type":"boolean","defines":[]},{"name":"CC_USE_ALPHA_ATLAS_diffuseTexture","type":"boolean","defines":["CC_USE_ATTRIBUTE_UV0","USE_DIFFUSE_TEXTURE"]},{"name":"INPUT_IS_GAMMA","type":"boolean","defines":["CC_USE_ATTRIBUTE_UV0","USE_DIFFUSE_TEXTURE"]}],"blocks":[{"name":"SKINNING","binding":0,"members":[{"name":"jointsTextureSize","type":14,"count":1}],"defines":["CC_USE_SKINNING","CC_USE_JOINTS_TEXTRUE"]},{"name":"JOINT_MATRIX","binding":1,"members":[{"name":"jointMatrices","type":26,"count":50}],"defines":["CC_USE_SKINNING"]},{"name":"MAIN_TILING","binding":2,"members":[{"name":"mainTiling","type":14,"count":1},{"name":"mainOffset","type":14,"count":1}],"defines":[]},{"name":"ALPHA_TEST","binding":3,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]},{"name":"UNLIT","binding":4,"members":[{"name":"diffuseColor","type":16,"count":1}],"defines":[]}],"samplers":[{"name":"jointsTexture","type":29,"count":1,"binding":30,"defines":["CC_USE_SKINNING","CC_USE_JOINTS_TEXTRUE"]},{"name":"diffuseTexture","type":29,"count":1,"binding":31,"defines":["USE_DIFFUSE_TEXTURE"]}]}],[{"name":"opaque","passes":[{"program":"builtin-unlit|unlit-vs|unlit-fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":true,"depthWrite":true},"properties":{"diffuseTexture":{"value":"white","type":29},"diffuseColor":{"type":16,"value":[1,1,1,1],"editor":{"type":"color"}},"alphaThreshold":{"type":13,"value":[0.5]},"mainTiling":{"type":14,"value":[1,1]},"mainOffset":{"type":14,"value":[0,0]}}}]},{"name":"transparent","passes":[{"stage":"transparent","program":"builtin-unlit|unlit-vs|unlit-fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"depthStencilState":{"depthTest":true,"depthWrite":false},"properties":{"diffuseTexture":{"value":"white","type":29},"diffuseColor":{"type":16,"value":[1,1,1,1],"editor":{"type":"color"}},"alphaThreshold":{"type":13,"value":[0.5]},"mainTiling":{"type":14,"value":[1,1]},"mainOffset":{"type":14,"value":[0,0]}}}]}]]],0,0,[],[],[]],[[[1,"builtin-2d-base",{}]],0,0,[0],[0],[1]],[[[1,"builtin-2d-graphics",{"0":{"defines":{}}}]],0,0,[0],[0],[5]],[[[0,"builtin-clear-stencil",[{"hash":2075641479,"record":null,"name":"builtin-clear-stencil|vs|fs","glsl3":{"vert":"\nprecision highp float;\nin vec3 a_position;\nvoid main () {\n gl_Position = vec4(a_position, 1);\n}","frag":"\nprecision highp float;\nvoid main () {\n gl_FragColor = vec4(1.0);\n}"},"glsl1":{"vert":"\nprecision highp float;\nattribute vec3 a_position;\nvoid main () {\n gl_Position = vec4(a_position, 1);\n}","frag":"\nprecision highp float;\nvoid main () {\n gl_FragColor = vec4(1.0);\n}"},"builtins":{"globals":{"blocks":[],"samplers":[]},"locals":{"blocks":[],"samplers":[]}},"defines":[],"blocks":[],"samplers":[]}],[{"passes":[{"program":"builtin-clear-stencil|vs|fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0}}]}]]],0,0,[],[],[]],[[[1,"builtin-clear-stencil",{}]],0,0,[0],[0],[6]],[[[1,"builtin-2d-label",{"0":{"defines":{"USE_TEXTURE":true}}}]],0,0,[0],[0],[7]],[[[1,"builtin-2d-sprite",{"0":{"defines":{"USE_TEXTURE":true}}}]],0,0,[0],[0],[1]],[[[0,"builtin-2d-label",[{"hash":1105459032,"record":null,"name":"builtin-2d-label|vs|fs","glsl3":{"vert":"\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\n#if USE_TEXTURE\nin vec2 a_uv0;\nout vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}","frag":"\n#if CC_SUPPORT_standard_derivatives\n #extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nin vec4 v_color;\n#if USE_TEXTURE\nin vec2 v_uv0;\nuniform sampler2D texture;\n#endif\n#if USE_SDF\nuniform Outline {\n vec4 outlineColor;\n float outlineSize;\n};\n#endif\nvoid main () {\n#if USE_SDF\n #if USE_TEXTURE_ALPHAONLY\n float dist = texture(texture, v_uv0).a;\n #else\n float dist = texture(texture, v_uv0).r;\n #endif\n #if USE_SDF_EXTEND\n const float EDGE_VALUE = 0.45;\n #else\n const float EDGE_VALUE = 0.5;\n #endif\n #if CC_SUPPORT_standard_derivatives\n float smoothing = fwidth(dist);\n #else\n float smoothing = 0.05;\n #endif\n float outEdge = EDGE_VALUE - outlineSize;\n float bg = smoothstep(outEdge - smoothing, outEdge, dist);\n float fg = smoothstep(EDGE_VALUE - smoothing, EDGE_VALUE, dist);\n vec4 fgColor = outlineColor * (1.0 - fg) + v_color * fg;\n gl_FragColor = vec4(fgColor.rgb, fgColor.a * bg);\n#else\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n #if USE_TEXTURE_ALPHAONLY\n o.a *= texture(texture, v_uv0).a;\n #else\n o *= texture(texture, v_uv0);\n #endif\n #if CC_USE_ALPHA_ATLAS_TEXTURE\n o.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n gl_FragColor = o;\n#endif\n}"},"glsl1":{"vert":"\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\n#if USE_TEXTURE\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}","frag":"\n#if CC_SUPPORT_standard_derivatives\n #extension GL_OES_standard_derivatives : enable\n#endif\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvarying vec4 v_color;\n#if USE_TEXTURE\nvarying vec2 v_uv0;\nuniform sampler2D texture;\n#endif\n#if USE_SDF\nuniform vec4 outlineColor;\nuniform float outlineSize;\n#endif\nvoid main () {\n#if USE_SDF\n #if USE_TEXTURE_ALPHAONLY\n float dist = texture2D(texture, v_uv0).a;\n #else\n float dist = texture2D(texture, v_uv0).r;\n #endif\n #if USE_SDF_EXTEND\n const float EDGE_VALUE = 0.45;\n #else\n const float EDGE_VALUE = 0.5;\n #endif\n #if CC_SUPPORT_standard_derivatives\n float smoothing = fwidth(dist);\n #else\n float smoothing = 0.05;\n #endif\n float outEdge = EDGE_VALUE - outlineSize;\n float bg = smoothstep(outEdge - smoothing, outEdge, dist);\n float fg = smoothstep(EDGE_VALUE - smoothing, EDGE_VALUE, dist);\n vec4 fgColor = outlineColor * (1.0 - fg) + v_color * fg;\n gl_FragColor = vec4(fgColor.rgb, fgColor.a * bg);\n#else\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n #if USE_TEXTURE_ALPHAONLY\n o.a *= texture2D(texture, v_uv0).a;\n #else\n o *= texture2D(texture, v_uv0);\n #endif\n #if CC_USE_ALPHA_ATLAS_TEXTURE\n o.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n gl_FragColor = o;\n#endif\n}"},"builtins":{"globals":{"blocks":[{"name":"CCGlobal","defines":[]}],"samplers":[]},"locals":{"blocks":[{"name":"CCLocal","defines":[]}],"samplers":[]}},"defines":[{"name":"USE_TEXTURE","type":"boolean","defines":[]},{"name":"CC_USE_MODEL","type":"boolean","defines":[]},{"name":"CC_SUPPORT_standard_derivatives","type":"boolean","defines":[]},{"name":"USE_ALPHA_TEST","type":"boolean","defines":[]},{"name":"USE_SDF","type":"boolean","defines":[]},{"name":"USE_TEXTURE_ALPHAONLY","type":"boolean","defines":["USE_SDF"]},{"name":"USE_SDF_EXTEND","type":"boolean","defines":["USE_SDF"]},{"name":"CC_USE_ALPHA_ATLAS_TEXTURE","type":"boolean","defines":["USE_TEXTURE"]}],"blocks":[{"name":"ALPHA_TEST","binding":0,"members":[{"name":"alphaThreshold","type":13,"count":1}],"defines":["USE_ALPHA_TEST"]},{"name":"Outline","binding":1,"members":[{"name":"outlineColor","type":16,"count":1},{"name":"outlineSize","type":13,"count":1}],"defines":["USE_SDF"]}],"samplers":[{"name":"texture","type":29,"count":1,"binding":30,"defines":["USE_TEXTURE"]}]}],[{"passes":[{"program":"builtin-2d-label|vs|fs","blendState":{"targets":[{"blend":true}]},"rasterizerState":{"cullMode":0},"properties":{"texture":{"value":"white","type":29},"alphaThreshold":{"type":13,"value":[0.5]},"outlineSize":{"type":13,"value":[0]},"outlineColor":{"type":16,"value":[1,1,1,1]}}}]}]]],0,0,[],[],[]]]] \ No newline at end of file diff --git a/build/LockDiagram/assets/internal/index.52d36.js b/build/LockDiagram/assets/internal/index.52d36.js new file mode 100644 index 0000000..3c6e1e1 --- /dev/null +++ b/build/LockDiagram/assets/internal/index.52d36.js @@ -0,0 +1 @@ +(function r(e,n,t){function i(u,f){if(!n[u]){if(!e[u]){var _=u.split("/");if(_=_[_.length-1],!e[_]){var p="function"==typeof __require&&__require;if(!f&&p)return p(_,!0);if(o)return o(_,!0);throw new Error("Cannot find module '"+u+"'")}u=_}var a=n[u]={exports:{}};e[u][0].call(a.exports,function(r){return i(e[u][1][r]||r)},a,a.exports,r,e,n,t)}return n[u].exports}for(var o="function"==typeof __require&&__require,u=0;ugTe~DWM4fnP3tm literal 0 HcmV?d00001 diff --git a/build/LockDiagram/assets/main/config.472d7.json b/build/LockDiagram/assets/main/config.472d7.json new file mode 100644 index 0000000..443f1d7 --- /dev/null +++ b/build/LockDiagram/assets/main/config.472d7.json @@ -0,0 +1 @@ +{"paths":{},"types":[],"uuids":["4er1GLNexCYpKNTUl8Pygw","71VhFCTINJM6/Ky3oX9nBT","9cCAYtTPFLbqi6SjiBzH59","b4P/PCArtIdIH38t6mlw8Y","e8Ueib+qJEhL6mXAHdnwbi","02delMVqdBD70a/HSD99FK","17rzRtz75K0rLT5GnT3MGo","29FYIk+N1GYaeWH/q1NxQO","36trrPK0JBBbWuiWOAKeB7","488K3Rd0FLmrJeGGrUV+Ss","4cfB8L6+dAJYFIrGHLKi2P","4d1ZT+pZlGi6guSjb1Ez7B","57O6DZWodKH4R/vMXl3IHc","5eNEaF2+BFCYtmJ923Li0j","5fkk3C35JEiosw9NDLquKc","84JfQLxmlEaqsLLa+JLvXC","90ezPwmYxE4rKjaX5W3D67","a2MjXRFdtLlYQ5ouAFv/+R","d9W9v7v09KKoBjhiJelYPp","daQR/1lDFO7IlDsueGooQV","e8g7kotjdE2a+NuD6Faln3","e97GVMl6JHh5Ml5qEDdSGa","ecpdLyjvZBwrvm+cedCcQy","f0BIwQ8D5Ml7nTNQbh1YlS","fcu4mSPMxElaGLfUNnlqmS"],"scenes":{"db://assets/Scene/GameScene.fire":0,"db://assets/Scene/LoadScene.fire":2},"redirect":[5,0,6,1,8,1,9,1,10,1,11,1,12,1,14,1,15,1,16,1,18,1,19,1,20,1,22,0,24,1],"deps":["internal","resources"],"packs":{"02989e146":[7,2,21,23],"08429701d":[0,13,17],"09b7df110":[1,3,4]},"name":"main","importBase":"import","nativeBase":"native","debug":false,"isZip":false,"encrypted":false,"versions":{"import":["02989e146","ec823","08429701d","2aec9","09b7df110","c36e8"],"native":[1,"c06a9",3,"83fcc",4,"90cf4"]}} \ No newline at end of file diff --git a/build/LockDiagram/assets/main/import/02/02989e146.ec823.json b/build/LockDiagram/assets/main/import/02/02989e146.ec823.json new file mode 100644 index 0000000..36c3752 --- /dev/null +++ b/build/LockDiagram/assets/main/import/02/02989e146.ec823.json @@ -0,0 +1 @@ +[1,["ecpdLyjvZBwrvm+cedCcQy","84JfQLxmlEaqsLLa+JLvXC","57O6DZWodKH4R/vMXl3IHc","f0BIwQ8D5Ml7nTNQbh1YlS","71VhFCTINJM6/Ky3oX9nBT","36trrPK0JBBbWuiWOAKeB7","4cfB8L6+dAJYFIrGHLKi2P","5fkk3C35JEiosw9NDLquKc","daQR/1lDFO7IlDsueGooQV","17rzRtz75K0rLT5GnT3MGo","d9W9v7v09KKoBjhiJelYPp","e97GVMl6JHh5Ml5qEDdSGa","29FYIk+N1GYaeWH/q1NxQO","b4P/PCArtIdIH38t6mlw8Y","e8Ueib+qJEhL6mXAHdnwbi"],["node","_spriteFrame","_textureSetter","_parent","testVersion","_N$target","scene","_N$normalSprite","_N$pressedSprite","_N$hoverSprite","_N$disabledSprite"],[["cc.Node",["_name","_active","_id","_components","_contentSize","_trs","_parent","_children","_eulerAngles","_anchorPoint","_color"],0,9,5,7,1,2,5,5,5],["cc.Sprite",["_type","_sizeMode","node","_materials","_spriteFrame"],1,1,3,6],"cc.SpriteFrame",["cc.Widget",["_alignFlags","_right","_bottom","alignMode","_left","_top","_originalWidth","_originalHeight","node"],-5,1],["cc.Button",["_N$transition","zoomScale","node","clickEvents","_N$target","_N$normalColor","_N$pressedColor","_N$disabledColor","_N$normalSprite","_N$pressedSprite","_N$hoverSprite","_N$disabledSprite"],1,1,9,1,5,5,5,6,6,6,6],["cc.Label",["_string","_N$horizontalAlign","_N$verticalAlign","_fontSize","_lineHeight","node","_materials"],-2,1,3],["cc.SceneAsset",["_name","asyncLoadAssets"],1],["cc.Node",["_name","_parent","_components","_contentSize","_trs"],2,1,12,5,7],["cc.Canvas",["_fitWidth","_fitHeight","node","_designResolution"],1,1,5],["454adgphRpA6oq5lB6Cg1fK",["clientTestVersion","node","testVersion"],2,1,1],["cc.ClickEvent",["_componentId","handler","target"],1,1],["cc.Camera",["_clearFlags","_depth","node"],1,1],["5c9b8FZiaNLMrMDs9T3rByf",["node"],3,1],["cc.Scene",["_name","autoReleaseAssets","_children","_anchorPoint","_trs"],1,2,5,7]],[[1,2,3,4,1],[0,0,6,3,4,5,2],[5,0,3,4,1,2,5,6,6],[0,0,6,3,4,2],[0,0,6,3,10,4,5,2],[0,0,6,3,4,5,8,2],[0,0,1,6,3,4,5,8,3],[3,0,8,2],[3,0,1,2,8,4],[1,2,3,1],[10,0,1,2,3],[6,0,1,3],[0,0,2,7,3,4,5,3],[0,0,6,7,3,5,2],[0,0,3,4,5,2],[0,0,6,7,3,4,5,2],[0,0,6,3,4,9,5,2],[0,0,1,6,3,4,5,3],[7,0,1,2,3,4,2],[8,0,1,2,3,3],[3,3,0,4,1,5,2,6,7,8,9],[9,0,1,2,2],[1,0,1,2,3,4,3],[1,0,2,3,4,2],[4,1,0,2,3,4,3],[4,0,2,3,5,6,7,4,8,9,10,11,2],[11,0,1,2,3],[12,0,1],[5,0,1,2,5,6,4],[13,0,1,2,3,4,3]],[[[{"name":"default_btn_disabled","rect":[0,0,40,40],"offset":[0,0],"originalSize":[40,40],"capInsets":[12,12,12,12]}],[2],0,[0],[2],[4]],[[[11,"LoadScene",null],[12,"Canvas","a5esZu+45LA5mBpvttspPD",[-5,-6,-7,-8,-9,-10,-11,-12,-13],[[19,true,false,-1,[5,750,1334]],[7,45,-2],[21,"1.1.0",-4,-3]],[5,750,1334],[375,667,0,0,0,0,1,1,1,1]],[13,"Top",1,[-15,-16,-17,-18,-19,-20,-21,-22,-23,-24,-25,-26],[[7,1,-14]],[0,667,0,0,0,0,1,1,1,1]],[1,"New Sprite",1,[[9,-27,[1]],[24,1.1,3,-29,[[10,"454adgphRpA6oq5lB6Cg1fK","startGame",1]],-28]],[5,410,151],[8.043,-419.976,0,0,0,0,1,1,1,0]],[14,"Background",[[22,1,0,-30,[29],30],[20,0,45,-85,-85,-18.753,-13.246999999999998,100,40,-31]],[5,270,72],[0,2.753,0,0,0,0,1,1,1,0]],[3,"Main Camera",1,[[26,7,-1,-32],[27,-33]],[5,960,640]],[18,"New Label",1,[[-34,[8,36,4.176999999999964,1.3799999999999955,-35]],1,4],[5,66.72,37.8],[337.463,-646.72,0,0,0,0,1,1,1,1]],[1,"version",1,[[2,"版本号:",30,30,1,1,-36,[28]],[8,36,74.243,2.282000000000039,-37]],[5,98.33,37.8],[251.592,-645.818,0,0,0,0,1,1,1,1]],[15,"New Button",1,[4],[[25,3,-38,[[10,"454adgphRpA6oq5lB6Cg1fK","startGame",1]],[4,4293322470],[4,4291348680],[4,3363338360],4,31,32,33,34]],[5,100,40],[0,-490.097,0,0,0,0,1,1,1,1]],[29,"New Node",true,[1],[0,0,0],[0,0,0,0,0,0,1,1,1,1]],[1,"New Sprite",1,[[9,-39,[0]]],[5,598,260],[5,239.142,0,0,0,0,1,1,1,1]],[2,"0.0.0",30,30,1,1,6,[2]],[3,"bg",1,[[0,-40,[3],4]],[5,750,1660]],[1,"New Sprite",2,[[0,-41,[5],6]],[5,750,127],[0,-64.575,0,0,0,0,1,1,1,1]],[1,"New Sprite",2,[[0,-42,[7],8]],[5,40,40],[225.516,-27.081,0,0,0,0,1,1,1,1]],[16,"progress",2,[[23,3,-43,[9],10]],[5,344,88],[0,0,0.5],[-172,-47.117,0,0,0,0,1,1,1,1]],[1,"New Sprite",2,[[0,-44,[11],12]],[5,30,30],[-102.254,-56.575,0,0,0,0,1,1,1,1]],[5,"New Sprite",2,[[0,-45,[13],14]],[5,30,30],[0.871,-84.206,0,0,0,0.25881904510252074,0.9659258262890683,1,1,1],[1,0,0,30]],[5,"New Sprite",2,[[0,-46,[15],16]],[5,30,30],[102.254,-57.272,0,0,0,-0.08715574274765817,0.9961946980917455,1,1,1],[1,0,0,-10]],[4,"time",2,[[2,"00:00",35,35,1,1,-47,[17]]],[4,4291291896],[5,87.59,44.1],[301.784,-27.081,0,0,0,0,1,1,1,1]],[4,"New Label",2,[[2,"第 轮",30,30,1,1,-48,[18]]],[4,4291291896],[5,126.68,37.8],[-262.714,-26.184,0,0,0,0,1,1,1,1]],[4,"level",2,[[28,"1",1,1,-49,[19]]],[4,4291291896],[5,22.25,50.4],[-262.714,-26.184,0,0,0,0,1,1,1,1]],[17,"star1",false,2,[[0,-50,[20],21]],[5,40,40],[-102.254,-56.575,0,0,0,0,1,1,1,1]],[6,"star2",false,2,[[0,-51,[22],23]],[5,40,40],[0.871,-84.206,0,0,0,0.25881904510252074,0.9659258262890683,1,1,1],[1,0,0,30]],[6,"star3",false,2,[[0,-52,[24],25]],[5,40,40],[102.254,-57.272,0,0,0,-0.08715574274765817,0.9961946980917455,1,1,1],[1,0,0,-10]],[3,"gezi",1,[[0,-53,[26],27]],[5,682,682]]],0,[0,0,1,0,0,1,0,4,11,0,0,1,0,-1,5,0,-2,10,0,-3,3,0,-4,6,0,-5,12,0,-6,2,0,-7,25,0,-8,7,0,-9,8,0,0,2,0,-1,13,0,-2,14,0,-3,15,0,-4,16,0,-5,17,0,-6,18,0,-7,19,0,-8,20,0,-9,21,0,-10,22,0,-11,23,0,-12,24,0,0,3,0,5,3,0,0,3,0,0,4,0,0,4,0,0,5,0,0,5,0,-1,11,0,0,6,0,0,7,0,0,7,0,0,8,0,0,10,0,0,12,0,0,13,0,0,14,0,0,15,0,0,16,0,0,17,0,0,18,0,0,19,0,0,20,0,0,21,0,0,22,0,0,23,0,0,24,0,0,25,0,6,9,1,3,9,4,3,8,53],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-1,-1,-1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,1,-1,-1,-1,-1,1,-1,1,-1,1,-1,1,-1,-1,1,7,8,9,10],[0,0,0,0,5,0,6,0,7,0,8,0,1,0,1,0,1,0,0,0,0,2,0,2,0,2,0,9,0,0,10,3,11,3,12]],[[{"name":"default_btn_pressed","rect":[0,0,40,40],"offset":[0,0],"originalSize":[40,40],"capInsets":[12,12,12,12]}],[2],0,[0],[2],[13]],[[{"name":"default_btn_normal","rect":[0,0,40,40],"offset":[0,0],"originalSize":[40,40],"capInsets":[12,12,12,12]}],[2],0,[0],[2],[14]]]] \ No newline at end of file diff --git a/build/LockDiagram/assets/main/import/08/08429701d.2aec9.json b/build/LockDiagram/assets/main/import/08/08429701d.2aec9.json new file mode 100644 index 0000000..691a7fb --- /dev/null +++ b/build/LockDiagram/assets/main/import/08/08429701d.2aec9.json @@ -0,0 +1 @@ +[1,["ecpdLyjvZBwrvm+cedCcQy","84JfQLxmlEaqsLLa+JLvXC","57O6DZWodKH4R/vMXl3IHc","a2MjXRFdtLlYQ5ouAFv/+R","5eNEaF2+BFCYtmJ923Li0j","36trrPK0JBBbWuiWOAKeB7","17rzRtz75K0rLT5GnT3MGo","4cfB8L6+dAJYFIrGHLKi2P","5fkk3C35JEiosw9NDLquKc","fcu4mSPMxElaGLfUNnlqmS","d9W9v7v09KKoBjhiJelYPp","daQR/1lDFO7IlDsueGooQV","488K3Rd0FLmrJeGGrUV+Ss","90ezPwmYxE4rKjaX5W3D67","4d1ZT+pZlGi6guSjb1Ez7B","e8g7kotjdE2a+NuD6Faln3","02delMVqdBD70a/HSD99FK"],["node","_spriteFrame","_parent","progress","Guide","LevelLabel","TimeLabel","Block","_N$target","scene","kuang1_Prefab","kuang2_Prefab","root","data","UI","_textureSetter"],[["cc.Node",["_name","_active","_opacity","_id","_components","_contentSize","_parent","_trs","_children","_color","_prefab","_eulerAngles"],-1,9,5,1,7,2,5,4,5],["cc.Sprite",["_sizeMode","_type","node","_materials","_spriteFrame"],1,1,3,6],["cc.Label",["_string","_N$horizontalAlign","_N$verticalAlign","_lineHeight","_fontSize","_N$overflow","node","_materials"],-3,1,3],["cc.Node",["_name","_parent","_trs","_components","_contentSize","_children","_anchorPoint","_color"],2,1,7,2,5,9,5,5],["cc.Widget",["_alignFlags","_originalWidth","_originalHeight","node"],0,1],["cc.PrefabInfo",["fileId","root","asset"],2,1,1],"cc.SpriteFrame",["cc.SceneAsset",["_name","asyncLoadAssets"],1],["b0432BA295DjIOcuitdGKO1",["node","Block","TimeLabel","LevelLabel","Guide","progress","Top","kuang1_Prefab","kuang2_Prefab"],3,1,1,1,1,1,1,1,6,6],["cc.Canvas",["_fitWidth","_fitHeight","node","_designResolution"],1,1,5],["cc.BlockInputEvents",["node"],3,1],["cc.Button",["zoomScale","_N$transition","node","clickEvents","_N$target"],1,1,9,1],["cc.ClickEvent",["_componentId","handler","target"],1,1],["cc.Scene",["_name","_active","autoReleaseAssets","_children","_anchorPoint","_trs"],0,2,5,7],["cc.Camera",["_clearFlags","_depth","node"],1,1],["cc.Prefab",["_name"],2],["d63eeqXqS5GV5T/inM6K0aA",["node","UI"],3,1,6]],[[1,2,3,4,1],[0,0,6,4,5,7,2],[4,0,3,2],[5,0,1,2,2],[0,0,6,4,5,2],[0,0,1,6,4,9,5,7,3],[0,0,1,6,4,10,5,3],[2,0,3,1,2,5,6,7,6],[0,0,6,2],[0,0,6,4,5,7,11,2],[0,0,1,6,4,5,7,11,3],[0,0,1,2,6,4,9,5,7,4],[3,0,1,3,7,4,2,2],[4,0,1,2,3,4],[1,0,2,3,4,2],[1,2,3,1],[10,0,1],[2,0,4,3,1,2,6,7,6],[2,0,1,2,6,7,4],[7,0,1,3],[0,0,8,4,7,2],[0,0,8,4,5,2],[0,0,1,6,8,4,5,3],[0,0,3,8,4,5,7,3],[0,0,2,6,4,9,5,3],[0,0,1,2,6,4,5,4],[0,0,6,4,9,5,7,2],[0,0,1,6,4,5,7,3],[0,0,8,4,10,5,2],[0,0,1,6,4,10,5,7,3],[3,0,1,5,2,2],[3,0,1,3,4,6,2,2],[8,0,1,2,3,4,5,6,7,8,1],[9,0,1,2,3,3],[1,1,2,3,2],[11,0,1,2,3,4,3],[12,0,1,2,3],[13,0,1,2,3,4,5,4],[14,0,1,2,3],[2,0,4,3,1,2,5,6,7,7],[15,0,2],[16,0,1,1],[5,1,2,1]],[[[[19,"GameScene",null],[20,"Top",[-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13],[[2,1,-1]],[0,667,0,0,0,0,1,1,1,1]],[21,"GameNode",[-21,-22,-23,1,-24,-25,-26],[[32,-19,-18,-17,-16,-15,-14,1,37,38],[2,45,-20]],[5,750,1334]],[22,"Guide",false,2,[-28,-29,-30,-31,-32,-33,-34],[[2,45,-27]],[5,750,1334]],[23,"Canvas","a5esZu+45LA5mBpvttspPD",[-37,2],[[33,true,false,-35,[5,750,1334]],[2,45,-36]],[5,750,1334],[375,667,0,0,0,0,1,1,1,1]],[30,"Block",2,[[8,"inside",-38],[8,"outside",-39]],[0,25,0,0,0,0,1,1,1,1]],[24,"New Sprite(Splash)",30,3,[[14,0,-40,[25],26],[13,45,750,1334,-41],[16,-42]],[4,4278190080],[5,750,1334]],[1,"btn",3,[[0,-43,[33],34],[35,1.1,3,-45,[[36,"b0432BA295DjIOcuitdGKO1","closeGuide",2]],-44]],[5,270,72],[0,-142.46,0,0,0,0,1,1,1,0]],[25,"Mask",false,0,2,[[14,0,-46,[35],36],[16,-47],[13,45,750,1334,-48]],[5,750,1334]],[37,"New Node",false,true,[4],[0,0,0],[0,0,0,0,0,0,1,1,1,1]],[1,"Main Camera",4,[[38,7,-1,-49]],[5,960,640],[1,0,0,0,0,0,1,1,1,1]],[4,"bg",2,[[0,-50,[0],1]],[5,750,1660]],[4,"gezi",2,[[0,-51,[2],3]],[5,682,682]],[1,"New Sprite",1,[[0,-52,[4],5]],[5,750,127],[0,-64.575,0,0,0,0,1,1,1,1]],[1,"New Sprite",1,[[0,-53,[6],7]],[5,40,40],[225.516,-27.081,0,0,0,0,1,1,1,1]],[31,"progress",1,[-54],[5,344,88],[0,0,0.5],[-172,-47.117,0,0,0,0,1,1,1,1]],[34,3,15,[8]],[1,"New Sprite",1,[[0,-55,[9],10]],[5,30,30],[-102.254,-56.575,0,0,0,0,1,1,1,1]],[9,"New Sprite",1,[[0,-56,[11],12]],[5,30,30],[0.871,-84.206,0,0,0,0.25881904510252074,0.9659258262890683,1,1,1],[1,0,0,30]],[9,"New Sprite",1,[[0,-57,[13],14]],[5,30,30],[102.254,-57.272,0,0,0,-0.08715574274765817,0.9961946980917455,1,1,1],[1,0,0,-10]],[12,"time",1,[-58],[4,4291291896],[5,87.59,44.1],[301.784,-27.081,0,0,0,0,1,1,1,1]],[17,"00:00",35,35,1,1,20,[15]],[26,"lianxi",1,[[17,"第 轮",30,30,1,1,-59,[16]]],[4,4291291896],[5,126.68,37.8],[-262.714,-26.184,0,0,0,0,1,1,1,1]],[12,"level",1,[-60],[4,4291291896],[5,22.25,50.4],[-262.714,-26.184,0,0,0,0,1,1,1,1]],[18,"1",1,1,23,[17]],[27,"star1",false,1,[[0,-61,[18],19]],[5,40,40],[-102.254,-56.575,0,0,0,0,1,1,1,1]],[10,"star2",false,1,[[0,-62,[20],21]],[5,40,40],[0.871,-84.206,0,0,0,0.25881904510252074,0.9659258262890683,1,1,1],[1,0,0,30]],[10,"star3",false,1,[[0,-63,[22],23]],[5,40,40],[102.254,-57.272,0,0,0,-0.08715574274765817,0.9961946980917455,1,1,1],[1,0,0,-10]],[5,"tip",false,2,[[18,"练习",1,1,-64,[24]]],[4,4291291896],[5,80,50.4],[0,381.5,0,0,0,0,1,1,1,1]],[4,"bg",3,[[0,-65,[27],28]],[5,728,440]],[11,"one",false,0,3,[[7,"屏幕中央会短暂出现一个零件图样,接下来请找出相同形状的零件并选中它。",60,1,1,3,-66,[29]]],[4,4283400111],[5,600,195.6],[-6.417,48.77,0,0,0,0,1,1,1,1]],[5,"two",false,3,[[7,"接下来,周围的平台上会出现一个或很多零件,找到独一无二的零件。",60,1,1,3,-67,[30]]],[4,4283400111],[5,600,195.6],[-6.417,30.651,0,0,0,0,1,1,1,1]],[11,"three",false,0,3,[[39,"最后阶段,周围和中心会同时出现零件,你需要同时应对两种规则,加油!\n提示:中间区域找出相同零件,周边区域找出唯一的零件。",38,60,1,1,3,-68,[31]]],[4,4283400111],[5,650,255.6],[-6.417,42.181,0,0,0,0,1,1,1,1]],[5,"four",false,3,[[7,"恭喜你完成练习!",60,1,1,3,-69,[32]]],[4,4283400111],[5,600,75.6],[-6.417,30.651,0,0,0,0,1,1,1,1]]],0,[0,0,1,0,-1,13,0,-2,14,0,-3,15,0,-4,17,0,-5,18,0,-6,19,0,-7,20,0,-8,22,0,-9,23,0,-10,25,0,-11,26,0,-12,27,0,3,16,0,4,3,0,5,24,0,6,21,0,7,5,0,0,2,0,0,2,0,-1,11,0,-2,12,0,-3,5,0,-5,28,0,-6,3,0,-7,8,0,0,3,0,-1,6,0,-2,29,0,-3,30,0,-4,31,0,-5,32,0,-6,33,0,-7,7,0,0,4,0,0,4,0,-1,10,0,2,5,0,2,5,0,0,6,0,0,6,0,0,6,0,0,7,0,8,7,0,0,7,0,0,8,0,0,8,0,0,8,0,0,10,0,0,11,0,0,12,0,0,13,0,0,14,0,-1,16,0,0,17,0,0,18,0,0,19,0,-1,21,0,0,22,0,-1,24,0,0,25,0,0,26,0,0,27,0,0,28,0,0,29,0,0,30,0,0,31,0,0,32,0,0,33,0,9,9,1,2,2,2,2,4,4,2,9,69],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16],[-1,1,-1,1,-1,1,-1,1,-1,-1,1,-1,1,-1,1,-1,-1,-1,-1,1,-1,1,-1,1,-1,-1,1,-1,1,-1,-1,-1,-1,-1,1,-1,1,10,11,1],[0,5,0,6,0,7,0,8,0,0,1,0,1,0,1,0,0,0,0,2,0,2,0,2,0,0,3,0,9,0,0,0,0,0,10,0,3,4,4,11]],[[[40,"kuang2"],[28,"kuang2",[-4,-5,-6,-7],[[15,-2,[7]],[41,-3,8]],[42,-1,0],[5,114,114]],[6,"texture",false,1,[[15,-8,[0]]],[3,"23WEB0XcVFr77K2a8TMpQf",1,0],[5,100,100]],[29,"lock",false,1,[[0,-9,[1],2]],[3,"6c4kkHqqBGk7Uzo0NLuWTe",1,0],[5,46,74],[0.607,1.821,0,0,0,0,1,1,1,1]],[6,"yes",false,1,[[0,-10,[3],4]],[3,"8fLsGa13pEq5tEAv7CeQA9",1,0],[5,74,60]],[6,"err",false,1,[[0,-11,[5],6]],[3,"81rn3gLHtJJZCY62CJzWlY",1,0],[5,57,49]]],0,[0,12,1,0,0,1,0,0,1,0,-1,2,0,-2,3,0,-3,4,0,-4,5,0,0,2,0,0,3,0,0,4,0,0,5,0,13,1,11],[0,0,0,0,0,0,0,0,0],[-1,-1,1,-1,1,-1,1,-1,14],[0,0,12,0,13,0,14,0,15]],[[{"name":"default_sprite_splash","rect":[0,0,2,2],"offset":[0,0],"originalSize":[2,2],"capInsets":[0,0,0,0]}],[6],0,[0],[15],[16]]]] \ No newline at end of file diff --git a/build/LockDiagram/assets/main/import/09/09b7df110.c36e8.json b/build/LockDiagram/assets/main/import/09/09b7df110.c36e8.json new file mode 100644 index 0000000..5bf2f3e --- /dev/null +++ b/build/LockDiagram/assets/main/import/09/09b7df110.c36e8.json @@ -0,0 +1 @@ +{"type":"cc.Texture2D","data":"0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1|0,9729,9729,33071,33071,0,0,1"} \ No newline at end of file diff --git a/build/LockDiagram/assets/main/index.472d7.js b/build/LockDiagram/assets/main/index.472d7.js new file mode 100644 index 0000000..cc550d2 --- /dev/null +++ b/build/LockDiagram/assets/main/index.472d7.js @@ -0,0 +1 @@ +window.__require=function t(e,i,n){function o(s,a){if(!i[s]){if(!e[s]){var c=s.split("/");if(c=c[c.length-1],!e[c]){var l="function"==typeof __require&&__require;if(!a&&l)return l(c,!0);if(r)return r(c,!0);throw new Error("Cannot find module '"+s+"'")}s=c}var h=i[s]={exports:{}};e[s][0].call(h.exports,function(t){return o(e[s][1][t]||t)},h,h.exports,t,e,i,n)}return i[s].exports}for(var r="function"==typeof __require&&__require,s=0;s=0;a--)(o=t[a])&&(s=(r<3?o(s):r>3?o(e,i,s):o(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};Object.defineProperty(i,"__esModule",{value:!0});var s=cc._decorator,a=s.ccclass,c=s.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.audioGameBgm0=null,e.chehui=null,e.jineng=null,e.qingkong=null,e.fangxiang=null,e.build=null,e.win=null,e.lose=null,e}var i;return o(e,t),i=e,e.prototype.onLoad=function(){null==i._instance&&(i._instance=this,cc.game.addPersistRootNode(this.node),this.reward=!1,this.finish=!1,this.rewardCount=0,this.ctor(),this.preload())},e.prototype.ctor=function(){this.mAudioMap={},this.bgMusicVolume=.1,this.effectMusicVolume=1,this.mMusicSwitch=1,this.mEffectSwitch=1},e.prototype.play=function(t,e,i,n){n?this.bgMusicVolume:this.effectMusicVolume,cc.audioEngine.setEffectsVolume(1),cc.audioEngine.setMusicVolume(1),"lose"==t.name?cc.audioEngine.setEffectsVolume(.5):cc.audioEngine.setEffectsVolume(1);var o=cc.audioEngine.playEffect(t,e);return i&&cc.audioEngine.setFinishCallback(o,function(){i.call(this)}.bind(this)),this.mAudioMap[t]=o,t},e.prototype.save=function(){},e.prototype.preload=function(){cc.sys.platform===cc.sys.WECHAT_GAME&&[this.audioGameBgm0].forEach(function(){})},e.prototype.getAudioMusicSwitch=function(){return this.mMusicSwitch},e.prototype.getAudioEffectSwitch=function(){return this.mEffectSwitch},e.prototype.trunAudioSound=function(t){this.switchMusic(t),this.switchEffect(t)},e.prototype.switchMusic=function(t){this.mMusicSwitch!=(t?1:0)&&(this.mMusicSwitch=1-this.mMusicSwitch),t?this.playMusicGame():this.stopMusic()},e.prototype.switchEffect=function(t){this.mEffectSwitch!=(t?1:0)&&(this.mEffectSwitch=1-this.mEffectSwitch)},e.prototype.onHide=function(){cc.audioEngine.pauseAll()},e.prototype.onShow=function(){cc.audioEngine.resumeAll()},e.prototype.playEffect=function(t,e){if(this[t])return this.play(this[t],!1,e,this.mEffectSwitch)},e.prototype.playMusic=function(t,e,i){i=!(void 0!==i&&!i),this.stopMusic(),this.mMusicKey=this.play(t,i,e,!0)},e.prototype.playMusicGame=function(){this.playMusic(this.audioGameBgm0,{},!0)},e.prototype.stopMusic=function(){var t=this.mAudioMap[this.mMusicKey];void 0!==t&&(cc.sys.isBrowser?cc.audioEngine.stop(t):t.stop(),cc.audioEngine.stop(t))},e.prototype.playGameStart=function(){},e.prototype.playGameOver=function(){},e.prototype.playGameResultFailed=function(){},e.prototype.playGameResultSuccess=function(){},e.prototype.playAudioButton=function(){},r([c(cc.AudioClip)],e.prototype,"audioGameBgm0",void 0),r([c(cc.AudioClip)],e.prototype,"chehui",void 0),r([c(cc.AudioClip)],e.prototype,"jineng",void 0),r([c(cc.AudioClip)],e.prototype,"qingkong",void 0),r([c(cc.AudioClip)],e.prototype,"fangxiang",void 0),r([c(cc.AudioClip)],e.prototype,"build",void 0),r([c(cc.AudioClip)],e.prototype,"win",void 0),r([c(cc.AudioClip)],e.prototype,"lose",void 0),i=r([a],e)}(cc.Component);i.default=l,cc._RF.pop()},{}],Block:[function(t,e,i){"use strict";cc._RF.push(e,"d63eeqXqS5GV5T/inM6K0aA","Block");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,s=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(r<3?o(s):r>3?o(e,i,s):o(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};Object.defineProperty(i,"__esModule",{value:!0});var s=cc.Enum({problem_In:1,problem_Out:2,correct_In:3,correct_Out:4,err_In:5,err_Out:6}),a=cc._decorator,c=a.ccclass,l=a.property,h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.UI=null,e}return o(e,t),e.prototype.onLoad=function(){this.GameManager=this.node.parent.parent.parent.getComponent("GameManager"),this._touch=!1,this._start=!1,this._answer=!1,this._inside=!0,this.node.on(cc.Node.EventType.TOUCH_START,this.touchStart,this)},e.prototype.init=function(){s.correct_Out},e.prototype.setId=function(t){this._idNumber=t},e.prototype.answerShow=function(t){var e=this;this.node.getChildByName("texture").active=!0;var i="texture"+t;this.node.getChildByName("texture").getComponent(cc.Sprite).spriteFrame=this.UI._spriteFrames[i],cc.tween(this.node.getChildByName("texture")).to(.01,{opacity:255}).delay(this.GameManager.config.showTime-.05).call(function(){e._inside&&(e.node.getChildByName("texture").opacity=0)}).start()},e.prototype.lockShow=function(t,e){this.node.getChildByName("texture").active=!1,this._answer=t,this._inside=e,this.node.getChildByName("lock").active=!0,this._touch=!0},e.prototype.lockHide=function(){this.node.getChildByName("lock").active=!1,this._touch=!1},e.prototype.show=function(t,e,i){var n=this;this._inside=e,e&&(this._answer=t);var o="texture"+i;this.node.getChildByName("texture").active=!0,this.node.getChildByName("texture").getComponent(cc.Sprite).spriteFrame=this.UI._spriteFrames[o],cc.tween(this.node.getChildByName("texture")).to(.01,{opacity:255}).call(function(){e&&(n._touch=!0)}).start()},e.prototype.set_Pos=function(){this._start=!0},e.prototype.set_Touch=function(t){this._touch=t},e.prototype.start=function(){},e.prototype.touchStart=function(){if(this._touch)if(this._answer){this.node.getChildByName("yes").active=!0;var t={result:!0,type:this._inside,id:this._idNumber};cc.fx.Notifications.emit("result",t)}else this.node.getChildByName("err").active=!0,t={result:!1,type:this._inside,id:this._idNumber},cc.fx.Notifications.emit("result",t)},r([l(cc.Asset)],e.prototype,"UI",void 0),r([c],e)}(cc.Component);i.default=h,cc._RF.pop()},{}],DouyinEntranceView:[function(t,e,i){"use strict";cc._RF.push(e,"8a024+q5K9MrpxcaTvucSDB","DouyinEntranceView");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,s=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(r<3?o(s):r>3?o(e,i,s):o(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};Object.defineProperty(i,"__esModule",{value:!0}),i.DouyinEntranceView=void 0;var s=t("./MiniGameSdk"),a=cc._decorator,c=a.ccclass,l=(a.property,function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return o(e,t),e.prototype.start=function(){},e.prototype.update=function(){},e.prototype.onCloseClick=function(){this.node.active=!1},e.prototype.onNavigateToDouyinClick=function(){s.MiniGameSdk.BytedanceSidebar.navigateToSidebar(function(t){t?console.log("\u8df3\u8f6c\u6210\u529f"):console.log("\u8df3\u8f6c\u5931\u8d25")})},r([c],e)}(cc.Component));i.DouyinEntranceView=l,cc._RF.pop()},{"./MiniGameSdk":"MiniGameSdk"}],DynamicAtlasManager:[function(t,e){"use strict";cc._RF.push(e,"5c9b8FZiaNLMrMDs9T3rByf","DynamicAtlasManager"),cc.Class({extends:cc.Component,properties:{},onLoad:function(){cc.dynamicAtlasManager.enabled=!1}}),cc._RF.pop()},{}],GameAppStart:[function(t,e,i){"use strict";cc._RF.push(e,"61d4ccY2ztLMYIh8WvqPPAw","GameAppStart"),Object.defineProperty(i,"__esModule",{value:!0});var n=t("../Config/GameConfig"),o=t("../Crypto/HttpUtil"),r=t("../Music/AudioManager"),s=t("../Notification/Notification"),a=t("../Storage/Storage"),c=t("../Tool/GameTool");window.initMgr=function(){cc.fx||(cc.fx={},cc.fx.StateInfo={debugMode:!0,networkConnected:!0,networkType:"none",isOnForeground:!0},cc.fx.GameConfig=n.GameConfig,cc.fx.HttpUtil=o.default,cc.fx.GameTool=c.GameTool,cc.fx.AudioManager=r.default,cc.fx.Notifications=s.Notifications,cc.fx.StorageMessage=a.StorageMessage,cc.fx.ShareInfo={queryId:-1},cc.fx.Message={control:"10001",startGame:"10002",next:"10003",changePath:"10004",changeMap:"10005",nextWater:"10006",addEnd:"10007",setData:"10008",guideNext:"10009",showResult:"10010",removeTip:"10011"},cc.fx.BurialShareType={Default:"default",Invite:"invite",DailyInviteRoomJoin:"invite_join_room",DailyInviteFriend:"invite_friend",DailyInviteGroup:"invate_group",DailyInviteGroupAlive:"invate_alive",DailyInviteGroupReward:"invate_rewared",DailyInviteGroupBox:"invate_box",DailyInviteGroupBall:"invate_ball",MatchResult:"matchResult",MatchFix5:"MatchFix5",MatchFix20:"MatchFix20",MatchFix100:"MatchFix100",MatchFix500:"MatchFix500",NewerRedEnvelope:"newerRedEnvelope",CoinRoomResult:"coinRoomResult",HighRate:"highRate",CoinRoomWinStreak:"coinRoomWinStreak",CoinRoomBankruptcy1:"coinRoomBankruptcy1",CoinRoomBankruptcy2:"coinRoomBankruptcy2",CoinRoomBankruptcy3:"coinRoomBankruptcy3"},cc.fx.ShareWhereReward={Group:"group",Friend:"friend",All:"all"},cc.fx.storageType=cc.Enum({storageTypeCustom:1000101}),cc.fx.tipType=cc.Enum({tipOne:"\u795e\u519c\u6c0f\u56de\u5230\u5bb6\u4e2d\uff0c\u5f00\u59cb\u6574\u7406\u4eca\u5929\u6536\u96c6\u6765\u7684\u7269\u54c1\u3002\u5f53\u4ed6\u7b2c\u4e00\u6b21\u62ff\u51fa\u6216\u8bf4\u51fa\u4e00\u79cd\u690d\u7269\u65f6\uff0c\u8bf7\u544a\u8bc9\u4ed6\u8fd9\u662f\u65b0\u690d\u7269\u3002",tipTwo:"\u5982\u679c\u4ed6\u62ff\u51fa\u6216\u8bf4\u51fa\u7684\u690d\u7269\u4f60\u4eca\u5929\u770b\u5230\u8fc7\uff0c\u8bf7\u544a\u8bc9\u4ed6\u4e0a\u6b21\u662f\u770b\u5230\u7684\uff1b\u5982\u679c\u4f60\u542c\u4ed6\u8bf4\u8fc7\uff0c\u5219\u8bf7\u544a\u8bc9\u4ed6\u4e0a\u6b21\u662f\u542c\u5230\u7684\u3002",tipErrNew:"\u8fd9\u662f\u8fd9\u5c40\u6e38\u620f\u7b2c\u4e00\u6b21\u51fa\u73b0{\u690d\u7269}",tipErrOld:"{\u690d\u7269}\u521a\u624d\u51fa\u73b0\u8fc7\u5462",tipErrHear:"\u4e0a\u6b21\u9047\u5230{\u690d\u7269}\u65f6\uff0c\u4f3c\u4e4e\u4e0d\u662f\u542c\u5230\u7684\u5427",tipErrSee:"\u4e0a\u6b21\u9047\u5230{\u690d\u7269}\u65f6\uff0c\u4f3c\u4e4e\u4e0d\u662f\u770b\u5230\u7684\u5427",tipErrLast:"\u4e4b\u524d\u786e\u5b9e\u770b\u5230\u8fc7{\u690d\u7269}\uff0c\u4f46\u6700\u8fd1\u4e00\u6b21\u4f3c\u4e4e\u4e0d\u662f\u770b\u5230\u7684\u5462"}))},cc._RF.pop()},{"../Config/GameConfig":"GameConfig","../Crypto/HttpUtil":"HttpUtil","../Music/AudioManager":"AudioManager","../Notification/Notification":"Notification","../Storage/Storage":"Storage","../Tool/GameTool":"GameTool"}],GameConfig:[function(t,e,i){"use strict";cc._RF.push(e,"c5692vnhwNF5J9nI7VNKQNW","GameConfig");var n=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,s=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(r<3?o(s):r>3?o(e,i,s):o(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};Object.defineProperty(i,"__esModule",{value:!0}),i.GameConfig=void 0;var o=t("../Share/share"),r=cc._decorator,s=r.ccclass,a=(r.property,function(){function t(){}var e;return e=t,Object.defineProperty(t,"Instance",{get:function(){return null==this._instance&&(this._instance=new e),this._instance},enumerable:!1,configurable:!0}),t.init=function(t){this.CLICK_init(),this.LEVEL_INFO_init(),this.GM_INFO_init(),this.GAME_DATA=[],o.WeChat.setShare(location.href),t||this.Authentication()},t.GM_INFO_init=function(){this.GM_INFO={isCustom:!1,mean_Time:0,total:0,currSeed:2e5,gameId:"100019",userId:0,guide:!0,url:"https://api.sparkus.cn",success:!1,matchId:null,custom:0,round:0,level:0,guide_Level:4,startTime:-1,random:0,stepTimeList:0,successList:[],fen:0,score:0,igniteCount:0,min_Steps:0,min_Time:0}},t.GM_INFO_SET=function(t,e){this.GM_INFO[t]=e},t.CLICK_init=function(){this.CLICK_DATA={type:1,success:!1,round:0,duration:0,rightChoiceOuter:[],userChoiceOuter:[],rightChoiceInner:[],userChoiceInner:[]}},t.CLICK_SET=function(t,e){this.CLICK_DATA[t]=e},t.LEVEL_INFO_init=function(){this.LEVEL_INFO=[{id:"1",inside:3,insideType:1,outside:0,outsideType:1,showTime:1.2},{id:"2",inside:3,insideType:2,outside:0,outsideType:1,showTime:1.2},{id:"3",inside:3,insideType:3,outside:0,outsideType:1,showTime:1},{id:"4",inside:4,insideType:3,outside:0,outsideType:1,showTime:1},{id:"5",inside:0,insideType:1,outside:1,outsideType:1,showTime:.9},{id:"6",inside:0,insideType:1,outside:1,outsideType:2,showTime:.9},{id:"7",inside:0,insideType:1,outside:2,outsideType:1,showTime:1.2},{id:"8",inside:0,insideType:1,outside:3,outsideType:2,showTime:1.2},{id:"9",inside:3,insideType:1,outside:1,outsideType:1,showTime:1.2},{id:"10",inside:3,insideType:2,outside:1,outsideType:2,showTime:1.2},{id:"11",inside:3,insideType:1,outside:2,outsideType:1,showTime:1.8},{id:"12",inside:3,insideType:2,outside:2,outsideType:2,showTime:1.8},{id:"13",inside:4,insideType:3,outside:3,outsideType:3,showTime:1.8},{id:"14",inside:4,insideType:3,outside:3,outsideType:3,showTime:1.8},{id:"15",inside:5,insideType:3,outside:3,outsideType:3,showTime:1.5},{id:"16",inside:5,insideType:3,outside:3,outsideType:3,showTime:1.5}],this.GUIDE_INFO=[{id:"1",inside:3,insideType:1,outside:0,outsideType:1,showTime:1e4},{id:"5",inside:0,insideType:1,outside:1,outsideType:1,showTime:1e4},{id:"7",inside:0,insideType:1,outside:2,outsideType:1,showTime:1e4}]},t.Authentication=function(){cc.fx.GameTool.Authentication()},t._instance=null,e=n([s("GameConfig")],t)}());i.GameConfig=a,cc._RF.pop()},{"../Share/share":"share"}],GameManager:[function(t,e,i){"use strict";cc._RF.push(e,"b0432BA295DjIOcuitdGKO1","GameManager");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,s=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(r<3?o(s):r>3?o(e,i,s):o(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};Object.defineProperty(i,"__esModule",{value:!0});var s=cc._decorator,a=s.ccclass,c=s.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.kuang1_Prefab=null,e.kuang2_Prefab=null,e.Block=null,e.TimeLabel=null,e.LevelLabel=null,e.Guide=null,e.progress=null,e.Top=null,e}return o(e,t),e.prototype.onLoad=function(){this.guide_State=!1,this.level=cc.fx.GameConfig.GM_INFO.level,this.guide_Level=cc.fx.GameConfig.GM_INFO.guide_Level,this.LevelLabel.string=this.level+1+"",this.progress.fillRange=cc.fx.GameConfig.GM_INFO.score/24,this.progress.fillRange>=.2&&(this.Top.getChildByName("star1").active=!0),this.progress.fillRange>=.5&&(this.Top.getChildByName("star2").active=!0),this.progress.fillRange>=.8&&(this.Top.getChildByName("star3").active=!0),0==this.level&&4==this.guide_Level||4==this.level&&3==this.guide_Level||8==this.level&&1==this.guide_Level?this.openGuide(!1):(this.LevelLabel.node.active=!0,this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string="\u7b2c \u8f6e",this.init())},e.prototype.init=function(){var t=this;4==this.level&&2==this.guide_Level&&(cc.fx.GameConfig.GM_INFO.guide_Level-=1,this.guide_State=!0,this.LevelLabel.node.active=!1,this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string="\u7ec3 \u4e60"),this.result=0,this.countTime=6,this.TimeLabel.string=cc.fx.GameTool.getTimeMargin(this.countTime),this.createBlock(),setTimeout(function(){t.createCustom()},1e3)},e.prototype.openGuide=function(t){this.Guide.active=!0,this.guide_State=!0,t||(cc.fx.GameConfig.GM_INFO.guide_Level-=1),this.Guide.getChildByName("one").active=!1,this.Guide.getChildByName("two").active=!1,this.Guide.getChildByName("three").active=!1,this.Guide.getChildByName("four").active=!1;var e="one";0==this.level?(e="one",this.LevelLabel.node.active=!1,this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string="\u7ec3 \u4e60"):4==this.level?(e="two",this.LevelLabel.node.active=!1,this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string="\u7ec3 \u4e60"):8==this.level&&(e="three",this.guide_State=!1),t&&(e="four"),this.Guide.getChildByName(e).active=!0,cc.tween(this.Guide.getChildByName(e)).to(.5,{opacity:255}).start()},e.prototype.closeGuide=function(){this.Guide.getChildByName("four").active?(this.Guide.active=!1,cc.director.loadScene("GameScene")):(this.Guide.active=!1,this.init())},e.prototype.createBlock=function(){this.outside_Array=[],this.inside_Array=[],this.outside=[],this.inside=[];for(var t=0;t<16;t++){(o=cc.instantiate(this.kuang1_Prefab)).getComponent("Block").setId(t),o.parent=this.Block.getChildByName("outside");var e=void 0,i=0;t<5?(e=142*t-284,i=259):t<9?(e=284,i=259-142*(t-4)):t<13?(e=284-142*(t-8),i=-309):t<16&&(e=-284,i=142*(t-12)-309),o.setPosition(e,i),this.outside_Array.push(o)}for(var n=3;n<12;n++){var o;(o=cc.instantiate(this.kuang2_Prefab)).getComponent("Block").setId(n),o.parent=this.Block.getChildByName("inside"),o.setPosition(n%3*132-132,239-132*parseInt(n/3+"")),this.inside_Array.push(o)}},e.prototype.createCustom=function(){this.level=cc.fx.GameConfig.GM_INFO.level,this.LevelLabel.string=this.level+1+"",this.config=cc.fx.GameConfig.LEVEL_INFO[this.level],4==this.level&&2==this.guide_Level&&(this.config=cc.fx.GameConfig.LEVEL_INFO[6]),this.pass=!1,this.answerInsideTexture=Math.floor(14*Math.random()+1),this.insideTexture=[],this.outsideTexture=[];for(var t=0;t<14;t++)t+1!=this.answerInsideTexture&&this.insideTexture.push(t+1);if(cc.fx.GameTool.shuffleArray(this.insideTexture),this.answerOutsideTexture=this.insideTexture[11],this.config.inside>0){this.result+=1;var e=100*Math.random();1==this.config.insideType?this.inside=e>=50?[0,1,2]:[6,7,8]:2==this.config.insideType?this.inside=e>=50?[0,3,6]:[2,5,8]:(this.inside=cc.fx.GameTool.shuffleArray([0,1,2,3,5,6,7,8]),this.inside.splice(this.config.inside,this.inside.length-this.config.inside)),this.answerInside=this.inside[Math.floor(Math.random()*this.inside.length)]}if(this.config.outside>0)if(this.result+=1,1==this.config.outsideType?this.outside=[1,2,3,5,6,7,9,10,11,13,14,15]:2==this.config.outsideType?this.outside=[0,4,8,12]:this.outside=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],cc.fx.GameTool.shuffleArray(this.outside),this.answerOutside=this.outside[Math.floor(Math.random()*this.outside.length)],2==this.config.outside)for(var i=0;i<15;i++)this.outsideTexture.push(this.insideTexture[3]);else if(3==this.config.outside){for(this.outsideTexture=[this.insideTexture[5],this.insideTexture[6],this.insideTexture[5],this.insideTexture[6],this.insideTexture[5]],i=0;i<10;i++)(n=100*Math.random())>50?this.outsideTexture.push(this.insideTexture[5]):this.outsideTexture.push(this.insideTexture[6]);cc.fx.GameTool.shuffleArray(this.outsideTexture)}else if(4==this.config.outside){for(this.outsideTexture=[this.insideTexture[2],this.insideTexture[4],this.insideTexture[6],this.insideTexture[2],this.insideTexture[4],this.insideTexture[6]],i=0;i<9;i++){var n;(n=100*Math.random())<33?this.outsideTexture.push(this.insideTexture[2]):n<66?this.outsideTexture.push(this.insideTexture[4]):this.outsideTexture.push(this.insideTexture[6])}cc.fx.GameTool.shuffleArray(this.outsideTexture)}this.runBlock()},e.prototype.runBlock=function(){var t=this;if(this.config.inside>0&&(this.inside_Array[4].getComponent("Block").answerShow(this.answerInsideTexture),setTimeout(function(){for(var e=0,i=0;i0){if(this.outside_Array[this.answerOutside].getComponent("Block").answerShow(this.answerOutsideTexture),this.config.outside>1)for(var e=0,i=0;i=1&&(e=1),cc.tween(this.progress).to(.2,{fillRange:e}).call(function(){0==t.Top.getChildByName("star1").active&&e>=.2&&(t.Top.getChildByName("star1").active=!0,t.Top.getChildByName("star1").opacity=0,t.Top.getChildByName("star1").scale=.1,cc.tween(t.Top.getChildByName("star1")).to(.3,{opacity:255,scale:1.1}).to(.1,{opacity:255,scale:.9}).to(.1,{opacity:255,scale:1}).start()),0==t.Top.getChildByName("star2").active&&e>=.5&&(t.Top.getChildByName("star2").active=!0,t.Top.getChildByName("star2").opacity=0,t.Top.getChildByName("star2").scale=.1,cc.tween(t.Top.getChildByName("star2")).to(.3,{opacity:255,scale:1.1}).to(.1,{opacity:255,scale:.9}).to(.1,{opacity:255,scale:1}).start()),0==t.Top.getChildByName("star3").active&&e>=.8&&(t.Top.getChildByName("star3").active=!0,t.Top.getChildByName("star3").opacity=0,t.Top.getChildByName("star3").scale=.1,cc.tween(t.Top.getChildByName("star3")).to(.3,{opacity:255,scale:1.1}).to(.1,{opacity:255,scale:.9}).to(.1,{opacity:255,scale:1}).start())}).start()}},e.prototype.backScene=function(){cc.director.loadScene("LoadScene")},e.prototype.reStart=function(){},e.prototype.getTime=function(){return(new Date).getTime()},e.prototype.passLevel=function(){},e.prototype.loseLevel=function(){},e.prototype.changePos=function(t,e){var i=0,n=0;return t?(n=parseInt(e/3+""),i=e%3):e<5?(n=0,i=e):e<9?(i=5,n=e-4):e<13?(n=4,i=12-e):e<16&&(i=0,n=16-e),cc.v2(i,n)},e.prototype.updateCountDownTime=function(){this.countTime>0&&(this.countTime-=1,this.TimeLabel.string=cc.fx.GameTool.getTimeMargin(this.countTime),this.countTime<=0)&&(this.unschedule(this.updateCountDownTime),this.node.getChildByName("Mask").active=!0,this.config.inside>0&&cc.fx.Notifications.emit("result",{result:!1,type:!0,id:null}),this.config.outside>0&&cc.fx.Notifications.emit("result",{result:!1,type:!1,id:null}))},e.prototype.setData=function(t){cc.fx.GameConfig.CLICK_DATA.success=t.result,cc.fx.GameConfig.CLICK_DATA.round=cc.fx.GameConfig.GM_INFO.level+1,cc.fx.GameConfig.CLICK_DATA.duration=(new Date).getTime()-this.startTime-1e3,cc.fx.GameTool.setGameData()},e.prototype.onEnable=function(){cc.fx.Notifications.on("result",this.openResult,this)},e.prototype.onDisable=function(){cc.fx.Notifications.off("result",this.openResult,this)},e.prototype.update=function(){},r([c(cc.Prefab)],e.prototype,"kuang1_Prefab",void 0),r([c(cc.Prefab)],e.prototype,"kuang2_Prefab",void 0),r([c(cc.Node)],e.prototype,"Block",void 0),r([c(cc.Label)],e.prototype,"TimeLabel",void 0),r([c(cc.Label)],e.prototype,"LevelLabel",void 0),r([c(cc.Node)],e.prototype,"Guide",void 0),r([c(cc.Sprite)],e.prototype,"progress",void 0),r([c(cc.Node)],e.prototype,"Top",void 0),r([a],e)}(cc.Component);i.default=l,cc._RF.pop()},{}],GameOver:[function(t,e,i){"use strict";cc._RF.push(e,"805c6nf399HWZeuWnNB9CTH","GameOver");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,s=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(r<3?o(s):r>3?o(e,i,s):o(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};Object.defineProperty(i,"__esModule",{value:!0});var s=cc._decorator,a=s.ccclass,c=s.property,l=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.count=null,e.time=null,e.selfNode=null,e.one=null,e.two=null,e.three=null,e.four=null,e.five=null,e}return o(e,t),e.prototype.start=function(){this.init()},e.prototype.init=function(){this.listData=[],this.selfData=null},e.prototype.openRank=function(){cc.director.loadScene("LoadScene")},e.prototype.again=function(){cc.fx.GameConfig.GM_INFO_init(),cc.director.loadScene("GameScene")},e.prototype.getRank=function(){var t=this;cc.fx.GameTool.getRank({length:5},function(e){return t.getRankData(e)})},e.prototype.getRankData=function(t){if(t){cc.fx.GameTool.getRankData(t,this,4),cc.fx.GameTool.setPic(this.selfNode.getChildByName("pic").getChildByName("icon"),this.selfData.pic);for(var e=0;e<=4;e++)this.setRank(e,this.listData[e])}},e.prototype.setRank=function(t,e){var i=null;0==t?i=this.one:1==t?i=this.two:2==t?i=this.three:3==t?i=this.four:4==t&&(i=this.five),i&&(i.active=!0,cc.fx.GameTool.subName(e.nickName,4),i.getChildByName("name").getComponent(cc.Label).string=e.nickName,i.getChildByName("total").getComponent(cc.Label).string=e.totalSunCount,cc.fx.GameTool.setPic(i.getChildByName("pic").getChildByName("icon"),e.pic))},r([c(cc.Label)],e.prototype,"count",void 0),r([c(cc.Label)],e.prototype,"time",void 0),r([c(cc.Node)],e.prototype,"selfNode",void 0),r([c(cc.Node)],e.prototype,"one",void 0),r([c(cc.Node)],e.prototype,"two",void 0),r([c(cc.Node)],e.prototype,"three",void 0),r([c(cc.Node)],e.prototype,"four",void 0),r([c(cc.Node)],e.prototype,"five",void 0),r([a],e)}(cc.Component);i.default=l,cc._RF.pop()},{}],GameTool:[function(t,e,i){"use strict";cc._RF.push(e,"43bfcJ6/25Fs4fHUE0PeBOX","GameTool"),Object.defineProperty(i,"__esModule",{value:!0}),i.GameTool=void 0;var n={_startTime:0,_endTime:0,_totalTime:0,Authentication:function(){var t="user_"+cc.fx.GameConfig.GM_INFO.gameId,e=JSON.parse(localStorage.getItem(t));if("undifend"==e||null==e||""==e){var i="https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback="+encodeURIComponent(location.href);console.log("\u94fe\u63a5\u6ca1ID\u51c6\u5907\u8df3\u8f6c",i),window.location.href=i}else this.isNumber(e.userId)?(cc.fx.StorageMessage.setStorage(t,e),cc.fx.GameConfig.GM_INFO.userId=parseInt(e.userId)):(i="https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback="+encodeURIComponent(location.href),console.log("\u94fe\u63a5\u4e0d\u5408\u6cd5",i),window.location.href=i)},isNumber:function(t){var e=!1;return(e="number"==typeof t)&&t<2e5&&(e=!1),e},containsTrain:function(t){return/from=train/i.test(t)},setGameData:function(){cc.fx.GameConfig.GAME_DATA=[],cc.fx.GameConfig.GAME_DATA.push(cc.fx.GameConfig.CLICK_DATA),cc.fx.GameConfig.CLICK_init();var t=cc.fx.GameConfig.GAME_DATA,e=this.getMatchId(),i={gameId:cc.fx.GameConfig.GM_INFO.gameId,userId:cc.fx.GameConfig.GM_INFO.userId,matchId:e,data:t};console.log("\u4e0a\u4f20\u6570\u636e:",t),cc.fx.HttpUtil.uploadUserLogData(i,function(){})},setRank:function(t){var e={gameId:cc.fx.GameConfig.GM_INFO.gameId,userId:cc.fx.GameConfig.GM_INFO.userId,type:1,score:t.score,accuracy:t.date,success:cc.fx.GameConfig.GM_INFO.success};cc.fx.HttpUtil.rankData(1,function(){},e)},getRank:function(t,e){var i=t.length,n={gameId:cc.fx.GameConfig.GM_INFO.gameId,userId:cc.fx.GameConfig.GM_INFO.userId,page:1,pageSize:i};cc.fx.HttpUtil.rankData(2,function(t){e(t)},n)},getMatchId:function(){var t=cc.sys.localStorage.getItem("matchId"),e=t;if("undifend"==t||null==t)t=this.setMatchId();else if(1==this.containsNanana(t))t=this.setMatchId();else{var i=parseInt(e.substring(10,e.length));1==cc.fx.GameConfig.GM_INFO.level&&(i+=1,t=e.slice(0,10)+i+"",this.containsNanana(t)&&(t=this.setMatchId()),cc.fx.GameConfig.GM_INFO.matchId=t,cc.sys.localStorage.setItem("matchId",t))}return 1==this.containsNanana(t)&&(t=this.setMatchId()),t},containsNanana:function(t){return/na/i.test(t)},setMatchId:function(){for(var t="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",e=[],i=0;i<10;i++){var n=Math.floor(Math.random()*t.length),o=t.charAt(n);e.push(o)}var r=e.join("")+1+"";return cc.sys.localStorage.setItem("matchNumber",1),cc.sys.localStorage.setItem("matchId",r),cc.fx.GameConfig.GM_INFO.matchId=r,r},subName:function(t,e){return t.length>e&&(t=t.substring(0,e)+"..."),t},setPic:function(t,e){t.active=!1;var i=e;setTimeout(function(){fetch(i).then(function(t){return t.headers.get("Content-Length")}).then(function(e){"5093"==e&&(t.active=!0)}).catch(function(){})},100),cc.assetManager.loadRemote(i,{ext:".png"},function(e,i){i?(t.active=!0,t.getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(i)):console.log(e,i)})},getRankData:function(t,e,i){e.listData=t.data.list,e.selfData=t.data.info;var n=[],o=!1;cc.fx.GameTool.setPic(e.selfNode.getChildByName("pic").getChildByName("icon"),e.selfData.pic);for(var r=0;r<=e.listData.length-1;r++)n.push({rank:r+1,name:e.listData[r].nickName,total:e.listData[r].score,time:null,pic:e.listData[r].pic}),cc.fx.GameConfig.GM_INFO.userId==e.listData[r].userId&&(o=!0,e.rankNumber=r,e.selfNode.getChildByName("rankLab").getComponent(cc.Label).string=r+1+""),r==e.listData.length-1&&0==o&&(e.rankNumber=r,e.selfNode.getChildByName("rankLab").getComponent(cc.Label).string="99+");switch(cc.fx.GameTool.subName(e.selfData.nickName,i),e.selfNode.getChildByName("nameLab").getComponent(cc.Label).string=e.selfData.nickName,e.selfNode.getChildByName("totalLab").getComponent(cc.Label).string=e.selfData.score,cc.fx.GameTool.getTimeShenNong(e.selfData.totleTimes),e.selfNode.getChildByName("rankLab").getComponent(cc.Label).string){case"1":e.selfNode.getChildByName("rank").getChildByName("one").active=!0;break;case"2":e.selfNode.getChildByName("rank").getChildByName("two").active=!0;break;case"3":e.selfNode.getChildByName("rank").getChildByName("three").active=!0}6==i&&(e.rankList.setData(n),e.selfNode.opacity=255,0==e.selfData.totalSunCount&&(e.selfNode.opacity=0))},getSeedRandom:function(t,e){e=e||1,t=t||0,cc.fx.GameConfig.GM_INFO.currSeed=(9301*cc.fx.GameConfig.GM_INFO.currSeed+49297)%233280;var i=cc.fx.GameConfig.GM_INFO.currSeed/233280;return parseInt(t+i*(e-t))},getCustom:function(t){var e=cc.fx.StorageMessage.getStorage(cc.fx.storageType.storageTypeCustom);"undifend"==e||null==e||""==e?this.setCustom():(cc.fx.GameConfig.GM_INFO_SET("custom",e[0]),0==e[0]&&1!=t||(e.shift(),0==e.length?this.setCustom():cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,e)))},setCustom:function(){for(var t=cc.fx.GameConfig.LEVEL_INFO.length,e=[],i=1;i16.2/9)},setFit:function(){return cc.fx.GameTool.getSetScreenResolutionFlag()},getGameInfo:function(){return!1},setGameInfo:function(){},shuffleArray:function(t){return t.sort(function(){return Math.random()-.5})},typingAni:function(t,e,i,n){var o=n,r="",s=e.split(""),a=s.length,c=0;o.func=function(){r+=s[c],t.string=r,++c==a&&(o.unschedule(o.func),i&&i())},o.schedule(o.func,.1,cc.macro.REPEAT_FOREVER,0)},getTimeMargin:function(t){var e,i;e=t,i=parseInt(e/3600+"");var n=parseInt((e-3600*i)/60+""),o=""+n;n<10&&(o="0"+n);var r=e-3600*i-60*n,s=r+"";return r<10&&(s="0"+r),o+":"+s},getTimeShenNong:function(t){var e,i=0;return(e=t=parseInt(t/1e3+""))>60&&(i=parseInt(e/60+"")),i+"'"+(e-60*i)+"''"},getTimeLondon:function(t){var e,i=0;return(e=t)>=60&&(i=parseInt(e/60+"")),i+" \u5206 "+(e-60*i)+" \u79d2"},getTime:function(){return(new Date).getTime()},pushLister:function(){},removeAllLister:function(){}};i.GameTool=n,cc._RF.pop()},{}],HttpUtil:[function(t,e,i){"use strict";cc._RF.push(e,"771a32aQBNGVKd3+66gyTKA","HttpUtil");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__assign||function(){return(r=Object.assign||function(t){for(var e,i=1,n=arguments.length;i=0;a--)(o=t[a])&&(s=(r<3?o(s):r>3?o(e,i,s):o(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s},a=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))(function(o,r){function s(t){try{c(n.next(t))}catch(e){r(e)}}function a(t){try{c(n.throw(t))}catch(e){r(e)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(s,a)}c((n=n.apply(t,e||[])).next())})},c=this&&this.__generator||function(t,e){var i,n,o,r,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return r={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function a(t){return function(e){return c([t,e])}}function c(r){if(i)throw new TypeError("Generator is already executing.");for(;s;)try{if(i=1,n&&(o=2&r[0]?n.return:r[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,r[1])).done)return o;switch(n=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,n=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(o=(o=s.trys).length>0&&o[o.length-1])&&(6===r[0]||2===r[0])){s=0;continue}if(3===r[0]&&(!o||r[1]>o[0]&&r[1]0?(n-=1,setTimeout(function(){return a(h,void 0,void 0,function(){return c(this,function(o){switch(o.label){case 0:return[4,this.fetchData(t,e,i,n)];case 1:return s=o.sent(),[2]}})})},5e3*(3-n)),[3,5]):[2,null];case 5:return[2]}})})},e.fetchWithTimeout=function(t,e){return void 0===e&&(e={}),a(this,void 0,void 0,function(){var i,n,o;return c(this,function(s){switch(s.label){case 0:return i=new AbortController,n=setTimeout(function(){return i.abort()},5e3),[4,fetch(t,r(r({},e),{signal:i.signal}))];case 1:return o=s.sent(),clearTimeout(n),[2,o]}})})},e.apiSign=function(t,e){void 0===e&&(e={});var i=t.trim();-1===i.indexOf("?")&&(i+="?");var n="sign="+y(i,g(e)),o=p.encryptByDES(n,f.secretKey);return o=encodeURIComponent(o),m(i)+"&_p="+o},i=s([h],e)}(cc.Component);i.default=d;var f={gameId:"100019",secretKey:"15ELeamO",EK:"hui231%1"},p=new(function(){function t(){this.keyHex=this.getHetKey()}return t.prototype.getHetKey=function(){return u.enc.Utf8.parse(f.EK)},t.prototype.encryptByDES=function(t,e){if(!t)return t;var i=e?u.enc.Utf8.parse(e):this.keyHex;return u.DES.encrypt(t,i,{mode:u.mode.ECB,padding:u.pad.Pkcs7}).toString()},t.prototype.decryptByDES=function(t,e){var i=e?u.enc.Utf8.parse(e):this.keyHex;return u.DES.decrypt({ciphertext:u.enc.Base64.parse(t)},i,{mode:u.mode.ECB,padding:u.pad.Pkcs7}).toString(u.enc.Utf8)},t.prototype.hmacSha256=function(t,e){var i=e?u.enc.Utf8.parse(e):this.keyHex;return u.HmacSHA256(t,i).toString()},t.prototype.verifyHmacSha256=function(t,e){return u.HmacSHA256(t,this.keyHex).toString()===e},t.prototype.encryptCBC=function(t){if(!t)return t;var e=u.enc.Utf8.parse(t);return u.AES.encrypt(e,this.keyHex,{iv:this.keyHex,mode:u.mode.CBC,padding:u.pad.ZeroPadding}).toString()},t.prototype.decryptCBC=function(t){if(!t)return t;var e=u.enc.Hex.parse(t),i=u.enc.Base64.stringify(e);return u.AES.decrypt(i,this.keyHex,{iv:this.keyHex,mode:u.mode.CBC,padding:u.pad.ZeroPadding}).toString(u.enc.Utf8).toString()},t}());function g(t){for(var e,i=Object.keys(t).sort(),n={},o=0;o=0;a--)(o=t[a])&&(s=(r<3?o(s):r>3?o(e,i,s):o(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};Object.defineProperty(i,"__esModule",{value:!0});var s=cc._decorator,a=s.ccclass,c=(s.property,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.data=null,e.itemIndex=0,e}return o(e,t),e.prototype.dataChanged=function(){cc.fx.GameTool.subName(this.data.name,6),this.node.getChildByName("rankLab").getComponent(cc.Label).string=this.data.rank+"",this.node.getChildByName("nameLab").getComponent(cc.Label).string=this.data.name+"",this.node.getChildByName("totalLab").getComponent(cc.Label).string=this.data.total,cc.fx.GameTool.getTimeShenNong(this.data.time),this.node.getChildByName("rank").getChildByName("one").active=!1,this.node.getChildByName("rank").getChildByName("two").active=!1,this.node.getChildByName("rank").getChildByName("three").active=!1,1==this.data.rank?(this.node.getChildByName("rank").getChildByName("one").active=!0,this.node.getChildByName("rankLab").active=!1):2==this.data.rank?(this.node.getChildByName("rank").getChildByName("two").active=!0,this.node.getChildByName("rankLab").active=!1):3==this.data.rank?(this.node.getChildByName("rank").getChildByName("three").active=!0,this.node.getChildByName("rankLab").active=!1):this.node.getChildByName("rankLab").active=!0,this.setPic()},e.prototype.setPic=function(){var t=this;this.node.getChildByName("pic").getChildByName("icon").active=!1,this.node.getChildByName("pic").getChildByName("pic").active=!1;var e=this.data.pic;fetch(e).then(function(t){return t.headers.get("Content-Length")}).then(function(e){"5093"==e&&(t.node.getChildByName("pic").getChildByName("icon").active=!0)}).catch(function(){}),cc.assetManager.loadRemote(e,{ext:".png"},function(e,i){i?(t.node.getChildByName("pic").getChildByName("pic").active=!0,t.node.getChildByName("pic").getChildByName("pic").getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(i)):console.log(e,i)})},r([a],e)}(cc.Component));i.default=c,cc._RF.pop()},{}],List:[function(t,e,i){"use strict";cc._RF.push(e,"d5421HgLShFKIjj5f18m1mi","List");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,s=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(r<3?o(s):r>3?o(e,i,s):o(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};Object.defineProperty(i,"__esModule",{value:!0}),i.StartAxisType=i.ListType=void 0;var s,a,c=t("./ItemRender"),l=cc._decorator,h=l.ccclass,u=l.property;(function(t){t[t.Horizontal=1]="Horizontal",t[t.Vertical=2]="Vertical",t[t.Grid=3]="Grid"})(s=i.ListType||(i.ListType={})),function(t){t[t.Horizontal=1]="Horizontal",t[t.Vertical=2]="Vertical"}(a=i.StartAxisType||(i.StartAxisType={}));var d=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.itemRender=null,e.type=s.Vertical,e.startAxis=a.Horizontal,e.spaceX=0,e.spaceY=0,e.padding_top=0,e.padding_buttom=0,e.padding_left=0,e._padding=0,e.padding_right=0,e.scrollView=null,e.content=null,e.itemDataList=[],e.spawnCount=0,e.itemList=[],e.itemHeight=0,e.itemWidth=0,e.itemPool=[],e.halfScrollView=0,e.lastContentPosX=0,e.lastContentPosY=0,e.gridRow=0,e.gridCol=0,e.updateTimer=0,e.updateInterval=.1,e.bScrolling=!1,e.updateFun=function(){},e}return o(e,t),e.prototype.onLoad=function(){this.itemHeight=this.itemRender.height,this.itemWidth=this.itemRender.width,this.scrollView=this.node.getComponent(cc.ScrollView),this.content=this.scrollView.content,this.content.anchorX=0,this.content.anchorY=1,this.content.removeAllChildren(),this.scrollView.node.on("scrolling",this.onScrolling,this)},e.prototype.setData=function(t){this.itemDataList=t.slice(),this.updateContent()},e.prototype.countListParam=function(){var t=this.itemDataList.length;this.type==s.Vertical?(this.scrollView.horizontal=!1,this.scrollView.vertical=!0,this.content.width=this.content.parent.width,this.content.height=t*this.itemHeight+(t-1)*this.spaceY+this.padding_top+this.padding_buttom,this.spawnCount=Math.round(this.scrollView.node.height/(this.itemHeight+this.spaceY))+2,this.halfScrollView=this.scrollView.node.height/2+this.itemHeight/2+this.spaceY,this.updateFun=this.updateV):this.type==s.Horizontal?(this.scrollView.horizontal=!0,this.scrollView.vertical=!1,this.content.width=t*this.itemWidth+(t-1)*this.spaceX+this.padding_left+this.padding_right,this.content.height=this.content.parent.height,this.spawnCount=Math.round(this.scrollView.node.width/(this.itemWidth+this.spaceX))+2,this.halfScrollView=this.scrollView.node.width/2+this.itemWidth/2+this.spaceX,this.updateFun=this.udpateH):this.type==s.Grid&&(this.startAxis==a.Vertical?(this.scrollView.horizontal=!1,this.scrollView.vertical=!0,this.content.width=this.content.parent.width,this.padding_left+this.padding_right+this.itemWidth+this.spaceX>this.content.width&&(this.padding_left=0,this.padding_right=0,console.error("padding_left\u6216padding_right\u8fc7\u5927")),this.gridCol=Math.floor((this.content.width-this.padding_left-this.padding_right)/(this.itemWidth+this.spaceX)),this.gridRow=Math.ceil(t/this.gridCol),this.content.height=this.gridRow*this.itemHeight+(this.gridRow-1)*this.spaceY+this.padding_top+this.padding_buttom,this.spawnCount=Math.round(this.scrollView.node.height/(this.itemHeight+this.spaceY))*this.gridCol+2*this.gridCol,this.halfScrollView=this.scrollView.node.height/2+this.itemHeight/2+this.spaceY,this.updateFun=this.updateGrid_V):this.startAxis==a.Horizontal&&(this.scrollView.horizontal=!0,this.scrollView.vertical=!1,this.content.height=this.content.parent.height,this.padding_top+this.padding_buttom+this.itemHeight+this.spaceY>this.content.height&&(this.padding_top=0,this.padding_buttom=0,console.error("padding_top\u6216padding_buttom\u8fc7\u5927")),this.gridRow=Math.floor((this.content.height-this.padding_top-this.padding_buttom)/(this.itemHeight+this.spaceY)),this.gridCol=Math.ceil(t/this.gridRow),this.content.width=this.gridCol*this.itemWidth+(this.gridCol-1)*this.spaceX+this.padding_left+this.padding_right,this.spawnCount=Math.round(this.scrollView.node.width/(this.itemWidth+this.spaceX))*this.gridRow+2*this.gridRow,this.halfScrollView=this.scrollView.node.width/2+this.itemWidth/2+this.spaceX,this.updateFun=this.updateGrid_H))},e.prototype.createList=function(t,e){this.itemDataList.length>this.spawnCount&&t+this.spawnCount-1>=this.itemDataList.length?(t=this.itemDataList.length-this.spawnCount,e=this.scrollView.getMaxScrollOffset()):this.itemDataList.length<=this.spawnCount&&(t=0);for(var i=0;ithis.itemDataList.length-t&&((n=this.itemList.pop()).removeFromParent(),this.itemPool.push(n))}this.scrollView.scrollToOffset(e)},e.prototype.getItem=function(){return 0==this.itemPool.length?cc.instantiate(this.itemRender):this.itemPool.pop()},e.prototype.update=function(t){0!=this.bScrolling&&(this.updateTimer+=t,this.updateTimerthis.lastContentPosY,o=(this.itemHeight+this.spaceY)*e.length,r=0;ri&&t.y-o-this.padding_buttom>-this.content.height){var a=(l=t.getComponent(c.default)).itemIndex+e.length;l.itemIndex=a,l.data=this.itemDataList[a],l.dataChanged(),t.y=t.y-o}}else if(s.y<-i&&t.y+o+this.padding_top<0){var l;a=(l=t.getComponent(c.default)).itemIndex-e.length,l.itemIndex=a,l.data=this.itemDataList[a],l.dataChanged(),t.y=t.y+o}}this.lastContentPosY=this.scrollView.content.y},e.prototype.udpateH=function(){for(var t,e=this.itemList,i=this.halfScrollView,n=this.scrollView.content.x>this.lastContentPosX,o=(this.itemWidth+this.spaceX)*e.length,r=0;ri&&t.x-o-this.padding_left>0){var a=(l=t.getComponent(c.default)).itemIndex-e.length;l.itemIndex=a,l.data=this.itemDataList[a],l.dataChanged(),t.x=t.x-o}}else if(s.x<-i&&t.x+o+this.padding_rightthis.lastContentPosY,o=(this.itemHeight+this.spaceY)*(this.spawnCount/this.gridCol),r=0;ri&&t.y-o-this.padding_buttom>-this.content.height){var a=(l=t.getComponent(c.default)).itemIndex+this.spawnCount/this.gridCol*this.gridCol;null!=this.itemDataList[a]?(t.y=t.y-o,l.itemIndex=a,l.data=this.itemDataList[a],l.dataChanged(),t.opacity=255):(t.y=t.y-o,l.itemIndex=a,t.opacity=0)}}else if(s.y<-i&&t.y+o+this.padding_top<0){var l;a=(l=t.getComponent(c.default)).itemIndex-this.spawnCount/this.gridCol*this.gridCol,null!=this.itemDataList[a]?(t.y=t.y+o,l.itemIndex=a,l.data=this.itemDataList[a],l.dataChanged(),t.opacity=255):(t.y=t.y+o,l.itemIndex=a,t.opacity=0)}}this.lastContentPosY=this.scrollView.content.y},e.prototype.updateGrid_H=function(){for(var t,e=this.itemList,i=this.halfScrollView,n=this.scrollView.content.x>this.lastContentPosX,o=(this.itemWidth+this.spaceX)*(this.spawnCount/this.gridRow),r=0;ri&&t.x-o-this.padding_left>0){var a=(l=t.getComponent(c.default)).itemIndex-this.spawnCount/this.gridRow*this.gridRow;null!=this.itemDataList[a]?(t.x=t.x-o,l.itemIndex=a,l.data=this.itemDataList[a],l.dataChanged(),t.opacity=255):(t.x=t.x-o,l.itemIndex=a,t.opacity=0)}}else if(s.x<-i&&t.x+o+this.padding_right=0;a--)(o=t[a])&&(s=(r<3?o(s):r>3?o(e,i,s):o(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};Object.defineProperty(i,"__esModule",{value:!0});var s=cc._decorator,a=s.ccclass,c=s.property,l=(s.requireComponent,function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.localTest=!1,e.clientTestVersion="1.0.1",e.testVersion=null,e}return o(e,t),e.prototype.start=function(){cc.macro.ENABLE_MULTI_TOUCH=!1,window.initMgr(),cc.fx.GameConfig.init(this.localTest)},e.prototype.startGame=function(){cc.fx.GameConfig.GM_INFO.isCustom=!1,cc.director.loadScene("GameScene")},e.prototype.clickBtn=function(t,e){cc.fx.GameConfig.GM_INFO.level=parseInt(e),cc.fx.GameConfig.GM_INFO.isCustom=!0,cc.director.loadScene("GameScene")},e.prototype.openRank=function(){cc.director.loadScene("RankScene")},e.prototype.showCustom=function(){this.node.getChildByName("Custom").active?this.node.getChildByName("Custom").active=!1:this.node.getChildByName("Custom").active=!0},e.prototype.update=function(){},r([c(!1)],e.prototype,"localTest",void 0),r([c("")],e.prototype,"clientTestVersion",void 0),r([c(cc.Label)],e.prototype,"testVersion",void 0),r([a],e)}(cc.Component));i.default=l,cc._RF.pop()},{}],MiniGameManager:[function(t,e,i){"use strict";cc._RF.push(e,"0d272pXVChFDqi5FXTD2JlR","MiniGameManager");var n,o=this&&this.__extends||(n=function(t,e){return(n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i])})(t,e)},function(t,e){function i(){this.constructor=t}n(t,e),t.prototype=null===e?Object.create(e):(i.prototype=e.prototype,new i)}),r=this&&this.__decorate||function(t,e,i,n){var o,r=arguments.length,s=r<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(r<3?o(s):r>3?o(e,i,s):o(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};Object.defineProperty(i,"__esModule",{value:!0}),i.MiniGameManager=void 0;var s,a=t("./MiniGameSdk"),c=cc._decorator,l=c.ccclass,h=c.property;(function(t){t.CUMSTOM_01="adunit-f7c2417eb2c2e473"})(s||(s={}));var u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.entranceView=null,e}var i;return o(e,t),i=e,Object.defineProperty(e,"instance",{get:function(){return i._instance||(i._instance=new i),i._instance},enumerable:!1,configurable:!0}),e.prototype.start=function(){this.onGetLoginCode(),a.MiniGameSdk.isBytedance()&&a.MiniGameSdk.BytedanceSidebar.checkSideBar(function(){}),a.MiniGameSdk.BytedanceSidebar.listenFromSidebar(function(t){t&&a.MiniGameSdk.API.showToast("\u4fa7\u8fb9\u680f\u5956\u52b1",5)})},e.prototype.update=function(){},e.prototype.onShowBanner=function(){a.MiniGameSdk.AdvertManager.instance.loadBanner("adunit-4e7ef467e3eaab51"),a.MiniGameSdk.AdvertManager.instance.showBanner()},e.prototype.onHideBanner=function(){a.MiniGameSdk.AdvertManager.instance.hideBanner()},e.prototype.onShowInterstitial=function(){a.MiniGameSdk.AdvertManager.instance.showInterstitial("adunit-eadd67851d3050ad")},e.prototype.onShowCustom=function(){a.MiniGameSdk.AdvertManager.instance.loadCustom(s.CUMSTOM_01),a.MiniGameSdk.AdvertManager.instance.showCustom(s.CUMSTOM_01)},e.prototype.onHideCustom=function(){a.MiniGameSdk.AdvertManager.instance.hideCustom(s.CUMSTOM_01)},e.prototype.onShowVideo=function(){a.MiniGameSdk.AdvertManager.instance.showVideo("1re3nfqkmy81m4m8ge",function(t,e){switch(console.log("\u7528\u6237\u770b\u7684\u89c6\u9891\u5e7f\u544a\u4e2a\u6570\u662f:",e),t){case a.MiniGameSdk.EAdVideoResult.ACCEPT:a.MiniGameSdk.API.showToast("\u7528\u6237\u770b\u5b8c\u5e7f\u544a\uff0c\u53ef\u4ee5\u5956\u52b1");break;case a.MiniGameSdk.EAdVideoResult.REJECT:a.MiniGameSdk.API.showToast("\u7528\u6237\u62d2\u7edd\u6389\u5e7f\u544a\uff0c\u4e0d\u5956\u52b1");break;case a.MiniGameSdk.EAdVideoResult.ERROR:a.MiniGameSdk.API.showToast("\u64ad\u653e\u5e7f\u544a\u53d1\u751f\u9519\u8bef\uff0c\u4e0d\u5956\u52b1")}})},e.prototype.onShare=function(){a.MiniGameSdk.API.shareAppToFriends("\u6765\u73a9\u6e38\u620f\u5427")},e.prototype.onShowToast=function(){a.MiniGameSdk.API.showToast("\u8fd9\u662f\u4e00\u4e2atoast")},e.prototype.onVirbrate=function(){a.MiniGameSdk.API.vibrate()},e.prototype.onReboot=function(){a.MiniGameSdk.API.reboot()},e.prototype.onExit=function(){a.MiniGameSdk.API.exit()},e.prototype.onShowShareMenu=function(){a.MiniGameSdk.API.showShareMenu()},e.prototype.onNavigate=function(){a.MiniGameSdk.API.navigateTo("xxx")},e.prototype.onBytedanceEntranceView=function(){},e.prototype.onGetLoginCode=function(){var t=this;a.MiniGameSdk.API.login(function(e){console.log("Wechat Or Bytedance Code:",e),e&&cc.fx.GameTool.getUserId(e,function(e){return t.setUserId(e)})})},e.prototype.setUserId=function(t){cc.fx.GameConfig.GM_INFO.userId=t.data.userId,a.MiniGameSdk.API.getUserInfo(this.setUserInfo)},e.prototype.setUserInfo=function(t){console.log("\u83b7\u53d6\u5230\u7684\u7528\u6237\u4fe1\u606f",t.userInfo);var e={gameId:cc.fx.GameConfig.GM_INFO.gameId,userId:cc.fx.GameConfig.GM_INFO.userId,nickName:t.userInfo.nickName,pic:t.userInfo.avatarUrl};console.log("\u5373\u5c06\u4e0a\u4f20\u7684\u7528\u6237\u4fe1\u606f:",cc.fx.GameConfig.GM_INFO.userId,t.userInfo.nickName,t.userInfo.avatarUrl),console.log("Post\u6570\u636e:",e),cc.fx.HttpUtil.setUserInfo(e,function(t){console.log("\u4e0a\u4f20\u6210\u529f:",t)})},e.prototype.onCreateClub=function(){a.MiniGameSdk.GameClub.instance.create(a.MiniGameSdk.EGameClubIcon.GREEN,{top:200,left:0},{width:50,height:50}),a.MiniGameSdk.GameClub.instance.show()},r([h(cc.Node)],e.prototype,"entranceView",void 0),i=r([l],e)}(cc.Component);i.MiniGameManager=u,cc._RF.pop()},{"./MiniGameSdk":"MiniGameSdk"}],MiniGameSdk:[function(t,e,i){"use strict";cc._RF.push(e,"c1af9nd7gNA95YJ04h9DdNX","MiniGameSdk"),Object.defineProperty(i,"__esModule",{value:!0}),i.MiniGameSdk=void 0,function(t){function e(){return null!==window.wx&&void 0!==window.wx}function i(){return null!==window.tt&&void 0!==window.tt}function n(){var t;e()?t=wx.getSystemInfoSync():i()&&(t=tt.getSystemInfoSync());var n={width:0,height:0};return t&&(n.width=t.windowWidth,n.height=t.windowHeight),n}t.isWechat=e,t.isBytedance=i;var o,r=function(){function t(t){this._adUid=t}return Object.defineProperty(t.prototype,"aduid",{get:function(){return this._adUid},enumerable:!1,configurable:!0}),t.prototype.show=function(){var t,n,o=this;return e()&&!wx.createInterstitialAd?(console.warn("wechat unsupport interstitial AD!"),void(this._interstitial=null)):i()&&!tt.createInterstitialAd?(console.warn("bytedance unsupport interstitial AD!"),void(this._interstitial=null)):void(this._interstitial?this._interstitial.load():(e()?this._interstitial=wx.createInterstitialAd({adUnitId:this._adUid}):i()?this._interstitial=tt.createInterstitialAd({adUnitId:this._adUid}):this._interstitial=null,null===(t=this._interstitial)||void 0===t||t.onLoad(function(){console.log("load interstitial ad success"),o._interstitial.show().catch(function(t){console.log("catch interstitial ad error:",t)})}),null===(n=this._interstitial)||void 0===n||n.onError(function(t){console.log("interstitial ad on error:",t)})))},t.prototype.destory=function(){var t;null===(t=this._interstitial)||void 0===t||t.destroy()},t}(),s=function(){function t(t,e,i,n){void 0===i&&(i=300),void 0===n&&(n=!1),this._adUid=t,this.create(n,i,e)}return Object.defineProperty(t.prototype,"aduid",{get:function(){return this._adUid},enumerable:!1,configurable:!0}),t.prototype.create=function(t,o,r){var s,a,c=this;if(e()||i()){this.destroy();var l=n(),h=.4*o,u=0,d=0;"boolean"==typeof r?(d=(l.width-o)/2,u=r?5:l.height-h):(d=r.left,u=r.top);var f={adUnitId:this._adUid,adIntervals:30,style:{left:d,top:u,width:o}};e()?this._banner=wx.createBannerAd(f):i()?this._banner=tt.createBannerAd(f):this._banner=null,null===(s=this._banner)||void 0===s||s.onError(function(t){console.log("ad banner error:",t)}),null===(a=this._banner)||void 0===a||a.onLoad(function(){t&&c._banner.show()})}else this._banner=null},t.prototype.show=function(){var t;null===(t=this._banner)||void 0===t||t.show()},t.prototype.hide=function(){var t;null===(t=this._banner)||void 0===t||t.hide()},t.prototype.destroy=function(){var t;null===(t=this._banner)||void 0===t||t.destroy()},t}(),a=function(){function t(t,e,i,n){void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=1),this._adUid=t,this.createCustomAd(e,i,n)}return Object.defineProperty(t.prototype,"aduid",{get:function(){return this._adUid},enumerable:!1,configurable:!0}),t.prototype.createCustomAd=function(t,i){var n;if(!e())return this._adCustom=null,void console.log("Only wechat support Custom Ad");this.destroy(),this._adCustom=wx.createCustomAd({adUnitId:this._adUid,style:{left:i,top:t,fixed:!0}}),null===(n=this._adCustom)||void 0===n||n.onError(function(t){console.log("ad custom error:",t)})},t.prototype.show=function(){var t;null===(t=this._adCustom)||void 0===t||t.show()},t.prototype.hide=function(){var t;null===(t=this._adCustom)||void 0===t||t.hide()},t.prototype.destroy=function(){var t;null===(t=this._adCustom)||void 0===t||t.destroy()},t}();(function(t){t[t.ACCEPT=0]="ACCEPT",t[t.REJECT=1]="REJECT",t[t.ERROR=2]="ERROR"})(o=t.EAdVideoResult||(t.EAdVideoResult={}));var c,l=function(){function t(t){this._adVideo=null,this._adUid=t}return Object.defineProperty(t.prototype,"aduid",{get:function(){return this._adUid},enumerable:!1,configurable:!0}),t.prototype.show=function(t,n,r){var s,a,c,l,h,u=this;void 0===r&&(r=3);var d=function(e,i){null==t||t.call(n,e,i)};if(!e()&&!i())return d(o.ACCEPT,1),void(this._adVideo=null);var f=function(t){var n;if(null===(n=u._adVideo)||void 0===n||n.offClose(f),e())t&&t.isEnded||void 0===t?d(o.ACCEPT,1):d(o.REJECT,0);else if(i()){var r=t;r&&r.count>0?d(o.ACCEPT,r.count):d(o.REJECT,0)}};null===(s=this._adVideo)||void 0===s||s.offClose(f),e()?this._adVideo=wx.createRewardedVideoAd({adUnitId:this._adUid}):i()?this._adVideo=tt.createRewardedVideoAd({adUnitId:this._adUid,multiton:!0,multitonRewardMsg:["\u591a1\u6b21\u5956\u52b1","\u518d\u591a\u4e00\u6b21\u5956\u52b1","\u518d\u591a\u4e00\u6b21\u5956\u52b1"],multitonRewardTimes:r}):this._adVideo=null,null===(a=this._adVideo)||void 0===a||a.onLoad(function(){console.log("Ad load success")}),null===(c=this._adVideo)||void 0===c||c.onError(function(t){console.log("Ad video error:",t),d(o.ERROR,0)}),null===(l=this._adVideo)||void 0===l||l.onClose(f),null===(h=this._adVideo)||void 0===h||h.show().catch(function(){var t;null===(t=u._adVideo)||void 0===t||t.load().then(function(){var t;return null===(t=u._adVideo)||void 0===t?void 0:t.show()}).catch(function(t){console.log("Catch video ad error:",t),d(o.ERROR,0)})})},t.prototype.destory=function(){var t;null===(t=this._adVideo)||void 0===t||t.destory()},t}();(function(t){t[t.TOP=0]="TOP",t[t.BOTTOM=1]="BOTTOM"})(c=t.EAdBannerLocation||(t.EAdBannerLocation={}));var h,u=function(){function t(){this._customs={}}return Object.defineProperty(t,"instance",{get:function(){return t._instance||(t._instance=new t),t._instance},enumerable:!1,configurable:!0}),t.prototype.loadBanner=function(t,e,i){var o;void 0===e&&(e=c.TOP),void 0===i&&(i=1),null===(o=this._banner)||void 0===o||o.destroy();var r=n(),a=r.width*i;a=(a=a<300?300:a)>r.width?r.width:a,this._banner=new s(t,"number"==typeof e?e===c.TOP:e,a,!1)},t.prototype.showBanner=function(){this._banner?this._banner.show():console.warn("MiniGameSDK: banner is null, you must call loadBanner(...) first!")},t.prototype.hideBanner=function(){var t;null===(t=this._banner)||void 0===t||t.hide()},t.prototype.showInterstitial=function(t){var e;this._interstitial&&this._interstitial.aduid===t?this._interstitial.show():(null===(e=this._interstitial)||void 0===e||e.destory(),this._interstitial=new r(t),this._interstitial.show())},t.prototype.loadCustom=function(t,e,i){void 0===e&&(e={top:0,left:0}),void 0===i&&(i=1),this._customs[t]?console.log(t+" has been loaded."):this._customs[t]=new a(t,e.top,e.left,i)},t.prototype.showCustom=function(t){this._customs[t]?this._customs[t].show():console.warn("You have not load "+t+" of Custom AD, can not show!")},t.prototype.hideCustom=function(t){this._customs[t]?this._customs[t].hide():console.warn("You have not load "+t+" of Custom AD, can not hide!")},t.prototype.showVideo=function(t,e,i,n){var o;void 0===n&&(n=3),this._video&&this._video.aduid===t?this._video.show(e,i,n):(null===(o=this._video)||void 0===o||o.destory(),this._video=new l(t),this._video.show(e,i,n))},t.prototype.destroyAll=function(){var t,e,i,n;if(null===(t=this._banner)||void 0===t||t.destroy(),this._banner=null,null===(e=this._interstitial)||void 0===e||e.destory(),this._interstitial=null,null===(i=this._video)||void 0===i||i.destory(),this._video=null,this._customs){for(var o in this._customs)null===(n=this._customs[o])||void 0===n||n.destroy();this._customs={}}},t}();t.AdvertManager=u,function(t){t.GREEN="green",t.WHITE="white",t.DARK="dark",t.LIGHT="light"}(h=t.EGameClubIcon||(t.EGameClubIcon={}));var d,f=function(){function t(){}return Object.defineProperty(t,"instance",{get:function(){return this._instance||(this._instance=new t),this._instance},enumerable:!1,configurable:!0}),t.prototype.create=function(t,i,n,o){void 0===t&&(t=h.GREEN),void 0===i&&(i={top:0,left:0}),void 0===n&&(n={width:40,height:40}),e()&&(this._club=wx.createGameClubButton({icon:t,style:{left:i.left,top:i.top,width:n.width,height:n.height},openlink:o}))},t.prototype.show=function(){var t;null===(t=this._club)||void 0===t||t.show()},t.prototype.hide=function(){var t;null===(t=this._club)||void 0===t||t.hide()},t.prototype.destory=function(){var t;null===(t=this._club)||void 0===t||t.destroy()},t}();t.GameClub=f,function(t){t[t.SHORT=0]="SHORT",t[t.LONG=1]="LONG"}(d=t.EVirbrateType||(t.EVirbrateType={}));var p=function(){function t(){}return t.shareAppToFriends=function(t,n,o,r,s){if(void 0===n&&(n=""),e())try{wx.shareAppMessage({title:t,imageUrl:o,query:r})}catch(a){console.log("share faild: "+a)}i()&&tt.shareAppMessage({title:t,desc:n,imageUrl:null!=o?o:"",query:null!=r?r:"",success:function(t){console.log("share success:",t),null==s||s()},fail:function(t){console.log("share fail:",t)}})},t.showToast=function(t,n){void 0===n&&(n=2),e()&&wx.showToast({title:t,icon:"success",duration:1e3*n}),i()&&tt.showToast({title:t,duration:1e3*n,success:function(t){console.log(""+t)},fail:function(){console.log("showToast\u8c03\u7528\u5931\u8d25")}})},t.vibrate=function(t){if(void 0===t&&(t=d.SHORT),e())switch(t){case d.SHORT:wx.vibrateShort({success:function(t){console.log("vibrate success:",t)},fail:function(t){console.log("vibrateShort failed",t)}});break;case d.LONG:wx.vibrateLong({success:function(t){console.log("vibrate success",t)},fail:function(t){console.log("vibrateLong failed",t)}})}if(i())switch(t){case d.SHORT:tt.vibrateShort({success:function(t){console.log("vibrate success:",t)},fail:function(t){console.log("vibrateShort failed",t)}});break;case d.LONG:tt.vibrateLong({success:function(t){console.log("vibrate success",t)},fail:function(t){console.log("vibrateLong failed",t)}})}},t.reboot=function(){if(e()&&wx.restartMiniProgram({success:function(){console.log("restart success")},fail:function(){console.log("restart failed")}}),i())try{tt.restartMiniProgramSync()}catch(t){console.log("restartMiniProgramSync",t)}},t.exit=function(){e()&&wx.exitMiniProgram({success:function(){console.log("exit success")},fail:function(){console.log("exit failed")}}),i()&&tt.exitMiniProgram({success:function(t){console.log("exit success:",null==t?void 0:t.data)},fail:function(t){console.log("exit fail:",null==t?void 0:t.errMsg)}})},t.showShareMenu=function(){e()&&wx.showShareMenu({withShareTicket:!0,menus:["shareAppMessage","shareTimeline"],success:function(){},fail:function(){},complete:function(){}}),i()&&tt.showShareMenu({success:function(){console.log("show menu is showing")},fail:function(t){console.log("showShareMenu:",t.errMsg)},complete:function(){console.log("showShareMenu complete")}})},t.navigateTo=function(t,n){e()&&wx.navigateToMiniProgram({appId:t,extraData:{foo:"bar"},envVersion:"develop",success:function(){null==n||n()}}),i()&&tt.navigateToVideoView({videoId:t,success:function(){null==n||n()},fail:function(t){console.log("bytedance navigateToVideoView fail",t)}})},t.login=function(n){var o=function(){e()?wx.login({success:function(e){e.code?(t._loginCode=e.code,t._loginAnonymousCode=null,null==n||n(t._loginCode,t._loginAnonymousCode)):console.log("login error:",e.errMsg)},fail:function(){t._loginCode=null,t._loginAnonymousCode=null,null==n||n(t._loginCode,t._loginAnonymousCode),console.log("login fail")}}):i()?tt.login({force:!0,success:function(e){var i,o;console.log("login "+e.code+" "+e.anonymousCode),e.code?(t._loginCode=null===(i=e.code)||void 0===i?void 0:i.toString(),t._loginAnonymousCode=null===(o=e.anonymousCode)||void 0===o?void 0:o.toString(),null==n||n(t._loginCode,t._loginAnonymousCode)):console.log("login error:",e.errMsg)},fail:function(e){t._loginCode=null,t._loginAnonymousCode=null,null==n||n(t._loginCode,t._loginAnonymousCode),console.log("login fail",e)}}):(t._loginCode=null,t._loginAnonymousCode=null,null==n||n(t._loginCode,t._loginAnonymousCode),console.log("not mini game platform, login codes are all null"))};t._loginCode?e()?wx.checkSession({success:function(){console.log("session is valid, use current code:",t._loginCode),null==n||n(t._loginCode,t._loginAnonymousCode)},fail:function(){console.log("session expired"),o()}}):i()?tt.checkSession({success:function(){console.log("session is valid, user current code: "+t._loginCode+", "+t._loginAnonymousCode),null==n||n(t._loginCode,t._loginAnonymousCode)},fail:function(){console.log("session expired"),o()}}):(console.log("not mini game platform, login null"),null==n||n(null,null)):o()},t.getUserInfo=function(e){tt.getUserInfo({withCredentials:!0,success:function(i){t._userInfo=i,e(t._userInfo)},fail:function(t){e(t)}})},t.callWechatCloudFunction=function(i,n,o){e()?this.login(function(){t._hasInitWechatCloudFunction||(wx.cloud.init(),t._hasInitWechatCloudFunction=!0),wx.cloud.callFunction({name:n,data:o,success:function(t){return null==i?void 0:i(t)},fail:function(t){console.log("wechat cloud function error:",t),null==i||i(null)}})}):console.log("Not wechat platform, not support callWechatCloudFunction")},t.setUserCloudStorage=function(t,n){e()&&wx.setUserCloudStorage({KVDataList:[{key:t,value:n}],success:function(){return console.log("set cloud storage success:"+t+", value:"+n)},fail:function(t){return console.log("set cloud storage error:",t)}}),i()&&tt.setUserCloudStorage({KVDataList:[{key:t,value:n}],success:function(){return console.log("set cloud storage success:"+t+", value:"+n)},fail:function(t){return console.log("set cloud storage error:",t)}})},t._loginCode=null,t._loginAnonymousCode=null,t._hasInitWechatCloudFunction=!1,t._userInfo=null,t}();t.API=p;var g=function(){function t(){}return t.listenFromSidebar=function(t,e){if(i()){tt.onShow(function(i){console.log("onShow launch res:",i),"021036"===i.scene?(null==t||t.call(e,!0),console.log("launch from sidebar")):(null==t||t.call(e,!1),console.log("NOT launch from douyin sidebar!"))});var n=tt.getLaunchOptionsSync();n&&"021036"===n.scene&&(null==t||t.call(e,!0))}else null==t||t.call(e,!1)},t.checkSideBar=function(t,e){i()?tt.checkScene({scene:"sidebar",success:function(i){console.log("check scene success: ",i.isExist),null==t||t.call(e,i.isExist)},fail:function(i){console.log("check scene fail:",i),null==t||t.call(e,!1)}}):null==t||t.call(e,!1)},t.navigateToSidebar=function(t,e){if(!i())return console.log("not douyin platform!"),void(null==t||t.call(e,!1));tt.navigateToScene({scene:"sidebar",success:function(){console.log("navigate success"),null==t||t.call(e,!0)},fail:function(i){console.log("navigate failed reason:",i),null==t||t.call(e,!1)}})},t}();t.BytedanceSidebar=g}(i.MiniGameSdk||(i.MiniGameSdk={})),cc._RF.pop()},{}],Notification:[function(t,e,i){"use strict";cc._RF.push(e,"55403VjGlpPL564gsdiZBg3","Notification"),Object.defineProperty(i,"__esModule",{value:!0}),i.Notifications=void 0;i.Notifications={_eventMap:[],on:function(t,e,i){void 0===this._eventMap[t]&&(this._eventMap[t]=[]),this._eventMap[t].push({callback:e,target:i})},emit:function(t,e){var i=this._eventMap[t];if(void 0!==i)for(var n=0;n=0;a--)(o=t[a])&&(s=(r<3?o(s):r>3?o(e,i,s):o(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};Object.defineProperty(i,"__esModule",{value:!0});var s=t("./module/RankList/List"),a=cc._decorator,c=a.ccclass,l=a.property,h=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.Player=null,e.selfNode=null,e.phone=null,e}return o(e,t),e.prototype.onLoad=function(){this.init()},e.prototype.init=function(){this.rankList=cc.find("ScrollView",this.node).getComponent(s.default),this.Player.getChildByName("rank").active=!1,this.listData=[],this.selfData=null,this.rankNumber=100,this.rankTotal=100,this.selfNode.opacity=0},e.prototype.start=function(){this.Player.active=!1,this.getRank()},e.prototype.getRank=function(){var t=this;cc.fx.GameTool.getRank({length:100},function(e){return t.getRankData(e)})},e.prototype.getRankData=function(t){t&&(cc.fx.GameTool.getRankData(t,this,6),this.setPic(this.selfData.pic))},e.prototype.backClick=function(){cc.director.loadScene("LoadScene")},e.prototype.playerAction=function(){var t=this;this.Player.getChildByName("rank").active=!1;var e=1;if(this.tween=cc.tween(this.Player).to(2,{position:cc.v3(210,453,0)}).call(function(){t.Player.getChildByName("rank").active=!0,t.Player.getChildByName("rank").getChildByName("number").getComponent(cc.Label).string=parseInt(100*e+"")+"%"}).start(),e=(this.listData.length-this.rankNumber)/this.listData.length,this.listData.length>=99&&this.rankNumber>=99){e=(49*Math.random()+1)/100;var i=cc.sys.localStorage.getItem("matchNumber");null!=i&&null!=i||(e=0)}setTimeout(function(){t.tween&&t.tween.stop(),t.Player.getChildByName("rank").active=!0,t.Player.getChildByName("rank").getChildByName("number").getComponent(cc.Label).string=parseInt(100*e+"")+"%"},2e3*e)},e.prototype.setPic=function(t){var e=this;this.phone.node.parent.getChildByName("icon").active=!1,this.phone.node.active=!1,this.Player.active=!0,this.Player.opacity=0,this.Player.getChildByName("mask").getChildByName("icon").active=!1,this.Player.getChildByName("mask").getChildByName("phone").active=!1,fetch(t).then(function(t){return t.headers.get("Content-Length")}).then(function(t){"5093"==t&&(e.phone.node.parent.getChildByName("icon").active=!0,e.Player.getChildByName("mask").getChildByName("icon").active=!0)}).catch(function(t){console.error("Error fetching X-Info:",t)});var i=this;cc.assetManager.loadRemote(t,{ext:".png"},function(t,e){i.Player.opacity=255,e?(i.phone.node.active=!0,i.phone.spriteFrame=new cc.SpriteFrame(e),i.Player.getChildByName("mask").getChildByName("icon").active=!1,i.Player.getChildByName("mask").getChildByName("phone").active=!0,i.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite).spriteFrame=new cc.SpriteFrame(e),setTimeout(function(){i.playerAction()},500)):(i.Player.getChildByName("mask").getChildByName("icon").active=!0,setTimeout(function(){i.playerAction()},500))})},r([l(cc.Node)],e.prototype,"Player",void 0),r([l(cc.Node)],e.prototype,"selfNode",void 0),r([l(cc.Sprite)],e.prototype,"phone",void 0),r([c],e)}(cc.Component);i.default=h,cc._RF.pop()},{"./module/RankList/List":"List"}],Storage:[function(t,e,i){"use strict";cc._RF.push(e,"1002938VFRJd70RiAno9Iys","Storage"),Object.defineProperty(i,"__esModule",{value:!0}),i.StorageMessage=void 0;var n={getStorage:function(t){var e=null;return cc.sys.localStorage.getItem(t)&&(e=cc.sys.localStorage.getItem(t)),e&&(e=JSON.parse(e)),e},setStorage:function(t,e){var i=JSON.stringify(e);cc.sys.localStorage.setItem(t,i)},removeStorage:function(t){cc.sys.localStorage.getItem(t)&&cc.sys.localStorage.removeItem(t)}};i.StorageMessage=n,cc._RF.pop()},{}],"crypto-js.min":[function(t,e,i){"use strict";cc._RF.push(e,"e64e1qXyT9CV6s0gDQdj/ed","crypto-js.min"),function(t,n){"object"==typeof i?e.exports=i=n():"function"==typeof define&&define.amd?define([],n):(void 0).CryptoJS=n()}(0,function(){var t,e,i,n,o,r,s,a=a||function(t){var e=Object.create||function(){function t(){}return function(e){var i;return t.prototype=e,i=new t,t.prototype=null,i}}(),i={},n=i.lib={},o=n.Base={extend:function(t){var i=e(this);return t&&i.mixIn(t),i.hasOwnProperty("init")&&this.init!==i.init||(i.init=function(){i.$super.init.apply(this,arguments)}),i.init.prototype=i,i.$super=this,i},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}},r=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],this.sigBytes=null!=e?e:4*t.length},toString:function(t){return(t||a).stringify(this)},concat:function(t){var e=this.words,i=t.words,n=this.sigBytes,o=t.sigBytes;if(this.clamp(),n%4)for(var r=0;r>>2]>>>24-r%4*8&255;e[n+r>>>2]|=s<<24-(n+r)%4*8}else for(r=0;r>>2]=i[r>>>2];return this.sigBytes+=o,this},clamp:function(){var e=this.words,i=this.sigBytes;e[i>>>2]&=4294967295<<32-i%4*8,e.length=t.ceil(i/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(e){for(var i,n=[],o=function(e){e=e;var i=987654321,n=4294967295;return function(){var o=((i=36969*(65535&i)+(i>>16)&n)<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n;return o/=4294967296,(o+=.5)*(t.random()>.5?1:-1)}},s=0;s>>2]>>>24-o%4*8&255;n.push((r>>>4).toString(16)),n.push((15&r).toString(16))}return n.join("")},parse:function(t){for(var e=t.length,i=[],n=0;n>>3]|=parseInt(t.substr(n,2),16)<<24-n%8*4;return new r.init(i,e/2)}},c=s.Latin1={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>24-o%4*8&255;n.push(String.fromCharCode(r))}return n.join("")},parse:function(t){for(var e=t.length,i=[],n=0;n>>2]|=(255&t.charCodeAt(n))<<24-n%4*8;return new r.init(i,e)}},l=s.Utf8={stringify:function(t){try{return decodeURIComponent(escape(c.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return c.parse(unescape(encodeURIComponent(t)))}},h=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new r.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=l.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(e){var i=this._data,n=i.words,o=i.sigBytes,s=this.blockSize,a=o/(4*s),c=(a=e?t.ceil(a):t.max((0|a)-this._minBufferSize,0))*s,l=t.min(4*c,o);if(c){for(var h=0;h>>6-s%4*2;o[r>>>2]|=(a|c)<<24-r%4*8,r++}return i.create(o,r)}var e=a,i=e.lib.WordArray;e.enc.Base64={stringify:function(t){var e=t.words,i=t.sigBytes,n=this._map;t.clamp();for(var o=[],r=0;r>>2]>>>24-r%4*8&255)<<16|(e[r+1>>>2]>>>24-(r+1)%4*8&255)<<8|e[r+2>>>2]>>>24-(r+2)%4*8&255,a=0;a<4&&r+.75*a>>6*(3-a)&63));var c=n.charAt(64);if(c)for(;o.length%4;)o.push(c);return o.join("")},parse:function(e){var i=e.length,n=this._map,o=this._reverseMap;if(!o){o=this._reverseMap=[];for(var r=0;r>>32-r)+e}function i(t,e,i,n,o,r,s){var a=t+(e&n|i&~n)+o+s;return(a<>>32-r)+e}function n(t,e,i,n,o,r,s){var a=t+(e^i^n)+o+s;return(a<>>32-r)+e}function o(t,e,i,n,o,r,s){var a=t+(i^(e|~n))+o+s;return(a<>>32-r)+e}var r=a,s=r.lib,c=s.WordArray,l=s.Hasher,h=r.algo,u=[];!function(){for(var e=0;e<64;e++)u[e]=4294967296*t.abs(t.sin(e+1))|0}();var d=h.MD5=l.extend({_doReset:function(){this._hash=new c.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,r){for(var s=0;s<16;s++){var a=r+s,c=t[a];t[a]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var l=this._hash.words,h=t[r+0],d=t[r+1],f=t[r+2],p=t[r+3],g=t[r+4],y=t[r+5],m=t[r+6],_=t[r+7],v=t[r+8],C=t[r+9],w=t[r+10],x=t[r+11],b=t[r+12],S=t[r+13],B=t[r+14],k=t[r+15],T=l[0],M=l[1],I=l[2],A=l[3];T=e(T,M,I,A,h,7,u[0]),A=e(A,T,M,I,d,12,u[1]),I=e(I,A,T,M,f,17,u[2]),M=e(M,I,A,T,p,22,u[3]),T=e(T,M,I,A,g,7,u[4]),A=e(A,T,M,I,y,12,u[5]),I=e(I,A,T,M,m,17,u[6]),M=e(M,I,A,T,_,22,u[7]),T=e(T,M,I,A,v,7,u[8]),A=e(A,T,M,I,C,12,u[9]),I=e(I,A,T,M,w,17,u[10]),M=e(M,I,A,T,x,22,u[11]),T=e(T,M,I,A,b,7,u[12]),A=e(A,T,M,I,S,12,u[13]),I=e(I,A,T,M,B,17,u[14]),T=i(T,M=e(M,I,A,T,k,22,u[15]),I,A,d,5,u[16]),A=i(A,T,M,I,m,9,u[17]),I=i(I,A,T,M,x,14,u[18]),M=i(M,I,A,T,h,20,u[19]),T=i(T,M,I,A,y,5,u[20]),A=i(A,T,M,I,w,9,u[21]),I=i(I,A,T,M,k,14,u[22]),M=i(M,I,A,T,g,20,u[23]),T=i(T,M,I,A,C,5,u[24]),A=i(A,T,M,I,B,9,u[25]),I=i(I,A,T,M,p,14,u[26]),M=i(M,I,A,T,v,20,u[27]),T=i(T,M,I,A,S,5,u[28]),A=i(A,T,M,I,f,9,u[29]),I=i(I,A,T,M,_,14,u[30]),T=n(T,M=i(M,I,A,T,b,20,u[31]),I,A,y,4,u[32]),A=n(A,T,M,I,v,11,u[33]),I=n(I,A,T,M,x,16,u[34]),M=n(M,I,A,T,B,23,u[35]),T=n(T,M,I,A,d,4,u[36]),A=n(A,T,M,I,g,11,u[37]),I=n(I,A,T,M,_,16,u[38]),M=n(M,I,A,T,w,23,u[39]),T=n(T,M,I,A,S,4,u[40]),A=n(A,T,M,I,h,11,u[41]),I=n(I,A,T,M,p,16,u[42]),M=n(M,I,A,T,m,23,u[43]),T=n(T,M,I,A,C,4,u[44]),A=n(A,T,M,I,b,11,u[45]),I=n(I,A,T,M,k,16,u[46]),T=o(T,M=n(M,I,A,T,f,23,u[47]),I,A,h,6,u[48]),A=o(A,T,M,I,_,10,u[49]),I=o(I,A,T,M,B,15,u[50]),M=o(M,I,A,T,y,21,u[51]),T=o(T,M,I,A,b,6,u[52]),A=o(A,T,M,I,p,10,u[53]),I=o(I,A,T,M,w,15,u[54]),M=o(M,I,A,T,d,21,u[55]),T=o(T,M,I,A,v,6,u[56]),A=o(A,T,M,I,k,10,u[57]),I=o(I,A,T,M,m,15,u[58]),M=o(M,I,A,T,S,21,u[59]),T=o(T,M,I,A,g,6,u[60]),A=o(A,T,M,I,x,10,u[61]),I=o(I,A,T,M,f,15,u[62]),M=o(M,I,A,T,C,21,u[63]),l[0]=l[0]+T|0,l[1]=l[1]+M|0,l[2]=l[2]+I|0,l[3]=l[3]+A|0},_doFinalize:function(){var e=this._data,i=e.words,n=8*this._nDataBytes,o=8*e.sigBytes;i[o>>>5]|=128<<24-o%32;var r=t.floor(n/4294967296),s=n;i[15+(o+64>>>9<<4)]=16711935&(r<<8|r>>>24)|4278255360&(r<<24|r>>>8),i[14+(o+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),e.sigBytes=4*(i.length+1),this._process();for(var a=this._hash,c=a.words,l=0;l<4;l++){var h=c[l];c[l]=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8)}return a},clone:function(){var t=l.clone.call(this);return t._hash=this._hash.clone(),t}});r.MD5=l._createHelper(d),r.HmacMD5=l._createHmacHelper(d)}(Math),e=(t=a).lib,i=e.WordArray,n=e.Hasher,o=t.algo,r=[],s=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,e){for(var i=this._hash.words,n=i[0],o=i[1],s=i[2],a=i[3],c=i[4],l=0;l<80;l++){if(l<16)r[l]=0|t[e+l];else{var h=r[l-3]^r[l-8]^r[l-14]^r[l-16];r[l]=h<<1|h>>>31}var u=(n<<5|n>>>27)+c+r[l];u+=l<20?1518500249+(o&s|~o&a):l<40?1859775393+(o^s^a):l<60?(o&s|o&a|s&a)-1894007588:(o^s^a)-899497514,c=a,a=s,s=o<<30|o>>>2,o=n,n=u}i[0]=i[0]+n|0,i[1]=i[1]+o|0,i[2]=i[2]+s|0,i[3]=i[3]+a|0,i[4]=i[4]+c|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=Math.floor(i/4294967296),e[15+(n+64>>>9<<4)]=i,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}}),t.SHA1=n._createHelper(s),t.HmacSHA1=n._createHmacHelper(s),function(t){var e=a,i=e.lib,n=i.WordArray,o=i.Hasher,r=e.algo,s=[],c=[];!function(){function e(e){for(var i=t.sqrt(e),n=2;n<=i;n++)if(!(e%n))return!1;return!0}function i(t){return 4294967296*(t-(0|t))|0}for(var n=2,o=0;o<64;)e(n)&&(o<8&&(s[o]=i(t.pow(n,.5))),c[o]=i(t.pow(n,1/3)),o++),n++}();var l=[],h=r.SHA256=o.extend({_doReset:function(){this._hash=new n.init(s.slice(0))},_doProcessBlock:function(t,e){for(var i=this._hash.words,n=i[0],o=i[1],r=i[2],s=i[3],a=i[4],h=i[5],u=i[6],d=i[7],f=0;f<64;f++){if(f<16)l[f]=0|t[e+f];else{var p=l[f-15],g=(p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3,y=l[f-2],m=(y<<15|y>>>17)^(y<<13|y>>>19)^y>>>10;l[f]=g+l[f-7]+m+l[f-16]}var _=n&o^n&r^o&r,v=(n<<30|n>>>2)^(n<<19|n>>>13)^(n<<10|n>>>22),C=d+((a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25))+(a&h^~a&u)+c[f]+l[f];d=u,u=h,h=a,a=s+C|0,s=r,r=o,o=n,n=C+(v+_)|0}i[0]=i[0]+n|0,i[1]=i[1]+o|0,i[2]=i[2]+r|0,i[3]=i[3]+s|0,i[4]=i[4]+a|0,i[5]=i[5]+h|0,i[6]=i[6]+u|0,i[7]=i[7]+d|0},_doFinalize:function(){var e=this._data,i=e.words,n=8*this._nDataBytes,o=8*e.sigBytes;return i[o>>>5]|=128<<24-o%32,i[14+(o+64>>>9<<4)]=t.floor(n/4294967296),i[15+(o+64>>>9<<4)]=n,e.sigBytes=4*i.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(h),e.HmacSHA256=o._createHmacHelper(h)}(Math),function(){function t(t){return t<<8&4278255360|t>>>8&16711935}var e=a,i=e.lib.WordArray,n=e.enc;n.Utf16=n.Utf16BE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535;n.push(String.fromCharCode(r))}return n.join("")},parse:function(t){for(var e=t.length,n=[],o=0;o>>1]|=t.charCodeAt(o)<<16-o%2*16;return i.create(n,2*e)}},n.Utf16LE={stringify:function(e){for(var i=e.words,n=e.sigBytes,o=[],r=0;r>>2]>>>16-r%4*8&65535);o.push(String.fromCharCode(s))}return o.join("")},parse:function(e){for(var n=e.length,o=[],r=0;r>>1]|=t(e.charCodeAt(r)<<16-r%2*16);return i.create(o,2*n)}}}(),function(){if("function"==typeof ArrayBuffer){var t=a.lib.WordArray,e=t.init;(t.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var i=t.byteLength,n=[],o=0;o>>2]|=t[o]<<24-o%4*8;e.call(this,n,i)}else e.apply(this,arguments)}).prototype=t}}(),function(){function t(t,e,i){return t^e^i}function e(t,e,i){return t&e|~t&i}function i(t,e,i){return(t|~e)^i}function n(t,e,i){return t&i|e&~i}function o(t,e,i){return t^(e|~i)}function r(t,e){return t<>>32-e}var s=a,c=s.lib,l=c.WordArray,h=c.Hasher,u=s.algo,d=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),f=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),p=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),g=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),m=l.create([1352829926,1548603684,1836072691,2053994217,0]),_=u.RIPEMD160=h.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(s,a){for(var c=0;c<16;c++){var l=a+c,h=s[l];s[l]=16711935&(h<<8|h>>>24)|4278255360&(h<<24|h>>>8)}var u,_,v,C,w,x,b,S,B,k,T,M=this._hash.words,I=y.words,A=m.words,G=d.words,N=f.words,R=p.words,O=g.words;for(x=u=M[0],b=_=M[1],S=v=M[2],B=C=M[3],k=w=M[4],c=0;c<80;c+=1)T=u+s[a+G[c]]|0,T+=c<16?t(_,v,C)+I[0]:c<32?e(_,v,C)+I[1]:c<48?i(_,v,C)+I[2]:c<64?n(_,v,C)+I[3]:o(_,v,C)+I[4],T=(T=r(T|=0,R[c]))+w|0,u=w,w=C,C=r(v,10),v=_,_=T,T=x+s[a+N[c]]|0,T+=c<16?o(b,S,B)+A[0]:c<32?n(b,S,B)+A[1]:c<48?i(b,S,B)+A[2]:c<64?e(b,S,B)+A[3]:t(b,S,B)+A[4],T=(T=r(T|=0,O[c]))+k|0,x=k,k=B,B=r(S,10),S=b,b=T;T=M[1]+v+B|0,M[1]=M[2]+C+k|0,M[2]=M[3]+w+x|0,M[3]=M[4]+u+b|0,M[4]=M[0]+_+S|0,M[0]=T},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32,e[14+(n+64>>>9<<4)]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8),t.sigBytes=4*(e.length+1),this._process();for(var o=this._hash,r=o.words,s=0;s<5;s++){var a=r[s];r[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return o},clone:function(){var t=h.clone.call(this);return t._hash=this._hash.clone(),t}});s.RIPEMD160=h._createHelper(_),s.HmacRIPEMD160=h._createHmacHelper(_)}(Math),function(){var t=a,e=t.lib.Base,i=t.enc.Utf8;t.algo.HMAC=e.extend({init:function(t,e){t=this._hasher=new t.init,"string"==typeof e&&(e=i.parse(e));var n=t.blockSize,o=4*n;e.sigBytes>o&&(e=t.finalize(e)),e.clamp();for(var r=this._oKey=e.clone(),s=this._iKey=e.clone(),a=r.words,c=s.words,l=0;l>>24)|4278255360&(r<<24|r>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),(M=i[o]).high^=s,M.low^=r}for(var a=0;a<24;a++){for(var d=0;d<5;d++){for(var f=0,p=0,g=0;g<5;g++)f^=(M=i[d+5*g]).high,p^=M.low;var y=u[d];y.high=f,y.low=p}for(d=0;d<5;d++){var m=u[(d+4)%5],_=u[(d+1)%5],v=_.high,C=_.low;for(f=m.high^(v<<1|C>>>31),p=m.low^(C<<1|v>>>31),g=0;g<5;g++)(M=i[d+5*g]).high^=f,M.low^=p}for(var w=1;w<25;w++){var x=(M=i[w]).high,b=M.low,S=c[w];S<32?(f=x<>>32-S,p=b<>>32-S):(f=b<>>64-S,p=x<>>64-S);var B=u[l[w]];B.high=f,B.low=p}var k=u[0],T=i[0];for(k.high=T.high,k.low=T.low,d=0;d<5;d++)for(g=0;g<5;g++){var M=i[w=d+5*g],I=u[w],A=u[(d+1)%5+5*g],G=u[(d+2)%5+5*g];M.high=I.high^~A.high&G.high,M.low=I.low^~A.low&G.low}M=i[0];var N=h[a];M.high^=N.high,M.low^=N.low}},_doFinalize:function(){var e=this._data,i=e.words,o=(this._nDataBytes,8*e.sigBytes),r=32*this.blockSize;i[o>>>5]|=1<<24-o%32,i[(t.ceil((o+1)/r)*r>>>5)-1]|=128,e.sigBytes=4*i.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,l=[],h=0;h>>24)|4278255360&(d<<24|d>>>8),f=16711935&(f<<8|f>>>24)|4278255360&(f<<24|f>>>8),l.push(f),l.push(d)}return new n.init(l,a)},clone:function(){for(var t=o.clone.call(this),e=t._state=this._state.slice(0),i=0;i<25;i++)e[i]=e[i].clone();return t}});e.SHA3=o._createHelper(d),e.HmacSHA3=o._createHmacHelper(d)}(Math),function(){function t(){return o.create.apply(o,arguments)}var e=a,i=e.lib.Hasher,n=e.x64,o=n.Word,r=n.WordArray,s=e.algo,c=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],l=[];!function(){for(var e=0;e<80;e++)l[e]=t()}();var h=s.SHA512=i.extend({_doReset:function(){this._hash=new r.init([new o.init(1779033703,4089235720),new o.init(3144134277,2227873595),new o.init(1013904242,4271175723),new o.init(2773480762,1595750129),new o.init(1359893119,2917565137),new o.init(2600822924,725511199),new o.init(528734635,4215389547),new o.init(1541459225,327033209)])},_doProcessBlock:function(t,e){for(var i=this._hash.words,n=i[0],o=i[1],r=i[2],s=i[3],a=i[4],h=i[5],u=i[6],d=i[7],f=n.high,p=n.low,g=o.high,y=o.low,m=r.high,_=r.low,v=s.high,C=s.low,w=a.high,x=a.low,b=h.high,S=h.low,B=u.high,k=u.low,T=d.high,M=d.low,I=f,A=p,G=g,N=y,R=m,O=_,L=v,P=C,D=w,E=x,F=b,H=S,V=B,j=k,z=T,U=M,W=0;W<80;W++){var K=l[W];if(W<16)var X=K.high=0|t[e+2*W],Y=K.low=0|t[e+2*W+1];else{var q=l[W-15],J=q.high,Z=q.low,Q=(J>>>1|Z<<31)^(J>>>8|Z<<24)^J>>>7,$=(Z>>>1|J<<31)^(Z>>>8|J<<24)^(Z>>>7|J<<25),tt=l[W-2],et=tt.high,it=tt.low,nt=(et>>>19|it<<13)^(et<<3|it>>>29)^et>>>6,ot=(it>>>19|et<<13)^(it<<3|et>>>29)^(it>>>6|et<<26),rt=l[W-7],st=rt.high,at=rt.low,ct=l[W-16],lt=ct.high,ht=ct.low;X=(X=(X=Q+st+((Y=$+at)>>>0<$>>>0?1:0))+nt+((Y+=ot)>>>0>>0?1:0))+lt+((Y+=ht)>>>0>>0?1:0),K.high=X,K.low=Y}var ut,dt=D&F^~D&V,ft=E&H^~E&j,pt=I&G^I&R^G&R,gt=A&N^A&O^N&O,yt=(I>>>28|A<<4)^(I<<30|A>>>2)^(I<<25|A>>>7),mt=(A>>>28|I<<4)^(A<<30|I>>>2)^(A<<25|I>>>7),_t=(D>>>14|E<<18)^(D>>>18|E<<14)^(D<<23|E>>>9),vt=(E>>>14|D<<18)^(E>>>18|D<<14)^(E<<23|D>>>9),Ct=c[W],wt=Ct.high,xt=Ct.low,bt=z+_t+((ut=U+vt)>>>0>>0?1:0),St=mt+gt;z=V,U=j,V=F,j=H,F=D,H=E,D=L+(bt=(bt=(bt=bt+dt+((ut+=ft)>>>0>>0?1:0))+wt+((ut+=xt)>>>0>>0?1:0))+X+((ut+=Y)>>>0>>0?1:0))+((E=P+ut|0)>>>0

>>0?1:0),x=a.low=x+E,a.high=w+D+(x>>>0>>0?1:0),S=h.low=S+H,h.high=b+F+(S>>>0>>0?1:0),k=u.low=k+j,u.high=B+V+(k>>>0>>0?1:0),M=d.low=M+U,d.high=T+z+(M>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[30+(n+128>>>10<<5)]=Math.floor(i/4294967296),e[31+(n+128>>>10<<5)]=i,t.sigBytes=4*e.length,this._process(),this._hash.toX32()},clone:function(){var t=i.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});e.SHA512=i._createHelper(h),e.HmacSHA512=i._createHmacHelper(h)}(),function(){var t=a,e=t.x64,i=e.Word,n=e.WordArray,o=t.algo,r=o.SHA512,s=o.SHA384=r.extend({_doReset:function(){this._hash=new n.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var t=r._doFinalize.call(this);return t.sigBytes-=16,t}});t.SHA384=r._createHelper(s),t.HmacSHA384=r._createHmacHelper(s)}(),a.lib.Cipher||function(t){var e=a,i=e.lib,n=i.Base,o=i.WordArray,r=i.BufferedBlockAlgorithm,s=e.enc,c=(s.Utf8,s.Base64),l=e.algo.EvpKDF,h=i.Cipher=r.extend({cfg:n.extend(),createEncryptor:function(t,e){return this.create(this._ENC_XFORM_MODE,t,e)},createDecryptor:function(t,e){return this.create(this._DEC_XFORM_MODE,t,e)},init:function(t,e,i){this.cfg=this.cfg.extend(i),this._xformMode=t,this._key=e,this.reset()},reset:function(){r.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){return t&&this._append(t),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return"string"==typeof t?v:m}return function(e){return{encrypt:function(i,n,o){return t(n).encrypt(e,i,n,o)},decrypt:function(i,n,o){return t(n).decrypt(e,i,n,o)}}}}()}),u=(i.StreamCipher=h.extend({_doFinalize:function(){return this._process(!0)},blockSize:1}),e.mode={}),d=i.BlockCipherMode=n.extend({createEncryptor:function(t,e){return this.Encryptor.create(t,e)},createDecryptor:function(t,e){return this.Decryptor.create(t,e)},init:function(t,e){this._cipher=t,this._iv=e}}),f=u.CBC=function(){function e(e,i,n){var o=this._iv;if(o){var r=o;this._iv=t}else r=this._prevBlock;for(var s=0;s>>2];t.sigBytes-=e}},g=(i.BlockCipher=h.extend({cfg:h.cfg.extend({mode:f,padding:p}),reset:function(){h.reset.call(this);var t=this.cfg,e=t.iv,i=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var n=i.createEncryptor;else n=i.createDecryptor,this._minBufferSize=1;this._mode&&this._mode.__creator==n?this._mode.init(this,e&&e.words):(this._mode=n.call(i,this,e&&e.words),this._mode.__creator=n)},_doProcessBlock:function(t,e){this._mode.processBlock(t,e)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var e=this._process(!0)}else e=this._process(!0),t.unpad(e);return e},blockSize:4}),i.CipherParams=n.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),y=(e.format={}).OpenSSL={stringify:function(t){var e=t.ciphertext,i=t.salt;if(i)var n=o.create([1398893684,1701076831]).concat(i).concat(e);else n=e;return n.toString(c)},parse:function(t){var e=c.parse(t),i=e.words;if(1398893684==i[0]&&1701076831==i[1]){var n=o.create(i.slice(2,4));i.splice(0,4),e.sigBytes-=16}return g.create({ciphertext:e,salt:n})}},m=i.SerializableCipher=n.extend({cfg:n.extend({format:y}),encrypt:function(t,e,i,n){n=this.cfg.extend(n);var o=t.createEncryptor(i,n),r=o.finalize(e),s=o.cfg;return g.create({ciphertext:r,key:i,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:n.format})},decrypt:function(t,e,i,n){return n=this.cfg.extend(n),e=this._parse(e,n.format),t.createDecryptor(i,n).finalize(e.ciphertext)},_parse:function(t,e){return"string"==typeof t?e.parse(t,this):t}}),_=(e.kdf={}).OpenSSL={execute:function(t,e,i,n){n||(n=o.random(8));var r=l.create({keySize:e+i}).compute(t,n),s=o.create(r.words.slice(e),4*i);return r.sigBytes=4*e,g.create({key:r,iv:s,salt:n})}},v=i.PasswordBasedCipher=m.extend({cfg:m.cfg.extend({kdf:_}),encrypt:function(t,e,i,n){var o=(n=this.cfg.extend(n)).kdf.execute(i,t.keySize,t.ivSize);n.iv=o.iv;var r=m.encrypt.call(this,t,e,o.key,n);return r.mixIn(o),r},decrypt:function(t,e,i,n){n=this.cfg.extend(n),e=this._parse(e,n.format);var o=n.kdf.execute(i,t.keySize,t.ivSize,e.salt);return n.iv=o.iv,m.decrypt.call(this,t,e,o.key,n)}})}(),a.mode.CFB=function(){function t(t,e,i,n){var o=this._iv;if(o){var r=o.slice(0);this._iv=void 0}else r=this._prevBlock;n.encryptBlock(r,0);for(var s=0;s>>2]|=o<<24-r%4*8,t.sigBytes+=o},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},a.pad.Iso10126={pad:function(t,e){var i=4*e,n=i-t.sigBytes%i;t.concat(a.lib.WordArray.random(n-1)).concat(a.lib.WordArray.create([n<<24],1))},unpad:function(t){var e=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=e}},a.pad.Iso97971={pad:function(t,e){t.concat(a.lib.WordArray.create([2147483648],1)),a.pad.ZeroPadding.pad(t,e)},unpad:function(t){a.pad.ZeroPadding.unpad(t),t.sigBytes--}},a.mode.OFB=function(){var t=a.lib.BlockCipherMode.extend(),e=t.Encryptor=t.extend({processBlock:function(t,e){var i=this._cipher,n=i.blockSize,o=this._iv,r=this._keystream;o&&(r=this._keystream=o.slice(0),this._iv=void 0),i.encryptBlock(r,0);for(var s=0;s>>8^255&p^99,n[i]=p,o[p]=i;var g=t[i],y=t[g],m=t[y],_=257*t[p]^16843008*p;r[i]=_<<24|_>>>8,s[i]=_<<16|_>>>16,c[i]=_<<8|_>>>24,l[i]=_,_=16843009*m^65537*y^257*g^16843008*i,h[p]=_<<24|_>>>8,u[p]=_<<16|_>>>16,d[p]=_<<8|_>>>24,f[p]=_,i?(i=g^t[t[t[m^g]]],a^=t[t[a]]):i=a=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],g=i.AES=e.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,e=t.words,i=t.sigBytes/4,o=4*((this._nRounds=i+6)+1),r=this._keySchedule=[],s=0;s6&&s%i==4&&(a=n[a>>>24]<<24|n[a>>>16&255]<<16|n[a>>>8&255]<<8|n[255&a]):(a=n[(a=a<<8|a>>>24)>>>24]<<24|n[a>>>16&255]<<16|n[a>>>8&255]<<8|n[255&a],a^=p[s/i|0]<<24),r[s]=r[s-i]^a}for(var c=this._invKeySchedule=[],l=0;l>>24]]^u[n[a>>>16&255]]^d[n[a>>>8&255]]^f[n[255&a]]}},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._keySchedule,r,s,c,l,n)},decryptBlock:function(t,e){var i=t[e+1];t[e+1]=t[e+3],t[e+3]=i,this._doCryptBlock(t,e,this._invKeySchedule,h,u,d,f,o),i=t[e+1],t[e+1]=t[e+3],t[e+3]=i},_doCryptBlock:function(t,e,i,n,o,r,s,a){for(var c=this._nRounds,l=t[e]^i[0],h=t[e+1]^i[1],u=t[e+2]^i[2],d=t[e+3]^i[3],f=4,p=1;p>>24]^o[h>>>16&255]^r[u>>>8&255]^s[255&d]^i[f++],y=n[h>>>24]^o[u>>>16&255]^r[d>>>8&255]^s[255&l]^i[f++],m=n[u>>>24]^o[d>>>16&255]^r[l>>>8&255]^s[255&h]^i[f++],_=n[d>>>24]^o[l>>>16&255]^r[h>>>8&255]^s[255&u]^i[f++];l=g,h=y,u=m,d=_}g=(a[l>>>24]<<24|a[h>>>16&255]<<16|a[u>>>8&255]<<8|a[255&d])^i[f++],y=(a[h>>>24]<<24|a[u>>>16&255]<<16|a[d>>>8&255]<<8|a[255&l])^i[f++],m=(a[u>>>24]<<24|a[d>>>16&255]<<16|a[l>>>8&255]<<8|a[255&h])^i[f++],_=(a[d>>>24]<<24|a[l>>>16&255]<<16|a[h>>>8&255]<<8|a[255&u])^i[f++],t[e]=g,t[e+1]=y,t[e+2]=m,t[e+3]=_},keySize:8});t.AES=e._createHelper(g)}(),function(){function t(t,e){var i=(this._lBlock>>>t^this._rBlock)&e;this._rBlock^=i,this._lBlock^=i<>>t^this._lBlock)&e;this._lBlock^=i,this._rBlock^=i<>>5]>>>31-n%32&1}for(var o=this._subKeys=[],r=0;r<16;r++){var s=o[r]=[],a=h[r];for(i=0;i<24;i++)s[i/6|0]|=e[(l[i]-1+a)%28]<<31-i%6,s[4+(i/6|0)]|=e[28+(l[i+24]-1+a)%28]<<31-i%6;for(s[0]=s[0]<<1|s[0]>>>31,i=1;i<7;i++)s[i]=s[i]>>>4*(i-1)+3;s[7]=s[7]<<5|s[7]>>>27}var u=this._invSubKeys=[];for(i=0;i<16;i++)u[i]=o[15-i]},encryptBlock:function(t,e){this._doCryptBlock(t,e,this._subKeys)},decryptBlock:function(t,e){this._doCryptBlock(t,e,this._invSubKeys)},_doCryptBlock:function(i,n,o){this._lBlock=i[n],this._rBlock=i[n+1],t.call(this,4,252645135),t.call(this,16,65535),e.call(this,2,858993459),e.call(this,8,16711935),t.call(this,1,1431655765);for(var r=0;r<16;r++){for(var s=o[r],a=this._lBlock,c=this._rBlock,l=0,h=0;h<8;h++)l|=u[h][((c^s[h])&d[h])>>>0];this._lBlock=c,this._rBlock=a^l}var f=this._lBlock;this._lBlock=this._rBlock,this._rBlock=f,t.call(this,1,1431655765),e.call(this,8,16711935),e.call(this,2,858993459),t.call(this,16,65535),t.call(this,4,252645135),i[n]=this._lBlock,i[n+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});i.DES=r._createHelper(f);var p=s.TripleDES=r.extend({_doReset:function(){var t=this._key.words;this._des1=f.createEncryptor(o.create(t.slice(0,2))),this._des2=f.createEncryptor(o.create(t.slice(2,4))),this._des3=f.createEncryptor(o.create(t.slice(4,6)))},encryptBlock:function(t,e){this._des1.encryptBlock(t,e),this._des2.decryptBlock(t,e),this._des3.encryptBlock(t,e)},decryptBlock:function(t,e){this._des3.decryptBlock(t,e),this._des2.encryptBlock(t,e),this._des1.decryptBlock(t,e)},keySize:6,ivSize:2,blockSize:2});i.TripleDES=r._createHelper(p)}(),function(){function t(){for(var t=this._S,e=this._i,i=this._j,n=0,o=0;o<4;o++){i=(i+t[e=(e+1)%256])%256;var r=t[e];t[e]=t[i],t[i]=r,n|=t[(t[e]+t[i])%256]<<24-8*o}return this._i=e,this._j=i,n}var e=a,i=e.lib.StreamCipher,n=e.algo,o=n.RC4=i.extend({_doReset:function(){for(var t=this._key,e=t.words,i=t.sigBytes,n=this._S=[],o=0;o<256;o++)n[o]=o;o=0;for(var r=0;o<256;o++){var s=o%i,a=e[s>>>2]>>>24-s%4*8&255;r=(r+n[o]+a)%256;var c=n[o];n[o]=n[r],n[r]=c}this._i=this._j=0},_doProcessBlock:function(e,i){e[i]^=t.call(this)},keySize:8,ivSize:0});e.RC4=i._createHelper(o);var r=n.RC4Drop=o.extend({cfg:o.cfg.extend({drop:192}),_doReset:function(){o._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)t.call(this)}});e.RC4Drop=i._createHelper(r)}(),a.mode.CTRGladman=function(){function t(t){if(255==(t>>24&255)){var e=t>>16&255,i=t>>8&255,n=255&t;255===e?(e=0,255===i?(i=0,255===n?n=0:++n):++i):++e,t=0,t+=e<<16,t+=i<<8,t+=n}else t+=1<<24;return t}function e(e){return 0===(e[0]=t(e[0]))&&(e[1]=t(e[1])),e}var i=a.lib.BlockCipherMode.extend(),n=i.Encryptor=i.extend({processBlock:function(t,i){var n=this._cipher,o=n.blockSize,r=this._iv,s=this._counter;r&&(s=this._counter=r.slice(0),this._iv=void 0),e(s);var a=s.slice(0);n.encryptBlock(a,0);for(var c=0;c>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,i=0;i<8;i++){var n=t[i]+e[i],o=65535&n,a=n>>>16,c=((o*o>>>17)+o*a>>>15)+a*a,l=((4294901760&n)*n|0)+((65535&n)*n|0);s[i]=c^l}t[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,t[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,t[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,t[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,t[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,t[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,t[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,t[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}var e=a,i=e.lib.StreamCipher,n=e.algo,o=[],r=[],s=[],c=n.Rabbit=i.extend({_doReset:function(){for(var e=this._key.words,i=this.cfg.iv,n=0;n<4;n++)e[n]=16711935&(e[n]<<8|e[n]>>>24)|4278255360&(e[n]<<24|e[n]>>>8);var o=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],r=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,n=0;n<4;n++)t.call(this);for(n=0;n<8;n++)r[n]^=o[n+4&7];if(i){var s=i.words,a=s[0],c=s[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),h=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),u=l>>>16|4294901760&h,d=h<<16|65535&l;for(r[0]^=l,r[1]^=u,r[2]^=h,r[3]^=d,r[4]^=l,r[5]^=u,r[6]^=h,r[7]^=d,n=0;n<4;n++)t.call(this)}},_doProcessBlock:function(e,i){var n=this._X;t.call(this),o[0]=n[0]^n[5]>>>16^n[3]<<16,o[1]=n[2]^n[7]>>>16^n[5]<<16,o[2]=n[4]^n[1]>>>16^n[7]<<16,o[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)o[r]=16711935&(o[r]<<8|o[r]>>>24)|4278255360&(o[r]<<24|o[r]>>>8),e[i+r]^=o[r]},blockSize:4,ivSize:2});e.Rabbit=i._createHelper(c)}(),a.mode.CTR=function(){var t=a.lib.BlockCipherMode.extend(),e=t.Encryptor=t.extend({processBlock:function(t,e){var i=this._cipher,n=i.blockSize,o=this._iv,r=this._counter;o&&(r=this._counter=o.slice(0),this._iv=void 0);var s=r.slice(0);i.encryptBlock(s,0),r[n-1]=r[n-1]+1|0;for(var a=0;a>>0>>0?1:0)|0,e[2]=e[2]+886263092+(e[1]>>>0>>0?1:0)|0,e[3]=e[3]+1295307597+(e[2]>>>0>>0?1:0)|0,e[4]=e[4]+3545052371+(e[3]>>>0>>0?1:0)|0,e[5]=e[5]+886263092+(e[4]>>>0>>0?1:0)|0,e[6]=e[6]+1295307597+(e[5]>>>0>>0?1:0)|0,e[7]=e[7]+3545052371+(e[6]>>>0>>0?1:0)|0,this._b=e[7]>>>0>>0?1:0,i=0;i<8;i++){var n=t[i]+e[i],o=65535&n,a=n>>>16,c=((o*o>>>17)+o*a>>>15)+a*a,l=((4294901760&n)*n|0)+((65535&n)*n|0);s[i]=c^l}t[0]=s[0]+(s[7]<<16|s[7]>>>16)+(s[6]<<16|s[6]>>>16)|0,t[1]=s[1]+(s[0]<<8|s[0]>>>24)+s[7]|0,t[2]=s[2]+(s[1]<<16|s[1]>>>16)+(s[0]<<16|s[0]>>>16)|0,t[3]=s[3]+(s[2]<<8|s[2]>>>24)+s[1]|0,t[4]=s[4]+(s[3]<<16|s[3]>>>16)+(s[2]<<16|s[2]>>>16)|0,t[5]=s[5]+(s[4]<<8|s[4]>>>24)+s[3]|0,t[6]=s[6]+(s[5]<<16|s[5]>>>16)+(s[4]<<16|s[4]>>>16)|0,t[7]=s[7]+(s[6]<<8|s[6]>>>24)+s[5]|0}var e=a,i=e.lib.StreamCipher,n=e.algo,o=[],r=[],s=[],c=n.RabbitLegacy=i.extend({_doReset:function(){var e=this._key.words,i=this.cfg.iv,n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],o=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var r=0;r<4;r++)t.call(this);for(r=0;r<8;r++)o[r]^=n[r+4&7];if(i){var s=i.words,a=s[0],c=s[1],l=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),h=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),u=l>>>16|4294901760&h,d=h<<16|65535&l;for(o[0]^=l,o[1]^=u,o[2]^=h,o[3]^=d,o[4]^=l,o[5]^=u,o[6]^=h,o[7]^=d,r=0;r<4;r++)t.call(this)}},_doProcessBlock:function(e,i){var n=this._X;t.call(this),o[0]=n[0]^n[5]>>>16^n[3]<<16,o[1]=n[2]^n[7]>>>16^n[5]<<16,o[2]=n[4]^n[1]>>>16^n[7]<<16,o[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)o[r]=16711935&(o[r]<<8|o[r]>>>24)|4278255360&(o[r]<<24|o[r]>>>8),e[i+r]^=o[r]},blockSize:4,ivSize:2});e.RabbitLegacy=i._createHelper(c)}(),a.pad.ZeroPadding={pad:function(t,e){var i=4*e;t.clamp(),t.sigBytes+=i-(t.sigBytes%i||i)},unpad:function(t){for(var e=t.words,i=t.sigBytes-1;!(e[i>>>2]>>>24-i%4*8&255);)i--;t.sigBytes=i+1}},a}),cc._RF.pop()},{}],share:[function(t,e,i){"use strict";cc._RF.push(e,"7290caA39xMWZc2phTMKovP","share");var n=this&&this.__awaiter||function(t,e,i,n){return new(i||(i=Promise))(function(o,r){function s(t){try{c(n.next(t))}catch(e){r(e)}}function a(t){try{c(n.throw(t))}catch(e){r(e)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(s,a)}c((n=n.apply(t,e||[])).next())})},o=this&&this.__generator||function(t,e){var i,n,o,r,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return r={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function a(t){return function(e){return c([t,e])}}function c(r){if(i)throw new TypeError("Generator is already executing.");for(;s;)try{if(i=1,n&&(o=2&r[0]?n.return:r[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,r[1])).done)return o;switch(n=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,n=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(o=(o=s.trys).length>0&&o[o.length-1])&&(6===r[0]||2===r[0])){s=0;continue}if(3===r[0]&&(!o||r[1]>o[0]&&r[1]HhYiszgRy~4`qFk?L+d`8))nj=U11e=Fil?D&?PTR-fY@~ ziXtk?M2`~{(UZ)9;$bj91}doY;6)F@K=B}mZU>J8^`&dO9jt+u_kWMy@Av1>JC3CAILhFHWI}34L1{?GG${)cP*RH1Z(xw3 zc66%A6i&sD3Nq4I$-%I;W)L<-1qWI7IVq;NjdJ4tQLE7u*2>_~^>V5O1cE5fWmw;)|R@Ob%m1;J8Ae zz!p3#GP4{A1Ol9!=Xl;l5H72zW65^uR##O)gqCco23CV%2l?wp1NFT5;TK&7NM!0gi6#z8ePsKu*@*=Lr#G$19>Bswr z%`XO9&wt5IFIv~$ed~sExP7_zCwMg5dH3Ga?^DeSuNxco{W*6qc`9eSR(jN5nf3eo zH%e&zxUhC-atV*SF5vuw-nU-Q<+WGRc;Dpwjqa6;8?*#44RLcUZ2NOEBZQB3b*#EJKe&aC?IJZ7QQQ&=PVW z9SKGP8VAC3R0x6y2*Z@0~O`}P}7`5yEp}>{QgteO?TRmO+goRI2yUQ)}?+ZTa+BA zV&tR|+L5nfLmR@#Z9_IKNpwY%Vd=QRxJ%CseZjAj7vtcJr#??cV8A)RjulkzAx_{dpqiR zFTQq{938%TP5%UnA3oyC*UWztTXNQTcMLx0A2@%pk16Zfz3rJac4H&;^>f?<_m8KX zO()AjbzkC@eRanJS37pU3cQZ0TUX8)F8vsqHoJMdeftDGd|>_bx#hio4L?iIJ)b+c z@0K#KIQGrDeNWKUW(HYy_BH9M#-1xrl|Nj5{XQHG1 zKy}sTDvF}2lLwU)nRf<%Wd#{e|CqMOv`7nrq`bMyaj&LB#a#0pULm(n>yZ~Z!{$ofq*XR>cN^3qA*@;XBV@F`w zTrL;RMZ?JLX93UiEEi!Tkq|+Iyb&8~e#rK=6%-Wc>8|Nu6WMg2sP&>DEHcFDuM{k& zC~JH9GLeF@zUHtX%mpbGfU5d`sAUz=9!|mEe*Y=#rAHjdrl5z0T%BB8-?ku>Bgih) zFmlrf4HT-_kwF-F8RXEiOz-S6Z3E@Jx)r#p3Q60;nytg6A~HlEY?_9UNVLWiQcRB5 z#~J`gH1dFtNnC`JS`t8Nh=KxFLHdvdZCv0Qzqv|DZqNyqLn15CHHV?m>LQC?$yhK; zdub`Dm**O#y+|dwEHT3d_xi^@7mi5t1j}OAl1;Jip-r0IC0%`tvk-X^Q%R*I?Z5i+ zOsrZ3)~$Irf4j2o%(eNiGvmWorM+9mYNpRTu4&MAti8SUz36wIm;saL%GbY{?EgH0 zjq~>>?fMI^3S^ z$v*6P`z@Q?zEHMqKUKE+@8LmnMcc{V*GE6SKCt`g*sR<3d4qKQ;)Tl>%u`@ruB?JO WUKd}^eLpuCyyj%0UAZM49sdc1b?AYJ!E=X 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%0DRn#;e&U%E;C{Emq1`1nL@{Bg7N*`Ewucm{#9 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≦J6_#EC;1SM5HFoCtSL zHAvJ+9woI-EBpyl+x&A;^i@6Me|TUY|4YVvZVT=NZx?n;c6){YYn+5dG8+na>o2@V|)+Yeb7jLfO#Xk|XO4OOp zU!6gZ_d|Rc)bwoxq!BPvWsR$Y*O&K3^{zGA^|8igy_f)70*d3yI$ds)&T9>KuMT2q z5h*OG>L;0LNb3e?Io0VwJFMIym^hZ?e2}41u-7eTmieQ?Y|hV8ZtB06`tljM9N%K# z+icDb>RW{qx(_QjYJ}@!jm&N^0W-nq`yVp6^LnkuI#VNciUzQ;i9@%j3MBpYW9WVc z>>p*Lu3up~g9%OILD3zM^Oq0--8~s{l&dF=25A-jBU~)0g(r3!cVMkG<;aOxaEE^F zlo)(KstkviEw%G@?*I0ab*X$#?kA*3;1`J;_S-+FF9pq(xhv=J(0a1#a-0Sb zmJV)T_1>Rrzp|7?im0n^91GI!#ASR{ls#8q)p7%FpME#or^&@Obp3gmP@Oqfj}JZOyl_qBp(>j+bbzzZbxa({U+2wmdRm9v{rVcjYPOGpJ zzMu^i&*M6mffD6du6q4gBpIHlLuw(BpxQ4a0#=kg^cdMwl7dm4L(JW+S&-D+_&K!G zF#0LoQ1zVL6{Krvt?G`Cq#Jhm;EE)BWJT%f+XoLoi{-W2p}%o>?KR$kzaaE4ySFcz z!WPzm=OXlL=^r#EWO@PP#iR%wsk?T>SS(6D>D_tCK_7|VLm z=cSM&gv=!1&S+`{O>g*L^N^*n-^cp@{GWUk`QBqQ3%JAtcya^2>32|nPH;)Yxn=#c zq_`%Wgej4D0;YaWrE+*L-lKP$`w52qx>`Ltss0Yf^m9g%1`q}d#WX`{lC2|O> zww3ABd_g>t@T~pClLd);5h6GU6lfqry^d~adjO@fG&Yx_>SQg0V=wfYH(oBmfLKP) zEI)}jg!f>pW`J@Dh%UN8kS~s($QM3j>Ts7i_VT#`A(x#%Hz_Sda&3O0V5S^Rg#3}^>jy?M+*y$x<*#4sguxk1*HYpn8`gl?4~Au$FR0PsCu>N8pb+H{5{fl;cFT z=7`S%2#!8QoU%X9^WQ5tS1%W0^=LWDu*Q%Mp_sfr?;QA)63j_-YyJWk{)fD)vTwN< z$hqy4wXeUqUB16{xnEblJl!82yWcfh9$OB$zqar{?aE{Z0>HMG6RyVpt;)*?JpiZV z*-B0}Jx-Wt0&0Z-G$!lVEB98Ve5IkhR-?=D4A^hB59-FZqwX=M_qJ67KbTLfxH*Gsuvk znaxx8`v2p#+%jNzpR=Z;*rywnt3BPCuy{hPun~|W&CLx?eW|~VH0S%iIC=bJ@booK z`@P$*8v~l$Ss7VlIZ4wa+wNf#$?MoS)gIk$YzZ@v0BTrh=k!7GxqlW7NbJPVH|qz8 z&g{j!zr4JXAvSC611Aebqp`Y4r_HBGvg+RLBN5E!&X`}7vG{di@&DoWBfh=4X0;ug z@BEWYe$r9*WZYt+#%GsQXAqx}_cvnX2xgF0*XtP?i$f)Ex{sk7G?1viKl16+#fm!|!GK~Gpqk!GbCXE{gi)sKIRy|@Ay zjQY`>5!bq6(wSPD$oACdSEyeJw&1ngoF(>)f2oHEm_Y&e;0V%!vHqrx!H7)%Zu94x zx%iiU=e&f#`>X3iI$zp%_fex*yhn~!^hTnZMWgykx@J%HM(>C&Dg|p{`^W$eDnB4&E%RgN zanXc@d=zZrbkx?y!&g>b^jfc(rwFJ!=>bJVs;~S6*hhXT!{YN zPCtCo0VkM7tn82AsGCOIdRl5Nzu3##Vr~q>B?s|e#AsiudPi7XOsUI~dr)9rA>2=1iyRto(Wcuj z+#E{;_#N9J6ng~^Q9L0oKz|28m#JP1?Juou-uziXS**Vr>a6!EnKp1rBzjI&_fji) zIGcb@8N#hfBbQ4Cf3}yJI>A(AZKxz^<<8*~ax;mNLSD}O?=|nAej_je8j9=V8IqZ2 z(^^jWT%PA_Y7aj=Z412JY@V@&))ambu`mmwa}~93xxq0($D<#f5;&+!P0i2X;7P<9 zB143sq>*Laqw?I7(48~NEV|P`xjZ*}I>{$LU6Q!LwL<~Krl{t|8vZ~EX%q&zd^w$q z6}n%yzTT+uIeX$8^Kdh-QfT?^@-Sx0qDyvjKluUNM*>MV3;+*FN;A|$KP$Z$GIA0e zP#NkuMT61L4<6uFUbn>Hi&_R2-n|L8aYirO8BeRldfJ#+4oRz+C?2;HB8haq9|SFF zI%hgG3%g0lqKk(~IA?CawLu;W3GDncfFeCdxSuhJqgj@CW4R5hvb zS7Eunz4lK|OlLz`$zGlhuW;Ceq61)mS?JzFm20%?4uBW|K_S;L8nV;}S~0eff`zFJ zC-C?E`c6-mw&I64-pexoRnFl4ZpDkR#>UOvRlHW;(TYw?QRPcrl8&+fWR!2>Td z5AOT;a@5#255aBJ?qnJ2+y4Sb#5aFhDlGTbr>rjNddQ&OI-t6SoiC{*EclDcp3&;b z3s5me+X}eb+IbRESzIf)$I9kZLug(c@CPY;K zCz#;-Ae%(ZeI-;>7gpa;N1-u8EjsCs

y?-D}E>l>A8yv>IXtpgpc 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 i%2U!(p7Q(y&;J9qe^)Jj;>_p(0000=0;i--)e.push(cc.v2(t[i].x,t[i].y));return e}function i(t){for(var e=[],i=0;i=this._duration},_cloneDecoration:function(t){t._repeatForever=this._repeatForever,t._speed=this._speed,t._timesForRepeat=this._timesForRepeat,t._easeList=this._easeList,t._speedMethod=this._speedMethod,t._repeatMethod=this._repeatMethod},_reverseEaseList:function(t){if(this._easeList){t._easeList=[];for(var e=0;e1.192092896e-7?this._duration:1.192092896e-7);e=1>e?e:1,this.update(e>0?e:0),this._repeatMethod&&this._timesForRepeat>1&&this.isDone()&&(this._repeatForever||this._timesForRepeat--,this.startWithTarget(this.target),this.step(this._elapsed-this._duration))},startWithTarget:function(t){cc.Action.prototype.startWithTarget.call(this,t),this._elapsed=0,this._firstTick=!0},reverse:function(){return cc.logID(1010),null},setAmplitudeRate:function(){cc.logID(1011)},getAmplitudeRate:function(){return cc.logID(1012),0},speed:function(t){return t<=0?(cc.logID(1013),this):(this._speedMethod=!0,this._speed*=t,this)},getSpeed:function(){return this._speed},setSpeed:function(t){return this._speed=t,this},repeat:function(t){return t=Math.round(t),isNaN(t)||t<1?(cc.logID(1014),this):(this._repeatMethod=!0,this._timesForRepeat*=t,this)},repeatForever:function(){return this._repeatMethod=!0,this._timesForRepeat=this.MAX_VALUE,this._repeatForever=!0,this}}),cc.actionInterval=function(t){return new cc.ActionInterval(t)},cc.Sequence=cc.Class({name:"cc.Sequence",extends:cc.ActionInterval,ctor:function(t){this._actions=[],this._split=null,this._last=0,this._reversed=!1;var e=t instanceof Array?t:arguments;if(1!==e.length){var i=e.length-1;if(i>=0&&null==e[i]&&cc.logID(1015),i>=0){for(var n,r=e[0],s=1;s1?e%1:e),this._last=n)},reverse:function(){var t=cc.Sequence._actionOneTwo(this._actions[1].reverse(),this._actions[0].reverse());return this._cloneDecoration(t),this._reverseEaseList(t),t._reversed=!0,t}}),cc.sequence=function(t){var e=t instanceof Array?t:arguments;if(1===e.length)return cc.errorID(1019),null;var i=e.length-1;i>=0&&null==e[i]&&cc.logID(1015);var n=null;if(i>=0){n=e[0];for(var r=1;r<=i;r++)e[r]&&(n=cc.Sequence._actionOneTwo(n,e[r]))}return n},cc.Sequence._actionOneTwo=function(t,e){var i=new cc.Sequence;return i.initWithTwoActions(t,e),i},cc.Repeat=cc.Class({name:"cc.Repeat",extends:cc.ActionInterval,ctor:function(t,e){this._times=0,this._total=0,this._nextDt=0,this._actionInstant=!1,this._innerAction=null,void 0!==e&&this.initWithAction(t,e)},initWithAction:function(t,e){var i=t._duration*e;return!!this.initWithDuration(i)&&(this._times=e,this._innerAction=t,t instanceof cc.ActionInstant&&(this._actionInstant=!0,this._times-=1),this._total=0,!0)},clone:function(){var t=new cc.Repeat;return this._cloneDecoration(t),t.initWithAction(this._innerAction.clone(),this._times),t},startWithTarget:function(t){this._total=0,this._nextDt=this._innerAction._duration/this._duration,cc.ActionInterval.prototype.startWithTarget.call(this,t),this._innerAction.startWithTarget(t)},stop:function(){this._innerAction.stop(),cc.Action.prototype.stop.call(this)},update:function(t){t=this._computeEaseTime(t);var e=this._innerAction,i=this._duration,n=this._times,r=this._nextDt;if(t>=r){for(;t>r&&this._total1?1:r;t>=1&&this._total=0&&null==e[i]&&cc.logID(1015),i>=0){for(var n,r=e[0],s=1;sr?this._two=cc.Sequence._actionOneTwo(e,cc.delayTime(n-r)):n0&&null==e[e.length-1]&&cc.logID(1015);for(var i=e[0],n=1;n180&&(i-=360),i<-180&&(i+=360),this._startAngle=e,this._angle=cc.RotateTo._reverse?i:-i},reverse:function(){cc.logID(1016)},update:function(t){t=this._computeEaseTime(t),this.target&&(this.target.angle=this._startAngle+this._angle*t)}}),cc.rotateTo=function(t,e){return new cc.RotateTo(t,e)},cc.RotateBy=cc.Class({name:"cc.RotateBy",extends:cc.ActionInterval,statics:{_reverse:!1},ctor:function(t,e){e*=cc.RotateBy._reverse?1:-1,this._deltaAngle=0,this._startAngle=0,void 0!==e&&this.initWithDuration(t,e)},initWithDuration:function(t,e){return!!cc.ActionInterval.prototype.initWithDuration.call(this,t)&&(this._deltaAngle=e,!0)},clone:function(){var t=new cc.RotateBy;return this._cloneDecoration(t),t.initWithDuration(this._duration,this._deltaAngle),t},startWithTarget:function(t){cc.ActionInterval.prototype.startWithTarget.call(this,t),this._startAngle=t.angle},update:function(t){t=this._computeEaseTime(t),this.target&&(this.target.angle=this._startAngle+this._deltaAngle*t)},reverse:function(){var t=new cc.RotateBy;return t.initWithDuration(this._duration,-this._deltaAngle),this._cloneDecoration(t),this._reverseEaseList(t),t}}),cc.rotateBy=function(t,e){return new cc.RotateBy(t,e)},cc.MoveBy=cc.Class({name:"cc.MoveBy",extends:cc.ActionInterval,ctor:function(t,e,i){this._positionDelta=cc.v2(0,0),this._startPosition=cc.v2(0,0),this._previousPosition=cc.v2(0,0),void 0!==e&&cc.MoveBy.prototype.initWithDuration.call(this,t,e,i)},initWithDuration:function(t,e,i){return!!cc.ActionInterval.prototype.initWithDuration.call(this,t)&&(void 0!==e.x&&(i=e.y,e=e.x),this._positionDelta.x=e,this._positionDelta.y=i,!0)},clone:function(){var t=new cc.MoveBy;return this._cloneDecoration(t),t.initWithDuration(this._duration,this._positionDelta),t},startWithTarget:function(t){cc.ActionInterval.prototype.startWithTarget.call(this,t);var e=t.x,i=t.y;this._previousPosition.x=e,this._previousPosition.y=i,this._startPosition.x=e,this._startPosition.y=i},update:function(t){if(t=this._computeEaseTime(t),this.target){var e=this._positionDelta.x*t,i=this._positionDelta.y*t,n=this._startPosition;if(cc.macro.ENABLE_STACKABLE_ACTIONS){var r=this.target.x,s=this.target.y,a=this._previousPosition;n.x=n.x+r-a.x,n.y=n.y+s-a.y,e+=n.x,i+=n.y,a.x=e,a.y=i,this.target.setPosition(e,i)}else this.target.setPosition(n.x+e,n.y+i)}},reverse:function(){var t=new cc.MoveBy(this._duration,cc.v2(-this._positionDelta.x,-this._positionDelta.y));return this._cloneDecoration(t),this._reverseEaseList(t),t}}),cc.moveBy=function(t,e,i){return new cc.MoveBy(t,e,i)},cc.MoveTo=cc.Class({name:"cc.MoveTo",extends:cc.MoveBy,ctor:function(t,e,i){this._endPosition=cc.v2(0,0),void 0!==e&&this.initWithDuration(t,e,i)},initWithDuration:function(t,e,i){return!!cc.MoveBy.prototype.initWithDuration.call(this,t,e,i)&&(void 0!==e.x&&(i=e.y,e=e.x),this._endPosition.x=e,this._endPosition.y=i,!0)},clone:function(){var t=new cc.MoveTo;return this._cloneDecoration(t),t.initWithDuration(this._duration,this._endPosition),t},startWithTarget:function(t){cc.MoveBy.prototype.startWithTarget.call(this,t),this._positionDelta.x=this._endPosition.x-t.x,this._positionDelta.y=this._endPosition.y-t.y}}),cc.moveTo=function(t,e,i){return new cc.MoveTo(t,e,i)},cc.SkewTo=cc.Class({name:"cc.SkewTo",extends:cc.ActionInterval,ctor:function(t,e,i){this._skewX=0,this._skewY=0,this._startSkewX=0,this._startSkewY=0,this._endSkewX=0,this._endSkewY=0,this._deltaX=0,this._deltaY=0,void 0!==i&&cc.SkewTo.prototype.initWithDuration.call(this,t,e,i)},initWithDuration:function(t,e,i){var n=!1;return cc.ActionInterval.prototype.initWithDuration.call(this,t)&&(this._endSkewX=e,this._endSkewY=i,n=!0),n},clone:function(){var t=new cc.SkewTo;return this._cloneDecoration(t),t.initWithDuration(this._duration,this._endSkewX,this._endSkewY),t},startWithTarget:function(t){cc.ActionInterval.prototype.startWithTarget.call(this,t),this._startSkewX=t.skewX%180,this._deltaX=this._endSkewX-this._startSkewX,this._deltaX>180&&(this._deltaX-=360),this._deltaX<-180&&(this._deltaX+=360),this._startSkewY=t.skewY%360,this._deltaY=this._endSkewY-this._startSkewY,this._deltaY>180&&(this._deltaY-=360),this._deltaY<-180&&(this._deltaY+=360)},update:function(t){t=this._computeEaseTime(t),this.target.skewX=this._startSkewX+this._deltaX*t,this.target.skewY=this._startSkewY+this._deltaY*t}}),cc.skewTo=function(t,e,i){return new cc.SkewTo(t,e,i)},cc.SkewBy=cc.Class({name:"cc.SkewBy",extends:cc.SkewTo,ctor:function(t,e,i){void 0!==i&&this.initWithDuration(t,e,i)},initWithDuration:function(t,e,i){var n=!1;return cc.SkewTo.prototype.initWithDuration.call(this,t,e,i)&&(this._skewX=e,this._skewY=i,n=!0),n},clone:function(){var t=new cc.SkewBy;return this._cloneDecoration(t),t.initWithDuration(this._duration,this._skewX,this._skewY),t},startWithTarget:function(t){cc.SkewTo.prototype.startWithTarget.call(this,t),this._deltaX=this._skewX,this._deltaY=this._skewY,this._endSkewX=this._startSkewX+this._deltaX,this._endSkewY=this._startSkewY+this._deltaY},reverse:function(){var t=new cc.SkewBy(this._duration,-this._skewX,-this._skewY);return this._cloneDecoration(t),this._reverseEaseList(t),t}}),cc.skewBy=function(t,e,i){return new cc.SkewBy(t,e,i)},cc.JumpBy=cc.Class({name:"cc.JumpBy",extends:cc.ActionInterval,ctor:function(t,e,i,n,r){this._startPosition=cc.v2(0,0),this._previousPosition=cc.v2(0,0),this._delta=cc.v2(0,0),this._height=0,this._jumps=0,void 0!==n&&cc.JumpBy.prototype.initWithDuration.call(this,t,e,i,n,r)},initWithDuration:function(t,e,i,n,r){return!!cc.ActionInterval.prototype.initWithDuration.call(this,t)&&(void 0===r&&(r=n,n=i,i=e.y,e=e.x),this._delta.x=e,this._delta.y=i,this._height=n,this._jumps=r,!0)},clone:function(){var t=new cc.JumpBy;return this._cloneDecoration(t),t.initWithDuration(this._duration,this._delta,this._height,this._jumps),t},startWithTarget:function(t){cc.ActionInterval.prototype.startWithTarget.call(this,t);var e=t.x,i=t.y;this._previousPosition.x=e,this._previousPosition.y=i,this._startPosition.x=e,this._startPosition.y=i},update:function(t){if(t=this._computeEaseTime(t),this.target){var e=t*this._jumps%1,i=4*this._height*e*(1-e);i+=this._delta.y*t;var n=this._delta.x*t,r=this._startPosition;if(cc.macro.ENABLE_STACKABLE_ACTIONS){var s=this.target.x,a=this.target.y,o=this._previousPosition;r.x=r.x+s-o.x,r.y=r.y+a-o.y,n+=r.x,i+=r.y,o.x=n,o.y=i,this.target.setPosition(n,i)}else this.target.setPosition(r.x+n,r.y+i)}},reverse:function(){var t=new cc.JumpBy(this._duration,cc.v2(-this._delta.x,-this._delta.y),this._height,this._jumps);return this._cloneDecoration(t),this._reverseEaseList(t),t}}),cc.jumpBy=function(t,e,i,n,r){return new cc.JumpBy(t,e,i,n,r)},cc.JumpTo=cc.Class({name:"cc.JumpTo",extends:cc.JumpBy,ctor:function(t,e,i,n,r){this._endPosition=cc.v2(0,0),void 0!==n&&this.initWithDuration(t,e,i,n,r)},initWithDuration:function(t,e,i,n,r){return!!cc.JumpBy.prototype.initWithDuration.call(this,t,e,i,n,r)&&(void 0===r&&(i=e.y,e=e.x),this._endPosition.x=e,this._endPosition.y=i,!0)},startWithTarget:function(t){cc.JumpBy.prototype.startWithTarget.call(this,t),this._delta.x=this._endPosition.x-this._startPosition.x,this._delta.y=this._endPosition.y-this._startPosition.y},clone:function(){var t=new cc.JumpTo;return this._cloneDecoration(t),t.initWithDuration(this._duration,this._endPosition,this._height,this._jumps),t}}),cc.jumpTo=function(t,e,i,n,r){return new cc.JumpTo(t,e,i,n,r)},cc.BezierBy=cc.Class({name:"cc.BezierBy",extends:cc.ActionInterval,ctor:function(t,e){this._config=[],this._startPosition=cc.v2(0,0),this._previousPosition=cc.v2(0,0),e&&cc.BezierBy.prototype.initWithDuration.call(this,t,e)},initWithDuration:function(t,e){return!!cc.ActionInterval.prototype.initWithDuration.call(this,t)&&(this._config=e,!0)},clone:function(){var t=new cc.BezierBy;this._cloneDecoration(t);for(var e=[],i=0;ie/2?255:0}},startWithTarget:function(t){cc.ActionInterval.prototype.startWithTarget.call(this,t),this._originalState=t.opacity},stop:function(){this.target.opacity=this._originalState,cc.ActionInterval.prototype.stop.call(this)},reverse:function(){var t=new cc.Blink(this._duration,this._times);return this._cloneDecoration(t),this._reverseEaseList(t),t}}),cc.blink=function(t,e){return new cc.Blink(t,e)},cc.FadeTo=cc.Class({name:"cc.FadeTo",extends:cc.ActionInterval,ctor:function(t,e){this._toOpacity=0,this._fromOpacity=0,void 0!==e&&cc.FadeTo.prototype.initWithDuration.call(this,t,e)},initWithDuration:function(t,e){return!!cc.ActionInterval.prototype.initWithDuration.call(this,t)&&(this._toOpacity=e,!0)},clone:function(){var t=new cc.FadeTo;return this._cloneDecoration(t),t.initWithDuration(this._duration,this._toOpacity),t},update:function(t){t=this._computeEaseTime(t);var e=void 0!==this._fromOpacity?this._fromOpacity:255;this.target.opacity=e+(this._toOpacity-e)*t},startWithTarget:function(t){cc.ActionInterval.prototype.startWithTarget.call(this,t),this._fromOpacity=t.opacity}}),cc.fadeTo=function(t,e){return new cc.FadeTo(t,e)},cc.FadeIn=cc.Class({name:"cc.FadeIn",extends:cc.FadeTo,ctor:function(t){null==t&&(t=0),this._reverseAction=null,this.initWithDuration(t,255)},reverse:function(){var t=new cc.FadeOut;return t.initWithDuration(this._duration,0),this._cloneDecoration(t),this._reverseEaseList(t),t},clone:function(){var t=new cc.FadeIn;return this._cloneDecoration(t),t.initWithDuration(this._duration,this._toOpacity),t},startWithTarget:function(t){this._reverseAction&&(this._toOpacity=this._reverseAction._fromOpacity),cc.FadeTo.prototype.startWithTarget.call(this,t)}}),cc.fadeIn=function(t){return new cc.FadeIn(t)},cc.FadeOut=cc.Class({name:"cc.FadeOut",extends:cc.FadeTo,ctor:function(t){null==t&&(t=0),this._reverseAction=null,this.initWithDuration(t,0)},reverse:function(){var t=new cc.FadeIn;return t._reverseAction=this,t.initWithDuration(this._duration,255),this._cloneDecoration(t),this._reverseEaseList(t),t},clone:function(){var t=new cc.FadeOut;return this._cloneDecoration(t),t.initWithDuration(this._duration,this._toOpacity),t}}),cc.fadeOut=function(t){return new cc.FadeOut(t)},cc.TintTo=cc.Class({name:"cc.TintTo",extends:cc.ActionInterval,ctor:function(t,e,i,n){this._to=cc.color(0,0,0),this._from=cc.color(0,0,0),e instanceof cc.Color&&(n=e.b,i=e.g,e=e.r),void 0!==n&&this.initWithDuration(t,e,i,n)},initWithDuration:function(t,e,i,n){return!!cc.ActionInterval.prototype.initWithDuration.call(this,t)&&(this._to=cc.color(e,i,n),!0)},clone:function(){var t=new cc.TintTo;this._cloneDecoration(t);var e=this._to;return t.initWithDuration(this._duration,e.r,e.g,e.b),t},startWithTarget:function(t){cc.ActionInterval.prototype.startWithTarget.call(this,t),this._from=this.target.color},update:function(t){t=this._computeEaseTime(t);var e=this._from,i=this._to;e&&(this.target.color=cc.color(e.r+(i.r-e.r)*t,e.g+(i.g-e.g)*t,e.b+(i.b-e.b)*t))}}),cc.tintTo=function(t,e,i,n){return new cc.TintTo(t,e,i,n)},cc.TintBy=cc.Class({name:"cc.TintBy",extends:cc.ActionInterval,ctor:function(t,e,i,n){this._deltaR=0,this._deltaG=0,this._deltaB=0,this._fromR=0,this._fromG=0,this._fromB=0,void 0!==n&&this.initWithDuration(t,e,i,n)},initWithDuration:function(t,e,i,n){return!!cc.ActionInterval.prototype.initWithDuration.call(this,t)&&(this._deltaR=e,this._deltaG=i,this._deltaB=n,!0)},clone:function(){var t=new cc.TintBy;return this._cloneDecoration(t),t.initWithDuration(this._duration,this._deltaR,this._deltaG,this._deltaB),t},startWithTarget:function(t){cc.ActionInterval.prototype.startWithTarget.call(this,t);var e=t.color;this._fromR=e.r,this._fromG=e.g,this._fromB=e.b},update:function(t){t=this._computeEaseTime(t),this.target.color=cc.color(this._fromR+this._deltaR*t,this._fromG+this._deltaG*t,this._fromB+this._deltaB*t)},reverse:function(){var t=new cc.TintBy(this._duration,-this._deltaR,-this._deltaG,-this._deltaB);return this._cloneDecoration(t),this._reverseEaseList(t),t}}),cc.tintBy=function(t,e,i,n){return new cc.TintBy(t,e,i,n)},cc.DelayTime=cc.Class({name:"cc.DelayTime",extends:cc.ActionInterval,update:function(){},reverse:function(){var t=new cc.DelayTime(this._duration);return this._cloneDecoration(t),this._reverseEaseList(t),t},clone:function(){var t=new cc.DelayTime;return this._cloneDecoration(t),t.initWithDuration(this._duration),t}}),cc.delayTime=function(t){return new cc.DelayTime(t)},cc.ReverseTime=cc.Class({name:"cc.ReverseTime",extends:cc.ActionInterval,ctor:function(t){this._other=null,t&&this.initWithAction(t)},initWithAction:function(t){return t?t===this._other?(cc.errorID(1029),!1):!!cc.ActionInterval.prototype.initWithDuration.call(this,t._duration)&&(this._other=t,!0):(cc.errorID(1028),!1)},clone:function(){var t=new cc.ReverseTime;return this._cloneDecoration(t),t.initWithAction(this._other.clone()),t},startWithTarget:function(t){cc.ActionInterval.prototype.startWithTarget.call(this,t),this._other.startWithTarget(t)},update:function(t){t=this._computeEaseTime(t),this._other&&this._other.update(1-t)},reverse:function(){return this._other.clone()},stop:function(){this._other.stop(),cc.Action.prototype.stop.call(this)}}),cc.reverseTime=function(t){return new cc.ReverseTime(t)},cc.TargetedAction=cc.Class({name:"cc.TargetedAction",extends:cc.ActionInterval,ctor:function(t,e){this._action=null,this._forcedTarget=null,e&&this.initWithTarget(t,e)},initWithTarget:function(t,e){return!!this.initWithDuration(e._duration)&&(this._forcedTarget=t,this._action=e,!0)},clone:function(){var t=new cc.TargetedAction;return this._cloneDecoration(t),t.initWithTarget(this._forcedTarget,this._action.clone()),t},startWithTarget:function(t){cc.ActionInterval.prototype.startWithTarget.call(this,t),this._action.startWithTarget(this._forcedTarget)},stop:function(){this._action.stop()},update:function(t){t=this._computeEaseTime(t),this._action.update(t)},getForcedTarget:function(){return this._forcedTarget},setForcedTarget:function(t){this._forcedTarget!==t&&(this._forcedTarget=t)}}),cc.targetedAction=function(t,e){return new cc.TargetedAction(t,e)}}),{}],6:[(function(t){"use strict";t("../core/platform/CCClass");var e=t("../core/platform/js"),i=function(){this.actions=[],this.target=null,this.actionIndex=0,this.currentAction=null,this.paused=!1,this.lock=!1};cc.ActionManager=function(){this._hashTargets=e.createMap(!0),this._arrayTargets=[],this._currentTarget=null,cc.director._scheduler&&cc.director._scheduler.enableForTarget(this)},cc.ActionManager.prototype={constructor:cc.ActionManager,_elementPool:[],_searchElementByTarget:function(t,e){for(var i=0;i=n&&i.actionIndex--;break}}},_removeActionByTag:function(t,e,i){for(var n=0,r=e.actions.length;n=0;--n){var r=e.actions[n];if(r&&r.getTag()===t){if(i&&r.getOriginalTarget()!==i)continue;this._removeActionAtIndex(n,e)}}},removeActionByTag:function(t,e){t===cc.Action.TAG_INVALID&&cc.logID(1002);var i=this._hashTargets;if(e){var n=i[e._id];n&&this._removeActionByTag(t,n,e)}else for(var r in i){var s=i[r];this._removeActionByTag(t,s)}},removeAllActionsByTag:function(t,e){t===cc.Action.TAG_INVALID&&cc.logID(1002);var i=this._hashTargets;if(e){var n=i[e._id];n&&this._removeAllActionsByTag(t,n,e)}else for(var r in i){var s=i[r];this._removeAllActionsByTag(t,s)}},getActionByTag:function(t,e){t===cc.Action.TAG_INVALID&&cc.logID(1004);var i=this._hashTargets[e._id];if(i){if(null!=i.actions)for(var n=0;n=t&&e.actionIndex--,0===e.actions.length&&this._deleteHashElement(e)},_deleteHashElement:function(t){var e=!1;if(t&&!t.lock&&this._hashTargets[t.target._id]){delete this._hashTargets[t.target._id];for(var i=this._arrayTargets,n=0,r=i.length;n=1?t:r%n>n/2?255:0},this.to(t,{opacity:1},i)}});var a=[];function o(t){return function(){a.length=0;for(var e=arguments.length,i=0;i=0?d=u.events[p]:(d=new a,u.ratios.push(f),u.events.push(d)),d.add(_.func,_.params)}}l.playState=function(t,e){t.clip&&(t.curveLoaded||h(this.target,t),t.animator=this,t.play(),"number"==typeof e&&t.setTime(e),this.play())},l.stopStatesExcept=function(t){var e=this._anims,i=e.array;for(e.i=0;e.i=0?(this._anims.fastRemoveAt(e),0===this._anims.array.length&&this.stop()):cc.errorID(3907),t.animator=null},l.sample=function(){var t=this._anims,e=t.array;for(t.i=0;t.i1e-6){y=!1;break}u._findFrameIndex=y?s:o;var A=u.values[0];return null==A||u._lerp||("number"==typeof A?u._lerp=r.prototype._lerpNumber:A instanceof cc.Quat?u._lerp=r.prototype._lerpQuat:A instanceof cc.Vec2?u._lerp=r.prototype._lerpVector2:A instanceof cc.Vec3?u._lerp=r.prototype._lerpVector3:A.lerp&&(u._lerp=r.prototype._lerpObject)),u},createTargetCurves:function(t,e,i){var n=e.props,r=e.comps;if(n)for(var s in n){var a=n[s],o=this.createPropCurve(t,s,a);i.push(o)}if(r)for(var c in r){var u=t.getComponent(c);if(u){var l=r[c];for(var h in l){var _=l[h],f=this.createPropCurve(u,h,_);i.push(f)}}}},createCurves:function(t,e){var i=this.curveData,n=i.paths,r=[];for(var s in this.createTargetCurves(e,i,r),n){var a=cc.find(s,e);if(a){var o=n[s];this.createTargetCurves(a,o,r)}}return r}});cc.AnimationClip=e.exports=c}),{"../core/utils/binary-search":208,"./animation-curves":11,"./motion-path-helper":17,"./types":19}],11:[(function(t,e){"use strict";var i=t("./bezier").bezierByTime,n=t("../core/utils/binary-search").binarySearchEpsilon,r=t("./types").WrapModeMask,s=t("./types").WrappedInfo;function a(t,e){if("string"==typeof e){var n=cc.easing[e];n?t=n(t):cc.errorID(3906,e)}else Array.isArray(e)&&(t=i(e,t));return t}var o=cc.Class({name:"cc.AnimCurve",sample:function(){},onTimeChangedManually:void 0});var c,u=cc.Class({name:"cc.DynamicAnimCurve",extends:o,ctor:function(){this._cachedIndex=0},properties:{target:null,prop:"",values:[],ratios:[],types:[]},_findFrameIndex:n,_lerp:void 0,_lerpNumber:function(t,e,i){return t+(e-t)*i},_lerpObject:function(t,e,i){return t.lerp(e,i)},_lerpQuat:(c=cc.quat(),function(t,e,i){return t.lerp(e,i,c)}),_lerpVector2:(function(){var t=cc.v2();return function(e,i,n){return e.lerp(i,n,t)}})(),_lerpVector3:(function(){var t=cc.v3();return function(e,i,n){return e.lerp(i,n,t)}})(),sample:function(t,e){var i=this.values,n=this.ratios,r=n.length;if(0!==r){var s,o=!0,c=this._cachedIndex;if(c<0&&(c=~c)>0&&cu&&e=r)s=i[r-1];else{var _=i[h-1];if(this._lerp){var f=n[h-1],d=n[h],p=this.types[h-1],v=(e-f)/(d-f);p&&(v=a(v,p));var g=i[h];s=this._lerp(_,g,v)}else s=_}else s=i[h];this.target[this.prop]=s}}});u.Linear=null,u.Bezier=function(t){return t};var l=function(){this.events=[]};l.prototype.add=function(t,e){this.events.push({func:t||"",params:e||[]})};var h=cc.Class({name:"cc.EventAnimCurve",extends:o,properties:{target:null,ratios:[],events:[],_wrappedInfo:{default:function(){return new s}},_lastWrappedInfo:null,_ignoreIndex:NaN},_wrapIterations:function(t){return t-(0|t)==0&&(t-=1),0|t},sample:function(t,e,i){var a=this.ratios.length,o=i.getWrappedInfo(i.time,this._wrappedInfo),c=o.direction,u=n(this.ratios,o.ratio);if(u<0&&(u=~u-1,c<0&&(u+=1)),this._ignoreIndex!==u&&(this._ignoreIndex=NaN),o.frameIndex=u,!this._lastWrappedInfo)return this._fireEvent(u),void(this._lastWrappedInfo=new s(o));var l=i.wrapMode,h=this._wrapIterations(o.iterations),_=this._lastWrappedInfo,f=this._wrapIterations(_.iterations),d=_.frameIndex,p=_.direction,v=-1!==f&&h!==f;if(d===u&&v&&1===a)this._fireEvent(0);else if(d!==u||v){c=p;do{if(d!==u){if(-1===c&&0===d&&u>0?((l&r.PingPong)===r.PingPong?c*=-1:d=a,f++):1===c&&d===a-1&&uh)break}d+=c,cc.director.getAnimationManager().pushDelayEvent(this,"_fireEvent",[d])}while(d!==u&&d>-1&&d=this.events.length||this._ignoreIndex===t)){var e=this.events[t].events;if(this.target.isValid)for(var i=this.target._components,n=0;nr)return~t.length;var s=(e=(e-n)/(r-n))/(1/i),a=0|s;return s-a<1e-6?a:a+1-s<1e-6?a+1:~(a+1)}}}),{"../core/utils/binary-search":208,"./bezier":14,"./types":19}],12:[(function(t,e){"use strict";var i=cc.js,n=cc.Class({ctor:function(){this._anims=new i.array.MutableForwardIterator([]),this._delayEvents=[],cc.director._scheduler&&cc.director._scheduler.enableForTarget(this)},update:function(t){var e=this._anims,i=e.array;for(e.i=0;e.i=0?this._anims.fastRemoveAt(e):cc.errorID(3907)},pushDelayEvent:function(t,e,i){this._delayEvents.push({target:t,func:e,args:i})}});cc.AnimationManager=e.exports=n}),{}],13:[(function(t,e){"use strict";var i=cc.js,n=t("./playable"),r=t("./types"),s=r.WrappedInfo,a=r.WrapMode,o=r.WrapModeMask;function c(t,e){n.call(this),this._currentFramePlayed=!1,this._delay=0,this._delayTime=0,this._wrappedInfo=new s,this._lastWrappedInfo=null,this._process=l,this._clip=t,this._name=e||t&&t.name,this.animator=null,this.curves=[],this.delay=0,this.repeatCount=1,this.duration=1,this.speed=1,this.wrapMode=a.Normal,this.time=0,this._target=null,this._lastframeEventOn=!1,this.emit=function(){for(var t=new Array(arguments.length),e=0,i=t.length;e1&&(0|e.iterations)>(0|t.iterations)&&this.emit("lastframe",this),t.set(e)),e.stopped&&(this.stop(),this.emit("finished",this))}function h(){var t=this.time,e=this.duration;t>e?0==(t%=e)&&(t=e):t<0&&0!=(t%=e)&&(t+=e);for(var i=t/e,n=this.curves,r=0,s=n.length;r0&&this._lastIterations>i||this.time<0&&this._lastIterations0&&(this._delayTime-=t,this._delayTime>0)||(this._currentFramePlayed?this.time+=t*this.speed:this._currentFramePlayed=!0,this._process())},u._needRevers=function(t){var e=this.wrapMode,i=!1;return(e&o.PingPong)===o.PingPong&&(t-(0|t)==0&&t>0&&(t-=1),1&t&&(i=!i)),(e&o.Reverse)===o.Reverse&&(i=!i),i},u.getWrappedInfo=function(t,e){e=e||new s;var i=!1,n=this.duration,r=this.repeatCount,a=t>0?t/n:-t/n;if(a>=r){a=r,i=!0;var c=r-(0|r);0===c&&(c=1),t=c*n*(t>0?1:-1)}if(t>n){var u=t%n;t=0===u?n:u}else t<0&&0!=(t%=n)&&(t+=n);var l=!1,h=this._wrapMode&o.ShouldWrap;h&&(l=this._needRevers(a));var _=l?-1:1;return this.speed<0&&(_*=-1),h&&l&&(t=n-t),e.ratio=t/n,e.time=t,e.direction=_,e.stopped=i,e.iterations=a,e},u.sample=function(){for(var t=this.getWrappedInfo(this.time,this._wrappedInfo),e=this.curves,i=0,n=e.length;i0}),(function(){this.curves.length=0})),i.getset(u,"wrapMode",(function(){return this._wrapMode}),(function(t){this._wrapMode=t,this.time=0,t&o.Loop?this.repeatCount=1/0:this.repeatCount=1})),i.getset(u,"repeatCount",(function(){return this._repeatCount}),(function(t){this._repeatCount=t;var e=this._wrapMode&o.ShouldWrap,i=(this.wrapMode&o.Reverse)===o.Reverse;this._process=t!==1/0||e||i?l:h})),i.getset(u,"delay",(function(){return this._delay}),(function(t){this._delayTime=this._delay=t})),cc.AnimationState=e.exports=c}),{"./playable":18,"./types":19}],14:[(function(t,e){"use strict";var i=Math.cos,n=Math.acos,r=Math.max,s=2*Math.PI,a=Math.sqrt;function o(t){return t<0?-Math.pow(-t,1/3):Math.pow(t,1/3)}function c(t,e){var c,u,l,h,_=e-0,f=e-t[0],d=3*_,p=3*f,v=3*(e-t[2]),g=1/(-_+p-v+(e-1)),m=(d-6*f+v)*g,y=m*(1/3),T=(-d+p)*g,E=1/3*(3*T-m*m),A=E*(1/3),C=(2*m*m*m-9*m*T+_*g*27)/27,x=C/2,b=x*x+A*A*A;if(b<0){var S=1/3*-E,R=a(S*S*S),w=-C/(2*R),I=n(w<-1?-1:w>1?1:w),M=2*o(R);return u=M*i(I*(1/3))-y,l=M*i((I+s)*(1/3))-y,h=M*i((I+2*s)*(1/3))-y,0<=u&&u<=1?0<=l&&l<=1?0<=h&&h<=1?r(u,l,h):r(u,l):0<=h&&h<=1?r(u,h):u:0<=l&&l<=1?0<=h&&h<=1?r(l,h):l:h}if(0===b)return l=-(c=x<0?o(-x):-o(x))-y,0<=(u=2*c-y)&&u<=1?0<=l&&l<=1?r(u,l):u:l;var O=a(b);return(c=o(-x+O))-o(x+O)-y}e.exports={bezier:function(t,e,i,n,r){var s=1-r;return s*(s*(t+(3*e-t)*r)+3*i*r*r)+n*r*r*r},bezierByTime:function(t,e){var i=c(t,e),n=t[1];return((1-i)*(n+(t[3]-n)*i)*3+i*i)*i}}}),{}],15:[(function(t,e){"use strict";var i={constant:function(){return 0},linear:function(t){return t},quadIn:function(t){return t*t},quadOut:function(t){return t*(2-t)},quadInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quartIn:function(t){return t*t*t*t},quartOut:function(t){return 1- --t*t*t*t},quartInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quintIn:function(t){return t*t*t*t*t},quintOut:function(t){return--t*t*t*t*t+1},quintInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sineIn:function(t){return 1-Math.cos(t*Math.PI/2)},sineOut:function(t){return Math.sin(t*Math.PI/2)},sineInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},expoIn:function(t){return 0===t?0:Math.pow(1024,t-1)},expoOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},expoInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circIn:function(t){return 1-Math.sqrt(1-t*t)},circOut:function(t){return Math.sqrt(1- --t*t)},circInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,i=.1;return 0===t?0:1===t?1:(!i||i<1?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),-i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/.4))},elasticOut:function(t){var e,i=.1;return 0===t?0:1===t?1:(!i||i<1?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*t)*Math.sin(2*(t-e)*Math.PI/.4)+1)},elasticInOut:function(t){var e,i=.1;return 0===t?0:1===t?1:(!i||i<1?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),(t*=2)<1?i*Math.pow(2,10*(t-=1))*Math.sin(2*(t-e)*Math.PI/.4)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin(2*(t-e)*Math.PI/.4)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-i.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*i.bounceIn(2*t):.5*i.bounceOut(2*t-1)+.5},smooth:function(t){return t<=0?0:t>=1?1:t*t*(3-2*t)},fade:function(t){return t<=0?0:t>=1?1:t*t*t*(t*(6*t-15)+10)}};function n(t,e){return function(i){return i<.5?e(2*i)/2:t(2*i-1)/2+.5}}i.quadOutIn=n(i.quadIn,i.quadOut),i.cubicOutIn=n(i.cubicIn,i.cubicOut),i.quartOutIn=n(i.quartIn,i.quartOut),i.quintOutIn=n(i.quintIn,i.quintOut),i.sineOutIn=n(i.sineIn,i.sineOut),i.expoOutIn=n(i.expoIn,i.expoOut),i.circOutIn=n(i.circIn,i.circOut),i.backOutIn=n(i.backIn,i.backOut),i.bounceIn=function(t){return 1-i.bounceOut(1-t)},i.bounceInOut=function(t){return t<.5?.5*i.bounceIn(2*t):.5*i.bounceOut(2*t-1)+.5},i.bounceOutIn=n(i.bounceIn,i.bounceOut),cc.easing=e.exports=i}),{}],16:[(function(t){"use strict";t("./bezier"),t("./easing"),t("./types"),t("./motion-path-helper"),t("./animation-curves"),t("./animation-clip"),t("./animation-manager"),t("./animation-state"),t("./animation-animator")}),{"./animation-animator":9,"./animation-clip":10,"./animation-curves":11,"./animation-manager":12,"./animation-state":13,"./bezier":14,"./easing":15,"./motion-path-helper":17,"./types":19}],17:[(function(t,e){"use strict";var i=t("./animation-curves").DynamicAnimCurve,n=t("./animation-curves").computeRatioByType,r=t("./bezier").bezier,s=t("../core/utils/binary-search").binarySearchEpsilon,a=cc.v2;function o(t){this.points=t||[],this.beziers=[],this.ratios=[],this.progresses=[],this.length=0,this.computeBeziers()}function c(){this.start=a(),this.end=a(),this.startCtrlPoint=a(),this.endCtrlPoint=a()}function u(t){if(!Array.isArray(t))return!1;for(var e=0,i=t.length;e0)){c=r;break}c=r-1}if(n[r=c]===i)return r/(s-1);var u=n[r];return(r+(i-u)/(n[r+1]-u))/(s-1)},e.exports={sampleMotionPaths:function(t,e,r,c,l){function h(t){return t instanceof cc.Vec2?{in:t,pos:t,out:t}:Array.isArray(t)&&6===t.length?{in:a(t[2],t[3]),pos:a(t[0],t[1]),out:a(t[4],t[5])}:{in:cc.Vec2.ZERO,pos:cc.Vec2.ZERO,out:cc.Vec2.ZERO}}var _=e.values=e.values.map((function(t){return Array.isArray(t)&&(t=2===t.length?cc.v2(t[0],t[1]):cc.v3(t[0],t[1],t[2])),t}));if(0!==t.length&&0!==_.length){for(var f=!1,d=0;d0){f=!0;break}}if(f&&1!==_.length){for(var v=e.types,g=e.ratios,m=e.values=[],y=e.types=[],T=e.ratios=[],E=0,A=i.Linear,C=0,x=t.length;C0){var N=[];N.push(h(I));for(var F=0,B=S.length;F1e-6;){var V,W,G,H;if((b=n(b=L,O))<0)H=(0-b)*(W=k.beziers[0]).getLength(),G=W.start.sub(W.endCtrlPoint).normalize(),V=W.start.add(G.mul(H));else if(b>1)H=(b-1)*(W=k.beziers[k.beziers.length-1]).getLength(),G=W.end.sub(W.startCtrlPoint).normalize(),V=W.end.add(G.mul(H));else{var j=s(z,b);j<0&&(j=~j),b-=j>0?z[j-1]:0,b/=k.ratios[j],V=k.beziers[j].getPointAt(b)}D.push(V),L+=P}}else for(;1-L>1e-6;)b=n(b=L,O),D.push(I.lerp(M,b)),L+=P;for(A="constant"===O?O:i.Linear,F=0,B=D.length;F1e-6?(L-1)*w:0}g[g.length-1]!==T[T.length-1]&&X(_[_.length-1],A,g[g.length-1])}}function X(t,e,i){m.push(t),y.push(e),T.push(i)}},Curve:o,Bezier:c}}),{"../core/utils/binary-search":208,"./animation-curves":11,"./bezier":14}],18:[(function(t,e){"use strict";var i=cc.js,n=t("../core/CCDebug");function r(){this._isPlaying=!1,this._isPaused=!1,this._stepOnce=!1}var s=r.prototype;i.get(s,"isPlaying",(function(){return this._isPlaying}),!0),i.get(s,"isPaused",(function(){return this._isPaused}),!0);var a=function(){};s.onPlay=a,s.onPause=a,s.onResume=a,s.onStop=a,s.onError=a,s.play=function(){this._isPlaying?this._isPaused?(this._isPaused=!1,this.onResume()):this.onError(n.getError(3912)):(this._isPlaying=!0,this.onPlay())},s.stop=function(){this._isPlaying&&(this._isPlaying=!1,this.onStop(),this._isPaused=!1)},s.pause=function(){this._isPlaying&&!this._isPaused&&(this._isPaused=!0,this.onPause())},s.resume=function(){this._isPlaying&&this._isPaused&&(this._isPaused=!1,this.onResume())},s.step=function(){this.pause(),this._stepOnce=!0,this._isPlaying||this.play()},e.exports=r}),{"../core/CCDebug":22}],19:[(function(t,e){"use strict";var i={Loop:2,ShouldWrap:4,PingPong:22,Reverse:36},n=cc.Enum({Default:0,Normal:1,Reverse:i.Reverse,Loop:i.Loop,LoopReverse:i.Loop|i.Reverse,PingPong:i.PingPong,PingPongReverse:i.PingPong|i.Reverse});function r(t){t?this.set(t):(this.ratio=0,this.time=0,this.direction=1,this.stopped=!0,this.iterations=0,this.frameIndex=void 0)}cc.WrapMode=n,r.prototype.set=function(t){this.ratio=t.ratio,this.time=t.time,this.direction=t.direction,this.stopped=t.stopped,this.iterations=t.iterations,this.frameIndex=t.frameIndex},e.exports={WrapModeMask:i,WrapMode:n,WrappedInfo:r}}),{}],20:[(function(t,e){"use strict";var i,n,r=t("../core/event/event-target"),s=t("../core/platform/CCSys"),a=t("../core/assets/CCAudioClip").LoadMode,o=!1,c=[],u=function t(e){r.call(this),this._shouldRecycleOnEnded=!1,this._src=e,this._element=null,this.id=0,this._state=t.State.INITIALZING;var i=this;this._onended=function(){i._state=t.State.STOPPED,i.emit("ended")},this._onendedSecond=function(){i._unbindEnded(i._onendedSecond),i._bindEnded()}};cc.js.extend(u,r),u.State={ERROR:-1,INITIALZING:0,PLAYING:1,PAUSED:2,STOPPED:3},(i=u.prototype)._bindEnded=function(t){if(!(t=t||this._onended)._binded){t._binded=!0;var e=this._element;this._src&&e instanceof HTMLAudioElement?e.addEventListener("ended",t):e.onended=t}},i._unbindEnded=function(t){if((t=t||this._onended)._binded){t._binded=!1;var e=this._element;e instanceof HTMLAudioElement?e.removeEventListener("ended",t):e&&(e.onended=null)}},i._onLoaded=function(){this._createElement(),this._state=u.State.INITIALZING,this.setVolume(1),this.setLoop(!1)},i._createElement=function(){var t=this._src._nativeAsset;t instanceof HTMLAudioElement?(this._element||(this._element=document.createElement("audio")),this._element.src=t.src):this._element=new l(t,this)},i.play=function(){var t=this;this._src&&this._src._ensureLoaded((function(){t._state=u.State.PLAYING,t._bindEnded();var e=t._element.play();window.Promise&&e instanceof Promise&&e.catch((function(){})),t._touchToPlay()}))},i._touchToPlay=function(){if(this._src&&this._src.loadMode===a.DOM_AUDIO&&this._element.paused&&c.push({instance:this,offset:0,audio:this._element}),!o){o=!0;var t="ontouchend"in window?"touchend":"mousedown";cc.game.canvas.addEventListener(t,(function(){for(var t;t=c.pop();)t.audio.play(t.offset)}))}},i.destroy=function(){this._element=null},i.pause=function(){if(this.getState()===u.State.PLAYING){var t=this;this._src&&this._src._ensureLoaded((function(){t._unbindEnded(),t._element.pause(),t._state=u.State.PAUSED}))}},i.resume=function(){if(this.getState()===u.State.PAUSED){var t=this;this._src&&this._src._ensureLoaded((function(){t._bindEnded(),t._element.play(),t._state=u.State.PLAYING}))}},i.stop=function(){var t=this;this._src&&this._src._ensureLoaded((function(){t._element.pause(),t._element.currentTime=0;for(var e=0;ethis._buffer.duration)},enumerable:!0,configurable:!0}),Object.defineProperty(t,"loop",{get:function(){return this._loop},set:function(t){return this._currentSource&&(this._currentSource.loop=t),this._loop=t},enumerable:!0,configurable:!0}),Object.defineProperty(t,"volume",{get:function(){return this._volume},set:function(t){if(this._volume=t,this._gainObj.gain.setTargetAtTime)try{this._gainObj.gain.setTargetAtTime(t,this._context.currentTime,n)}catch(e){this._gainObj.gain.setTargetAtTime(t,this._context.currentTime,.01)}else this._gainObj.gain.value=t;s.os===s.OS_IOS&&!this.paused&&this._currentSource&&(this._currentSource.onended=null,this.pause(),this.play())},enumerable:!0,configurable:!0}),Object.defineProperty(t,"currentTime",{get:function(){return this.paused?this.playedLength:(this.playedLength=this._context.currentTime-this._startTime,this.playedLength%=this._buffer.duration,this.playedLength)},set:function(t){return this.paused?this.playedLength=t:(this.pause(),this.playedLength=t,this.play()),t},enumerable:!0,configurable:!0}),Object.defineProperty(t,"duration",{get:function(){return this._buffer.duration},enumerable:!0,configurable:!0})})(l.prototype),e.exports=cc._Audio=u}),{"../core/assets/CCAudioClip":59,"../core/event/event-target":124,"../core/platform/CCSys":150}],21:[(function(t,e){"use strict";var i=t("./CCAudio"),n=t("../core/assets/CCAudioClip"),r=cc.js,s=0,a=r.createMap(!0),o={},c=[],u=function(t){t._shouldRecycleOnEnded&&(t._finishCallback=null,t.off("ended"),t.off("stop"),t.src=null,c.includes(t)||(c.length<32?c.push(t):t.destroy()),t._shouldRecycleOnEnded=!1)},l=function(t){var e=s++,n=o[t];if(n||(n=o[t]=[]),f._maxAudioInstance<=n.length){var r=n.shift();h(r).stop()}var l=c.pop()||new i,_=function(){if(h(this.id)){delete a[this.id];var t=n.indexOf(this.id);cc.js.array.fastRemoveAt(n,t)}u(this)};return l.on("ended",(function(){this._finishCallback&&this._finishCallback(),this.getLoop()||_.call(this)}),l),l.on("stop",_,l),l.id=e,a[e]=l,n.push(e),l},h=function(t){return a[t]},_=function(t){return void 0===t?t=1:"string"==typeof t&&(t=Number.parseFloat(t)),t},f={AudioState:i.State,_maxAudioInstance:24,_id2audio:a,play:function(t,e,i){if(!(t instanceof n))return cc.error("Wrong type of AudioClip.");var r=t.nativeUrl,s=l(r);return s.src=t,t._ensureLoaded(),s._shouldRecycleOnEnded=!0,s.setLoop(e||!1),i=_(i),s.setVolume(i),s.play(),s.id},setLoop:function(t,e){var i=h(t);i&&i.setLoop&&i.setLoop(e)},isLoop:function(t){var e=h(t);return!(!e||!e.getLoop)&&e.getLoop()},setVolume:function(t,e){var i=h(t);i&&i.setVolume(e)},getVolume:function(t){var e=h(t);return e?e.getVolume():1},setCurrentTime:function(t,e){var i=h(t);return!!i&&(i.setCurrentTime(e),!0)},getCurrentTime:function(t){var e=h(t);return e?e.getCurrentTime():0},getDuration:function(t){var e=h(t);return e?e.getDuration():0},getState:function(t){var e=h(t);return e?e.getState():this.AudioState.ERROR},setFinishCallback:function(t,e){var i=h(t);i&&(i._finishCallback=e)},pause:function(t){var e=h(t);return!!e&&(e.pause(),!0)},_pauseIDCache:[],pauseAll:function(){for(var t in a){var e=a[t];e.getState()===i.State.PLAYING&&(this._pauseIDCache.push(t),e.pause())}},resume:function(t){var e=h(t);e&&e.resume()},resumeAll:function(){for(var t=0;t0;){var n=i.pop(),r=a[n];r&&(r.stop(),delete a[n])}},uncacheAll:function(){var t;for(var e in this.stopAll(),a)(t=a[e])&&t.destroy();for(;t=c.pop();)t.destroy();a=r.createMap(!0),o={}},_breakCache:null,_break:function(){for(var t in this._breakCache=[],a){var e=a[t];e.getState()===i.State.PLAYING&&(this._breakCache.push(t),e.pause())}},_restore:function(){if(this._breakCache){for(;this._breakCache.length>0;){var t=this._breakCache.pop(),e=h(t);e&&e.resume&&e.resume()}this._breakCache=null}},_music:{id:-1,loop:!1,volume:1},_effect:{volume:1,pauseCache:[]},playMusic:function(t,e){var i=this._music;return this.stop(i.id),i.id=this.play(t,e,i.volume),i.loop=e,i.id},stopMusic:function(){this.stop(this._music.id)},pauseMusic:function(){return this.pause(this._music.id),this._music.id},resumeMusic:function(){return this.resume(this._music.id),this._music.id},getMusicVolume:function(){return this._music.volume},setMusicVolume:function(t){t=_(t);var e=this._music;return e.volume=t,this.setVolume(e.id,e.volume),e.volume},isMusicPlaying:function(){return this.getState(this._music.id)===this.AudioState.PLAYING},playEffect:function(t,e){return this.play(t,e||!1,this._effect.volume)},setEffectsVolume:function(t){t=_(t);var e=this._music.id;for(var i in this._effect.volume=t,a){var n=a[i];n&&n.id!==e&&f.setVolume(i,t)}},getEffectsVolume:function(){return this._effect.volume},pauseEffect:function(t){return this.pause(t)},pauseAllEffects:function(){var t=this._music.id,e=this._effect;for(var i in e.pauseCache.length=0,a){var n=a[i];n&&n.id!==t&&n.getState()===this.AudioState.PLAYING&&(e.pauseCache.push(i),n.pause())}},resumeEffect:function(t){this.resume(t)},resumeAllEffects:function(){for(var t=this._effect.pauseCache,e=0;el.ERROR){var e=function(t){if(cc.game.canvas){if(!i){var e=document.createElement("Div");e.setAttribute("id","logInfoDiv"),e.setAttribute("width","200"),e.setAttribute("height",cc.game.canvas.height);var n=e.style;n.zIndex="99999",n.position="absolute",n.top=n.left="0",(i=document.createElement("textarea")).setAttribute("rows","20"),i.setAttribute("cols","30"),i.setAttribute("disabled","true");var r=i.style;r.backgroundColor="transparent",r.borderBottom="1px solid #cccccc",r.borderTopWidth=r.borderLeftWidth=r.borderRightWidth="0px",r.borderTopStyle=r.borderLeftStyle=r.borderRightStyle="none",r.padding="0px",r.margin=0,e.appendChild(i),cc.game.canvas.parentNode.appendChild(e)}i.value=i.value+t+"\r\n",i.scrollTop=i.scrollHeight}};cc.error=function(){e("ERROR : "+cc.js.formatStr.apply(null,arguments))},cc.assert=function(t,i){!t&&i&&(i=cc.js.formatStr.apply(null,cc.js.shiftArguments.apply(null,arguments)),e("ASSERT: "+i))},t!==l.ERROR_FOR_WEB_PAGE&&(cc.warn=function(){e("WARN : "+cc.js.formatStr.apply(null,arguments))}),t===l.INFO_FOR_WEB_PAGE&&(cc.log=function(){e(cc.js.formatStr.apply(null,arguments))})}else console&&console.log.apply&&(console.error||(console.error=console.log),console.warn||(console.warn=console.log),console.error.bind?cc.error=console.error.bind(console):cc.error=function(){return console.error.apply(console,arguments)},cc.assert=function(t,e){if(!t)throw e&&(e=cc.js.formatStr.apply(null,cc.js.shiftArguments.apply(null,arguments))),new Error(e)});t!==l.ERROR&&(console.warn.bind?cc.warn=console.warn.bind(console):cc.warn=function(){return console.warn.apply(console,arguments)}),t===l.INFO&&(console.log.bind?cc.log=console.log.bind(console):cc.log=function(){return console.log.apply(console,arguments)})}},getError:s("ERROR"),isDisplayStats:function(){return!!cc.profiler&&cc.profiler.isShowingStats()},setDisplayStats:function(t){cc.profiler&&cc.game.renderType!==cc.game.RENDER_TYPE_CANVAS&&(t?cc.profiler.showStats():cc.profiler.hideStats(),cc.game.config.showFPS=!!t)}}}),{"../../DebugInfos":void 0,"./platform/utils":165}],23:[(function(t,e){"use strict";var i=t("./event/event-target"),n=t("./component-scheduler"),r=t("./node-activator"),s=t("./platform/CCObject"),a=t("./CCGame"),o=t("./renderer"),c=t("./event-manager"),u=t("./CCScheduler");cc.Director=function(){i.call(this),this._paused=!1,this._purgeDirectorInNextLoop=!1,this._winSizeInPoints=null,this._scene=null,this._loadingScene="",this._totalFrames=0,this._lastUpdate=0,this._deltaTime=0,this._startTime=0,this._maxParticleDeltaTime=0,this._scheduler=null,this._compScheduler=null,this._nodeActivator=null,this._actionManager=null;var t=this;a.on(a.EVENT_SHOW,(function(){t._lastUpdate=performance.now()})),a.once(a.EVENT_ENGINE_INITED,this.init,this)},cc.Director.prototype={constructor:cc.Director,init:function(){return this._totalFrames=0,this._lastUpdate=performance.now(),this._startTime=this._lastUpdate,this._paused=!1,this._purgeDirectorInNextLoop=!1,this._winSizeInPoints=cc.size(0,0),this._scheduler=new u,cc.ActionManager?(this._actionManager=new cc.ActionManager,this._scheduler.scheduleUpdate(this._actionManager,u.PRIORITY_SYSTEM,!1)):this._actionManager=null,this.sharedInit(),!0},sharedInit:function(){this._compScheduler=new n,this._nodeActivator=new r,c&&c.setEnabled(!0),cc.AnimationManager?(this._animationManager=new cc.AnimationManager,this._scheduler.scheduleUpdate(this._animationManager,u.PRIORITY_SYSTEM,!1)):this._animationManager=null,cc.CollisionManager?(this._collisionManager=new cc.CollisionManager,this._scheduler.scheduleUpdate(this._collisionManager,u.PRIORITY_SYSTEM,!1)):this._collisionManager=null,cc.PhysicsManager?(this._physicsManager=new cc.PhysicsManager,this._scheduler.scheduleUpdate(this._physicsManager,u.PRIORITY_SYSTEM,!1)):this._physicsManager=null,cc.Physics3DManager,this._physics3DManager=null,cc._widgetManager&&cc._widgetManager.init(this)},calculateDeltaTime:function(t){t||(t=performance.now()),this._deltaTime=t>this._lastUpdate?(t-this._lastUpdate)/1e3:0,this._lastUpdate=t},convertToGL:function(t){var e=a.container,i=cc.view,n=e.getBoundingClientRect(),r=n.left+window.pageXOffset-e.clientLeft,s=n.top+window.pageYOffset-e.clientTop,o=i._devicePixelRatio*(t.x-r),c=i._devicePixelRatio*(s+n.height-t.y);return i._isRotated?cc.v2(i._viewportRect.width-c,o):cc.v2(o,c)},convertToUI:function(t){var e=a.container,i=cc.view,n=e.getBoundingClientRect(),r=n.left+window.pageXOffset-e.clientLeft,s=n.top+window.pageYOffset-e.clientTop,o=cc.v2(0,0);return i._isRotated?(o.x=r+t.y/i._devicePixelRatio,o.y=s+n.height-(i._viewportRect.width-t.x)/i._devicePixelRatio):(o.x=r+t.x*i._devicePixelRatio,o.y=s+n.height-t.y*i._devicePixelRatio),o},end:function(){this._purgeDirectorInNextLoop=!0},getWinSize:function(){return cc.size(cc.winSize)},getWinSizeInPixels:function(){return cc.size(cc.winSize)},pause:function(){this._paused||(this._paused=!0)},purgeCachedData:function(){cc.assetManager.releaseAll()},purgeDirector:function(){this._scheduler.unscheduleAll(),this._compScheduler.unscheduleAll(),this._nodeActivator.reset(),c&&c.setEnabled(!1),cc.isValid(this._scene)&&this._scene.destroy(),this._scene=null,cc.renderer.clear(),cc.assetManager.builtins.clear(),cc.game.pause(),cc.assetManager.releaseAll()},reset:function(){this.purgeDirector(),c&&c.setEnabled(!0),this._actionManager&&this._scheduler.scheduleUpdate(this._actionManager,cc.Scheduler.PRIORITY_SYSTEM,!1),this._animationManager&&this._scheduler.scheduleUpdate(this._animationManager,cc.Scheduler.PRIORITY_SYSTEM,!1),this._collisionManager&&this._scheduler.scheduleUpdate(this._collisionManager,cc.Scheduler.PRIORITY_SYSTEM,!1),this._physicsManager&&this._scheduler.scheduleUpdate(this._physicsManager,cc.Scheduler.PRIORITY_SYSTEM,!1),cc.game.resume()},runSceneImmediate:function(t,e,i){cc.assertID(t instanceof cc.Scene||t instanceof cc.SceneAsset,1216),t instanceof cc.SceneAsset&&(t=t.scene),t._load();for(var n=Object.keys(a._persistRootNodes).map((function(t){return a._persistRootNodes[t]})),r=0;r2||e<0)&&(t.renderMode=0),"boolean"!=typeof t.registerSystemEvent&&(t.registerSystemEvent=!0),t.showFPS=1!==e&&!!t.showFPS,this.collisionMatrix=t.collisionMatrix||[],this.groupList=t.groupList||[],n._resetDebugSetting(t.debugMode),this.config=t,this._configLoaded=!0},_determineRenderType:function(){var t=this.config,e=parseInt(t.renderMode)||0;this.renderType=this.RENDER_TYPE_CANVAS;var i=!1;if(0===e?cc.sys.capabilities.opengl?(this.renderType=this.RENDER_TYPE_WEBGL,i=!0):cc.sys.capabilities.canvas&&(this.renderType=this.RENDER_TYPE_CANVAS,i=!0):1===e&&cc.sys.capabilities.canvas?(this.renderType=this.RENDER_TYPE_CANVAS,i=!0):2===e&&cc.sys.capabilities.opengl&&(this.renderType=this.RENDER_TYPE_WEBGL,i=!0),!i)throw new Error(n.getError(3820,e))},_initRenderer:function(){if(!this._rendererInitialized){var t,e,i,n,a=this.config.id,o=a instanceof HTMLElement?a:document.querySelector(a)||document.querySelector("#"+a);if("CANVAS"===o.tagName?(t=o.width,e=o.height,this.canvas=i=o,this.container=n=document.createElement("DIV"),i.parentNode&&i.parentNode.insertBefore(n,i)):("DIV"!==o.tagName&&cc.warnID(3819),t=o.clientWidth,e=o.clientHeight,this.canvas=i=document.createElement("CANVAS"),this.container=n=document.createElement("DIV"),o.appendChild(n)),n.setAttribute("id","Cocos2dGameContainer"),n.appendChild(i),this.frame=n.parentNode===document.body?document.documentElement:n.parentNode,(function(t){(" "+t.className+" ").indexOf(" gameCanvas ")>-1||(t.className&&(t.className+=" "),t.className+="gameCanvas")})(i),i.setAttribute("width",t||480),i.setAttribute("height",e||320),i.setAttribute("tabindex",99),this._determineRenderType(),this.renderType===this.RENDER_TYPE_WEBGL){var c={stencil:!0,antialias:cc.macro.ENABLE_WEBGL_ANTIALIAS,alpha:cc.macro.ENABLE_TRANSPARENT_CANVAS};r.initWebGL(i,c),this._renderContext=r.device._gl,!cc.macro.CLEANUP_IMAGE_CACHE&&s&&(s.enabled=!0)}this._renderContext||(this.renderType=this.RENDER_TYPE_CANVAS,r.initCanvas(i),this._renderContext=r.device._ctx),this.canvas.oncontextmenu=function(){if(!cc._isContextMenuEnable)return!1},this._rendererInitialized=!0}},_initEvents:function(){var t,e=window;this.config.registerSystemEvent&&cc.internal.inputManager.registerSystemEvent(this.canvas),void 0!==document.hidden?t="hidden":void 0!==document.mozHidden?t="mozHidden":void 0!==document.msHidden?t="msHidden":void 0!==document.webkitHidden&&(t="webkitHidden");var i=!1;function n(){i||(i=!0,a.emit(a.EVENT_HIDE))}function r(t,e,n,r,s){i&&(i=!1,a.emit(a.EVENT_SHOW,t,e,n,r,s))}if(t)for(var s=["visibilitychange","mozvisibilitychange","msvisibilitychange","webkitvisibilitychange","qbrowserVisibilityChange"],o=0;o-1&&(e.onfocus=r),"onpageshow"in window&&"onpagehide"in window&&(e.addEventListener("pagehide",n),e.addEventListener("pageshow",r),document.addEventListener("pagehide",n),document.addEventListener("pageshow",r)),this.on(a.EVENT_HIDE,(function(){a.pause()})),this.on(a.EVENT_SHOW,(function(){a.resume()}))}};i.call(a),cc.js.addon(a,i.prototype),cc.game=e.exports=a}),{"../audio/CCAudioEngine":21,"../core/renderer/utils/dynamic-atlas/manager":175,"./CCDebug":22,"./event/event-target":124,"./renderer/index.js":172}],25:[(function(t,e){"use strict";var i=t("./value-types"),n=t("./value-types/utils"),r=t("./utils/base-node"),s=t("./utils/prefab-helper"),a=t("./utils/trans-pool").NodeMemPool,o=t("./utils/affine-transform"),c=t("./event-manager"),u=t("./platform/CCMacro"),l=t("./platform/js"),h=(t("./event/event"),t("./event/event-target")),_=t("./renderer/render-flow"),f=cc.Object.Flags.Destroying,d=Math.PI/180,p=!!cc.ActionManager,v=function(){},g=new i.Vec3,m=new i.Quat,y=new i.Vec3,T=new i.Vec3,E=new i.Quat,A=new i.Quat,C=new i.Vec3,x=new i.Vec3,b=new i.Vec3,S=new i.Vec3,R=new i.Vec3,w=new i.Quat,I=new i.Quat,M=new i.Vec3,O=new i.Quat,D=new i.Vec3,L=new i.Quat,P=new i.Vec3,N=new i.Vec3,F=new i.Quat,B=new i.Quat,U=(new i.Quat,cc.mat4()),k=new i.Vec3,z=new l.Pool;z.get=function(){return this._get()||[]};var V=cc.Enum({DEBUG:31}),W=cc.Enum({POSITION:1,SCALE:2,ROTATION:4,SKEW:8,TRS:7,RS:6,TRSS:15,PHYSICS_POSITION:16,PHYSICS_SCALE:32,PHYSICS_ROTATION:64,PHYSICS_TRS:112,PHYSICS_RS:96,ALL_POSITION:17,ALL_SCALE:34,ALL_ROTATION:68,ALL_TRS:119,ALL:65535}),G=cc.Enum({TOUCH_START:"touchstart",TOUCH_MOVE:"touchmove",TOUCH_END:"touchend",TOUCH_CANCEL:"touchcancel",MOUSE_DOWN:"mousedown",MOUSE_MOVE:"mousemove",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_UP:"mouseup",MOUSE_WHEEL:"mousewheel",POSITION_CHANGED:"position-changed",ROTATION_CHANGED:"rotation-changed",SCALE_CHANGED:"scale-changed",SIZE_CHANGED:"size-changed",ANCHOR_CHANGED:"anchor-changed",COLOR_CHANGED:"color-changed",CHILD_ADDED:"child-added",CHILD_REMOVED:"child-removed",CHILD_REORDER:"child-reorder",GROUP_CHANGED:"group-changed",SIBLING_ORDER_CHANGED:"sibling-order-changed"}),H=[G.TOUCH_START,G.TOUCH_MOVE,G.TOUCH_END,G.TOUCH_CANCEL],j=[G.MOUSE_DOWN,G.MOUSE_ENTER,G.MOUSE_MOVE,G.MOUSE_LEAVE,G.MOUSE_UP,G.MOUSE_WHEEL],Y=!0,X=function(t){if(0!==t){Y&&cc.warn("`cc.Node.skewX/Y` is deprecated since v2.2.1, please use 3D node instead.",""),Y=!1}},q=null,K=function(t,e){var i=t.getLocation(),n=this.owner;return!!n._hitTest(i,this)&&(e.type=G.TOUCH_START,e.touch=t,e.bubbles=!0,n.dispatchEvent(e),!0)},Z=function(t,e){var i=this.owner;e.type=G.TOUCH_MOVE,e.touch=t,e.bubbles=!0,i.dispatchEvent(e)},Q=function(t,e){var i=t.getLocation(),n=this.owner;n._hitTest(i,this)?e.type=G.TOUCH_END:e.type=G.TOUCH_CANCEL,e.touch=t,e.bubbles=!0,n.dispatchEvent(e)},$=function(t,e){t.getLocation();var i=this.owner;e.type=G.TOUCH_CANCEL,e.touch=t,e.bubbles=!0,i.dispatchEvent(e)},J=function(t){var e=t.getLocation(),i=this.owner;i._hitTest(e,this)&&(t.type=G.MOUSE_DOWN,t.bubbles=!0,i.dispatchEvent(t))},tt=function(t){var e=t.getLocation(),i=this.owner;if(i._hitTest(e,this))this._previousIn||(q&&q._mouseListener&&(t.type=G.MOUSE_LEAVE,q.dispatchEvent(t),q._mouseListener._previousIn=!1),q=this.owner,t.type=G.MOUSE_ENTER,i.dispatchEvent(t),this._previousIn=!0),t.type=G.MOUSE_MOVE,t.bubbles=!0,i.dispatchEvent(t);else{if(!this._previousIn)return;t.type=G.MOUSE_LEAVE,i.dispatchEvent(t),this._previousIn=!1,q=null}t.stopPropagation()},et=function(t){var e=t.getLocation(),i=this.owner;i._hitTest(e,this)&&(t.type=G.MOUSE_UP,t.bubbles=!0,i.dispatchEvent(t),t.stopPropagation())},it=function(t){var e=t.getLocation(),i=this.owner;i._hitTest(e,this)&&(t.type=G.MOUSE_WHEEL,t.bubbles=!0,i.dispatchEvent(t),t.stopPropagation())};function nt(t,e){if(e){for(var i=0,n=null,r=t;r&&cc.Node.isNode(r);r=r._parent,++i)if(r.getComponent(e)){var s={index:i,node:r};n?n.push(s):n=[s]}return n}return null}function rt(t,e){if(!(t._objFlags&f)){if(t._bubblingListeners)for(var i=0,n=e.length;i=0;--r)if((n=i[r])._capturingListeners&&(e.currentTarget=n,n._capturingListeners.emit(e.type,e,i),e._propagationStopped))return void(i.length=0);if(i.length=0,e.eventPhase=2,e.currentTarget=t,t._capturingListeners&&t._capturingListeners.emit(e.type,e),!e._propagationImmediateStopped&&t._bubblingListeners&&t._bubblingListeners.emit(e.type,e),!e._propagationStopped&&e.bubbles)for(t._getBubblingTargets(e.type,i),e.eventPhase=3,r=0;r>16},set:function(t){t>u.MAX_ZINDEX?(cc.warnID(1636),t=u.MAX_ZINDEX):t0&&(this._renderFlag|=_.FLAG_CHILDREN)},_checkListenerMask:function(){if(this._touchListener){var t=this._touchListener.mask=nt(this,cc.Mask);this._mouseListener&&(this._mouseListener.mask=t)}else this._mouseListener&&(this._mouseListener.mask=nt(this,cc.Mask))},_checknSetupSysEvent:function(t){var e=!1,i=!1;return-1!==H.indexOf(t)?(this._touchListener||(this._touchListener=cc.EventListener.create({event:cc.EventListener.TOUCH_ONE_BY_ONE,swallowTouches:!0,owner:this,mask:nt(this,cc.Mask),onTouchBegan:K,onTouchMoved:Z,onTouchEnded:Q,onTouchCancelled:$}),c.addListener(this._touchListener,this),e=!0),i=!0):-1!==j.indexOf(t)&&(this._mouseListener||(this._mouseListener=cc.EventListener.create({event:cc.EventListener.MOUSE,_previousIn:!1,owner:this,mask:nt(this,cc.Mask),onMouseDown:J,onMouseMove:tt,onMouseUp:et,onMouseScroll:it}),c.addListener(this._mouseListener,this),e=!0),i=!0),e&&!this._activeInHierarchy&&cc.director.getScheduler().schedule((function(){this._activeInHierarchy||c.pauseTarget(this)}),this,0,0,0,!1),i},on:function(t,e,i,n){if(this._checknSetupSysEvent(t))return this._onDispatch(t,e,i,n);switch(t){case G.POSITION_CHANGED:this._eventMask|=1;break;case G.SCALE_CHANGED:this._eventMask|=2;break;case G.ROTATION_CHANGED:this._eventMask|=4;break;case G.SIZE_CHANGED:this._eventMask|=8;break;case G.ANCHOR_CHANGED:this._eventMask|=16;break;case G.COLOR_CHANGED:this._eventMask|=32}return this._bubblingListeners||(this._bubblingListeners=new h),this._bubblingListeners.on(t,e,i)},once:function(t,e,i,n){var r=this,s=null;(s=this._checknSetupSysEvent(t)&&n?this._capturingListeners=this._capturingListeners||new h:this._bubblingListeners=this._bubblingListeners||new h).once(t,e,i),s.once(t,(function(){r.off(t,e,i)}),void 0)},_onDispatch:function(t,e,i,n){if("boolean"==typeof i?(n=i,i=void 0):n=!!n,e){var r=null;return(r=n?this._capturingListeners=this._capturingListeners||new h:this._bubblingListeners=this._bubblingListeners||new h).hasEventListener(t,e,i)||(r.on(t,e,i),i&&i.__eventTargets&&i.__eventTargets.push(this)),e}cc.errorID(6800)},off:function(t,e,i,n){var r=-1!==H.indexOf(t),s=!r&&-1!==j.indexOf(t);if(r||s)this._offDispatch(t,e,i,n),r?this._touchListener&&!rt(this,H)&&(c.removeListener(this._touchListener),this._touchListener=null):s&&this._mouseListener&&!rt(this,j)&&(c.removeListener(this._mouseListener),this._mouseListener=null);else if(this._bubblingListeners&&(this._bubblingListeners.off(t,e,i),!this._bubblingListeners.hasEventListener(t)))switch(t){case G.POSITION_CHANGED:this._eventMask&=-2;break;case G.SCALE_CHANGED:this._eventMask&=-3;break;case G.ROTATION_CHANGED:this._eventMask&=-5;break;case G.SIZE_CHANGED:this._eventMask&=-9;break;case G.ANCHOR_CHANGED:this._eventMask&=-17;break;case G.COLOR_CHANGED:this._eventMask&=-33}},_offDispatch:function(t,e,i,n){if("boolean"==typeof i?(n=i,i=void 0):n=!!n,e){var r=n?this._capturingListeners:this._bubblingListeners;r&&(r.off(t,e,i),i&&i.__eventTargets&&l.array.fastRemove(i.__eventTargets,this))}else this._capturingListeners&&this._capturingListeners.removeAll(t),this._bubblingListeners&&this._bubblingListeners.removeAll(t)},targetOff:function(t){var e=this._bubblingListeners;e&&(e.targetOff(t),1&this._eventMask&&!e.hasEventListener(G.POSITION_CHANGED)&&(this._eventMask&=-2),2&this._eventMask&&!e.hasEventListener(G.SCALE_CHANGED)&&(this._eventMask&=-3),4&this._eventMask&&!e.hasEventListener(G.ROTATION_CHANGED)&&(this._eventMask&=-5),8&this._eventMask&&!e.hasEventListener(G.SIZE_CHANGED)&&(this._eventMask&=-9),16&this._eventMask&&!e.hasEventListener(G.ANCHOR_CHANGED)&&(this._eventMask&=-17),32&this._eventMask&&!e.hasEventListener(G.COLOR_CHANGED)&&(this._eventMask&=-33)),this._capturingListeners&&this._capturingListeners.targetOff(t),t&&t.__eventTargets&&l.array.fastRemove(t.__eventTargets,this),this._touchListener&&!rt(this,H)&&(c.removeListener(this._touchListener),this._touchListener=null),this._mouseListener&&!rt(this,j)&&(c.removeListener(this._mouseListener),this._mouseListener=null)},hasEventListener:function(t){var e=!1;return this._bubblingListeners&&(e=this._bubblingListeners.hasEventListener(t)),!e&&this._capturingListeners&&(e=this._capturingListeners.hasEventListener(t)),e},emit:function(t,e,i,n,r,s){this._bubblingListeners&&this._bubblingListeners.emit(t,e,i,n,r,s)},dispatchEvent:function(t){var e=z.get();st(this,t,e),z.put(e)},pauseSystemEvents:function(t){c.pauseTarget(this,t)},resumeSystemEvents:function(t){c.resumeTarget(this,t)},_hitTest:function(t,e){var n=this._contentSize.width,r=this._contentSize.height,s=P,a=N,o=cc.Camera.findCamera(this);if(o?o.getScreenToWorldPoint(t,s):s.set(t),this._updateWorldMatrix(),!i.Mat4.invert(U,this._worldMatrix))return!1;i.Vec2.transformMat4(a,s,U),a.x+=this._anchorPoint.x*n,a.y+=this._anchorPoint.y*r;var c=!1;if(a.x>=0&&a.y>=0&&a.x<=n&&a.y<=r&&(c=!0,e&&e.mask))for(var u=e.mask,l=this,h=u?u.length:0,_=0,f=0;l&&fd.index){u.length=f;break}}return c},_getCapturingTargets:function(t,e){for(var i=this.parent;i;)i._capturingListeners&&i._capturingListeners.hasEventListener(t)&&e.push(i),i=i.parent},_getBubblingTargets:function(t,e){for(var i=this.parent;i;)i._bubblingListeners&&i._bubblingListeners.hasEventListener(t)&&e.push(i),i=i.parent},runAction:p?function(t){if(this.active){cc.assertID(t,1618);var e=cc.director.getActionManager();return e._suppressDeprecation||(e._suppressDeprecation=!0,cc.warnID(1639)),e.addAction(t,this,!1),t}}:v,pauseAllActions:p?function(){cc.director.getActionManager().pauseTarget(this)}:v,resumeAllActions:p?function(){cc.director.getActionManager().resumeTarget(this)}:v,stopAllActions:p?function(){cc.director.getActionManager().removeAllActionsFromTarget(this)}:v,stopAction:p?function(t){cc.director.getActionManager().removeAction(t)}:v,stopActionByTag:p?function(t){t!==cc.Action.TAG_INVALID?cc.director.getActionManager().removeActionByTag(t,this):cc.logID(1612)}:v,getActionByTag:p?function(t){return t===cc.Action.TAG_INVALID?(cc.logID(1613),null):cc.director.getActionManager().getActionByTag(t,this)}:function(){return null},getNumberOfRunningActions:p?function(){return cc.director.getActionManager().getNumberOfRunningActionsInTarget(this)}:function(){return 0},getPosition:function(t){return t=t||new i.Vec3,i.Trs.toPosition(t,this._trs)},setPosition:function(t,e,i){var n;void 0===e?(n=t.x,e=t.y,i=t.z):n=t;var r=this._trs;void 0===i&&(i=r[2]),(r[0]!==n||r[1]!==e||r[2]!==i)&&(r[0]=n,r[1]=e,r[2]=i,this.setLocalDirty(W.ALL_POSITION),this._renderFlag|=_.FLAG_WORLD_TRANSFORM,1&this._eventMask&&this.emit(G.POSITION_CHANGED))},getScale:function(t){return void 0!==t?i.Trs.toScale(t,this._trs):(cc.errorID(1400,"cc.Node.getScale","cc.Node.scale or cc.Node.getScale(cc.Vec3)"),this._trs[7])},setScale:function(t,e,i){var n;t&&"number"!=typeof t?(n=t.x,e=t.y,i=t.z):void 0!==t&&void 0===e?(n=t,e=t,i=t):n=t;var r=this._trs;void 0===i&&(i=r[9]),r[7]===n&&r[8]===e&&r[9]===i||(r[7]=n,r[8]=e,r[9]=i,this.setLocalDirty(W.ALL_SCALE),this._renderFlag|=_.FLAG_TRANSFORM,2&this._eventMask&&this.emit(G.SCALE_CHANGED))},getRotation:function(t){return t instanceof i.Quat?i.Trs.toRotation(t,this._trs):-this.angle},setRotation:function(t,e,i,n){if("number"==typeof t&&void 0===e)this.angle=-t;else{var r=t;void 0===e&&(r=t.x,e=t.y,i=t.z,n=t.w);var s=this._trs;s[3]===r&&s[4]===e&&s[5]===i&&s[6]===n||(s[3]=r,s[4]=e,s[5]=i,s[6]=n,this.setLocalDirty(W.ALL_ROTATION),4&this._eventMask&&this.emit(G.ROTATION_CHANGED))}},getContentSize:function(){return cc.size(this._contentSize.width,this._contentSize.height)},setContentSize:function(t,e){var i=this._contentSize;if(void 0===e){if((0,n.approx)(t.width,i.width)&&(0,n.approx)(t.height,i.height))return;i.width=t.width,i.height=t.height}else{if((0,n.approx)(t,i.width)&&(0,n.approx)(e,i.height))return;i.width=t,i.height=e}8&this._eventMask&&this.emit(G.SIZE_CHANGED)},getAnchorPoint:function(){return cc.v2(this._anchorPoint)},setAnchorPoint:function(t,e){var i=this._anchorPoint;if(void 0===e){if(t.x===i.x&&t.y===i.y)return;i.x=t.x,i.y=t.y}else{if(t===i.x&&e===i.y)return;i.x=t,i.y=e}this.setLocalDirty(W.ALL_POSITION),16&this._eventMask&&this.emit(G.ANCHOR_CHANGED)},_invTransformPoint:function(t,e){this._parent?this._parent._invTransformPoint(t,e):i.Vec3.copy(t,e);var n=this._trs;return i.Trs.toPosition(y,n),i.Vec3.sub(t,t,y),i.Trs.toRotation(E,n),i.Quat.conjugate(A,E),i.Vec3.transformQuat(t,t,A),i.Trs.toScale(y,n),i.Vec3.inverseSafe(T,y),i.Vec3.mul(t,t,T),t},getWorldPosition:function(t){i.Trs.toPosition(t,this._trs);for(var e,n=this._parent;n;)e=n._trs,i.Trs.toScale(g,e),i.Vec3.mul(t,t,g),i.Trs.toRotation(m,e),i.Vec3.transformQuat(t,t,m),i.Trs.toPosition(g,e),i.Vec3.add(t,t,g),n=n._parent;return t},setWorldPosition:function(t){var e=this._trs;this._parent?this._parent._invTransformPoint(C,t):i.Vec3.copy(C,t),i.Trs.fromPosition(e,C),this.setLocalDirty(W.ALL_POSITION),1&this._eventMask&&this.emit(G.POSITION_CHANGED)},getWorldRotation:function(t){i.Trs.toRotation(F,this._trs),i.Quat.copy(t,F);for(var e=this._parent;e;)i.Trs.toRotation(F,e._trs),i.Quat.mul(t,F,t),e=e._parent;return t},setWorldRotation:function(t){this._parent?(this._parent.getWorldRotation(B),i.Quat.conjugate(B,B),i.Quat.mul(B,B,t)):i.Quat.copy(B,t),i.Trs.fromRotation(this._trs,B),this.setLocalDirty(W.ALL_ROTATION)},getWorldScale:function(t){i.Trs.toScale(x,this._trs),i.Vec3.copy(t,x);for(var e=this._parent;e;)i.Trs.toScale(x,e._trs),i.Vec3.mul(t,t,x),e=e._parent;return t},setWorldScale:function(t){this._parent?(this._parent.getWorldScale(b),i.Vec3.div(b,t,b)):i.Vec3.copy(b,t),i.Trs.fromScale(this._trs,b),this.setLocalDirty(W.ALL_SCALE)},getWorldRT:function(t){var e=S,n=w,r=this._trs;i.Trs.toPosition(e,r),i.Trs.toRotation(n,r);for(var s=this._parent;s;)r=s._trs,i.Trs.toScale(R,r),i.Vec3.mul(e,e,R),i.Trs.toRotation(I,r),i.Vec3.transformQuat(e,e,I),i.Trs.toPosition(R,r),i.Vec3.add(e,e,R),i.Quat.mul(n,I,n),s=s._parent;return i.Mat4.fromRT(t,n,e),t},lookAt:function(t,e){this.getWorldPosition(M),i.Vec3.sub(M,M,t),i.Vec3.normalize(M,M),i.Quat.fromViewUp(O,M,e),this.setWorldRotation(O)},_updateLocalMatrix:ut,_calculWorldMatrix:function(){this._localMatDirty&W.TRSS&&this._updateLocalMatrix();var t=this._parent;t?this._mulMat(this._worldMatrix,t._worldMatrix,this._matrix):i.Mat4.copy(this._worldMatrix,this._matrix),this._worldMatDirty=!1},_mulMat:_t,_updateWorldMatrix:function(){if(this._parent&&this._parent._updateWorldMatrix(),this._worldMatDirty){this._calculWorldMatrix();for(var t=this._children,e=0,i=t.length;e1){for(var n,r,s=1,a=t.length;s0&&(r=t[o-1])._localZOrder>n._localZOrder;o--)t[o]=r;t[o]=n}this.emit(G.CHILD_REORDER,this)}cc.director.__fastOff(cc.Director.EVENT_AFTER_UPDATE,this.sortAllChildren,this)}},_delaySort:function(){this._reorderChildDirty||(this._reorderChildDirty=!0,cc.director.__fastOn(cc.Director.EVENT_AFTER_UPDATE,this.sortAllChildren,this))},_restoreProperties:!1,onRestore:!1},pt=cc.Class(dt),vt=pt.prototype;l.getset(vt,"position",vt.getPosition,vt.setPosition,!1,!0),cc.Node=e.exports=pt}),{"./event-manager":122,"./event/event":125,"./event/event-target":124,"./platform/CCMacro":146,"./platform/js":162,"./renderer/render-flow":173,"./utils/affine-transform":206,"./utils/base-node":207,"./utils/prefab-helper":217,"./utils/trans-pool":223,"./value-types":229,"./value-types/utils":236}],26:[(function(t,e){"use strict";var i=t("./CCNode"),n=t("./renderer/render-flow"),r=(cc.Object.Flags.HideInHierarchy,i._LocalDirtyFlag),s=cc.Class({name:"cc.PrivateNode",extends:i,properties:{x:{get:function(){return this._originPos.x},set:function(t){var e=this._originPos;t!==e.x&&(e.x=t,this._posDirty(!0))},override:!0},y:{get:function(){return this._originPos.y},set:function(t){var e=this._originPos;t!==e.y&&(e.y=t,this._posDirty(!0))},override:!0},zIndex:{get:function(){return cc.macro.MIN_ZINDEX},set:function(){},override:!0},showInEditor:{default:!1,editorOnly:!0,override:!0}},ctor:function(){this._localZOrder=cc.macro.MIN_ZINDEX<<16,this._originPos=cc.v2()},_posDirty:function(t){this.setLocalDirty(r.POSITION),this._renderFlag|=n.FLAG_TRANSFORM,!0===t&&1&this._eventMask&&this.emit(i.EventType.POSITION_CHANGED)},_updateLocalMatrix:function(){if(this._localMatDirty){var t=this.parent;t&&(this._trs[0]=this._originPos.x-(t._anchorPoint.x-.5)*t._contentSize.width,this._trs[1]=this._originPos.y-(t._anchorPoint.y-.5)*t._contentSize.height),this._super()}},getPosition:function(){return new cc.Vec2(this._originPos)},setPosition:function(t,e){void 0===e&&(e=(t=t.x).y);var i=this._originPos;i.x===t&&i.y===e||(i.x=t,i.y=e,this._posDirty(!0))},setParent:function(t){var e=this._parent;this._super(t),e!==t&&(e&&e.off(i.EventType.ANCHOR_CHANGED,this._posDirty,this),t&&t.on(i.EventType.ANCHOR_CHANGED,this._posDirty,this))},_updateOrderOfArrival:function(){}}),a=s.prototype;cc.js.getset(a,"parent",a.getParent,a.setParent),cc.js.getset(a,"position",a.getPosition,a.setPosition),cc.PrivateNode=e.exports=s}),{"./CCNode":25,"./renderer/render-flow":173}],27:[(function(t,e){"use strict";cc.Scene=cc.Class({name:"cc.Scene",extends:t("./CCNode"),properties:{_is3DNode:{default:!0,override:!0},autoReleaseAssets:!1},ctor:function(){this._anchorPoint.x=0,this._anchorPoint.y=0,this._activeInHierarchy=!1,this._inited=!cc.game._isCloning,this.dependAssets=null},destroy:function(){if(cc.Object.prototype.destroy.call(this))for(var t=this._children,e=0;e0,this._repeat=r,this._runForever=this._repeat===cc.macro.REPEAT_FOREVER,!0},h.getInterval=function(){return this._interval},h.setInterval=function(t){this._interval=t},h.update=function(t){-1===this._elapsed?(this._elapsed=0,this._timesExecuted=0):(this._elapsed+=t,this._runForever&&!this._useDelay?this._elapsed>=this._interval&&(this.trigger(),this._elapsed=0):(this._useDelay?this._elapsed>=this._delay&&(this.trigger(),this._elapsed-=this._delay,this._timesExecuted+=1,this._useDelay=!1):this._elapsed>=this._interval&&(this.trigger(),this._elapsed=0,this._timesExecuted+=1),this._callback&&!this._runForever&&this._timesExecuted>this._repeat&&this.cancel()))},h.getCallback=function(){return this._callback},h.trigger=function(){this._target&&this._callback&&(this._lock=!0,this._callback.call(this._target,this._elapsed),this._lock=!1)},h.cancel=function(){this._scheduler.unschedule(this._callback,this._target)};var _=[];l.get=function(){return _.pop()||new l},l.put=function(t){_.length<20&&!t._lock&&(t._scheduler=t._target=t._callback=null,_.push(t))},cc.Scheduler=function(){this._timeScale=1,this._updatesNegList=[],this._updates0List=[],this._updatesPosList=[],this._hashForUpdates=i.createMap(!0),this._hashForTimers=i.createMap(!0),this._currentTarget=null,this._currentTargetSalvaged=!1,this._updateHashLocked=!1,this._arrayForTimers=[]},cc.Scheduler.prototype={constructor:cc.Scheduler,_removeHashElement:function(t){delete this._hashForTimers[t.target._id];for(var e=this._arrayForTimers,i=0,n=e.length;i=s&&n.timerIndex--,void(0===r.length&&(this._currentTarget===n?this._currentTargetSalvaged=!0:this._removeHashElement(n)))}}},unscheduleUpdate:function(t){if(t){var e=t._id;e||(t.__instanceId?(cc.warnID(1513),e=t._id=t.__instanceId):cc.errorID(1510));var i=this._hashForUpdates[e];i&&(this._updateHashLocked?i.entry.markedForDeletion=!0:this._removeUpdateFromHash(i.entry))}},unscheduleAllForTarget:function(t){if(t){var e=t._id;e||(t.__instanceId?(cc.warnID(1513),e=t._id=t.__instanceId):cc.errorID(1510));var i=this._hashForTimers[e];if(i){var n=i.timers;n.indexOf(i.currentTimer)>-1&&!i.currentTimerSalvaged&&(i.currentTimerSalvaged=!0);for(var r=0,s=n.length;r=0;e--)i=r[e],this.unscheduleAllForTarget(i.target);var s=0;if(t<0)for(e=0;e=t&&this.unscheduleUpdate(n.target),s==this._updatesNegList.length&&e++;if(t<=0)for(e=0;e=t&&this.unscheduleUpdate(n.target),s==this._updatesPosList.length&&e++},isScheduled:function(t,e){cc.assertID(t,1508),cc.assertID(e,1509);var i=e._id;i||(e.__instanceId?(cc.warnID(1513),i=e._id=e.__instanceId):cc.errorID(1510));var n=this._hashForTimers[i];if(!n)return!1;if(null==n.timers)return!1;for(var r=n.timers,s=0;s=t&&(r.paused=!0,s.push(r.target));if(t<=0)for(i=0;i=t&&(r.paused=!0,s.push(r.target));return s},resumeTargets:function(t){if(t)for(var e=0;e1?n:n[0]}},cc.AssetManager=P,cc.assetManager=new P,Object.defineProperty(cc,"resources",{get:function(){return D.get(L.RESOURCES)}}),e.exports=cc.assetManager}),{"./builtins":30,"./bundle":31,"./cache":32,"./depend-util":34,"./downloader":41,"./factory":42,"./fetch":43,"./helper":45,"./load":47,"./pack-manager":48,"./parser":49,"./pipeline":50,"./preprocess":51,"./releaseManager":52,"./request-item":53,"./shared":54,"./task":55,"./urlTransformer":56,"./utilities":57}],30:[(function(t,e){"use strict";var i=t("./cache"),n=t("./releaseManager"),r=t("./shared").BuiltinBundleName,s={_assets:new i({material:new i,effect:new i}),_loadBuiltins:function(t,e){var i=t+"s",n=this._assets.get(t);return cc.assetManager.internal.loadDir(i,null,null,(function(t,i){if(t)cc.error(t.message,t.stack);else for(var r=0;re.length)||47===t.charCodeAt(e.length)}return this.paths.forEach((function(n,r){if(r.startsWith(t)&&a(r,t)||!t)for(var o=0,c=n.length;o1){var f=Object.create(null);n.forEach((function(t){f[t._uuid]=t})),r={isCompleted:l,_map:f}}else r=n[0]}i&&i(e,r)}))},getXMLHttpRequest:function(){return new XMLHttpRequest},_parseLoadResArgs:i.parseLoadResArgs,getItem:function(t){return cc.assetManager.assets.has(t)?{content:cc.assetManager.assets.get(t)}:null},loadRes:function(t,e,i,n){var r=this._parseLoadResArgs(e,i,n),s=(e=r.type,r.onProgress),a=r.onComplete,o=cc.path.extname(t);o&&(t=t.slice(0,-o.length)),cc.resources.load(t,e,s,a)},loadResArray:function(t,e,i,n){var r=this._parseLoadResArgs(e,i,n),s=(e=r.type,r.onProgress),a=r.onComplete;t.forEach((function(e,i){var n=cc.path.extname(e);n&&(t[i]=e.slice(0,-n.length))})),cc.resources.load(t,e,s,a)},loadResDir:function(t,e,i,n){var r=this._parseLoadResArgs(e,i,n),s=(e=r.type,r.onProgress),a=r.onComplete;cc.resources.loadDir(t,e,s,(function(i,n){var r=[];i||(r=cc.resources.getDirWithPath(t,e).map((function(t){return t.path}))),a&&a(i,n,r)}))},getRes:function(t,e){return cc.assetManager.assets.has(t)?cc.assetManager.assets.get(t):cc.resources.get(t,e)},getResCount:function(){return cc.assetManager.assets.count},getDependsRecursively:function(t){return t?n.getDepsRecursively("string"==typeof t?t:t._uuid).concat([t._uuid]):[]},get assetLoader(){},get md5Pipe(){return h},get downloader(){return cc.assetManager.downloader},get loader(){return cc.assetManager.parser},addDownloadHandlers:function(t){var e=Object.create(null);for(var i in t){var n=t[i];e["."+i]=function(t,e,i){n({url:t},i)}}cc.assetManager.downloader.register(e)},addLoadHandlers:function(t){var e=Object.create(null);for(var i in t){var n=t[i];e["."+i]=function(t,e,i){n({content:t},i)}}cc.assetManager.parser.register(e)},flowInDeps:function(){},release:function(t){if(Array.isArray(t))for(var e=0;eN._maxInterval?N._maxInterval:cc.director._deltaTime;t-O>1e3*e&&(M=0,O=t)},P=function t(e,i){for(D=!1,L();R.length>0&&I0&&I0&&(s(P,m,y),D=!0),a.apply(this,arguments)}))}L(),I0){var i=n.create({name:t.name+" dependencies",input:c,progress:f,options:s,onProgress:t.onProgress,onError:n.prototype.recycle,onComplete:function(n){n||(t.output.push.apply(t.output,this.output),i.recycle()),r&&h(t),e(n)}});l.async(i)}else r&&h(t),e()}))}}),{"./pack-manager":48,"./shared":54,"./task":55,"./utilities":57}],44:[(function(t,e){"use strict";var i,n=t("../utils/text-utils"),r=null,s="BES bswy:->@123\u4e01\u3041\u1101",a=Object.create(null),o=-1,c=[],u=3e3,l=(i=void 0,function(){if(void 0===i)if(window.FontFace){var t=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent),e=/OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent)&&/Apple/.exec(window.navigator.vendor);i=t?parseInt(t[1],10)>42:!e}else i=!1;return i});function h(){for(var t=!0,e=Date.now(),i=c.length-1;i>=0;i--){var a=c[i],l=a.fontFamilyName;if(e-a.startTime>u)cc.warnID(4933,l),a.onComplete(null,l),c.splice(i,1);else{var h=a.refWidth,_="40px "+l;r.font=_,h!==n.safeMeasureText(r,s,_)?(c.splice(i,1),a.onComplete(null,l)):t=!1}}t&&(clearInterval(o),o=-1)}var _={loadFont:function(t,e,i){var f=_._getFontFamily(t);if(a[f])return i(null,f);if(!r){var d=document.createElement("canvas");d.width=100,d.height=100,r=d.getContext("2d")}var p="40px "+f;r.font=p;var v=n.safeMeasureText(r,s,p),g=document.createElement("style");g.type="text/css";var m="";isNaN(f-0)?m+="@font-face { font-family:"+f+"; src:":m+="@font-face { font-family:'"+f+"'; src:",m+="url('"+t+"');",g.textContent=m+"}",document.body.appendChild(g);var y,T,E,A,C,x,b=document.createElement("div"),S=b.style;if(S.fontFamily=f,b.innerHTML=".",S.position="absolute",S.left="-100px",S.top="-100px",document.body.appendChild(b),l())y=Date.now(),T=f,E=i,A=new Promise(function(t,e){(function i(){Date.now()-y>=u?e():document.fonts.load("40px "+T).then((function(e){e.length>=1?t():setTimeout(i,100)}),(function(){e()}))})()}),C=null,x=new Promise(function(t,e){C=setTimeout(e,u)}),Promise.race([x,A]).then((function(){C&&(clearTimeout(C),C=null),E(null,T)}),(function(){cc.warnID(4933,T),E(null,T)}));else{var R={fontFamilyName:f,refWidth:v,onComplete:i,startTime:Date.now()};c.push(R),-1===o&&(o=setInterval(h,100))}a[f]=g},_getFontFamily:function(t){var e=t.lastIndexOf(".ttf");if(-1===e)return t;var i,n=t.lastIndexOf("/");return-1!==(i=-1===n?t.substring(0,e)+"_LABEL":t.substring(n+1,e)+"_LABEL").indexOf(" ")&&(i='"'+i+'"'),i}};e.exports=_}),{"../utils/text-utils":221}],45:[(function(t,e){"use strict";var i,n=t("./shared").bundles,r={decodeUuid:t("../utils/decode-uuid"),getUuidFromURL:(i=/.*[/\\][0-9a-fA-F]{2}[/\\]([0-9a-fA-F-]{8,})/,function(t){var e=t.match(i);return e?e[1]:""}),getUrlWithUuid:function(t,e){(e=e||Object.create(null)).__isNative__=e.isNative,e.ext=e.nativeExt;var i=n.find((function(e){return e.getAssetInfo(t)}));return i&&(e.bundle=i.name),cc.assetManager._transform(t,e)},isScene:function(t){return t&&(t.constructor===cc.SceneAsset||t instanceof cc.Scene)},normalize:function(t){return t&&(46===t.charCodeAt(0)&&47===t.charCodeAt(1)?t=t.slice(2):47===t.charCodeAt(0)&&(t=t.slice(1))),t}};e.exports=r}),{"../utils/decode-uuid":210,"./shared":54}],46:[(function(t){"use strict";t("./deprecated"),t("./CCAssetManager")}),{"./CCAssetManager":29,"./deprecated":35}],47:[(function(t,e){"use strict";var i=t("./pack-manager"),n=t("./pipeline"),r=t("./parser"),s=t("./utilities"),a=s.getDepends,o=s.cache,c=s.gatherAsset,u=s.setProperties,l=s.forEach,h=s.clear,_=s.checkCircleReference,f=t("./shared"),d=f.assets,p=f.files,v=f.parsed,g=f.pipeline,m=t("./task"),y=new n("loadOneAsset",[function(t,e){var n=t.output=t.input,r=n.options,s=n.isNative,a=n.uuid,o=n.file,c=r.reload;if(o||!c&&!s&&d.has(a))return e();i.load(n,t.options,(function(t,i){n.file=i,e(t)}))},function(t,e){var i=t.output=t.input,n=t.progress,s=t.options.__exclude__,a=i.id,o=i.file,c=i.options;if(i.isNative)r.parse(a,o,i.ext,c,(function(r,s){if(r)return e(r);i.content=s,n.canInvoke&&t.dispatch("progress",++n.finish,n.total,i),p.remove(a),v.remove(a),e()}));else{var u=i.uuid;if(u in s){var l=s[u],h=l.finish,f=l.content,g=l.err,m=l.callbacks;n.canInvoke&&t.dispatch("progress",++n.finish,n.total,i),h||_(u,u,s)?(f&&f.addRef&&f.addRef(),i.content=f,e(g)):m.push({done:e,item:i})}else if(!c.reload&&d.has(u)){var y=d.get(u);c.__asyncLoadAssets__||!y.__asyncLoadAssets__?(i.content=y.addRef(),n.canInvoke&&t.dispatch("progress",++n.finish,n.total,i),e()):T(t,y,e,!1)}else r.parse(a,o,"import",c,(function(i,n){if(i)return e(i);n._uuid=u,T(t,n,e,!0)}))}}]);function T(t,e,i,n){var r=t.input,s=t.progress,c=r.uuid,l=r.id,h=r.options,_=r.config,f=h.__asyncLoadAssets__,d=h.cacheAsset,y=[];e.addRef&&e.addRef(),a(c,e,Object.create(null),y,!1,f,_),s.canInvoke&&t.dispatch("progress",++s.finish,s.total+=y.length,r);var T=t.options.__exclude__[c]={content:e,finish:!1,callbacks:[{done:i,item:r}]},E=m.create({input:y,options:t.options,onProgress:t.onProgress,onError:m.prototype.recycle,progress:s,onComplete:function(t){if(e.decRef&&e.decRef(!1),e.__asyncLoadAssets__=f,T.finish=!0,T.err=t,!t){for(var i=Array.isArray(E.output)?E.output:[E.output],r=Object.create(null),s=0,a=i.length;sthis.pipes.length))return this.pipes.splice(e,0,t),this;cc.warnID(4921)},append:function(t){if("function"==typeof t)return this.pipes.push(t),this},remove:function(t){if("number"==typeof t)return this.pipes.splice(t,1),this},sync:function(t){var e=this.pipes;if(t instanceof i&&0!==e.length){null!=t.output&&(t.input=t.output,t.output=null),t._isFinish=!1;for(var n=0,r=e.length;n0&&h(t)>0)){r.remove(t._uuid);for(var n=i.getDeps(t._uuid),s=0,a=n.length;s0&&this._ref--,!1!==t&&cc.assetManager._releaseManager.tryRelease(this),this},destroy:function(){return this.loaded=!1,this._super()}}),e.exports=cc.Asset}),{"../platform/CCObject":147}],59:[(function(t,e){"use strict";var i=t("./CCAsset"),n=t("../event/event-target"),r=cc.Enum({WEB_AUDIO:0,DOM_AUDIO:1}),s=cc.Class({name:"cc.AudioClip",extends:i,mixins:[n],ctor:function(){this._loading=!1,this.loaded=!1,this._audio=null},properties:{duration:0,loadMode:{default:r.WEB_AUDIO,type:r},_nativeAsset:{get:function(){return this._audio},set:function(t){t instanceof cc.AudioClip?this._audio=t._nativeAsset:this._audio=t,this._audio&&(this.loaded=!0,this.emit("load"))},override:!0},_nativeDep:{get:function(){return{uuid:this._uuid,audioLoadMode:this.loadMode,ext:cc.path.extname(this._native),__isNative__:!0}},override:!0}},statics:{LoadMode:r,_loadByUrl:function(t,e){var i=cc.assetManager.assets.get(t);i?e(null,i):cc.assetManager.loadRemote(t,(function(t,i){if(t)return e(t);e(null,i)}))}},_ensureLoaded:function(t){if(this.isValid){if(this.loaded)return t&&t();if(t&&this.once("load",t),!this._loading){this._loading=!0;var e=this;cc.assetManager.postLoadNative(this,(function(){e._loading=!1}))}}},destroy:function(){cc.audioEngine.uncache(this),this._super()}});cc.AudioClip=s,e.exports=s}),{"../event/event-target":124,"./CCAsset":58}],60:[(function(t,e){"use strict";var i=function(){this.u=0,this.v=0,this.w=0,this.h=0,this.offsetX=0,this.offsetY=0,this.textureID=0,this.valid=!1,this.xAdvance=0},n=function(t){this._letterDefinitions={},this._texture=t};n.prototype={constructor:n,addLetterDefinitions:function(t,e){this._letterDefinitions[t]=e},cloneLetterDefinition:function(){var t={};for(var e in this._letterDefinitions){var n=new i;cc.js.mixin(n,this._letterDefinitions[e]),t[e]=n}return t},getTexture:function(){return this._texture},getLetter:function(t){return this._letterDefinitions[t]},getLetterDefinitionForChar:function(t){var e=t.charCodeAt(0);return this._letterDefinitions.hasOwnProperty(e)?this._letterDefinitions[e]:null},clear:function(){this._letterDefinitions={}}};var r=cc.Class({name:"cc.BitmapFont",extends:cc.Font,properties:{fntDataStr:{default:""},spriteFrame:{default:null,type:cc.SpriteFrame},fontSize:{default:-1},_fntConfig:null,_fontDefDictionary:null},onLoad:function(){var t=this.spriteFrame;this._fontDefDictionary||(this._fontDefDictionary=new n,t&&(this._fontDefDictionary._texture=t._texture));var e=this._fntConfig;if(e){var r=e.fontDefDictionary;for(var s in r){var a=new i,o=r[s].rect;a.offsetX=r[s].xOffset,a.offsetY=r[s].yOffset,a.w=o.width,a.h=o.height,a.u=o.x,a.v=o.y,a.textureID=0,a.valid=!0,a.xAdvance=r[s].xAdvance,this._fontDefDictionary.addLetterDefinitions(s,a)}}}});cc.BitmapFont=r,cc.BitmapFont.FontLetterDefinition=i,cc.BitmapFont.FontAtlas=n,e.exports=r}),{}],61:[(function(t,e){"use strict";var i=cc.Class({name:"cc.BufferAsset",extends:cc.Asset,ctor:function(){this._buffer=null},properties:{_nativeAsset:{get:function(){return this._buffer},set:function(t){this._buffer=t.buffer||t},override:!0},buffer:function(){return this._buffer}}});cc.BufferAsset=e.exports=i}),{}],62:[(function(t,e){"use strict";var i=cc.Class({name:"cc.Font",extends:cc.Asset});cc.Font=e.exports=i}),{}],63:[(function(t,e){"use strict";var i=cc.Class({name:"cc.JsonAsset",extends:cc.Asset,properties:{json:null}});e.exports=cc.JsonAsset=i}),{}],64:[(function(t,e){"use strict";var i=cc.Class({name:"cc.LabelAtlas",extends:cc.BitmapFont,onLoad:function(){this.spriteFrame?this._fntConfig?this._super():cc.warnID(9101,this.name):cc.warnID(9100,this.name)}});cc.LabelAtlas=i,e.exports=i}),{}],65:[(function(t,e){"use strict";var i=cc.Enum({AUTO:0,SINGLE_INSTANCE:1,MULTI_INSTANCE:2}),n=cc.Class({name:"cc.Prefab",extends:cc.Asset,ctor:function(){this._createFunction=null,this._instantiatedTimes=0},properties:{data:null,optimizationPolicy:i.AUTO,asyncLoadAssets:!1,readonly:{default:!1,editorOnly:!0}},statics:{OptimizationPolicy:i,OptimizationPolicyThreshold:3},createNode:!1,compileCreateFunction:function(){var e=t("../platform/instantiate-jit");this._createFunction=e.compile(this.data)},_doInstantiate:function(t){return this.data._prefab||cc.warnID(3700),this._createFunction||this.compileCreateFunction(),this._createFunction(t)},_instantiate:function(){var t;return this.optimizationPolicy!==i.SINGLE_INSTANCE&&(this.optimizationPolicy===i.MULTI_INSTANCE||this._instantiatedTimes+1>=n.OptimizationPolicyThreshold)?(t=this._doInstantiate(),this.data._instantiate(t)):t=this.data._instantiate(),++this._instantiatedTimes,t},destroy:function(){this.data&&this.data.destroy(),this._super()}});cc.Prefab=e.exports=n,cc.js.obsolete(cc,"cc._Prefab","Prefab")}),{"../platform/instantiate-jit":160}],66:[(function(t,e){"use strict";var i,n=(i=t("../../renderer/gfx"))&&i.__esModule?i:{default:i},r=t("../renderer"),s=t("./CCTexture2D"),a=cc.Enum({RB_FMT_D24S8:n.default.RB_FMT_D24S8,RB_FMT_S8:n.default.RB_FMT_S8,RB_FMT_D16:n.default.RB_FMT_D16}),o=cc.Class({name:"cc.RenderTexture",extends:s,statics:{DepthStencilFormat:a},ctor:function(){this._framebuffer=null},initWithSize:function(t,e,i){this.width=Math.floor(t||cc.visibleRect.width),this.height=Math.floor(e||cc.visibleRect.height),this._resetUnderlyingMipmaps();var s,a={colors:[this._texture]};this._depthStencilBuffer&&this._depthStencilBuffer.destroy(),i&&(s=new n.default.RenderBuffer(r.device,i,t,e),i===n.default.RB_FMT_D24S8?a.depthStencil=s:i===n.default.RB_FMT_S8?a.stencil=s:i===n.default.RB_FMT_D16&&(a.depth=s)),this._depthStencilBuffer=s,this._framebuffer&&this._framebuffer.destroy(),this._framebuffer=new n.default.FrameBuffer(r.device,t,e,a),this._packable=!1,this.loaded=!0,this.emit("load")},updateSize:function(t,e){this.width=Math.floor(t||cc.visibleRect.width),this.height=Math.floor(e||cc.visibleRect.height),this._resetUnderlyingMipmaps();var i=this._depthStencilBuffer;i&&i.update(this.width,this.height),this._framebuffer._width=t,this._framebuffer._height=e},drawTextureAt:function(t,e,i){t._image&&0!==t._image.width&&this._texture.updateSubImage({x:e,y:i,image:t._image,width:t.width,height:t.height,level:0,flipY:!1,premultiplyAlpha:t._premultiplyAlpha})},readPixels:function(t,e,i,n,r){if(!this._framebuffer||!this._texture)return t;e=e||0,i=i||0;var s=n||this.width,a=r||this.height;t=t||new Uint8Array(s*a*4);var o=cc.game._renderContext,c=o.getParameter(o.FRAMEBUFFER_BINDING);return o.bindFramebuffer(o.FRAMEBUFFER,this._framebuffer.getHandle()),o.readPixels(e,i,s,a,o.RGBA,o.UNSIGNED_BYTE,t),o.bindFramebuffer(o.FRAMEBUFFER,c),t},destroy:function(){this._super(),this._framebuffer&&(this._framebuffer.destroy(),this._framebuffer=null)}});cc.RenderTexture=e.exports=o}),{"../../renderer/gfx":256,"../renderer":172,"./CCTexture2D":73}],67:[(function(t,e){"use strict";var i=cc.Class({name:"cc.SceneAsset",extends:cc.Asset,properties:{scene:null,asyncLoadAssets:void 0}});cc.SceneAsset=i,e.exports=i}),{}],68:[(function(){"use strict";var t=cc.Class({name:"cc.Script",extends:cc.Asset});cc._Script=t;var e=cc.Class({name:"cc.JavaScript",extends:t});cc._JavaScript=e;var i=cc.Class({name:"cc.TypeScript",extends:t});cc._TypeScript=i}),{}],69:[(function(t,e){"use strict";var i=cc.Class({name:"cc.SpriteAtlas",extends:cc.Asset,properties:{_spriteFrames:{default:{}}},getTexture:function(){var t=Object.keys(this._spriteFrames);if(t.length>0){var e=this._spriteFrames[t[0]];return e?e.getTexture():null}return null},getSpriteFrame:function(t){var e=this._spriteFrames[t];return e?(e.name||(e.name=t),e):null},getSpriteFrames:function(){var t=[],e=this._spriteFrames;for(var i in e)t.push(this.getSpriteFrame(i));return t}});cc.SpriteAtlas=i,e.exports=i}),{}],70:[(function(t,e){"use strict";var i=t("../event/event-target"),n=[{u:0,v:0},{u:0,v:0},{u:0,v:0},{u:0,v:0}],r=cc.Class({name:"cc.SpriteFrame",extends:t("../assets/CCAsset"),mixins:[i],properties:{_textureSetter:{set:function(t){t&&this._texture!==t&&this._refreshTexture(t)}},insetTop:{get:function(){return this._capInsets[1]},set:function(t){this._capInsets[1]=t,this._texture&&this._calculateSlicedUV()}},insetBottom:{get:function(){return this._capInsets[3]},set:function(t){this._capInsets[3]=t,this._texture&&this._calculateSlicedUV()}},insetLeft:{get:function(){return this._capInsets[0]},set:function(t){this._capInsets[0]=t,this._texture&&this._calculateSlicedUV()}},insetRight:{get:function(){return this._capInsets[2]},set:function(t){this._capInsets[2]=t,this._texture&&this._calculateSlicedUV()}}},ctor:function(){i.call(this);var t=arguments[0],e=arguments[1],n=arguments[2],r=arguments[3],s=arguments[4];this._rect=null,this.uv=[],this._texture=null,this._original=null,this._offset=null,this._originalSize=null,this._rotated=!1,this._flipX=!1,this._flipY=!1,this.vertices=null,this._capInsets=[0,0,0,0],this.uvSliced=[],void 0!==t&&this.setTexture(t,e,n,r,s)},textureLoaded:function(){return this._texture&&this._texture.loaded},onTextureLoaded:function(t,e){return this.textureLoaded()?(t.call(e),!0):(this.once("load",t,e),this.ensureLoadTexture(),!1)},isRotated:function(){return this._rotated},setRotated:function(t){this._rotated=t,this._texture&&this._calculateUV()},isFlipX:function(){return this._flipX},isFlipY:function(){return this._flipY},setFlipX:function(t){this._flipX=t,this._texture&&this._calculateUV()},setFlipY:function(t){this._flipY=t,this._texture&&this._calculateUV()},getRect:function(){return cc.rect(this._rect)},setRect:function(t){this._rect=t,this._texture&&this._calculateUV()},getOriginalSize:function(){return cc.size(this._originalSize)},setOriginalSize:function(t){this._originalSize?(this._originalSize.width=t.width,this._originalSize.height=t.height):this._originalSize=cc.size(t)},getTexture:function(){return this._texture},_textureLoadedCallback:function(){var t=this._texture;if(t){var e=t.width,i=t.height;this._rect?this._checkRect(this._texture):this._rect=cc.rect(0,0,e,i),this._originalSize||this.setOriginalSize(cc.size(e,i)),this._offset||this.setOffset(cc.v2(0,0)),this._calculateUV(),this.emit("load")}},_refreshTexture:function(t){this._texture=t,t.loaded?this._textureLoadedCallback():t.once("load",this._textureLoadedCallback,this)},getOffset:function(){return cc.v2(this._offset)},setOffset:function(t){this._offset=cc.v2(t)},clone:function(){return new r(this._texture,this.getRect(),this._rotated,this.getOffset(),this.getOriginalSize())},setTexture:function(t,e,i,n,r){if(1!==arguments.length||t!==this._texture){if(this._rect=e||null,n?this.setOffset(n):this._offset=null,r?this.setOriginalSize(r):this._originalSize=null,this._rotated=i||!1,"string"!=typeof t)return t instanceof cc.Texture2D&&this._refreshTexture(t),!0;cc.errorID(3401)}},ensureLoadTexture:function(){this._texture&&(this._texture.loaded||(this._refreshTexture(this._texture),cc.assetManager.postLoadNative(this._texture)))},_checkRect:function(t){var e=this._rect,i=e.x,n=e.y;this._rotated?(i+=e.height,n+=e.width):(i+=e.width,n+=e.height),i>t.width&&cc.errorID(3300,t.nativeUrl+"/"+this.name,i,t.width),n>t.height&&cc.errorID(3400,t.nativeUrl+"/"+this.name,n,t.height)},_flipXY:function(t){if(this._flipX){var e=t[0];t[0]=t[1],t[1]=e,e=t[2],t[2]=t[3],t[3]=e}if(this._flipY){var i=t[0];t[0]=t[2],t[2]=i,i=t[1],t[1]=t[3],t[3]=i}},_calculateSlicedUV:function(){var t=this._rect,e=this._texture.width,i=this._texture.height,r=this._capInsets[0],s=this._capInsets[2],a=t.width-r-s,o=this._capInsets[1],c=this._capInsets[3],u=t.height-o-c,l=this.uvSliced;if(l.length=0,this._rotated){n[0].u=t.x/e,n[1].u=(t.x+c)/e,n[2].u=(t.x+c+u)/e,n[3].u=(t.x+t.height)/e,n[3].v=t.y/i,n[2].v=(t.y+r)/i,n[1].v=(t.y+r+a)/i,n[0].v=(t.y+t.width)/i,this._flipXY(n);for(var h=0;h<4;++h)for(var _=n[h],f=0;f<4;++f){var d=n[3-f];l.push({u:_.u,v:d.v})}}else{n[0].u=t.x/e,n[1].u=(t.x+r)/e,n[2].u=(t.x+r+a)/e,n[3].u=(t.x+t.width)/e,n[3].v=t.y/i,n[2].v=(t.y+o)/i,n[1].v=(t.y+o+u)/i,n[0].v=(t.y+t.height)/i,this._flipXY(n);for(var p=0;p<4;++p)for(var v=n[p],g=0;g<4;++g){var m=n[g];l.push({u:m.u,v:v.v})}}},_setDynamicAtlasFrame:function(t){t&&(this._original={_texture:this._texture,_x:this._rect.x,_y:this._rect.y},this._texture=t.texture,this._rect.x=t.x,this._rect.y=t.y,this._calculateUV())},_resetDynamicAtlasFrame:function(){this._original&&(this._rect.x=this._original._x,this._rect.y=this._original._y,this._texture=this._original._texture,this._original=null,this._texture.loaded?this._calculateUV():this.ensureLoadTexture())},_calculateUV:function(){var t=this._rect,e=this._texture,i=this.uv,n=e.width,r=e.height;if(this._rotated){var s=0===n?0:t.x/n,a=0===n?0:(t.x+t.height)/n,o=0===r?0:(t.y+t.width)/r,c=0===r?0:t.y/r;i[0]=s,i[1]=c,i[2]=s,i[3]=o,i[4]=a,i[5]=c,i[6]=a,i[7]=o}else{var u=0===n?0:t.x/n,l=0===n?0:(t.x+t.width)/n,h=0===r?0:(t.y+t.height)/r,_=0===r?0:t.y/r;i[0]=u,i[1]=h,i[2]=l,i[3]=h,i[4]=u,i[5]=_,i[6]=l,i[7]=_}if(this._flipX){var f=i[0];i[0]=i[2],i[2]=f,f=i[1],i[1]=i[3],i[3]=f,f=i[4],i[4]=i[6],i[6]=f,f=i[5],i[5]=i[7],i[7]=f}if(this._flipY){var d=i[0];i[0]=i[4],i[4]=d,d=i[1],i[1]=i[5],i[5]=d,d=i[2],i[2]=i[6],i[6]=d,d=i[3],i[3]=i[7],i[7]=d}var p=this.vertices;if(p){p.nu.length=0,p.nv.length=0;for(var v=0;v0?this._image=t.images[0]:void 0!==t.image&&(this._image=t.image,t.images||(_.length=0,t.images=_),t.images.push(t.image)),this._texture&&this._texture.update(t),this._hashDirty=!0},initWithElement:function(t){if(t)if(this._image=t,t.complete||t instanceof HTMLCanvasElement)this.handleLoadedTexture();else if(cc.sys.capabilities.imageBitmap&&t instanceof ImageBitmap)this._checkImageBitmap(this.handleLoadedTexture.bind(this));else{var e=this;t.addEventListener("load",(function(){e.handleLoadedTexture()})),t.addEventListener("error",(function(t){cc.warnID(3119,t.message)}))}},initWithData:function(t,e,i,n){var r=d();return r.image=t,r.images=[r.image],r.genMipmaps=this._genMipmaps,r.premultiplyAlpha=this._premultiplyAlpha,r.flipY=this._flipY,r.minFilter=h[this._minFilter],r.magFilter=h[this._magFilter],r.wrapS=this._wrapS,r.wrapT=this._wrapT,r.format=this._getGFXPixelFormat(e),r.width=i,r.height=n,this._texture?this._texture.update(r):this._texture=new s.Texture2D(s.device,r),this.width=i,this.height=n,this._updateFormat(),this._checkPackable(),this.loaded=!0,this.emit("load"),!0},getHtmlElementObj:function(){return this._image},destroy:function(){cc.sys.capabilities.imageBitmap&&this._image instanceof ImageBitmap&&this._image.close&&this._image.close(),this._packable&&cc.dynamicAtlasManager&&cc.dynamicAtlasManager.deleteAtlasTexture(this),this._image=null,this._texture&&this._texture.destroy(),this._super()},getPixelFormat:function(){return this._format},hasPremultipliedAlpha:function(){return this._premultiplyAlpha||!1},isAlphaAtlas:function(){return this._isAlphaAtlas},handleLoadedTexture:function(){if(this._image&&this._image.width&&this._image.height){this.width=this._image.width,this.height=this._image.height;var t=d();t.image=this._image,t.images=[t.image],t.width=this.width,t.height=this.height,t.genMipmaps=this._genMipmaps,t.format=this._getGFXPixelFormat(this._format),t.premultiplyAlpha=this._premultiplyAlpha,t.flipY=this._flipY,t.minFilter=h[this._minFilter],t.magFilter=h[this._magFilter],t.wrapS=this._wrapS,t.wrapT=this._wrapT,this._texture?this._texture.update(t):this._texture=new s.Texture2D(s.device,t),this._updateFormat(),this._checkPackable(),this.loaded=!0,this.emit("load"),cc.macro.CLEANUP_IMAGE_CACHE&&this._cleanupImageCache()}},_cleanupImageCache:function(){this._image instanceof HTMLImageElement?this._clearImage():cc.sys.capabilities.imageBitmap&&this._image instanceof ImageBitmap&&this._image.close&&this._image.close()},description:function(){return""},releaseTexture:function(){this._image=null,this._texture&&this._texture.destroy()},setWrapMode:function(t,e){if(this._wrapS!==t||this._wrapT!==e){var i=d();i.wrapS=t,i.wrapT=e,this.update(i)}},setFilters:function(t,e){if(this._minFilter!==t||this._magFilter!==e){var i=d();i.minFilter=t,i.magFilter=e,this.update(i)}},setFlipY:function(t){if(this._flipY!==t){var e=d();e.flipY=t,e.premultiplyAlpha=this._premultiplyAlpha,this.update(e)}},setPremultiplyAlpha:function(t){if(this._premultiplyAlpha!==t){var e=d();e.flipY=this._flipY,e.premultiplyAlpha=t,this.update(e)}},_updateFormat:function(){this._isAlphaAtlas=this._format===c.RGBA_ETC1||this._format===c.RGB_A_PVRTC_4BPPV1||this._format===c.RGB_A_PVRTC_2BPPV1},_checkPackable:function(){var t=cc.dynamicAtlasManager;if(t)if(this._isCompressed())this._packable=!1;else{var e=this.width,i=this.height;!this._image||e>t.maxFrameSize||i>t.maxFrameSize||this._getHash()!==t.Atlas.DEFAULT_HASH?this._packable=!1:this._image&&this._image instanceof HTMLCanvasElement&&(this._packable=!0)}},_getOpts:function(){var t=d();return t.width=this.width,t.height=this.height,t.genMipmaps=this._genMipmaps,t.format=this._format,t.premultiplyAlpha=this._premultiplyAlpha,t.anisotropy=this._anisotropy,t.flipY=this._flipY,t.minFilter=h[this._minFilter],t.magFilter=h[this._magFilter],t.mipFilter=h[this._mipFilter],t.wrapS=this._wrapS,t.wrapT=this._wrapT,t},_getGFXPixelFormat:function(t){return t===c.RGBA_ETC1?t=c.RGB_ETC1:t===c.RGB_A_PVRTC_4BPPV1?t=c.RGB_PVRTC_4BPPV1:t===c.RGB_A_PVRTC_2BPPV1&&(t=c.RGB_PVRTC_2BPPV1),t},_resetUnderlyingMipmaps:function(t){var e=this._getOpts();e.images=t||[null],this._texture?this._texture.update(e):this._texture=new s.Texture2D(s.device,e)},_serialize:!1,_deserialize:function(t){var e=t.split(","),i=e[0];if(i){var n=p._parseExt(i,this._format);if(n.bestExt)this._setRawAsset(n.bestExt),this._format=n.bestFormat;else{if(!n.defaultExt)throw new Error(cc.debug.getError(3121));this._setRawAsset(n.defaultExt),cc.warnID(3120,n.defaultExt,n.defaultExt)}}8===e.length&&(this._minFilter=parseInt(e[1]),this._magFilter=parseInt(e[2]),this._wrapS=parseInt(e[3]),this._wrapT=parseInt(e[4]),this._premultiplyAlpha=49===e[5].charCodeAt(0),this._genMipmaps=49===e[6].charCodeAt(0),this._packable=49===e[7].charCodeAt(0))},_getHash:function(){if(!this._hashDirty)return this._hash;var t=this._genMipmaps?1:0,e=this._premultiplyAlpha?1:0,i=this._flipY?1:0,n=this._minFilter===l.LINEAR?1:2,r=this._magFilter===l.LINEAR?1:2,s=this._wrapS===u.REPEAT?1:this._wrapS===u.CLAMP_TO_EDGE?2:3,a=this._wrapT===u.REPEAT?1:this._wrapT===u.CLAMP_TO_EDGE?2:3,o=this._format;return this._image,this._hash=Number(""+n+r+o+s+a+t+e+i),this._hashDirty=!1,this._hash},_isCompressed:function(){return this._formatc.RGBA32F},_clearImage:function(){this._image.src=""},_checkImageBitmap:function(t){var e=this,i=this._image,n=this._flipY,r=this._premultiplyAlpha;this._flipY!==i.flipY||this._premultiplyAlpha!==i.premultiplyAlpha?createImageBitmap(i,{imageOrientation:n!==i.flipY?"flipY":"none",premultiplyAlpha:r?"premultiply":"none"}).then((function(s){i.close&&i.close(),s.flipY=n,s.premultiplyAlpha=r,e._image=s,t()}),(function(t){cc.error(t.message)})):t()}});cc.Texture2D=e.exports=p}),{"../../renderer/gfx":256,"../assets/CCAsset":58,"../event/event-target":124,"../platform/CCClass":141,"../platform/id-generater":158,"../renderer":172}],74:[(function(t,e){"use strict";var i=t("./CCAsset"),n=t("../event/event-target"),r=cc.Class({name:"cc.VideoClip",extends:i,mixins:[n]});cc.VideoClip=r,e.exports=r}),{"../event/event-target":124,"./CCAsset":58}],75:[(function(t){"use strict";t("./CCAsset"),t("./CCFont"),t("./CCPrefab"),t("./CCAudioClip"),t("./CCVideoClip"),t("./CCScripts"),t("./CCSceneAsset"),t("./CCSpriteFrame"),t("./CCTexture2D"),t("./CCRenderTexture"),t("./CCTTFFont"),t("./CCSpriteAtlas"),t("./CCBitmapFont"),t("./CCLabelAtlas"),t("./CCTextAsset"),t("./CCJsonAsset"),t("./CCBufferAsset"),t("./material")}),{"./CCAsset":58,"./CCAudioClip":59,"./CCBitmapFont":60,"./CCBufferAsset":61,"./CCFont":62,"./CCJsonAsset":63,"./CCLabelAtlas":64,"./CCPrefab":65,"./CCRenderTexture":66,"./CCSceneAsset":67,"./CCScripts":68,"./CCSpriteAtlas":69,"./CCSpriteFrame":70,"./CCTTFFont":71,"./CCTextAsset":72,"./CCTexture2D":73,"./CCVideoClip":74,"./material":82}],76:[(function(t,e){"use strict";var i,n=(i=t("../CCAsset"))&&i.__esModule?i:{default:i},r=t("./effect-parser"),s=cc.Class({name:"cc.EffectAsset",extends:n.default,ctor:function(){this._effect=null},properties:{properties:Object,techniques:[],shaders:[]},onLoad:function(){if(cc.game.renderType!==cc.game.RENDER_TYPE_CANVAS){for(var t=cc.renderer._forward._programLib,e=0;e=i.length)){var n=0,r=i.length;void 0!==e&&(n=e,r=e+1);for(var s=n;s=i.length)){var n=0,r=i.length;void 0!==e&&(n=e,r=e+1);for(var s=n;s=this._techniques.length?cc.warn("Can not switch to technique with index ["+t+"]"):this._technique=this._techniques[t]},c.clear=function(){this._techniques=[]},c.clone=function(){for(var t=[],e=0;ethis.maxSize||(this._clean(t),e[i][r].push(t),this.count++)}},s.clear=function(){this._pool={},this.count=0},s._clean=function(t){t._owner=null},r}(r.default));r.default.register("material",o);var c=o;i.default=c,e.exports=i.default}),{"../../utils/pool":216,"./utils":85}],84:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n,r=o(t("./CCMaterial")),s=o(t("./effect-variant")),a=o(t("./material-pool"));function o(t){return t&&t.__esModule?t:{default:t}}function c(t,e){for(var i=0;i0},render:function(t){if(!(t=t||cc.director.getScene()))return null;this.node.getWorldMatrix(u),this.beforeDraw(),a.renderCamera(this._camera,t)},_onAlignWithScreen:function(){var t=cc.game.canvas.height/cc.view._scaleY;this._targetTexture&&(t=cc.visibleRect.height);var e=this._fov*cc.macro.RAD;this.node.z=t/(2*Math.tan(e/2)),e=2*Math.atan(Math.tan(e/2)/this.zoomRatio),this._camera.setFov(e),this._camera.setOrthoHeight(t/2/this.zoomRatio),this.node.setRotation(0,0,0,1)},beforeDraw:function(){if(this._camera){if(this._alignWithScreen)this._onAlignWithScreen();else{var t=this._fov*cc.macro.RAD;t=2*Math.atan(Math.tan(t/2)/this.zoomRatio),this._camera.setFov(t),this._camera.setOrthoHeight(this._orthoSize/this.zoomRatio)}this._camera.dirty=!0}}});cc.js.mixin(T.prototype,{getNodeToCameraTransform:function(t){var e=r.identity();return t.getWorldMatrix(l),this.containsNode(t)&&(this.getWorldToCameraMatrix(u),i.Mat4.mul(l,l,u)),r.fromMat4(e,l),e},getCameraToWorldPoint:function(t,e){return this.getScreenToWorldPoint(t,e)},getWorldToCameraPoint:function(t,e){return this.getWorldToScreenPoint(t,e)},getCameraToWorldMatrix:function(t){return this.getScreenToWorldMatrix2D(t)},getWorldToCameraMatrix:function(t){return this.getWorldToScreenMatrix2D(t)}}),e.exports=cc.Camera=T}),{"../../renderer/scene/camera":276,"../CCGame":24,"../geom-utils":void 0,"../renderer/index":172,"../renderer/render-flow":173,"../utils/affine-transform":206,"../value-types":229}],88:[(function(t,e){"use strict";var i={};function n(t,e,i,n){var r=(n.x-i.x)*(t.y-i.y)-(n.y-i.y)*(t.x-i.x),s=(e.x-t.x)*(t.y-i.y)-(e.y-t.y)*(t.x-i.x),a=(n.y-i.y)*(e.x-t.x)-(n.x-i.x)*(e.y-t.y);if(0!==a){var o=r/a,c=s/a;if(0<=o&&o<=1&&0<=c&&c<=1)return!0}return!1}function r(t,e,i){for(var r=i.length,s=0;sr!=h>r&&n<(l-c)*(r-u)/(h-u)+c&&(i=!i)}return i}function a(t,e,i,n){var r,s=i.x-e.x,a=i.y-e.y,o=s*s+a*a,c=((t.x-e.x)*s+(t.y-e.y)*a)/o;return r=n?o?c<0?e:c>1?i:cc.v2(e.x+c*s,e.y+c*a):e:cc.v2(e.x+c*s,e.y+c*a),s=t.x-r.x,a=t.y-r.y,Math.sqrt(s*s+a*a)}i.lineLine=n,i.lineRect=function(t,e,i){var r=new cc.Vec2(i.x,i.y),s=new cc.Vec2(i.x,i.yMax),a=new cc.Vec2(i.xMax,i.yMax),o=new cc.Vec2(i.xMax,i.y);return!!(n(t,e,r,s)||n(t,e,s,a)||n(t,e,a,o)||n(t,e,o,r))},i.linePolygon=r,i.rectRect=function(t,e){var i=t.x,n=t.y,r=t.x+t.width,s=t.y+t.height,a=e.x,o=e.y,c=e.x+e.width,u=e.y+e.height;return i<=c&&r>=a&&n<=u&&s>=o},i.rectPolygon=function(t,e){var i,n,a=new cc.Vec2(t.x,t.y),o=new cc.Vec2(t.x,t.yMax),c=new cc.Vec2(t.xMax,t.yMax),u=new cc.Vec2(t.xMax,t.y);if(r(a,o,e))return!0;if(r(o,c,e))return!0;if(r(c,u,e))return!0;if(r(u,a,e))return!0;for(i=0,n=e.length;i>>1;r<=s;a=r+s>>>1){var o=t[a],c=o.constructor._executionOrder;if(c>i)s=a-1;else if(cn)s=a-1;else{if(!(u0&&(t.array.sort(u),this._invoke(t),t.array.length=0),this._invoke(this._zero),this._zero.array.length=0;var e=this._pos;e.array.length>0&&(e.array.sort(u),this._invoke(e),e.array.length=0)}}),h=cc.Class({extends:c,add:function(t){var e=t.constructor._executionOrder;if(0===e)this._zero.array.push(t);else{var i=e<0?this._neg.array:this._pos.array,n=a(i,t);n<0&&i.splice(~n,0,t)}},remove:function(t){var e=t.constructor._executionOrder;if(0===e)this._zero.fastRemove(t);else{var i=e<0?this._neg:this._pos,n=a(i.array,t);n>=0&&i.removeAt(n)}},invoke:function(t){this._neg.array.length>0&&this._invoke(this._neg,t),this._invoke(this._zero,t),this._pos.array.length>0&&this._invoke(this._pos,t)}});function _(t,e,i,n){var r="var a=it.array;for(it.i=0;it.i=0?n.fastRemoveAt(this._deferredComps,e):(!t.start||t._objFlags&r||this.startInvoker.remove(t),t.update&&this.updateInvoker.remove(t),t.lateUpdate&&this.lateUpdateInvoker.remove(t))},enableComp:function(t,e){if(!(t._objFlags&s)){if(t.onEnable){if(e)return void e.add(t);if(t.onEnable(),!t.node._activeInHierarchy)return}this._onEnabled(t)}},disableComp:function(t){t._objFlags&s&&(t.onDisable&&t.onDisable(),this._onDisabled(t))},_scheduleImmediate:function(t){"function"!=typeof t.start||t._objFlags&r||this.startInvoker.add(t),"function"==typeof t.update&&this.updateInvoker.add(t),"function"==typeof t.lateUpdate&&this.lateUpdateInvoker.add(t)},_deferredSchedule:function(){for(var t=this._deferredComps,e=0,i=t.length;e0&&(this._deferredSchedule(),this.startInvoker.invoke())},startPhase:function(){this._updating=!0,this.startInvoker.invoke(),this._startForNewComps()},updatePhase:function(t){this.updateInvoker.invoke(t)},lateUpdatePhase:function(t){this.lateUpdateInvoker.invoke(t),this._updating=!1,this._startForNewComps()}});e.exports=g}),{"./platform/CCClass":141,"./platform/CCObject":147,"./platform/js":162,"./utils/misc":214}],90:[(function(t,e){"use strict";var i=t("../../animation/animation-animator"),n=t("../../animation/animation-clip"),r=t("../event/event-target"),s=t("../platform/js"),a=function(t,e){return t===e},o=cc.Enum({PLAY:"play",STOP:"stop",PAUSE:"pause",RESUME:"resume",LASTFRAME:"lastframe",FINISHED:"finished"}),c=cc.Class({name:"cc.Animation",extends:t("./CCComponent"),mixins:[r],editor:!1,statics:{EventType:o},ctor:function(){cc.EventTarget.call(this),this._animator=null,this._nameToState=s.createMap(!0),this._didInit=!1,this._currentClip=null},properties:{_defaultClip:{default:null,type:n},defaultClip:{type:n,get:function(){return this._defaultClip},set:function(){},tooltip:!1},currentClip:{get:function(){return this._currentClip},set:function(t){this._currentClip=t},type:n,visible:!1},_writableClips:{get:function(){return this._clips},set:function(t){this._didInit=!1,this._clips=t,this._init()},type:[n]},_clips:{default:[],type:[n],tooltip:!1,visible:!0},playOnLoad:{default:!1,tooltip:!1}},start:function(){if(this.playOnLoad&&this._defaultClip&&(!this._animator||!this._animator.isPlaying)){var t=this.getAnimationState(this._defaultClip.name);this._animator.playState(t)}},onEnable:function(){this._animator&&this._animator.resume()},onDisable:function(){this._animator&&this._animator.pause()},onDestroy:function(){this.stop()},getClips:function(){return this._clips},play:function(t,e){var i=this.playAdditive(t,e);return this._animator.stopStatesExcept(i),i},playAdditive:function(t,e){this._init();var i=this.getAnimationState(t||this._defaultClip&&this._defaultClip.name);if(i){this.enabled=!0;var n=this._animator;n.isPlaying&&i.isPlaying?i.isPaused?n.resumeState(i):(n.stopState(i),n.playState(i,e)):n.playState(i,e),this.enabledInHierarchy||n.pause(),this.currentClip=i.clip}return i},stop:function(t){if(this._didInit)if(t){var e=this._nameToState[t];e&&this._animator.stopState(e)}else this._animator.stop()},pause:function(t){if(this._didInit)if(t){var e=this._nameToState[t];e&&this._animator.pauseState(e)}else this.enabled=!1},resume:function(t){if(this._didInit)if(t){var e=this.getAnimationState(t);e&&this._animator.resumeState(e)}else this.enabled=!0},setCurrentTime:function(t,e){if(this._init(),e){var i=this.getAnimationState(e);i&&this._animator.setStateTime(i,t)}else this._animator.setStateTime(t)},getAnimationState:function(t){this._init();var e=this._nameToState[t];return e&&!e.curveLoaded&&this._animator._reloadClip(e),e||null},hasAnimationState:function(t){return this._init(),!!this._nameToState[t]},addClip:function(t,e){if(t){this._init(),cc.js.array.contains(this._clips,t)||this._clips.push(t),e=e||t.name;var i=this._nameToState[e];if(i){if(i.clip===t)return i;var n=this._clips.indexOf(i.clip);-1!==n&&this._clips.splice(n,1)}var r=new cc.AnimationState(t,e);return this._nameToState[e]=r,r}cc.warnID(3900)},removeClip:function(t,e){if(t){var i;for(var n in this._init(),this._nameToState)if(i=this._nameToState[n],a(i.clip,t))break;if(t===this._defaultClip){if(!e)return void cc.warnID(3902);this._defaultClip=null}if(i&&i.isPlaying){if(!e)return void cc.warnID(3903);this.stop(i.name)}this._clips=this._clips.filter((function(e){return!a(e,t)})),i&&delete this._nameToState[i.name]}else cc.warnID(3901)},sample:function(t){if(this._init(),t){var e=this.getAnimationState(t);e&&e.sample()}else this._animator.sample()},on:function(t,e,i,n){this._init();var r=this._EventTargetOn(t,e,i,n);if("lastframe"===t){var s=this._nameToState;for(var a in s)s[a]._lastframeEventOn=!0}return r},off:function(t,e,i,n){if(this._init(),"lastframe"===t){var r=this._nameToState;for(var s in r)r[s]._lastframeEventOn=!1}this._EventTargetOff(t,e,i,n)},_init:function(){this._didInit||(this._didInit=!0,this._animator=new i(this.node,this),this._createStates())},_createStates:function(){this._nameToState=s.createMap(!0);for(var t=null,e=!1,i=0;i0&&(i=this.time/this.duration),i>=1&&(i=1),this.transition===r.COLOR){var n=this._fromColor.lerp(this._toColor,i);this._setTargetColor(n)}else this.transition===r.SCALE&&this._originalScale&&(e.scale=this._fromScale.lerp(this._toScale,i));1===i&&(this._transitionFinished=!0)}},_registerNodeEvent:function(){this.node.on(cc.Node.EventType.TOUCH_START,this._onTouchBegan,this),this.node.on(cc.Node.EventType.TOUCH_MOVE,this._onTouchMove,this),this.node.on(cc.Node.EventType.TOUCH_END,this._onTouchEnded,this),this.node.on(cc.Node.EventType.TOUCH_CANCEL,this._onTouchCancel,this),this.node.on(cc.Node.EventType.MOUSE_ENTER,this._onMouseMoveIn,this),this.node.on(cc.Node.EventType.MOUSE_LEAVE,this._onMouseMoveOut,this)},_unregisterNodeEvent:function(){this.node.off(cc.Node.EventType.TOUCH_START,this._onTouchBegan,this),this.node.off(cc.Node.EventType.TOUCH_MOVE,this._onTouchMove,this),this.node.off(cc.Node.EventType.TOUCH_END,this._onTouchEnded,this),this.node.off(cc.Node.EventType.TOUCH_CANCEL,this._onTouchCancel,this),this.node.off(cc.Node.EventType.MOUSE_ENTER,this._onMouseMoveIn,this),this.node.off(cc.Node.EventType.MOUSE_LEAVE,this._onMouseMoveOut,this)},_registerTargetEvent:function(t){t.on(cc.Node.EventType.SCALE_CHANGED,this._onTargetScaleChanged,this)},_unregisterTargetEvent:function(t){t.off(cc.Node.EventType.SCALE_CHANGED,this._onTargetScaleChanged,this)},_getTargetSprite:function(t){var e=null;return t&&(e=t.getComponent(cc.Sprite)),e},_applyTarget:function(){var t=this._getTarget();this._sprite=this._getTargetSprite(t),this._originalScale||(this._originalScale=cc.Vec2.ZERO),this._originalScale.x=t.scaleX,this._originalScale.y=t.scaleY,this._registerTargetEvent(t)},_onTouchBegan:function(t){this.interactable&&this.enabledInHierarchy&&(this._pressed=!0,this._updateState(),t.stopPropagation())},_onTouchMove:function(t){if(this.interactable&&this.enabledInHierarchy&&this._pressed){var e,i=t.touch,n=this.node._hitTest(i.getLocation()),a=this._getTarget(),o=this._originalScale;this.transition===r.SCALE&&o?n?(this._fromScale.x=o.x,this._fromScale.y=o.y,this._toScale.x=o.x*this.zoomScale,this._toScale.y=o.y*this.zoomScale,this._transitionFinished=!1):(this.time=0,this._transitionFinished=!0,a.setScale(o.x,o.y)):(e=n?s.PRESSED:s.NORMAL,this._applyTransition(e)),t.stopPropagation()}},_onTouchEnded:function(t){this.interactable&&this.enabledInHierarchy&&(this._pressed&&(cc.Component.EventHandler.emitEvents(this.clickEvents,t),this.node.emit("click",this)),this._pressed=!1,this._updateState(),t.stopPropagation())},_onTouchCancel:function(){this.interactable&&this.enabledInHierarchy&&(this._pressed=!1,this._updateState())},_onMouseMoveIn:function(){!this._pressed&&this.interactable&&this.enabledInHierarchy&&(this.transition!==r.SPRITE||this.hoverSprite)&&(this._hovered||(this._hovered=!0,this._updateState()))},_onMouseMoveOut:function(){this._hovered&&(this._hovered=!1,this._updateState())},_updateState:function(){var t=this._getButtonState();this._applyTransition(t),this._updateDisabledState()},_getButtonState:function(){return this.interactable?this._pressed?s.PRESSED:this._hovered?s.HOVER:s.NORMAL:s.DISABLED},_updateColorTransitionImmediately:function(t){var e=this._getStateColor(t);this._setTargetColor(e),this._fromColor=e.clone(),this._toColor=e},_updateColorTransition:function(t){if(t===s.DISABLED)this._updateColorTransitionImmediately(t);else{var e=this._getTarget(),i=this._getStateColor(t);this._fromColor=e.color.clone(),this._toColor=i,this.time=0,this._transitionFinished=!1}},_updateSpriteTransition:function(t){var e=this._getStateSprite(t);this._sprite&&e&&(this._sprite.spriteFrame=e)},_updateScaleTransition:function(t){t===s.PRESSED?this._zoomUp():this._zoomBack()},_zoomUp:function(){this._originalScale&&(this._fromScale.x=this._originalScale.x,this._fromScale.y=this._originalScale.y,this._toScale.x=this._originalScale.x*this.zoomScale,this._toScale.y=this._originalScale.y*this.zoomScale,this.time=0,this._transitionFinished=!1)},_zoomBack:function(){if(this._originalScale){var t=this._getTarget();this._fromScale.x=t.scaleX,this._fromScale.y=t.scaleY,this._toScale.x=this._originalScale.x,this._toScale.y=this._originalScale.y,this.time=0,this._transitionFinished=!1}},_updateTransition:function(t){t===r.COLOR?this._updateColorTransitionImmediately(s.NORMAL):t===r.SPRITE&&this._updateSpriteTransition(s.NORMAL),this._updateState()},_applyTransition:function(t){var e=this.transition;e===r.COLOR?this._updateColorTransition(t):e===r.SPRITE?this._updateSpriteTransition(t):e===r.SCALE&&this._updateScaleTransition(t)},_resizeNodeToTargetNode:!1,_updateDisabledState:function(t){if(this._sprite&&(this.enableAutoGrayEffect||t)){var e=!1;this.transition===r.SPRITE&&this.disabledSprite||(e=this.enableAutoGrayEffect&&!this.interactable),this._switchGrayMaterial(e,this._sprite)}}});cc.Button=e.exports=a}),{"../utils/gray-sprite-state":212,"./CCComponent":95}],94:[(function(t,e){"use strict";var i=t("../camera/CCCamera"),n=t("./CCComponent"),r=cc.Class({name:"cc.Canvas",extends:n,editor:!1,resetInEditor:!1,statics:{instance:null},properties:{_designResolution:cc.size(960,640),designResolution:{get:function(){return cc.size(this._designResolution)},set:function(t){this._designResolution.width=t.width,this._designResolution.height=t.height,this.applySettings()},tooltip:!1},_fitWidth:!1,_fitHeight:!0,fitHeight:{get:function(){return this._fitHeight},set:function(t){this._fitHeight!==t&&(this._fitHeight=t,this.applySettings())},tooltip:!1},fitWidth:{get:function(){return this._fitWidth},set:function(t){this._fitWidth!==t&&(this._fitWidth=t,this.applySettings())},tooltip:!1}},_fitDesignResolution:!1,__preload:function(){if(r.instance)return cc.warnID(6700,this.node.name,r.instance.node.name);r.instance=this,this.applySettings();var t=this.getComponent(cc.Widget);t&&t.updateAlignment()},start:function(){if(!i.main&&cc.game.renderType!==cc.game.RENDER_TYPE_CANVAS){var t=new cc.Node("Main Camera");t.parent=this.node,t.setSiblingIndex(0);var e=t.addComponent(i),n=i.ClearFlags;e.clearFlags=n.COLOR|n.DEPTH|n.STENCIL,e.depth=-1}},onDestroy:function(){r.instance===this&&(r.instance=null)},applySettings:function(){var t,e=cc.ResolutionPolicy;t=this.fitHeight&&this.fitWidth?e.SHOW_ALL:this.fitHeight||this.fitWidth?this.fitWidth?e.FIXED_WIDTH:e.FIXED_HEIGHT:e.NO_BORDER;var i=this._designResolution;cc.view.setDesignResolutionSize(i.width,i.height,t)}});cc.Canvas=e.exports=r}),{"../camera/CCCamera":87,"./CCComponent":95}],95:[(function(t,e){"use strict";var i=t("../platform/CCObject"),n=t("../platform/js"),r=new(t("../platform/id-generater"))("Comp"),s=(i.Flags.IsOnEnableCalled,i.Flags.IsOnLoadCalled),a=!!cc.ActionManager,o=cc.Class({name:"cc.Component",extends:i,ctor:function(){this._id=r.getNewId(),this.__eventTargets=[]},properties:{node:{default:null,visible:!1},name:{get:function(){if(this._name)return this._name;var t=cc.js.getClassName(this),e=t.lastIndexOf(".");return e>=0&&(t=t.slice(e+1)),this.node.name+"<"+t+">"},set:function(t){this._name=t},visible:!1},uuid:{get:function(){return this._id},visible:!1},__scriptAsset:!1,_enabled:!0,enabled:{get:function(){return this._enabled},set:function(t){if(this._enabled!==t&&(this._enabled=t,this.node._activeInHierarchy)){var e=cc.director._compScheduler;t?e.enableComp(this):e.disableComp(this)}},visible:!1,animatable:!0},enabledInHierarchy:{get:function(){return this._enabled&&this.node&&this.node._activeInHierarchy},visible:!1},_isOnLoadCalled:{get:function(){return this._objFlags&s}}},update:null,lateUpdate:null,__preload:null,onLoad:null,start:null,onEnable:null,onDisable:null,onDestroy:null,onFocusInEditor:null,onLostFocusInEditor:null,resetInEditor:null,addComponent:function(t){return this.node.addComponent(t)},getComponent:function(t){return this.node.getComponent(t)},getComponents:function(t){return this.node.getComponents(t)},getComponentInChildren:function(t){return this.node.getComponentInChildren(t)},getComponentsInChildren:function(t){return this.node.getComponentsInChildren(t)},_getLocalBounds:null,onRestore:null,destroy:function(){this._super()&&this._enabled&&this.node._activeInHierarchy&&cc.director._compScheduler.disableComp(this)},_onPreDestroy:function(){a&&cc.director.getActionManager().removeAllActionsFromTarget(this),this.unscheduleAllCallbacks();for(var t=this.__eventTargets,e=t.length-1;e>=0;--e){var i=t[e];i&&i.targetOff(this)}t.length=0,cc.director._nodeActivator.destroyComp(this),this.node._removeComponent(this)},_instantiate:function(t){return t||(t=cc.instantiate._clone(this,this)),t.node=null,t},schedule:function(t,e,i,n){cc.assertID(t,1619),e=e||0,cc.assertID(e>=0,1620),i=isNaN(i)?cc.macro.REPEAT_FOREVER:i,n=n||0;var r=cc.director.getScheduler(),s=r.isTargetPaused(this);r.schedule(t,this,e,i,n,s)},scheduleOnce:function(t,e){this.schedule(t,0,0,e)},unschedule:function(t){t&&cc.director.getScheduler().unschedule(t,this)},unscheduleAllCallbacks:function(){cc.director.getScheduler().unscheduleAllForTarget(this)}});o._requireComponent=null,o._executionOrder=0,n.value(o,"_registerEditorProps",(function(t,e){var i=e.requireComponent;i&&(t._requireComponent=i);var n=e.executionOrder;n&&"number"==typeof n&&(t._executionOrder=n)})),o.prototype.__scriptUuid="",cc.Component=e.exports=o}),{"../platform/CCObject":147,"../platform/id-generater":158,"../platform/js":162}],96:[(function(){"use strict";cc.Component.EventHandler=cc.Class({name:"cc.ClickEvent",properties:{target:{default:null,type:cc.Node},component:"",_componentId:"",_componentName:{get:function(){return this._genCompIdIfNeeded(),this._compId2Name(this._componentId)},set:function(t){this._componentId=this._compName2Id(t)}},handler:{default:""},customEventData:{default:""}},statics:{emitEvents:function(t){var e;if(arguments.length>0)for(var i=0,n=(e=new Array(arguments.length-1)).length;i=this._materials.length)return null;var e=this._materials[t];if(!e)return null;var i=n.default.create(e,this);return i!==e&&this.setMaterial(t,i),i},getMaterials:function(){for(var t=this._materials,e=0;e0&&t[0].check()}},onEnable:function(){this._makeAtLeastOneToggleChecked(),this.node.on("child-added",this._allowOnlyOneToggleChecked,this),this.node.on("child-removed",this._makeAtLeastOneToggleChecked,this)},onDisable:function(){this.node.off("child-added",this._allowOnlyOneToggleChecked,this),this.node.off("child-removed",this._makeAtLeastOneToggleChecked,this)}});t("../platform/js").get(i.prototype,"toggleItems",(function(){return this.node._children.map((function(t){return t.getComponent(cc.Toggle)})).filter(Boolean)})),cc.ToggleContainer=e.exports=i}),{"../platform/js":162}],109:[(function(t,e){"use strict";var i=cc.Class({name:"cc.ToggleGroup",extends:cc.Component,ctor:function(){this._toggleItems=[]},editor:!1,properties:{allowSwitchOff:{tooltip:!1,default:!1},toggleItems:{get:function(){return this._toggleItems}}},updateToggles:function(t){this.enabledInHierarchy&&this._toggleItems.forEach((function(e){t.isChecked&&e!==t&&e.isChecked&&e.enabled&&e._hideCheckMark()}))},addToggle:function(t){-1===this._toggleItems.indexOf(t)&&this._toggleItems.push(t),this._allowOnlyOneToggleChecked()},removeToggle:function(t){var e=this._toggleItems.indexOf(t);e>-1&&this._toggleItems.splice(e,1),this._makeAtLeastOneToggleChecked()},_allowOnlyOneToggleChecked:function(){var t=!1;return this._toggleItems.forEach((function(e){t&&e.enabled&&e._hideCheckMark(),e.isChecked&&e.enabled&&(t=!0)})),t},_makeAtLeastOneToggleChecked:function(){this._allowOnlyOneToggleChecked()||this.allowSwitchOff||this._toggleItems.length>0&&(this._toggleItems[0].isChecked=!0)},start:function(){this._makeAtLeastOneToggleChecked()}}),n=t("../platform/js"),r=!1;n.get(cc,"ToggleGroup",(function(){return r||(cc.errorID(1405,"cc.ToggleGroup","cc.ToggleContainer"),r=!0),i})),e.exports=i}),{"../platform/js":162}],110:[(function(t,e){"use strict";var i=t("../base-ui/CCWidgetManager"),n=i.AlignMode,r=i._AlignFlags,s=r.TOP,a=r.MID,o=r.BOT,c=r.LEFT,u=r.CENTER,l=r.RIGHT,h=s|o,_=c|l,f=cc.Class({name:"cc.Widget",extends:t("./CCComponent"),editor:!1,properties:{target:{get:function(){return this._target},set:function(t){this._target=t},type:cc.Node,tooltip:!1},isAlignTop:{get:function(){return(this._alignFlags&s)>0},set:function(t){this._setAlign(s,t)},animatable:!1,tooltip:!1},isAlignVerticalCenter:{get:function(){return(this._alignFlags&a)>0},set:function(t){t?(this.isAlignTop=!1,this.isAlignBottom=!1,this._alignFlags|=a):this._alignFlags&=~a},animatable:!1,tooltip:!1},isAlignBottom:{get:function(){return(this._alignFlags&o)>0},set:function(t){this._setAlign(o,t)},animatable:!1,tooltip:!1},isAlignLeft:{get:function(){return(this._alignFlags&c)>0},set:function(t){this._setAlign(c,t)},animatable:!1,tooltip:!1},isAlignHorizontalCenter:{get:function(){return(this._alignFlags&u)>0},set:function(t){t?(this.isAlignLeft=!1,this.isAlignRight=!1,this._alignFlags|=u):this._alignFlags&=~u},animatable:!1,tooltip:!1},isAlignRight:{get:function(){return(this._alignFlags&l)>0},set:function(t){this._setAlign(l,t)},animatable:!1,tooltip:!1},isStretchWidth:{get:function(){return(this._alignFlags&_)===_},visible:!1},isStretchHeight:{get:function(){return(this._alignFlags&h)===h},visible:!1},top:{get:function(){return this._top},set:function(t){this._top=t},tooltip:!1},bottom:{get:function(){return this._bottom},set:function(t){this._bottom=t},tooltip:!1},left:{get:function(){return this._left},set:function(t){this._left=t},tooltip:!1},right:{get:function(){return this._right},set:function(t){this._right=t},tooltip:!1},horizontalCenter:{get:function(){return this._horizontalCenter},set:function(t){this._horizontalCenter=t},tooltip:!1},verticalCenter:{get:function(){return this._verticalCenter},set:function(t){this._verticalCenter=t},tooltip:!1},isAbsoluteHorizontalCenter:{get:function(){return this._isAbsHorizontalCenter},set:function(t){this._isAbsHorizontalCenter=t},animatable:!1},isAbsoluteVerticalCenter:{get:function(){return this._isAbsVerticalCenter},set:function(t){this._isAbsVerticalCenter=t},animatable:!1},isAbsoluteTop:{get:function(){return this._isAbsTop},set:function(t){this._isAbsTop=t},animatable:!1},isAbsoluteBottom:{get:function(){return this._isAbsBottom},set:function(t){this._isAbsBottom=t},animatable:!1},isAbsoluteLeft:{get:function(){return this._isAbsLeft},set:function(t){this._isAbsLeft=t},animatable:!1},isAbsoluteRight:{get:function(){return this._isAbsRight},set:function(t){this._isAbsRight=t},animatable:!1},alignMode:{default:n.ON_WINDOW_RESIZE,type:n,tooltip:!1},_wasAlignOnce:{default:void 0,formerlySerializedAs:"isAlignOnce"},_target:null,_alignFlags:0,_left:0,_right:0,_top:0,_bottom:0,_verticalCenter:0,_horizontalCenter:0,_isAbsLeft:!0,_isAbsRight:!0,_isAbsTop:!0,_isAbsBottom:!0,_isAbsHorizontalCenter:!0,_isAbsVerticalCenter:!0,_originalWidth:0,_originalHeight:0},statics:{AlignMode:n},onLoad:function(){void 0!==this._wasAlignOnce&&(this.alignMode=this._wasAlignOnce?n.ONCE:n.ALWAYS,this._wasAlignOnce=void 0)},onEnable:function(){i.add(this)},onDisable:function(){i.remove(this)},_validateTargetInDEV:!1,_setAlign:function(t,e){if(e!==(this._alignFlags&t)>0){var i=(t&_)>0;e?(this._alignFlags|=t,i?(this.isAlignHorizontalCenter=!1,this.isStretchWidth&&(this._originalWidth=this.node.width)):(this.isAlignVerticalCenter=!1,this.isStretchHeight&&(this._originalHeight=this.node.height))):(i?this.isStretchWidth&&(this.node.width=this._originalWidth):this.isStretchHeight&&(this.node.height=this._originalHeight),this._alignFlags&=~t)}},updateAlignment:function(){i.updateAlignment(this.node)}});Object.defineProperty(f.prototype,"isAlignOnce",{get:function(){return this.alignMode===n.ONCE},set:function(t){this.alignMode=t?n.ONCE:n.ALWAYS}}),cc.Widget=e.exports=f}),{"../base-ui/CCWidgetManager":86,"./CCComponent":95}],111:[(function(t,e){"use strict";var i=t("../../platform/CCMacro"),n=t("../editbox/EditBoxImplBase"),r=t("../CCLabel"),s=t("./types"),a=s.InputMode,o=s.InputFlag,c=s.KeyboardReturnType;function u(t){return t.charAt(0).toUpperCase()+t.slice(1)}var l=cc.Class({name:"cc.EditBox",extends:cc.Component,editor:!1,properties:{_string:"",string:{tooltip:!1,get:function(){return this._string},set:function(t){t=""+t,this.maxLength>=0&&t.length>=this.maxLength&&(t=t.slice(0,this.maxLength)),this._string=t,this._updateString(t)}},textLabel:{tooltip:!1,default:null,type:r,notify:function(t){this.textLabel&&this.textLabel!==t&&(this._updateTextLabel(),this._updateLabels())}},placeholderLabel:{tooltip:!1,default:null,type:r,notify:function(t){this.placeholderLabel&&this.placeholderLabel!==t&&(this._updatePlaceholderLabel(),this._updateLabels())}},background:{tooltip:!1,default:null,type:cc.Sprite,notify:function(t){this.background&&this.background!==t&&this._updateBackgroundSprite()}},_N$backgroundImage:{default:void 0,type:cc.SpriteFrame},backgroundImage:{get:function(){return this.background?this.background.spriteFrame:null},set:function(t){this.background&&(this.background.spriteFrame=t)}},returnType:{default:c.DEFAULT,tooltip:!1,displayName:"KeyboardReturnType",type:c},_N$returnType:{default:void 0,type:cc.Float},inputFlag:{tooltip:!1,default:o.DEFAULT,type:o,notify:function(){this._updateString(this._string)}},inputMode:{tooltip:!1,default:a.ANY,type:a,notify:function(t){this.inputMode!==t&&(this._updateTextLabel(),this._updatePlaceholderLabel())}},fontSize:{get:function(){return this.textLabel?this.textLabel.fontSize:0},set:function(t){this.textLabel&&(this.textLabel.fontSize=t)}},_N$fontSize:{default:void 0,type:cc.Float},lineHeight:{get:function(){return this.textLabel?this.textLabel.lineHeight:0},set:function(t){this.textLabel&&(this.textLabel.lineHeight=t)}},_N$lineHeight:{default:void 0,type:cc.Float},fontColor:{get:function(){return this.textLabel?this.textLabel.node.color:cc.Color.BLACK},set:function(t){this.textLabel&&(this.textLabel.node.color=t,this.textLabel.node.opacity=t.a)}},_N$fontColor:void 0,placeholder:{tooltip:!1,get:function(){return this.placeholderLabel?this.placeholderLabel.string:""},set:function(t){this.placeholderLabel&&(this.placeholderLabel.string=t)}},_N$placeholder:{default:void 0,type:cc.String},placeholderFontSize:{get:function(){return this.placeholderLabel?this.placeholderLabel.fontSize:0},set:function(t){this.placeholderLabel&&(this.placeholderLabel.fontSize=t)}},_N$placeholderFontSize:{default:void 0,type:cc.Float},placeholderFontColor:{get:function(){return this.placeholderLabel?this.placeholderLabel.node.color:cc.Color.BLACK},set:function(t){this.placeholderLabel&&(this.placeholderLabel.node.color=t,this.placeholderLabel.node.opacity=t.a)}},_N$placeholderFontColor:void 0,maxLength:{tooltip:!1,default:20},_N$maxLength:{default:void 0,type:cc.Float},stayOnTop:{default:!1,notify:function(){cc.warn("editBox.stayOnTop is removed since v2.1.")}},_tabIndex:0,tabIndex:{tooltip:!1,get:function(){return this._tabIndex},set:function(t){this._tabIndex!==t&&(this._tabIndex=t,this._impl&&this._impl.setTabIndex(t))}},editingDidBegan:{default:[],type:cc.Component.EventHandler},textChanged:{default:[],type:cc.Component.EventHandler},editingDidEnded:{default:[],type:cc.Component.EventHandler},editingReturn:{default:[],type:cc.Component.EventHandler}},statics:{_ImplClass:n,KeyboardReturnType:c,InputFlag:o,InputMode:a},_init:function(){this._upgradeComp(),this._isLabelVisible=!0,this.node.on(cc.Node.EventType.SIZE_CHANGED,this._syncSize,this),(this._impl=new l._ImplClass).init(this),this._updateString(this._string),this._syncSize()},_updateBackgroundSprite:function(){var t=this.background;if(!t){var e=this.node.getChildByName("BACKGROUND_SPRITE");e||(e=new cc.Node("BACKGROUND_SPRITE")),(t=e.getComponent(cc.Sprite))||(t=e.addComponent(cc.Sprite)),e.parent=this.node,this.background=t}t.type=cc.Sprite.Type.SLICED,void 0!==this._N$backgroundImage&&(t.spriteFrame=this._N$backgroundImage,this._N$backgroundImage=void 0)},_updateTextLabel:function(){var t=this.textLabel;if(!t){var e=this.node.getChildByName("TEXT_LABEL");e||(e=new cc.Node("TEXT_LABEL")),(t=e.getComponent(r))||(t=e.addComponent(r)),e.parent=this.node,this.textLabel=t}t.node.setAnchorPoint(0,1),t.overflow=r.Overflow.CLAMP,this.inputMode===a.ANY?(t.verticalAlign=i.VerticalTextAlignment.TOP,t.enableWrapText=!0):(t.verticalAlign=i.VerticalTextAlignment.CENTER,t.enableWrapText=!1),t.string=this._updateLabelStringStyle(this._string),void 0!==this._N$fontColor&&(t.node.color=this._N$fontColor,t.node.opacity=this._N$fontColor.a,this._N$fontColor=void 0),void 0!==this._N$fontSize&&(t.fontSize=this._N$fontSize,this._N$fontSize=void 0),void 0!==this._N$lineHeight&&(t.lineHeight=this._N$lineHeight,this._N$lineHeight=void 0)},_updatePlaceholderLabel:function(){var t=this.placeholderLabel;if(!t){var e=this.node.getChildByName("PLACEHOLDER_LABEL");e||(e=new cc.Node("PLACEHOLDER_LABEL")),(t=e.getComponent(r))||(t=e.addComponent(r)),e.parent=this.node,this.placeholderLabel=t}t.node.setAnchorPoint(0,1),t.overflow=r.Overflow.CLAMP,this.inputMode===a.ANY?(t.verticalAlign=i.VerticalTextAlignment.TOP,t.enableWrapText=!0):(t.verticalAlign=i.VerticalTextAlignment.CENTER,t.enableWrapText=!1),t.string=this.placeholder,void 0!==this._N$placeholderFontColor&&(t.node.color=this._N$placeholderFontColor,t.node.opacity=this._N$placeholderFontColor.a,this._N$placeholderFontColor=void 0),void 0!==this._N$placeholderFontSize&&(t.fontSize=this._N$placeholderFontSize,this._N$placeholderFontSize=void 0)},_upgradeComp:function(){void 0!==this._N$returnType&&(this.returnType=this._N$returnType,this._N$returnType=void 0),void 0!==this._N$maxLength&&(this.maxLength=this._N$maxLength,this._N$maxLength=void 0),void 0!==this._N$backgroundImage&&this._updateBackgroundSprite(),void 0===this._N$fontColor&&void 0===this._N$fontSize&&void 0===this._N$lineHeight||this._updateTextLabel(),void 0===this._N$placeholderFontColor&&void 0===this._N$placeholderFontSize||this._updatePlaceholderLabel(),void 0!==this._N$placeholder&&(this.placeholder=this._N$placeholder,this._N$placeholder=void 0)},_syncSize:function(){if(this._impl){var t=this.node.getContentSize();this._impl.setSize(t.width,t.height)}},_showLabels:function(){this._isLabelVisible=!0,this._updateLabels()},_hideLabels:function(){this._isLabelVisible=!1,this.textLabel&&(this.textLabel.node.active=!1),this.placeholderLabel&&(this.placeholderLabel.node.active=!1)},_updateLabels:function(){if(this._isLabelVisible){var t=this._string;this.textLabel&&(this.textLabel.node.active=""!==t),this.placeholderLabel&&(this.placeholderLabel.node.active=""===t)}},_updateString:function(t){var e=this.textLabel;if(e){var i=t;i&&(i=this._updateLabelStringStyle(i)),e.string=i,this._updateLabels()}},_updateLabelStringStyle:function(t,e){var i=this.inputFlag;if(e||i!==o.PASSWORD)i===o.INITIAL_CAPS_ALL_CHARACTERS?t=t.toUpperCase():i===o.INITIAL_CAPS_WORD?t=t.replace(/(?:^|\s)\S/g,(function(t){return t.toUpperCase()})):i===o.INITIAL_CAPS_SENTENCE&&(t=u(t));else{for(var n="",r=t.length,s=0;s=0&&(e.value=e.value.slice(0,n)),t._delegate.editBoxTextChanged(e.value)}},n.onClick=function(){t._editing&&cc.sys.isMobile&&t._adjustWindowScroll()},n.onKeydown=function(i){i.keyCode===r.KEY.enter?(i.stopPropagation(),t._delegate.editBoxEditingReturn(),t._isTextArea||e.blur()):i.keyCode===r.KEY.tab&&(i.stopPropagation(),i.preventDefault(),o.next(t))},n.onBlur=function(){cc.sys.isMobile&&i&&n.compositionEnd(),t._editing=!1,v=null,t._hideDom(),t._delegate.editBoxEditingDidEnded()},e.addEventListener("compositionstart",n.compositionStart),e.addEventListener("compositionend",n.compositionEnd),e.addEventListener("input",n.onInput),e.addEventListener("keydown",n.onKeydown),e.addEventListener("blur",n.onBlur),e.addEventListener("touchstart",n.onClick)},_removeEventListeners:function(){var t=this._elem,e=this._eventListeners;t.removeEventListener("compositionstart",e.compositionStart),t.removeEventListener("compositionend",e.compositionEnd),t.removeEventListener("input",e.onInput),t.removeEventListener("keydown",e.onKeydown),t.removeEventListener("blur",e.onBlur),t.removeEventListener("touchstart",e.onClick),e.compositionStart=null,e.compositionEnd=null,e.onInput=null,e.onKeydown=null,e.onBlur=null,e.onClick=null}})}),{"../../platform/CCMacro":146,"../../platform/utils":165,"../../value-types/mat4":231,"../CCLabel":97,"./tabIndexUtil":114,"./types":115}],114:[(function(t,e){"use strict";e.exports={_tabIndexList:[],add:function(t){var e=this._tabIndexList;-1===e.indexOf(t)&&e.push(t)},remove:function(t){var e=this._tabIndexList,i=e.indexOf(t);-1!==i&&e.splice(i,1)},resort:function(){this._tabIndexList.sort((function(t,e){return t._delegate._tabIndex-e._delegate._tabIndex}))},next:function(t){var e=this._tabIndexList,i=e.indexOf(t);if(t.setFocus(!1),-1!==i){var n=e[i+1];n&&n._delegate._tabIndex>=0&&n.setFocus(!0)}}}}),{}],115:[(function(t,e){"use strict";var i=cc.Enum({DEFAULT:0,DONE:1,SEND:2,SEARCH:3,GO:4,NEXT:5}),n=cc.Enum({ANY:0,EMAIL_ADDR:1,NUMERIC:2,PHONE_NUMBER:3,URL:4,DECIMAL:5,SINGLE_LINE:6}),r=cc.Enum({PASSWORD:0,SENSITIVE:1,INITIAL_CAPS_WORD:2,INITIAL_CAPS_SENTENCE:3,INITIAL_CAPS_ALL_CHARACTERS:4,DEFAULT:5});e.exports={KeyboardReturnType:i,InputMode:n,InputFlag:r}}),{}],116:[(function(t,e){"use strict";t("./CCComponent"),t("./CCComponentEventHandler"),t("./missing-script");var i=t("./SubContextView");i||(i=cc.Class({name:"cc.SubContextView",extends:cc.Component}),cc.SubContextView=cc.WXSubContextView=cc.SwanSubContextView=i);var n=[t("./CCSprite"),t("./CCWidget"),t("./CCCanvas"),t("./CCAudioSource"),t("./CCAnimation"),t("./CCButton"),t("./CCLabel"),t("./CCProgressBar"),t("./CCMask"),t("./CCScrollBar"),t("./CCScrollView"),t("./CCPageViewIndicator"),t("./CCPageView"),t("./CCSlider"),t("./CCLayout"),t("./editbox/CCEditBox"),t("./CCLabelOutline"),t("./CCLabelShadow"),t("./CCRichText"),t("./CCToggleContainer"),t("./CCToggleGroup"),t("./CCToggle"),t("./CCBlockInputEvents"),t("./CCMotionStreak"),t("./CCSafeArea"),i];e.exports=n}),{"./CCAnimation":90,"./CCAudioSource":91,"./CCBlockInputEvents":92,"./CCButton":93,"./CCCanvas":94,"./CCComponent":95,"./CCComponentEventHandler":96,"./CCLabel":97,"./CCLabelOutline":98,"./CCLabelShadow":99,"./CCLayout":void 0,"./CCMask":void 0,"./CCMotionStreak":100,"./CCPageView":void 0,"./CCPageViewIndicator":void 0,"./CCProgressBar":101,"./CCRichText":void 0,"./CCSafeArea":103,"./CCScrollBar":void 0,"./CCScrollView":void 0,"./CCSlider":104,"./CCSprite":105,"./CCToggle":107,"./CCToggleContainer":108,"./CCToggleGroup":109,"./CCWidget":110,"./SubContextView":void 0,"./editbox/CCEditBox":111,"./missing-script":117}],117:[(function(t,e){"use strict";var i=cc.js,n=cc.Class({name:"cc.MissingScript",extends:cc.Component,editor:{inspector:"packages://inspector/inspectors/comps/missing-script.js"},properties:{compiled:{default:!1,serializable:!1},_$erialized:{default:null,visible:!1,editorOnly:!0}},ctor:!1,statics:{safeFindClass:function(t){return i._getClassById(t)||(cc.deserialize.reportMissingClass(t),n)}},onLoad:function(){cc.warnID(4600,this.node.name)}});cc._MissingScript=e.exports=n}),{}],118:[(function(t,e){"use strict";var i=cc.js;t("../event/event");var n=function(t,e){cc.Event.call(this,cc.Event.MOUSE,e),this._eventType=t,this._button=0,this._x=0,this._y=0,this._prevX=0,this._prevY=0,this._scrollX=0,this._scrollY=0};i.extend(n,cc.Event);var r=n.prototype;r.setScrollData=function(t,e){this._scrollX=t,this._scrollY=e},r.getScrollX=function(){return this._scrollX},r.getScrollY=function(){return this._scrollY},r.setLocation=function(t,e){this._x=t,this._y=e},r.getLocation=function(){return cc.v2(this._x,this._y)},r.getLocationInView=function(){return cc.v2(this._x,cc.view._designResolutionSize.height-this._y)},r._setPrevCursor=function(t,e){this._prevX=t,this._prevY=e},r.getPreviousLocation=function(){return cc.v2(this._prevX,this._prevY)},r.getDelta=function(){return cc.v2(this._x-this._prevX,this._y-this._prevY)},r.getDeltaX=function(){return this._x-this._prevX},r.getDeltaY=function(){return this._y-this._prevY},r.setButton=function(t){this._button=t},r.getButton=function(){return this._button},r.getLocationX=function(){return this._x},r.getLocationY=function(){return this._y},n.NONE=0,n.DOWN=1,n.UP=2,n.MOVE=3,n.SCROLL=4,n.BUTTON_LEFT=0,n.BUTTON_RIGHT=2,n.BUTTON_MIDDLE=1,n.BUTTON_4=3,n.BUTTON_5=4,n.BUTTON_6=5,n.BUTTON_7=6,n.BUTTON_8=7;var s=function(t,e){cc.Event.call(this,cc.Event.TOUCH,e),this._eventCode=0,this._touches=t||[],this.touch=null,this.currentTouch=null};i.extend(s,cc.Event),(r=s.prototype).getEventCode=function(){return this._eventCode},r.getTouches=function(){return this._touches},r._setEventCode=function(t){this._eventCode=t},r._setTouches=function(t){this._touches=t},r.setLocation=function(t,e){this.touch&&this.touch.setTouchInfo(this.touch.getID(),t,e)},r.getLocation=function(){return this.touch?this.touch.getLocation():cc.v2()},r.getLocationInView=function(){return this.touch?this.touch.getLocationInView():cc.v2()},r.getPreviousLocation=function(){return this.touch?this.touch.getPreviousLocation():cc.v2()},r.getStartLocation=function(){return this.touch?this.touch.getStartLocation():cc.v2()},r.getID=function(){return this.touch?this.touch.getID():null},r.getDelta=function(){return this.touch?this.touch.getDelta():cc.v2()},r.getDeltaX=function(){return this.touch?this.touch.getDelta().x:0},r.getDeltaY=function(){return this.touch?this.touch.getDelta().y:0},r.getLocationX=function(){return this.touch?this.touch.getLocationX():0},r.getLocationY=function(){return this.touch?this.touch.getLocationY():0},s.MAX_TOUCHES=5,s.BEGAN=0,s.MOVED=1,s.ENDED=2,s.CANCELED=3;var a=function(t,e){cc.Event.call(this,cc.Event.ACCELERATION,e),this.acc=t};i.extend(a,cc.Event);var o=function(t,e,i){cc.Event.call(this,cc.Event.KEYBOARD,i),this.keyCode=t,this.isPressed=e};i.extend(o,cc.Event),cc.Event.EventMouse=n,cc.Event.EventTouch=s,cc.Event.EventAcceleration=a,cc.Event.EventKeyboard=o,e.exports=cc.Event}),{"../event/event":125}],119:[(function(t,e){"use strict";var i=t("../platform/js");cc.EventListener=function(t,e,i){this._onEvent=i,this._type=t||0,this._listenerID=e||"",this._registered=!1,this._fixedPriority=0,this._node=null,this._target=null,this._paused=!0,this._isEnabled=!0},cc.EventListener.prototype={constructor:cc.EventListener,_setPaused:function(t){this._paused=t},_isPaused:function(){return this._paused},_setRegistered:function(t){this._registered=t},_isRegistered:function(){return this._registered},_getType:function(){return this._type},_getListenerID:function(){return this._listenerID},_setFixedPriority:function(t){this._fixedPriority=t},_getFixedPriority:function(){return this._fixedPriority},_setSceneGraphPriority:function(t){this._target=t,this._node=t},_getSceneGraphPriority:function(){return this._node},checkAvailable:function(){return null!==this._onEvent},clone:function(){return null},setEnabled:function(t){this._isEnabled=t},isEnabled:function(){return this._isEnabled},retain:function(){},release:function(){}},cc.EventListener.UNKNOWN=0,cc.EventListener.TOUCH_ONE_BY_ONE=1,cc.EventListener.TOUCH_ALL_AT_ONCE=2,cc.EventListener.KEYBOARD=3,cc.EventListener.MOUSE=4,cc.EventListener.ACCELERATION=6,cc.EventListener.CUSTOM=8;var n=cc.EventListener.ListenerID={MOUSE:"__cc_mouse",TOUCH_ONE_BY_ONE:"__cc_touch_one_by_one",TOUCH_ALL_AT_ONCE:"__cc_touch_all_at_once",KEYBOARD:"__cc_keyboard",ACCELERATION:"__cc_acceleration"},r=function(t,e){this._onCustomEvent=e,cc.EventListener.call(this,cc.EventListener.CUSTOM,t,this._callback)};i.extend(r,cc.EventListener),i.mixin(r.prototype,{_onCustomEvent:null,_callback:function(t){null!==this._onCustomEvent&&this._onCustomEvent(t)},checkAvailable:function(){return cc.EventListener.prototype.checkAvailable.call(this)&&null!==this._onCustomEvent},clone:function(){return new r(this._listenerID,this._onCustomEvent)}});var s=function(){cc.EventListener.call(this,cc.EventListener.MOUSE,n.MOUSE,this._callback)};i.extend(s,cc.EventListener),i.mixin(s.prototype,{onMouseDown:null,onMouseUp:null,onMouseMove:null,onMouseScroll:null,_callback:function(t){var e=cc.Event.EventMouse;switch(t._eventType){case e.DOWN:this.onMouseDown&&this.onMouseDown(t);break;case e.UP:this.onMouseUp&&this.onMouseUp(t);break;case e.MOVE:this.onMouseMove&&this.onMouseMove(t);break;case e.SCROLL:this.onMouseScroll&&this.onMouseScroll(t)}},clone:function(){var t=new s;return t.onMouseDown=this.onMouseDown,t.onMouseUp=this.onMouseUp,t.onMouseMove=this.onMouseMove,t.onMouseScroll=this.onMouseScroll,t},checkAvailable:function(){return!0}});var a=function(){cc.EventListener.call(this,cc.EventListener.TOUCH_ONE_BY_ONE,n.TOUCH_ONE_BY_ONE,null),this._claimedTouches=[]};i.extend(a,cc.EventListener),i.mixin(a.prototype,{constructor:a,_claimedTouches:null,swallowTouches:!1,onTouchBegan:null,onTouchMoved:null,onTouchEnded:null,onTouchCancelled:null,setSwallowTouches:function(t){this.swallowTouches=t},isSwallowTouches:function(){return this.swallowTouches},clone:function(){var t=new a;return t.onTouchBegan=this.onTouchBegan,t.onTouchMoved=this.onTouchMoved,t.onTouchEnded=this.onTouchEnded,t.onTouchCancelled=this.onTouchCancelled,t.swallowTouches=this.swallowTouches,t},checkAvailable:function(){return!!this.onTouchBegan||(cc.logID(1801),!1)}});var o=function(){cc.EventListener.call(this,cc.EventListener.TOUCH_ALL_AT_ONCE,n.TOUCH_ALL_AT_ONCE,null)};i.extend(o,cc.EventListener),i.mixin(o.prototype,{constructor:o,onTouchesBegan:null,onTouchesMoved:null,onTouchesEnded:null,onTouchesCancelled:null,clone:function(){var t=new o;return t.onTouchesBegan=this.onTouchesBegan,t.onTouchesMoved=this.onTouchesMoved,t.onTouchesEnded=this.onTouchesEnded,t.onTouchesCancelled=this.onTouchesCancelled,t},checkAvailable:function(){return null!==this.onTouchesBegan||null!==this.onTouchesMoved||null!==this.onTouchesEnded||null!==this.onTouchesCancelled||(cc.logID(1802),!1)}});var c=function(t){this._onAccelerationEvent=t,cc.EventListener.call(this,cc.EventListener.ACCELERATION,n.ACCELERATION,this._callback)};i.extend(c,cc.EventListener),i.mixin(c.prototype,{constructor:c,_onAccelerationEvent:null,_callback:function(t){this._onAccelerationEvent(t.acc,t)},checkAvailable:function(){return cc.assertID(this._onAccelerationEvent,1803),!0},clone:function(){return new c(this._onAccelerationEvent)}});var u=function(){cc.EventListener.call(this,cc.EventListener.KEYBOARD,n.KEYBOARD,this._callback)};i.extend(u,cc.EventListener),i.mixin(u.prototype,{constructor:u,onKeyPressed:null,onKeyReleased:null,_callback:function(t){t.isPressed?this.onKeyPressed&&this.onKeyPressed(t.keyCode,t):this.onKeyReleased&&this.onKeyReleased(t.keyCode,t)},clone:function(){var t=new u;return t.onKeyPressed=this.onKeyPressed,t.onKeyReleased=this.onKeyReleased,t},checkAvailable:function(){return null!==this.onKeyPressed||null!==this.onKeyReleased||(cc.logID(1800),!1)}}),cc.EventListener.create=function(t){cc.assertID(t&&t.event,1900);var e=t.event;delete t.event;var i=null;for(var n in e===cc.EventListener.TOUCH_ONE_BY_ONE?i=new a:e===cc.EventListener.TOUCH_ALL_AT_ONCE?i=new o:e===cc.EventListener.MOUSE?i=new s:e===cc.EventListener.CUSTOM?(i=new r(t.eventName,t.callback),delete t.eventName,delete t.callback):e===cc.EventListener.KEYBOARD?i=new u:e===cc.EventListener.ACCELERATION&&(i=new c(t.callback),delete t.callback),t)i[n]=t[n];return i},e.exports=cc.EventListener}),{"../platform/js":162}],120:[(function(t,e){"use strict";var i=t("../platform/js");t("./CCEventListener");var n=cc.EventListener.ListenerID,r=function(){this._fixedListeners=[],this._sceneGraphListeners=[],this.gt0Index=0};r.prototype={constructor:r,size:function(){return this._fixedListeners.length+this._sceneGraphListeners.length},empty:function(){return 0===this._fixedListeners.length&&0===this._sceneGraphListeners.length},push:function(t){0===t._getFixedPriority()?this._sceneGraphListeners.push(t):this._fixedListeners.push(t)},clearSceneGraphListeners:function(){this._sceneGraphListeners.length=0},clearFixedListeners:function(){this._fixedListeners.length=0},clear:function(){this._sceneGraphListeners.length=0,this._fixedListeners.length=0},getFixedPriorityListeners:function(){return this._fixedListeners},getSceneGraphPriorityListeners:function(){return this._sceneGraphListeners}};var s=function(t){var e=cc.Event,i=t.type;return i===e.ACCELERATION?n.ACCELERATION:i===e.KEYBOARD?n.KEYBOARD:i.startsWith(e.MOUSE)?n.MOUSE:(i.startsWith(e.TOUCH)&&cc.logID(2e3),"")},a={DIRTY_NONE:0,DIRTY_FIXED_PRIORITY:1,DIRTY_SCENE_GRAPH_PRIORITY:2,DIRTY_ALL:3,_listenersMap:{},_priorityDirtyFlagMap:{},_nodeListenersMap:{},_toAddedListeners:[],_toRemovedListeners:[],_dirtyListeners:{},_inDispatch:0,_isEnabled:!1,_currentTouch:null,_currentTouchListener:null,_internalCustomListenerIDs:[],_setDirtyForNode:function(t){var e=this._nodeListenersMap[t._id];if(e)for(var i=0,n=e.length;i0)for(var s=t._children,a=0,o=s.length;a=0;i--)(e=t[i])._setRegistered(!1),null!=e._getSceneGraphPriority()&&(this._dissociateNodeAndEventListener(e._getSceneGraphPriority(),e),e._setSceneGraphPriority(null)),0===this._inDispatch&&cc.js.array.removeAt(t,i)},_removeListenersForListenerID:function(t){var e,i=this._listenersMap[t];if(i){var n=i.getFixedPriorityListeners(),r=i.getSceneGraphPriorityListeners();this._removeAllListenersInVector(r),this._removeAllListenersInVector(n),delete this._priorityDirtyFlagMap[t],this._inDispatch||(i.clear(),delete this._listenersMap[t])}var s,a=this._toAddedListeners;for(e=a.length-1;e>=0;e--)(s=a[e])&&s._getListenerID()===t&&cc.js.array.removeAt(a,e)},_sortEventListeners:function(t){var e=this.DIRTY_NONE,i=this._priorityDirtyFlagMap;i[t]&&(e=i[t]),e!==this.DIRTY_NONE&&(i[t]=this.DIRTY_NONE,e&this.DIRTY_FIXED_PRIORITY&&this._sortListenersOfFixedPriority(t),e&this.DIRTY_SCENE_GRAPH_PRIORITY&&cc.director.getScene()&&this._sortListenersOfSceneGraphPriority(t))},_sortListenersOfSceneGraphPriority:function(t){var e=this._getListeners(t);if(e){var i=e.getSceneGraphPriorityListeners();i&&0!==i.length&&e.getSceneGraphPriorityListeners().sort(this._sortEventListenersOfSceneGraphPriorityDes)}},_sortEventListenersOfSceneGraphPriorityDes:function(t,e){var i=t._getSceneGraphPriority(),n=e._getSceneGraphPriority();if(!(e&&n&&n._activeInHierarchy&&null!==n._parent))return-1;if(!t||!i||!i._activeInHierarchy||null===i._parent)return 1;for(var r=i,s=n,a=!1;r._parent._id!==s._parent._id;)r=null===r._parent._parent?(a=!0)&&n:r._parent,s=null===s._parent._parent?(a=!0)&&i:s._parent;if(r._id===s._id){if(r._id===n._id)return-1;if(r._id===i._id)return 1}return a?r._localZOrder-s._localZOrder:s._localZOrder-r._localZOrder},_sortListenersOfFixedPriority:function(t){var e=this._listenersMap[t];if(e){var i=e.getFixedPriorityListeners();if(i&&0!==i.length){i.sort(this._sortListenersOfFixedPriorityAsc);for(var n=0,r=i.length;n=0);)++n;e.gt0Index=n}}},_sortListenersOfFixedPriorityAsc:function(t,e){return t._getFixedPriority()-e._getFixedPriority()},_onUpdateListeners:function(t){var e,i,n,r=t.getFixedPriorityListeners(),s=t.getSceneGraphPriorityListeners(),a=this._toRemovedListeners;if(s)for(e=s.length-1;e>=0;e--)(i=s[e])._isRegistered()||(cc.js.array.removeAt(s,e),-1!==(n=a.indexOf(i))&&a.splice(n,1));if(r)for(e=r.length-1;e>=0;e--)(i=r[e])._isRegistered()||(cc.js.array.removeAt(r,e),-1!==(n=a.indexOf(i))&&a.splice(n,1));s&&0===s.length&&t.clearSceneGraphListeners(),r&&0===r.length&&t.clearFixedListeners()},frameUpdateListeners:function(){var t=this._listenersMap,e=this._priorityDirtyFlagMap;for(var i in t)t[i].empty()&&(delete e[i],delete t[i]);var n=this._toAddedListeners;if(0!==n.length){for(var r=0,s=n.length;r0,3508),!(t>1)){var e;(e=this._listenersMap[n.TOUCH_ONE_BY_ONE])&&this._onUpdateListeners(e),(e=this._listenersMap[n.TOUCH_ALL_AT_ONCE])&&this._onUpdateListeners(e),cc.assertID(1===t,3509);var i=this._toAddedListeners;if(0!==i.length){for(var r=0,s=i.length;r0&&-1!==(r=t._claimedTouches.indexOf(n))){if(s=!0,!cc.macro.ENABLE_MULTI_TOUCH&&a._currentTouch&&a._currentTouch!==n)return!1;o===c.MOVED&&t.onTouchMoved?t.onTouchMoved(n,i):o===c.ENDED?(t.onTouchEnded&&t.onTouchEnded(n,i),t._registered&&t._claimedTouches.splice(r,1),a._clearCurTouch()):o===c.CANCELED&&(t.onTouchCancelled&&t.onTouchCancelled(n,i),t._registered&&t._claimedTouches.splice(r,1),a._clearCurTouch())}return i.isStopped()?(a._updateTouchListeners(i),!0):!(!s||!t.swallowTouches||(e.needsMutableSet&&e.touches.splice(n,1),0))},_dispatchTouchEvent:function(t){this._sortEventListeners(n.TOUCH_ONE_BY_ONE),this._sortEventListeners(n.TOUCH_ALL_AT_ONCE);var e=this._getListeners(n.TOUCH_ONE_BY_ONE),i=this._getListeners(n.TOUCH_ALL_AT_ONCE);if(null!==e||null!==i){var r=t.getTouches(),s=cc.js.array.copy(r),a={event:t,needsMutableSet:e&&i,touches:s,selTouch:null};if(e)for(var o=0;o0&&(this._dispatchEventToListeners(i,this._onTouchesEventCallback,{event:t,touches:s}),t.isStopped())||this._updateTouchListeners(t)}},_onTouchesEventCallback:function(t,e){if(!t._registered)return!1;var i=cc.Event.EventTouch,n=e.event,r=e.touches,s=n.getEventCode();return n.currentTarget=t._node,s===i.BEGAN&&t.onTouchesBegan?t.onTouchesBegan(r,n):s===i.MOVED&&t.onTouchesMoved?t.onTouchesMoved(r,n):s===i.ENDED&&t.onTouchesEnded?t.onTouchesEnded(r,n):s===i.CANCELED&&t.onTouchesCancelled&&t.onTouchesCancelled(r,n),!!n.isStopped()&&(a._updateTouchListeners(n),!0)},_associateNodeAndEventListener:function(t,e){var i=this._nodeListenersMap[t._id];i||(i=[],this._nodeListenersMap[t._id]=i),i.push(e)},_dissociateNodeAndEventListener:function(t,e){var i=this._nodeListenersMap[t._id];i&&(cc.js.array.remove(i,e),0===i.length&&delete this._nodeListenersMap[t._id])},_dispatchEventToListeners:function(t,e,i){var n,r,s=!1,a=t.getFixedPriorityListeners(),o=t.getSceneGraphPriorityListeners(),c=0;if(a&&0!==a.length)for(;c=0;c--){var u=o[c];if(u===t){cc.js.array.removeAt(o,c),u._setRegistered(!1);break}}this._currentTouchListener===t&&this._clearCurTouch()}},_clearCurTouch:function(){this._currentTouchListener=null,this._currentTouch=null},_removeListenerInCallback:function(t,e){if(null==t)return!1;for(var i=t.length-1;i>=0;i--){var n=t[i];if(n._onCustomEvent===e||n._onEvent===e)return n._setRegistered(!1),null!=n._getSceneGraphPriority()&&(this._dissociateNodeAndEventListener(n._getSceneGraphPriority(),n),n._setSceneGraphPriority(null)),0===this._inDispatch?cc.js.array.removeAt(t,i):this._toRemovedListeners.push(n),!0}return!1},_removeListenerInVector:function(t,e){if(null==t)return!1;for(var i=t.length-1;i>=0;i--){var n=t[i];if(n===e)return n._setRegistered(!1),null!=n._getSceneGraphPriority()&&(this._dissociateNodeAndEventListener(n._getSceneGraphPriority(),n),n._setSceneGraphPriority(null)),0===this._inDispatch?cc.js.array.removeAt(t,i):this._toRemovedListeners.push(n),!0}return!1},removeListeners:function(t,e){var i=this;if(cc.js.isNumber(t)||t instanceof cc._BaseNode)if(void 0!==t._id){var r,s=i._nodeListenersMap[t._id];if(s){var a=cc.js.array.copy(s);for(r=0;r=0;i--){var n=e[i];n&&this.off(t,n.callback,n.target)}},cc.EventTarget=e.exports=s}),{"../platform/callbacks-invoker":154,"../platform/js":162}],125:[(function(t,e){"use strict";var i=t("../platform/js");cc.Event=function(t,e){this.type=t,this.bubbles=!!e,this.target=null,this.currentTarget=null,this.eventPhase=0,this._propagationStopped=!1,this._propagationImmediateStopped=!1},cc.Event.prototype={constructor:cc.Event,unuse:function(){this.type=cc.Event.NO_TYPE,this.target=null,this.currentTarget=null,this.eventPhase=cc.Event.NONE,this._propagationStopped=!1,this._propagationImmediateStopped=!1},reuse:function(t,e){this.type=t,this.bubbles=e||!1},stopPropagation:function(){this._propagationStopped=!0},stopPropagationImmediate:function(){this._propagationImmediateStopped=!0},isStopped:function(){return this._propagationStopped||this._propagationImmediateStopped},getCurrentTarget:function(){return this.currentTarget},getType:function(){return this.type}},cc.Event.NO_TYPE="no_type",cc.Event.TOUCH="touch",cc.Event.MOUSE="mouse",cc.Event.KEYBOARD="keyboard",cc.Event.ACCELERATION="acceleration",cc.Event.NONE=0,cc.Event.CAPTURING_PHASE=1,cc.Event.AT_TARGET=2,cc.Event.BUBBLING_PHASE=3;var n=function(t,e){cc.Event.call(this,t,e),this.detail=null};i.extend(n,cc.Event),n.prototype.reset=n,n.prototype.setUserData=function(t){this.detail=t},n.prototype.getUserData=function(){return this.detail},n.prototype.getEventName=cc.Event.prototype.getType;var r=new i.Pool(10);n.put=function(t){r.put(t)},n.get=function(t,e){var i=r._get();return i?i.reset(t,e):i=new n(t,e),i},cc.Event.EventCustom=n,e.exports=cc.Event}),{"../platform/js":162}],126:[(function(t){"use strict";t("./event"),t("./event-listeners"),t("./event-target"),t("./system-event")}),{"./event":125,"./event-listeners":123,"./event-target":124,"./system-event":127}],127:[(function(t,e){"use strict";var i=t("../event/event-target"),n=t("../event-manager"),r=t("../platform/CCInputManager"),s=cc.Enum({KEY_DOWN:"keydown",KEY_UP:"keyup",DEVICEMOTION:"devicemotion"}),a=null,o=null,c=cc.Class({name:"SystemEvent",extends:i,statics:{EventType:s},setAccelerometerEnabled:function(t){t&&window.DeviceMotionEvent&&"function"==typeof DeviceMotionEvent.requestPermission?DeviceMotionEvent.requestPermission().then((function(t){console.log("Device Motion Event request permission: "+t),r.setAccelerometerEnabled("granted"===t)})):r.setAccelerometerEnabled(t)},setAccelerometerInterval:function(t){r.setAccelerometerInterval(t)},on:function(t,e,i,r){this._super(t,e,i,r),t!==s.KEY_DOWN&&t!==s.KEY_UP||(a||(a=cc.EventListener.create({event:cc.EventListener.KEYBOARD,onKeyPressed:function(t,e){e.type=s.KEY_DOWN,cc.systemEvent.dispatchEvent(e)},onKeyReleased:function(t,e){e.type=s.KEY_UP,cc.systemEvent.dispatchEvent(e)}})),n.hasEventListener(cc.EventListener.ListenerID.KEYBOARD)||n.addListener(a,1)),t===s.DEVICEMOTION&&(o||(o=cc.EventListener.create({event:cc.EventListener.ACCELERATION,callback:function(t,e){e.type=s.DEVICEMOTION,cc.systemEvent.dispatchEvent(e)}})),n.hasEventListener(cc.EventListener.ListenerID.ACCELERATION)||n.addListener(o,1))},off:function(t,e,i){if(this._super(t,e,i),a&&(t===s.KEY_DOWN||t===s.KEY_UP)){var r=this.hasEventListener(s.KEY_DOWN),c=this.hasEventListener(s.KEY_UP);r||c||n.removeListener(a)}o&&t===s.DEVICEMOTION&&n.removeListener(o)}});cc.SystemEvent=e.exports=c,cc.systemEvent=new cc.SystemEvent}),{"../event-manager":122,"../event/event-target":124,"../platform/CCInputManager":145}],128:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n=a(t("../value-types/vec3")),r=a(t("../value-types/mat3")),s=a(t("./enums"));function a(t){return t&&t.__esModule?t:{default:t}}var o=new n.default,c=new n.default,u=new r.default,l=function(t,e,i){var r=u.m,s=i.m;r[0]=Math.abs(s[0]),r[1]=Math.abs(s[1]),r[2]=Math.abs(s[2]),r[3]=Math.abs(s[4]),r[4]=Math.abs(s[5]),r[5]=Math.abs(s[6]),r[6]=Math.abs(s[8]),r[7]=Math.abs(s[9]),r[8]=Math.abs(s[10]),n.default.transformMat3(t,e,u)},h=(function(){function t(t,e,i,r,a,o){this.center=void 0,this.halfExtents=void 0,this._type=void 0,this._type=s.default.SHAPE_AABB,this.center=new n.default(t,e,i),this.halfExtents=new n.default(r,a,o)}t.create=function(e,i,n,r,s,a){return new t(e,i,n,r,s,a)},t.clone=function(e){return new t(e.center.x,e.center.y,e.center.z,e.halfExtents.x,e.halfExtents.y,e.halfExtents.z)},t.copy=function(t,e){return n.default.copy(t.center,e.center),n.default.copy(t.halfExtents,e.halfExtents),t},t.fromPoints=function(t,e,i){return n.default.scale(t.center,n.default.add(o,e,i),.5),n.default.scale(t.halfExtents,n.default.sub(c,i,e),.5),t},t.set=function(t,e,i,r,s,a,o){return n.default.set(t.center,e,i,r),n.default.set(t.halfExtents,s,a,o),t};var e=t.prototype;return e.getBoundary=function(t,e){n.default.sub(t,this.center,this.halfExtents),n.default.add(e,this.center,this.halfExtents)},e.transform=function(t,e,i,r,s){s||(s=this),n.default.transformMat4(s.center,this.center,t),l(s.halfExtents,this.halfExtents,t)},t})();i.default=h,e.exports=i.default}),{"../value-types/mat3":230,"../value-types/vec3":239,"./enums":129}],129:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0,i.default={SHAPE_RAY:1,SHAPE_LINE:2,SHAPE_SPHERE:4,SHAPE_AABB:8,SHAPE_OBB:16,SHAPE_PLANE:32,SHAPE_TRIANGLE:64,SHAPE_FRUSTUM:128,SHAPE_FRUSTUM_ACCURATE:256},e.exports=i.default}),{}],130:[(function(t,e){"use strict";var i=t("../components/CCRenderComponent"),n=t("../assets/material/CCMaterial"),r=t("./types"),s=r.LineCap,a=r.LineJoin,o=cc.Class({name:"cc.Graphics",extends:i,editor:!1,ctor:function(){this._impl=new o._Impl(this)},properties:{_lineWidth:2,_strokeColor:cc.Color.BLACK,_lineJoin:a.MITER,_lineCap:s.BUTT,_fillColor:cc.Color.WHITE,_miterLimit:10,lineWidth:{get:function(){return this._lineWidth},set:function(t){this._lineWidth=t,this._impl.lineWidth=t}},lineJoin:{get:function(){return this._lineJoin},set:function(t){this._lineJoin=t,this._impl.lineJoin=t},type:a},lineCap:{get:function(){return this._lineCap},set:function(t){this._lineCap=t,this._impl.lineCap=t},type:s},strokeColor:{get:function(){return this._strokeColor},set:function(t){this._impl.strokeColor=this._strokeColor=cc.color(t)}},fillColor:{get:function(){return this._fillColor},set:function(t){this._impl.fillColor=this._fillColor=cc.color(t)}},miterLimit:{get:function(){return this._miterLimit},set:function(t){this._miterLimit=t,this._impl.miterLimit=t}}},statics:{LineJoin:a,LineCap:s},onRestore:function(){this._impl||(this._impl=new o._Impl(this))},onDestroy:function(){this.clear(!0),this._super(),this._impl=null},_getDefaultMaterial:function(){return n.getBuiltinMaterial("2d-graphics")},_updateMaterial:function(){var t=this._materials[0];t&&(void 0!==t.getDefine("CC_USE_MODEL")&&t.define("CC_USE_MODEL",!0),void 0!==t.getDefine("CC_SUPPORT_standard_derivatives")&&cc.sys.glExtension("OES_standard_derivatives")&&t.define("CC_SUPPORT_standard_derivatives",!0))},moveTo:function(t,e){this._impl.moveTo(t,e)},lineTo:function(t,e){this._impl.lineTo(t,e)},bezierCurveTo:function(t,e,i,n,r,s){this._impl.bezierCurveTo(t,e,i,n,r,s)},quadraticCurveTo:function(t,e,i,n){this._impl.quadraticCurveTo(t,e,i,n)},arc:function(t,e,i,n,r,s){this._impl.arc(t,e,i,n,r,s)},ellipse:function(t,e,i,n){this._impl.ellipse(t,e,i,n)},circle:function(t,e,i){this._impl.circle(t,e,i)},rect:function(t,e,i,n){this._impl.rect(t,e,i,n)},roundRect:function(t,e,i,n,r){this._impl.roundRect(t,e,i,n,r)},fillRect:function(t,e,i,n){this.rect(t,e,i,n),this.fill()},clear:function(t){this._impl.clear(t),this._assembler&&this._assembler.clear(t)},close:function(){this._impl.close()},stroke:function(){this._assembler||this._resetAssembler(),this._assembler.stroke(this)},fill:function(){this._assembler||this._resetAssembler(),this._assembler.fill(this)}});cc.Graphics=e.exports=o,cc.Graphics.Types=r,cc.Graphics.Helper=t("./helper")}),{"../assets/material/CCMaterial":77,"../components/CCRenderComponent":102,"./helper":131,"./types":133}],131:[(function(t,e){"use strict";var i=t("./types").PointFlags,n=Math.PI,r=Math.min,s=Math.max,a=Math.cos,o=Math.sin,c=Math.abs,u=Math.sign,l=.5522847493;e.exports={arc:function(t,e,i,u,l,h,_){var f,d,p,v=0,g=0,m=0,y=0,T=0,E=0,A=0,C=0,x=0,b=0,S=0,R=0,w=0;if(g=h-l,_=_||!1)if(c(g)>=2*n)g=2*n;else for(;g<0;)g+=2*n;else if(c(g)>=2*n)g=2*-n;else for(;g>0;)g-=2*n;for(p=0|s(1,r(c(g)/(.5*n)+.5,5)),m=c(4/3*(1-a(f=g/p/2))/o(f)),_||(m=-m),d=0;d<=p;d++)E=e+(y=a(v=l+g*(d/p)))*u,A=i+(T=o(v))*u,C=-T*u*m,x=y*u*m,0===d?t.moveTo(E,A):t.bezierCurveTo(b+R,S+w,E-C,A-x,E,A),b=E,S=A,R=C,w=x},ellipse:function(t,e,i,n,r){t.moveTo(e-n,i),t.bezierCurveTo(e-n,i+r*l,e-n*l,i+r,e,i+r),t.bezierCurveTo(e+n*l,i+r,e+n,i+r*l,e+n,i),t.bezierCurveTo(e+n,i-r*l,e+n*l,i-r,e,i-r),t.bezierCurveTo(e-n*l,i-r,e-n,i-r*l,e-n,i),t.close()},roundRect:function(t,e,i,n,s,a){if(a<.1)t.rect(e,i,n,s);else{var o=r(a,.5*c(n))*u(n),h=r(a,.5*c(s))*u(s);t.moveTo(e,i+h),t.lineTo(e,i+s-h),t.bezierCurveTo(e,i+s-h*(1-l),e+o*(1-l),i+s,e+o,i+s),t.lineTo(e+n-o,i+s),t.bezierCurveTo(e+n-o*(1-l),i+s,e+n,i+s-h*(1-l),e+n,i+s-h),t.lineTo(e+n,i+h),t.bezierCurveTo(e+n,i+h*(1-l),e+n-o*(1-l),i,e+n-o,i),t.lineTo(e+o,i),t.bezierCurveTo(e+o*(1-l),i,e,i+h*(1-l),e,i+h),t.close()}},tesselateBezier:function t(e,n,r,s,a,o,u,l,h,_,f){var d,p,v,g,m,y,T,E,A,C,x,b,S,R,w,I;_>10||(m=.5*(o+l),y=.5*(u+h),T=.5*((d=.5*(n+s))+(v=.5*(s+o))),E=.5*((p=.5*(r+a))+(g=.5*(a+u))),((w=c((s-l)*(R=h-r)-(a-h)*(S=l-n)))+(I=c((o-l)*R-(u-h)*S)))*(w+I)0){for(var p=new DataView(i,r),v=n,g=c.num,m=0;m0||this.disableRender()},_updateMaterial:function(){var t=this.textures;if(t&&t.length>0)for(var e=this._getDefaultMaterial(),i=0;i>2,f=l.vertexOffset,d=u._vData,p=u._iData;!i.worldMatDirty&&this._worldDatas[n]||this._updateWorldVertices(n,a,r,s,t.node._worldMatrix),d.set(this._worldDatas[n],_);for(var v=0;v0?a:null,!0);var h=o.prototype;if(e&&(l||(i.extend(o,e),h=o.prototype),o.$super=e),n){for(var _=n.length-1;_>=0;_--){var f=n[_];p(h,f.prototype),p(o,f,(function(t){return f.hasOwnProperty(t)&&!0})),w._isCCClass(f)&&p(s.getClassAttrs(o),s.getClassAttrs(f))}h.constructor=o}return l||(h.__initProps__=A),i.setClassName(t,o),o}function g(t,e,n,r){var s=cc.Component,a=cc._RF.peek();if(a&&i.isChildClassOf(e,s)){if(i.isChildClassOf(a.cls,s))return cc.errorID(3615),null;t=t||a.script}var o=v(t,e,n,r);if(a)if(i.isChildClassOf(e,s)){var c=a.uuid;c&&i._setClassId(c,o),a.cls=o}else i.isChildClassOf(a.cls,s)||(a.cls=o);return o}function m(t){for(var e=i.getClassName(t),n=t.constructor,r="new "+e+"(",s=0;s0){var a="].apply(this,arguments);\n";if(1===s)r+="CCClass.__ctors__[0"+a;else{r+="var cs=CCClass.__ctors__;\n";for(var o=0;o=0)){var s=e[r];if("function"==typeof s){var a=i.getPropertyDescriptor(t.prototype,r);if(a){var o=a.value;if("function"==typeof o){b.test(s)&&(n=!0,e[r]=(function(t,e){return function(){var i=this._super;this._super=t;var n=e.apply(this,arguments);return this._super=i,n}})(o,s));continue}}}}return n}function R(t,e,i,n,r,c){if(t.__props__=[],n&&n.__props__&&(t.__props__=n.__props__.slice()),r)for(var u=0;u=0)){var f=t[_];o.validateMethodWithProps(f,_,e,s,n)&&i.value(s.prototype,_,f,!0,!0)}var d=t.editor;return d&&cc.Component._registerEditorProps(s,d),s}/xyz/.test((function(){xyz})),w._isCCClass=function(t){return t&&t.hasOwnProperty("__ctors__")},w._fastDefine=function(t,e,n){i.setClassName(t,e);for(var r=e.__props__=e.__values__=Object.keys(n),o=s.getClassAttrs(e),c=0;c=2&&((o||u())[c+"min"]=_[0],o[c+"max"]=_[1],_.length>2&&(o[c+"step"]=_[2])),h("min","number"),h("max","number"),h("step","number"),h("userData","object")}cc.Class=w,e.exports={isArray:function(t){return t=d(t),Array.isArray(t)},fastDefine:w._fastDefine,getNewValueTypeCode:m,IDENTIFIER_RE:E,escapeForJS:y,getDefault:d}}),{"./CCEnum":143,"./attribute":153,"./js":162,"./preprocess-class":163,"./requiring-frame":164,"./utils":165}],142:[(function(t,e){"use strict";t("./CCClass");var i=t("./preprocess-class"),n=t("./js"),r="__ccclassCache__";function s(t){return t}function a(t,e){return t[e]||(t[e]={})}function o(t){return function(e){return"function"==typeof e?t(e):function(i){return t(i,e)}}}function c(t,e){return function(t){return function(i){return e(i,t)}}}var u=c.bind(null,!1);function l(){return c.bind(null,!1)}var h=l(),_=l();function f(t){return a(t,r)}function d(t){var e;try{e=t()}catch(i){return t}return"object"!=typeof e||null===e?e:t}function p(t){var e;try{e=new t}catch(i){return{}}return e}function v(t,e,r,s,a,o){var c,u=a&&(a.get||a.set);s&&(c=i.getFullFormOfProperty(s,u));var l=e[r],h=n.mixin(l||{},c||s||{});if(u)a.get&&(h.get=a.get),a.set&&(h.set=a.set);else{var _=void 0;if(a)a.initializer&&(_=d(a.initializer));else{var f=o.default||(o.default=p(t));f.hasOwnProperty(r)&&(_=f[r])}h.default=_}e[r]=h}var g=o((function(t,e){var i=n.getSuper(t);i===Object&&(i=null);var s={name:e,extends:i,ctor:t,__ES6__:!0},a=t[r];if(a){var o=a.proto;o&&n.mixin(s,o),t[r]=void 0}return cc.Class(s)}));function m(t,e,i){return t((function(t,n){var r=f(t);if(r){var s=void 0!==i?i:n,o=a(r,"proto");a(o,"editor")[e]=s}}),e)}function y(t){return t(s)}var T=y(o),E=m(u,"requireComponent"),A=y(h),C=m(_,"executionOrder"),x=y(o),b=y(o),S=y(h),R=y(h),w=y(h);cc._decorator=e.exports={ccclass:g,property:function(t,e,i){var n=null;function r(t,e,i){var r=f(t.constructor);if(r){var s=a(r,"proto"),o=a(s,"properties");v(t.constructor,o,e,n,i,r)}}if(void 0===e)return n=t,r;r(t,e,i)},executeInEditMode:T,requireComponent:E,menu:A,executionOrder:C,disallowMultiple:x,playOnFocus:b,inspector:S,icon:R,help:w,mixins:function(){for(var t=[],e=0;ee){var l=u.getID();delete a[l],delete o[l],this._touchCount--,-1===r?(r=c,this._indexBitsUsed|=1<>=1}return r},_glView:null,_updateCanvasBoundingRect:function(){var t=cc.game.canvas,e=this._canvasBoundingRect,i=document.documentElement,n=window.pageXOffset-i.clientLeft,r=window.pageYOffset-i.clientTop;if(t.getBoundingClientRect){var s=t.getBoundingClientRect();e.left=s.left+n,e.top=s.top+r,e.width=s.width,e.height=s.height}else t instanceof HTMLCanvasElement?(e.left=n,e.top=r,e.width=t.width,e.height=t.height):(e.left=n,e.top=r,e.width=parseInt(t.style.width),e.height=parseInt(t.style.height))},handleTouchesBegin:function(t){for(var e,i,s=n.now(),a=[],o=this._touches,c=this._touchesIntegerDict,u=this._touchesCache,l=0,h=t.length;l0){this._glView._convertTouchesWithScale(a);var d=new cc.Event.EventTouch(a);d._eventCode=cc.Event.EventTouch.BEGAN,r.dispatchEvent(d)}},handleTouchesMove:function(t){for(var e,i,s=n.now(),a=[],o=this._touches,c=this._touchesIntegerDict,u=0,l=t.length;u0){this._glView._convertTouchesWithScale(a);var _=new cc.Event.EventTouch(a);_._eventCode=cc.Event.EventTouch.MOVED,r.dispatchEvent(_)}},handleTouchesEnd:function(t){var e=this.getSetOfTouchesEndOrCancel(t);if(e.length>0){this._glView._convertTouchesWithScale(e);var i=new cc.Event.EventTouch(e);i._eventCode=cc.Event.EventTouch.ENDED,r.dispatchEvent(i)}this._preTouchPool.length=0},handleTouchesCancel:function(t){var e=this.getSetOfTouchesEndOrCancel(t);if(e.length>0){this._glView._convertTouchesWithScale(e);var i=new cc.Event.EventTouch(e);i._eventCode=cc.Event.EventTouch.CANCELED,r.dispatchEvent(i)}this._preTouchPool.length=0},getSetOfTouchesEndOrCancel:function(t){for(var e,i,n,r=[],s=this._touches,a=this._touchesIntegerDict,o=this._touchesCache,c=0,u=t.length;c=0;r--)if(i[r].getID()===n){e=i[r];break}return e||(e=t),e},setPreTouch:function(t){for(var e=!1,i=this._preTouchPool,n=t.getID(),r=i.length-1;r>=0;r--)if(i[r].getID()===n){i[r]=t,e=!0;break}e||(i.length<=50?i.push(t):(i[this._preTouchPoolPointer]=t,this._preTouchPoolPointer=(this._preTouchPoolPointer+1)%50))},getTouchByXY:function(t,e,i){var n=this._preTouchPoint,r=this._glView.convertToLocationInView(t,e,i),s=new cc.Touch(r.x,r.y,0);return s._setPrevPoint(n.x,n.y),n.x=r.x,n.y=r.y,s},getMouseEvent:function(t,e,i){var n=this._prevMousePoint,r=new cc.Event.EventMouse(i);return r._setPrevCursor(n.x,n.y),n.x=t.x,n.y=t.y,this._glView._convertMouseToLocationInView(n,e),r.setLocation(n.x,n.y),r},getPointByEvent:function(t,e){return cc.sys.browserType!==cc.sys.BROWSER_TYPE_QQ&&cc.sys.browserType!==cc.sys.BROWSER_TYPE_UC&&cc.sys.browserType!==cc.sys.BROWSER_TYPE_SAFARI||this._updateCanvasBoundingRect(),null!=t.pageX?{x:t.pageX,y:t.pageY}:(e.left-=document.body.scrollLeft,e.top-=document.body.scrollTop,{x:t.clientX,y:t.clientY})},getTouchesByEvent:function(t,e){for(var i,r,a,o=[],c=this._glView,u=this._preTouchPoint,l=t.changedTouches.length,h=0;hthis._accelInterval&&(this._accelCurTime-=this._accelInterval,r.dispatchEvent(new cc.Event.EventAcceleration(this._acceleration))),this._accelCurTime+=t}};e.exports=cc.internal.inputManager=a}),{"../event-manager":122,"./CCMacro":146,"./CCSys":150}],146:[(function(t,e){"use strict";cc.macro={RAD:Math.PI/180,DEG:180/Math.PI,REPEAT_FOREVER:Number.MAX_VALUE-1,FLT_EPSILON:1.192092896e-7,MIN_ZINDEX:-Math.pow(2,15),MAX_ZINDEX:Math.pow(2,15)-1,ONE:1,ZERO:0,SRC_ALPHA:770,SRC_ALPHA_SATURATE:776,SRC_COLOR:768,DST_ALPHA:772,DST_COLOR:774,ONE_MINUS_SRC_ALPHA:771,ONE_MINUS_SRC_COLOR:769,ONE_MINUS_DST_ALPHA:773,ONE_MINUS_DST_COLOR:775,ONE_MINUS_CONSTANT_ALPHA:32772,ONE_MINUS_CONSTANT_COLOR:32770,ORIENTATION_PORTRAIT:1,ORIENTATION_LANDSCAPE:2,ORIENTATION_AUTO:3,DENSITYDPI_DEVICE:"device-dpi",DENSITYDPI_HIGH:"high-dpi",DENSITYDPI_MEDIUM:"medium-dpi",DENSITYDPI_LOW:"low-dpi",FIX_ARTIFACTS_BY_STRECHING_TEXEL_TMX:!0,DIRECTOR_STATS_POSITION:cc.v2(0,0),ENABLE_STACKABLE_ACTIONS:!0,TOUCH_TIMEOUT:5e3,BATCH_VERTEX_COUNT:2e4,ENABLE_TILEDMAP_CULLING:!0,ENABLE_TRANSPARENT_CANVAS:!1,ENABLE_WEBGL_ANTIALIAS:!1,ENABLE_CULLING:!1,CLEANUP_IMAGE_CACHE:!1,SHOW_MESH_WIREFRAME:!1,SHOW_MESH_NORMAL:!1,ENABLE_MULTI_TOUCH:!0,ALLOW_IMAGE_BITMAP:!cc.sys.isMobile,ENABLE_NATIVE_TTF_RENDERER:!0},Object.defineProperty(cc.macro,"ROTATE_ACTION_CCW",{set:function(t){cc.RotateTo&&cc.RotateBy&&(cc.RotateTo._reverse=cc.RotateBy._reverse=t)}}),cc.macro.SUPPORT_TEXTURE_FORMATS=[".pkm",".pvr",".webp",".jpg",".jpeg",".bmp",".png"],cc.macro.KEY={none:0,back:6,menu:18,backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,pause:19,capslock:20,escape:27,space:32,pageup:33,pagedown:34,end:35,home:36,left:37,up:38,right:39,down:40,select:41,insert:45,Delete:46,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,a:65,b:66,c:67,d:68,e:69,f:70,g:71,h:72,i:73,j:74,k:75,l:76,m:77,n:78,o:79,p:80,q:81,r:82,s:83,t:84,u:85,v:86,w:87,x:88,y:89,z:90,num0:96,num1:97,num2:98,num3:99,num4:100,num5:101,num6:102,num7:103,num8:104,num9:105,"*":106,"+":107,"-":109,numdel:110,"/":111,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,numlock:144,scrolllock:145,";":186,semicolon:186,equal:187,"=":187,",":188,comma:188,dash:189,".":190,period:190,forwardslash:191,grave:192,"[":219,openbracket:219,backslash:220,"]":221,closebracket:221,quote:222,dpadLeft:1e3,dpadRight:1001,dpadUp:1003,dpadDown:1004,dpadCenter:1005},cc.macro.ImageFormat=cc.Enum({JPG:0,PNG:1,TIFF:2,WEBP:3,PVR:4,ETC:5,S3TC:6,ATITC:7,TGA:8,RAWDATA:9,UNKNOWN:10}),cc.macro.BlendFactor=cc.Enum({ONE:1,ZERO:0,SRC_ALPHA:770,SRC_COLOR:768,DST_ALPHA:772,DST_COLOR:774,ONE_MINUS_SRC_ALPHA:771,ONE_MINUS_SRC_COLOR:769,ONE_MINUS_DST_ALPHA:773,ONE_MINUS_DST_COLOR:775}),cc.macro.TextAlignment=cc.Enum({LEFT:0,CENTER:1,RIGHT:2}),cc.macro.VerticalTextAlignment=cc.Enum({TOP:0,CENTER:1,BOTTOM:2}),e.exports=cc.macro}),{}],147:[(function(t,e){"use strict";var i=t("./js"),n=t("./CCClass"),r=1;function s(){this._name="",this._objFlags=0}n.fastDefine("cc.Object",s,{_name:"",_objFlags:0}),i.value(s,"Flags",{Destroyed:r,DontSave:8,EditorOnly:16,Dirty:32,DontDestroy:64,PersistentMask:-4192741,Destroying:128,Deactivating:256,LockedInEditor:512,HideInHierarchy:1024,IsPreloadStarted:8192,IsOnLoadStarted:32768,IsOnLoadCalled:16384,IsOnEnableCalled:2048,IsStartCalled:65536,IsEditorOnEnableCalled:4096,IsPositionLocked:1<<21,IsRotationLocked:1<<17,IsScaleLocked:1<<18,IsAnchorLocked:1<<19,IsSizeLocked:1<<20});var a=[];i.value(s,"_deferredDestroy",(function(){for(var t=a.length,e=0;e0)return void(t.webkitEnterFullscreen&&t.webkitEnterFullscreen());t.setAttribute("x5-video-player-fullscreen","true")}if(this._supportsFullScreen){if(t=t||document.documentElement,e){var n=this._fn.fullscreenchange;this._onfullscreenchange&&document.removeEventListener(n,this._onfullscreenchange),this._onfullscreenchange=e,document.addEventListener(n,e,!1)}if(i){var r=this._fn.fullscreenerror;this._onfullscreenerror&&document.removeEventListener(r,this._onfullscreenerror),this._onfullscreenerror=i,document.addEventListener(r,i,{once:!0})}var s=t[this._fn.requestFullscreen]();void 0===document[this._fn.fullscreenerror]&&window.Promise&&s instanceof Promise&&s.catch((function(){}))}},exitFullScreen:function(t){if(t&&"video"===t.tagName.toLowerCase()){if(cc.sys.os===cc.sys.OS_IOS&&cc.sys.isBrowser)return void(t.webkitExitFullscreen&&t.webkitExitFullscreen());t.setAttribute("x5-video-player-fullscreen","false")}return!this._supportsFullScreen||document[this._fn.exitFullscreen]()},autoFullScreen:function(t,e){t=t||document.body,this._ensureFullScreen(t,e),this.requestFullScreen(t,e)},disableAutoFullScreen:function(t){var e=cc.game.canvas||t,i=this._touchEvent;this._preOnTouch&&(e.removeEventListener(i,this._preOnTouch),this._preOnTouch=null)},_ensureFullScreen:function(t,e){var i=this,n=cc.game.canvas||t,r=this._fn.fullscreenerror,s=this._touchEvent;function a(){i._preOnFullScreenError=null,i._preOnTouch&&n.removeEventListener(s,i._preOnTouch),i._preOnTouch=function(){i._preOnTouch=null,i.requestFullScreen(t,e)},n.addEventListener(s,i._preOnTouch,{once:!0})}this._preOnFullScreenError&&t.removeEventListener(r,this._preOnFullScreenError),this._preOnFullScreenError=a,t.addEventListener(r,a,{once:!0})}},cc.screen.init()}),{}],150:[(function(t,e){"use strict";window._CCSettings&&_CCSettings.platform;var i="undefined"==typeof window?global:window,n=cc&&cc.sys?cc.sys:(function(){cc.sys={};var t,e,n=cc.sys;if(n.LANGUAGE_ENGLISH="en",n.LANGUAGE_CHINESE="zh",n.LANGUAGE_FRENCH="fr",n.LANGUAGE_ITALIAN="it",n.LANGUAGE_GERMAN="de",n.LANGUAGE_SPANISH="es",n.LANGUAGE_DUTCH="du",n.LANGUAGE_RUSSIAN="ru",n.LANGUAGE_KOREAN="ko",n.LANGUAGE_JAPANESE="ja",n.LANGUAGE_HUNGARIAN="hu",n.LANGUAGE_PORTUGUESE="pt",n.LANGUAGE_ARABIC="ar",n.LANGUAGE_NORWEGIAN="no",n.LANGUAGE_POLISH="pl",n.LANGUAGE_TURKISH="tr",n.LANGUAGE_UKRAINIAN="uk",n.LANGUAGE_ROMANIAN="ro",n.LANGUAGE_BULGARIAN="bg",n.LANGUAGE_UNKNOWN="unknown",n.OS_IOS="iOS",n.OS_ANDROID="Android",n.OS_WINDOWS="Windows",n.OS_MARMALADE="Marmalade",n.OS_LINUX="Linux",n.OS_BADA="Bada",n.OS_BLACKBERRY="Blackberry",n.OS_OSX="OS X",n.OS_WP8="WP8",n.OS_WINRT="WINRT",n.OS_UNKNOWN="Unknown",n.UNKNOWN=-1,n.WIN32=0,n.LINUX=1,n.MACOS=2,n.ANDROID=3,n.IPHONE=4,n.IPAD=5,n.BLACKBERRY=6,n.NACL=7,n.EMSCRIPTEN=8,n.TIZEN=9,n.WINRT=10,n.WP8=11,n.MOBILE_BROWSER=100,n.DESKTOP_BROWSER=101,n.EDITOR_PAGE=102,n.EDITOR_CORE=103,n.WECHAT_GAME=104,n.QQ_PLAY=105,n.FB_PLAYABLE_ADS=106,n.BAIDU_GAME=107,n.VIVO_GAME=108,n.OPPO_GAME=109,n.HUAWEI_GAME=110,n.XIAOMI_GAME=111,n.JKW_GAME=112,n.ALIPAY_GAME=113,n.WECHAT_GAME_SUB=114,n.BAIDU_GAME_SUB=115,n.QTT_GAME=116,n.BYTEDANCE_GAME=117,n.BYTEDANCE_GAME_SUB=118,n.LINKSURE=119,n.TAOBAO=120,n.BROWSER_TYPE_WECHAT="wechat",n.BROWSER_TYPE_ANDROID="androidbrowser",n.BROWSER_TYPE_IE="ie",n.BROWSER_TYPE_EDGE="edge",n.BROWSER_TYPE_QQ="qqbrowser",n.BROWSER_TYPE_MOBILE_QQ="mqqbrowser",n.BROWSER_TYPE_UC="ucbrowser",n.BROWSER_TYPE_UCBS="ucbs",n.BROWSER_TYPE_360="360browser",n.BROWSER_TYPE_BAIDU_APP="baiduboxapp",n.BROWSER_TYPE_BAIDU="baidubrowser",n.BROWSER_TYPE_MAXTHON="maxthon",n.BROWSER_TYPE_OPERA="opera",n.BROWSER_TYPE_OUPENG="oupeng",n.BROWSER_TYPE_MIUI="miuibrowser",n.BROWSER_TYPE_FIREFOX="firefox",n.BROWSER_TYPE_SAFARI="safari",n.BROWSER_TYPE_CHROME="chrome",n.BROWSER_TYPE_LIEBAO="liebao",n.BROWSER_TYPE_QZONE="qzone",n.BROWSER_TYPE_SOUGOU="sogou",n.BROWSER_TYPE_HUAWEI="huawei",n.BROWSER_TYPE_UNKNOWN="unknown",n.isNative=!1,n.isBrowser="object"==typeof window&&"object"==typeof document&&!0,n.glExtension=function(t){return!!cc.renderer.device.ext(t)},n.getMaxJointMatrixSize=function(){if(!n._maxJointMatrixSize){var t=cc.game._renderContext,e=Math.floor(t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS)/4)-10;n._maxJointMatrixSize=e<50?0:50}return n._maxJointMatrixSize},n.getSafeAreaRect=function(){var t=cc.view.getVisibleSize();return cc.rect(0,0,t.width,t.height)},i.__globalAdapter&&i.__globalAdapter.adaptSys)i.__globalAdapter.adaptSys(n);else{var r=window,s=r.navigator,a=document,o=a.documentElement,c=s.userAgent.toLowerCase();n.isMobile=/mobile|android|iphone|ipad/.test(c),"undefined"!=typeof FbPlayableAd?n.platform=n.FB_PLAYABLE_ADS:n.platform=n.isMobile?n.MOBILE_BROWSER:n.DESKTOP_BROWSER;var u=s.language;u=u||s.browserLanguage,n.languageCode=u.toLowerCase(),u=u?u.split("-")[0]:n.LANGUAGE_ENGLISH,n.language=u;var l=!1,h=!1,_="",f=0,d=/android\s*(\d+(?:\.\d+)*)/i.exec(c)||/android\s*(\d+(?:\.\d+)*)/i.exec(s.platform);d&&(l=!0,_=d[1]||"",f=parseInt(_)||0),(d=/(iPad|iPhone|iPod).*OS ((\d+_?){2,3})/i.exec(c))?(h=!0,_=d[2]||"",f=parseInt(_)||0):(/(iPhone|iPad|iPod)/.exec(s.platform)||"MacIntel"===s.platform&&s.maxTouchPoints&&s.maxTouchPoints>1)&&(h=!0,_="",f=0);var p=n.OS_UNKNOWN;-1!==s.appVersion.indexOf("Win")?p=n.OS_WINDOWS:h?p=n.OS_IOS:-1!==s.appVersion.indexOf("Mac")?p=n.OS_OSX:-1!==s.appVersion.indexOf("X11")&&-1===s.appVersion.indexOf("Linux")?p=n.OS_UNIX:l?p=n.OS_ANDROID:-1===s.appVersion.indexOf("Linux")&&-1===c.indexOf("ubuntu")||(p=n.OS_LINUX),n.os=p,n.osVersion=_,n.osMainVersion=f,n.browserType=n.BROWSER_TYPE_UNKNOWN,(function(){var t=/mqqbrowser|micromessenger|qqbrowser|sogou|qzone|liebao|maxthon|ucbs|360 aphone|360browser|baiduboxapp|baidubrowser|maxthon|mxbrowser|miuibrowser/i.exec(c)||/qq|ucbrowser|ubrowser|edge|HuaweiBrowser/i.exec(c)||/chrome|safari|firefox|trident|opera|opr\/|oupeng/i.exec(c),e=t?t[0].toLowerCase():n.BROWSER_TYPE_UNKNOWN;"safari"===e&&l?e=n.BROWSER_TYPE_ANDROID:"qq"===e&&c.match(/android.*applewebkit/i)&&(e=n.BROWSER_TYPE_ANDROID);var i={micromessenger:n.BROWSER_TYPE_WECHAT,trident:n.BROWSER_TYPE_IE,edge:n.BROWSER_TYPE_EDGE,"360 aphone":n.BROWSER_TYPE_360,mxbrowser:n.BROWSER_TYPE_MAXTHON,"opr/":n.BROWSER_TYPE_OPERA,ubrowser:n.BROWSER_TYPE_UC,huaweibrowser:n.BROWSER_TYPE_HUAWEI};"qqbrowser"!==e&&"mqqbrowser"!==e||c.match(/wechat|micromessenger/i)&&(e=n.BROWSER_TYPE_WECHAT),n.browserType=i[e]||e})(),n.browserVersion="",(e=c.match(/(mqqbrowser|micromessenger|qqbrowser|sogou|qzone|liebao|maxthon|uc|ucbs|360 aphone|360|baiduboxapp|baidu|maxthon|mxbrowser|miui(?:.hybrid)?)(mobile)?(browser)?\/?([\d.]+)/i))||(e=c.match(/(qq|chrome|safari|firefox|trident|opera|opr\/|oupeng)(mobile)?(browser)?\/?([\d.]+)/i)),n.browserVersion=e?e[4]:"";var v=window.innerWidth||document.documentElement.clientWidth,g=window.innerHeight||document.documentElement.clientHeight,m=window.devicePixelRatio||1;n.windowPixelResolution={width:m*v,height:m*g},n._checkWebGLRenderMode=function(){if(cc.game.renderType!==cc.game.RENDER_TYPE_WEBGL)throw new Error("This feature supports WebGL render mode only.")};var y=document.createElement("canvas");try{var T=n.localStorage=r.localStorage;T.setItem("storage",""),T.removeItem("storage"),T=null}catch(w){var E=function(){cc.warnID(5200)};n.localStorage={getItem:E,setItem:E,removeItem:E,clear:E}}var A=y.toDataURL("image/webp").startsWith("data:image/webp"),C=!!y.getContext("2d"),x=!1;r.WebGLRenderingContext&&(x=!0);var b,S=n.capabilities={canvas:C,opengl:x,webp:A,imageBitmap:!1};"undefined"!=typeof createImageBitmap&&"undefined"!=typeof Blob&&(y.width=y.height=2,createImageBitmap(y,{}).then((function(t){S.imageBitmap=!0,t.close&&t.close()})).catch((function(){}))),(void 0!==o.ontouchstart||void 0!==a.ontouchstart||s.msPointerEnabled)&&(S.touches=!0),void 0!==o.onmouseup&&(S.mouse=!0),void 0!==o.onkeyup&&(S.keyboard=!0),(r.DeviceMotionEvent||r.DeviceOrientationEvent)&&(S.accelerometer=!0),(function(){n.browserVersion;var t=!!(window.AudioContext||window.webkitAudioContext||window.mozAudioContext);b={ONLY_ONE:!1,WEB_AUDIO:t,DELAY_CREATE_CTX:!1},n.os===n.OS_IOS&&(b.USE_LOADER_EVENT="loadedmetadata"),n.browserType===n.BROWSER_TYPE_FIREFOX&&(b.DELAY_CREATE_CTX=!0,b.USE_LOADER_EVENT="canplay"),n.os===n.OS_ANDROID&&n.browserType===n.BROWSER_TYPE_UC&&(b.ONE_SOURCE=!0)})();try{b.WEB_AUDIO&&(b.context=new(window.AudioContext||window.webkitAudioContext||window.mozAudioContext),b.DELAY_CREATE_CTX&&setTimeout((function(){b.context=new(window.AudioContext||window.webkitAudioContext||window.mozAudioContext)}),0))}catch(I){b.WEB_AUDIO=!1,cc.logID(5201)}var R=[];(t=document.createElement("audio")).canPlayType&&(t.canPlayType('audio/ogg; codecs="vorbis"')&&R.push(".ogg"),t.canPlayType("audio/mpeg")&&R.push(".mp3"),t.canPlayType('audio/wav; codecs="1"')&&R.push(".wav"),t.canPlayType("audio/mp4")&&R.push(".mp4"),t.canPlayType("audio/x-m4a")&&R.push(".m4a")),b.format=R,n.__audioSupport=b}return n.NetworkType={NONE:0,LAN:1,WWAN:2},n.getNetworkType=function(){return n.NetworkType.LAN},n.getBatteryLevel=function(){return 1},n.garbageCollect=function(){},n.restartVM=function(){},n.isObjectValid=function(t){return!!t},n.dump=function(){var t="";t+="isMobile : "+this.isMobile+"\r\n",t+="language : "+this.language+"\r\n",t+="browserType : "+this.browserType+"\r\n",t+="browserVersion : "+this.browserVersion+"\r\n",t+="capabilities : "+JSON.stringify(this.capabilities)+"\r\n",t+="os : "+this.os+"\r\n",t+="osVersion : "+this.osVersion+"\r\n",t+="platform : "+this.platform+"\r\n",t+="Using "+(cc.game.renderType===cc.game.RENDER_TYPE_WEBGL?"WEBGL":"CANVAS")+" renderer.\r\n",cc.log(t)},n.openURL=function(t){window.open(t)},n.now=function(){return Date.now?Date.now():+new Date},n})();e.exports=n}),{}],151:[(function(t,e){"use strict";var i=t("../event/event-target"),n=t("../platform/js"),r=t("../renderer");t("../platform/CCClass");var s={init:function(){this.html=document.getElementsByTagName("html")[0]},availWidth:function(t){return t&&t!==this.html?t.clientWidth:window.innerWidth},availHeight:function(t){return t&&t!==this.html?t.clientHeight:window.innerHeight},meta:{width:"device-width"},adaptationType:cc.sys.browserType};switch(cc.sys.os===cc.sys.OS_IOS&&(s.adaptationType=cc.sys.BROWSER_TYPE_SAFARI),s.adaptationType){case cc.sys.BROWSER_TYPE_SAFARI:case cc.sys.BROWSER_TYPE_SOUGOU:case cc.sys.BROWSER_TYPE_UC:s.meta["minimal-ui"]="true",s.availWidth=function(t){return t.clientWidth},s.availHeight=function(t){return t.clientHeight}}var a=null,o=function(){i.call(this);var t=this,e=cc.ContainerStrategy,n=cc.ContentStrategy;s.init(this),t._frameSize=cc.size(0,0),t._designResolutionSize=cc.size(0,0),t._originalDesignResolutionSize=cc.size(0,0),t._scaleX=1,t._scaleY=1,t._viewportRect=cc.rect(0,0,0,0),t._visibleRect=cc.rect(0,0,0,0),t._autoFullScreen=!1,t._devicePixelRatio=1,t._maxPixelRatio=2,t._retinaEnabled=!1,t._resizeCallback=null,t._resizing=!1,t._resizeWithBrowserSize=!1,t._orientationChanging=!0,t._isRotated=!1,t._orientation=cc.macro.ORIENTATION_AUTO,t._isAdjustViewport=!0,t._antiAliasEnabled=!1,t._resolutionPolicy=null,t._rpExactFit=new cc.ResolutionPolicy(e.EQUAL_TO_FRAME,n.EXACT_FIT),t._rpShowAll=new cc.ResolutionPolicy(e.EQUAL_TO_FRAME,n.SHOW_ALL),t._rpNoBorder=new cc.ResolutionPolicy(e.EQUAL_TO_FRAME,n.NO_BORDER),t._rpFixedHeight=new cc.ResolutionPolicy(e.EQUAL_TO_FRAME,n.FIXED_HEIGHT),t._rpFixedWidth=new cc.ResolutionPolicy(e.EQUAL_TO_FRAME,n.FIXED_WIDTH),cc.game.once(cc.game.EVENT_ENGINE_INITED,this.init,this)};cc.js.extend(o,i),cc.js.mixin(o.prototype,{init:function(){this._initFrameSize();var t=cc.game.canvas.width,e=cc.game.canvas.height;this._designResolutionSize.width=t,this._designResolutionSize.height=e,this._originalDesignResolutionSize.width=t,this._originalDesignResolutionSize.height=e,this._viewportRect.width=t,this._viewportRect.height=e,this._visibleRect.width=t,this._visibleRect.height=e,cc.winSize.width=this._visibleRect.width,cc.winSize.height=this._visibleRect.height,cc.visibleRect&&cc.visibleRect.init(this._visibleRect)},_resizeEvent:function(t){var e;e=this.setDesignResolutionSize?this:cc.view;var i=cc.sys;if(i.browserType!==i.BROWSER_TYPE_UC||i.os!==i.OS_IOS){var n=e._frameSize.width,r=e._frameSize.height,s=e._isRotated;if(cc.sys.isMobile){var a=cc.game.container.style,o=a.margin;a.margin="0",a.display="none",e._initFrameSize(),a.margin=o,a.display="block"}else e._initFrameSize();if(!0===t||e._isRotated!==s||e._frameSize.width!==n||e._frameSize.height!==r){var c=e._originalDesignResolutionSize.width,u=e._originalDesignResolutionSize.height;e._resizing=!0,c>0&&e.setDesignResolutionSize(c,u,e._resolutionPolicy),e._resizing=!1,e.emit("canvas-resize"),e._resizeCallback&&e._resizeCallback.call()}}else setTimeout((function(){e._resizeEvent(t)}),0)},_orientationChange:function(){cc.view._orientationChanging=!0,cc.view._resizeEvent(),cc.sys.browserType===cc.sys.BROWSER_TYPE_SAFARI&&cc.sys.isMobile&&setTimeout((function(){window.innerHeight>window.innerWidth&&window.scrollTo(0,1)}),500)},_resize:function(){cc.view._resizeEvent(!1)},resizeWithBrowserSize:function(t){t?this._resizeWithBrowserSize||(this._resizeWithBrowserSize=!0,window.addEventListener("resize",this._resize),window.addEventListener("orientationchange",this._orientationChange)):this._resizeWithBrowserSize&&(this._resizeWithBrowserSize=!1,window.removeEventListener("resize",this._resize),window.removeEventListener("orientationchange",this._orientationChange))},setResizeCallback:function(t){"function"!=typeof t&&null!=t||(this._resizeCallback=t)},setOrientation:function(t){if((t&=cc.macro.ORIENTATION_AUTO)&&this._orientation!==t){this._orientation=t;var e=this._originalDesignResolutionSize.width,i=this._originalDesignResolutionSize.height;this.setDesignResolutionSize(e,i,this._resolutionPolicy)}},_initFrameSize:function(){var t=this._frameSize,e=s.availWidth(cc.game.frame),i=s.availHeight(cc.game.frame),n=e>=i;!cc.sys.isMobile||n&&this._orientation&cc.macro.ORIENTATION_LANDSCAPE||!n&&this._orientation&cc.macro.ORIENTATION_PORTRAIT?(t.width=e,t.height=i,cc.game.container.style["-webkit-transform"]="rotate(0deg)",cc.game.container.style.transform="rotate(0deg)",this._isRotated=!1):(t.width=i,t.height=e,cc.game.container.style["-webkit-transform"]="rotate(90deg)",cc.game.container.style.transform="rotate(90deg)",cc.game.container.style["-webkit-transform-origin"]="0px 0px 0px",cc.game.container.style.transformOrigin="0px 0px 0px",this._isRotated=!0),this._orientationChanging&&setTimeout((function(){cc.view._orientationChanging=!1}),1e3)},_setViewportMeta:function(t,e){var i=document.getElementById("cocosMetaElement");i&&e&&document.head.removeChild(i);var n,r,s,a=document.getElementsByName("viewport"),o=a?a[0]:null;for(r in n=o?o.content:"",(i=i||document.createElement("meta")).id="cocosMetaElement",i.name="viewport",i.content="",t)-1==n.indexOf(r)?n+=","+r+"="+t[r]:e&&(s=new RegExp(r+"s*=s*[^,]+"),n=n.replace(s,r+"="+t[r]));/^,/.test(n)&&(n=n.substr(1)),i.content=n,o&&(o.content=n),document.head.appendChild(i)},_adjustViewportMeta:function(){this._isAdjustViewport&&(this._setViewportMeta(s.meta,!1),this._isAdjustViewport=!1)},adjustViewportMeta:function(t){this._isAdjustViewport=t},enableRetina:function(t){this._retinaEnabled=!!t},isRetinaEnabled:function(){return this._retinaEnabled},enableAntiAlias:function(t){if(cc.warnID(9200),this._antiAliasEnabled!==t)if(this._antiAliasEnabled=t,cc.game.renderType===cc.game.RENDER_TYPE_WEBGL)cc.assetManager.assets.forEach((function(e){if(e instanceof cc.Texture2D){var i=cc.Texture2D.Filter;t?e.setFilters(i.LINEAR,i.LINEAR):e.setFilters(i.NEAREST,i.NEAREST)}}));else if(cc.game.renderType===cc.game.RENDER_TYPE_CANVAS){var e=cc.game.canvas.getContext("2d");e.imageSmoothingEnabled=t,e.mozImageSmoothingEnabled=t}},isAntiAliasEnabled:function(){return this._antiAliasEnabled},enableAutoFullScreen:function(t){t&&t!==this._autoFullScreen&&cc.sys.isMobile?(this._autoFullScreen=!0,cc.screen.autoFullScreen(cc.game.frame)):(this._autoFullScreen=!1,cc.screen.disableAutoFullScreen(cc.game.frame))},isAutoFullScreenEnabled:function(){return this._autoFullScreen},setCanvasSize:function(t,e){var i=cc.game.canvas,n=cc.game.container;i.width=t*this._devicePixelRatio,i.height=e*this._devicePixelRatio,i.style.width=t+"px",i.style.height=e+"px",n.style.width=t+"px",n.style.height=e+"px",this._resizeEvent()},getCanvasSize:function(){return cc.size(cc.game.canvas.width,cc.game.canvas.height)},getFrameSize:function(){return cc.size(this._frameSize.width,this._frameSize.height)},setFrameSize:function(t,e){this._frameSize.width=t,this._frameSize.height=e,cc.game.frame.style.width=t+"px",cc.game.frame.style.height=e+"px",this._resizeEvent(!0)},getVisibleSize:function(){return cc.size(this._visibleRect.width,this._visibleRect.height)},getVisibleSizeInPixel:function(){return cc.size(this._visibleRect.width*this._scaleX,this._visibleRect.height*this._scaleY)},getVisibleOrigin:function(){return cc.v2(this._visibleRect.x,this._visibleRect.y)},getVisibleOriginInPixel:function(){return cc.v2(this._visibleRect.x*this._scaleX,this._visibleRect.y*this._scaleY)},getResolutionPolicy:function(){return this._resolutionPolicy},setResolutionPolicy:function(t){var e=this;if(t instanceof cc.ResolutionPolicy)e._resolutionPolicy=t;else{var i=cc.ResolutionPolicy;t===i.EXACT_FIT&&(e._resolutionPolicy=e._rpExactFit),t===i.SHOW_ALL&&(e._resolutionPolicy=e._rpShowAll),t===i.NO_BORDER&&(e._resolutionPolicy=e._rpNoBorder),t===i.FIXED_HEIGHT&&(e._resolutionPolicy=e._rpFixedHeight),t===i.FIXED_WIDTH&&(e._resolutionPolicy=e._rpFixedWidth)}},setDesignResolutionSize:function(t,e,i){if(t>0&&e>0){this.setResolutionPolicy(i);var n=this._resolutionPolicy;if(n&&n.preApply(this),cc.sys.isMobile&&this._adjustViewportMeta(),this._orientationChanging=!0,this._resizing||this._initFrameSize(),n){this._originalDesignResolutionSize.width=this._designResolutionSize.width=t,this._originalDesignResolutionSize.height=this._designResolutionSize.height=e;var s=n.apply(this,this._designResolutionSize);if(s.scale&&2===s.scale.length&&(this._scaleX=s.scale[0],this._scaleY=s.scale[1]),s.viewport){var a=this._viewportRect,o=this._visibleRect,c=s.viewport;a.x=c.x,a.y=c.y,a.width=c.width,a.height=c.height,o.x=0,o.y=0,o.width=c.width/this._scaleX,o.height=c.height/this._scaleY}n.postApply(this),cc.winSize.width=this._visibleRect.width,cc.winSize.height=this._visibleRect.height,cc.visibleRect&&cc.visibleRect.init(this._visibleRect),r.updateCameraViewport(),cc.internal.inputManager._updateCanvasBoundingRect(),this.emit("design-resolution-changed")}else cc.logID(2201)}else cc.errorID(2200)},getDesignResolutionSize:function(){return cc.size(this._designResolutionSize.width,this._designResolutionSize.height)},setRealPixelResolution:function(t,e,i){this._setViewportMeta({width:t},!0),document.documentElement.style.width=t+"px",document.body.style.width=t+"px",document.body.style.left="0px",document.body.style.top="0px",this.setDesignResolutionSize(t,e,i)},setViewportInPoints:function(t,e,i,n){var r=this._scaleX,s=this._scaleY;cc.game._renderContext.viewport(t*r+this._viewportRect.x,e*s+this._viewportRect.y,i*r,n*s)},setScissorInPoints:function(t,e,i,n){var r=this._scaleX,s=this._scaleY,o=Math.ceil(t*r+this._viewportRect.x),c=Math.ceil(e*s+this._viewportRect.y),u=Math.ceil(i*r),l=Math.ceil(n*s),h=cc.game._renderContext;if(!a){var _=h.getParameter(h.SCISSOR_BOX);a=cc.rect(_[0],_[1],_[2],_[3])}a.x===o&&a.y===c&&a.width===u&&a.height===l||(a.x=o,a.y=c,a.width=u,a.height=l,h.scissor(o,c,u,l))},isScissorEnabled:function(){return cc.game._renderContext.isEnabled(gl.SCISSOR_TEST)},getScissorRect:function(){if(!a){var t=gl.getParameter(gl.SCISSOR_BOX);a=cc.rect(t[0],t[1],t[2],t[3])}var e=1/this._scaleX,i=1/this._scaleY;return cc.rect((a.x-this._viewportRect.x)*e,(a.y-this._viewportRect.y)*i,a.width*e,a.height*i)},getViewportRect:function(){return this._viewportRect},getScaleX:function(){return this._scaleX},getScaleY:function(){return this._scaleY},getDevicePixelRatio:function(){return this._devicePixelRatio},convertToLocationInView:function(t,e,i,n){var r=n||cc.v2(),s=i.adjustedLeft?i.adjustedLeft:i.left,a=i.adjustedTop?i.adjustedTop:i.top,o=this._devicePixelRatio*(t-s),c=this._devicePixelRatio*(a+i.height-e);return this._isRotated?(r.x=cc.game.canvas.width-c,r.y=o):(r.x=o,r.y=c),r},_convertMouseToLocationInView:function(t,e){var i=this._viewportRect;t.x=(this._devicePixelRatio*(t.x-e.left)-i.x)/this._scaleX,t.y=(this._devicePixelRatio*(e.top+e.height-t.y)-i.y)/this._scaleY},_convertPointWithScale:function(t){var e=this._viewportRect;t.x=(t.x-e.x)/this._scaleX,t.y=(t.y-e.y)/this._scaleY},_convertTouchesWithScale:function(t){for(var e,i,n,r=this._viewportRect,s=this._scaleX,a=this._scaleY,o=0;o=0;n--){var s=i[n];s.hasOwnProperty("__attrs__")&&s.__attrs__||r(s,(e=i[n+1])&&e.__attrs__)}return r(t,(e=i[0])&&e.__attrs__),t.__attrs__}function a(t){return t.hasOwnProperty("__attrs__")&&t.__attrs__||s(t)}function o(t,e){this.name=t,this.default=e}o.prototype.toString=function(){return this.name},cc.Integer=new o("Integer",0),cc.Float=new o("Float",0),cc.Boolean=new o("Boolean",!1),cc.String=new o("String",""),e.exports={PrimitiveType:o,attr:function(t,e){var i=a(t),r=e+n,s={};for(var o in i)o.startsWith(r)&&(s[o.slice(r.length)]=i[o]);return s},getClassAttrs:a,setClassAttr:function(t,e,i,r){a(t)[e+n+i]=r},DELIMETER:n,getTypeChecker_ET:!1,getObjTypeChecker_ET:!1,ScriptUuid:{}}}),{"./CCClass":141,"./js":162,"./utils":165}],154:[(function(t,e){"use strict";var i=t("./js"),n=i.array.fastRemoveAt;function r(){}function s(){this.callback=r,this.target=void 0,this.once=!1}s.prototype.set=function(t,e,i){this.callback=t,this.target=e,this.once=!!i};var a=new i.Pool(function(t){return t.callback=r,t.target=void 0,t.once=!1,!0},32);function o(){this.callbackInfos=[],this.isInvoking=!1,this.containCanceled=!1}a.get=function(){return this._get()||new s};var c=o.prototype;c.removeByCallback=function(t){for(var e=0;e=0;--t)this.callbackInfos[t]||n(this.callbackInfos,t);this.containCanceled=!1},c.clear=function(){this.cancelAll(),this.callbackInfos.length=0,this.isInvoking=!1,this.containCanceled=!1};var u=new i.Pool(function(t){return t.callbackInfos=[],t.isInvoking=!1,t.containCanceled=!1,!0},16);function l(){this._callbackTable=i.createMap(!0)}u.get=function(){return this._get()||new o},(c=l.prototype).on=function(t,e,i,n){var r=this._callbackTable[t];r||(r=this._callbackTable[t]=u.get());var s=a.get();s.set(e,i,n),r.callbackInfos.push(s)},c.hasEventListener=function(t,e,i){var n=this._callbackTable[t];if(!n)return!1;var r=n.callbackInfos;if(!e){if(n.isInvoking){for(var s=0;s0}for(var a=0;a=0?a[i[c]]=o:a[~c]=o}for(;r=0?u[i[h]]=l:u[~h]=l}}function C(t,e){for(var i=t[4][e[0]],n=i[0],r=new(0,n[0]),s=n[1],a=n[2],o=i[i.length-1],c=1;c=0?e[i]=t[5][n]:t[7][3*~n]=e}function S(t){return function(e,i,n,r){i[n]=r;for(var s=0;s=0){var h=o[u];e[a]=x(t,h,l)}else(0,I[u=~u])(t,e,a,l)}return r}function O(t,e){return t||F.reportMissingClass(e),Object}function D(t,e,i,n,r,s){var a=t(e);if(!a){if(r)return void(i[n]=(function(e,i,n){return function(){var r=t(n)||O(s,n);return e[i]=r,new r}})(i,n,e));a=O(s,e)}i[n]=a}function L(t,e,i){for(var r=i||n.default._getClassById,s=t[3],a=0;a=0?i[u]:~u,s[o]=u);var l=a[o];"number"==typeof l&&(a[o]=n[l])}}function F(t,e,i){"string"==typeof t&&(t=JSON.parse(t));var n=!e;(e=e||E.pool.get()).init(t),i=i||{};var r=t[0],s=!1;if("object"==typeof r&&(s=r.preprocessed,r=r.version),r0&&(i=_+this.globalVariables.join(",")+";");var n=c.flattenCodeArray(["return (function(R){",i||[],this.codeArray,"return o;","})"]);this.result=Function("O","F",n)(this.objs,this.funcs);for(var r=0,s=this.objsToClear_iN$t.length;r1)t.push(d+"="+this._targetExp+";"),e=d;else{if(1!==this._exps.length)return;e=this._targetExp}for(var i=0;i=0&&(_(t,i),!0)}function d(t,e){void 0===e&&(e=t,t=null),this.get=null,this.count=0,this._pool=new Array(e),this._cleanup=t}s.formatStr=function(){var t=arguments.length;if(0===t)return"";var e=arguments[0];if(1===t)return""+e;var i="string"==typeof e&&l.test(e);if(i)for(var n=1;n=0&&(t[i]=t[t.length-1],--t.length)},removeAt:_,fastRemoveAt:function(t,e){var i=t.length;e<0||e>=i||(t[e]=t[i-1],t.length=i-1)},contains:function(t,e){return t.indexOf(e)>=0},verifyType:function(t,e){if(t&&t.length>0)for(var i=0;i0){--this.count;var t=this._pool[this.count];return this._pool[this.count]=null,t}return null},d.prototype.put=function(t){var e=this._pool;if(this.count=0&&(this._pool.length=t,this.count>t&&(this.count=t))},s.Pool=d,cc.js=s,e.exports=s}),{"../utils/mutable-forward-iterator":215,"./id-generater":158}],163:[(function(t,e,i){"use strict";var n=t("./js"),r=t("./attribute"),s={default:{},serializable:{},editorOnly:{},formerlySerializedAs:{}};function a(t,e,i,n){if(!t.get&&!t.set&&t.hasOwnProperty("default")){var r="_N$"+e;t.get=function(){return this[r]},t.set=function(t){var e=this[r];this[r]=t,i.call(this,e)};var a={};for(var o in n[r]=a,s){var c=s[o];t.hasOwnProperty(o)&&(a[o]=t[o],c.canUsedInGet||delete t[o])}}}function o(t,e,i,n){if(Array.isArray(e)){if(!(e.length>0))return cc.errorID(5508,i,n);t.type=e=e[0]}"function"==typeof e&&(e===String?t.type=cc.String:e===Boolean?t.type=cc.Boolean:e===Number&&(t.type=cc.Float))}function c(t,e,i){var n=t?{_short:!0}:{_short:!0,default:e};return i&&(n.type=i),n}i.getFullFormOfProperty=function(t,e){return t&&t.constructor===Object?null:Array.isArray(t)&&t.length>0?c(e,[],t):"function"==typeof t?c(e,n.isChildClassOf(t,cc.ValueType)?new t:null,t):t instanceof r.PrimitiveType?c(e,t.default):c(e,t)},i.preprocessAttrs=function(t,e){for(var n in t){var r=t[n],s=i.getFullFormOfProperty(r,!1);if(s&&(r=t[n]=s),r){var c=r.notify;c&&a(r,n,c,t),"type"in r&&o(r,r.type,e,n)}}},i.validateMethodWithProps=function(t){return"function"==typeof t||null===t}}),{"./CCClass":141,"./attribute":153,"./js":162}],164:[(function(){"use strict";var t=[];cc._RF={push:function(e,i,n){void 0===n&&(n=i,i=""),t.push({uuid:i,script:n,module:e,exports:e.exports,beh:null})},pop:function(){var e=t.pop(),i=e.module,n=i.exports;if(n===e.exports){for(var r in n)return;i.exports=n=e.cls}},peek:function(){return t[t.length-1]}}}),{}],165:[(function(t,e){"use strict";t("./js"),e.exports={contains:function(t,e){if("function"==typeof t.contains)return t.contains(e);if("function"==typeof t.compareDocumentPosition)return!!(16&t.compareDocumentPosition(e));var i=e.parentNode;if(i)do{if(i===t)return!0;i=i.parentNode}while(null!==i);return!1},isDomNode:"object"==typeof window&&("function"==typeof Node?function(t){return t instanceof Node}:function(t){return t&&"object"==typeof t&&"number"==typeof t.nodeType&&"string"==typeof t.nodeName}),callInNextTick:function(t,e,i){t&&setTimeout((function(){t(e,i)}),0)}}}),{"./js":162}],166:[(function(t){"use strict";t("./platform/js"),t("./value-types"),t("./utils"),t("./platform/CCInputManager"),t("./platform/CCInputExtension"),t("./event"),t("./platform/CCSys"),t("./platform/CCMacro"),t("./asset-manager"),t("./CCDirector"),t("./renderer"),t("./platform/CCView"),t("./platform/CCScreen"),t("./CCScheduler"),t("./event-manager")}),{"./CCDirector":23,"./CCScheduler":28,"./asset-manager":46,"./event":126,"./event-manager":122,"./platform/CCInputExtension":144,"./platform/CCInputManager":145,"./platform/CCMacro":146,"./platform/CCScreen":149,"./platform/CCSys":150,"./platform/CCView":151,"./platform/js":162,"./renderer":172,"./utils":213,"./value-types":229}],167:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n=a(t("./assembler")),r=a(t("./utils/dynamic-atlas/manager")),s=a(t("./webgl/render-data"));function a(t){return t&&t.__esModule?t:{default:t}}function o(t,e){for(var i=0;i>2,c=s._vData;n.length+o>c.length?c.set(n.subarray(0,c.length-o),o):c.set(n,o);for(var u=s._iData,l=a.indiceOffset,h=a.vertexOffset,_=0,f=r.length;_this.maxSize||(this._clean(t),i[e].push(t),this.count++)}},r.get=function(t){var e;if(this.enabled){var i=this._pool,n=o(t);e=i[n]&&i[n].pop()}return e?this.count--:e=new t,e},r.clear=function(){this._pool={},this.count=0},r._clean=function(t){t._renderComp=null},n}(r.default));r.default.register("assembler",c);var u=c;i.default=u,e.exports=i.default}),{"../utils/pool":216}],169:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n,r=t("./webgl/vertex-format"),s=(n=t("./assembler-pool"))&&n.__esModule?n:{default:n},a=(function(){function t(){this._extendNative&&this._extendNative()}var e=t.prototype;return e.init=function(t){this._renderComp=t},e.updateRenderData=function(){},e.fillBuffers=function(){},e.getVfmt=function(){return r.vfmtPosUvColor},t})();i.default=a,a.register=function(t,e){t.__assembler__=e},a.init=function(t){for(var e=t.constructor,i=e.__assembler__;!i;){if(!(e=e.$super))return void cc.warn("Can not find assembler for render component : ["+cc.js.getClassName(t)+"]");i=e.__assembler__}if(i.getConstructor&&(i=i.getConstructor(t)),!t._assembler||t._assembler.constructor!==i){var n=s.default.get(i);n.init(t),t._assembler=n}},cc.Assembler=a,e.exports=i.default}),{"./assembler-pool":168,"./webgl/vertex-format":204}],170:[(function(t,e){"use strict";var i=function(t){var e;try{e=t.getContext("2d")}catch(i){return void console.error(i)}this._canvas=t,this._ctx=e,this._caps={},this._stats={drawcalls:0},this._vx=this._vy=this._vw=this._vh=0,this._sx=this._sy=this._sw=this._sh=0};i.prototype._restoreTexture=function(){},i.prototype.setViewport=function(t,e,i,n){this._vx===t&&this._vy===e&&this._vw===i&&this._vh===n||(this._vx=t,this._vy=e,this._vw=i,this._vh=n)},i.prototype.setScissor=function(t,e,i,n){this._sx===t&&this._sy===e&&this._sw===i&&this._sh===n||(this._sx=t,this._sy=e,this._sw=i,this._sh=n)},i.prototype.clear=function(t){var e=this._ctx;e.clearRect(this._vx,this._vy,this._vw,this._vh),!t||0===t[0]&&0===t[1]&&0===t[2]||(e.fillStyle="rgb("+t[0]+","+t[1]+","+t[2]+")",e.globalAlpha=t[3],e.fillRect(this._vx,this._vy,this._vw,this._vh))},i.prototype.resetDrawCalls=function(){this._stats.drawcalls=0},i.prototype.getDrawCalls=function(){return this._stats.drawcalls},e.exports=i}),{}],171:[(function(t,e){"use strict";var i=function(t,e){this._device=t,this._width=4,this._height=4,this._image=null,e&&(void 0!==e.width&&(this._width=e.width),void 0!==e.height&&(this._height=e.height),this.updateImage(e))};i.prototype.update=function(t){this.updateImage(t)},i.prototype.updateImage=function(t){if(t.images&&t.images[0]){var e=t.images[0];e&&e!==this._image&&(this._image=e)}},i.prototype.destroy=function(){this._image=null},e.exports=i}),{}],172:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n=a(t("../../renderer/gfx")),r=a(t("../../renderer/core/input-assembler")),s=a(t("../../renderer/core/pass"));function a(t){return t&&t.__esModule?t:{default:t}}var o=cc.renderer={Texture2D:null,InputAssembler:r.default,Pass:s.default,renderEngine:null,canvas:null,device:null,scene:null,drawCalls:0,_handle:null,_cameraNode:null,_camera:null,_forward:null,_flow:null,initWebGL:function(e,i){t("./webgl/assemblers");var r=t("./webgl/model-batcher");this.Texture2D=n.default.Texture2D,this.canvas=e,this._flow=cc.RenderFlow;var s=t("../../renderer/scene/scene"),a=t("../../renderer/renderers/forward-renderer");this.device=new n.default.Device(e,i),this.scene=new s;var o,c=(o=this.device,{defaultTexture:new n.default.Texture2D(o,{images:[],width:128,height:128,wrapS:n.default.WRAP_REPEAT,wrapT:n.default.WRAP_REPEAT,format:n.default.TEXTURE_FMT_RGB8,genMipmaps:!1}),programTemplates:[],programChunks:{}});this._forward=new a(this.device,c),this._handle=new r(this.device,this.scene),this._flow.init(this._handle,this._forward)},initCanvas:function(e){var i=t("./canvas"),n=t("./canvas/Texture2D"),r=t("./canvas/Device");this.Device=r,this.Texture2D=n,this.canvas=e,this.device=new r(e),this._camera={a:1,b:0,c:0,d:1,tx:0,ty:0},this._handle=new i.RenderComponentHandle(this.device,this._camera),this._forward=new i.ForwardRenderer,this._flow=cc.RenderFlow,this._flow.init(this._handle,this._forward)},updateCameraViewport:function(){if(cc.director){var t=cc.director.getScene();t&&t.setScale(1,1,1)}if(cc.game.renderType===cc.game.RENDER_TYPE_CANVAS){var e=cc.view.getViewportRect();this.device.setViewport(e.x,e.y,e.width,e.height),this._camera.a=cc.view.getScaleX(),this._camera.d=cc.view.getScaleY(),this._camera.tx=e.x,this._camera.ty=e.y+e.height}},render:function(t,e){this.device.resetDrawCalls(),t&&(this._flow.render(t,e),this.drawCalls=this.device.getDrawCalls())},clear:function(){this._handle.reset(),this._forward.clear()}};i.default=o,e.exports=i.default}),{"../../renderer/core/input-assembler":246,"../../renderer/core/pass":247,"../../renderer/gfx":256,"../../renderer/renderers/forward-renderer":275,"../../renderer/scene/scene":278,"./canvas":void 0,"./canvas/Device":170,"./canvas/Texture2D":171,"./webgl/assemblers":184,"./webgl/model-batcher":200}],173:[(function(t,e){"use strict";var i,n,r=0,s=1<0;)i&t&&(e=C(i,e)),i>>=1;return e}function b(t){var e=t._renderFlag;(A[e]=x(e))._func(t)}y.flows=A,y.createFlow=C;var S=[];y.registerValidate=function(t){t._inValidateList||(S.push(t),t._inValidateList=!0)},y.validateRenderers=function(){for(var t=0,e=S.length;tthis._width&&(this._x=n,this._y=this._nexty),this._y+c+n>this._nexty&&(this._nexty=this._y+c+n),this._nexty>this._height)return null;cc.dynamicAtlasManager.textureBleeding&&((o<=8||c<=8)&&(this._texture.drawTextureAt(i,this._x-1,this._y-1),this._texture.drawTextureAt(i,this._x-1,this._y+1),this._texture.drawTextureAt(i,this._x+1,this._y-1),this._texture.drawTextureAt(i,this._x+1,this._y+1)),this._texture.drawTextureAt(i,this._x-1,this._y),this._texture.drawTextureAt(i,this._x+1,this._y),this._texture.drawTextureAt(i,this._x,this._y-1),this._texture.drawTextureAt(i,this._x,this._y+1)),this._texture.drawTextureAt(i,this._x,this._y),this._innerTextureInfos[i._id]={x:this._x,y:this._y,texture:i},this._count++,s+=this._x,a+=this._y,this._x+=o+n,this._dirty=!0}var u={x:s,y:a,texture:this._texture};return this._innerSpriteFrames.push(t),u},update:function(){this._dirty&&(this._texture.update(),this._dirty=!1)},deleteInnerTexture:function(t){t&&this._innerTextureInfos[t._id]&&(delete this._innerTextureInfos[t._id],this._count--)},isEmpty:function(){return this._count<=0},reset:function(){this._x=n,this._y=n,this._nexty=n;for(var t=this._innerSpriteFrames,e=0,i=t.length;e=0;e--)n[e].deleteInnerTexture(t),n[e].isEmpty()&&(n[e].destroy(),n.splice(e,1),r--)},showDebug:function(t){if(t){if(!u||!u.isValid){var e=cc.visibleRect.width,i=cc.visibleRect.height;(u=new cc.Node("DYNAMIC_ATLAS_DEBUG_NODE")).width=e,u.height=i,u.x=e/2,u.y=i/2,u.zIndex=cc.macro.MAX_ZINDEX,u.parent=cc.director.getScene(),u.groupIndex=cc.Node.BuiltinGroupIndex.DEBUG,cc.Camera._setupDebugCamera();var s=u.addComponent(cc.ScrollView),o=new cc.Node("CONTENT"),c=o.addComponent(cc.Layout);c.type=cc.Layout.Type.VERTICAL,c.resizeMode=cc.Layout.ResizeMode.CONTAINER,o.parent=u,o.width=a,o.anchorY=1,o.x=a,s.content=o;for(var l=0;l<=r;l++){var h=new cc.Node("ATLAS"),_=(n[l]._texture,new cc.SpriteFrame);_.setTexture(n[l]._texture),h.addComponent(cc.Sprite).spriteFrame=_,h.parent=o}}return u}u&&(u.parent=null,u=null)},update:function(){if(this.enabled)for(var t=0;t<=r;t++)n[t].update()}};e.exports=cc.dynamicAtlasManager=f}),{"./atlas":174}],176:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n,r=(n=t("../../assembler-2d"))&&n.__esModule?n:{default:n};function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var a=t("../../../utils/text-utils"),o=t("../../../platform/CCMacro"),c=t("../../../components/CCLabel").Overflow,u=t("../utils").shareLabelInfo,l=function(){this.char="",this.valid=!0,this.x=0,this.y=0,this.line=0,this.hash=""},h=cc.rect(),_=null,f=[],d=[],p=[],v=[],g=null,m=0,y=0,T=0,E=0,A=0,C=1,x=null,b=cc.size(),S="",R=0,w=0,I=0,M=0,O=0,D=0,L=0,P=!1,N=0,F=0,B=0,U=(function(t){var e,i;function n(){return t.apply(this,arguments)||this}i=t,(e=n).prototype=Object.create(i.prototype),e.prototype.constructor=e,s(e,i);var r=n.prototype;return r.updateRenderData=function(t){t._vertsDirty&&_!==t&&(_=t,this._reserveQuads(t,t.string.toString().length),this._updateFontFamily(t),this._updateProperties(t),this._updateLabelInfo(t),this._updateContent(),this.updateWorldVerts(t),_._actualFontSize=R,_.node.setContentSize(b),_._vertsDirty=!1,_=null,this._resetProperties())},r._updateFontScale=function(){C=R/w},r._updateFontFamily=function(t){var e=t.font;x=e.spriteFrame,g=e._fntConfig,u.fontAtlas=e._fontDefDictionary,this.packToDynamicAtlas(t,x)},r._updateLabelInfo=function(){u.hash="",u.margin=0},r._updateProperties=function(t){S=t.string.toString(),R=t.fontSize,w=g?g.fontSize:t.fontSize,I=t.horizontalAlign,M=t.verticalAlign,O=t.spacingX,L=t.overflow,D=t._lineHeight,b.width=t.node.width,b.height=t.node.height,L===c.NONE?(P=!1,b.width+=2*u.margin,b.height+=2*u.margin):L===c.RESIZE_HEIGHT?(P=!0,b.height+=2*u.margin):P=t.enableWrapText,u.lineHeight=D,u.fontSize=R,this._setupBMFontOverflowMetrics()},r._resetProperties=function(){g=null,x=null,u.hash="",u.margin=0},r._updateContent=function(){this._updateFontScale(),this._computeHorizontalKerningForText(),this._alignText()},r._computeHorizontalKerningForText=function(){var t,e=S,i=e.length,n=f;if(g&&(t=g.kerningDict),t&&!cc.js.isEmptyObject(t))for(var r=-1,s=0;s0&&n>0&&V+_.w*C>B&&!a.isUnicodeSpace(T)){p.push(o),o=0,i++,n=0,r-=D*this._getFontScale()+0,U=!0;break}d.x=V,d.y=r-_.offsetY*C+u.margin,this._recordLetterInfo(d,T,z,i),z+1d.y-_.h*C&&(w=d.y-_.h*C)}else{this._recordPlaceholderInfo(z,T);var W="";g&&(W=g.atlasName),console.log("Can't find letter definition in texture atlas "+W+" for letter:"+T)}else this._recordPlaceholderInfo(z,T)}U||(n=M,lw&&(h=w),s<(o=I)&&(s=o),v+=x)}else p.push(o),o=0,i++,n=0,r-=D*this._getFontScale()+0,this._recordPlaceholderInfo(v,T),v++}return p.push(o),y=(m=i+1)*D*this._getFontScale(),m>1&&(y+=0*(m-1)),b.width=N,b.height=F,N<=0&&(b.width=parseFloat(s.toFixed(2))+2*u.margin),F<=0&&(b.height=parseFloat(y.toFixed(2))+2*u.margin),E=b.height,A=0,L!==c.CLAMP&&(l>0&&(E=b.height+l),h<-y&&(A=y+h)),!0},r._getFirstCharLen=function(){return 1},r._getFontScale=function(){return L===c.SHRINK?C:1},r._getFirstWordLen=function(t,e,i){var n=t.charAt(e);if(a.isUnicodeCJK(n)||"\n"===n||a.isUnicodeSpace(n))return 1;var r=1,s=u.fontAtlas.getLetterDefinitionForChar(n,u);if(!s)return r;for(var o=s.xAdvance*C+O,c=e+1;cB&&!a.isUnicodeSpace(n)&&B>0)return r;if(o+=s.xAdvance*C+O,"\n"===n||a.isUnicodeSpace(n)||a.isUnicodeCJK(n))break;r++}return r},r._multilineTextWrapByWord=function(){return this._multilineTextWrap(this._getFirstWordLen)},r._multilineTextWrapByChar=function(){return this._multilineTextWrap(this._getFirstCharLen)},r._recordPlaceholderInfo=function(t,e){if(t>=d.length){var i=new l;d.push(i)}d[t].char=e,d[t].hash=e.charCodeAt(0)+u.hash,d[t].valid=!1},r._recordLetterInfo=function(t,e,i,n){if(i>=d.length){var r=new l;d.push(r)}var s=e.charCodeAt(0)+u.hash;d[i].line=n,d[i].char=e,d[i].hash=s,d[i].valid=u.fontAtlas.getLetter(s).valid,d[i].x=t.x,d[i].y=t.y},r._alignText=function(){y=0,p.length=0,this._multilineTextWrapByWord(),this._computeAlignmentOffset(),L===c.SHRINK&&R>0&&this._isVerticalClamp()&&this._shrinkLabelToContentSize(this._isVerticalClamp),this._updateQuads()||L===c.SHRINK&&this._shrinkLabelToContentSize(this._isHorizontalClamp)},r._scaleFontSizeDown=function(t){var e=!0;t||(t=.1,e=!1),R=t,e&&this._updateContent()},r._shrinkLabelToContentSize=function(t){for(var e=0,i=0|R,n=0;e>1;if(r<=0)break;C=r/w,this._multilineTextWrapByWord(),this._computeAlignmentOffset(),t()?i=n-1:e=n}var s=e;s>=0&&this._scaleFontSizeDown(s)},r._isVerticalClamp=function(){return y>b.height},r._isHorizontalClamp=function(){for(var t=!1,e=0,i=S.length;e0)if(P){if(p[a]>b.width&&(s>b.width||s<0)){t=!0;break}}else if(s>b.width){t=!0;break}}}return t},r._isHorizontalClamped=function(t,e){var i=p[e],n=t>b.width||t<0;return P?i>b.width&&n:n},r._updateQuads=function(){var t=x?x._texture:u.fontAtlas.getTexture(),e=_.node;this.verticesCount=this.indicesCount=0,this._renderData&&(this._renderData.dataLength=0);for(var i=b,n=e._anchorPoint.x*i.width,r=e._anchorPoint.y*i.height,s=!0,a=0,o=S.length;a0){if(p>E){var g=p-E;h.y+=g,h.height-=g,p-=g}p-f.h*C0&&this._isHorizontalClamped(y,m))if(L===c.CLAMP)h.width=0;else if(L===c.SHRINK){if(b.width>f.w){s=!1;break}h.width=0}if(h.height>0&&h.width>0){var R=this._determineRect(h),w=l.x+v[l.line];this.appendQuad(_,t,h,R,w-n,p-r,C)}}}return this._quadsUpdated(_),s},r._determineRect=function(t){var e=x.isRotated(),i=x._originalSize,n=x._rect,r=x._offset,s=r.x+(i.width-n.width)/2,a=r.y-(i.height-n.height)/2;if(e){var o=t.x;t.x=n.x+n.height-t.y-t.height-a,t.y=o+n.y-s,t.y<0&&(t.height=t.height+a)}else t.x+=n.x-s,t.y+=n.y+a;return e},r._computeAlignmentOffset=function(){switch(v.length=0,I){case o.TextAlignment.LEFT:for(var t=0;t0){var u=e.out||v;t.strokeStyle="rgba("+u.r+", "+u.g+", "+u.b+", "+u.a/255+")",t.lineWidth=2*e.margin,t.strokeText(this._char,s,a)}t.fillText(this._char,s,a),this._texture.handleLoadedTexture()},destroy:function(){this._texture.destroy(),this._texture=null,a._canvasPool.put(this._data)}},cc.js.mixin(T.prototype,{insertLetterTexture:function(t){var e=t._texture,i=e.width,n=e.height;if(this._x+i+g>this._width&&(this._x=g,this._y=this._nexty),this._y+n>this._nexty&&(this._nexty=this._y+n+g),this._nexty>this._height)return null;this._fontDefDictionary._texture.drawTextureAt(e,this._x,this._y),this._dirty=!0;var r=new d;return r.u=this._x+1,r.v=this._y+1,r.texture=this._fontDefDictionary._texture,r.valid=!0,r.w=t._width-2,r.h=t._height-2,r.xAdvance=r.w,r.offsetY=t._offsetY,this._x+=i+g,this._fontDefDictionary.addLetterDefinitions(t._hash,r),r},update:function(){this._dirty&&(this._fontDefDictionary._texture.update(),this._dirty=!1)},reset:function(){this._x=g,this._y=g,this._nexty=g;for(var t=this._fontDefDictionary._letterDefinitions,e=0,i=t.length;e0&&(n=n+e.margin+e.out.toHEX()),""+e.fontSize+e.fontFamily+i+n)},r._getFontDesc=function(){return f.fontSize.toString()+"px "+f.fontFamily},r._computeHorizontalKerningForText=function(){},r._determineRect=function(){return!1},n})(r.default);i.default=A,e.exports=i.default}),{"../../../assets/CCRenderTexture":66,"../../../components/CCComponent":95,"../../../components/CCLabel":97,"../../../components/CCLabelOutline":98,"../../../utils/text-utils":221,"../../webgl/assemblers/label/2d/bmfont":185,"../utils":180}],179:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n,r=(n=t("../../assembler-2d"))&&n.__esModule?n:{default:n};function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var a,o=t("../../../utils/text-utils"),c=t("../../../platform/CCMacro"),u=t("../../../components/CCLabel"),l=t("../../../components/CCLabelOutline"),h=t("../../../components/CCLabelShadow"),_=u.Overflow,f=t("../utils").deleteFromDynamicAtlas,d=t("../utils").getFontFamily,p=(1/255).toFixed(3),v=null,g=null,m=null,y="",T="",E=0,A=0,C=[],x=cc.Size.ZERO,b=0,S=0,R=0,w=null,I="",M=_.NONE,O=!1,D=!1,L=null,P=cc.Color.WHITE,N=null,F=cc.Color.BLACK,B=cc.rect(),U=cc.Size.ZERO,k=cc.Size.ZERO,z=!1,V=!1,W=!1,G=0,H=cc.Vec2.ZERO,j=0,Y=["left","center","right"],X=(function(t){var e,i;function n(){return t.apply(this,arguments)||this}i=t,(e=n).prototype=Object.create(i.prototype),e.prototype.constructor=e,s(e,i);var r=n.prototype;return r._getAssemblerData=function(){return(a=u._canvasPool.get()).canvas.width=a.canvas.height=1,a},r._resetAssemblerData=function(t){t&&u._canvasPool.put(t)},r.updateRenderData=function(e){t.prototype.updateRenderData.call(this,e),e._vertsDirty&&(this._updateProperties(e),this._calculateLabelFont(),this._updateLabelDimensions(),this._updateTexture(e),this._calDynamicAtlas(e),e._actualFontSize=E,e.node.setContentSize(k),this.updateVerts(e),e._vertsDirty=!1,v=null,g=null,m=null)},r.updateVerts=function(){},r._updatePaddingRect=function(){var t=0,e=0,i=0,n=0,r=0;if(U.width=U.height=0,L&&(t=e=i=n=r=L.width,U.width=U.height=2*r),N){var s=N.blur+r;i=Math.max(i,-N._offset.x+s),n=Math.max(n,N._offset.x+s),t=Math.max(t,N._offset.y+s),e=Math.max(e,-N._offset.y+s)}if(V){var a=A*Math.tan(.20943951);n+=a,U.width+=a}B.x=i,B.y=t,B.width=i+n,B.height=t+e},r._updateProperties=function(t){var e=t._assemblerData;v=e.context,g=e.canvas,m=t._frame._original?t._frame._original._texture:t._frame._texture,T=t.string.toString(),E=t._fontSize,A=E,G=t.underlineHeight||A/8,M=t.overflow,x.width=t.node.width,x.height=t.node.height,k=t.node.getContentSize(),b=t._lineHeight,S=t.horizontalAlign,R=t.verticalAlign,w=t.node.color,z=t.enableBold,V=t.enableItalic,W=t.enableUnderline,I=d(t),D=t.srcBlendFactor===cc.macro.BlendFactor.ONE,O=M!==_.NONE&&(M===_.RESIZE_HEIGHT||t.enableWrapText),(L=(L=l&&t.getComponent(l))&&L.enabled&&L.width>0?L:null)&&P.set(L.color),(N=(N=h&&t.getComponent(h))&&N.enabled?N:null)&&(F.set(N.color),F.a=F.a*t.node.color.a/255),this._updatePaddingRect()},r._calculateFillTextStartPosition=function(){var t=0;S===c.TextAlignment.RIGHT?t=x.width-B.width:S===c.TextAlignment.CENTER&&(t=(x.width-B.width)/2);var e=this._getLineHeight()*(C.length-1),i=E*(1-o.BASELINE_RATIO/2);if(R!==c.VerticalTextAlignment.TOP){var n=e+B.height+E-x.height;R===c.VerticalTextAlignment.BOTTOM?i-=n+=o.BASELINE_RATIO/2*E:i-=n/2}return i+=o.BASELINE_OFFSET*E,cc.v2(t+B.x,i+B.y)},r._setupOutline=function(){v.strokeStyle="rgba("+P.r+", "+P.g+", "+P.b+", "+P.a/255+")",v.lineWidth=2*L.width},r._setupShadow=function(){v.shadowColor="rgba("+F.r+", "+F.g+", "+F.b+", "+F.a/255+")",v.shadowBlur=N.blur,v.shadowOffsetX=N.offset.x,v.shadowOffsetY=-N.offset.y},r._drawTextEffect=function(t,e){if(N||L||W){var i=C.length>1&&N,n=this._measureText(v,y),r=0,s=0;N&&this._setupShadow(),L&&this._setupOutline();for(var a=0;at||x.height>t)&&cc.warn("The maximum texture size supported by the device is "+t),x.width=Math.min(x.width,t),x.height=Math.min(x.height,t);var e=!1;g.width!==x.width&&(g.width=x.width,e=!0),g.height!==x.height&&(g.height=x.height,e=!0),e&&(v.font=y),v.textAlign=Y[S]},r._getFontDesc=function(){var t=E.toString()+"px ";return t+=I,z&&(t="bold "+t),V&&(t="italic "+t),t},r._getLineHeight=function(){return 0|(0===b?E:b*E/A)},r._calculateParagraphLength=function(t,e){for(var i=[],n=0;n>1)<=0){cc.logID(4003);break}E=l,y=this._getFontDesc(),v.font=y;var h=this._getLineHeight();for(n=0,i=0;ia?u=l-1:c=l}0===c?cc.logID(4003):(E=c,y=this._getFontDesc(),v.font=y)}else{for(n=t.length*this._getLineHeight(),i=0;ir?e:r}i=(C.length+o.BASELINE_RATIO)*this._getLineHeight();var s=parseFloat(e.toFixed(2)),a=parseFloat(i.toFixed(2));x.width=s+B.width,x.height=a+B.height,k.width=s+U.width,k.height=a+U.height;break;case _.SHRINK:this._calculateShrinkFont(t),this._calculateWrapText(t);break;case _.CLAMP:this._calculateWrapText(t);break;case _.RESIZE_HEIGHT:this._calculateWrapText(t);var c=(C.length+o.BASELINE_RATIO)*this._getLineHeight();x.height=c+B.height,k.height=c+U.height}},n})(r.default);i.default=X,e.exports=i.default}),{"../../../components/CCLabel":97,"../../../components/CCLabelOutline":98,"../../../components/CCLabelShadow":99,"../../../platform/CCMacro":146,"../../../utils/text-utils":221,"../../assembler-2d":167,"../utils":180}],180:[(function(t,e){"use strict";var i=t("./dynamic-atlas/manager"),n=cc.Color.WHITE,r={fontAtlas:null,fontSize:0,lineHeight:0,hAlign:0,vAlign:0,hash:"",fontFamily:"",fontDesc:"Arial",color:n,isOutlined:!1,out:n,margin:0};e.exports={deleteFromDynamicAtlas:function(t,e){e&&e._original&&i&&(i.deleteAtlasSpriteFrame(e),e._resetDynamicAtlasFrame())},getFontFamily:function(t){return t.useSystemFont?t.fontFamily||"Arial":t.font?t.font._nativeAsset?t.font._nativeAsset:(cc.assetManager.postLoadNative(t.font,(function(){t.isValid&&t.setVertsDirty()})),"Arial"):"Arial"},shareLabelInfo:r}}),{"./dynamic-atlas/manager":175}],181:[(function(t,e){"use strict";function i(t,e,i){i=i||2;var r,a,o,c,u,h,_,f=e&&e.length,d=f?e[0]*i:t.length,p=n(t,0,d,i,!0),v=[];if(!p)return v;if(f&&(p=l(t,e,p,i)),t.length>80*i){r=o=t[0],a=c=t[1];for(var g=i;go&&(o=u),h>c&&(c=h);_=Math.max(o-r,c-a)}return s(p,v,i,r,a,_),v}function n(t,e,i,n,r){var s,a;if(r===M(t,e,i,n)>0)for(s=e;s=e;s-=n)a=R(s,t[s],t[s+1],a);return a&&E(a,a.next)&&(w(a),a=a.next),a}function r(t,e){if(!t)return t;e||(e=t);var i,n=t;do{if(i=!1,n.steiner||!E(n,n.next)&&0!==T(n.prev,n,n.next))n=n.next;else{if(w(n),(n=e=n.prev)===n.next)return null;i=!0}}while(i||n!==e);return e}function s(t,e,i,n,l,h,_){if(t){!_&&h&&d(t,n,l,h);for(var f,p,v=t;t.prev!==t.next;)if(f=t.prev,p=t.next,h?o(t,n,l,h):a(t))e.push(f.i/i),e.push(t.i/i),e.push(p.i/i),w(t),t=p.next,v=p.next;else if((t=p)===v){_?1===_?s(t=c(t,e,i),e,i,n,l,h,2):2===_&&u(t,e,i,n,l,h):s(r(t),e,i,n,l,h,1);break}}}function a(t){var e=t.prev,i=t,n=t.next;if(T(e,i,n)>=0)return!1;for(var r=t.next.next;r!==t.prev;){if(m(e.x,e.y,i.x,i.y,n.x,n.y,r.x,r.y)&&T(r.prev,r,r.next)>=0)return!1;r=r.next}return!0}function o(t,e,i,n){var r=t.prev,s=t,a=t.next;if(T(r,s,a)>=0)return!1;for(var o=r.xs.x?r.x>a.x?r.x:a.x:s.x>a.x?s.x:a.x,l=r.y>s.y?r.y>a.y?r.y:a.y:s.y>a.y?s.y:a.y,h=v(o,c,e,i,n),_=v(u,l,e,i,n),f=t.nextZ;f&&f.z<=_;){if(f!==t.prev&&f!==t.next&&m(r.x,r.y,s.x,s.y,a.x,a.y,f.x,f.y)&&T(f.prev,f,f.next)>=0)return!1;f=f.nextZ}for(f=t.prevZ;f&&f.z>=h;){if(f!==t.prev&&f!==t.next&&m(r.x,r.y,s.x,s.y,a.x,a.y,f.x,f.y)&&T(f.prev,f,f.next)>=0)return!1;f=f.prevZ}return!0}function c(t,e,i){var n=t;do{var r=n.prev,s=n.next.next;!E(r,s)&&A(r,n,n.next,s)&&x(r,s)&&x(s,r)&&(e.push(r.i/i),e.push(n.i/i),e.push(s.i/i),w(n),w(n.next),n=t=s),n=n.next}while(n!==t);return n}function u(t,e,i,n,a,o){var c=t;do{for(var u=c.next.next;u!==c.prev;){if(c.i!==u.i&&y(c,u)){var l=S(c,u);return c=r(c,c.next),l=r(l,l.next),s(c,e,i,n,a,o),void s(l,e,i,n,a,o)}u=u.next}c=c.next}while(c!==t)}function l(t,e,i,s){var a,o,c,u=[];for(a=0,o=e.length;a=n.next.y){var o=n.x+(s-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(o<=r&&o>a){if(a=o,o===r){if(s===n.y)return n;if(s===n.next.y)return n.next}i=n.x=n.x&&n.x>=l&&m(si.x)&&x(n,t)&&(i=n,_=c),n=n.next;return i}function d(t,e,i,n){var r=t;do{null===r.z&&(r.z=v(r.x,r.y,e,i,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next}while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,p(r)}function p(t){var e,i,n,r,s,a,o,c,u=1;do{for(i=t,t=null,s=null,a=0;i;){for(a++,n=i,o=0,e=0;e0||c>0&&n;)0===o?(r=n,n=n.nextZ,c--):0!==c&&n?i.z<=n.z?(r=i,i=i.nextZ,o--):(r=n,n=n.nextZ,c--):(r=i,i=i.nextZ,o--),s?s.nextZ=r:t=r,r.prevZ=s,s=r;i=n}s.nextZ=null,u*=2}while(a>1);return t}function v(t,e,i,n,r){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-i)/r)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-n)/r)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function g(t){var e=t,i=t;do{e.x=0&&(t-a)*(n-o)-(i-a)*(e-o)>=0&&(i-a)*(s-o)-(r-a)*(n-o)>=0}function y(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!C(t,e)&&x(t,e)&&x(e,t)&&b(t,e)}function T(t,e,i){return(e.y-t.y)*(i.x-e.x)-(e.x-t.x)*(i.y-e.y)}function E(t,e){return t.x===e.x&&t.y===e.y}function A(t,e,i,n){return!!(E(t,e)&&E(i,n)||E(t,n)&&E(i,e))||T(t,e,i)>0!=T(t,e,n)>0&&T(i,n,t)>0!=T(i,n,e)>0}function C(t,e){var i=t;do{if(i.i!==t.i&&i.next.i!==t.i&&i.i!==e.i&&i.next.i!==e.i&&A(i,i.next,t,e))return!0;i=i.next}while(i!==t);return!1}function x(t,e){return T(t.prev,t,t.next)<0?T(t,e,t.next)>=0&&T(t,t.prev,e)>=0:T(t,e,t.prev)<0||T(t,t.next,e)<0}function b(t,e){var i=t,n=!1,r=(t.x+e.x)/2,s=(t.y+e.y)/2;do{i.y>s!=i.next.y>s&&r<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(n=!n),i=i.next}while(i!==t);return n}function S(t,e){var i=new I(t.i,t.x,t.y),n=new I(e.i,e.x,e.y),r=t.next,s=e.prev;return t.next=e,e.prev=t,i.next=r,r.prev=i,n.next=i,i.prev=n,s.next=n,n.prev=s,n}function R(t,e,i,n){var r=new I(t,e,i);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function w(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function I(t,e,i){this.i=t,this.x=e,this.y=i,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function M(t,e,i,n){for(var r=0,s=e,a=i-n;s0&&(n+=t[r-1].length,i.holes.push(n))}return i}}),{}],182:[(function(t,e){"use strict";var i=t("../../../../graphics/helper"),n=t("../../../../graphics/types").PointFlags,r=cc.Graphics.Point=cc.Class({name:"cc.GraphicsPoint",extends:cc.Vec2,ctor:function(){this.reset()},reset:function(){this.dx=0,this.dy=0,this.dmx=0,this.dmy=0,this.flags=0,this.len=0}});function s(){this.reset()}function a(){this._tessTol=.25,this._distTol=.01,this._updatePathOffset=!1,this._paths=null,this._pathLength=0,this._pathOffset=0,this._points=null,this._pointsOffset=0,this._commandx=0,this._commandy=0,this._paths=[],this._points=[]}cc.js.mixin(s.prototype,{reset:function(){this.closed=!1,this.nbevel=0,this.complex=!0,this.points?this.points.length=0:this.points=[]}}),cc.js.mixin(a.prototype,{moveTo:function(t,e){this._updatePathOffset&&(this._pathOffset=this._pathLength,this._updatePathOffset=!1),this._addPath(),this._addPoint(t,e,n.PT_CORNER),this._commandx=t,this._commandy=e},lineTo:function(t,e){this._addPoint(t,e,n.PT_CORNER),this._commandx=t,this._commandy=e},bezierCurveTo:function(t,e,r,s,a,o){var c=this._curPath,u=c.points[c.points.length-1];u.x!==t||u.y!==e||r!==a||s!==o?(i.tesselateBezier(this,u.x,u.y,t,e,r,s,a,o,0,n.PT_CORNER),this._commandx=a,this._commandy=o):this.lineTo(a,o)},quadraticCurveTo:function(t,e,i,n){var r=this._commandx,s=this._commandy;this.bezierCurveTo(r+2/3*(t-r),s+2/3*(e-s),i+2/3*(t-i),n+2/3*(e-n),i,n)},arc:function(t,e,n,r,s,a){i.arc(this,t,e,n,r,s,a)},ellipse:function(t,e,n,r){i.ellipse(this,t,e,n,r),this._curPath.complex=!1},circle:function(t,e,n){i.ellipse(this,t,e,n,n),this._curPath.complex=!1},rect:function(t,e,i,n){this.moveTo(t,e),this.lineTo(t,e+n),this.lineTo(t+i,e+n),this.lineTo(t+i,e),this.close(),this._curPath.complex=!1},roundRect:function(t,e,n,r,s){i.roundRect(this,t,e,n,r,s),this._curPath.complex=!1},clear:function(t){this._pathLength=0,this._pathOffset=0,this._pointsOffset=0,this._curPath=null,t&&(this._paths.length=0,this._points.length=0)},close:function(){this._curPath.closed=!0},_addPath:function(){var t=this._pathLength,e=this._paths[t];return e?e.reset():(e=new s,this._paths.push(e)),this._pathLength++,this._curPath=e,e},_addPoint:function(t,e,i){var n=this._curPath;if(n){var s,a=this._points,o=n.points;(s=a[this._pointsOffset++])?(s.x=t,s.y=e):(s=new r(t,e),a.push(s)),s.flags=i,o.push(s)}}}),cc.Graphics._Impl=a,e.exports=a}),{"../../../../graphics/helper":131,"../../../../graphics/types":133}],183:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n=s(t("../../../assembler")),r=s(t("../../../../../renderer/core/input-assembler"));function s(t){return t&&t.__esModule?t:{default:t}}function a(t,e){return(a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var o=t("../../mesh-buffer"),c=t("../../../index"),u=t("../../../../graphics/graphics"),l=t("../../../../graphics/types").PointFlags,h=u.LineJoin,_=u.LineCap,f=t("./earcut");t("./impl");var d=Math.PI,p=Math.min,v=Math.max,g=Math.ceil,m=Math.acos,y=Math.cos,T=Math.sin,E=Math.atan2;function A(t,e,i){return ti?i:t}var C=cc.gfx,x=new C.VertexFormat([{name:C.ATTR_POSITION,type:C.ATTR_TYPE_FLOAT32,num:2},{name:C.ATTR_COLOR,type:C.ATTR_TYPE_UINT8,num:4,normalize:!0},{name:"a_dist",type:C.ATTR_TYPE_FLOAT32,num:1}]);x.name="vfmtPosColorSdf";var b=(function(t){var e,i;function n(e){var i;return(i=t.call(this,e)||this)._buffer=null,i._buffers=[],i._bufferOffset=0,i}i=t,(e=n).prototype=Object.create(i.prototype),e.prototype.constructor=e,a(e,i);var s=n.prototype;return s.getVfmt=function(){return x},s.getVfmtFloatCount=function(){return 4},s.requestBuffer=function(){var t={indiceStart:0,vertexStart:0},e=new o(c._handle,this.getVfmt());t.meshbuffer=e;var i=new r.default(e._vb,e._ib);return t.ia=i,this._buffers.push(t),t},s.getBuffers=function(){return 0===this._buffers.length&&this.requestBuffer(),this._buffers},s.clear=function(t){this._bufferOffset=0;var e=this._buffers;if(t){for(var i=0,n=e.length;i65535||3*s>131070)&&(++this._bufferOffset,s=e,this._bufferOffsetr.vertexOffset&&r.requestStatic(e,3*e),this._buffer=n,n},s.stroke=function(t){this._curColor=t._strokeColor._val,this._flattenPaths(t._impl),this._expandStroke(t),t._impl._updatePathOffset=!0},s.fill=function(t){this._curColor=t._fillColor._val,this._expandFill(t),t._impl._updatePathOffset=!0},s._expandStroke=function(t){var e,i,n,r,s=.5*t.lineWidth,a=t.lineCap,o=t.lineJoin,c=t.miterLimit,u=t._impl,f=(e=s,i=d,n=u._tessTol,r=2*m(e/(e+n)),v(2,g(i/r)));this._calculateJoins(u,s,o,c);for(var p=u._paths,y=0,T=u._pathOffset,E=u._pathLength;T0&&(r=1/e);for(var a=t._paths,o=t._pathOffset,c=t._pathLength;o1e-6){var b=1/y;b>600&&(b=600),g.dmx*=b,g.dmy*=b}g.dx*d.dy-d.dx*g.dy>0&&(g.flags|=l.PT_LEFT),y*(T=v(11,p(d.len,g.len)*r))*T<1&&(g.flags|=l.PT_INNERBEVEL);var S=g.dmx*e,R=g.dmy*e,w=S*S+R*R;w>g.len*g.len+s&&w>d.len*d.len+s&&(g.flags|=l.PT_INNERBEVEL),g.flags&l.PT_CORNER&&(y*n*n<1||i===h.BEVEL||i===h.ROUND)&&(g.flags|=l.PT_BEVEL),0!=(g.flags&(l.PT_BEVEL|l.PT_INNERBEVEL))&&u.nbevel++,d=g,g=_[m+1]}}},s._flattenPaths=function(t){for(var e=t._paths,i=t._pathOffset,n=t._pathLength;i2&&a.equals(o)&&(r.closed=!0,s.pop(),a=s[s.length-1]);for(var c=0,u=s.length;cC&&(x-=2*d),this._vset(f,p,1),this._vset(u-s*n,e.y-a*n,-1);for(var b=A(g((C-x)/d)*r,2,r),S=0;S "+n+"/"+i+".")},e._updateCfgFlag=function(t){var e=this._cfgFields.updateFlags;this._setBufferFlag(this._cfg,e.offset,e.size,e.type,t)},e._setBufferValue=function(t,e,i,n,r){"float"==n&&4==i?t.setFloat32(e,r,jsb.__isLittleEndian__):"int32"==n&&4==i?t.setInt32(e,r,jsb.__isLittleEndian__):"bool"==n&&1==i?t.setInt8(e,r?1:0,jsb.__isLittleEndian__):"Color4B"==n&&4==i?(t.setUint8(e,r.r),t.setUint8(e+1,r.g),t.setUint8(e+2,r.b),t.setUint8(e+3,r.a)):"int8"==n&&1==i?t.setUint8(e,r):cc.warn("dont know how to set value to buffer, type/size -> "+n+"/"+i+".")},e._setFieldValue=function(t,e,i,n){var r=e[i];this._setBufferValue(t,r.offset,r.size,r.type,n)},e._getBufferValue=function(t,e,i,n){return"float"==n&&4==i?t.getFloat32(e,jsb.__isLittleEndian__):"int32"==n&&4==i?t.getInt32(e,jsb.__isLittleEndian__):"bool"==n&&1==i?0!=t.getInt8(e,jsb.__isLittleEndian__):"Color4B"==n&&4==i?{r:t.getUint8(e),g:t.getUint8(e+1),b:t.getUint8(e+2),a:t.getUint8(e+3)}:"int8"==n&&1==i?t.getUint8(e):void cc.warn("dont know how to get value from buffer, type/size -> "+n+"/"+i+".")},e._getFieldValue=function(t,e,i){var n=e[i];return this._getBufferValue(t,n.offset,n.size,n.type)},e._getLayoutValue=function(t){return this._getFieldValue(this._layoutInfo,this._layoutFields,t)},e._setLayoutValue=function(t,e){return this._setFieldValue(this._layoutInfo,this._layoutFields,t,e)},e._updateCfgFlag_Content=function(){this._updateCfgFlag(1)},e._updateCfgFlag_Font=function(){this._updateCfgFlag(2)},e._colorEqual=function(t,e){return t.r==e.r&&t.g==e.g&&t.b==e.b&&t.a==e.a},e._colorToObj=function(t,e,i,n){return{r:t,g:e,b:i,a:n}},e.setString=function(t){t!=this._layout.string&&(this._layout.string=t,this._updateCfgFlag_Content())},e.setFontPath=function(t){t!=this._layout.fontPath&&(this._layout.fontPath=t,this._updateCfgFlag_Font())},e.setFontSize=function(t,e){this._getFieldValue(this._cfg,this._cfgFields,"fontSize")!=t&&(this._setFieldValue(this._cfg,this._cfgFields,"fontSize",t),this._setFieldValue(this._cfg,this._cfgFields,"fontSizeRetina",e),this._updateCfgFlag_Font())},e.setOutline=function(t){var e=this._getLayoutValue("outlineSize");e>0!=t>0&&this._updateCfgFlag_Font(),e!=t&&(this._updateCfgFlag_Content(),this._setLayoutValue("outlineSize",t))},e.setOutlineColor=function(t){var e=this._getLayoutValue("outlineColor");this._colorEqual(e,t)||(this._setLayoutValue("outlineColor",t),this._updateCfgFlag_Content())},e.setLineHeight=function(t){this._getLayoutValue("lineHeight")!=t&&(this._setLayoutValue("lineHeight",t),this._updateCfgFlag_Content())},e.setOverFlow=function(t){this._getLayoutValue("overflow")!=t&&(this._setLayoutValue("overflow",t),this._updateCfgFlag_Content())},e.setEnableWrap=function(t){this._getLayoutValue("wrap")!=t&&(this._setLayoutValue("wrap",t),this._updateCfgFlag_Content())},e.setVerticalAlign=function(t){this._getLayoutValue("valign")!=t&&(this._setLayoutValue("valign",t),this._updateCfgFlag_Content())},e.setHorizontalAlign=function(t){this._getLayoutValue("halign")!=t&&(this._setLayoutValue("halign",t),this._updateCfgFlag_Content())},e.setContentSize=function(t,e){var i=this._getLayoutValue("width"),n=this._getLayoutValue("height");i==t&&n==e||(this._setLayoutValue("height",e),this._setLayoutValue("width",t),this._updateCfgFlag_Content())},e.setAnchorPoint=function(t,e){var i=this._getLayoutValue("anchorX"),n=this._getLayoutValue("anchorY");i==t&&n==e||(this._setLayoutValue("anchorX",t),this._setLayoutValue("anchorY",e),this._updateCfgFlag_Content())},e.setColor=function(t){var e=this._getLayoutValue("color");this._colorEqual(e,t)||(this._setLayoutValue("color",t),this._updateCfgFlag_Content())},e.setShadow=function(t,e,i){var n=this._getLayoutValue("shadowBlur"),r=this._getLayoutValue("shadowX"),s=this._getLayoutValue("shadowY");n>0!=i>0&&this._updateCfgFlag_Font();var a=!1;n!=i&&(this._setLayoutValue("shadowBlur",i),a=!0),r!=t&&(this._setLayoutValue("shadowX",t),a=!0),s!=e&&(this._setLayoutValue("shadowY",e),a=!0),a&&this._updateCfgFlag_Content()},e.setShadowColor=function(t){var e=this._getLayoutValue("shadowColor");this._colorEqual(e,t)||(this._setLayoutValue("shadowColor",t),this._updateCfgFlag_Content())},e.setItalic=function(t){this._getLayoutValue("italic")!=t&&(this._setLayoutValue("italic",t),this._updateCfgFlag_Content())},e.setBold=function(t){this._getLayoutValue("bold")!=t&&(this._setLayoutValue("bold",t),this._updateCfgFlag_Content(),this._updateCfgFlag_Font())},e.setUnderline=function(t){this._getLayoutValue("underline")!=t&&(this._setLayoutValue("underline",t),this._updateCfgFlag_Content())},e.setSpacingX=function(t){this._getLayoutValue("spaceX")==t||"number"!=typeof t||isNaN(t)||(this._setLayoutValue("spaceX",t),this._updateCfgFlag_Content())},e.updateRenderData=function(t){if(t._vertsDirty){t.font&&t.font.nativeUrl&&this.setFontPath(cc.assetManager.cacheManager.getCache(t.font.nativeUrl)||t.font.nativeUrl);var e=this._layout,i=t.node.color,n=t.node,r=t.fontSize;this.setString(t.string),this.setFontSize(t.fontSize,r/72*t.fontSize),this.setLineHeight(t.lineHeight),this.setEnableWrap(t.enableWrapText),this.setItalic(t.enableItalic),this.setUnderline(t.enableUnderline),this.setBold(t.enableBold),this.setOverFlow(t.overflow),this.setVerticalAlign(t.verticalAlign),this.setHorizontalAlign(t.horizontalAlign),this.setSpacingX(t.spacingX),this.setContentSize(n.getContentSize().width,n.getContentSize().height),this.setAnchorPoint(n.anchorX,n.anchorY),this.setColor(this._colorToObj(i.getR(),i.getG(),i.getB(),Math.ceil(i.getA()*n.opacity/255)));var s=n.getComponent(cc.LabelShadow);if(s&&s.enabled){var a=s.color;this.setShadow(s.offset.x,s.offset.y,s.blur),this.setShadowColor(this._colorToObj(a.getR(),a.getG(),a.getB(),Math.ceil(a.getA()*n.opacity/255)))}else this.setShadow(0,0,-1);this._updateTTFMaterial(t),e.render()}},e._bindMaterial=function(t){var e=this.labelMaterial;return e||(e=r.default.createWithBuiltin("2d-label",t),this.labelMaterial=e),e},e._updateTTFMaterial=function(t){var e=this._bindMaterial(t),i=this._label.node,n=this._layout,r=i.getComponent(cc.LabelOutline),s=0;if(r&&r.enabled&&r.width>0){s=Math.max(Math.min(r.width/10,.4),.1);var a=r.color;this.setOutlineColor(this._colorToObj(a.getR(),a.getG(),a.getB(),Math.ceil(a.getA()*i.opacity/255)))}this.setOutline(s),e.define("CC_USE_MODEL",!0),e.define("USE_TEXTURE_ALPHAONLY",!0),e.define("USE_SDF",s>0||t.enableBold),e.define("USE_SDF_EXTEND",t.enableBold?1:0),void 0!==e.getDefine("CC_SUPPORT_standard_derivatives")&&cc.sys.glExtension("OES_standard_derivatives")&&e.define("CC_SUPPORT_standard_derivatives",!0),n.setEffect(e.effect._nativeObj)},e.fillBuffers=function(){this._layout.render()},e.getVfmt=function(){},t})();i.default=s,e.exports=i.default}),{"../../../../../assets/material/CCMaterial":77,"../../../../../assets/material/material-variant":84,"../../../../../components/CCLabel":97,"../../../../../components/CCLabelOutline":98,"../../../../../components/CCLabelShadow":99}],188:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n,r=(n=t("../../../../utils/label/ttf"))&&n.__esModule?n:{default:n};function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var a=t("../../../../../components/CCLabelShadow"),o=cc.color(255,255,255,255),c=(function(t){var e,i;function n(){return t.apply(this,arguments)||this}i=t,(e=n).prototype=Object.create(i.prototype),e.prototype.constructor=e,s(e,i);var r=n.prototype;return r.updateUVs=function(t){for(var e=this._renderData.vDatas[0],i=t._frame.uv,n=this.uvOffset,r=this.floatsPerVert,s=0;s<4;s++){var a=2*s,o=r*s+n;e[o]=i[a],e[o+1]=i[a+1]}},r.updateColor=function(e){o._fastSetA(e.node._color.a);var i=o._val;t.prototype.updateColor.call(this,e,i)},r.updateVerts=function(t){var e=t.node,i=t._ttfTexture.width,n=t._ttfTexture.height,r=e.anchorX*e.width,s=e.anchorY*e.height,o=a&&t.getComponent(a);if(o&&o._enabled){var c=(i-e.width)/2,u=(n-e.height)/2,l=o.offset;-l.x>c?r+=i-e.width:c>l.x&&(r+=c-l.x),-l.y>u?s+=n-e.height:u>l.y&&(s+=u-l.y)}var h=this._local;h[0]=-r,h[1]=-s,h[2]=i-r,h[3]=n-s,this.updateUVs(t),this.updateWorldVerts(t)},n})(r.default);i.default=c,e.exports=i.default}),{"../../../../../components/CCLabelShadow":99,"../../../../utils/label/ttf":179}],189:[(function(t){"use strict";var e=u(t("../../../assembler")),i=u(t("../../../../components/CCLabel")),n=u(t("./2d/ttf")),r=u(t("./2d/bmfont")),s=u(t("./2d/letter")),a=u(t("./3d/ttf")),o=u(t("./3d/bmfont")),c=u(t("./3d/letter"));function u(t){return t&&t.__esModule?t:{default:t}}i.default._canvasPool={pool:[],get:function(){var t=this.pool.pop();if(!t){var e=document.createElement("canvas"),i=e.getContext("2d");t={canvas:e,context:i},i.textBaseline="alphabetic"}return t},put:function(t){this.pool.length>=32||this.pool.push(t)}},e.default.register(cc.Label,{getConstructor:function(t){var e=t.node.is3DNode,u=e?a.default:n.default;return t.font instanceof cc.BitmapFont?u=e?o.default:r.default:t.cacheMode===i.default.CacheMode.CHAR&&(cc.sys.platform===cc.sys.WECHAT_GAME_SUB?cc.warn("sorry, subdomain does not support CHAR mode currently!"):u=e?c.default:s.default),u},TTF:n.default,Bmfont:r.default,Letter:s.default,TTF3D:a.default,Bmfont3D:o.default,Letter3D:c.default,NativeTTF:void 0})}),{"../../../../components/CCLabel":97,"../../../assembler":169,"./2d/bmfont":185,"./2d/letter":186,"./2d/nativeTTF":187,"./2d/ttf":188,"./3d/bmfont":void 0,"./3d/letter":void 0,"./3d/ttf":void 0}],190:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n,r=(n=t("../../assembler-2d"))&&n.__esModule?n:{default:n};function s(t,e){return(s=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var a=t("../../../components/CCMotionStreak"),o=t("../../render-flow");function c(t,e){this.point=t||cc.v2(),this.dir=e||cc.v2(),this.distance=0,this.time=0}c.prototype.setPoint=function(t,e){this.point.x=t,this.point.y=e},c.prototype.setDir=function(t,e){this.dir.x=t,this.dir.y=e},cc.v2(),cc.v2();var u=cc.v2(),l=cc.v2();function h(t,e){return t.x=-e.y,t.y=e.x,t}var _=(function(t){var e,i;function n(){return t.apply(this,arguments)||this}i=t,(e=n).prototype=Object.create(i.prototype),e.prototype.constructor=e,s(e,i);var r=n.prototype;return r.initData=function(){this._renderData.createFlexData(0,16,42)},r.update=function(t,e){var i,n=t._stroke/2,r=t.node._worldMatrix.m,s=r[12],a=r[13],o=t._points;if(o.length>1){var _=o[0].point.x-s,f=o[0].point.y-a;_*_+f*f=0;R--){var w=o[R],I=w.point,M=w.dir;if(w.time-=e,w.time<0)o.splice(R,1);else{var O=w.time/b,D=o[R-1];if(!S){if(!D){o.splice(R,1);continue}I.x=D.point.x-M.x*O,I.y=D.point.y-M.y*O}S=!0,h(u,M);var L=(O*T<<24>>>0)+(y<<16)+(m<<8)+g,P=5*p;C[P]=I.x+u.x*n,C[P+1]=I.y+u.y*n,C[P+2]=1,C[P+3]=O,x[P+4]=L,C[P+=5]=I.x-u.x*n,C[P+1]=I.y-u.y*n,C[P+2]=0,C[P+3]=O,x[P+4]=L,p+=2}}d=p<=2?0:3*(p-2),A.used(p,d)}},r.fillBuffers=function(t,e){var i=this._renderData._flexBuffer,n=i.vData,r=i.usedVertices,s=i.usedIndices,a=i.usedVerticesFloats,c=e._meshBuffer,u=c.request(r,s),l=u.byteOffset>>2,h=c._vData;n.length+l>h.length?h.set(n.subarray(0,a),l):h.set(n,l);for(var _=c._iData,f=u.indiceOffset,d=u.vertexOffset,p=0,v=r;p1?1:n)<0?0:n;var r=(i=(i=i>1?1:i)<0?0:i)+(n=(n-=i)<0?0:n);r=r>1?1:r,this.updateUVs(t,i,r),this.updateVerts(t,i,r),t._vertsDirty=!1}},r.updateUVs=function(t,e,i){var n,r,s,o,c,u,l,h,_,f,d=t._spriteFrame,p=d._texture.width,v=d._texture.height,g=d._rect;d._rotated?(n=g.x/p,r=(g.y+g.width)/v,s=c=n,l=_=(g.x+g.height)/p,u=f=r,o=h=g.y/v):(n=g.x/p,r=(g.y+g.height)/v,s=l=n,c=_=(g.x+g.width)/p,o=u=r,h=f=g.y/v);var m=this._renderData.vDatas[0],y=this.uvOffset,T=this.floatsPerVert;switch(t._fillType){case a.HORIZONTAL:m[y]=s+(c-s)*e,m[y+1]=o+(u-o)*e,m[y+T]=s+(c-s)*i,m[y+T+1]=o+(u-o)*i,m[y+2*T]=l+(_-l)*e,m[y+2*T+1]=h+(f-h)*e,m[y+3*T]=l+(_-l)*i,m[y+3*T+1]=h+(f-h)*i;break;case a.VERTICAL:m[y]=s+(l-s)*e,m[y+1]=o+(h-o)*e,m[y+T]=c+(_-c)*e,m[y+T+1]=u+(f-u)*e,m[y+2*T]=s+(l-s)*i,m[y+2*T+1]=o+(h-o)*i,m[y+3*T]=c+(_-c)*i,m[y+3*T+1]=u+(f-u)*i;break;default:cc.errorID(2626)}},r.updateVerts=function(t,e,i){var n,r=t.node,s=r.width,o=r.height,c=r.anchorX*s,u=r.anchorY*o,l=-c,h=-u,_=s-c,f=o-u;switch(t._fillType){case a.HORIZONTAL:n=l+(_-l)*i,l+=(_-l)*e,_=n;break;case a.VERTICAL:n=h+(f-h)*i,h+=(f-h)*e,f=n;break;default:cc.errorID(2626)}var d=this._local;d[0]=l,d[1]=h,d[2]=_,d[3]=f,this.updateWorldVerts(t)},n})(r.default);i.default=o,e.exports=i.default}),{"../../../../../components/CCSprite":105,"../../../../assembler-2d":167}],192:[(function(t,e,i){"use strict";var n;function r(t,e){return(r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}i.__esModule=!0,i.default=void 0;var s=(function(t){var e,i;function n(){return t.apply(this,arguments)||this}i=t,(e=n).prototype=Object.create(i.prototype),e.prototype.constructor=e,r(e,i);var s=n.prototype;return s.initData=function(){this._renderData.createFlexData(0,4,6,this.getVfmt())},s.updateRenderData=function(t){this.packToDynamicAtlas(t,t._spriteFrame);var e=t.spriteFrame;if(e){var i=e.vertices;if(i){this.verticesCount=i.x.length,this.indicesCount=i.triangles.length;var n=this._renderData._flexBuffer;n.reserve(this.verticesCount,this.indicesCount)&&(this.updateColor(t),t._vertsDirty=!0),n.used(this.verticesCount,this.indicesCount),this.updateIndices(i.triangles),t._vertsDirty&&(this.updateUVs(t),this.updateVerts(t),this.updateWorldVerts(t),t._vertsDirty=!1)}}},s.updateIndices=function(t){this._renderData.iDatas[0].set(t)},s.updateUVs=function(t){for(var e=t.spriteFrame.vertices,i=e.nu,n=e.nv,r=this.uvOffset,s=this.floatsPerVert,a=this._renderData.vDatas[0],o=0;o0){var h=r.y+o*(t-r.x);a[0].x=t,a[0].y=h}if((e-r.x)*l>0){var _=r.y+o*(e-r.x);a[2].x=e,a[2].y=_}}if(0!==Math.sin(s)){if(c=l/u,(n-r.y)*u>0){var f=r.x+c*(n-r.y);a[3].x=f,a[3].y=n}if((i-r.y)*u>0){var d=r.x+c*(i-r.y);a[1].x=d,a[1].y=i}}}function p(t){var e=t.node,i=e.width,n=e.height,r=e.anchorX*i,s=e.anchorY*n,a=-r,u=-s,l=i-r,h=n-s,d=c;d[0]=a,d[1]=u,d[2]=l,d[3]=h;var p=t._fillCenter,v=_.x=Math.min(Math.max(0,p.x),1)*(l-a)+a,g=_.y=Math.min(Math.max(0,p.y),1)*(h-u)+u;o[0].x=o[3].x=a,o[1].x=o[2].x=l,o[0].y=o[1].y=u,o[2].y=o[3].y=h,f.length=0,v!==d[0]&&(f[0]=[3,0]),v!==d[2]&&(f[2]=[1,2]),g!==d[1]&&(f[1]=[0,1]),g!==d[3]&&(f[3]=[2,3])}function v(t,e){var i,n;if(i=e.x-t.x,n=e.y-t.y,0!==i||0!==n){if(0===i)return n>0?.5*Math.PI:1.5*Math.PI;var r=Math.atan(n/i);return i<0&&(r+=Math.PI),r}}var g=(function(t){var e,i;function n(){return t.apply(this,arguments)||this}i=t,(e=n).prototype=Object.create(i.prototype),e.prototype.constructor=e,s(e,i);var r=n.prototype;return r.initData=function(){this._renderData.createFlexData(0,4,6,this.getVfmt()),this.updateIndices()},r.updateRenderData=function(e){t.prototype.updateRenderData.call(this,e);var i,n,r,s,o,f,v,g,m,y=e.spriteFrame;if(this.packToDynamicAtlas(e,y),e._vertsDirty){var T=e._fillStart,E=e._fillRange;for(E<0&&(T+=E,E=-E);T>=1;)T-=1;for(;T<0;)T+=1;T*=a,E*=a,p(e),f=(i=y)._texture.width,v=i._texture.height,g=i._rect,m=u,i._rotated?(n=g.x/f,r=(g.x+g.height)/f,s=g.y/v,o=(g.y+g.width)/v,m[0]=m[2]=n,m[4]=m[6]=r,m[3]=m[7]=o,m[1]=m[5]=s):(n=g.x/f,r=(g.x+g.width)/f,s=g.y/v,o=(g.y+g.height)/v,m[0]=m[4]=n,m[2]=m[6]=r,m[1]=m[3]=o,m[5]=m[7]=s),d(c[0],c[2],c[1],c[3],_,T,l),d(c[0],c[2],c[1],c[3],_,T+E,h),this.updateVerts(e,T,E),e._vertsDirty=!1}},r.updateVerts=function(t,e,i){var n=e+i,r=this._local;r.length=0;for(var s=0,c=3*this.floatsPerVert,u=0;u<4;++u){var d=f[u];if(d)if(i>=a)r.length=s+c,this._generateTriangle(r,s,_,o[d[0]],o[d[1]]),s+=c;else{var p=v(_,o[d[0]]),g=v(_,o[d[1]]);g=n||(p>=e?(r.length=s+c,g>=n?this._generateTriangle(r,s,_,o[d[0]],h[u]):this._generateTriangle(r,s,_,o[d[0]],o[d[1]]),s+=c):g<=e||(g<=n?(r.length=s+c,this._generateTriangle(r,s,_,l[u],o[d[1]]),s+=c):(r.length=s+c,this._generateTriangle(r,s,_,l[u],h[u]),s+=c))),p+=a,g+=a}}this.allocWorldVerts(t),this.updateWorldVerts(t)},r.allocWorldVerts=function(t){var e=t.node._color._val,i=this._renderData,n=this.floatsPerVert,r=this._local,s=r.length/n;this.verticesCount=this.indicesCount=s;var a=i._flexBuffer;a.reserve(s,s)&&this.updateIndices(),a.used(this.verticesCount,this.indicesCount);for(var o=i.vDatas[0],c=i.uintVDatas[0],u=this.uvOffset,l=0;l0)){this._renderData.createData(0,this.verticesFloats,this.indicesCount);for(var t=this._renderData.iDatas[0],e=0,i=0;i<3;++i)for(var n=0;n<3;++n){var r=4*i+n;t[e++]=r,t[e++]=r+1,t[e++]=r+4,t[e++]=r+1,t[e++]=r+5,t[e++]=r+4}}},s.initLocal=function(){this._local=[],this._local.length=8},s.updateRenderData=function(t){var e=t._spriteFrame;this.packToDynamicAtlas(t,e),t._vertsDirty&&(this.updateUVs(t),this.updateVerts(t),t._vertsDirty=!1)},s.updateVerts=function(t){var e=t.node,i=e.width,n=e.height,r=e.anchorX*i,s=e.anchorY*n,a=t.spriteFrame,o=a.insetLeft,c=a.insetRight,u=a.insetTop,l=a.insetBottom,h=i-o-c,_=n-u-l,f=i/(o+c),d=n/(u+l);f=isNaN(f)||f>1?1:f,d=isNaN(d)||d>1?1:d,h=h<0?0:h,_=_<0?0:_;var p=this._local;p[0]=-r,p[1]=-s,p[2]=o*f-r,p[3]=l*d-s,p[4]=p[2]+h,p[5]=p[3]+_,p[6]=i-r,p[7]=n-s,this.updateWorldVerts(t)},s.updateUVs=function(t){for(var e=this._renderData.vDatas[0],i=t.spriteFrame.uvSliced,n=this.uvOffset,r=this.floatsPerVert,s=0;s<4;++s)for(var a=0;a<4;++a){var o=4*s+a,c=i[o],u=o*r;e[u+n]=c.u,e[u+n+1]=c.v}},s.updateWorldVerts=function(t){for(var e=t.node._worldMatrix.m,i=e[0],n=e[1],r=e[4],s=e[5],a=e[12],o=e[13],c=this._local,u=this._renderData.vDatas[0],l=this.floatsPerVert,h=0;h<4;++h)for(var _=c[2*h+1],f=0;f<4;++f){var d=c[2*f],p=(4*h+f)*l;u[p]=d*i+_*r+a,u[p+1]=d*n+_*s+o}},n})(((n=t("../../../../assembler-2d"))&&n.__esModule?n:{default:n}).default);i.default=s,Object.assign(s.prototype,{verticesCount:16,indicesCount:54}),e.exports=i.default}),{"../../../../assembler-2d":167}],196:[(function(t,e,i){"use strict";var n;function r(t,e){return(r=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}i.__esModule=!0,i.default=void 0;var s=(function(t){var e,i;function n(){return t.apply(this,arguments)||this}i=t,(e=n).prototype=Object.create(i.prototype),e.prototype.constructor=e,r(e,i);var s=n.prototype;return s.initData=function(){this.verticesCount=0,this.contentWidth=0,this.contentHeight=0,this.rectWidth=0,this.rectHeight=0,this.hRepeat=0,this.vRepeat=0,this.row=0,this.col=0,this._renderData.createFlexData(0,4,6,this.getVfmt()),this._updateIndices()},s.initLocal=function(){this._local={x:[],y:[]}},s._updateIndices=function(){for(var t=this._renderData.iDatas[0],e=0,i=0,n=t.length;e0?this.sizableWidth:0,this.sizableHeight=this.sizableHeight>0?this.sizableHeight:0;var _=this.hRepeat=0===c?this.sizableWidth:this.sizableWidth/c,f=this.vRepeat=0===h?this.sizableHeight:this.sizableHeight/h,d=(this.row=Math.ceil(f+2))*(this.col=Math.ceil(_+2));this.verticesCount=4*d,this.indicesCount=6*d;var p=this._renderData._flexBuffer;p.reserve(this.verticesCount,this.indicesCount)&&(this._updateIndices(),this.updateColor(t)),p.used(this.verticesCount,this.indicesCount),t._vertsDirty&&(this.updateUVs(t),this.updateVerts(t),t._vertsDirty=!1)},s.updateVerts=function(t){var e=t._spriteFrame,i=e._rect,n=t.node,r=n.anchorX*n.width,s=n.anchorY*n.height,a=this.row,o=this.col,c=this.contentWidth,u=this.contentHeight,l=this._local,h=l.x,_=l.y;h.length=_.length=0;var f,d,p=e.insetLeft,v=e.insetRight,g=i.width-p-v,m=e.insetTop,y=e.insetBottom,T=i.height-m-y,E=n.width/(p+v)>1?1:n.width/(p+v),A=n.height/(m+y)>1?1:n.height/(m+y);f=g>0?Math.floor(1e3*this.sizableWidth)/1e3%g==0?g:this.sizableWidth%g:this.sizableWidth,d=T>0?Math.floor(1e3*this.sizableHeight)/1e3%T==0?T:this.sizableHeight%T:this.sizableHeight;for(var C=0;C<=o;C++)0===C?h[C]=-r:C>0&&C0?C===o-1?p+f+g*(C-2)-r:p+Math.min(g,this.sizableWidth)+g*(C-2)-r:p+this.sizableWidth-r:C===o&&(h[C]=Math.min(p+this.sizableWidth+v,c)-r);for(var x=0;x<=a;x++)0===x?_[x]=-s:x>0&&x0?x===a-1?y+d+(x-2)*T-s:y+Math.min(T,this.sizableHeight)+(x-2)*T-s:y+this.sizableHeight-s:x===a&&(_[x]=Math.min(y+this.sizableHeight+m,u)-s);this.updateWorldVerts(t)},s.updateWorldVerts=function(t){for(var e,i,n,r,s=this._renderData,a=this._local,o=a.x,c=a.y,u=s.vDatas[0],l=this.row,h=this.col,_=t.node._worldMatrix.m,f=_[0],d=_[1],p=_[4],v=_[5],g=_[12],m=_[13],y=this.floatsPerVert,T=0,E=0,A=l;Eu?this.sizableHeight>=C*u?1:f%1:f;for(var b=0,S=h;ba?this.sizableWidth>=b*a?1:_%1:_,m?(0===C?(E[0]=g[0].u,E[1]=g[0].u,E[2]=g[4].u+(g[8].u-g[4].u)*p):C>2,n=this.vData.length,r=!1;if(i>n){for(;ns){for(;s>2,this._handler.updateMeshRange(t,e)},e.reset=function(){var t=this._initVerticesCount*this._verticesBytes>>2;this._reallocVData(t),this._reallocIData(this._initIndicesCount),this.usedVertices=0,this.usedVerticesFloats=0,this.usedIndices=0},t})();i.default=n,cc.FlexBuffer=n,e.exports=i.default}),{}],199:[(function(t,e){"use strict";var i,n=(i=t("../../../renderer/gfx"))&&i.__esModule?i:{default:i},r=(cc.sys.os===cc.sys.OS_IOS||cc.sys.os===cc.sys.OS_OSX)&&cc.sys.isBrowser&&/(OS 1[4-9])|(Version\/1[4-9])/.test(window.navigator.userAgent),s=cc.Class({name:"cc.MeshBuffer",ctor:function(t,e){this.init(t,e)},init:function(t,e){this.byteOffset=0,this.indiceOffset=0,this.vertexOffset=0,this.indiceStart=0,this._dirty=!1,this._vertexFormat=e,this._vertexBytes=this._vertexFormat._bytes,this._arrOffset=0,this._vbArr=[],this._vb=new n.default.VertexBuffer(t._device,e,n.default.USAGE_DYNAMIC,new ArrayBuffer,0),this._vbArr[0]=this._vb,this._ibArr=[],this._ib=new n.default.IndexBuffer(t._device,n.default.INDEX_FMT_UINT16,n.default.USAGE_STATIC,new ArrayBuffer,0),this._ibArr[0]=this._ib,this._vData=null,this._uintVData=null,this._iData=null,this._batcher=t,this._initVDataCount=256*e._bytes,this._initIDataCount=1536,this._offsetInfo={byteOffset:0,vertexOffset:0,indiceOffset:0},this._reallocBuffer()},uploadData:function(){if(0!==this.byteOffset&&this._dirty){var t=new Float32Array(this._vData.buffer,0,this.byteOffset>>2),e=new Uint16Array(this._iData.buffer,0,this.indiceOffset);this._vb.update(0,t),this._ib.update(0,e),this._dirty=!1}},switchBuffer:function(){var t=++this._arrOffset;this.byteOffset=0,this.vertexOffset=0,this.indiceOffset=0,this.indiceStart=0,t65535&&(this.uploadData(),this._batcher._flush(),this.switchBuffer())},requestStatic:function(t,e){this.checkAndSwitchBuffer(t);var i=this.byteOffset+t*this._vertexBytes,n=this.indiceOffset+e,r=this._vData.byteLength,s=this._iData.length;if(i>r||n>s){for(;r65535&&(this.uploadData(),this._batcher._flush())},s.prototype.forwardIndiceStartToOffset=function(){this.uploadData(),this.switchBuffer()}),cc.MeshBuffer=e.exports=s}),{"../../../renderer/gfx":256}],200:[(function(t,e){"use strict";var i=s(t("../../../renderer/core/input-assembler")),n=s(t("../../../renderer/memop/recycle-pool")),r=s(t("../../../renderer/scene/model"));function s(t){return t&&t.__esModule?t:{default:t}}var a=t("./vertex-format"),o=a.vfmtPosUvColor,c=a.vfmt3D,u=t("./quad-buffer"),l=t("./mesh-buffer"),h=t("./spine-buffer"),_=t("../../assets/material/CCMaterial"),f=(new(t("../../platform/id-generater"))("VertextFormat"),{}),d=new _,p=new i.default;p._count=0;var v=function(t,e){this._renderScene=e,this._device=t,this.walking=!1,this.material=d,this.cullingMask=1,this._iaPool=new n.default(function(){return new i.default},16),this._modelPool=new n.default(function(){return new r.default},16),this._quadBuffer=this.getBuffer("quad",o),this._meshBuffer=this.getBuffer("mesh",o),this._quadBuffer3D=this.getBuffer("quad",c),this._meshBuffer3D=this.getBuffer("mesh",c),this._buffer=this._meshBuffer,this._batchedModels=[],this._dummyNode=new cc.Node,this._sortKey=0,this.node=this._dummyNode,this.parentOpacity=1,this.parentOpacityDirty=0,this.worldMatDirty=0};v.prototype={constructor:v,reset:function(){this._iaPool.reset();for(var t=this._renderScene,e=this._batchedModels,i=0;i>2);this._vb.update(0,t),this._dirty=!1}},switchBuffer:function(){this._super();var t=new Uint16Array(this._iData.buffer,0,this._initIDataCount);this._ib.update(0,t)},_reallocBuffer:function(){this._reallocVData(!0),this._reallocIData(),this._fillQuadBuffer()}});cc.QuadBuffer=e.exports=n}),{"./mesh-buffer":199}],202:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=a;var n,r=(n=t("./flex-buffer"))&&n.__esModule?n:{default:n},s=t("./vertex-format");function a(){this.vDatas=[],this.uintVDatas=[],this.iDatas=[],this.meshCount=0,this._infos=null,this._flexBuffer=null}cc.js.mixin(a.prototype,{init:function(){},clear:function(){this.vDatas.length=0,this.iDatas.length=0,this.uintVDatas.length=0,this.meshCount=0,this._infos=null,this._flexBuffer&&this._flexBuffer.reset()},updateMesh:function(t,e,i){this.vDatas[t]=e,this.uintVDatas[t]=new Uint32Array(e.buffer,0,e.length),this.iDatas[t]=i,this.meshCount=this.vDatas.length},updateMeshRange:function(){},createData:function(t,e,i){var n=new Float32Array(e),r=new Uint16Array(i);this.updateMesh(t,n,r)},createQuadData:function(t,e,i){this.createData(t,e,i),this.initQuadIndices(this.iDatas[t])},createFlexData:function(t,e,i,n){n=n||s.vfmtPosUvColor,this._flexBuffer=new r.default(this,t,e,i,n)},initQuadIndices:function(t){for(var e=t.length/6,i=0,n=0;ir||n>s){for(;r0&&(t=t.substring(0,i));var n=/(\/|\\)([^\/\\]+)$/g.exec(t.replace(/(\/|\\)$/,""));if(!n)return t;var r=n[2];return e&&t.substring(t.length-e.length).toLowerCase()===e.toLowerCase()?r.substring(0,r.length-e.length):r},dirname:function(t){var e=n.exec(t);return e?e[2]:""},changeExtname:function(t,e){e=e||"";var i=t.indexOf("?"),n="";return i>0&&(n=t.substring(i),t=t.substring(0,i)),(i=t.lastIndexOf("."))<0?t+e+n:t.substring(0,i)+e+n},changeBasename:function(t,e,i){if(0===e.indexOf("."))return this.changeExtname(t,e);var n=t.indexOf("?"),r="",s=i?this.extname(t):"";return n>0&&(r=t.substring(n),t=t.substring(0,n)),n=(n=t.lastIndexOf("/"))<=0?0:n+1,t.substring(0,n)+e+s+r},_normalize:function(t){var e=t=String(t);do{e=t,t=t.replace(r,"")}while(e.length!==t.length);return t},sep:cc.sys.os===cc.sys.OS_WINDOWS?"\\":"/",stripSep:function(t){return t.replace(/[\/\\]$/,"")}},e.exports=cc.path}),{"../platform/CCSys":150}],206:[(function(t,e){"use strict";var i=function(t,e,i,n,r,s){this.a=t,this.b=e,this.c=i,this.d=n,this.tx=r,this.ty=s};i.create=function(t,e,i,n,r,s){return{a:t,b:e,c:i,d:n,tx:r,ty:s}},i.identity=function(){return{a:1,b:0,c:0,d:1,tx:0,ty:0}},i.clone=function(t){return{a:t.a,b:t.b,c:t.c,d:t.d,tx:t.tx,ty:t.ty}},i.concat=function(t,e,i){var n=e.a,r=e.b,s=e.c,a=e.d,o=e.tx,c=e.ty;return t.a=n*i.a+r*i.c,t.b=n*i.b+r*i.d,t.c=s*i.a+a*i.c,t.d=s*i.b+a*i.d,t.tx=o*i.a+c*i.c+i.tx,t.ty=o*i.b+c*i.d+i.ty,t},i.invert=function(t,e){var i=e.a,n=e.b,r=e.c,s=e.d,a=1/(i*s-n*r),o=e.tx,c=e.ty;return t.a=a*s,t.b=-a*n,t.c=-a*r,t.d=a*i,t.tx=a*(r*c-s*o),t.ty=a*(n*o-i*c),t},i.fromMat4=function(t,e){var i=e.m;return t.a=i[0],t.b=i[1],t.c=i[4],t.d=i[5],t.tx=i[12],t.ty=i[13],t},i.transformVec2=function(t,e,i,n){var r,s;return void 0===n?(n=i,r=e.x,s=e.y):(r=e,s=i),t.x=n.a*r+n.c*s+n.tx,t.y=n.b*r+n.d*s+n.ty,t},i.transformSize=function(t,e,i){return t.width=i.a*e.width+i.c*e.height,t.height=i.b*e.width+i.d*e.height,t},i.transformRect=function(t,e,i){var n=e.x,r=e.y,s=n+e.width,a=r+e.height,o=i.a*n+i.c*r+i.tx,c=i.b*n+i.d*r+i.ty,u=i.a*s+i.c*r+i.tx,l=i.b*s+i.d*r+i.ty,h=i.a*n+i.c*a+i.tx,_=i.b*n+i.d*a+i.ty,f=i.a*s+i.c*a+i.tx,d=i.b*s+i.d*a+i.ty,p=Math.min(o,u,h,f),v=Math.max(o,u,h,f),g=Math.min(c,l,_,d),m=Math.max(c,l,_,d);return t.x=p,t.y=g,t.width=v-p,t.height=m-g,t},i.transformObb=function(t,e,i,n,r,s){var a=r.x,o=r.y,c=r.width,u=r.height,l=s.a*a+s.c*o+s.tx,h=s.b*a+s.d*o+s.ty,_=s.a*c,f=s.b*c,d=s.c*u,p=s.d*u;e.x=l,e.y=h,i.x=_+l,i.y=f+h,t.x=d+l,t.y=p+h,n.x=_+d+l,n.y=f+p+h},cc.AffineTransform=e.exports=i}),{}],207:[(function(t,e){"use strict";var i=t("../platform/CCObject").Flags,n=t("./misc"),r=t("../platform/js"),s=t("../platform/id-generater"),a=t("../event-manager"),o=t("../renderer/render-flow"),c=i.Destroying,u=i.DontDestroy,l=i.Deactivating,h=new s("Node");function _(t){return t?"string"==typeof t?r.getClassByName(t):t:(cc.errorID(3804),null)}function f(t,e){if(e._sealed)for(var i=0;i0&&(r=p(n._children,e)))return r}return null}function v(t,e,i){for(var n=0;n0&&v(r._children,e,i)}}var g=cc.Class({name:"cc._BaseNode",extends:cc.Object,properties:{_parent:null,_children:[],_active:!0,_components:[],_prefab:null,_persistNode:{get:function(){return(this._objFlags&u)>0},set:function(t){t?this._objFlags|=u:this._objFlags&=~u}},name:{get:function(){return this._name},set:function(t){this._name=t}},uuid:{get:function(){return this._id}},children:{get:function(){return this._children}},childrenCount:{get:function(){return this._children.length}},active:{get:function(){return this._active},set:function(t){if(t=!!t,this._active!==t){this._active=t;var e=this._parent;e&&e._activeInHierarchy&&cc.director._nodeActivator.activateNode(this,t)}}},activeInHierarchy:{get:function(){return this._activeInHierarchy}}},ctor:function(t){this._name=void 0!==t?t:"New Node",this._activeInHierarchy=!1,this._id=h.getNewId(),cc.director._scheduler&&cc.director._scheduler.enableForTarget(this),this.__eventTargets=[]},getParent:function(){return this._parent},setParent:function(t){if(this._parent!==t){var e=this._parent;if(this._parent=t||null,this._onSetParent(t),t&&(a._setDirtyForNode(this),t._children.push(this),t.emit&&t.emit("child-added",this),t._renderFlag|=o.FLAG_CHILDREN),e){if(!(e._objFlags&c)){var i=e._children.indexOf(this);e._children.splice(i,1),e.emit&&e.emit("child-removed",this),this._onHierarchyChanged(e),0===e._children.length&&(e._renderFlag&=~o.FLAG_CHILDREN)}}else t&&this._onHierarchyChanged(null)}},attr:function(t){r.mixin(this,t)},getChildByUuid:function(t){if(!t)return cc.log("Invalid uuid"),null;for(var e=this._children,i=0,n=e.length;i0?(u=n,i=n._children,r=0,c[o]=i[r],o++):(c[o]=n,o++,s=!0);c.length=0,a._stackId--},cleanup:function(){},removeFromParent:function(t){this._parent&&(void 0===t&&(t=!0),this._parent.removeChild(this,t))},removeChild:function(t,e){this._children.indexOf(t)>-1&&((e||void 0===e)&&t.cleanup(),t.parent=null)},removeAllChildren:function(t){var e=this._children;void 0===t&&(t=!0);for(var i=e.length-1;i>=0;i--){var n=e[i];n&&(t&&n.cleanup(),n.parent=null)}this._children.length=0},isChildOf:function(t){var e=this;do{if(e===t)return!0;e=e._parent}while(e);return!1},getComponent:function(t){var e=_(t);return e?f(this,e):null},getComponents:function(t){var e=_(t),i=[];return e&&d(this,e,i),i},getComponentInChildren:function(t){var e=_(t);return e?p(this._children,e):null},getComponentsInChildren:function(t){var e=_(t),i=[];return e&&(d(this,e,i),v(this._children,e,i)),i},_checkMultipleComp:!1,addComponent:function(t){var e;if("string"==typeof t){if(!(e=r.getClassByName(t)))return cc.errorID(3807,t),cc._RFpeek()&&cc.errorID(3808,t),null}else{if(!t)return cc.errorID(3804),null;e=t}if("function"!=typeof e)return cc.errorID(3809),null;if(!r.isChildClassOf(e,cc.Component))return cc.errorID(3810),null;var i=e._requireComponent;if(i&&!this.getComponent(i)&&!this.addComponent(i))return null;var n=new e;return n.node=this,this._components.push(n),this._activeInHierarchy&&cc.director._nodeActivator.activateComp(n),n},_addComponentAt:!1,removeComponent:function(t){t?(t instanceof cc.Component||(t=this.getComponent(t)),t&&t.destroy()):cc.errorID(3813)},_getDependComponent:!1,_removeComponent:function(t){if(t){if(!(this._objFlags&c)){var e=this._components.indexOf(t);-1!==e?this._components.splice(e,1):t.node!==this&&cc.errorID(3815)}}else cc.errorID(3814)},destroy:function(){cc.Object.prototype.destroy.call(this)&&(this.active=!1)},destroyAllChildren:function(){for(var t=this._children,e=0;e>>1;i<=n;r=i+n>>>1){var s=t[r];if(s>e+1e-6)n=r-1;else{if(!(s>2],s[a[r++]]=n[(3&o)<<2|c>>4],s[a[r++]]=n[15&c]}return s.join("")}}),{"./misc":214}],211:[(function(t,e){"use strict";cc.find=e.exports=function(t,e){if(null==t)return cc.errorID(3814),null;if(e);else{var i=cc.director.getScene();if(!i)return null;e=i}for(var n=e,r="/"!==t[0]?0:1,s=t.split("/"),a=r;a>1,t|=t>>2,t|=t>>4,t|=t>>8,1+(t|=t>>16)},BUILTIN_CLASSID_RE:/^(?:cc|dragonBones|sp|ccsg)\..+/},r=new Array(123),s=0;s<123;++s)r[s]=64;for(var a=0;a<64;++a)r["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charCodeAt(a)]=a;n.BASE64_VALUES=r,n.pushToMap=function(t,e,i,n){var r=t[e];r?Array.isArray(r)?n?(r.push(r[0]),r[0]=i):r.push(i):t[e]=n?[i,r]:[r,i]:t[e]=i},n.clampf=function(t,e,i){if(e>i){var n=e;e=i,i=n}return t=0&&this.removeAt(e)},n.removeAt=function(t){this.array.splice(t,1),t<=this.i&&--this.i},n.fastRemove=function(t){var e=this.array.indexOf(t);e>=0&&this.fastRemoveAt(e)},n.fastRemoveAt=function(t){var e=this.array;e[t]=e[e.length-1],--e.length,t<=this.i&&--this.i},n.push=function(t){this.array.push(t)},e.exports=i}),{}],216:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n=(function(){function t(){this.enabled=!1,this.count=0,this.maxSize=1024}var e=t.prototype;return e.get=function(){},e.put=function(){},e.clear=function(){},t})();i.default=n,cc.pool={},n.register=function(t,e){cc.pool[t]=e},e.exports=i.default}),{}],217:[(function(t,e){"use strict";cc._PrefabInfo=cc.Class({name:"cc.PrefabInfo",properties:{root:null,asset:null,fileId:"",sync:!1}}),e.exports={syncWithPrefab:function(t){var e=t._prefab;if(!e.asset)return cc.errorID(3701,t.name),void(t._prefab=null);var i=t._objFlags,n=t._parent,r=t._id,s=t._name,a=t._active,o=t._eulerAngles.x,c=t._eulerAngles.y,u=t._eulerAngles.z,l=t._localZOrder,h=t._trs,_=h[0],f=h[1],d=h[2];cc.game._isCloning=!0,e.asset._doInstantiate(t),cc.game._isCloning=!1,t._objFlags=i,t._parent=n,t._id=r,t._prefab=e,t._name=s,t._active=a,t._localZOrder=l,(h=t._trs)[0]=_,h[1]=f,h[2]=d,t._eulerAngles.x=o,t._eulerAngles.y=c,t._eulerAngles.z=u}}}),{}],218:[(function(t,e){"use strict";var i=t("../../platform/CCMacro"),n=t("./perf-counter"),r=!1,s=15,a=null,o=null,c=null;function u(){if(!a){a={fps:{desc:"Framerate (FPS)",below:30,average:500},draws:{desc:"Draw Call"},frame:{desc:"Frame time (ms)",min:0,max:50,average:500},logic:{desc:"Game Logic (ms)",min:0,max:50,average:500,color:"#080"},render:{desc:"Renderer (ms)",min:0,max:50,average:500,color:"#f90"},mode:{desc:cc.game.renderType===cc.game.RENDER_TYPE_WEBGL?"WebGL":"Canvas",min:1}};var t=performance.now();for(var e in a)a[e]._counter=new n(e,a[e],t)}}function l(){if(!o||!o.isValid){(o=new cc.Node("PROFILER-NODE")).x=o.y=10,o.groupIndex=cc.Node.BuiltinGroupIndex.DEBUG,cc.Camera._setupDebugCamera(),o.zIndex=i.MAX_ZINDEX,cc.game.addPersistRootNode(o);var t=new cc.Node("LEFT-PANEL");t.anchorX=t.anchorY=0;var e=t.addComponent(cc.Label);e.fontSize=s,e.lineHeight=s,t.parent=o;var n=new cc.Node("RIGHT-PANEL");n.anchorX=1,n.anchorY=0,n.x=200;var r=n.addComponent(cc.Label);r.horizontalAlign=cc.Label.HorizontalAlign.RIGHT,r.fontSize=s,r.lineHeight=s,n.parent=o,cc.sys.platform!==cc.sys.BAIDU_GAME_SUB&&cc.sys.platform!==cc.sys.WECHAT_GAME_SUB&&(e.cacheMode=cc.Label.CacheMode.CHAR,r.cacheMode=cc.Label.CacheMode.CHAR),c={left:e,right:r}}}function h(){l();var t=cc.director._lastUpdate;a.frame._counter.start(t),a.logic._counter.start(t)}function _(){var t=performance.now();cc.director.isPaused()?a.frame._counter.start(t):a.logic._counter.end(t),a.render._counter.start(t)}function f(){var t=performance.now();a.render._counter.end(t),a.draws._counter.value=cc.renderer.drawCalls,a.frame._counter.end(t),a.fps._counter.frame(t);var e="",i="";for(var n in a){var r=a[n];r._counter.sample(t),e+=r.desc+"\n",i+=r._counter.human()+"\n"}c&&(c.left.string=e,c.right.string=i)}cc.profiler=e.exports={isShowingStats:function(){return r},hideStats:function(){r&&(o&&(o.active=!1),cc.director.off(cc.Director.EVENT_BEFORE_UPDATE,h),cc.director.off(cc.Director.EVENT_AFTER_UPDATE,_),cc.director.off(cc.Director.EVENT_AFTER_DRAW,f),r=!1)},showStats:function(){r||(u(),o&&(o.active=!0),cc.director.on(cc.Director.EVENT_BEFORE_UPDATE,h),cc.director.on(cc.Director.EVENT_AFTER_UPDATE,_),cc.director.on(cc.Director.EVENT_AFTER_DRAW,f),r=!0)}}}),{"../../platform/CCMacro":146,"./perf-counter":220}],219:[(function(t,e){"use strict";var i=cc.Class({name:"cc.Counter",ctor:function(t,e,i){this._id=t,this._opts=e||{},this._value=0,this._total=0,this._averageValue=0,this._accumValue=0,this._accumSamples=0,this._accumStart=i},properties:{value:{get:function(){return this._value},set:function(t){this._value=t}}},_average:function(t,e){if(this._opts.average){this._accumValue+=t,++this._accumSamples;var i=e;i-this._accumStart>=this._opts.average&&(this._averageValue=this._accumValue/this._accumSamples,this._accumValue=0,this._accumStart=i,this._accumSamples=0)}},sample:function(t){this._average(this._value,t)},human:function(){var t=this._opts.average?this._averageValue:this._value;return Math.round(100*t)/100},alarm:function(){return this._opts.below&&this._valuethis._opts.over}});e.exports=i}),{}],220:[(function(t,e){"use strict";var i=t("./counter"),n=cc.Class({name:"cc.PerfCounter",extends:i,ctor:function(t,e,i){this._time=i},start:function(t){this._time=t},end:function(t){this._value=t-this._time,this._average(this._value)},tick:function(){this.end(),this.start()},frame:function(t){var e=t,i=e-this._time;this._total++,i>(this._opts.average||1e3)&&(this._value=1e3*this._total/i,this._total=0,this._time=e,this._average(this._value))}});e.exports=n}),{"./counter":219}],221:[(function(t,e){"use strict";var i,n=new(((i=t("../platform/js"))&&i.__esModule?i:{default:i}).default.Pool)(2);function r(t){this.count=0,this.limit=t,this.datas={},this.head=null,this.tail=null}n.get=function(){return this._get()||{key:null,value:null,prev:null,next:null}},r.prototype.moveToHead=function(t){t.next=this.head,t.prev=null,null!==this.head&&(this.head.prev=t),this.head=t,null===this.tail&&(this.tail=t),this.count++,this.datas[t.key]=t},r.prototype.put=function(t,e){var i=n.get();if(i.key=t,i.value=e,this.count>=this.limit){var r=this.tail;delete this.datas[r.key],this.count--,this.tail=r.prev,this.tail.next=null,r.prev=null,r.next=null,n.put(r)}this.moveToHead(i)},r.prototype.remove=function(t){null!==t.prev?t.prev.next=t.next:this.head=t.next,null!==t.next?t.next.prev=t.prev:this.tail=t.prev,delete this.datas[t.key],this.count--},r.prototype.get=function(t){var e=this.datas[t];return e?(this.remove(e),this.moveToHead(e),e.value):null},r.prototype.clear=function(){this.count=0,this.datas={},this.head=null,this.tail=null},r.prototype.has=function(t){return!!this.datas[t]},r.prototype.delete=function(t){var e=this.datas[t];this.remove(e)};var s=new r(100),a={BASELINE_RATIO:.26,MIDDLE_RATIO:.37,BASELINE_OFFSET:0,label_wordRex:/([a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430-\u044f\u0410-\u042f\u0401\u0451]+|\S)/,label_symbolRex:/^[!,.:;'}\]%\?>\u3001\u2018\u201c\u300b\uff1f\u3002\uff0c\uff01]/,label_lastWordRex:/([a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430\xed\xec\xcd\xcc\xef\xc1\xc0\xe1\xe0\xc9\xc8\xd2\xd3\xf2\xf3\u0150\u0151\xd9\xda\u0170\xfa\u0171\xf1\xd1\xe6\xc6\u0153\u0152\xc3\xc2\xe3\xd4\xf5\u011b\u0161\u010d\u0159\u017e\xfd\xe1\xed\xe9\xf3\xfa\u016f\u0165\u010f\u0148\u011a\u0160\u010c\u0158\u017d\xc1\xcd\xc9\xd3\xda\u0164\u017c\u017a\u015b\xf3\u0144\u0142\u0119\u0107\u0105\u017b\u0179\u015a\xd3\u0143\u0141\u0118\u0106\u0104-\u044f\u0410-\u042f\u0401\u0451]+|\S)$/,label_lastEnglish:/[a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430\xed\xec\xcd\xcc\xef\xc1\xc0\xe1\xe0\xc9\xc8\xd2\xd3\xf2\xf3\u0150\u0151\xd9\xda\u0170\xfa\u0171\xf1\xd1\xe6\xc6\u0153\u0152\xc3\xc2\xe3\xd4\xf5\u011b\u0161\u010d\u0159\u017e\xfd\xe1\xed\xe9\xf3\xfa\u016f\u0165\u010f\u0148\u011a\u0160\u010c\u0158\u017d\xc1\xcd\xc9\xd3\xda\u0164\u017c\u017a\u015b\xf3\u0144\u0142\u0119\u0107\u0105\u017b\u0179\u015a\xd3\u0143\u0141\u0118\u0106\u0104-\u044f\u0410-\u042f\u0401\u0451]+$/,label_firstEnglish:/^[a-zA-Z0-9\xc4\xd6\xdc\xe4\xf6\xfc\xdf\xe9\xe8\xe7\xe0\xf9\xea\xe2\xee\xf4\xfb\u0430\xed\xec\xcd\xcc\xef\xc1\xc0\xe1\xe0\xc9\xc8\xd2\xd3\xf2\xf3\u0150\u0151\xd9\xda\u0170\xfa\u0171\xf1\xd1\xe6\xc6\u0153\u0152\xc3\xc2\xe3\xd4\xf5\u011b\u0161\u010d\u0159\u017e\xfd\xe1\xed\xe9\xf3\xfa\u016f\u0165\u010f\u0148\u011a\u0160\u010c\u0158\u017d\xc1\xcd\xc9\xd3\xda\u0164\u017c\u017a\u015b\xf3\u0144\u0142\u0119\u0107\u0105\u017b\u0179\u015a\xd3\u0143\u0141\u0118\u0106\u0104-\u044f\u0410-\u042f\u0401\u0451]/,highSurrogateRex:/[\uD800-\uDBFF]/,lowSurrogateRex:/[\uDC00-\uDFFF]/,label_wrapinspection:!0,__CHINESE_REG:/^[\u4E00-\u9FFF\u3400-\u4DFF]+$/,__JAPANESE_REG:/[\u3000-\u303F]|[\u3040-\u309F]|[\u30A0-\u30FF]|[\uFF00-\uFFEF]|[\u4E00-\u9FAF]|[\u2605-\u2606]|[\u2190-\u2195]|\u203B/g,__KOREAN_REG:/^[\u1100-\u11FF]|[\u3130-\u318F]|[\uA960-\uA97F]|[\uAC00-\uD7AF]|[\uD7B0-\uD7FF]+$/,isUnicodeCJK:function(t){return this.__CHINESE_REG.test(t)||this.__JAPANESE_REG.test(t)||this.__KOREAN_REG.test(t)},isUnicodeSpace:function(t){return(t=t.charCodeAt(0))>=9&&t<=13||32===t||133===t||160===t||5760===t||t>=8192&&t<=8202||8232===t||8233===t||8239===t||8287===t||12288===t},safeMeasureText:function(t,e,i){var n=(i||t.font)+"\ud83c\udfae"+e,r=s.get(n);if(null!==r)return r;var a=t.measureText(e),o=a&&a.width||0;return s.put(n,o),o},_safeSubstring:function(t,e,i){var n=e,r=i,s=t[e];if(this.lowSurrogateRex.test(s)&&n--,void 0!==i)if(i-1!==e){var a=t[i-1];this.highSurrogateRex.test(a)&&r--}else this.highSurrogateRex.test(s)&&r++;return t.substring(n,r)},fragmentText:function(t,e,i,n){var r=[];if(0===t.length||i<0)return r.push(""),r;for(var s=t;e>i&&s.length>1;){for(var a=s.length*(i/e)|0,o=this._safeSubstring(s,a),c=e-n(o),u=o,l=0,h=0;c>i&&h++<10;)a*=i/c,a|=0,c=e-n(o=this._safeSubstring(s,a));for(h=0;c<=i&&h++<10;){if(o){var _=this.label_wordRex.exec(o);l=_?_[0].length:1,u=o}a+=l,c=e-n(o=this._safeSubstring(s,a))}0==(a-=l)?(a=1,u=this._safeSubstring(s,1)):1===a&&this.highSurrogateRex.test(s[0])&&(a=2,u=this._safeSubstring(s,2));var f,d=this._safeSubstring(s,0,a);this.label_wrapinspection&&this.label_symbolRex.test(u||o)&&(0==(a-=(f=this.label_lastWordRex.exec(d))?f[0].length:0)&&(a=1),u=this._safeSubstring(s,a),d=this._safeSubstring(s,0,a)),this.label_firstEnglish.test(u)&&(f=this.label_lastEnglish.exec(d))&&d!==f[0]&&(a-=f[0].length,u=this._safeSubstring(s,a),d=this._safeSubstring(s,0,a)),0===r.length?r.push(d):(d=d.trimLeft()).length>0&&r.push(d),e=n(s=u||o)}return 0===r.length?r.push(s):(s=s.trimLeft()).length>0&&r.push(s),r}};cc.textUtils=e.exports=a}),{"../platform/js":162}],222:[(function(t,e){"use strict";var i=t("../assets/CCTexture2D"),n={loadImage:function(t,e,i){cc.assertID(t,3103);var n=cc.assetManager.assets.get(t);if(n)return n.loaded?(e&&e.call(i,null,n),n):(n.once("load",(function(){e&&e.call(i,null,n)}),i),n);cc.assetManager.loadRemote(t,(function(t,n){e&&e.call(i,t,n)}))},cacheImage:function(t,e){if(t&&e){var n=new i;return n.initWithElement(e),cc.assetManager.assets.add(t,n),n}},postLoadTexture:function(t,e){t.loaded?e&&e():t.nativeUrl?cc.assetManager.postLoadNative(t,e):e&&e()}};e.exports=n}),{"../assets/CCTexture2D":73}],223:[(function(t,e){"use strict";var i=t("./node-unit"),n=t("./node-mem-pool");e.exports={NodeMemPool:new n(i)}}),{"./node-mem-pool":225,"./node-unit":226}],224:[(function(t,e){"use strict";var i=function(t){this._unitClass=t,this._pool=[],this._findOrder=[]},n=i.prototype;n._initNative=function(){this._nativeMemPool=new renderer.MemPool},n._buildUnit=function(t){return new this._unitClass(t,this)},n._destroyUnit=function(t){this._pool[t]=null;for(var e=0,i=this._findOrder.length;e1&&e.isAllFree()&&this._destroyUnit(t.unitID),e},e.exports=i}),{}],225:[(function(t,e){"use strict";var i,n=t("./mem-pool"),r=function(t){n.call(this,t)};(i=function(){}).prototype=n.prototype;var s=r.prototype=new i;s._initNative=function(){this._nativeMemPool=new renderer.NodeMemPool},s._destroyUnit=function(t){n.prototype._destroyUnit.call(this,t)},e.exports=r}),{"./mem-pool":224}],226:[(function(t,e){"use strict";var i,n=t("../../value-types/utils"),r=(Uint32Array,10*n.FLOAT_BYTES),s=16*n.FLOAT_BYTES,a=16*n.FLOAT_BYTES,o=(Uint32Array,Uint32Array,Int32Array,Uint8Array,Uint8Array,Uint32Array,n.FLOAT_BYTES,t("./unit-base")),c=function(t,e){o.call(this,t,e);var i=this._contentNum;this.trsList=new n.FLOAT_ARRAY_TYPE(10*i),this.localMatList=new n.FLOAT_ARRAY_TYPE(16*i),this.worldMatList=new n.FLOAT_ARRAY_TYPE(16*i);for(var c=0;c",e=this._signData[2*e+0];for(var n=0,r="",s=this._contentNum,a=0;a");var o=t+n;console.log("unitID:",this.unitID,"spaceNum:",t,"calc using num:",n,"store using num:",this._data[1],"calc total num:",o,"actually total num:",this._contentNum),console.log("free info:",i),console.log("using info:",r),n!=this._data[1]&&cc.error("using num error","calc using num:",n,"store using num:",this._data[1]),t+n!=this._contentNum&&cc.error("total num error","calc total num:",o,"actually total num:",this._contentNum)},e.exports=i}),{}],228:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n=a(t("./value-type")),r=a(t("../platform/CCClass")),s=a(t("../utils/misc"));function a(t){return t&&t.__esModule?t:{default:t}}function o(t,e){for(var i=0;i>>0)+(n<<16)+(i<<8)+(0|e),s}i=t,(e=n).prototype=Object.create(i.prototype),e.prototype.constructor=e,c(e,i),n.copy=function(t,e){return t.r=e.r,t.g=e.g,t.b=e.b,t.a=e.a,t},n.clone=function(t){return new n(t.r,t.g,t.b,t.a)},n.set=function(t,e,i,n,r){return void 0===e&&(e=255),void 0===i&&(i=255),void 0===n&&(n=255),void 0===r&&(r=255),t.r=e,t.g=i,t.b=n,t.a=r,t},n.fromHex=function(t,e){var i=e>>24&255,n=e>>16&255,r=e>>8&255,s=255&e;return t.r=i,t.g=n,t.b=r,t.a=s,t},n.fromHEX=function(t,e){return e=0===e.indexOf("#")?e.substring(1):e,t.r=parseInt(e.substr(0,2),16)||0,t.g=parseInt(e.substr(2,2),16)||0,t.b=parseInt(e.substr(4,2),16)||0,t.a=parseInt(e.substr(6,2),16)||255,t._val=(t.a<<24>>>0)+(t.b<<16)+(t.g<<8)+t.r,t},n.add=function(t,e,i){return t.r=e.r+i.r,t.g=e.g+i.g,t.b=e.b+i.b,t.a=e.a+i.a,t},n.subtract=function(t,e,i){return t.r=e.r-i.r,t.g=e.g-i.g,t.b=e.b-i.b,t.a=e.a-i.a,t},n.multiply=function(t,e,i){return t.r=e.r*i.r,t.g=e.g*i.g,t.b=e.b*i.b,t.a=e.a*i.a,t},n.divide=function(t,e,i){return t.r=e.r/i.r,t.g=e.g/i.g,t.b=e.b/i.b,t.a=e.a/i.a,t},n.scale=function(t,e,i){return t.r=e.r*i,t.g=e.g*i,t.b=e.b*i,t.a=e.a*i,t},n.lerp=function(t,e,i,n){var r=e.r,s=e.g,a=e.b,o=e.a;return t.r=r+n*(i.r-r),t.g=s+n*(i.g-s),t.b=a+n*(i.b-a),t.a=o+n*(i.a-o),t},n.toArray=function(t,e,i){void 0===i&&(i=0);var r=e instanceof n||e.a>1?1/255:1;return t[i+0]=e.r*r,t[i+1]=e.g*r,t[i+2]=e.b*r,t[i+3]=e.a*r,t},n.fromArray=function(t,e,i){return void 0===i&&(i=0),e.r=255*t[i+0],e.g=255*t[i+1],e.b=255*t[i+2],e.a=255*t[i+3],e},n.premultiplyAlpha=function(t,e){var i=e.a/255;return t.r=e.r*i,t.g=e.g*i,t.b=e.b*i,t._fastSetA(e.a),t};var r,a,u,l=n.prototype;return l.clone=function(){var t=new n;return t._val=this._val,t},l.equals=function(t){return t&&this._val===t._val},l.lerp=function(t,e,i){i=i||new n;var r=this.r,s=this.g,a=this.b,o=this.a;return i.r=r+(t.r-r)*e,i.g=s+(t.g-s)*e,i.b=a+(t.b-a)*e,i.a=o+(t.a-o)*e,i},l.toString=function(){return"rgba("+this.r.toFixed()+", "+this.g.toFixed()+", "+this.b.toFixed()+", "+this.a.toFixed()+")"},l.getR=function(){return 255&this._val},l.setR=function(t){return t=~~s.default.clampf(t,0,255),this._val=(4294967040&this._val|t)>>>0,this},l.getG=function(){return(65280&this._val)>>8},l.setG=function(t){return t=~~s.default.clampf(t,0,255),this._val=(4294902015&this._val|t<<8)>>>0,this},l.getB=function(){return(16711680&this._val)>>16},l.setB=function(t){return t=~~s.default.clampf(t,0,255),this._val=(4278255615&this._val|t<<16)>>>0,this},l.getA=function(){return(4278190080&this._val)>>>24},l.setA=function(t){return t=~~s.default.clampf(t,0,255),this._val=(16777215&this._val|t<<24)>>>0,this},l.toCSS=function(t){return t&&"rgba"!==t?"rgb"===t?"rgb("+this.r+","+this.g+","+this.b+")":"#"+this.toHEX(t):"rgba("+this.r+","+this.g+","+this.b+","+(this.a/255).toFixed(2)+")"},l.fromHEX=function(t){t=0===t.indexOf("#")?t.substring(1):t;var e=parseInt(t.substr(0,2),16)||0,i=parseInt(t.substr(2,2),16)||0,n=parseInt(t.substr(4,2),16)||0,r=parseInt(t.substr(6,2),16)||255;return this._val=(r<<24>>>0)+(n<<16)+(i<<8)+e,this},l.toHEX=function(t){var e=[(this.r<16?"0":"")+this.r.toString(16),(this.g<16?"0":"")+this.g.toString(16),(this.b<16?"0":"")+this.b.toString(16)];return"#rgb"===t?(e[0]=e[0][0],e[1]=e[1][0],e[2]=e[2][0]):"#rrggbbaa"===t&&e.push((this.a<16?"0":"")+this.a.toString(16)),e.join("")},l.toRGBValue=function(){return 16777215&this._val},l.fromHSV=function(t,e,i){var n,r,s;if(0===e)n=r=s=i;else if(0===i)n=r=s=0;else{1===t&&(t=0),t*=6;var a=Math.floor(t),o=t-a,c=i*(1-e),u=i*(1-e*o),l=i*(1-e*(1-o));switch(a){case 0:n=i,r=l,s=c;break;case 1:n=u,r=i,s=c;break;case 2:n=c,r=i,s=l;break;case 3:n=c,r=u,s=i;break;case 4:n=l,r=c,s=i;break;case 5:n=i,r=c,s=u}}return n*=255,r*=255,s*=255,this._val=(this.a<<24>>>0)+(s<<16)+(r<<8)+(0|n),this},l.toHSV=function(){var t=this.r/255,e=this.g/255,i=this.b/255,n={h:0,s:0,v:0},r=Math.max(t,e,i),s=Math.min(t,e,i),a=0;return n.v=r,n.s=r?(r-s)/r:0,n.s?(a=r-s,n.h=t===r?(e-i)/a:e===r?2+(i-t)/a:4+(t-e)/a,n.h/=6,n.h<0&&(n.h+=1)):n.h=0,n},l.set=function(t){return t._val?this._val=t._val:(this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a),this},l._fastSetA=function(t){this._val=(16777215&this._val|t<<24)>>>0},l.multiply=function(t){var e=(255&this._val)*t.r>>8,i=(65280&this._val)*t.g>>8,n=(16711680&this._val)*t.b>>8,r=((4278190080&this._val)>>>8)*t.a;return this._val=4278190080&r|16711680&n|65280&i|255&e,this},r=n,u=[{key:"WHITE",get:function(){return new n(255,255,255,255)}},{key:"BLACK",get:function(){return new n(0,0,0,255)}},{key:"TRANSPARENT",get:function(){return new n(0,0,0,0)}},{key:"GRAY",get:function(){return new n(127.5,127.5,127.5)}},{key:"RED",get:function(){return new n(255,0,0)}},{key:"GREEN",get:function(){return new n(0,255,0)}},{key:"BLUE",get:function(){return new n(0,0,255)}},{key:"YELLOW",get:function(){return new n(255,235,4)}},{key:"ORANGE",get:function(){return new n(255,127,0)}},{key:"CYAN",get:function(){return new n(0,255,255)}},{key:"MAGENTA",get:function(){return new n(255,0,255)}}],(a=[{key:"r",get:function(){return this.getR()},set:function(t){this.setR(t)}},{key:"g",get:function(){return this.getG()},set:function(t){this.setG(t)}},{key:"b",get:function(){return this.getB()},set:function(t){this.setB(t)}},{key:"a",get:function(){return this.getA()},set:function(t){this.setA(t)}}])&&o(r.prototype,a),u&&o(r,u),n})(n.default);i.default=u,u.div=u.divide,u.sub=u.subtract,u.mul=u.multiply,u.WHITE_R=u.WHITE,u.BLACK_R=u.BLACK,u.TRANSPARENT_R=u.TRANSPARENT,u.GRAY_R=u.GRAY,u.RED_R=u.RED,u.GREEN_R=u.GREEN,u.BLUE_R=u.BLUE,u.YELLOW_R=u.YELLOW,u.ORANGE_R=u.ORANGE,u.CYAN_R=u.CYAN,u.MAGENTA_R=u.MAGENTA,r.default.fastDefine("cc.Color",u,{r:0,g:0,b:0,a:255}),cc.Color=u,cc.color=function(t,e,i,n){return"string"==typeof t?(new u).fromHEX(t):"object"==typeof t?new u(t.r,t.g,t.b,t.a):new u(t,e,i,n)},e.exports=i.default}),{"../platform/CCClass":141,"../utils/misc":214,"./value-type":237}],229:[(function(t,e,i){"use strict";i.__esModule=!0;var n={Vec2:!0,Vec3:!0,Vec4:!0,Mat4:!0,Mat3:!0,Rect:!0,Size:!0,Color:!0,Quat:!0,Trs:!0};i.Vec4=i.Vec3=i.Vec2=i.Trs=i.Size=i.Rect=i.Quat=i.Mat4=i.Mat3=i.Color=void 0;var r=p(t("./vec2"));i.Vec2=r.default;var s=p(t("./vec3"));i.Vec3=s.default;var a=p(t("./vec4"));i.Vec4=a.default;var o=p(t("./mat4"));i.Mat4=o.default;var c=p(t("./mat3"));i.Mat3=c.default;var u=p(t("./rect"));i.Rect=u.default;var l=p(t("./size"));i.Size=l.default;var h=p(t("./color"));i.Color=h.default;var _=p(t("./quat"));i.Quat=_.default;var f=p(t("./trs"));i.Trs=f.default;var d=t("./utils");function p(t){return t&&t.__esModule?t:{default:t}}Object.keys(d).forEach((function(t){"default"!==t&&"__esModule"!==t&&(Object.prototype.hasOwnProperty.call(n,t)||t in i&&i[t]===d[t]||(i[t]=d[t]))})),cc.math=e.exports}),{"./color":228,"./mat3":230,"./mat4":231,"./quat":232,"./rect":233,"./size":234,"./trs":235,"./utils":236,"./vec2":238,"./vec3":239,"./vec4":240}],230:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n,r=t("../value-types/utils"),s=(n=t("./vec3"))&&n.__esModule?n:{default:n},a=(function(){function t(t,e,i,n,s,a,o,c,u){if(void 0===t&&(t=1),void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),void 0===s&&(s=1),void 0===a&&(a=0),void 0===o&&(o=0),void 0===c&&(c=0),void 0===u&&(u=1),this.m=void 0,t instanceof r.FLOAT_ARRAY_TYPE)this.m=t;else{this.m=new r.FLOAT_ARRAY_TYPE(9);var l=this.m;l[0]=t,l[1]=e,l[2]=i,l[3]=n,l[4]=s,l[5]=a,l[6]=o,l[7]=c,l[8]=u}}return t.create=function(e,i,n,r,s,a,o,c,u){return void 0===e&&(e=1),void 0===i&&(i=0),void 0===n&&(n=0),void 0===r&&(r=0),void 0===s&&(s=1),void 0===a&&(a=0),void 0===o&&(o=0),void 0===c&&(c=0),void 0===u&&(u=1),new t(e,i,n,r,s,a,o,c,u)},t.clone=function(e){var i=e.m;return new t(i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],i[8])},t.copy=function(t,e){return t.m.set(e.m),t},t.set=function(t,e,i,n,r,s,a,o,c,u){var l=t.m;return l[0]=e,l[1]=i,l[2]=n,l[3]=r,l[4]=s,l[5]=a,l[6]=o,l[7]=c,l[8]=u,t},t.identity=function(t){var e=t.m;return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,t},t.transpose=function(t,e){var i=e.m,n=t.m;if(t===e){var r=i[1],s=i[2],a=i[5];n[1]=i[3],n[2]=i[6],n[3]=r,n[5]=i[7],n[6]=s,n[7]=a}else n[0]=i[0],n[1]=i[3],n[2]=i[6],n[3]=i[1],n[4]=i[4],n[5]=i[7],n[6]=i[2],n[7]=i[5],n[8]=i[8];return t},t.invert=function(t,e){var i=e.m,n=t.m,r=i[0],s=i[1],a=i[2],o=i[3],c=i[4],u=i[5],l=i[6],h=i[7],_=i[8],f=_*c-u*h,d=-_*o+u*l,p=h*o-c*l,v=r*f+s*d+a*p;return v?(v=1/v,n[0]=f*v,n[1]=(-_*s+a*h)*v,n[2]=(u*s-a*c)*v,n[3]=d*v,n[4]=(_*r-a*l)*v,n[5]=(-u*r+a*o)*v,n[6]=p*v,n[7]=(-h*r+s*l)*v,n[8]=(c*r-s*o)*v,t):t},t.adjoint=function(t,e){var i=e.m,n=t.m,r=i[0],s=i[1],a=i[2],o=i[3],c=i[4],u=i[5],l=i[6],h=i[7],_=i[8];return n[0]=c*_-u*h,n[1]=a*h-s*_,n[2]=s*u-a*c,n[3]=u*l-o*_,n[4]=r*_-a*l,n[5]=a*o-r*u,n[6]=o*h-c*l,n[7]=s*l-r*h,n[8]=r*c-s*o,t},t.determinant=function(t){var e=t.m,i=e[0],n=e[1],r=e[2],s=e[3],a=e[4],o=e[5],c=e[6],u=e[7],l=e[8];return i*(l*a-o*u)+n*(-l*s+o*c)+r*(u*s-a*c)},t.multiply=function(t,e,i){var n=e.m,r=i.m,s=t.m,a=n[0],o=n[1],c=n[2],u=n[3],l=n[4],h=n[5],_=n[6],f=n[7],d=n[8],p=r[0],v=r[1],g=r[2],m=r[3],y=r[4],T=r[5],E=r[6],A=r[7],C=r[8];return s[0]=p*a+v*u+g*_,s[1]=p*o+v*l+g*f,s[2]=p*c+v*h+g*d,s[3]=m*a+y*u+T*_,s[4]=m*o+y*l+T*f,s[5]=m*c+y*h+T*d,s[6]=E*a+A*u+C*_,s[7]=E*o+A*l+C*f,s[8]=E*c+A*h+C*d,t},t.multiplyMat4=function(t,e,i){var n=e.m,r=i.m,s=t.m,a=n[0],o=n[1],c=n[2],u=n[3],l=n[4],h=n[5],_=n[6],f=n[7],d=n[8],p=r[0],v=r[1],g=r[2],m=r[4],y=r[5],T=r[6],E=r[8],A=r[9],C=r[10];return s[0]=p*a+v*u+g*_,s[1]=p*o+v*l+g*f,s[2]=p*c+v*h+g*d,s[3]=m*a+y*u+T*_,s[4]=m*o+y*l+T*f,s[5]=m*c+y*h+T*d,s[6]=E*a+A*u+C*_,s[7]=E*o+A*l+C*f,s[8]=E*c+A*h+C*d,t},t.translate=function(t,e,i){var n=e.m,r=t.m,s=n[0],a=n[1],o=n[2],c=n[3],u=n[4],l=n[5],h=n[6],_=n[7],f=n[8],d=i.x,p=i.y;return r[0]=s,r[1]=a,r[2]=o,r[3]=c,r[4]=u,r[5]=l,r[6]=d*s+p*c+h,r[7]=d*a+p*u+_,r[8]=d*o+p*l+f,t},t.rotate=function(t,e,i){var n=e.m,r=t.m,s=n[0],a=n[1],o=n[2],c=n[3],u=n[4],l=n[5],h=n[6],_=n[7],f=n[8],d=Math.sin(i),p=Math.cos(i);return r[0]=p*s+d*c,r[1]=p*a+d*u,r[2]=p*o+d*l,r[3]=p*c-d*s,r[4]=p*u-d*a,r[5]=p*l-d*o,r[6]=h,r[7]=_,r[8]=f,t},t.scale=function(t,e,i){var n=i.x,r=i.y,s=e.m,a=t.m;return a[0]=n*s[0],a[1]=n*s[1],a[2]=n*s[2],a[3]=r*s[3],a[4]=r*s[4],a[5]=r*s[5],a[6]=s[6],a[7]=s[7],a[8]=s[8],t},t.fromMat4=function(t,e){var i=e.m,n=t.m;return n[0]=i[0],n[1]=i[1],n[2]=i[2],n[3]=i[4],n[4]=i[5],n[5]=i[6],n[6]=i[8],n[7]=i[9],n[8]=i[10],t},t.fromTranslation=function(t,e){var i=t.m;return i[0]=1,i[1]=0,i[2]=0,i[3]=0,i[4]=1,i[5]=0,i[6]=e.x,i[7]=e.y,i[8]=1,t},t.fromRotation=function(t,e){var i=Math.sin(e),n=Math.cos(e),r=t.m;return r[0]=n,r[1]=i,r[2]=0,r[3]=-i,r[4]=n,r[5]=0,r[6]=0,r[7]=0,r[8]=1,t},t.fromScaling=function(t,e){var i=t.m;return i[0]=e.x,i[1]=0,i[2]=0,i[3]=0,i[4]=e.y,i[5]=0,i[6]=0,i[7]=0,i[8]=1,t},t.fromQuat=function(t,e){var i=t.m,n=e.x,r=e.y,s=e.z,a=e.w,o=n+n,c=r+r,u=s+s,l=n*o,h=r*o,_=r*c,f=s*o,d=s*c,p=s*u,v=a*o,g=a*c,m=a*u;return i[0]=1-_-p,i[3]=h-m,i[6]=f+g,i[1]=h+m,i[4]=1-l-p,i[7]=d-v,i[2]=f-g,i[5]=d+v,i[8]=1-l-_,t},t.fromViewUp=function(e,i,n){var a,o,c;return(a=new s.default(0,1,0),o=new s.default,c=new s.default,function(e,i,n){return s.default.lengthSqr(i)0?(r=2*Math.sqrt(n+1),t.w=.25*r,t.x=(i[6]-i[9])/r,t.y=(i[8]-i[2])/r,t.z=(i[1]-i[4])/r):i[0]>i[5]&&i[0]>i[10]?(r=2*Math.sqrt(1+i[0]-i[5]-i[10]),t.w=(i[6]-i[9])/r,t.x=.25*r,t.y=(i[1]+i[4])/r,t.z=(i[8]+i[2])/r):i[5]>i[10]?(r=2*Math.sqrt(1+i[5]-i[0]-i[10]),t.w=(i[8]-i[2])/r,t.x=(i[1]+i[4])/r,t.y=.25*r,t.z=(i[6]+i[9])/r):(r=2*Math.sqrt(1+i[10]-i[0]-i[5]),t.w=(i[1]-i[4])/r,t.x=(i[8]+i[2])/r,t.y=(i[6]+i[9])/r,t.z=.25*r),t},r.toRTS=function(t,e,i,n){var r=t.m,o=I.m;n.x=s.default.set(w,r[0],r[1],r[2]).mag(),o[0]=r[0]/n.x,o[1]=r[1]/n.x,o[2]=r[2]/n.x,n.y=s.default.set(w,r[4],r[5],r[6]).mag(),o[3]=r[4]/n.y,o[4]=r[5]/n.y,o[5]=r[6]/n.y,n.z=s.default.set(w,r[8],r[9],r[10]).mag(),o[6]=r[8]/n.z,o[7]=r[9]/n.z,o[8]=r[10]/n.z,c.default.determinant(I)<0&&(n.x*=-1,o[0]*=-1,o[1]*=-1,o[2]*=-1),a.default.fromMat3(e,I),s.default.set(i,r[12],r[13],r[14])},r.fromRTS=function(t,e,i,n){var r=e.x,s=e.y,a=e.z,o=e.w,c=r+r,u=s+s,l=a+a,h=r*c,_=r*u,f=r*l,d=s*u,p=s*l,v=a*l,g=o*c,m=o*u,y=o*l,T=n.x,E=n.y,A=n.z,C=t.m;return C[0]=(1-(d+v))*T,C[1]=(_+y)*T,C[2]=(f-m)*T,C[3]=0,C[4]=(_-y)*E,C[5]=(1-(h+v))*E,C[6]=(p+g)*E,C[7]=0,C[8]=(f+m)*A,C[9]=(p-g)*A,C[10]=(1-(h+d))*A,C[11]=0,C[12]=i.x,C[13]=i.y,C[14]=i.z,C[15]=1,t},r.fromRTSOrigin=function(t,e,i,n,r){var s=e.x,a=e.y,o=e.z,c=e.w,u=s+s,l=a+a,h=o+o,_=s*u,f=s*l,d=s*h,p=a*l,v=a*h,g=o*h,m=c*u,y=c*l,T=c*h,E=n.x,A=n.y,C=n.z,x=r.x,b=r.y,S=r.z,R=t.m;return R[0]=(1-(p+g))*E,R[1]=(f+T)*E,R[2]=(d-y)*E,R[3]=0,R[4]=(f-T)*A,R[5]=(1-(_+g))*A,R[6]=(v+m)*A,R[7]=0,R[8]=(d+y)*C,R[9]=(v-m)*C,R[10]=(1-(_+p))*C,R[11]=0,R[12]=i.x+x-(R[0]*x+R[4]*b+R[8]*S),R[13]=i.y+b-(R[1]*x+R[5]*b+R[9]*S),R[14]=i.z+S-(R[2]*x+R[6]*b+R[10]*S),R[15]=1,t},r.fromQuat=function(t,e){var i=e.x,n=e.y,r=e.z,s=e.w,a=i+i,o=n+n,c=r+r,u=i*a,l=n*a,h=n*o,_=r*a,f=r*o,d=r*c,p=s*a,v=s*o,g=s*c,m=t.m;return m[0]=1-h-d,m[1]=l+g,m[2]=_-v,m[3]=0,m[4]=l-g,m[5]=1-u-d,m[6]=f+p,m[7]=0,m[8]=_+v,m[9]=f-p,m[10]=1-u-h,m[11]=0,m[12]=0,m[13]=0,m[14]=0,m[15]=1,t},r.frustum=function(t,e,i,n,r,s,a){var o=1/(i-e),c=1/(r-n),u=1/(s-a),l=t.m;return l[0]=2*s*o,l[1]=0,l[2]=0,l[3]=0,l[4]=0,l[5]=2*s*c,l[6]=0,l[7]=0,l[8]=(i+e)*o,l[9]=(r+n)*c,l[10]=(a+s)*u,l[11]=-1,l[12]=0,l[13]=0,l[14]=a*s*2*u,l[15]=0,t},r.perspective=function(t,e,i,n,r){var s=1/Math.tan(e/2),a=1/(n-r),o=t.m;return o[0]=s/i,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=(r+n)*a,o[11]=-1,o[12]=0,o[13]=0,o[14]=2*r*n*a,o[15]=0,t},r.ortho=function(t,e,i,n,r,s,a){var o=1/(e-i),c=1/(n-r),u=1/(s-a),l=t.m;return l[0]=-2*o,l[1]=0,l[2]=0,l[3]=0,l[4]=0,l[5]=-2*c,l[6]=0,l[7]=0,l[8]=0,l[9]=0,l[10]=2*u,l[11]=0,l[12]=(e+i)*o,l[13]=(r+n)*c,l[14]=(a+s)*u,l[15]=1,t},r.lookAt=function(t,e,i,n){var r=e.x,s=e.y,a=e.z,o=n.x,c=n.y,u=n.z,l=r-i.x,h=s-i.y,_=a-i.z,f=1/Math.sqrt(l*l+h*h+_*_),d=c*(_*=f)-u*(h*=f),p=u*(l*=f)-o*_,v=o*h-c*l,g=h*(v*=f=1/Math.sqrt(d*d+p*p+v*v))-_*(p*=f),m=_*(d*=f)-l*v,y=l*p-h*d,T=t.m;return T[0]=d,T[1]=g,T[2]=l,T[3]=0,T[4]=p,T[5]=m,T[6]=h,T[7]=0,T[8]=v,T[9]=y,T[10]=_,T[11]=0,T[12]=-(d*r+p*s+v*a),T[13]=-(g*r+m*s+y*a),T[14]=-(l*r+h*s+_*a),T[15]=1,t},r.inverseTranspose=function(t,e){var i=e.m;h=i[0],_=i[1],f=i[2],d=i[3],p=i[4],v=i[5],g=i[6],m=i[7],y=i[8],T=i[9],E=i[10],A=i[11],C=i[12],x=i[13],b=i[14],S=i[15];var n=h*v-_*p,r=h*g-f*p,s=h*m-d*p,a=_*g-f*v,o=_*m-d*v,c=f*m-d*g,u=y*x-T*C,l=y*b-E*C,R=y*S-A*C,w=T*b-E*x,I=T*S-A*x,M=E*S-A*b,O=n*M-r*I+s*w+a*R-o*l+c*u;return O?(O=1/O,(i=t.m)[0]=(v*M-g*I+m*w)*O,i[1]=(g*R-p*M-m*l)*O,i[2]=(p*I-v*R+m*u)*O,i[3]=0,i[4]=(f*I-_*M-d*w)*O,i[5]=(h*M-f*R+d*l)*O,i[6]=(_*R-h*I-d*u)*O,i[7]=0,i[8]=(x*c-b*o+S*a)*O,i[9]=(b*s-C*c-S*r)*O,i[10]=(C*o-x*s+S*n)*O,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,t):null},r.add=function(t,e,i){var n=t.m,r=e.m,s=i.m;return n[0]=r[0]+s[0],n[1]=r[1]+s[1],n[2]=r[2]+s[2],n[3]=r[3]+s[3],n[4]=r[4]+s[4],n[5]=r[5]+s[5],n[6]=r[6]+s[6],n[7]=r[7]+s[7],n[8]=r[8]+s[8],n[9]=r[9]+s[9],n[10]=r[10]+s[10],n[11]=r[11]+s[11],n[12]=r[12]+s[12],n[13]=r[13]+s[13],n[14]=r[14]+s[14],n[15]=r[15]+s[15],t},r.subtract=function(t,e,i){var n=t.m,r=e.m,s=i.m;return n[0]=r[0]-s[0],n[1]=r[1]-s[1],n[2]=r[2]-s[2],n[3]=r[3]-s[3],n[4]=r[4]-s[4],n[5]=r[5]-s[5],n[6]=r[6]-s[6],n[7]=r[7]-s[7],n[8]=r[8]-s[8],n[9]=r[9]-s[9],n[10]=r[10]-s[10],n[11]=r[11]-s[11],n[12]=r[12]-s[12],n[13]=r[13]-s[13],n[14]=r[14]-s[14],n[15]=r[15]-s[15],t},r.multiplyScalar=function(t,e,i){var n=t.m,r=e.m;return n[0]=r[0]*i,n[1]=r[1]*i,n[2]=r[2]*i,n[3]=r[3]*i,n[4]=r[4]*i,n[5]=r[5]*i,n[6]=r[6]*i,n[7]=r[7]*i,n[8]=r[8]*i,n[9]=r[9]*i,n[10]=r[10]*i,n[11]=r[11]*i,n[12]=r[12]*i,n[13]=r[13]*i,n[14]=r[14]*i,n[15]=r[15]*i,t},r.multiplyScalarAndAdd=function(t,e,i,n){var r=t.m,s=e.m,a=i.m;return r[0]=s[0]+a[0]*n,r[1]=s[1]+a[1]*n,r[2]=s[2]+a[2]*n,r[3]=s[3]+a[3]*n,r[4]=s[4]+a[4]*n,r[5]=s[5]+a[5]*n,r[6]=s[6]+a[6]*n,r[7]=s[7]+a[7]*n,r[8]=s[8]+a[8]*n,r[9]=s[9]+a[9]*n,r[10]=s[10]+a[10]*n,r[11]=s[11]+a[11]*n,r[12]=s[12]+a[12]*n,r[13]=s[13]+a[13]*n,r[14]=s[14]+a[14]*n,r[15]=s[15]+a[15]*n,t},r.strictEquals=function(t,e){var i=t.m,n=e.m;return i[0]===n[0]&&i[1]===n[1]&&i[2]===n[2]&&i[3]===n[3]&&i[4]===n[4]&&i[5]===n[5]&&i[6]===n[6]&&i[7]===n[7]&&i[8]===n[8]&&i[9]===n[9]&&i[10]===n[10]&&i[11]===n[11]&&i[12]===n[12]&&i[13]===n[13]&&i[14]===n[14]&&i[15]===n[15]},r.equals=function(t,e,i){void 0===i&&(i=o.EPSILON);var n=t.m,r=e.m;return Math.abs(n[0]-r[0])<=i*Math.max(1,Math.abs(n[0]),Math.abs(r[0]))&&Math.abs(n[1]-r[1])<=i*Math.max(1,Math.abs(n[1]),Math.abs(r[1]))&&Math.abs(n[2]-r[2])<=i*Math.max(1,Math.abs(n[2]),Math.abs(r[2]))&&Math.abs(n[3]-r[3])<=i*Math.max(1,Math.abs(n[3]),Math.abs(r[3]))&&Math.abs(n[4]-r[4])<=i*Math.max(1,Math.abs(n[4]),Math.abs(r[4]))&&Math.abs(n[5]-r[5])<=i*Math.max(1,Math.abs(n[5]),Math.abs(r[5]))&&Math.abs(n[6]-r[6])<=i*Math.max(1,Math.abs(n[6]),Math.abs(r[6]))&&Math.abs(n[7]-r[7])<=i*Math.max(1,Math.abs(n[7]),Math.abs(r[7]))&&Math.abs(n[8]-r[8])<=i*Math.max(1,Math.abs(n[8]),Math.abs(r[8]))&&Math.abs(n[9]-r[9])<=i*Math.max(1,Math.abs(n[9]),Math.abs(r[9]))&&Math.abs(n[10]-r[10])<=i*Math.max(1,Math.abs(n[10]),Math.abs(r[10]))&&Math.abs(n[11]-r[11])<=i*Math.max(1,Math.abs(n[11]),Math.abs(r[11]))&&Math.abs(n[12]-r[12])<=i*Math.max(1,Math.abs(n[12]),Math.abs(r[12]))&&Math.abs(n[13]-r[13])<=i*Math.max(1,Math.abs(n[13]),Math.abs(r[13]))&&Math.abs(n[14]-r[14])<=i*Math.max(1,Math.abs(n[14]),Math.abs(r[14]))&&Math.abs(n[15]-r[15])<=i*Math.max(1,Math.abs(n[15]),Math.abs(r[15]))},r.adjoint=function(t,e){var i=e.m,n=t.m,r=i[0],s=i[1],a=i[2],o=i[3],c=i[4],u=i[5],l=i[6],h=i[7],_=i[8],f=i[9],d=i[10],p=i[11],v=i[12],g=i[13],m=i[14],y=i[15];return n[0]=u*(d*y-p*m)-f*(l*y-h*m)+g*(l*p-h*d),n[1]=-(s*(d*y-p*m)-f*(a*y-o*m)+g*(a*p-o*d)),n[2]=s*(l*y-h*m)-u*(a*y-o*m)+g*(a*h-o*l),n[3]=-(s*(l*p-h*d)-u*(a*p-o*d)+f*(a*h-o*l)),n[4]=-(c*(d*y-p*m)-_*(l*y-h*m)+v*(l*p-h*d)),n[5]=r*(d*y-p*m)-_*(a*y-o*m)+v*(a*p-o*d),n[6]=-(r*(l*y-h*m)-c*(a*y-o*m)+v*(a*h-o*l)),n[7]=r*(l*p-h*d)-c*(a*p-o*d)+_*(a*h-o*l),n[8]=c*(f*y-p*g)-_*(u*y-h*g)+v*(u*p-h*f),n[9]=-(r*(f*y-p*g)-_*(s*y-o*g)+v*(s*p-o*f)),n[10]=r*(u*y-h*g)-c*(s*y-o*g)+v*(s*h-o*u),n[11]=-(r*(u*p-h*f)-c*(s*p-o*f)+_*(s*h-o*u)),n[12]=-(c*(f*m-d*g)-_*(u*m-l*g)+v*(u*d-l*f)),n[13]=r*(f*m-d*g)-_*(s*m-a*g)+v*(s*d-a*f),n[14]=-(r*(u*m-l*g)-c*(s*m-a*g)+v*(s*l-a*u)),n[15]=r*(u*d-l*f)-c*(s*d-a*f)+_*(s*l-a*u),t},r.toArray=function(t,e,i){void 0===i&&(i=0);for(var n=e.m,r=0;r<16;r++)t[i+r]=n[r];return t},r.fromArray=function(t,e,i){void 0===i&&(i=0);for(var n=t.m,r=0;r<16;r++)n[r]=e[i+r];return t},n.clone=function(){var t=this.m;return new r(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10],t[11],t[12],t[13],t[14],t[15])},n.set=function(t){var e=this.m,i=t.m;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],e[9]=i[9],e[10]=i[10],e[11]=i[11],e[12]=i[12],e[13]=i[13],e[14]=i[14],e[15]=i[15],this},n.equals=function(t){return r.strictEquals(this,t)},n.fuzzyEquals=function(t){return r.equals(this,t)},n.toString=function(){var t=this.m;return t?"[\n"+t[0]+", "+t[1]+", "+t[2]+", "+t[3]+",\n"+t[4]+", "+t[5]+", "+t[6]+", "+t[7]+",\n"+t[8]+", "+t[9]+", "+t[10]+", "+t[11]+",\n"+t[12]+", "+t[13]+", "+t[14]+", "+t[15]+"\n]":"[\n1, 0, 0, 0\n0, 1, 0, 0\n0, 0, 1, 0\n0, 0, 0, 1\n]"},n.identity=function(){return r.identity(this)},n.transpose=function(t){return t=t||new r,r.transpose(t,this)},n.invert=function(t){return t=t||new r,r.invert(t,this)},n.adjoint=function(t){return t=t||new r,r.adjoint(t,this)},n.determinant=function(){return r.determinant(this)},n.add=function(t,e){return e=e||new r,r.add(e,this,t)},n.subtract=function(t){return r.subtract(this,this,t)},n.multiply=function(t){return r.multiply(this,this,t)},n.multiplyScalar=function(t){return r.multiplyScalar(this,this,t)},n.translate=function(t,e){return e=e||new r,r.translate(e,this,t)},n.scale=function(t,e){return e=e||new r,r.scale(e,this,t)},n.rotate=function(t,e,i){return i=i||new r,r.rotate(i,this,t,e)},n.getTranslation=function(t){return t=t||new s.default,r.getTranslation(t,this)},n.getScale=function(t){return t=t||new s.default,r.getScaling(t,this)},n.getRotation=function(t){return t=t||new a.default,r.getRotation(t,this)},n.fromRTS=function(t,e,i){return r.fromRTS(this,t,e,i)},n.fromQuat=function(t){return r.fromQuat(this,t)},r})(n.default);i.default=R,R.mul=R.multiply,R.sub=R.subtract,R.IDENTITY=Object.freeze(new R);var w=new s.default,I=new c.default;r.default.fastDefine("cc.Mat4",R,{m00:1,m01:0,m02:0,m03:0,m04:0,m05:1,m06:0,m07:0,m08:0,m09:0,m10:1,m11:0,m12:0,m13:0,m14:0,m15:1});for(var M=function(t){Object.defineProperty(R.prototype,"m"+t,{get:function(){return this.m[t]},set:function(e){this.m[t]=e}})},O=0;O<16;O++)M(O);cc.mat4=function(t,e,i,n,r,s,a,o,c,u,l,h,_,f,d,p){var v=new R(t,e,i,n,r,s,a,o,c,u,l,h,_,f,d,p);return void 0===t&&R.identity(v),v},cc.Mat4=R,e.exports=i.default}),{"../platform/CCClass":141,"./mat3":230,"./quat":232,"./utils":236,"./value-type":237,"./vec3":239}],232:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n=c(t("./value-type")),r=c(t("../platform/CCClass")),s=c(t("./vec3")),a=c(t("./mat3")),o=t("./utils");function c(t){return t&&t.__esModule?t:{default:t}}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var l=0,h=0,_=0,f=0,d=(function(t){var e,i;i=t,(e=r).prototype=Object.create(i.prototype),e.prototype.constructor=e,u(e,i);var n=r.prototype;function r(e,i,n,r){var s;return void 0===e&&(e=0),void 0===i&&(i=0),void 0===n&&(n=0),void 0===r&&(r=1),(s=t.call(this)||this).x=void 0,s.y=void 0,s.z=void 0,s.w=void 0,e&&"object"==typeof e?(s.x=e.x,s.y=e.y,s.z=e.z,s.w=e.w):(s.x=e,s.y=i,s.z=n,s.w=r),s}return n.mul=function(t,e){return r.multiply(e||new r,this,t)},r.clone=function(t){return new r(t.x,t.y,t.z,t.w)},r.copy=function(t,e){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t},r.set=function(t,e,i,n,r){return t.x=e,t.y=i,t.z=n,t.w=r,t},r.identity=function(t){return t.x=0,t.y=0,t.z=0,t.w=1,t},r.rotationTo=function(t,e,i){var n=s.default.dot(e,i);return n<-.999999?(s.default.cross(g,s.default.RIGHT,e),g.mag()<1e-6&&s.default.cross(g,s.default.UP,e),s.default.normalize(g,g),r.fromAxisAngle(t,g,Math.PI),t):n>.999999?(t.x=0,t.y=0,t.z=0,t.w=1,t):(s.default.cross(g,e,i),t.x=g.x,t.y=g.y,t.z=g.z,t.w=1+n,r.normalize(t,t))},r.getAxisAngle=function(t,e){var i=2*Math.acos(e.w),n=Math.sin(i/2);return 0!==n?(t.x=e.x/n,t.y=e.y/n,t.z=e.z/n):(t.x=1,t.y=0,t.z=0),i},r.multiply=function(t,e,i){return l=e.x*i.w+e.w*i.x+e.y*i.z-e.z*i.y,h=e.y*i.w+e.w*i.y+e.z*i.x-e.x*i.z,_=e.z*i.w+e.w*i.z+e.x*i.y-e.y*i.x,f=e.w*i.w-e.x*i.x-e.y*i.y-e.z*i.z,t.x=l,t.y=h,t.z=_,t.w=f,t},r.multiplyScalar=function(t,e,i){return t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t.w=e.w*i,t},r.scaleAndAdd=function(t,e,i,n){return t.x=e.x+i.x*n,t.y=e.y+i.y*n,t.z=e.z+i.z*n,t.w=e.w+i.w*n,t},r.rotateX=function(t,e,i){i*=.5;var n=Math.sin(i),r=Math.cos(i);return l=e.x*r+e.w*n,h=e.y*r+e.z*n,_=e.z*r-e.y*n,f=e.w*r-e.x*n,t.x=l,t.y=h,t.z=_,t.w=f,t},r.rotateY=function(t,e,i){i*=.5;var n=Math.sin(i),r=Math.cos(i);return l=e.x*r-e.z*n,h=e.y*r+e.w*n,_=e.z*r+e.x*n,f=e.w*r-e.y*n,t.x=l,t.y=h,t.z=_,t.w=f,t},r.rotateZ=function(t,e,i){i*=.5;var n=Math.sin(i),r=Math.cos(i);return l=e.x*r+e.y*n,h=e.y*r-e.x*n,_=e.z*r+e.w*n,f=e.w*r-e.z*n,t.x=l,t.y=h,t.z=_,t.w=f,t},r.rotateAround=function(t,e,i,n){return r.invert(p,e),s.default.transformQuat(g,i,p),r.fromAxisAngle(p,g,n),r.multiply(t,e,p),t},r.rotateAroundLocal=function(t,e,i,n){return r.fromAxisAngle(p,i,n),r.multiply(t,e,p),t},r.calculateW=function(t,e){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=Math.sqrt(Math.abs(1-e.x*e.x-e.y*e.y-e.z*e.z)),t},r.dot=function(t,e){return t.x*e.x+t.y*e.y+t.z*e.z+t.w*e.w},r.lerp=function(t,e,i,n){return t.x=e.x+n*(i.x-e.x),t.y=e.y+n*(i.y-e.y),t.z=e.z+n*(i.z-e.z),t.w=e.w+n*(i.w-e.w),t},r.slerp=function(t,e,i,n){var r=0,s=0,a=e.x*i.x+e.y*i.y+e.z*i.z+e.w*i.w;if(a<0&&(a=-a,i.x=-i.x,i.y=-i.y,i.z=-i.z,i.w=-i.w),1-a>1e-6){var o=Math.acos(a),c=Math.sin(o);r=Math.sin((1-n)*o)/c,s=Math.sin(n*o)/c}else r=1-n,s=n;return t.x=r*e.x+s*i.x,t.y=r*e.y+s*i.y,t.z=r*e.z+s*i.z,t.w=r*e.w+s*i.w,t},r.sqlerp=function(t,e,i,n,s,a){return r.slerp(p,e,s,a),r.slerp(v,i,n,a),r.slerp(t,p,v,2*a*(1-a)),t},r.invert=function(t,e){var i=e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w,n=i?1/i:0;return t.x=-e.x*n,t.y=-e.y*n,t.z=-e.z*n,t.w=e.w*n,t},r.conjugate=function(t,e){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},r.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y+t.z*t.z+t.w*t.w)},r.lengthSqr=function(t){return t.x*t.x+t.y*t.y+t.z*t.z+t.w*t.w},r.normalize=function(t,e){var i=e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w;return i>0&&(i=1/Math.sqrt(i),t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t.w=e.w*i),t},r.fromAxes=function(t,e,i,n){return a.default.set(m,e.x,e.y,e.z,i.x,i.y,i.z,n.x,n.y,n.z),r.normalize(t,r.fromMat3(t,m))},r.fromViewUp=function(t,e,i){return a.default.fromViewUp(m,e,i),r.normalize(t,r.fromMat3(t,m))},r.fromAxisAngle=function(t,e,i){i*=.5;var n=Math.sin(i);return t.x=n*e.x,t.y=n*e.y,t.z=n*e.z,t.w=Math.cos(i),t},r.fromAngleZ=function(t,e){return e*=y,t.x=t.y=0,t.z=Math.sin(e),t.w=Math.cos(e),t},r.fromMat3=function(t,e){var i=e.m,n=i[0],r=i[1],s=i[2],a=i[3],o=i[4],c=i[5],u=i[6],l=i[7],h=i[8],_=n+o+h;if(_>0){var f=.5/Math.sqrt(_+1);t.w=.25/f,t.x=(c-l)*f,t.y=(u-s)*f,t.z=(r-a)*f}else if(n>o&&n>h){var d=2*Math.sqrt(1+n-o-h);t.w=(c-l)/d,t.x=.25*d,t.y=(a+r)/d,t.z=(u+s)/d}else if(o>h){var p=2*Math.sqrt(1+o-n-h);t.w=(u-s)/p,t.x=(a+r)/p,t.y=.25*p,t.z=(l+c)/p}else{var v=2*Math.sqrt(1+h-n-o);t.w=(r-a)/v,t.x=(u+s)/v,t.y=(l+c)/v,t.z=.25*v}return t},r.fromEuler=function(t,e,i,n){e*=y,i*=y,n*=y;var r=Math.sin(e),s=Math.cos(e),a=Math.sin(i),o=Math.cos(i),c=Math.sin(n),u=Math.cos(n);return t.x=r*o*u+s*a*c,t.y=s*a*u+r*o*c,t.z=s*o*c-r*a*u,t.w=s*o*u-r*a*c,t},r.toAxisX=function(t,e){var i=2*e.y,n=2*e.z;return t.x=1-i*e.y-n*e.z,t.y=i*e.x+n*e.w,t.z=n*e.x+i*e.w,t},r.toAxisY=function(t,e){var i=2*e.x,n=2*e.y,r=2*e.z;return t.x=n*e.x-r*e.w,t.y=1-i*e.x-r*e.z,t.z=r*e.y+i*e.w,t},r.toAxisZ=function(t,e){var i=2*e.x,n=2*e.y,r=2*e.z;return t.x=r*e.x-n*e.w,t.y=r*e.y-i*e.w,t.z=1-i*e.x-n*e.y,t},r.toEuler=function(t,e,i){var n=e.x,r=e.y,s=e.z,a=e.w,c=0,u=0,l=0,h=n*r+s*a;if(h>.499999)c=0,u=(0,o.toDegree)(2*Math.atan2(n,a)),l=90;else if(h<-.499999)c=0,u=-(0,o.toDegree)(2*Math.atan2(n,a)),l=-90;else{var _=n*n,f=r*r,d=s*s;c=(0,o.toDegree)(Math.atan2(2*n*a-2*r*s,1-2*_-2*d)),u=(0,o.toDegree)(Math.atan2(2*r*a-2*n*s,1-2*f-2*d)),l=(0,o.toDegree)(Math.asin(2*h)),i&&(c=-180*Math.sign(c+1e-6)+c,u=-180*Math.sign(u+1e-6)+u,l=180*Math.sign(l+1e-6)-l)}return t.x=c,t.y=u,t.z=l,t},r.strictEquals=function(t,e){return t.x===e.x&&t.y===e.y&&t.z===e.z&&t.w===e.w},r.equals=function(t,e,i){return void 0===i&&(i=o.EPSILON),Math.abs(t.x-e.x)<=i*Math.max(1,Math.abs(t.x),Math.abs(e.x))&&Math.abs(t.y-e.y)<=i*Math.max(1,Math.abs(t.y),Math.abs(e.y))&&Math.abs(t.z-e.z)<=i*Math.max(1,Math.abs(t.z),Math.abs(e.z))&&Math.abs(t.w-e.w)<=i*Math.max(1,Math.abs(t.w),Math.abs(e.w))},r.toArray=function(t,e,i){return void 0===i&&(i=0),t[i+0]=e.x,t[i+1]=e.y,t[i+2]=e.z,t[i+3]=e.w,t},r.fromArray=function(t,e,i){return void 0===i&&(i=0),t.x=e[i+0],t.y=e[i+1],t.z=e[i+2],t.w=e[i+3],t},n.clone=function(){return new r(this.x,this.y,this.z,this.w)},n.set=function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w,this},n.equals=function(t){return t&&this.x===t.x&&this.y===t.y&&this.z===t.z&&this.w===t.w},n.toEuler=function(t){return r.toEuler(t,this)},n.fromEuler=function(t){return r.fromEuler(this,t.x,t.y,t.z)},n.lerp=function(t,e,i){return i=i||new r,r.slerp(i,this,t,e),i},n.multiply=function(t){return r.multiply(this,this,t)},n.rotateAround=function(t,e,i,n){return n=n||new r,r.rotateAround(n,t,e,i)},r})(n.default);i.default=d,d.mul=d.multiply,d.scale=d.multiplyScalar,d.mag=d.len,d.IDENTITY=Object.freeze(new d);var p=new d,v=new d,g=new s.default,m=new a.default,y=.5*Math.PI/180;r.default.fastDefine("cc.Quat",d,{x:0,y:0,z:0,w:1}),cc.quat=function(t,e,i,n){return new d(t,e,i,n)},cc.Quat=d,e.exports=i.default}),{"../platform/CCClass":141,"./mat3":230,"./utils":236,"./value-type":237,"./vec3":239}],233:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n=o(t("./value-type")),r=o(t("../platform/CCClass")),s=o(t("./vec2")),a=o(t("./size"));function o(t){return t&&t.__esModule?t:{default:t}}function c(t,e){for(var i=0;i=t.x&&this.y<=t.y&&this.y+this.height>=t.y},l.containsRect=function(t){return this.x<=t.x&&this.x+this.width>=t.x+t.width&&this.y<=t.y&&this.y+this.height>=t.y+t.height},l.union=function(t,e){var i=this.x,n=this.y,r=this.width,s=this.height,a=e.x,o=e.y,c=e.width,u=e.height;return t.x=Math.min(i,a),t.y=Math.min(n,o),t.width=Math.max(i+r,a+c)-t.x,t.height=Math.max(n+s,o+u)-t.y,t},l.transformMat4=function(t,e){var i=this.x,n=this.y,r=i+this.width,s=n+this.height,a=e.m,o=a[0]*i+a[4]*n+a[12],c=a[1]*i+a[5]*n+a[13],u=a[0]*r+a[4]*n+a[12],l=a[1]*r+a[5]*n+a[13],h=a[0]*i+a[4]*s+a[12],_=a[1]*i+a[5]*s+a[13],f=a[0]*r+a[4]*s+a[12],d=a[1]*r+a[5]*s+a[13],p=Math.min(o,u,h,f),v=Math.max(o,u,h,f),g=Math.min(c,l,_,d),m=Math.max(c,l,_,d);return t.x=p,t.y=g,t.width=v-p,t.height=m-g,t},l.toString=function(){return"("+this.x.toFixed(2)+", "+this.y.toFixed(2)+", "+this.width.toFixed(2)+", "+this.height.toFixed(2)+")"},r=n,(o=[{key:"xMin",get:function(){return this.x},set:function(t){this.width+=this.x-t,this.x=t}},{key:"yMin",get:function(){return this.y},set:function(t){this.height+=this.y-t,this.y=t}},{key:"xMax",get:function(){return this.x+this.width},set:function(t){this.width=t-this.x}},{key:"yMax",get:function(){return this.y+this.height},set:function(t){this.height=t-this.y}},{key:"center",get:function(){return new s.default(this.x+.5*this.width,this.y+.5*this.height)},set:function(t){this.x=t.x-.5*this.width,this.y=t.y-.5*this.height}},{key:"origin",get:function(){return new s.default(this.x,this.y)},set:function(t){this.x=t.x,this.y=t.y}},{key:"size",get:function(){return new a.default(this.width,this.height)},set:function(t){this.width=t.width,this.height=t.height}}])&&c(r.prototype,o),n})(n.default);i.default=l,r.default.fastDefine("cc.Rect",l,{x:0,y:0,width:0,height:0}),cc.Rect=l,cc.rect=function(t,e,i,n){return new l(t,e,i,n)},e.exports=i.default}),{"../platform/CCClass":141,"./size":234,"./value-type":237,"./vec2":238}],234:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n=s(t("./value-type")),r=s(t("../platform/CCClass"));function s(t){return t&&t.__esModule?t:{default:t}}function a(t,e){for(var i=0;ii?i:t},i.clamp01=function(t){return t<0?0:t>1?1:t},i.equals=function(t,e){return Math.abs(t-e)<=s*Math.max(1,Math.abs(t),Math.abs(e))},i.inverseLerp=function(t,e,i){return(i-t)/(e-t)},i.lerp=function(t,e,i){return t+(e-t)*i},i.nextPow2=function(t){return--t,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t},i.pingPong=function(t,e){return t=h(t,2*e),e-Math.abs(t-e)},i.pseudoRandom=u,i.pseudoRandomRange=l,i.pseudoRandomRangeInt=function(t,e,i){return Math.floor(l(t,e,i))},i.random=void 0,i.randomRange=c,i.randomRangeInt=function(t,e){return Math.floor(c(t,e))},i.repeat=h,i.sign=function(t){return(t>0)-(t<0)},i.toDegree=function(t){return t*r},i.toRadian=function(t){return t*n};var n=Math.PI/180,r=180/Math.PI,s=1e-6;i.EPSILON=s,i.INT_BITS=32,i.INT_MAX=2147483647,i.INT_MIN=-1<<31;var a=Float64Array;i.FLOAT_ARRAY_TYPE=a,i.FLOAT_BYTES=8;var o=Math.random;function c(t,e){return Math.random()*(e-t)+t}function u(t){return(t=(9301*t+49297)%233280)/233280}function l(t,e,i){return u(t)*(i-e)+e}function h(t,e){return t-Math.floor(t/e)*e}i.random=o}),{}],237:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n,r=(n=t("../platform/js"))&&n.__esModule?n:{default:n},s=(function(){function t(){}var e=t.prototype;return e.clone=function(){return cc.errorID("0100",r.default.getClassName(this)+".clone"),null},e.equals=function(){return cc.errorID("0100",r.default.getClassName(this)+".equals"),!1},e.lerp=function(){return cc.errorID("0100",r.default.getClassName(this)+".lerp"),this.clone()},e.set=function(){cc.errorID("0100",r.default.getClassName(this)+".set")},e.toString=function(){return""+{}},t})();i.default=s,r.default.setClassName("cc.ValueType",s),cc.ValueType=s,e.exports=i.default}),{"../platform/js":162}],238:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n=o(t("./value-type")),r=o(t("../platform/CCClass")),s=o(t("../utils/misc")),a=t("./utils");function o(t){return t&&t.__esModule?t:{default:t}}function c(t,e){for(var i=0;i0&&(i=1/Math.sqrt(i),t.x=l*i,t.y=h*i),t},_.dot=function(t,e){return t.x*e.x+t.y*e.y},_.cross=function(t,e,i){return t.x=t.y=0,t.z=e.x*i.y-e.y*i.x,t},_.lerp=function(t,e,i,n){return l=e.x,h=e.y,t.x=l+n*(i.x-l),t.y=h+n*(i.y-h),t},_.random=function(t,e){e=e||1;var i=2*(0,a.random)()*Math.PI;return t.x=Math.cos(i)*e,t.y=Math.sin(i)*e,t},_.transformMat3=function(t,e,i){l=e.x,h=e.y;var n=i.m;return t.x=n[0]*l+n[3]*h+n[6],t.y=n[1]*l+n[4]*h+n[7],t},_.transformMat4=function(t,e,i){l=e.x,h=e.y;var n=i.m;return t.x=n[0]*l+n[4]*h+n[12],t.y=n[1]*l+n[5]*h+n[13],t},_.strictEquals=function(t,e){return t.x===e.x&&t.y===e.y},_.equals=function(t,e,i){return void 0===i&&(i=a.EPSILON),Math.abs(t.x-e.x)<=i*Math.max(1,Math.abs(t.x),Math.abs(e.x))&&Math.abs(t.y-e.y)<=i*Math.max(1,Math.abs(t.y),Math.abs(e.y))},_.angle=function(t,e){_.normalize(f,t),_.normalize(d,e);var i=_.dot(f,d);return i>1?0:i<-1?Math.PI:Math.acos(i)},_.toArray=function(t,e,i){return void 0===i&&(i=0),t[i+0]=e.x,t[i+1]=e.y,t},_.fromArray=function(t,e,i){return void 0===i&&(i=0),t.x=e[i+0],t.y=e[i+1],t},o.clone=function(){return new _(this.x,this.y)},o.set=function(t){return this.x=t.x,this.y=t.y,this},o.equals=function(t){return t&&this.x===t.x&&this.y===t.y},o.fuzzyEquals=function(t,e){return this.x-e<=t.x&&t.x<=this.x+e&&this.y-e<=t.y&&t.y<=this.y+e},o.toString=function(){return"("+this.x.toFixed(2)+", "+this.y.toFixed(2)+")"},o.lerp=function(t,e,i){i=i||new _;var n=this.x,r=this.y;return i.x=n+(t.x-n)*e,i.y=r+(t.y-r)*e,i},o.clampf=function(t,e){return this.x=s.default.clampf(this.x,t.x,e.x),this.y=s.default.clampf(this.y,t.y,e.y),this},o.add=function(t,e){return(e=e||new _).x=this.x+t.x,e.y=this.y+t.y,e},o.addSelf=function(t){return this.x+=t.x,this.y+=t.y,this},o.subtract=function(t){return this.x-=t.x,this.y-=t.y,this},o.multiplyScalar=function(t){return this.x*=t,this.y*=t,this},o.multiply=function(t){return this.x*=t.x,this.y*=t.y,this},o.divide=function(t){return this.x/=t,this.y/=t,this},o.negate=function(){return this.x=-this.x,this.y=-this.y,this},o.dot=function(t){return this.x*t.x+this.y*t.y},o.cross=function(t){return this.x*t.y-this.y*t.x},o.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},o.lengthSqr=function(){return this.x*this.x+this.y*this.y},o.normalizeSelf=function(){var t=this.x*this.x+this.y*this.y;if(1===t)return this;if(0===t)return this;var e=1/Math.sqrt(t);return this.x*=e,this.y*=e,this},o.normalize=function(t){return(t=t||new _).x=this.x,t.y=this.y,t.normalizeSelf(),t},o.angle=function(t){var e=this.magSqr(),i=t.magSqr();if(0===e||0===i)return console.warn("Can't get angle between zero vector"),0;var n=this.dot(t)/Math.sqrt(e*i);return n=s.default.clampf(n,-1,1),Math.acos(n)},o.signAngle=function(t){var e=this.angle(t);return this.cross(t)<0?-e:e},o.rotate=function(t,e){return(e=e||new _).x=this.x,e.y=this.y,e.rotateSelf(t)},o.rotateSelf=function(t){var e=Math.sin(t),i=Math.cos(t),n=this.x;return this.x=i*n-e*this.y,this.y=e*n+i*this.y,this},o.project=function(t){return t.multiplyScalar(this.dot(t)/t.dot(t))},o.transformMat4=function(t,e){return e=e||new _,_.transformMat4(e,this,t),e},o.maxAxis=function(){return Math.max(this.x,this.y)},n=_,r=[{key:"ONE",get:function(){return new _(1,1)}},{key:"ZERO",get:function(){return new _(0,0)}},{key:"UP",get:function(){return new _(0,1)}},{key:"RIGHT",get:function(){return new _(1,0)}}],null&&c(n.prototype,null),r&&c(n,r),_})(n.default);i.default=_,_.sub=_.subtract,_.mul=_.multiply,_.scale=_.multiplyScalar,_.mag=_.len,_.squaredMagnitude=_.lengthSqr,_.div=_.divide,_.ONE_R=_.ONE,_.ZERO_R=_.ZERO,_.UP_R=_.UP,_.RIGHT_R=_.RIGHT;var f=new _,d=new _;r.default.fastDefine("cc.Vec2",_,{x:0,y:0}),cc.v2=function(t,e){return new _(t,e)},cc.Vec2=_,e.exports=i.default}),{"../platform/CCClass":141,"../utils/misc":214,"./utils":236,"./value-type":237}],239:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n=c(t("./value-type")),r=c(t("../platform/CCClass")),s=c(t("../utils/misc")),a=c(t("./vec2")),o=t("./utils");function c(t){return t&&t.__esModule?t:{default:t}}function u(t,e){for(var i=0;i0&&(i=1/Math.sqrt(i),t.x=h*i,t.y=_*i,t.z=f*i),t},d.dot=function(t,e){return t.x*e.x+t.y*e.y+t.z*e.z},d.cross=function(t,e,i){var n=e.x,r=e.y,s=e.z,a=i.x,o=i.y,c=i.z;return t.x=r*c-s*o,t.y=s*a-n*c,t.z=n*o-r*a,t},d.lerp=function(t,e,i,n){return t.x=e.x+n*(i.x-e.x),t.y=e.y+n*(i.y-e.y),t.z=e.z+n*(i.z-e.z),t},d.random=function(t,e){e=e||1;var i=2*(0,o.random)()*Math.PI,n=2*(0,o.random)()-1,r=Math.sqrt(1-n*n);return t.x=r*Math.cos(i)*e,t.y=r*Math.sin(i)*e,t.z=n*e,t},d.transformMat4=function(t,e,i){h=e.x,_=e.y,f=e.z;var n=i.m,r=n[3]*h+n[7]*_+n[11]*f+n[15];return r=r?1/r:1,t.x=(n[0]*h+n[4]*_+n[8]*f+n[12])*r,t.y=(n[1]*h+n[5]*_+n[9]*f+n[13])*r,t.z=(n[2]*h+n[6]*_+n[10]*f+n[14])*r,t},d.transformMat4Normal=function(t,e,i){h=e.x,_=e.y,f=e.z;var n=i.m,r=n[3]*h+n[7]*_+n[11]*f;return r=r?1/r:1,t.x=(n[0]*h+n[4]*_+n[8]*f)*r,t.y=(n[1]*h+n[5]*_+n[9]*f)*r,t.z=(n[2]*h+n[6]*_+n[10]*f)*r,t},d.transformMat3=function(t,e,i){h=e.x,_=e.y,f=e.z;var n=i.m;return t.x=h*n[0]+_*n[3]+f*n[6],t.y=h*n[1]+_*n[4]+f*n[7],t.z=h*n[2]+_*n[5]+f*n[8],t},d.transformAffine=function(t,e,i){h=e.x,_=e.y,f=e.z;var n=i.m;return t.x=n[0]*h+n[1]*_+n[2]*f+n[3],t.y=n[4]*h+n[5]*_+n[6]*f+n[7],t.x=n[8]*h+n[9]*_+n[10]*f+n[11],t},d.transformQuat=function(t,e,i){var n=i.w*e.x+i.y*e.z-i.z*e.y,r=i.w*e.y+i.z*e.x-i.x*e.z,s=i.w*e.z+i.x*e.y-i.y*e.x,a=-i.x*e.x-i.y*e.y-i.z*e.z;return t.x=n*i.w+a*-i.x+r*-i.z-s*-i.y,t.y=r*i.w+a*-i.y+s*-i.x-n*-i.z,t.z=s*i.w+a*-i.z+n*-i.y-r*-i.x,t},d.transformRTS=function(t,e,i,n,r){var s=e.x*r.x,a=e.y*r.y,o=e.z*r.z,c=i.w*s+i.y*o-i.z*a,u=i.w*a+i.z*s-i.x*o,l=i.w*o+i.x*a-i.y*s,h=-i.x*s-i.y*a-i.z*o;return t.x=c*i.w+h*-i.x+u*-i.z-l*-i.y+n.x,t.y=u*i.w+h*-i.y+l*-i.x-c*-i.z+n.y,t.z=l*i.w+h*-i.z+c*-i.y-u*-i.x+n.z,t},d.transformInverseRTS=function(t,e,i,n,r){var s=e.x-n.x,a=e.y-n.y,o=e.z-n.z,c=i.w*s-i.y*o+i.z*a,u=i.w*a-i.z*s+i.x*o,l=i.w*o-i.x*a+i.y*s,h=i.x*s+i.y*a+i.z*o;return t.x=(c*i.w+h*i.x+u*i.z-l*i.y)/r.x,t.y=(u*i.w+h*i.y+l*i.x-c*i.z)/r.y,t.z=(l*i.w+h*i.z+c*i.y-u*i.x)/r.z,t},d.rotateX=function(t,e,i,n){h=e.x-i.x,_=e.y-i.y,f=e.z-i.z;var r=Math.cos(n),s=Math.sin(n),a=h,o=_*r-f*s,c=_*s+f*r;return t.x=a+i.x,t.y=o+i.y,t.z=c+i.z,t},d.rotateY=function(t,e,i,n){h=e.x-i.x,_=e.y-i.y,f=e.z-i.z;var r=Math.cos(n),s=Math.sin(n),a=f*s+h*r,o=_,c=f*r-h*s;return t.x=a+i.x,t.y=o+i.y,t.z=c+i.z,t},d.rotateZ=function(t,e,i,n){h=e.x-i.x,_=e.y-i.y,f=e.z-i.z;var r=Math.cos(n),s=Math.sin(n),a=h*r-_*s,o=h*s+_*r,c=f;return t.x=a+i.x,t.y=o+i.y,t.z=c+i.z,t},d.strictEquals=function(t,e){return t.x===e.x&&t.y===e.y&&t.z===e.z},d.equals=function(t,e,i){void 0===i&&(i=o.EPSILON);var n=t.x,r=t.y,s=t.z,a=e.x,c=e.y,u=e.z;return Math.abs(n-a)<=i*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(r-c)<=i*Math.max(1,Math.abs(r),Math.abs(c))&&Math.abs(s-u)<=i*Math.max(1,Math.abs(s),Math.abs(u))},d.angle=function(t,e){d.normalize(p,t),d.normalize(v,e);var i=d.dot(p,v);return i>1?0:i<-1?Math.PI:Math.acos(i)},d.projectOnPlane=function(t,e,i){return d.subtract(t,e,d.project(t,e,i))},d.project=function(t,e,i){var n=d.lengthSqr(i);return n<1e-6?d.set(t,0,0,0):d.multiplyScalar(t,i,d.dot(e,i)/n)},d.toArray=function(t,e,i){return void 0===i&&(i=0),t[i+0]=e.x,t[i+1]=e.y,t[i+2]=e.z,t},d.fromArray=function(t,e,i){return void 0===i&&(i=0),t.x=e[i+0],t.y=e[i+1],t.z=e[i+2],t},c.clone=function(){return new d(this.x,this.y,this.z)},c.set=function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},c.equals=function(t){return t&&this.x===t.x&&this.y===t.y&&this.z===t.z},c.fuzzyEquals=function(t,e){return this.x-e<=t.x&&t.x<=this.x+e&&this.y-e<=t.y&&t.y<=this.y+e&&this.z-e<=t.z&&t.z<=this.z+e},c.toString=function(){return"("+this.x.toFixed(2)+", "+this.y.toFixed(2)+", "+this.z.toFixed(2)+")"},c.lerp=function(t,e,i){return i=i||new d,d.lerp(i,this,t,e),i},c.clampf=function(t,e){return this.x=s.default.clampf(this.x,t.x,e.x),this.y=s.default.clampf(this.y,t.y,e.y),this.z=s.default.clampf(this.z,t.z,e.z),this},c.addSelf=function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this},c.add=function(t,e){return(e=e||new d).x=this.x+t.x,e.y=this.y+t.y,e.z=this.z+t.z,e},c.subtract=function(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this},c.multiplyScalar=function(t){return this.x*=t,this.y*=t,this.z*=t,this},c.multiply=function(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this},c.divide=function(t){return this.x/=t,this.y/=t,this.z/=t,this},c.negate=function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},c.dot=function(t){return this.x*t.x+this.y*t.y+this.z*t.z},c.cross=function(t,e){return e=e||new d,d.cross(e,this,t),e},c.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},c.lengthSqr=function(){return this.x*this.x+this.y*this.y+this.z*this.z},c.normalizeSelf=function(){return d.normalize(this,this),this},c.normalize=function(t){return t=t||new d,d.normalize(t,this),t},c.transformMat4=function(t,e){return e=e||new d,d.transformMat4(e,this,t),e},c.maxAxis=function(){return Math.max(this.x,this.y,this.z)},c.signAngle=function(t){cc.warnID(1408,"vec3.signAngle","v2.1","cc.v2(selfVector).signAngle(vector)");var e=new a.default(this.x,this.y),i=new a.default(t.x,t.y);return e.signAngle(i)},c.rotate=function(t,e){return cc.warnID(1408,"vec3.rotate","v2.1","cc.v2(selfVector).rotate(radians, out)"),a.default.prototype.rotate.call(this,t,e)},c.rotateSelf=function(t){return cc.warnID(1408,"vec3.rotateSelf","v2.1","cc.v2(selfVector).rotateSelf(radians)"),a.default.prototype.rotateSelf.call(this,t)},n=d,r=[{key:"ONE",get:function(){return new d(1,1,1)}},{key:"ZERO",get:function(){return new d}},{key:"UP",get:function(){return new d(0,1,0)}},{key:"RIGHT",get:function(){return new d(1,0,0)}},{key:"FORWARD",get:function(){return new d(0,0,1)}}],null&&u(n.prototype,null),r&&u(n,r),d})(n.default);i.default=d,d.sub=d.subtract,d.mul=d.multiply,d.scale=d.multiplyScalar,d.mag=d.len,d.squaredMagnitude=d.lengthSqr,d.div=d.divide,d.ONE_R=d.ONE,d.ZERO_R=d.ZERO,d.UP_R=d.UP,d.RIGHT_R=d.RIGHT,d.FRONT_R=d.FORWARD;var p=new d,v=new d;r.default.fastDefine("cc.Vec3",d,{x:0,y:0,z:0}),cc.v3=function(t,e,i){return new d(t,e,i)},cc.Vec3=d,e.exports=i.default}),{"../platform/CCClass":141,"../utils/misc":214,"./utils":236,"./value-type":237,"./vec2":238}],240:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0,i.v4=d;var n=a(t("../platform/CCClass")),r=a(t("./value-type")),s=t("./utils");function a(t){return t&&t.__esModule?t:{default:t}}function o(t,e){for(var i=0;i0&&(i=1/Math.sqrt(i),t.x=u*i,t.y=l*i,t.z=h*i,t.w=_*i),t},f.dot=function(t,e){return t.x*e.x+t.y*e.y+t.z*e.z+t.w*e.w},f.lerp=function(t,e,i,n){return t.x=e.x+n*(i.x-e.x),t.y=e.y+n*(i.y-e.y),t.z=e.z+n*(i.z-e.z),t.w=e.w+n*(i.w-e.w),t},f.random=function(t,e){e=e||1;var i=2*(0,s.random)()*Math.PI,n=2*(0,s.random)()-1,r=Math.sqrt(1-n*n);return t.x=r*Math.cos(i)*e,t.y=r*Math.sin(i)*e,t.z=n*e,t.w=0,t},f.transformMat4=function(t,e,i){u=e.x,l=e.y,h=e.z,_=e.w;var n=i.m;return t.x=n[0]*u+n[4]*l+n[8]*h+n[12]*_,t.y=n[1]*u+n[5]*l+n[9]*h+n[13]*_,t.z=n[2]*u+n[6]*l+n[10]*h+n[14]*_,t.w=n[3]*u+n[7]*l+n[11]*h+n[15]*_,t},f.transformAffine=function(t,e,i){u=e.x,l=e.y,h=e.z,_=e.w;var n=i.m;return t.x=n[0]*u+n[1]*l+n[2]*h+n[3]*_,t.y=n[4]*u+n[5]*l+n[6]*h+n[7]*_,t.x=n[8]*u+n[9]*l+n[10]*h+n[11]*_,t.w=e.w,t},f.transformQuat=function(t,e,i){var n=e.x,r=e.y,s=e.z;u=i.x,l=i.y,h=i.z;var a=(_=i.w)*n+l*s-h*r,o=_*r+h*n-u*s,c=_*s+u*r-l*n,f=-u*n-l*r-h*s;return t.x=a*_+f*-u+o*-h-c*-l,t.y=o*_+f*-l+c*-u-a*-h,t.z=c*_+f*-h+a*-l-o*-u,t.w=e.w,t},f.strictEquals=function(t,e){return t.x===e.x&&t.y===e.y&&t.z===e.z&&t.w===e.w},f.equals=function(t,e,i){return void 0===i&&(i=s.EPSILON),Math.abs(t.x-e.x)<=i*Math.max(1,Math.abs(t.x),Math.abs(e.x))&&Math.abs(t.y-e.y)<=i*Math.max(1,Math.abs(t.y),Math.abs(e.y))&&Math.abs(t.z-e.z)<=i*Math.max(1,Math.abs(t.z),Math.abs(e.z))&&Math.abs(t.w-e.w)<=i*Math.max(1,Math.abs(t.w),Math.abs(e.w))},f.toArray=function(t,e,i){return void 0===i&&(i=0),t[i+0]=e.x,t[i+1]=e.y,t[i+2]=e.z,t[i+3]=e.w,t},f.fromArray=function(t,e,i){return void 0===i&&(i=0),t.x=e[i+0],t.y=e[i+1],t.z=e[i+2],t.w=e[i+3],t},a.clone=function(){return new f(this.x,this.y,this.z,this.w)},a.set=function(t,e,i,n){return t&&"object"==typeof t?(this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w):(this.x=t||0,this.y=e||0,this.z=i||0,this.w=n||0),this},a.equals=function(t,e){return void 0===e&&(e=s.EPSILON),Math.abs(this.x-t.x)<=e*Math.max(1,Math.abs(this.x),Math.abs(t.x))&&Math.abs(this.y-t.y)<=e*Math.max(1,Math.abs(this.y),Math.abs(t.y))&&Math.abs(this.z-t.z)<=e*Math.max(1,Math.abs(this.z),Math.abs(t.z))&&Math.abs(this.w-t.w)<=e*Math.max(1,Math.abs(this.w),Math.abs(t.w))},a.equals4f=function(t,e,i,n,r){return void 0===r&&(r=s.EPSILON),Math.abs(this.x-t)<=r*Math.max(1,Math.abs(this.x),Math.abs(t))&&Math.abs(this.y-e)<=r*Math.max(1,Math.abs(this.y),Math.abs(e))&&Math.abs(this.z-i)<=r*Math.max(1,Math.abs(this.z),Math.abs(i))&&Math.abs(this.w-n)<=r*Math.max(1,Math.abs(this.w),Math.abs(n))},a.strictEquals=function(t){return this.x===t.x&&this.y===t.y&&this.z===t.z&&this.w===t.w},a.strictEquals4f=function(t,e,i,n){return this.x===t&&this.y===e&&this.z===i&&this.w===n},a.lerp=function(t,e){return u=this.x,l=this.y,h=this.z,_=this.w,this.x=u+e*(t.x-u),this.y=l+e*(t.y-l),this.z=h+e*(t.z-h),this.w=_+e*(t.w-_),this},a.toString=function(){return"("+this.x.toFixed(2)+", "+this.y.toFixed(2)+", "+this.z.toFixed(2)+", "+this.w.toFixed(2)+")"},a.clampf=function(t,e){return this.x=(0,s.clamp)(this.x,t.x,e.x),this.y=(0,s.clamp)(this.y,t.y,e.y),this.z=(0,s.clamp)(this.z,t.z,e.z),this.w=(0,s.clamp)(this.w,t.w,e.w),this},a.addSelf=function(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this},a.add=function(t,e){return(e=e||new f).x=this.x+t.x,e.y=this.y+t.y,e.z=this.z+t.z,e.w=this.w+t.w,e},a.subtract=function(t,e){return(e=e||new f).x=this.x-t.x,e.y=this.y-t.y,e.z=this.z-t.z,e.w=this.w-t.w,e},a.multiplyScalar=function(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this},a.multiply=function(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this},a.divide=function(t){return this.x/=t,this.y/=t,this.z/=t,this.w/=t,this},a.negate=function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this},a.dot=function(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w},a.cross=function(t,e){e=e||new f;var i=this.x,n=this.y,r=this.z,s=t.x,a=t.y,o=t.z;return e.x=n*o-r*a,e.y=r*s-i*o,e.z=i*a-n*s,e},a.len=function(){var t=this.x,e=this.y,i=this.z,n=this.w;return Math.sqrt(t*t+e*e+i*i+n*n)},a.lengthSqr=function(){var t=this.x,e=this.y,i=this.z,n=this.w;return t*t+e*e+i*i+n*n},a.normalizeSelf=function(){return this.normalize(this),this},a.normalize=function(t){t=t||new f,u=this.x,l=this.y,h=this.z,_=this.w;var e=u*u+l*l+h*h+_*_;return e>0&&(e=1/Math.sqrt(e),t.x=u*e,t.y=l*e,t.z=h*e,t.w=_*e),t},a.transformMat4=function(t,e){e=e||new f,u=this.x,l=this.y,h=this.z,_=this.w;var i=t.m;return e.x=i[0]*u+i[4]*l+i[8]*h+i[12]*_,e.y=i[1]*u+i[5]*l+i[9]*h+i[13]*_,e.z=i[2]*u+i[6]*l+i[10]*h+i[14]*_,e.w=i[3]*u+i[7]*l+i[11]*h+i[15]*_,e},a.maxAxis=function(){return Math.max(this.x,this.y,this.z,this.w)},n=f,r=[{key:"ZERO",get:function(){return new f(0,0,0,0)}},{key:"ONE",get:function(){return new f(1,1,1,1)}},{key:"NEG_ONE",get:function(){return new f(-1,-1,-1,-1)}}],null&&o(n.prototype,null),r&&o(n,r),f})(r.default);function d(t,e,i,n){return new f(t,e,i,n)}i.default=f,f.sub=f.subtract,f.mul=f.multiply,f.div=f.divide,f.scale=f.multiplyScalar,f.mag=f.len,f.squaredMagnitude=f.lengthSqr,f.ZERO_R=f.ZERO,f.ONE_R=f.ONE,f.NEG_ONE_R=f.NEG_ONE,n.default.fastDefine("cc.Vec4",f,{x:0,y:0,z:0,w:0}),cc.v4=d,cc.Vec4=f}),{"../platform/CCClass":141,"./utils":236,"./value-type":237}],241:[(function(){"use strict";cc.js}),{}],242:[(function(t){"use strict";t("./core/CCGame"),t("./actions")}),{"./actions":7,"./core/CCGame":24}],243:[(function(t,e){"use strict";var i=t("../core/assets/CCAsset"),n=t("../core/assets/CCSpriteFrame"),r=cc.Class({name:"cc.ParticleAsset",extends:i,properties:{spriteFrame:{default:null,type:n}}});cc.ParticleAsset=e.exports=r}),{"../core/assets/CCAsset":58,"../core/assets/CCSpriteFrame":70}],244:[(function(t,e){"use strict";var i,n,r,s,a,o,c,u,l,h,_,f,d,p,v,g,m,y,T,E,A,C,x,b,S,R,w,I,M,O,D,L,P,N,F,B,U,k,z,V,W,G;(function(t){t[t.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",t[t.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",t[t.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",t[t.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",t[t.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",t[t.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",t[t.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",t[t.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",t[t.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",t[t.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL"})(i||(i={})),(function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.BUFFER=1]="BUFFER",t[t.TEXTURE=2]="TEXTURE",t[t.TEXTURE_VIEW=3]="TEXTURE_VIEW",t[t.RENDER_PASS=4]="RENDER_PASS",t[t.FRAMEBUFFER=5]="FRAMEBUFFER",t[t.SAMPLER=6]="SAMPLER",t[t.SHADER=7]="SHADER",t[t.PIPELINE_LAYOUT=8]="PIPELINE_LAYOUT",t[t.PIPELINE_STATE=9]="PIPELINE_STATE",t[t.BINDING_LAYOUT=10]="BINDING_LAYOUT",t[t.INPUT_ASSEMBLER=11]="INPUT_ASSEMBLER",t[t.COMMAND_ALLOCATOR=12]="COMMAND_ALLOCATOR",t[t.COMMAND_BUFFER=13]="COMMAND_BUFFER",t[t.QUEUE=14]="QUEUE",t[t.WINDOW=15]="WINDOW"})(n||(n={})),(function(t){t[t.UNREADY=0]="UNREADY",t[t.FAILED=1]="FAILED",t[t.SUCCESS=2]="SUCCESS"})(r||(r={})),(function(){function t(t){this._gfxType=n.UNKNOWN,this._status=r.UNREADY,this._gfxType=t}Object.defineProperty(t.prototype,"gfxType",{get:function(){return this._gfxType},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"status",{get:function(){return this._status},enumerable:!0,configurable:!0})})(),(function(t){t.ATTR_POSITION="a_position",t.ATTR_NORMAL="a_normal",t.ATTR_TANGENT="a_tangent",t.ATTR_BITANGENT="a_bitangent",t.ATTR_WEIGHTS="a_weights",t.ATTR_JOINTS="a_joints",t.ATTR_COLOR="a_color",t.ATTR_COLOR1="a_color1",t.ATTR_COLOR2="a_color2",t.ATTR_TEX_COORD="a_texCoord",t.ATTR_TEX_COORD1="a_texCoord1",t.ATTR_TEX_COORD2="a_texCoord2",t.ATTR_TEX_COORD3="a_texCoord3",t.ATTR_TEX_COORD4="a_texCoord4",t.ATTR_TEX_COORD5="a_texCoord5",t.ATTR_TEX_COORD6="a_texCoord6",t.ATTR_TEX_COORD7="a_texCoord7",t.ATTR_TEX_COORD8="a_texCoord8"})(s||(s={})),(function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.BOOL=1]="BOOL",t[t.BOOL2=2]="BOOL2",t[t.BOOL3=3]="BOOL3",t[t.BOOL4=4]="BOOL4",t[t.INT=5]="INT",t[t.INT2=6]="INT2",t[t.INT3=7]="INT3",t[t.INT4=8]="INT4",t[t.UINT=9]="UINT",t[t.UINT2=10]="UINT2",t[t.UINT3=11]="UINT3",t[t.UINT4=12]="UINT4",t[t.FLOAT=13]="FLOAT",t[t.FLOAT2=14]="FLOAT2",t[t.FLOAT3=15]="FLOAT3",t[t.FLOAT4=16]="FLOAT4",t[t.COLOR4=17]="COLOR4",t[t.MAT2=18]="MAT2",t[t.MAT2X3=19]="MAT2X3",t[t.MAT2X4=20]="MAT2X4",t[t.MAT3X2=21]="MAT3X2",t[t.MAT3=22]="MAT3",t[t.MAT3X4=23]="MAT3X4",t[t.MAT4X2=24]="MAT4X2",t[t.MAT4X3=25]="MAT4X3",t[t.MAT4=26]="MAT4",t[t.SAMPLER1D=27]="SAMPLER1D",t[t.SAMPLER1D_ARRAY=28]="SAMPLER1D_ARRAY",t[t.SAMPLER2D=29]="SAMPLER2D",t[t.SAMPLER2D_ARRAY=30]="SAMPLER2D_ARRAY",t[t.SAMPLER3D=31]="SAMPLER3D",t[t.SAMPLER_CUBE=32]="SAMPLER_CUBE",t[t.COUNT=33]="COUNT"})(a||(a={})),(function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.A8=1]="A8",t[t.L8=2]="L8",t[t.LA8=3]="LA8",t[t.R8=4]="R8",t[t.R8SN=5]="R8SN",t[t.R8UI=6]="R8UI",t[t.R8I=7]="R8I",t[t.R16F=8]="R16F",t[t.R16UI=9]="R16UI",t[t.R16I=10]="R16I",t[t.R32F=11]="R32F",t[t.R32UI=12]="R32UI",t[t.R32I=13]="R32I",t[t.RG8=14]="RG8",t[t.RG8SN=15]="RG8SN",t[t.RG8UI=16]="RG8UI",t[t.RG8I=17]="RG8I",t[t.RG16F=18]="RG16F",t[t.RG16UI=19]="RG16UI",t[t.RG16I=20]="RG16I",t[t.RG32F=21]="RG32F",t[t.RG32UI=22]="RG32UI",t[t.RG32I=23]="RG32I",t[t.RGB8=24]="RGB8",t[t.SRGB8=25]="SRGB8",t[t.RGB8SN=26]="RGB8SN",t[t.RGB8UI=27]="RGB8UI",t[t.RGB8I=28]="RGB8I",t[t.RGB16F=29]="RGB16F",t[t.RGB16UI=30]="RGB16UI",t[t.RGB16I=31]="RGB16I",t[t.RGB32F=32]="RGB32F",t[t.RGB32UI=33]="RGB32UI",t[t.RGB32I=34]="RGB32I",t[t.RGBA8=35]="RGBA8",t[t.SRGB8_A8=36]="SRGB8_A8",t[t.RGBA8SN=37]="RGBA8SN",t[t.RGBA8UI=38]="RGBA8UI",t[t.RGBA8I=39]="RGBA8I",t[t.RGBA16F=40]="RGBA16F",t[t.RGBA16UI=41]="RGBA16UI",t[t.RGBA16I=42]="RGBA16I",t[t.RGBA32F=43]="RGBA32F",t[t.RGBA32UI=44]="RGBA32UI",t[t.RGBA32I=45]="RGBA32I",t[t.R5G6B5=46]="R5G6B5",t[t.R11G11B10F=47]="R11G11B10F",t[t.RGB5A1=48]="RGB5A1",t[t.RGBA4=49]="RGBA4",t[t.RGB10A2=50]="RGB10A2",t[t.RGB10A2UI=51]="RGB10A2UI",t[t.RGB9E5=52]="RGB9E5",t[t.D16=53]="D16",t[t.D16S8=54]="D16S8",t[t.D24=55]="D24",t[t.D24S8=56]="D24S8",t[t.D32F=57]="D32F",t[t.D32F_S8=58]="D32F_S8",t[t.BC1=59]="BC1",t[t.BC1_ALPHA=60]="BC1_ALPHA",t[t.BC1_SRGB=61]="BC1_SRGB",t[t.BC1_SRGB_ALPHA=62]="BC1_SRGB_ALPHA",t[t.BC2=63]="BC2",t[t.BC2_SRGB=64]="BC2_SRGB",t[t.BC3=65]="BC3",t[t.BC3_SRGB=66]="BC3_SRGB",t[t.BC4=67]="BC4",t[t.BC4_SNORM=68]="BC4_SNORM",t[t.BC5=69]="BC5",t[t.BC5_SNORM=70]="BC5_SNORM",t[t.BC6H_UF16=71]="BC6H_UF16",t[t.BC6H_SF16=72]="BC6H_SF16",t[t.BC7=73]="BC7",t[t.BC7_SRGB=74]="BC7_SRGB",t[t.ETC_RGB8=75]="ETC_RGB8",t[t.ETC2_RGB8=76]="ETC2_RGB8",t[t.ETC2_SRGB8=77]="ETC2_SRGB8",t[t.ETC2_RGB8_A1=78]="ETC2_RGB8_A1",t[t.ETC2_SRGB8_A1=79]="ETC2_SRGB8_A1",t[t.ETC2_RGBA8=80]="ETC2_RGBA8",t[t.ETC2_SRGB8_A8=81]="ETC2_SRGB8_A8",t[t.EAC_R11=82]="EAC_R11",t[t.EAC_R11SN=83]="EAC_R11SN",t[t.EAC_RG11=84]="EAC_RG11",t[t.EAC_RG11SN=85]="EAC_RG11SN",t[t.PVRTC_RGB2=86]="PVRTC_RGB2",t[t.PVRTC_RGBA2=87]="PVRTC_RGBA2",t[t.PVRTC_RGB4=88]="PVRTC_RGB4",t[t.PVRTC_RGBA4=89]="PVRTC_RGBA4",t[t.PVRTC2_2BPP=90]="PVRTC2_2BPP",t[t.PVRTC2_4BPP=91]="PVRTC2_4BPP"})(o||(o={})),(function(t){t[t.NONE=0]="NONE",t[t.TRANSFER_SRC=1]="TRANSFER_SRC",t[t.TRANSFER_DST=2]="TRANSFER_DST",t[t.INDEX=4]="INDEX",t[t.VERTEX=8]="VERTEX",t[t.UNIFORM=16]="UNIFORM",t[t.STORAGE=32]="STORAGE",t[t.INDIRECT=64]="INDIRECT"})(c||(c={})),(function(t){t[t.NONE=0]="NONE",t[t.DEVICE=1]="DEVICE",t[t.HOST=2]="HOST"})(u||(u={})),(function(t){t[t.NONE=0]="NONE",t[t.READ=1]="READ",t[t.WRITE=2]="WRITE"})(l||(l={})),(function(t){t[t.POINT_LIST=0]="POINT_LIST",t[t.LINE_LIST=1]="LINE_LIST",t[t.LINE_STRIP=2]="LINE_STRIP",t[t.LINE_LOOP=3]="LINE_LOOP",t[t.LINE_LIST_ADJACENCY=4]="LINE_LIST_ADJACENCY",t[t.LINE_STRIP_ADJACENCY=5]="LINE_STRIP_ADJACENCY",t[t.ISO_LINE_LIST=6]="ISO_LINE_LIST",t[t.TRIANGLE_LIST=7]="TRIANGLE_LIST",t[t.TRIANGLE_STRIP=8]="TRIANGLE_STRIP",t[t.TRIANGLE_FAN=9]="TRIANGLE_FAN",t[t.TRIANGLE_LIST_ADJACENCY=10]="TRIANGLE_LIST_ADJACENCY",t[t.TRIANGLE_STRIP_ADJACENCY=11]="TRIANGLE_STRIP_ADJACENCY",t[t.TRIANGLE_PATCH_ADJACENCY=12]="TRIANGLE_PATCH_ADJACENCY",t[t.QUAD_PATCH_LIST=13]="QUAD_PATCH_LIST"})(h||(h={})),(function(t){t[t.FILL=0]="FILL",t[t.POINT=1]="POINT",t[t.LINE=2]="LINE"})(_||(_={})),(function(t){t[t.GOURAND=0]="GOURAND",t[t.FLAT=1]="FLAT"})(f||(f={})),(function(t){t[t.NONE=0]="NONE",t[t.FRONT=1]="FRONT",t[t.BACK=2]="BACK"})(d||(d={})),(function(t){t[t.NEVER=0]="NEVER",t[t.LESS=1]="LESS",t[t.EQUAL=2]="EQUAL",t[t.LESS_EQUAL=3]="LESS_EQUAL",t[t.GREATER=4]="GREATER",t[t.NOT_EQUAL=5]="NOT_EQUAL",t[t.GREATER_EQUAL=6]="GREATER_EQUAL",t[t.ALWAYS=7]="ALWAYS"})(p||(p={})),(function(t){t[t.ZERO=0]="ZERO",t[t.KEEP=1]="KEEP",t[t.REPLACE=2]="REPLACE",t[t.INCR=3]="INCR",t[t.DECR=4]="DECR",t[t.INVERT=5]="INVERT",t[t.INCR_WRAP=6]="INCR_WRAP",t[t.DECR_WRAP=7]="DECR_WRAP"})(v||(v={})),(function(t){t[t.ADD=0]="ADD",t[t.SUB=1]="SUB",t[t.REV_SUB=2]="REV_SUB",t[t.MIN=3]="MIN",t[t.MAX=4]="MAX"})(g||(g={})),(function(t){t[t.ZERO=0]="ZERO",t[t.ONE=1]="ONE",t[t.SRC_ALPHA=2]="SRC_ALPHA",t[t.DST_ALPHA=3]="DST_ALPHA",t[t.ONE_MINUS_SRC_ALPHA=4]="ONE_MINUS_SRC_ALPHA",t[t.ONE_MINUS_DST_ALPHA=5]="ONE_MINUS_DST_ALPHA",t[t.SRC_COLOR=6]="SRC_COLOR",t[t.DST_COLOR=7]="DST_COLOR",t[t.ONE_MINUS_SRC_COLOR=8]="ONE_MINUS_SRC_COLOR",t[t.ONE_MINUS_DST_COLOR=9]="ONE_MINUS_DST_COLOR",t[t.SRC_ALPHA_SATURATE=10]="SRC_ALPHA_SATURATE",t[t.CONSTANT_COLOR=11]="CONSTANT_COLOR",t[t.ONE_MINUS_CONSTANT_COLOR=12]="ONE_MINUS_CONSTANT_COLOR",t[t.CONSTANT_ALPHA=13]="CONSTANT_ALPHA",t[t.ONE_MINUS_CONSTANT_ALPHA=14]="ONE_MINUS_CONSTANT_ALPHA"})(m||(m={})),(function(t){t[t.NONE=0]="NONE",t[t.R=1]="R",t[t.G=2]="G",t[t.B=4]="B",t[t.A=8]="A",t[t.ALL=15]="ALL"})(y||(y={})),(function(t){t[t.NONE=0]="NONE",t[t.POINT=1]="POINT",t[t.LINEAR=2]="LINEAR",t[t.ANISOTROPIC=3]="ANISOTROPIC"})(T||(T={})),(function(t){t[t.WRAP=0]="WRAP",t[t.MIRROR=1]="MIRROR",t[t.CLAMP=2]="CLAMP",t[t.BORDER=3]="BORDER"})(E||(E={})),(function(t){t[t.TEX1D=0]="TEX1D",t[t.TEX2D=1]="TEX2D",t[t.TEX3D=2]="TEX3D"})(A||(A={})),(function(t){t[t.NONE=0]="NONE",t[t.TRANSFER_SRC=1]="TRANSFER_SRC",t[t.TRANSFER_DST=2]="TRANSFER_DST",t[t.SAMPLED=4]="SAMPLED",t[t.STORAGE=8]="STORAGE",t[t.COLOR_ATTACHMENT=16]="COLOR_ATTACHMENT",t[t.DEPTH_STENCIL_ATTACHMENT=32]="DEPTH_STENCIL_ATTACHMENT",t[t.TRANSIENT_ATTACHMENT=64]="TRANSIENT_ATTACHMENT",t[t.INPUT_ATTACHMENT=128]="INPUT_ATTACHMENT"})(C||(C={})),(function(t){t[t.X1=0]="X1",t[t.X2=1]="X2",t[t.X4=2]="X4",t[t.X8=3]="X8",t[t.X16=4]="X16",t[t.X32=5]="X32",t[t.X64=6]="X64"})(x||(x={})),(function(t){t[t.NONE=0]="NONE",t[t.GEN_MIPMAP=1]="GEN_MIPMAP",t[t.CUBEMAP=2]="CUBEMAP",t[t.BAKUP_BUFFER=4]="BAKUP_BUFFER"})(b||(b={})),(function(t){t[t.TV1D=0]="TV1D",t[t.TV2D=1]="TV2D",t[t.TV3D=2]="TV3D",t[t.CUBE=3]="CUBE",t[t.TV1D_ARRAY=4]="TV1D_ARRAY",t[t.TV2D_ARRAY=5]="TV2D_ARRAY"})(S||(S={})),(function(t){t[t.VERTEX=0]="VERTEX",t[t.HULL=1]="HULL",t[t.DOMAIN=2]="DOMAIN",t[t.GEOMETRY=3]="GEOMETRY",t[t.FRAGMENT=4]="FRAGMENT",t[t.COMPUTE=5]="COMPUTE",t[t.COUNT=6]="COUNT"})(R||(R={})),(function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.UNIFORM_BUFFER=1]="UNIFORM_BUFFER",t[t.SAMPLER=2]="SAMPLER",t[t.STORAGE_BUFFER=3]="STORAGE_BUFFER"})(w||(w={})),(function(t){t[t.PRIMARY=0]="PRIMARY",t[t.SECONDARY=1]="SECONDARY"})(I||(I={})),(function(t){t[t.LOAD=0]="LOAD",t[t.CLEAR=1]="CLEAR",t[t.DISCARD=2]="DISCARD"})(M||(M={})),(function(t){t[t.STORE=0]="STORE",t[t.DISCARD=1]="DISCARD"})(O||(O={})),(function(t){t[t.UNDEFINED=0]="UNDEFINED",t[t.GENERAL=1]="GENERAL",t[t.COLOR_ATTACHMENT_OPTIMAL=2]="COLOR_ATTACHMENT_OPTIMAL",t[t.DEPTH_STENCIL_ATTACHMENT_OPTIMAL=3]="DEPTH_STENCIL_ATTACHMENT_OPTIMAL",t[t.DEPTH_STENCIL_READONLY_OPTIMAL=4]="DEPTH_STENCIL_READONLY_OPTIMAL",t[t.SHADER_READONLY_OPTIMAL=5]="SHADER_READONLY_OPTIMAL",t[t.TRANSFER_SRC_OPTIMAL=6]="TRANSFER_SRC_OPTIMAL",t[t.TRANSFER_DST_OPTIMAL=7]="TRANSFER_DST_OPTIMAL",t[t.PREINITIALIZED=8]="PREINITIALIZED",t[t.PRESENT_SRC=9]="PRESENT_SRC"})(D||(D={})),(function(t){t[t.GRAPHICS=0]="GRAPHICS",t[t.COMPUTE=1]="COMPUTE",t[t.RAY_TRACING=2]="RAY_TRACING"})(L||(L={})),(function(t){t[t.VIEWPORT=0]="VIEWPORT",t[t.SCISSOR=1]="SCISSOR",t[t.LINE_WIDTH=2]="LINE_WIDTH",t[t.DEPTH_BIAS=3]="DEPTH_BIAS",t[t.BLEND_CONSTANTS=4]="BLEND_CONSTANTS",t[t.DEPTH_BOUNDS=5]="DEPTH_BOUNDS",t[t.STENCIL_WRITE_MASK=6]="STENCIL_WRITE_MASK",t[t.STENCIL_COMPARE_MASK=7]="STENCIL_COMPARE_MASK"})(P||(P={})),(function(t){t[t.FRONT=0]="FRONT",t[t.BACK=1]="BACK",t[t.ALL=2]="ALL"})(N||(N={})),(function(t){t[t.GRAPHICS=0]="GRAPHICS",t[t.COMPUTE=1]="COMPUTE",t[t.TRANSFER=2]="TRANSFER"})(F||(F={})),(function(t){t[t.NONE=0]="NONE",t[t.COLOR=1]="COLOR",t[t.DEPTH=2]="DEPTH",t[t.STENCIL=4]="STENCIL",t[t.DEPTH_STENCIL=6]="DEPTH_STENCIL",t[t.ALL=7]="ALL"})(B||(B={})),(function(t){t[t.DEFAULT=100]="DEFAULT"})(U||(U={})),(function(t){t[t.MIN=0]="MIN",t[t.MAX=255]="MAX",t[t.DEFAULT=128]="DEFAULT"})(k||(k={})),(function(t){t[t.UBO_GLOBAL=23]="UBO_GLOBAL",t[t.UBO_SHADOW=22]="UBO_SHADOW",t[t.UBO_LOCAL=21]="UBO_LOCAL",t[t.UBO_FORWARD_LIGHTS=20]="UBO_FORWARD_LIGHTS",t[t.UBO_SKINNING=19]="UBO_SKINNING",t[t.UBO_SKINNING_TEXTURE=18]="UBO_SKINNING_TEXTURE",t[t.UBO_UI=17]="UBO_UI",t[t.SAMPLER_JOINTS=25]="SAMPLER_JOINTS",t[t.SAMPLER_ENVIRONMENT=26]="SAMPLER_ENVIRONMENT",t[t.CUSTUM_UBO_BINDING_END_POINT=17]="CUSTUM_UBO_BINDING_END_POINT",t[t.CUSTOM_SAMPLER_BINDING_START_POINT=30]="CUSTOM_SAMPLER_BINDING_START_POINT"})(z||(z={})),(function(t){t[t.minFilter=0]="minFilter",t[t.magFilter=1]="magFilter",t[t.mipFilter=2]="mipFilter",t[t.addressU=3]="addressU",t[t.addressV=4]="addressV",t[t.addressW=5]="addressW",t[t.maxAnisotropy=6]="maxAnisotropy",t[t.cmpFunc=7]="cmpFunc",t[t.minLOD=8]="minLOD",t[t.maxLOD=9]="maxLOD",t[t.mipLODBias=10]="mipLODBias",t[t.borderColor=11]="borderColor",t[t.total=15]="total"})(G||(G={}));var H={};H[H.bool=a.BOOL]="bool",H[H.int=a.INT]="int",H[H.ivec2=a.INT2]="ivec2invTypeParams",H[H.ivec3=a.INT3]="ivec3",H[H.ivec4=a.INT4]="ivec4",H[H.float=a.FLOAT]="float",H[H.vec2=a.FLOAT2]="vec2",H[H.vec3=a.FLOAT3]="vec3",H[H.vec4=a.FLOAT4]="vec4",H[H.mat2=a.MAT2]="mat2",H[H.mat3=a.MAT3]="mat3",H[H.mat4=a.MAT4]="mat4",H[H.sampler2D=a.SAMPLER2D]="sampler2D",H[H.samplerCube=a.SAMPLER_CUBE]="samplerCube";var j=((V={})[a.BOOL]=4,V[a.INT]=4,V[a.INT2]=8,V[a.INT3]=12,V[a.INT4]=16,V[a.FLOAT]=4,V[a.FLOAT2]=8,V[a.FLOAT3]=12,V[a.FLOAT4]=16,V[a.MAT2]=16,V[a.MAT3]=36,V[a.MAT4]=64,V[a.SAMPLER2D]=4,V[a.SAMPLER_CUBE]=4,V),Y=((W={})[a.BOOL]=o.R32I,W[a.INT]=o.R32I,W[a.INT2]=o.RG32I,W[a.INT3]=o.RGB32I,W[a.INT4]=o.RGBA32I,W[a.FLOAT]=o.R32F,W[a.FLOAT2]=o.RG32F,W[a.FLOAT3]=o.RGB32F,W[a.FLOAT4]=o.RGBA32F,W),X={BACK:1029,FRONT:1028,NONE:0,ADD:32774,SUB:32778,REV_SUB:32779,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,SRC_ALPHA_SATURATE:776,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,INCR_WRAP:34055,DECR:7683,DECR_WRAP:34056,INVERT:5386};Object.assign(X,U);var q={murmurhash2_32_gc:function(t,e){for(var i,n=t.length,r=e^n,s=0;n>=4;)i=1540483477*(65535&(i=255&t.charCodeAt(s)|(255&t.charCodeAt(++s))<<8|(255&t.charCodeAt(++s))<<16|(255&t.charCodeAt(++s))<<24))+((1540483477*(i>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(i=1540483477*(65535&(i^=i>>>24))+((1540483477*(i>>>16)&65535)<<16)),n-=4,++s;switch(n){case 3:r^=(255&t.charCodeAt(s+2))<<16;case 2:r^=(255&t.charCodeAt(s+1))<<8;case 1:r=1540483477*(65535&(r^=255&t.charCodeAt(s)))+((1540483477*(r>>>16)&65535)<<16)}return r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16),(r^=r>>>15)>>>0},SamplerInfoIndex:G,effectStructure:{$techniques:[{$passes:[{depthStencilState:{},rasterizerState:{},blendState:{targets:[{}]},properties:{any:{sampler:{},inspector:{}}}}]}]},typeMap:H,sizeMap:j,formatMap:Y,passParams:X,RenderQueue:{OPAQUE:0,TRANSPARENT:1,OVERLAY:2},RenderPriority:k,GFXGetTypeSize:function(t){switch(t){case a.BOOL:case a.INT:case a.UINT:case a.FLOAT:return 4;case a.BOOL2:case a.INT2:case a.UINT2:case a.FLOAT2:return 8;case a.BOOL3:case a.INT3:case a.UINT3:case a.FLOAT3:return 12;case a.BOOL4:case a.INT4:case a.UINT4:case a.FLOAT4:case a.MAT2:return 16;case a.MAT2X3:return 24;case a.MAT2X4:return 32;case a.MAT3X2:return 24;case a.MAT3:return 36;case a.MAT3X4:return 48;case a.MAT4X2:case a.MAT4X2:return 32;case a.MAT4:return 64;case a.SAMPLER1D:case a.SAMPLER1D_ARRAY:case a.SAMPLER2D:case a.SAMPLER2D_ARRAY:case a.SAMPLER3D:case a.SAMPLER_CUBE:return 4;default:return 0}},UniformBinding:z};e.exports=q}),{}],245:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n=t("../memop"),r=u(t("../enums")),s=t("../../core/value-types"),a=u(t("./program-lib")),o=u(t("./view")),c=u(t("../gfx"));function u(t){return t&&t.__esModule?t:{default:t}}var l=new s.Mat4,h=new n.RecyclePool(function(){return{stage:null,items:null}},8),_=new n.RecyclePool(function(){return new Float32Array(2)},8),f=new n.RecyclePool(function(){return new Float32Array(3)},8),d=new n.RecyclePool(function(){return new Float32Array(4)},8),p=new n.RecyclePool(function(){return new Float32Array(9)},8),v=new n.RecyclePool(function(){return new Float32Array(16)},8),g=new n.RecyclePool(function(){return new Float32Array(64)},8),m=new n.RecyclePool(function(){return new Int32Array(2)},8),y=new n.RecyclePool(function(){return new Int32Array(3)},8),T=new n.RecyclePool(function(){return new Int32Array(4)},8),E=new n.RecyclePool(function(){return new Int32Array(64)},8),A=(function(){function t(t,e){var i;this._device=t,this._programLib=new a.default(t),this._opts=e,this._type2defaultValue=((i={})[r.default.PARAM_INT]=0,i[r.default.PARAM_INT2]=new s.Vec2(0,0),i[r.default.PARAM_INT3]=new s.Vec3(0,0,0),i[r.default.PARAM_INT4]=new s.Vec4(0,0,0,0),i[r.default.PARAM_FLOAT]=0,i[r.default.PARAM_FLOAT2]=new s.Vec2(0,0),i[r.default.PARAM_FLOAT3]=new s.Vec3(0,0,0),i[r.default.PARAM_FLOAT4]=new s.Vec4(0,0,0,0),i[r.default.PARAM_COLOR4]=new s.Color(0,0,0,1),i[r.default.PARAM_MAT3]=new s.Mat3,i[r.default.PARAM_MAT4]=new s.Mat4,i[r.default.PARAM_TEXTURE_2D]=e.defaultTexture,i[r.default.PARAM_TEXTURE_CUBE]=e.defaultTextureCube,i),this._stage2fn={},this._usedTextureUnits=0,this._viewPools=new n.RecyclePool(function(){return new o.default},8),this._drawItemsPools=new n.RecyclePool(function(){return{model:null,node:null,ia:null,effect:null,defines:null,uniforms:null}},100),this._stageItemsPools=new n.RecyclePool(function(){return new n.RecyclePool(function(){return{model:null,node:null,ia:null,effect:null,defines:null,passes:[],sortKey:-1,uniforms:null}},100)},16),this._definesChanged=!1}var e=t.prototype;return e._resetTextuerUnit=function(){this._usedTextureUnits=0},e._allocTextureUnit=function(){var t=this._device,e=this._usedTextureUnits;return e>=t._caps.maxTextureUnits&&console.warn("Trying to use "+e+" texture units while this GPU supports only "+t._caps.maxTextureUnits),this._usedTextureUnits+=1,e},e._registerStage=function(t,e){this._stage2fn[t]=e},e.clear=function(){this._programLib.clear(),this.reset()},e.reset=function(){this._viewPools.reset(),this._stageItemsPools.reset(),this._definesChanged=!1},e._requestView=function(){return this._viewPools.add()},e._render=function(t,e){var i=this._device;i.setFrameBuffer(t._framebuffer),i.setViewport(t._rect.x,t._rect.y,t._rect.w,t._rect.h);var n={};t._clearFlags&r.default.CLEAR_COLOR&&(n.color=s.Vec4.toArray([],t._color)),t._clearFlags&r.default.CLEAR_DEPTH&&(n.depth=t._depth),t._clearFlags&r.default.CLEAR_STENCIL&&(n.stencil=t._stencil),i.clear(n),this._drawItemsPools.reset();for(var a=0;at.count)return void console.error("Failed to set property ["+t.name+"] : The length of texture array ["+i.length+"] is bigger than ["+t.count+"].");for(var n=E.add(),s=0;s0&&n&&n.precision>0}e||cc.warnID(9102),this._highpSupported=e},t})();i.default=l,e.exports=i.default}),{"../gfx":256}],249:[(function(t,e,i){"use strict";function n(t,e){for(var i=0;i>24)/255,(i.blendColor>>16&255)/255,(i.blendColor>>8&255)/255,(255&i.blendColor)/255),void(i.blendSep?(t.blendFuncSeparate(i.blendSrc,i.blendDst,i.blendSrcAlpha,i.blendDstAlpha),t.blendEquationSeparate(i.blendEq,i.blendAlphaEq)):(t.blendFunc(i.blendSrc,i.blendDst),t.blendEquation(i.blendEq)))):void t.disable(t.BLEND);!1!==i.blend&&(e.blendColor!==i.blendColor&&t.blendColor((i.blendColor>>24)/255,(i.blendColor>>16&255)/255,(i.blendColor>>8&255)/255,(255&i.blendColor)/255),e.blendSep===i.blendSep?i.blendSep?(e.blendSrc===i.blendSrc&&e.blendDst===i.blendDst&&e.blendSrcAlpha===i.blendSrcAlpha&&e.blendDstAlpha===i.blendDstAlpha||t.blendFuncSeparate(i.blendSrc,i.blendDst,i.blendSrcAlpha,i.blendDstAlpha),e.blendEq===i.blendEq&&e.blendAlphaEq===i.blendAlphaEq||t.blendEquationSeparate(i.blendEq,i.blendAlphaEq)):(e.blendSrc===i.blendSrc&&e.blendDst===i.blendDst||t.blendFunc(i.blendSrc,i.blendDst),e.blendEq!==i.blendEq&&t.blendEquation(i.blendEq)):i.blendSep?(t.blendFuncSeparate(i.blendSrc,i.blendDst,i.blendSrcAlpha,i.blendDstAlpha),t.blendEquationSeparate(i.blendEq,i.blendAlphaEq)):(t.blendFunc(i.blendSrc,i.blendDst),t.blendEquation(i.blendEq)))}function d(t,e,i){if(e.depthTest!==i.depthTest)return i.depthTest?(t.enable(t.DEPTH_TEST),t.depthFunc(i.depthFunc),void t.depthMask(i.depthWrite)):void t.disable(t.DEPTH_TEST);e.depthWrite!==i.depthWrite&&t.depthMask(i.depthWrite),!1!==i.depthTest?e.depthFunc!==i.depthFunc&&t.depthFunc(i.depthFunc):i.depthWrite&&(i.depthTest=!0,i.depthFunc=a.enums.DS_FUNC_ALWAYS,t.enable(t.DEPTH_TEST),t.depthFunc(i.depthFunc))}function p(t,e,i){if(i.stencilTest!==a.enums.STENCIL_INHERIT)return i.stencilTest!==e.stencilTest?i.stencilTest===a.enums.STENCIL_DISABLE?void t.disable(t.STENCIL_TEST):(t.enable(t.STENCIL_TEST),void(i.stencilSep?(t.stencilFuncSeparate(t.FRONT,i.stencilFuncFront,i.stencilRefFront,i.stencilMaskFront),t.stencilMaskSeparate(t.FRONT,i.stencilWriteMaskFront),t.stencilOpSeparate(t.FRONT,i.stencilFailOpFront,i.stencilZFailOpFront,i.stencilZPassOpFront),t.stencilFuncSeparate(t.BACK,i.stencilFuncBack,i.stencilRefBack,i.stencilMaskBack),t.stencilMaskSeparate(t.BACK,i.stencilWriteMaskBack),t.stencilOpSeparate(t.BACK,i.stencilFailOpBack,i.stencilZFailOpBack,i.stencilZPassOpBack)):(t.stencilFunc(i.stencilFuncFront,i.stencilRefFront,i.stencilMaskFront),t.stencilMask(i.stencilWriteMaskFront),t.stencilOp(i.stencilFailOpFront,i.stencilZFailOpFront,i.stencilZPassOpFront)))):void(i.stencilTest!==a.enums.STENCIL_DISABLE&&(e.stencilSep===i.stencilSep?i.stencilSep?(e.stencilFuncFront===i.stencilFuncFront&&e.stencilRefFront===i.stencilRefFront&&e.stencilMaskFront===i.stencilMaskFront||t.stencilFuncSeparate(t.FRONT,i.stencilFuncFront,i.stencilRefFront,i.stencilMaskFront),e.stencilWriteMaskFront!==i.stencilWriteMaskFront&&t.stencilMaskSeparate(t.FRONT,i.stencilWriteMaskFront),e.stencilFailOpFront===i.stencilFailOpFront&&e.stencilZFailOpFront===i.stencilZFailOpFront&&e.stencilZPassOpFront===i.stencilZPassOpFront||t.stencilOpSeparate(t.FRONT,i.stencilFailOpFront,i.stencilZFailOpFront,i.stencilZPassOpFront),e.stencilFuncBack===i.stencilFuncBack&&e.stencilRefBack===i.stencilRefBack&&e.stencilMaskBack===i.stencilMaskBack||t.stencilFuncSeparate(t.BACK,i.stencilFuncBack,i.stencilRefBack,i.stencilMaskBack),e.stencilWriteMaskBack!==i.stencilWriteMaskBack&&t.stencilMaskSeparate(t.BACK,i.stencilWriteMaskBack),e.stencilFailOpBack===i.stencilFailOpBack&&e.stencilZFailOpBack===i.stencilZFailOpBack&&e.stencilZPassOpBack===i.stencilZPassOpBack||t.stencilOpSeparate(t.BACK,i.stencilFailOpBack,i.stencilZFailOpBack,i.stencilZPassOpBack)):(e.stencilFuncFront===i.stencilFuncFront&&e.stencilRefFront===i.stencilRefFront&&e.stencilMaskFront===i.stencilMaskFront||t.stencilFunc(i.stencilFuncFront,i.stencilRefFront,i.stencilMaskFront),e.stencilWriteMaskFront!==i.stencilWriteMaskFront&&t.stencilMask(i.stencilWriteMaskFront),e.stencilFailOpFront===i.stencilFailOpFront&&e.stencilZFailOpFront===i.stencilZFailOpFront&&e.stencilZPassOpFront===i.stencilZPassOpFront||t.stencilOp(i.stencilFailOpFront,i.stencilZFailOpFront,i.stencilZPassOpFront)):i.stencilSep?(t.stencilFuncSeparate(t.FRONT,i.stencilFuncFront,i.stencilRefFront,i.stencilMaskFront),t.stencilMaskSeparate(t.FRONT,i.stencilWriteMaskFront),t.stencilOpSeparate(t.FRONT,i.stencilFailOpFront,i.stencilZFailOpFront,i.stencilZPassOpFront),t.stencilFuncSeparate(t.BACK,i.stencilFuncBack,i.stencilRefBack,i.stencilMaskBack),t.stencilMaskSeparate(t.BACK,i.stencilWriteMaskBack),t.stencilOpSeparate(t.BACK,i.stencilFailOpBack,i.stencilZFailOpBack,i.stencilZPassOpBack)):(t.stencilFunc(i.stencilFuncFront,i.stencilRefFront,i.stencilMaskFront),t.stencilMask(i.stencilWriteMaskFront),t.stencilOp(i.stencilFailOpFront,i.stencilZFailOpFront,i.stencilZPassOpFront))))}function v(t,e,i){e.cullMode!==i.cullMode&&(i.cullMode!==a.enums.CULL_NONE?(t.enable(t.CULL_FACE),t.cullFace(i.cullMode)):t.disable(t.CULL_FACE))}function g(t,e,i,n){var r=!1;if(-1!==n.maxStream){if(i.maxStream!==n.maxStream)r=!0;else if(i.program!==n.program)r=!0;else for(var s=0;s>>0},n.setBlendFunc=function(t,e){this._next.blendSep=!1,this._next.blendSrc=t,this._next.blendDst=e},n.setBlendFuncSep=function(t,e,i,n){this._next.blendSep=!0,this._next.blendSrc=t,this._next.blendDst=e,this._next.blendSrcAlpha=i,this._next.blendDstAlpha=n},n.setBlendEq=function(t){this._next.blendSep=!1,this._next.blendEq=t},n.setBlendEqSep=function(t,e){this._next.blendSep=!0,this._next.blendEq=t,this._next.blendAlphaEq=e},n.setCullMode=function(t){this._next.cullMode=t},n.setVertexBuffer=function(t,e,i){void 0===i&&(i=0),this._next.vertexBuffers[t]=e,this._next.vertexBufferOffsets[t]=i,this._next.maxStream=this._caps.maxTextureUnits?console.warn("Can not set texture "+t+" at stage "+i+", max texture exceed: "+this._caps.maxTextureUnits):(this._next.textureUnits[i]=e,this.setUniform(t,i),this._next.maxTextureSlot=this._caps.maxTextureUnits)console.warn("Can not set "+n+" textures for "+t+", max texture exceed: "+this._caps.maxTextureUnits);else{for(var r=0;rthis._bytes){if(t)return void console.error("Failed to update data, bytes exceed.");this._needExpandDataStore=!0,this._bytes=t+e.byteLength,this._numIndices=this._bytes/this._bytesPerIndex}var i=this._device._gl,n=this._usage;i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,this._glID),this._needExpandDataStore?(i.bufferData(i.ELEMENT_ARRAY_BUFFER,e,n),this._needExpandDataStore=!1):i.bufferSubData(i.ELEMENT_ARRAY_BUFFER,t,e),this._device._restoreIndexBuffer()}}else console.error("The buffer is destroyed")},n.setUsage=function(t){this._usage=t},e=t,(i=[{key:"count",get:function(){return this._numIndices}}])&&s(e.prototype,i),t})();o.BYTES_PER_INDEX=a;var c=o;i.default=c,e.exports=i.default}),{"./enums":253}],256:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n,r=t("./enums");n={VertexFormat:t("./vertex-format"),IndexBuffer:t("./index-buffer"),VertexBuffer:t("./vertex-buffer"),Program:t("./program"),Texture:t("./texture"),Texture2D:t("./texture-2d"),TextureCube:t("./texture-cube"),RenderBuffer:t("./render-buffer"),FrameBuffer:t("./frame-buffer"),Device:t("./device"),attrTypeBytes:r.attrTypeBytes,glFilter:r.glFilter,glTextureFmt:r.glTextureFmt},Object.assign(n,r.enums);var s=n;i.default=s,cc.gfx=n,e.exports=i.default}),{"./device":252,"./enums":253,"./frame-buffer":254,"./index-buffer":255,"./program":258,"./render-buffer":259,"./texture":263,"./texture-2d":261,"./texture-cube":262,"./vertex-buffer":264,"./vertex-format":265}],257:[(function(t,e,i){"use strict";i.__esModule=!0,i.isPow2=function(t){return!(t&t-1||!t)}}),{}],258:[(function(t,e,i){"use strict";function n(t,e){for(var i=0;i0&&t.push({type:e,fileID:-1,line:0,message:i})}}))}var a=(function(){function t(t,e){this._device=t,this._attributes=[],this._uniforms=[],this._samplers=[],this._errors=[],this._linked=!1,this._vertSource=e.vert,this._fragSource=e.frag,this._glID=null,this._id=r++}var e,i,a=t.prototype;return a.link=function(){if(!this._linked){var t=this._device._gl,e=o(t,t.VERTEX_SHADER,this._vertSource),i=o(t,t.FRAGMENT_SHADER,this._fragSource),n=t.createProgram();t.attachShader(n,e),t.attachShader(n,i),t.linkProgram(n);var r=!1,a=this._errors;if(t.getShaderParameter(e,t.COMPILE_STATUS)||(s(a,"vs",t.getShaderInfoLog(e)),r=!0),t.getShaderParameter(i,t.COMPILE_STATUS)||(s(a,"fs",t.getShaderInfoLog(i)),r=!0),t.deleteShader(e),t.deleteShader(i),r)return a;if(!t.getProgramParameter(n,t.LINK_STATUS))return a.push({info:"Failed to link shader program: "+t.getProgramInfoLog(n)}),a;this._glID=n;for(var c=t.getProgramParameter(n,t.ACTIVE_ATTRIBUTES),u=0;u=s.enums.TEXTURE_FMT_RGB_DXT1&&this._format<=s.enums.TEXTURE_FMT_RGBA_PVRTC_4BPPV1||this._format>=s.enums.TEXTURE_FMT_RGB_ETC2&&this._format<=s.enums.TEXTURE_FMT_RGBA_ETC2),void 0!==t.genMipmaps&&(this._genMipmap=t.genMipmaps,i=t.genMipmaps);var n=this._device.caps.maxTextureSize||Number.MAX_VALUE,r=Math.max(t.width||0,t.height||0);n1&&(i=!1,(t.width>t.height?t.width:t.height)>>t.images.length-1!=1&&console.error("texture-2d mipmap is invalid, should have a 1x1 mipmap."))}(0,a.isPow2)(this._width)&&(0,a.isPow2)(this._height)||(i=!1),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this._glID),void 0!==t.images&&t.images.length>0&&(this._setMipmap(t.images,t.flipY,t.premultiplyAlpha),t.images.length>1&&(this._genMipmap=!0)),i&&(e.hint(e.GENERATE_MIPMAP_HINT,e.NICEST),e.generateMipmap(e.TEXTURE_2D),this._genMipmap=!0),this._setTexInfo(),this._device._restoreTexture(0)},r.updateSubImage=function(t){var e=this._device._gl,i=(0,s.glTextureFmt)(this._format);e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this._glID),this._setSubImage(i,t),this._device._restoreTexture(0)},r.updateImage=function(t){var e=this._device._gl,i=(0,s.glTextureFmt)(this._format);e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_2D,this._glID),this._setImage(i,t),this._device._restoreTexture(0)},r._setSubImage=function(t,e){var i=this._device._gl,n=e.flipY,r=e.premultiplyAlpha,s=e.image;!s||ArrayBuffer.isView(s)||s instanceof ArrayBuffer?(void 0===n?i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1):i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,n),void 0===r?i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1):i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r),this._compressed?i.compressedTexSubImage2D(i.TEXTURE_2D,e.level,e.x,e.y,e.width,e.height,t.format,s):i.texSubImage2D(i.TEXTURE_2D,e.level,e.x,e.y,e.width,e.height,t.format,t.pixelType,s)):(void 0===n?i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!0):i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,n),void 0===r?i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1):i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r),i.texSubImage2D(i.TEXTURE_2D,e.level,e.x,e.y,t.format,t.pixelType,s))},r._setImage=function(t,e){var i=this._device._gl,n=e.flipY,r=e.premultiplyAlpha,s=e.image;!s||ArrayBuffer.isView(s)||s instanceof ArrayBuffer?(void 0===n?i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1):i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,n),void 0===r?i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1):i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r),this._compressed?i.compressedTexImage2D(i.TEXTURE_2D,e.level,t.internalFormat,e.width,e.height,0,s):i.texImage2D(i.TEXTURE_2D,e.level,t.internalFormat,e.width,e.height,0,t.format,t.pixelType,s)):(void 0===n?i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!0):i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,n),void 0===r?i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1):i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r),i.texImage2D(i.TEXTURE_2D,e.level,t.internalFormat,t.format,t.pixelType,s))},r._setMipmap=function(t,e,i){for(var n=(0,s.glTextureFmt)(this._format),r={width:this._width,height:this._height,flipY:e,premultiplyAlpha:i,level:0,image:null},a=0;a>a,r.height=this._height>>a,r.image=t[a],this._setImage(n,r)},r._setTexInfo=function(){var t=this._device._gl,e=(0,a.isPow2)(this._width)&&(0,a.isPow2)(this._height);e||this._wrapS===s.enums.WRAP_CLAMP&&this._wrapT===s.enums.WRAP_CLAMP||(console.warn("WebGL1 doesn't support all wrap modes with NPOT textures"),this._wrapS=s.enums.WRAP_CLAMP,this._wrapT=s.enums.WRAP_CLAMP);var i=this._genMipmap?this._mipFilter:-1;e||-1===i||(console.warn("NPOT textures do not support mipmap filter"),i=-1),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,(0,s.glFilter)(t,this._minFilter,i)),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,(0,s.glFilter)(t,this._magFilter,-1)),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,this._wrapS),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,this._wrapT);var n=this._device.ext("EXT_texture_filter_anisotropic");n&&t.texParameteri(t.TEXTURE_2D,n.TEXTURE_MAX_ANISOTROPY_EXT,this._anisotropy)},n})(r.default);i.default=c,e.exports=i.default}),{"./enums":253,"./misc":257,"./texture":263}],262:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n,r=(n=t("./texture"))&&n.__esModule?n:{default:n},s=t("./enums"),a=t("./misc");function o(t,e){return(o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var c=(function(t){var e,i;function n(e,i){var n,r=(n=t.call(this,e)||this)._device._gl;return n._target=r.TEXTURE_CUBE_MAP,n._glID=r.createTexture(),n.update(i),n}i=t,(e=n).prototype=Object.create(i.prototype),e.prototype.constructor=e,o(e,i);var r=n.prototype;return r.update=function(t){var e=this._device._gl,i=this._genMipmaps;t&&(void 0!==t.width&&(this._width=t.width),void 0!==t.height&&(this._height=t.height),void 0!==t.anisotropy&&(this._anisotropy=t.anisotropy),void 0!==t.minFilter&&(this._minFilter=t.minFilter),void 0!==t.magFilter&&(this._magFilter=t.magFilter),void 0!==t.mipFilter&&(this._mipFilter=t.mipFilter),void 0!==t.wrapS&&(this._wrapS=t.wrapS),void 0!==t.wrapT&&(this._wrapT=t.wrapT),void 0!==t.format&&(this._format=t.format,this._compressed=this._format>=s.enums.TEXTURE_FMT_RGB_DXT1&&this._format<=s.enums.TEXTURE_FMT_RGBA_PVRTC_4BPPV1||this._format>=s.enums.TEXTURE_FMT_RGB_ETC2&&this._format<=s.enums.TEXTURE_FMT_RGBA_ETC2),void 0!==t.genMipmaps&&(this._genMipmaps=t.genMipmaps,i=t.genMipmaps),void 0!==t.images&&t.images.length>1&&(i=!1,t.width!==t.height&&console.warn("texture-cube width and height should be identical."),t.width>>t.images.length-1!=1&&console.error("texture-cube mipmap is invalid. please set mipmap as 1x1, 2x2, 4x4 ... nxn"))),(0,a.isPow2)(this._width)&&(0,a.isPow2)(this._height)||(i=!1),e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_CUBE_MAP,this._glID),void 0!==t.images&&t.images.length>0&&(this._setMipmap(t.images,t.flipY,t.premultiplyAlpha),t.images.length>1&&(this._genMipmaps=!0)),i&&(e.hint(e.GENERATE_MIPMAP_HINT,e.NICEST),e.generateMipmap(e.TEXTURE_CUBE_MAP),this._genMipmaps=!0),this._setTexInfo(),this._device._restoreTexture(0)},r.updateSubImage=function(t){var e=this._device._gl,i=(0,s.glTextureFmt)(this._format);e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_CUBE_MAP,this._glID),this._setSubImage(i,t),this._device._restoreTexture(0)},r.updateImage=function(t){var e=this._device._gl,i=(0,s.glTextureFmt)(this._format);e.activeTexture(e.TEXTURE0),e.bindTexture(e.TEXTURE_CUBE_MAP,this._glID),this._setImage(i,t),this._device._restoreTexture(0)},r._setSubImage=function(t,e){var i=this._device._gl,n=e.flipY,r=e.premultiplyAlpha,s=e.faceIndex,a=e.image;void 0===n?i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1):i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,n),void 0===r?i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1):i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r),!a||ArrayBuffer.isView(a)||a instanceof ArrayBuffer?this._compressed?i.compressedTexSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+s,e.level,e.x,e.y,e.width,e.height,t.format,a):i.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+s,e.level,e.x,e.y,e.width,e.height,t.format,t.pixelType,a):i.texSubImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+s,e.level,e.x,e.y,t.format,t.pixelType,a)},r._setImage=function(t,e){var i=this._device._gl,n=e.flipY,r=e.premultiplyAlpha,s=e.faceIndex,a=e.image;void 0===n?i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1):i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,n),void 0===r?i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1):i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r),!a||ArrayBuffer.isView(a)||a instanceof ArrayBuffer?this._compressed?i.compressedTexImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+s,e.level,t.internalFormat,e.width,e.height,0,a):i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+s,e.level,t.internalFormat,e.width,e.height,0,t.format,t.pixelType,a):i.texImage2D(i.TEXTURE_CUBE_MAP_POSITIVE_X+s,e.level,t.internalFormat,t.format,t.pixelType,a)},r._setMipmap=function(t,e,i){for(var n=(0,s.glTextureFmt)(this._format),r={width:this._width,height:this._height,faceIndex:0,flipY:e,premultiplyAlpha:i,level:0,image:null},a=0;a>a,r.height=this._height>>a;for(var c=0;c<6;++c)r.faceIndex=c,r.image=o[c],this._setImage(n,r)}},r._setTexInfo=function(){var t=this._device._gl,e=(0,a.isPow2)(this._width)&&(0,a.isPow2)(this._height);e||this._wrapS===s.enums.WRAP_CLAMP&&this._wrapT===s.enums.WRAP_CLAMP||(console.warn("WebGL1 doesn't support all wrap modes with NPOT textures"),this._wrapS=s.enums.WRAP_CLAMP,this._wrapT=s.enums.WRAP_CLAMP);var i=this._genMipmaps?this._mipFilter:-1;e||-1===i||(console.warn("NPOT textures do not support mipmap filter"),i=-1),t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_MIN_FILTER,(0,s.glFilter)(t,this._minFilter,i)),t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_MAG_FILTER,(0,s.glFilter)(t,this._magFilter,-1)),t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_WRAP_S,this._wrapS),t.texParameteri(t.TEXTURE_CUBE_MAP,t.TEXTURE_WRAP_T,this._wrapT);var n=this._device.ext("EXT_texture_filter_anisotropic");n&&t.texParameteri(t.TEXTURE_CUBE_MAP,n.TEXTURE_MAX_ANISOTROPY_EXT,this._anisotropy)},n})(r.default);i.default=c,e.exports=i.default}),{"./enums":253,"./misc":257,"./texture":263}],263:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n=t("./enums"),r=0,s=(function(){function t(t){this._device=t,this._width=4,this._height=4,this._genMipmaps=!1,this._compressed=!1,this._anisotropy=1,this._minFilter=n.enums.FILTER_LINEAR,this._magFilter=n.enums.FILTER_LINEAR,this._mipFilter=n.enums.FILTER_LINEAR,this._wrapS=n.enums.WRAP_REPEAT,this._wrapT=n.enums.WRAP_REPEAT,this._format=n.enums.TEXTURE_FMT_RGBA8,this._target=-1,this._id=r++}return t.prototype.destroy=function(){null!==this._glID?(this._device._gl.deleteTexture(this._glID),this._device._stats.tex-=this.bytes,this._glID=null):console.error("The texture already destroyed")},t})();i.default=s,e.exports=i.default}),{"./enums":253}],264:[(function(t,e,i){"use strict";function n(t,e){for(var i=0;ithis._bytes){if(t)return void console.error("Failed to update data, bytes exceed.");this._needExpandDataStore=!0,this._bytes=t+e.byteLength,this._numVertices=this._bytes/this._bytesPerVertex}var i=this._device._gl,n=this._usage;i.bindBuffer(i.ARRAY_BUFFER,this._glID),this._needExpandDataStore?(i.bufferData(i.ARRAY_BUFFER,e,n),this._needExpandDataStore=!1):i.bufferSubData(i.ARRAY_BUFFER,t,e),i.bindBuffer(i.ARRAY_BUFFER,null)}}else console.error("The buffer is destroyed")},r.getFormat=function(t){return this._format.element(t)},r.setUsage=function(t){this._usage=t},e=t,(i=[{key:"count",get:function(){return this._numVertices}}])&&n(e.prototype,i),t})();i.default=r,e.exports=i.default}),{"./enums":253}],265:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n,r=t("./enums"),s=(n=t("../murmurhash2_gc"))&&n.__esModule?n:{default:n},a=(function(){function t(t){this._attr2el={},this._elements=[],this._bytes=0;for(var e="",i=0,n=t.length;ithis._data.length)for(var e=this._data.length;e=this._data.length&&this._resize(2*this._data.length),this._data[this._count]=t,++this._count},n.pop=function(){--this._count,this._count<0&&(this._count=0);var t=this._data[this._count];return this._data[this._count]=void 0,t},n.fastRemove=function(t){if(!(t>=this._count||t<0)){var e=this._count-1;this._data[t]=this._data[e],this._data[e]=void 0,this._count-=1}},n.indexOf=function(t){return this._data.indexOf(t)},n.sort=function(t){return(0,r.default)(this._data,0,this._count,t)},e=t,(i=[{key:"length",get:function(){return this._count}},{key:"data",get:function(){return this._data}}])&&s(e.prototype,i),t})();i.default=a,e.exports=i.default}),{"./timsort":272}],268:[(function(t,e,i){"use strict";i.__esModule=!0,i.TypedArrayPool=i.RecyclePool=i.Pool=i.LinkedArray=i.FixedArray=i.CircularPool=void 0;var n=u(t("./circular-pool"));i.CircularPool=n.default;var r=u(t("./fixed-array"));i.FixedArray=r.default;var s=u(t("./linked-array"));i.LinkedArray=s.default;var a=u(t("./pool"));i.Pool=a.default;var o=u(t("./recycle-pool"));i.RecyclePool=o.default;var c=u(t("./typed-array-pool"));function u(t){return t&&t.__esModule?t:{default:t}}i.TypedArrayPool=c.default}),{"./circular-pool":266,"./fixed-array":267,"./linked-array":269,"./pool":270,"./recycle-pool":271,"./typed-array-pool":273}],269:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n,r=(n=t("./pool"))&&n.__esModule?n:{default:n};function s(t,e){for(var i=0;ithis._data.length)for(var e=this._data.length;e=this._data.length&&this.resize(2*this._data.length),this._data[this._count++]},n.remove=function(t){if(!(t>=this._count)){var e=this._count-1,i=this._data[t];this._data[t]=this._data[e],this._data[e]=i,this._count-=1}},n.sort=function(t){return(0,r.default)(this._data,0,this._count,t)},e=t,(i=[{key:"length",get:function(){return this._count}},{key:"data",get:function(){return this._data}}])&&s(e.prototype,i),t})();i.default=a,cc.RecyclePool=a,e.exports=i.default}),{"./timsort":272}],272:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=function(t,e,i,r){if(!Array.isArray(t))throw new TypeError("Can only sort arrays");void 0===e&&(e=0),void 0===i&&(i=t.length),void 0===r&&(r=c);var s=i-e;if(!(s<2)){var a=0;if(sh&&(f=h),_(t,e,e+f,e+a,r),a=f}o.pushRun(e,a),o.mergeRuns(),s-=a,e+=a}while(0!==s);o.forceMergeRuns()}};var n=32,r=7,s=256,a=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];function o(t){return t<1e5?t<100?t<10?0:1:t<1e4?t<1e3?2:3:4:t<1e7?t<1e6?5:6:t<1e9?t<1e8?7:8:9}function c(t,e){if(t===e)return 0;if(~~t===t&&~~e===e){if(0===t||0===e)return t=0)return-1;if(t>=0)return 1;t=-t,e=-e}var i=o(t),n=o(e),r=0;return in&&(e*=a[i-n-1],t/=10,r=1),t===e?r:t=n;)e|=1&t,t>>=1;return t+e}function l(t,e,i,n){var r=e+1;if(r===i)return 1;if(n(t[r++],t[e])<0){for(;r=0;)r++;return r-e}function h(t,e,i){for(i--;e>>1;r(s,t[c])<0?o=c:a=c+1}var u=n-a;switch(u){case 3:t[a+3]=t[a+2];case 2:t[a+2]=t[a+1];case 1:t[a+1]=t[a];break;default:for(;u>0;)t[a+u]=t[a+u-1],u--}t[a]=s}}function f(t,e,i,n,r,s){var a=0,o=0,c=1;if(s(t,e[i+r])>0){for(o=n-r;c0;)a=c,(c=1+(c<<1))<=0&&(c=o);c>o&&(c=o),a+=r,c+=r}else{for(o=r+1;co&&(c=o);var u=a;a=r-c,c=r-u}for(a++;a>>1);s(t,e[i+l])>0?a=l+1:c=l}return c}function d(t,e,i,n,r,s){var a=0,o=0,c=1;if(s(t,e[i+r])<0){for(o=r+1;co&&(c=o);var u=a;a=r-c,c=r-u}else{for(o=n-r;c=0;)a=c,(c=1+(c<<1))<=0&&(c=o);c>o&&(c=o),a+=r,c+=r}for(a++;a>>1);s(t,e[i+l])<0?c=l:a=l+1}return c}var p=(function(){function t(t,e){this.array=t,this.compare=e,this.minGallop=r,this.length=t.length,this.tmpStorageLength=s,this.length<2*s&&(this.tmpStorageLength=this.length>>>1),this.tmp=new Array(this.tmpStorageLength),this.stackLength=this.length<120?5:this.length<1542?10:this.length<119151?19:40,this.runStart=new Array(this.stackLength),this.runLength=new Array(this.stackLength),this.stackSize=0}var e=t.prototype;return e.pushRun=function(t,e){this.runStart[this.stackSize]=t,this.runLength[this.stackSize]=e,this.stackSize+=1},e.mergeRuns=function(){for(;this.stackSize>1;){var t=this.stackSize-2;if(t>=1&&this.runLength[t-1]<=this.runLength[t]+this.runLength[t+1]||t>=2&&this.runLength[t-2]<=this.runLength[t]+this.runLength[t-1])this.runLength[t-1]this.runLength[t+1])break;this.mergeAt(t)}},e.forceMergeRuns=function(){for(;this.stackSize>1;){var t=this.stackSize-2;t>0&&this.runLength[t-1]=r||v>=r);if(g)break;_<0&&(_=0),_+=2}if(this.minGallop=_,_<1&&(this.minGallop=1),1===e){for(c=0;c=0;c--)a[p+c]=a[_+c];if(0===e){y=!0;break}}if(a[h--]=o[l--],1==--n){y=!0;break}if(0!=(m=n-f(a[u],o,0,n,n-1,s))){for(n-=m,p=1+(h-=m),_=1+(l-=m),c=0;c=r||m>=r);if(y)break;v<0&&(v=0),v+=2}if(this.minGallop=v,v<1&&(this.minGallop=1),1===n){for(p=1+(h-=e),_=1+(u-=e),c=e-1;c>=0;c--)a[p+c]=a[_+c];a[h]=o[l]}else{if(0===n)throw new Error("mergeHigh preconditions were not respected");for(_=h-(n-1),c=0;c=0;c--)a[p+c]=a[_+c];a[h]=o[l]}else for(_=h-(n-1),c=0;c65535)<<4,e|=i=((t>>>=e)>255)<<3,e|=i=((t>>>=i)>15)<<2,(e|=i=((t>>>=i)>3)<<1)|(t>>>=i)>>1}function o(t){var e=s(t),i=n[a(e)>>2];return i.length>0?i.pop():new ArrayBuffer(e)}var c={alloc_int8:function(t){var e=new Int8Array(o(t),0,t);return e.length!==t?e.subarray(0,t):e},alloc_uint8:function(t){var e=new Uint8Array(o(t),0,t);return e.length!==t?e.subarray(0,t):e},alloc_int16:function(t){var e=new Int16Array(o(2*t),0,t);return e.length!==t?e.subarray(0,t):e},alloc_uint16:function(t){var e=new Uint16Array(o(2*t),0,t);return e.length!==t?e.subarray(0,t):e},alloc_int32:function(t){var e=new Int32Array(o(4*t),0,t);return e.length!==t?e.subarray(0,t):e},alloc_uint32:function(t){var e=new Uint32Array(o(4*t),0,t);return e.length!==t?e.subarray(0,t):e},alloc_float32:function(t){var e=new Float32Array(o(4*t),0,t);return e.length!==t?e.subarray(0,t):e},alloc_float64:function(t){var e=new Float64Array(o(8*t),0,t);return e.length!==t?e.subarray(0,t):e},alloc_dataview:function(t){var e=new DataView(o(t),0,t);return e.length!==t?e.subarray(0,t):e},free:function(t){var e;e=t.buffer,n[a(e.byteLength)>>2].push(e)},reset:function(){for(var t=Array(8),e=0;e<8;++e)t[e]=[]}};i.default=c,e.exports=i.default}),{}],274:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=function(t,e){for(var i,n=t.length,r=e^n,s=0;n>=4;)i=1540483477*(65535&(i=255&t.charCodeAt(s)|(255&t.charCodeAt(++s))<<8|(255&t.charCodeAt(++s))<<16|(255&t.charCodeAt(++s))<<24))+((1540483477*(i>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(i=1540483477*(65535&(i^=i>>>24))+((1540483477*(i>>>16)&65535)<<16)),n-=4,++s;switch(n){case 3:r^=(255&t.charCodeAt(s+2))<<16;case 2:r^=(255&t.charCodeAt(s+1))<<8;case 1:r=1540483477*(65535&(r^=255&t.charCodeAt(s)))+((1540483477*(r>>>16)&65535)<<16)}return r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16),(r^=r>>>15)>>>0},e.exports=i.default}),{}],275:[(function(t,e,i){"use strict";i.__esModule=!0,i.default=void 0;var n=t("../../core/value-types"),r=o(t("../core/base-renderer")),s=o(t("../enums")),a=t("../memop");function o(t){return t&&t.__esModule?t:{default:t}}function c(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function u(t,e){return(u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}var l=new Float32Array(16),h=new Float32Array(16),_=new Float32Array(16),f=new Float32Array(16),d=new Float32Array(4),p=new Float32Array(64),v=[],g=new Float32Array(4),m=new n.Vec4(0,0,0,0),y=new n.Vec3(0,0,0),T=new n.Vec3(0,0,0),E=new a.RecyclePool(function(){return new Float32Array(16)},8);function A(t,e){return t._priority-e._priority}var C=(function(t){var e,i;function r(e,i){var n;return(n=t.call(this,e,i)||this)._time=new Float32Array(4),n._lights=[],n._shadowLights=[],n._numLights=0,n._defines={},n._registerStage("shadowcast",n._shadowStage.bind(c(n))),n._registerStage("opaque",n._opaqueStage.bind(c(n))),n._registerStage("transparent",n._transparentStage.bind(c(n))),n}i=t,(e=r).prototype=Object.create(i.prototype),e.prototype.constructor=e,u(e,i);var a=r.prototype;return a.reset=function(){E.reset(),t.prototype.reset.call(this)},a.render=function(t,e){this.reset(),e&&(this._time[0]+=e,this._time[1]=e,this._time[2]++),this._device.setUniform("cc_time",this._time),this._updateLights(t);for(var i=this._device._gl.canvas,n=0;n0){for(var e=E.add(),i=E.add(),n=E.add(),r=Math.min(4,this._lights.length),a=0;a0?1:-1}),Math.log2||(Math.log2=function(t){return Math.log(t)*Math.LOG2E}),Number.isInteger||(Number.isInteger=function(t){return"number"==typeof t&&isFinite(t)&&Math.floor(t)===t}),!console.time){var t=window.performance||Date,e=Object.create(null);console.time=function(i){e[i]=t.now()},console.timeEnd=function(i){var n=e[i],r=t.now()-n;console.log(i+": "+r+"ms")}}}),{}],286:[(function(){"use strict";Number.parseFloat=Number.parseFloat||parseFloat,Number.parseInt=Number.parseInt||parseInt}),{}],287:[(function(){"use strict";Object.assign||(Object.assign=function(t,e){return cc.js.mixin(t,e)}),Object.getOwnPropertyDescriptors||(Object.getOwnPropertyDescriptors=function(t){var e={},i=Object.getOwnPropertyNames(t);Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(t)));for(var n=0;nthis.length)&&(e=this.length),e-=t.length;var i=this.indexOf(t,e);return-1!==i&&i===e}),String.prototype.trimLeft||(String.prototype.trimLeft=function(){return this.replace(/^\s+/,"")})}),{}],289:[(function(){"use strict";var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i])};window.__extends=function(e,i){function n(){this.constructor=e}t(e,i),e.prototype=null===i?Object.create(i):(n.prototype=i.prototype,new n)},window.__assign=Object.assign||function(t){for(var e,i=1,n=arguments.length;i=0;o--)(r=t[o])&&(a=(s<3?r(a):s>3?r(e,i,a):r(e,i))||a);return s>3&&a&&Object.defineProperty(e,i,a),a},window.__param=function(t,e){return function(i,n){e(i,n,t)}},window.__metadata=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)},window.__awaiter=function(t,e,i,n){return new(i||(i=Promise))(function(r,s){function a(t){try{c(n.next(t))}catch(e){s(e)}}function o(t){try{c(n.throw(t))}catch(e){s(e)}}function c(t){var e;t.done?r(t.value):(e=t.value,e instanceof i?e:new i(function(t){t(e)})).then(a,o)}c((n=n.apply(t,e||[])).next())})},window.__generator=function(t,e){var i,n,r,s,a={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function o(t){return function(e){return c([t,e])}}function c(s){if(i)throw new TypeError("Generator is already executing.");for(;a;)try{if(i=1,n&&(r=2&s[0]?n.return:s[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,s[1])).done)return r;switch(n=0,r&&(s=[2&s[0],r.value]),s[0]){case 0:case 1:r=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,n=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(r=(r=a.trys).length>0&&r[r.length-1])&&(6===s[0]||2===s[0])){a=0;continue}if(3===s[0]&&(!r||s[1]>r[0]&&s[1]=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")},window.__read=function(t,e){var i="function"==typeof Symbol&&t[Symbol.iterator];if(!i)return t;var n,r,s=i.call(t),a=[];try{for(;(void 0===e||e-- >0)&&!(n=s.next()).done;)a.push(n.value)}catch(o){r={error:o}}finally{try{n&&!n.done&&(i=s.return)&&i.call(s)}finally{if(r)throw r.error}}return a},window.__spread=function(){for(var t=[],e=0;e1||o(t,e)})})}function o(t,e){try{(i=r[t](e)).value instanceof __await?Promise.resolve(i.value.v).then(c,u):l(s[0][2],i)}catch(n){l(s[0][3],n)}var i}function c(t){o("next",t)}function u(t){o("throw",t)}function l(t,e){t(e),s.shift(),s.length&&o(s[0][0],s[0][1])}},window.__asyncDelegator=function(t){var e,i;return e={},n("next"),n("throw",(function(t){throw t})),n("return"),e[Symbol.iterator]=function(){return this},e;function n(n,r){e[n]=t[n]?function(e){return(i=!i)?{value:__await(t[n](e)),done:"return"===n}:r?r(e):e}:r}},window.__asyncValues=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,i=t[Symbol.asyncIterator];return i?i.call(t):(t="function"==typeof __values?__values(t):t[Symbol.iterator](),e={},n("next"),n("throw"),n("return"),e[Symbol.asyncIterator]=function(){return this},e);function n(i){e[i]=t[i]&&function(e){return new Promise(function(n,s){r(n,s,(e=t[i](e)).done,e.value)})}}function r(t,e,i,n){Promise.resolve(n).then((function(e){t({value:e,done:i})}),e)}},window.__makeTemplateObject=function(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t};var e=Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e};window.__importStar=function(t){if(t&&t.__esModule)return t;var i={};if(null!=t)for(var n in t)"default"!==n&&Object.prototype.hasOwnProperty.call(t,n)&&__createBinding(i,t,n);return e(i,t),i},window.__importDefault=function(t){return t&&t.__esModule?t:{default:t}},window.__classPrivateFieldGet=function(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)},window.__classPrivateFieldSet=function(t,e,i){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,i),i}}),{}],290:[(function(){"use strict";var t="undefined"==typeof window?global:window;function e(e,i){void 0===t[e]&&Object.defineProperty(t,e,{get:function(){var t;return"CC_WECHATGAMESUB"===e?t="cc.sys.platform === cc.sys.WECHAT_GAME_SUB":"CC_WECHATGAME"===e?t="cc.sys.platform === cc.sys.WECHAT_GAME":"CC_QQPLAY"===e&&(t="cc.sys.platform === cc.sys.QQ_PLAY"),cc.warnID(1400,e,t),i}})}function i(e){return"object"==typeof t[e]}(function(e,i){void 0===t[e]&&(t[e]=i)})("CC_BUILD",!1),t.CC_BUILD=!0,t.CC_DEV=!1,t.CC_DEBUG=!1,t.CC_JSB=!1,t.CC_NATIVERENDERER=!1,t.CC_SUPPORT_JIT=!0,t.CC_PHYSICS_BUILTIN=!1,t.CC_PHYSICS_CANNON=!1,t.CC_EDITOR=!1,t.CC_PREVIEW=!1,t.CC_TEST=!1,t.CC_RUNTIME=!1,t.CC_JSB=!1;var n=!(!i("wx")||!wx.getSharedCanvas),r=!(!i("wx")||!wx.getSystemInfoSync&&!wx.getSharedCanvas),s=i("bk");e("CC_WECHATGAMESUB",n),e("CC_WECHATGAME",r),e("CC_QQPLAY",s),t.CocosEngine=cc.ENGINE_VERSION="2.4.8"}),{}]},{},[282]); \ No newline at end of file diff --git a/build/LockDiagram/favicon.8de18.ico b/build/LockDiagram/favicon.8de18.ico new file mode 100644 index 0000000000000000000000000000000000000000..0bd33cd2ae958e377836c9ca630aaeb07349aa43 GIT binary patch literal 1150 zcmah{%}-N75MQE+M?HD=rilk*j0Y1B{t2E;xOgxz8jS`eMuPZ(fTF}=peYnfErqsN z1WJQ^8mNM#h*)fBp)IsUYDES5UE0TM$C-UT)1c9LncbP+%x`vP-!fK&-@bhe*8}Y0 zZpQXA#txw(gouRW#!g}Ee`08EJfTx5G~Gs>YtU+r3|PCPmJYqUt*KsXP%BUVi*M8@ z)ua8r5LyXBCXlxYgjQGJ^*|pOH7f1jYMAxfH%`X~AjzRBpFDsjMJ+s6 z)q_#1hD=uAF_+T;-5pwcVGT=XyV~P+@wm7xLS1D!)ZM=YRBvW#0;D#HsU|-kakME~AH=Rzyqq}9GYf*AvUSiQGC?8jYra=LTc$~v?GjW$B2={4znw?~PbPz6|Jp-L>t&q>>c^%uxE0bf^z9b0SJjbMa z1_o_2w=8^xq7W_V6hu^<&Fcy*So6aK%hd#sfq>bBa;SfBm zD8*T&_aXD?pZYzXBlHF^r$H2@x^f@izJ~cd;9G-P`#WAsUMOcR{H2w+vTSaCAE8+b z#r}5ecONoNIg#~so6IZR + + + + + 思赞 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + diff --git a/build/LockDiagram/main.cdbb7.js b/build/LockDiagram/main.cdbb7.js new file mode 100644 index 0000000..e72fc61 --- /dev/null +++ b/build/LockDiagram/main.cdbb7.js @@ -0,0 +1,140 @@ +var remote_url="http://static.sparkus.cn/shoot-sun/assets/"; + +window.boot = function () { + var settings = window._CCSettings; + window._CCSettings = undefined; + var onProgress = null; + + // var RESOURCES = remote_url + cc.AssetManager.BuiltinBundleName.RESOURCES; + var RESOURCES = cc.AssetManager.BuiltinBundleName.RESOURCES; + var INTERNAL = cc.AssetManager.BuiltinBundleName.INTERNAL; + var MAIN = cc.AssetManager.BuiltinBundleName.MAIN; + function setLoadingDisplay () { + // Loading splash scene + var progressBar = document.getElementById('progress-bar'); + var progressIcon = document.getElementById('progress-icon'); + var progressContainer = document.querySelector('.progress-container'); + onProgress = function (finish, total) { + }; + cc.director.once(cc.Director.EVENT_AFTER_SCENE_LAUNCH, function () { + progressBar.style.display = 'none'; + progressIcon.style.display = 'none'; + progressContainer.style.display = 'none'; + }); + } + + var onStart = function () { + cc.view.enableRetina(true); + cc.view.resizeWithBrowserSize(true); + if (cc.sys.isBrowser) { + setLoadingDisplay(); + } + + if (cc.sys.isMobile) { + if (settings.orientation === 'landscape') { + cc.view.setOrientation(cc.macro.ORIENTATION_LANDSCAPE); + } + else if (settings.orientation === 'portrait') { + cc.view.setOrientation(cc.macro.ORIENTATION_PORTRAIT); + } + cc.view.enableAutoFullScreen([ + cc.sys.BROWSER_TYPE_BAIDU, + cc.sys.BROWSER_TYPE_BAIDU_APP, + cc.sys.BROWSER_TYPE_WECHAT, + cc.sys.BROWSER_TYPE_MOBILE_QQ, + cc.sys.BROWSER_TYPE_MIUI, + cc.sys.BROWSER_TYPE_HUAWEI, + cc.sys.BROWSER_TYPE_UC, + ].indexOf(cc.sys.browserType) < 0); + } + + // Limit downloading max concurrent task to 2, + // more tasks simultaneously may cause performance draw back on some android system / browsers. + // You can adjust the number based on your own test result, you have to set it before any loading process to take effect. + if (cc.sys.isBrowser && cc.sys.os === cc.sys.OS_ANDROID) { + cc.assetManager.downloader.maxConcurrency = 2; + cc.assetManager.downloader.maxRequestsPerFrame = 2; + } + + var launchScene = settings.launchScene; + var bundle = cc.assetManager.bundles.find(function (b) { + return b.getSceneInfo(launchScene); + }); + + bundle.loadScene(launchScene, null, onProgress, + function (err, scene) { + if (!err) { + cc.director.runSceneImmediate(scene); + if (cc.sys.isBrowser) { + // show canvas + var canvas = document.getElementById('GameCanvas'); + canvas.style.visibility = ''; + var div = document.getElementById('GameDiv'); + if (div) { + div.style.backgroundImage = ''; + } + console.log('Success to load scene: ' + launchScene); + } + } + } + ); + }; + + var option = { + id: 'GameCanvas', + debugMode: settings.debug ? cc.debug.DebugMode.INFO : cc.debug.DebugMode.ERROR, + showFPS: settings.debug, + frameRate: 60, + groupList: settings.groupList, + collisionMatrix: settings.collisionMatrix, + }; + + cc.assetManager.init({ + bundleVers: settings.bundleVers, + remoteBundles: settings.remoteBundles, + server: settings.server + }); + + var bundleRoot = [INTERNAL]; + settings.hasResourcesBundle && bundleRoot.push(RESOURCES); + + var count = 0; + function cb (err) { + if (err) return console.error(err.message, err.stack); + count++; + if (count === bundleRoot.length + 1) { + cc.assetManager.loadBundle(MAIN, function (err) { + if (!err) cc.game.run(option, onStart); + }); + } + } + + cc.assetManager.loadScript(settings.jsList.map(function (x) { return 'src/' + x;}), cb); + + for (var i = 0; i < bundleRoot.length; i++) { + cc.assetManager.loadBundle(bundleRoot[i], cb); + } +}; + +if (window.jsb) { + var isRuntime = (typeof loadRuntime === 'function'); + if (isRuntime) { + require('src/settings.3df40.js'); + require('src/cocos2d-runtime.js'); + if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) { + require('src/physics.js'); + } + require('jsb-adapter/engine/index.js'); + } + else { + require('src/settings.3df40.js'); + require('src/cocos2d-jsb.js'); + if (CC_PHYSICS_BUILTIN || CC_PHYSICS_CANNON) { + require('src/physics.js'); + } + require('jsb-adapter/jsb-engine.js'); + } + + cc.macro.CLEANUP_IMAGE_CACHE = true; + window.boot(); +} \ No newline at end of file diff --git a/build/LockDiagram/splash.85cfd.png b/build/LockDiagram/splash.85cfd.png new file mode 100644 index 0000000000000000000000000000000000000000..708c9ebc4450d6743ff88c3777fcb8a50a2ab078 GIT binary patch literal 13709 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 literal 0 HcmV?d00001 diff --git a/build/LockDiagram/splash.99e2c.jpg b/build/LockDiagram/splash.99e2c.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7c72e9a7a1b59c1f4d0a510787913fb8fda5a3d4 GIT binary patch literal 17076 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 Xr@QH+dfKP}{{RZ2zyAO({{a8lp%?xA literal 0 HcmV?d00001 diff --git a/build/LockDiagram/src/settings.3df40.js b/build/LockDiagram/src/settings.3df40.js new file mode 100644 index 0000000..826a0c0 --- /dev/null +++ b/build/LockDiagram/src/settings.3df40.js @@ -0,0 +1 @@ +window._CCSettings={platform:"web-mobile",groupList:["default"],collisionMatrix:[[true]],hasResourcesBundle:true,hasStartSceneBundle:false,remoteBundles:[],subpackages:[],launchScene:"db://assets/Scene/LoadScene.fire",orientation:"portrait",jsList:[],bundleVers:{internal:"52d36",resources:"f4f05",main:"472d7"}}; \ No newline at end of file diff --git a/build/LockDiagram/style-desktop.dfd76.css b/build/LockDiagram/style-desktop.dfd76.css new file mode 100644 index 0000000..7187649 --- /dev/null +++ b/build/LockDiagram/style-desktop.dfd76.css @@ -0,0 +1,116 @@ +body { + cursor: default; + padding: 0; + border: 0; + margin: 0; + + text-align: center; + background-color: white; + font-family: Helvetica, Verdana, Arial, sans-serif; +} + +body, canvas, div { + outline: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + -khtml-user-select: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +/* Remove spin of input type number */ +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + /* display: none; <- Crashes Chrome on hover */ + -webkit-appearance: none; + margin: 0; /* <-- Apparently some margin are still there even though it's hidden */ +} + +#Cocos2dGameContainer { + position: absolute; + margin: 0; + overflow: hidden; + left: 0px; + top: 0px; +} + +canvas { + background-color: rgba(0, 0, 0, 0); +} + +a:link, a:visited { + color: #000; +} + +a:active, a:hover { + color: #666; +} + +p.header { + font-size: small; +} + +p.footer { + font-size: x-small; +} + +#splash { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + + background: #171717 url(./splash.85cfd.png) no-repeat center; + background-size: 350px; +} + +.progress-bar { + background-color: #1a1a1a; + position: absolute; + left: 50%; + top: 80%; + height: 5px; + width: 300px; + margin: 0 -150px; + border-radius: 5px; + box-shadow: 0 1px 5px #000 inset, 0 1px 0 #444; +} + +.progress-bar span { + display: block; + height: 100%; + border-radius: 5px; + box-shadow: 0 1px 0 rgba(255, 255, 255, .5) inset; + transition: width .4s ease-in-out; + background-color: #3dc5de; +} + +.stripes span { + background-size: 30px 30px; + background-image: linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%, + transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, + transparent 75%, transparent); + + animation: animate-stripes 1s linear infinite; +} + +@keyframes animate-stripes { + 0% {background-position: 0 0;} 100% {background-position: 60px 0;} +} + +h1 { + color: #444; + text-shadow: 3px 3px 15px; +} + +#GameDiv { + width: 800px; + height: 450px; + margin: 0 auto; + background: black; + position: relative; + border: 3px solid black; + border-radius: 6px; + box-shadow: 0 5px 40px #333 +} diff --git a/build/LockDiagram/style-mobile.0003a.css b/build/LockDiagram/style-mobile.0003a.css new file mode 100644 index 0000000..40b74aa --- /dev/null +++ b/build/LockDiagram/style-mobile.0003a.css @@ -0,0 +1,124 @@ +html { + -ms-touch-action: none; +} + +body, canvas, div { + display: block; + outline: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + + user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + -khtml-user-select: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +/* Remove spin of input type number */ +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + /* display: none; <- Crashes Chrome on hover */ + -webkit-appearance: none; + margin: 0; /* <-- Apparently some margin are still there even though it's hidden */ +} + +body { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + padding: 0; + border: 0; + margin: 0; + + cursor: default; + color: #888; + background-color: #333; + + text-align: center; + font-family: Helvetica, Verdana, Arial, sans-serif; + + display: flex; + flex-direction: column; + + /* fix bug: https://github.com/cocos-creator/2d-tasks/issues/791 */ + /* overflow cannot be applied in Cocos2dGameContainer, + otherwise child elements will be hidden when Cocos2dGameContainer rotated 90 deg */ + overflow: hidden; +} + +#Cocos2dGameContainer { + position: absolute; + margin: 0; + left: 0px; + top: 0px; + + display: -webkit-box; + -webkit-box-orient: horizontal; + -webkit-box-align: center; + -webkit-box-pack: center; +} + +canvas { + background-color: rgba(0, 0, 0, 0); +} + +a:link, a:visited { + color: #666; +} + +a:active, a:hover { + color: #666; +} + +p.header { + font-size: small; +} + +p.footer { + font-size: x-small; +} + +/* #splash { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: #171717 url(./splash.99e2c.jpg) no-repeat center; + background-size: 100%; +} */ + +/* .progress-bar { + position: absolute; + left: 27.5%; + top: 80%; + height: 3px; + padding: 2px; + width: 0%; + border-radius: 7px; + box-shadow: 0 1px 5px #000 inset, 0 1px 0 #444; +} + +.progress-bar span { + display: block; + height: 0%; + border-radius: 3px; + transition: width .4s ease-in-out; + background-color: #3dc5de; +} */ + +.stripes span { + background-size: 30px 30px; + background-image: linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%, + transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, + transparent 75%, transparent); + + animation: animate-stripes 1s linear infinite; +} + +@keyframes animate-stripes { + 0% {background-position: 0 0;} 100% {background-position: 60px 0;} +} diff --git a/creator.d.ts b/creator.d.ts new file mode 100644 index 0000000..af2ba49 --- /dev/null +++ b/creator.d.ts @@ -0,0 +1,32078 @@ + +/** !#en +The main namespace of Cocos2d-JS, all engine core classes, functions, properties and constants are defined in this namespace. +!#zh +Cocos 引擎的主要命名空间,引擎代码中所有的类,函数,属性和常量都在这个命名空间中定义。 */ +interface Window { + initMgr: any; //控制全局信息 + android: any; //全局变量名 + } +declare namespace cc { + export var fx: any; + /** The current version of Cocos2d being used.
+ Please DO NOT remove this String, it is an important flag for bug tracking.
+ If you post a bug to forum, please attach this flag. */ + export var ENGINE_VERSION: string; + /** + !#en + Creates the speed action which changes the speed of an action, making it take longer (speed > 1) + or less (speed < 1) time.
+ Useful to simulate 'slow motion' or 'fast forward' effect. + !#zh 修改目标动作的速率。 + @param action action + @param speed speed + + @example + ```js + // change the target action speed; + var action = cc.scaleTo(0.2, 1, 0.6); + var newAction = cc.speed(action, 0.5); + ``` + */ + export function speed(action: ActionInterval, speed: number): Action; + /** + !#en Create a follow action which makes its target follows another node. + !#zh 追踪目标节点的位置。 + @param followedNode followedNode + @param rect rect + + @example + ```js + // example + // creates the action with a set boundary + var followAction = cc.follow(targetNode, cc.rect(0, 0, screenWidth * 2 - 100, screenHeight)); + node.runAction(followAction); + + // creates the action with no boundary set + var followAction = cc.follow(targetNode); + node.runAction(followAction); + ``` + */ + export function follow(followedNode: Node, rect: Rect): Action; + /** + Points setter + @param points points + */ + export function setPoints(points: any[]): void; + /** + !#en Creates an action with a Cardinal Spline array of points and tension. + !#zh 按基数样条曲线轨迹移动到目标位置。 + @param duration duration + @param points array of control points + @param tension tension + + @example + ```js + //create a cc.CardinalSplineTo + var action1 = cc.cardinalSplineTo(3, array, 0); + ``` + */ + export function cardinalSplineTo(duration: number, points: any[], tension: number): ActionInterval; + /** + update position of target + @param newPos newPos + */ + export function updatePosition(newPos: Vec2): void; + /** + !#en Creates an action with a Cardinal Spline array of points and tension. + !#zh 按基数样条曲线轨迹移动指定的距离。 + @param duration duration + @param points points + @param tension tension + */ + export function cardinalSplineBy(duration: number, points: any[], tension: number): ActionInterval; + /** + !#en Creates an action with a Cardinal Spline array of points and tension. + !#zh 按 Catmull Rom 样条曲线轨迹移动到目标位置。 + @param dt dt + @param points points + + @example + ```js + var action1 = cc.catmullRomTo(3, array); + ``` + */ + export function catmullRomTo(dt: number, points: any[]): ActionInterval; + /** + !#en Creates an action with a Cardinal Spline array of points and tension. + !#zh 按 Catmull Rom 样条曲线轨迹移动指定的距离。 + @param dt dt + @param points points + + @example + ```js + var action1 = cc.catmullRomBy(3, array); + ``` + */ + export function catmullRomBy(dt: number, points: any[]): ActionInterval; + /** + !#en + Creates the action easing object with the rate parameter.
+ From slow to fast. + !#zh 创建 easeIn 缓动对象,由慢到快。 + @param rate rate + + @example + ```js + action.easing(cc.easeIn(3.0)); + ``` + */ + export function easeIn(rate: number): any; + /** + !#en + Creates the action easing object with the rate parameter.
+ From fast to slow. + !#zh 创建 easeOut 缓动对象,由快到慢。 + @param rate rate + + @example + ```js + action.easing(cc.easeOut(3.0)); + ``` + */ + export function easeOut(rate: number): any; + /** + !#en + Creates the action easing object with the rate parameter.
+ Slow to fast then to slow. + !#zh 创建 easeInOut 缓动对象,慢到快,然后慢。 + @param rate rate + + @example + ```js + action.easing(cc.easeInOut(3.0)); + ``` + */ + export function easeInOut(rate: number): any; + /** + !#en + Creates the action easing object with the rate parameter.
+ Reference easeInExpo:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeExponentialIn 缓动对象。
+ EaseExponentialIn 是按指数函数缓动进入的动作。
+ 参考 easeInExpo:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + action.easing(cc.easeExponentialIn()); + ``` + */ + export function easeExponentialIn(): any; + /** + !#en + Creates the action easing object.
+ Reference easeOutExpo:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeExponentialOut 缓动对象。
+ EaseExponentialOut 是按指数函数缓动退出的动作。
+ 参考 easeOutExpo:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + action.easing(cc.easeExponentialOut()); + ``` + */ + export function easeExponentialOut(): any; + /** + !#en + Creates an EaseExponentialInOut action easing object.
+ Reference easeInOutExpo:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeExponentialInOut 缓动对象。
+ EaseExponentialInOut 是按指数函数缓动进入并退出的动作。
+ 参考 easeInOutExpo:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + action.easing(cc.easeExponentialInOut()); + ``` + */ + export function easeExponentialInOut(): any; + /** + !#en + Creates an EaseSineIn action.
+ Reference easeInSine:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 EaseSineIn 缓动对象。
+ EaseSineIn 是按正弦函数缓动进入的动作。
+ 参考 easeInSine:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + action.easing(cc.easeSineIn()); + ``` + */ + export function easeSineIn(): any; + /** + !#en + Creates an EaseSineOut action easing object.
+ Reference easeOutSine:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 EaseSineOut 缓动对象。
+ EaseSineIn 是按正弦函数缓动退出的动作。
+ 参考 easeOutSine:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + action.easing(cc.easeSineOut()); + ``` + */ + export function easeSineOut(): any; + /** + !#en + Creates the action easing object.
+ Reference easeInOutSine:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeSineInOut 缓动对象。
+ EaseSineIn 是按正弦函数缓动进入并退出的动作。
+ 参考 easeInOutSine:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + action.easing(cc.easeSineInOut()); + ``` + */ + export function easeSineInOut(): any; + /** + !#en + Creates the action easing object with the period in radians (default is 0.3).
+ Reference easeInElastic:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeElasticIn 缓动对象。
+ EaseElasticIn 是按弹性曲线缓动进入的动作。
+ 参数 easeInElastic:http://www.zhihu.com/question/21981571/answer/19925418 + @param period period + + @example + ```js + // example + action.easing(cc.easeElasticIn(3.0)); + ``` + */ + export function easeElasticIn(period: number): any; + /** + !#en + Creates the action easing object with the period in radians (default is 0.3).
+ Reference easeOutElastic:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeElasticOut 缓动对象。
+ EaseElasticOut 是按弹性曲线缓动退出的动作。
+ 参考 easeOutElastic:http://www.zhihu.com/question/21981571/answer/19925418 + @param period period + + @example + ```js + // example + action.easing(cc.easeElasticOut(3.0)); + ``` + */ + export function easeElasticOut(period: number): any; + /** + !#en + Creates the action easing object with the period in radians (default is 0.3).
+ Reference easeInOutElastic:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeElasticInOut 缓动对象。
+ EaseElasticInOut 是按弹性曲线缓动进入并退出的动作。
+ 参考 easeInOutElastic:http://www.zhihu.com/question/21981571/answer/19925418 + @param period period + + @example + ```js + // example + action.easing(cc.easeElasticInOut(3.0)); + ``` + */ + export function easeElasticInOut(period: number): any; + /** + !#en + Creates the action easing object.
+ Eased bounce effect at the beginning. + !#zh + 创建 easeBounceIn 缓动对象。
+ EaseBounceIn 是按弹跳动作缓动进入的动作。 + + @example + ```js + // example + action.easing(cc.easeBounceIn()); + ``` + */ + export function easeBounceIn(): any; + /** + !#en + Creates the action easing object.
+ Eased bounce effect at the ending. + !#zh + 创建 easeBounceOut 缓动对象。
+ EaseBounceOut 是按弹跳动作缓动退出的动作。 + + @example + ```js + // example + action.easing(cc.easeBounceOut()); + ``` + */ + export function easeBounceOut(): any; + /** + !#en + Creates the action easing object.
+ Eased bounce effect at the begining and ending. + !#zh + 创建 easeBounceInOut 缓动对象。
+ EaseBounceInOut 是按弹跳动作缓动进入并退出的动作。 + + @example + ```js + // example + action.easing(cc.easeBounceInOut()); + ``` + */ + export function easeBounceInOut(): any; + /** + !#en + Creates the action easing object.
+ In the opposite direction to move slowly, and then accelerated to the right direction. + !#zh + 创建 easeBackIn 缓动对象。
+ easeBackIn 是在相反的方向缓慢移动,然后加速到正确的方向。
+ + @example + ```js + // example + action.easing(cc.easeBackIn()); + ``` + */ + export function easeBackIn(): any; + /** + !#en + Creates the action easing object.
+ Fast moving more than the finish, and then slowly back to the finish. + !#zh + 创建 easeBackOut 缓动对象。
+ easeBackOut 快速移动超出目标,然后慢慢回到目标点。 + + @example + ```js + // example + action.easing(cc.easeBackOut()); + ``` + */ + export function easeBackOut(): any; + /** + !#en + Creates the action easing object.
+ Begining of cc.EaseBackIn. Ending of cc.EaseBackOut. + !#zh + 创建 easeBackInOut 缓动对象。
+ + @example + ```js + // example + action.easing(cc.easeBackInOut()); + ``` + */ + export function easeBackInOut(): any; + /** + !#en + Creates the action easing object.
+ Into the 4 reference point.
+ To calculate the motion curve. + !#zh + 创建 easeBezierAction 缓动对象。
+ EaseBezierAction 是按贝塞尔曲线缓动的动作。 + @param p0 The first bezier parameter + @param p1 The second bezier parameter + @param p2 The third bezier parameter + @param p3 The fourth bezier parameter + + @example + ```js + // example + action.easing(cc.easeBezierAction(0.5, 0.5, 1.0, 1.0)); + ``` + */ + export function easeBezierAction(p0: number, p1: number, p2: number, p3: number): any; + /** + !#en + Creates the action easing object.
+ Reference easeInQuad:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeQuadraticActionIn 缓动对象。
+ EaseQuadraticIn是按二次函数缓动进入的动作。
+ 参考 easeInQuad:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + //example + action.easing(cc.easeQuadraticActionIn()); + ``` + */ + export function easeQuadraticActionIn(): any; + /** + !#en + Creates the action easing object.
+ Reference easeOutQuad:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeQuadraticActionOut 缓动对象。
+ EaseQuadraticOut 是按二次函数缓动退出的动作。
+ 参考 easeOutQuad:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + //example + action.easing(cc.easeQuadraticActionOut()); + ``` + */ + export function easeQuadraticActionOut(): any; + /** + !#en + Creates the action easing object.
+ Reference easeInOutQuad:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeQuadraticActionInOut 缓动对象。
+ EaseQuadraticInOut 是按二次函数缓动进入并退出的动作。
+ 参考 easeInOutQuad:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + //example + action.easing(cc.easeQuadraticActionInOut()); + ``` + */ + export function easeQuadraticActionInOut(): any; + /** + !#en + Creates the action easing object.
+ Reference easeIntQuart:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeQuarticActionIn 缓动对象。
+ EaseQuarticIn 是按四次函数缓动进入的动作。
+ 参考 easeIntQuart:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + //example + action.easing(cc.easeQuarticActionIn()); + ``` + */ + export function easeQuarticActionIn(): any; + /** + !#en + Creates the action easing object.
+ Reference easeOutQuart:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeQuarticActionOut 缓动对象。
+ EaseQuarticOut 是按四次函数缓动退出的动作。
+ 参考 easeOutQuart:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + //example + action.easing(cc.QuarticActionOut()); + ``` + */ + export function easeQuarticActionOut(): any; + /** + !#en + Creates the action easing object.
+ Reference easeInOutQuart:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeQuarticActionInOut 缓动对象。
+ EaseQuarticInOut 是按四次函数缓动进入并退出的动作。
+ 参考 easeInOutQuart:http://www.zhihu.com/question/21981571/answer/19925418 + */ + export function easeQuarticActionInOut(): any; + /** + !#en + Creates the action easing object.
+ Reference easeInQuint:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeQuinticActionIn 缓动对象。
+ EaseQuinticIn 是按五次函数缓动进的动作。
+ 参考 easeInQuint:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + //example + action.easing(cc.easeQuinticActionIn()); + ``` + */ + export function easeQuinticActionIn(): any; + /** + !#en + Creates the action easing object.
+ Reference easeOutQuint:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeQuinticActionOut 缓动对象。
+ EaseQuinticOut 是按五次函数缓动退出的动作 + 参考 easeOutQuint:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + //example + action.easing(cc.easeQuadraticActionOut()); + ``` + */ + export function easeQuinticActionOut(): any; + /** + !#en + Creates the action easing object.
+ Reference easeInOutQuint:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeQuinticActionInOut 缓动对象。
+ EaseQuinticInOut是按五次函数缓动进入并退出的动作。
+ 参考 easeInOutQuint:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + //example + action.easing(cc.easeQuinticActionInOut()); + ``` + */ + export function easeQuinticActionInOut(): any; + /** + !#en + Creates the action easing object.
+ Reference easeInCirc:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeCircleActionIn 缓动对象。
+ EaseCircleIn是按圆形曲线缓动进入的动作。
+ 参考 easeInCirc:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + //example + action.easing(cc.easeCircleActionIn()); + ``` + */ + export function easeCircleActionIn(): any; + /** + !#en + Creates the action easing object.
+ Reference easeOutCirc:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeCircleActionOut 缓动对象。
+ EaseCircleOut是按圆形曲线缓动退出的动作。
+ 参考 easeOutCirc:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + //example + actioneasing(cc.easeCircleActionOut()); + ``` + */ + export function easeCircleActionOut(): any; + /** + !#en + Creates the action easing object.
+ Reference easeInOutCirc:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeCircleActionInOut 缓动对象。
+ EaseCircleInOut 是按圆形曲线缓动进入并退出的动作。
+ 参考 easeInOutCirc:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + //example + action.easing(cc.easeCircleActionInOut()); + ``` + */ + export function easeCircleActionInOut(): any; + /** + !#en + Creates the action easing object.
+ Reference easeInCubic:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeCubicActionIn 缓动对象。
+ EaseCubicIn 是按三次函数缓动进入的动作。
+ 参考 easeInCubic:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + //example + action.easing(cc.easeCubicActionIn()); + ``` + */ + export function easeCubicActionIn(): any; + /** + !#en + Creates the action easing object.
+ Reference easeOutCubic:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeCubicActionOut 缓动对象。
+ EaseCubicOut 是按三次函数缓动退出的动作。
+ 参考 easeOutCubic:http://www.zhihu.com/question/21981571/answer/19925418 + + @example + ```js + //example + action.easing(cc.easeCubicActionOut()); + ``` + */ + export function easeCubicActionOut(): any; + /** + !#en + Creates the action easing object.
+ Reference easeInOutCubic:
+ http://www.zhihu.com/question/21981571/answer/19925418 + !#zh + 创建 easeCubicActionInOut 缓动对象。
+ EaseCubicInOut是按三次函数缓动进入并退出的动作。
+ 参考 easeInOutCubic:http://www.zhihu.com/question/21981571/answer/19925418 + */ + export function easeCubicActionInOut(): any; + /** + !#en Show the Node. + !#zh 立即显示。 + + @example + ```js + // example + var showAction = cc.show(); + ``` + */ + export function show(): ActionInstant; + /** + !#en Hide the node. + !#zh 立即隐藏。 + + @example + ```js + // example + var hideAction = cc.hide(); + ``` + */ + export function hide(): ActionInstant; + /** + !#en Toggles the visibility of a node. + !#zh 显隐状态切换。 + + @example + ```js + // example + var toggleVisibilityAction = cc.toggleVisibility(); + ``` + */ + export function toggleVisibility(): ActionInstant; + /** + !#en Create a RemoveSelf object with a flag indicate whether the target should be cleaned up while removing. + !#zh 从父节点移除自身。 + @param isNeedCleanUp isNeedCleanUp + + @example + ```js + // example + var removeSelfAction = cc.removeSelf(); + ``` + */ + export function removeSelf(isNeedCleanUp ?: boolean): ActionInstant; + /** + !#en Destroy self + !#zh 创建一个销毁自身的动作。 + + @example + ```js + var destroySelfAction = cc.destroySelf(); + ``` + */ + export function destroySelf(): ActionInstant; + /** + !#en Create a FlipX action to flip or unflip the target. + !#zh X轴翻转。 + @param flip Indicate whether the target should be flipped or not + + @example + ```js + var flipXAction = cc.flipX(true); + ``` + */ + export function flipX(flip: boolean): ActionInstant; + /** + !#en Create a FlipY action to flip or unflip the target. + !#zh Y轴翻转。 + @param flip flip + + @example + ```js + var flipYAction = cc.flipY(true); + ``` + */ + export function flipY(flip: boolean): ActionInstant; + /** + !#en Creates a Place action with a position. + !#zh 放置在目标位置。 + @param pos pos + @param y y + + @example + ```js + // example + var placeAction = cc.place(cc.v2(200, 200)); + var placeAction = cc.place(200, 200); + ``` + */ + export function place(pos: Vec2|number, y?: number): ActionInstant; + /** + !#en Creates the action with the callback. + !#zh 执行回调函数。 + @param selector selector + @param selectorTarget selectorTarget + @param data data for function, it accepts all data types. + + @example + ```js + // example + // CallFunc without data + var finish = cc.callFunc(this.removeSprite, this); + + // CallFunc with data + var finish = cc.callFunc(this.removeFromParentAndCleanup, this._grossini, true); + ``` + */ + export function callFunc(selector: Function, selectorTarget?: any, data?: any): ActionInstant; + /** + !#en + Helper constructor to create an array of sequenceable actions + The created action will run actions sequentially, one after another. + !#zh 顺序执行动作,创建的动作将按顺序依次运行。 + @param actionOrActionArray actionOrActionArray + @param tempArray tempArray + + @example + ```js + // example + // create sequence with actions + var seq = cc.sequence(act1, act2); + + // create sequence with array + var seq = cc.sequence(actArray); + ``` + */ + export function sequence(actionOrActionArray: FiniteTimeAction|FiniteTimeAction[], ...tempArray: FiniteTimeAction[]): ActionInterval; + /** + !#en Creates a Repeat action. Times is an unsigned integer between 1 and pow(2,30) + !#zh 重复动作,可以按一定次数重复一个动,如果想永远重复一个动作请使用 repeatForever 动作来完成。 + @param action action + @param times times + + @example + ```js + // example + var rep = cc.repeat(cc.sequence(jump2, jump1), 5); + ``` + */ + export function repeat(action: FiniteTimeAction, times: number): ActionInterval; + /** + !#en Create a acton which repeat forever, as it runs forever, it can't be added into cc.sequence and cc.spawn. + !#zh 永远地重复一个动作,有限次数内重复一个动作请使用 repeat 动作,由于这个动作不会停止,所以不能被添加到 cc.sequence 或 cc.spawn 中。 + @param action action + + @example + ```js + // example + var repeat = cc.repeatForever(cc.rotateBy(1.0, 360)); + ``` + */ + export function repeatForever(action: FiniteTimeAction): ActionInterval; + /** + !#en Create a spawn action which runs several actions in parallel. + !#zh 同步执行动作,同步执行一组动作。 + @param actionOrActionArray actionOrActionArray + @param tempArray tempArray + + @example + ```js + // example + var action = cc.spawn(cc.jumpBy(2, cc.v2(300, 0), 50, 4), cc.rotateBy(2, 720)); + todo: It should be the direct use new + ``` + */ + export function spawn(actionOrActionArray: FiniteTimeAction|FiniteTimeAction[], ...tempArray: FiniteTimeAction[]): FiniteTimeAction; + /** + !#en + Rotates a Node object to a certain angle by modifying its angle property.
+ The direction will be decided by the shortest angle. + !#zh 旋转到目标角度,通过逐帧修改它的 angle 属性,旋转方向将由最短的角度决定。 + @param duration duration in seconds + @param dstAngle dstAngle in degrees. + + @example + ```js + // example + var rotateTo = cc.rotateTo(2, 61.0); + ``` + */ + export function rotateTo(duration: number, dstAngle: number): ActionInterval; + /** + !#en + Rotates a Node object clockwise a number of degrees by modifying its angle property. + Relative to its properties to modify. + !#zh 旋转指定的角度。 + @param duration duration in seconds + @param deltaAngle deltaAngle in degrees + + @example + ```js + // example + var actionBy = cc.rotateBy(2, 360); + ``` + */ + export function rotateBy(duration: number, deltaAngle: number): ActionInterval; + /** + !#en + Moves a Node object x,y pixels by modifying its position property.
+ x and y are relative to the position of the object.
+ Several MoveBy actions can be concurrently called, and the resulting
+ movement will be the sum of individual movements. + !#zh 移动指定的距离。 + @param duration duration in seconds + @param deltaPos deltaPos + @param deltaY deltaY + + @example + ```js + // example + var actionTo = cc.moveBy(2, cc.v2(windowSize.width - 40, windowSize.height - 40)); + ``` + */ + export function moveBy(duration: number, deltaPos: Vec2|number, deltaY?: number): ActionInterval; + /** + !#en + Moves a Node object to the position x,y. x and y are absolute coordinates by modifying its position property.
+ Several MoveTo actions can be concurrently called, and the resulting
+ movement will be the sum of individual movements. + !#zh 移动到目标位置。 + @param duration duration in seconds + @param position position + @param y y + + @example + ```js + // example + var actionBy = cc.moveTo(2, cc.v2(80, 80)); + ``` + */ + export function moveTo(duration: number, position: Vec2|number, y?: number): ActionInterval; + /** + !#en + Create a action which skews a Node object to given angles by modifying its skewX and skewY properties. + Changes to the specified value. + !#zh 偏斜到目标角度。 + @param t time in seconds + @param sx sx + @param sy sy + + @example + ```js + // example + var actionTo = cc.skewTo(2, 37.2, -37.2); + ``` + */ + export function skewTo(t: number, sx: number, sy: number): ActionInterval; + /** + !#en + Skews a Node object by skewX and skewY degrees.
+ Relative to its property modification. + !#zh 偏斜指定的角度。 + @param t time in seconds + @param sx sx skew in degrees for X axis + @param sy sy skew in degrees for Y axis + + @example + ```js + // example + var actionBy = cc.skewBy(2, 0, -90); + ``` + */ + export function skewBy(t: number, sx: number, sy: number): ActionInterval; + /** + !#en + Moves a Node object simulating a parabolic jump movement by modifying it's position property. + Relative to its movement. + !#zh 用跳跃的方式移动指定的距离。 + @param duration duration + @param position position + @param y y + @param height height + @param jumps jumps + + @example + ```js + // example + var actionBy = cc.jumpBy(2, cc.v2(300, 0), 50, 4); + var actionBy = cc.jumpBy(2, 300, 0, 50, 4); + ``` + */ + export function jumpBy(duration: number, position: Vec2|number, y?: number, height?: number, jumps?: number): ActionInterval; + /** + !#en + Moves a Node object to a parabolic position simulating a jump movement by modifying its position property.
+ Jump to the specified location. + !#zh 用跳跃的方式移动到目标位置。 + @param duration duration + @param position position + @param y y + @param height height + @param jumps jumps + + @example + ```js + // example + var actionTo = cc.jumpTo(2, cc.v2(300, 300), 50, 4); + var actionTo = cc.jumpTo(2, 300, 300, 50, 4); + ``` + */ + export function jumpTo(duration: number, position: Vec2|number, y?: number, height?: number, jumps?: number): ActionInterval; + /** + !#en + An action that moves the target with a cubic Bezier curve by a certain distance. + Relative to its movement. + !#zh 按贝赛尔曲线轨迹移动指定的距离。 + @param t time in seconds + @param c Array of points + + @example + ```js + // example + var bezier = [cc.v2(0, windowSize.height / 2), cc.v2(300, -windowSize.height / 2), cc.v2(300, 100)]; + var bezierForward = cc.bezierBy(3, bezier); + ``` + */ + export function bezierBy(t: number, c: Vec2[]): ActionInterval; + /** + !#en An action that moves the target with a cubic Bezier curve to a destination point. + !#zh 按贝赛尔曲线轨迹移动到目标位置。 + @param t t + @param c Array of points + + @example + ```js + // example + var bezier = [cc.v2(0, windowSize.height / 2), cc.v2(300, -windowSize.height / 2), cc.v2(300, 100)]; + var bezierTo = cc.bezierTo(2, bezier); + ``` + */ + export function bezierTo(t: number, c: Vec2[]): ActionInterval; + /** + !#en Scales a Node object to a zoom factor by modifying it's scale property. + !#zh 将节点大小缩放到指定的倍数。 + @param duration duration + @param sx scale parameter in X + @param sy scale parameter in Y, if Null equal to sx + + @example + ```js + // example + // It scales to 0.5 in both X and Y. + var actionTo = cc.scaleTo(2, 0.5); + + // It scales to 0.5 in x and 2 in Y + var actionTo = cc.scaleTo(2, 0.5, 2); + ``` + */ + export function scaleTo(duration: number, sx: number, sy?: number): ActionInterval; + /** + !#en + Scales a Node object a zoom factor by modifying it's scale property. + Relative to its changes. + !#zh 按指定的倍数缩放节点大小。 + @param duration duration in seconds + @param sx sx scale parameter in X + @param sy sy scale parameter in Y, if Null equal to sx + + @example + ```js + // example without sy, it scales by 2 both in X and Y + var actionBy = cc.scaleBy(2, 2); + + //example with sy, it scales by 0.25 in X and 4.5 in Y + var actionBy2 = cc.scaleBy(2, 0.25, 4.5); + ``` + */ + export function scaleBy(duration: number, sx: number, sy?: number|void): ActionInterval; + /** + !#en Blinks a Node object by modifying it's visible property. + !#zh 闪烁(基于透明度)。 + @param duration duration in seconds + @param blinks blinks in times + + @example + ```js + // example + var action = cc.blink(2, 10); + ``` + */ + export function blink(duration: number, blinks: number): ActionInterval; + /** + !#en + Fades an object that implements the cc.RGBAProtocol protocol. + It modifies the opacity from the current value to a custom one. + !#zh 修改透明度到指定值。 + @param duration duration + @param opacity 0-255, 0 is transparent + + @example + ```js + // example + var action = cc.fadeTo(1.0, 0); + ``` + */ + export function fadeTo(duration: number, opacity: number): ActionInterval; + /** + !#en Fades In an object that implements the cc.RGBAProtocol protocol. It modifies the opacity from 0 to 255. + !#zh 渐显效果。 + @param duration duration in seconds + + @example + ```js + //example + var action = cc.fadeIn(1.0); + ``` + */ + export function fadeIn(duration: number): ActionInterval; + /** + !#en Fades Out an object that implements the cc.RGBAProtocol protocol. It modifies the opacity from 255 to 0. + !#zh 渐隐效果。 + @param d duration in seconds + + @example + ```js + // example + var action = cc.fadeOut(1.0); + ``` + */ + export function fadeOut(d: number): ActionInterval; + /** + !#en Tints a Node that implements the cc.NodeRGB protocol from current tint to a custom one. + !#zh 修改颜色到指定值。 + @param duration duration + @param red 0-255 + @param green 0-255 + @param blue 0-255 + + @example + ```js + // example + var action = cc.tintTo(2, 255, 0, 255); + ``` + */ + export function tintTo(duration: number, red: number, green: number, blue: number): ActionInterval; + /** + !#en + Tints a Node that implements the cc.NodeRGB protocol from current tint to a custom one. + Relative to their own color change. + !#zh 按照指定的增量修改颜色。 + @param duration duration in seconds + @param deltaRed deltaRed + @param deltaGreen deltaGreen + @param deltaBlue deltaBlue + + @example + ```js + // example + var action = cc.tintBy(2, -127, -255, -127); + ``` + */ + export function tintBy(duration: number, deltaRed: number, deltaGreen: number, deltaBlue: number): ActionInterval; + /** + !#en Delays the action a certain amount of seconds. + !#zh 延迟指定的时间量。 + @param d duration in seconds + + @example + ```js + // example + var delay = cc.delayTime(1); + ``` + */ + export function delayTime(d: number): ActionInterval; + /** + !#en Executes an action in reverse order, from time=duration to time=0. + !#zh 反转目标动作的时间轴。 + @param action action + + @example + ```js + // example + var reverse = cc.reverseTime(this); + ``` + */ + export function reverseTime(action: FiniteTimeAction): ActionInterval; + /** + !#en Create an action with the specified action and forced target. + !#zh 用已有动作和一个新的目标节点创建动作。 + @param target target + @param action action + */ + export function targetedAction(target: Node, action: FiniteTimeAction): ActionInterval; + /** + + @param target the target to animate + */ + export function tween (target?: T) : Tween; + /** !#en This is a Easing instance. + !#zh 这是一个 Easing 类实例。 */ + export var easing: Easing; + /** + !#en + Outputs an error message to the Cocos Creator Console (editor) or Web Console (runtime).
+ - In Cocos Creator, error is red.
+ - In Chrome, error have a red icon along with red message text.
+ !#zh + 输出错误消息到 Cocos Creator 编辑器的 Console 或运行时页面端的 Console 中。
+ - 在 Cocos Creator 中,错误信息显示是红色的。
+ - 在 Chrome 中,错误信息有红色的图标以及红色的消息文本。
+ @param msg A JavaScript string containing zero or more substitution strings. + @param subst JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output. + */ + export function error(msg: any, ...subst: any[]): void; + /** + !#en + Outputs a warning message to the Cocos Creator Console (editor) or Web Console (runtime). + - In Cocos Creator, warning is yellow. + - In Chrome, warning have a yellow warning icon with the message text. + !#zh + 输出警告消息到 Cocos Creator 编辑器的 Console 或运行时 Web 端的 Console 中。
+ - 在 Cocos Creator 中,警告信息显示是黄色的。
+ - 在 Chrome 中,警告信息有着黄色的图标以及黄色的消息文本。
+ @param msg A JavaScript string containing zero or more substitution strings. + @param subst JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output. + */ + export function warn(msg: any, ...subst: any[]): void; + /** + !#en Outputs a message to the Cocos Creator Console (editor) or Web Console (runtime). + !#zh 输出一条消息到 Cocos Creator 编辑器的 Console 或运行时 Web 端的 Console 中。 + @param msg A JavaScript string containing zero or more substitution strings. + @param subst JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output. + */ + export function log(msg: string|any, ...subst: any[]): void; + /** !#en Director + !#zh 导演类。 */ + export var director: Director; + /** !#en This is a Game instance. + !#zh 这是一个 Game 类的实例,包含游戏主体信息并负责驱动游戏的游戏对象。。 */ + export var game: Game; + /** + !#en + Rotates a Node object to a certain angle by modifying its quternion property.
+ The direction will be decided by the shortest angle. + !#zh 旋转到目标角度,通过逐帧修改它的 quternion 属性,旋转方向将由最短的角度决定。 + @param duration duration in seconds + @param dstAngleX dstAngleX in degrees. + @param dstAngleY dstAngleY in degrees. + @param dstAngleZ dstAngleZ in degrees. + + @example + ```js + // example + var rotate3DTo = cc.rotate3DTo(2, cc.v3(0, 180, 0)); + ``` + */ + export function rotate3DTo(duration: number, dstAngleX: number|Vec3|Quat, dstAngleY?: number, dstAngleZ?: number): ActionInterval; + /** + !#en + Rotates a Node object counter clockwise a number of degrees by modifying its quaternion property. + Relative to its properties to modify. + !#zh 旋转指定的 3D 角度。 + @param duration duration in seconds + @param deltaAngleX deltaAngleX in degrees + @param deltaAngleY deltaAngleY in degrees + @param deltaAngleZ deltaAngleZ in degrees + + @example + ```js + // example + var actionBy = cc.rotate3DBy(2, cc.v3(0, 360, 0)); + ``` + */ + export function rotate3DBy(duration: number, deltaAngleX: number|Vec3, deltaAngleY?: number, deltaAngleZ?: number): ActionInterval; + export var assetManager: AssetManager; + /** !#en + cc.resources is a bundle and controls all asset under assets/resources + + !#zh + cc.resources 是一个 bundle,用于管理所有在 assets/resources 下的资源 */ + export var resources: AssetManager.Bundle; + /** !#en The System event singleton for global usage + !#zh 系统事件单例,方便全局使用 */ + export var systemEvent: SystemEvent; + /** + !#en Defines a CCClass using the given specification, please see [Class](/docs/editors_and_tools/creator-chapters/scripting/class.html) for details. + !#zh 定义一个 CCClass,传入参数必须是一个包含类型参数的字面量对象,具体用法请查阅[类型定义](/docs/creator/scripting/class.html)。 + @param options options + + @example + ```js + // define base class + var Node = cc.Class(); + + // define sub class + var Sprite = cc.Class({ + name: 'Sprite', + extends: Node, + + ctor: function () { + this.url = ""; + this.id = 0; + }, + + statics: { + // define static members + count: 0, + getBounds: function (spriteList) { + // compute bounds... + } + }, + + properties { + width: { + default: 128, + type: cc.Integer, + tooltip: 'The width of sprite' + }, + height: 128, + size: { + get: function () { + return cc.v2(this.width, this.height); + } + } + }, + + load: function () { + // load this.url... + }; + }); + + // instantiate + + var obj = new Sprite(); + obj.url = 'sprite.png'; + obj.load(); + ``` + */ + export function Class(options?: {name?: string; extends?: Function; ctor?: Function; __ctor__?: Function; properties?: any; statics?: any; mixins?: Function[]; editor?: {executeInEditMode?: boolean; requireComponent?: Function; menu?: string; executionOrder?: number; disallowMultiple?: boolean; playOnFocus?: boolean; inspector?: string; icon?: string; help?: string; }; update?: Function; lateUpdate?: Function; onLoad?: Function; start?: Function; onEnable?: Function; onDisable?: Function; onDestroy?: Function; onFocusInEditor?: Function; onLostFocusInEditor?: Function; resetInEditor?: Function; onRestore?: Function; _getLocalBounds?: Function; }): Function; + /** + !#en + Define an enum type.
+ If a enum item has a value of -1, it will be given an Integer number according to it's order in the list.
+ Otherwise it will use the value specified by user who writes the enum definition. + + !#zh + 定义一个枚举类型。
+ 用户可以把枚举值设为任意的整数,如果设为 -1,系统将会分配为上一个枚举值 + 1。 + @param obj a JavaScript literal object containing enum names and values, or a TypeScript enum type + + @example + ```js + // JavaScript: + + var WrapMode = cc.Enum({ + Repeat: -1, + Clamp: -1 + }); + + // Texture.WrapMode.Repeat == 0 + // Texture.WrapMode.Clamp == 1 + // Texture.WrapMode[0] == "Repeat" + // Texture.WrapMode[1] == "Clamp" + + var FlagType = cc.Enum({ + Flag1: 1, + Flag2: 2, + Flag3: 4, + Flag4: 8, + }); + + var AtlasSizeList = cc.Enum({ + 128: 128, + 256: 256, + 512: 512, + 1024: 1024, + }); + + // TypeScript: + + // If used in TypeScript, just define a TypeScript enum: + enum Direction { + Up, + Down, + Left, + Right + } + + // If you need to inspect the enum in Properties panel, you can call cc.Enum: + const {ccclass, property} = cc._decorator; + + @ccclass + class NewScript extends cc.Component { + @property({ + type: cc.Enum(Direction) // call cc.Enum + }) + direction: Direction = Direction.Up; + } + + ``` + */ + export function Enum(obj: T): T; + /** + + @param touches touches + */ + export function handleTouchesBegin(touches: any[]): void; + /** + + @param touches touches + */ + export function handleTouchesMove(touches: any[]): void; + /** + + @param touches touches + */ + export function handleTouchesEnd(touches: any[]): void; + /** + + @param touches touches + */ + export function handleTouchesCancel(touches: any[]): void; + /** + + @param touches touches + */ + export function getSetOfTouchesEndOrCancel(touches: any[]): any[]; + /** + + @param touch touch + */ + export function getPreTouch(touch: Touch): Touch; + /** + + @param touch touch + */ + export function setPreTouch(touch: Touch): void; + /** + + @param tx tx + @param ty ty + @param pos pos + */ + export function getTouchByXY(tx: number, ty: number, pos: Vec2): Touch; + /** + + @param location location + @param pos pos + @param eventType eventType + */ + export function getMouseEvent(location: Vec2, pos: Vec2, eventType: number): Event.EventMouse; + /** + + @param event event + @param pos pos + */ + export function getPointByEvent(event: Touch, pos: Vec2): Vec2; + /** + + @param event event + @param pos pos + */ + export function getTouchesByEvent(event: Touch, pos: Vec2): any[]; + /** + + @param element element + */ + export function registerSystemEvent(element: HTMLElement): void; + /** + + @param dt dt + */ + export function update(dt: number): void; + /** + !#en + Checks whether the object is non-nil and not yet destroyed.
+ When an object's `destroy` is called, it is actually destroyed after the end of this frame. + So `isValid` will return false from the next frame, while `isValid` in the current frame will still be true. + If you want to determine whether the current frame has called `destroy`, use `cc.isValid(obj, true)`, + but this is often caused by a particular logical requirements, which is not normally required. + + !#zh + 检查该对象是否不为 null 并且尚未销毁。
+ 当一个对象的 `destroy` 调用以后,会在这一帧结束后才真正销毁。因此从下一帧开始 `isValid` 就会返回 false,而当前帧内 `isValid` 仍然会是 true。如果希望判断当前帧是否调用过 `destroy`,请使用 `cc.isValid(obj, true)`,不过这往往是特殊的业务需求引起的,通常情况下不需要这样。 + @param value value + @param strictMode If true, Object called destroy() in this frame will also treated as invalid. + + @example + ```js + var node = new cc.Node(); + cc.log(cc.isValid(node)); // true + node.destroy(); + cc.log(cc.isValid(node)); // true, still valid in this frame + // after a frame... + cc.log(cc.isValid(node)); // false, destroyed in the end of last frame + ``` + */ + export function isValid(value: any, strictMode?: boolean): boolean; + /** !#en cc.view is the shared view object. + !#zh cc.view 是全局的视图对象。 */ + export var view: View; + /** !#en cc.winSize is the alias object for the size of the current game window. + !#zh cc.winSize 为当前的游戏窗口的大小。 */ + export var winSize: Size; + /** Specify that the input value must be integer in Inspector. + Also used to indicates that the elements in array should be type integer. */ + export var Integer: string; + /** Indicates that the elements in array should be type double. */ + export var Float: string; + /** Indicates that the elements in array should be type boolean. */ + export var Boolean: string; + /** Indicates that the elements in array should be type string. */ + export var String: string; + /** + !#en Deserialize json to cc.Asset + !#zh 将 JSON 反序列化为对象实例。 + @param data the serialized cc.Asset json string or json object. + @param details additional loading result + @param options options + */ + export function deserialize(data: string|any, details?: Details, options?: any): any; + /** + !#en Clones the object `original` and returns the clone, or instantiate a node from the Prefab. + !#zh 克隆指定的任意类型的对象,或者从 Prefab 实例化出新节点。 + + (Instantiate 时,function 和 dom 等非可序列化对象会直接保留原有引用,Asset 会直接进行浅拷贝,可序列化类型会进行深拷贝。) + @param original An existing object that you want to make a copy of. + + @example + ```js + // instantiate node from prefab + var scene = cc.director.getScene(); + var node = cc.instantiate(prefabAsset); + node.parent = scene; + // clone node + var scene = cc.director.getScene(); + var node = cc.instantiate(targetNode); + node.parent = scene; + ``` + */ + export function instantiate(original: Prefab): Node; + export function instantiate(original: T): T; + /** + !#en + The convenience method to create a new {{#crossLink "Color/Color:method"}}cc.Color{{/crossLink}} + Alpha channel is optional. Default value is 255. + + !#zh + 通过该方法来创建一个新的 {{#crossLink "Color/Color:method"}}cc.Color{{/crossLink}} 对象。 + Alpha 通道是可选的。默认值是 255。 + @param r r + @param g g + @param b b + @param a a + + @example + ```js + ----------------------- + // 1. All channels seperately as parameters + var color1 = new cc.Color(255, 255, 255, 255); + // 2. Convert a hex string to a color + var color2 = new cc.Color("#000000"); + // 3. An color object as parameter + var color3 = new cc.Color({r: 255, g: 255, b: 255, a: 255}); + + ``` + */ + export function color(r?: number, g?: number, b?: number, a?: number): Color; + /** + !#en The convenience method to create a new {{#crossLink "Mat4"}}cc.Mat4{{/crossLink}}. + !#zh 通过该简便的函数进行创建 {{#crossLink "Mat4"}}cc.Mat4{{/crossLink}} 对象。 + @param m00 Component in column 0, row 0 position (index 0) + @param m01 Component in column 0, row 1 position (index 1) + @param m02 Component in column 0, row 2 position (index 2) + @param m03 Component in column 0, row 3 position (index 3) + @param m10 Component in column 1, row 0 position (index 4) + @param m11 Component in column 1, row 1 position (index 5) + @param m12 Component in column 1, row 2 position (index 6) + @param m13 Component in column 1, row 3 position (index 7) + @param m20 Component in column 2, row 0 position (index 8) + @param m21 Component in column 2, row 1 position (index 9) + @param m22 Component in column 2, row 2 position (index 10) + @param m23 Component in column 2, row 3 position (index 11) + @param m30 Component in column 3, row 0 position (index 12) + @param m31 Component in column 3, row 1 position (index 13) + @param m32 Component in column 3, row 2 position (index 14) + @param m33 Component in column 3, row 3 position (index 15) + */ + export function mat4(m00?: number, m01?: number, m02?: number, m03?: number, m10?: number, m11?: number, m12?: number, m13?: number, m20?: number, m21?: number, m22?: number, m23?: number, m30?: number, m31?: number, m32?: number, m33?: number): Mat4; + /** + !#en The convenience method to create a new {{#crossLink "Quat"}}cc.Quat{{/crossLink}}. + !#zh 通过该简便的函数进行创建 {{#crossLink "Quat"}}cc.Quat{{/crossLink}} 对象。 + @param x x + @param y y + @param z z + @param w w + */ + export function quat(x?: number|any, y?: number, z?: number, w?: number): Quat; + /** + !#en + Helper function that creates a cc.Size.
+ Please use cc.p or cc.v2 instead, it will soon replace cc.Size. + !#zh + 创建一个 cc.Size 对象的帮助函数。
+ 注意:可以使用 cc.p 或者是 cc.v2 代替,它们将很快取代 cc.Size。 + @param w width or a size object + @param h height + + @example + ```js + var size1 = cc.size(); + var size2 = cc.size(100,100); + var size3 = cc.size(size2); + var size4 = cc.size({width: 100, height: 100}); + + ``` + */ + export function size(w: number|Size, h?: number): Size; + export var EPSILON: number; + /** + Clamps a value between a minimum float and maximum float value. + @param val val + @param min min + @param max max + */ + export function clamp(val: number, min: number, max: number): number; + /** + Clamps a value between 0 and 1. + @param val val + */ + export function clamp01(val: number): number; + /** + + @param from from + @param to to + @param ratio the interpolation coefficient + */ + export function lerp(from: number, to: number, ratio: number): number; + export function random(): void; + /** + Returns a floating-point random number between min (inclusive) and max (exclusive). + @param min min + @param max max + */ + export function randomRange(min: number, max: number): number; + /** + Returns a random integer between min (inclusive) and max (exclusive). + @param min min + @param max max + */ + export function randomRangeInt(min: number, max: number): number; + /** + Linear congruential generator using Hull-Dobell Theorem. + @param seed the random seed + */ + export function pseudoRandom(seed: number): number; + /** + Returns a floating-point pseudo-random number between min (inclusive) and max (exclusive). + @param seed seed + @param min min + @param max max + */ + export function pseudoRandomRange(seed: number, min: number, max: number): number; + /** + Returns a pseudo-random integer between min (inclusive) and max (exclusive). + @param seed seed + @param min min + @param max max + */ + export function pseudoRandomRangeInt(seed: number, min: number, max: number): number; + /** + Returns the next power of two for the value + @param val val + */ + export function nextPow2(val: number): number; + /** + Returns float remainder for t / length + @param t time start at 0 + @param length time of one cycle + */ + export function repeat(t: number, length: number): number; + /** + Returns time wrapped in ping-pong mode + @param t time start at 0 + @param length time of one cycle + */ + export function repeat(t: number, length: number): number; + /** + Returns ratio of a value within a given range + @param from start value + @param to end value + @param value given value + */ + export function repeat(from: number, to: number, value: number): number; + /** + Returns -1, 0, +1 depending on sign of x. + @param v v + */ + export function sign(v: number): void; + /** + !#en The convenience method to create a new {{#crossLink "Vec2"}}cc.Vec2{{/crossLink}}. + !#zh 通过该简便的函数进行创建 {{#crossLink "Vec2"}}cc.Vec2{{/crossLink}} 对象。 + @param x x + @param y y + + @example + ```js + var v1 = cc.v2(); + var v2 = cc.v2(0, 0); + var v3 = cc.v2(v2); + var v4 = cc.v2({x: 100, y: 100}); + ``` + */ + export function v2(x?: number|any, y?: number): Vec2; + /** + !#en + The convenience method to create a new Rect. + see {{#crossLink "Rect/Rect:method"}}cc.Rect{{/crossLink}} + !#zh + 该方法用来快速创建一个新的矩形。{{#crossLink "Rect/Rect:method"}}cc.Rect{{/crossLink}} + @param x x + @param y y + @param w w + @param h h + + @example + ```js + var a = new cc.Rect(0 , 0, 10, 0); + ``` + */ + export function rect(x?: number, y?: number, w?: number, h?: number): Rect; + /** + !#en The convenience method to create a new {{#crossLink "Vec3"}}cc.Vec3{{/crossLink}}. + !#zh 通过该简便的函数进行创建 {{#crossLink "Vec3"}}cc.Vec3{{/crossLink}} 对象。 + @param x x + @param y y + @param z z + + @example + ```js + var v1 = cc.v3(); + var v2 = cc.v3(0, 0, 0); + var v3 = cc.v3(v2); + var v4 = cc.v3({x: 100, y: 100, z: 0}); + ``` + */ + export function v3(x?: number|any, y?: number, z?: number): Vec3; + /** + Finds a node by hierarchy path, the path is case-sensitive. + It will traverse the hierarchy by splitting the path using '/' character. + This function will still returns the node even if it is inactive. + It is recommended to not use this function every frame instead cache the result at startup. + @param path path + @param referenceNode referenceNode + */ + export function find(path: string, referenceNode?: Node): Node; + export var dynamicAtlasManager: DynamicAtlasManager; + /** !#en The matrix storage */ + export var matrix: any[]; + /** + !#en Get an element + @param i i + @param j j + */ + export function get(i: number, j: number): number; + /** + !#en Set an element + @param i i + @param j j + @param value value + */ + export function set(i: number, j: number, value: boolean): void; + /** + !#en Sets all elements to zero + */ + export function reset(): void; + /** !#en Base class cc.Action for action classes. + !#zh Action 类是所有动作类型的基类。 */ + export class Action { + /** + !#en + to copy object with deep copy. + returns a clone of action. + !#zh 返回一个克隆的动作。 + */ + clone(): Action; + /** + !#en + return true if the action has finished. + !#zh 如果动作已完成就返回 true。 + */ + isDone(): boolean; + /** + !#en get the target. + !#zh 获取当前目标节点。 + */ + getTarget(): Node; + /** + !#en The action will modify the target properties. + !#zh 设置目标节点。 + @param target target + */ + setTarget(target: Node): void; + /** + !#en get the original target. + !#zh 获取原始目标节点。 + */ + getOriginalTarget(): Node; + /** + !#en get tag number. + !#zh 获取用于识别动作的标签。 + */ + getTag(): number; + /** + !#en set tag number. + !#zh 设置标签,用于识别动作。 + @param tag tag + */ + setTag(tag: number): void; + /** !#en Default Action tag. + !#zh 默认动作标签。 */ + static TAG_INVALID: number; + } + /** !#en + Base class actions that do have a finite time duration.
+ Possible actions:
+ - An action with a duration of 0 seconds.
+ - An action with a duration of 35.5 seconds. + + Infinite time actions are valid + !#zh 有限时间动作,这种动作拥有时长 duration 属性。 */ + export class FiniteTimeAction extends Action { + /** + !#en get duration of the action. (seconds). + !#zh 获取动作以秒为单位的持续时间。 + */ + getDuration(): number; + /** + !#en set duration of the action. (seconds). + !#zh 设置动作以秒为单位的持续时间。 + @param duration duration + */ + setDuration(duration: number): void; + /** + !#en + Returns a reversed action.
+ For example:
+ - The action will be x coordinates of 0 move to 100.
+ - The reversed action will be x of 100 move to 0. + - Will be rewritten + !#zh 返回一个新的动作,执行与原动作完全相反的动作。 + */ + reverse(): void; + /** + !#en + to copy object with deep copy. + returns a clone of action. + !#zh 返回一个克隆的动作。 + */ + clone(): FiniteTimeAction; + } + /** !#en Instant actions are immediate actions. They don't have a duration like the ActionInterval actions. + !#zh 即时动作,这种动作立即就会执行,继承自 FiniteTimeAction。 */ + export class ActionInstant extends FiniteTimeAction { + } + /** !#en +

An interval action is an action that takes place within a certain period of time.
+ It has an start time, and a finish time. The finish time is the parameter
+ duration plus the start time.

+ +

These CCActionInterval actions have some interesting properties, like:
+ - They can run normally (default)
+ - They can run reversed with the reverse method
+ - They can run with the time altered with the Accelerate, AccelDeccel and Speed actions.

+ +

For example, you can simulate a Ping Pong effect running the action normally and
+ then running it again in Reverse mode.

+ !#zh 时间间隔动作,这种动作在已定时间内完成,继承 FiniteTimeAction。 */ + export class ActionInterval extends FiniteTimeAction { + /** + !#en Implementation of ease motion. + !#zh 缓动运动。 + @param easeObj easeObj + + @example + ```js + action.easing(cc.easeIn(3.0)); + ``` + */ + easing(easeObj: any): ActionInterval; + /** + !#en + Repeats an action a number of times. + To repeat an action forever use the CCRepeatForever action. + !#zh 重复动作可以按一定次数重复一个动作,使用 RepeatForever 动作来永远重复一个动作。 + @param times times + */ + repeat(times: number): ActionInterval; + /** + !#en + Repeats an action for ever.
+ To repeat the an action for a limited number of times use the Repeat action.
+ !#zh 永远地重复一个动作,有限次数内重复一个动作请使用 Repeat 动作。 + */ + repeatForever(): ActionInterval; + } + /** !#en + cc.ActionManager is a class that can manage actions.
+ Normally you won't need to use this class directly. 99% of the cases you will use the CCNode interface, + which uses this class's singleton object. + But there are some cases where you might need to use this class.
+ Examples:
+ - When you want to run an action where the target is different from a CCNode.
+ - When you want to pause / resume the actions
+ !#zh + cc.ActionManager 是可以管理动作的单例类。
+ 通常你并不需要直接使用这个类,99%的情况您将使用 CCNode 的接口。
+ 但也有一些情况下,您可能需要使用这个类。
+ 例如: + - 当你想要运行一个动作,但目标不是 CCNode 类型时。
+ - 当你想要暂停/恢复动作时。
*/ + export class ActionManager { + /** + !#en + Adds an action with a target.
+ If the target is already present, then the action will be added to the existing target. + If the target is not present, a new instance of this target will be created either paused or not, and the action will be added to the newly created target. + When the target is paused, the queued actions won't be 'ticked'. + !#zh + 增加一个动作,同时还需要提供动作的目标对象,目标对象是否暂停作为参数。
+ 如果目标已存在,动作将会被直接添加到现有的节点中。
+ 如果目标不存在,将为这一目标创建一个新的实例,并将动作添加进去。
+ 当目标状态的 paused 为 true,动作将不会被执行 + @param action action + @param target target + @param paused paused + */ + addAction(action: Action, target: Node, paused: boolean): void; + /** + !#en Removes all actions from all the targets. + !#zh 移除所有对象的所有动作。 + */ + removeAllActions(): void; + /** + !#en + Removes all actions from a certain target.
+ All the actions that belongs to the target will be removed. + !#zh + 移除指定对象上的所有动作。
+ 属于该目标的所有的动作将被删除。 + @param target target + @param forceDelete forceDelete + */ + removeAllActionsFromTarget(target: Node, forceDelete: boolean): void; + /** + !#en Removes an action given an action reference. + !#zh 移除指定的动作。 + @param action action + */ + removeAction(action: Action): void; + /** + !#en Removes an action given its tag and the target. + !#zh 删除指定对象下特定标签的一个动作,将删除首个匹配到的动作。 + @param tag tag + @param target target + */ + removeActionByTag(tag: number, target?: Node): void; + /** + !#en Gets an action given its tag an a target. + !#zh 通过目标对象和标签获取一个动作。 + @param tag tag + @param target target + */ + getActionByTag(tag: number, target: Node): Action; + /** + !#en + Returns the numbers of actions that are running in a certain target.
+ Composable actions are counted as 1 action.
+ Example:
+ - If you are running 1 Sequence of 7 actions, it will return 1.
+ - If you are running 7 Sequences of 2 actions, it will return 7. + !#zh + 返回指定对象下所有正在运行的动作数量。
+ 组合动作被算作一个动作。
+ 例如:
+ - 如果您正在运行 7 个动作组成的序列动作(Sequence),这个函数将返回 1。
+ - 如果你正在运行 2 个序列动作(Sequence)和 5 个普通动作,这个函数将返回 7。
+ @param target target + */ + getNumberOfRunningActionsInTarget(target: Node): number; + /** + !#en Pauses the target: all running actions and newly added actions will be paused. + !#zh 暂停指定对象:所有正在运行的动作和新添加的动作都将会暂停。 + @param target target + */ + pauseTarget(target: Node): void; + /** + !#en Resumes the target. All queued actions will be resumed. + !#zh 让指定目标恢复运行。在执行序列中所有被暂停的动作将重新恢复运行。 + @param target target + */ + resumeTarget(target: Node): void; + /** + !#en Pauses all running actions, returning a list of targets whose actions were paused. + !#zh 暂停所有正在运行的动作,返回一个包含了那些动作被暂停了的目标对象的列表。 + */ + pauseAllRunningActions(): any[]; + /** + !#en Resume a set of targets (convenience function to reverse a pauseAllRunningActions or pauseTargets call). + !#zh 让一组指定对象恢复运行(用来逆转 pauseAllRunningActions 效果的便捷函数)。 + @param targetsToResume targetsToResume + */ + resumeTargets(targetsToResume: any[]): void; + /** + !#en Pause a set of targets. + !#zh 暂停一组指定对象。 + @param targetsToPause targetsToPause + */ + pauseTargets(targetsToPause: any[]): void; + /** + !#en + purges the shared action manager. It releases the retained instance.
+ because it uses this, so it can not be static. + !#zh + 清除共用的动作管理器。它释放了持有的实例。
+ 因为它使用 this,因此它不能是静态的。 + */ + purgeSharedManager(): void; + /** + !#en The ActionManager update。 + !#zh ActionManager 主循环。 + @param dt delta time in seconds + */ + update(dt: number): void; + } + /** !#en + Tween provide a simple and flexible way to create action. Tween's api is more flexible than `cc.Action`: + - Support creating an action sequence in chained api. + - Support animate any objects' any properties, not limited to node's properties. By contrast, `cc.Action` needs to create a new action class to support new node property. + - Support working with `cc.Action`. + - Support easing and progress function. + !#zh + Tween 提供了一个简单灵活的方法来创建 action。相对于 Cocos 传统的 `cc.Action`,`cc.Tween` 在创建动画上要灵活非常多: + - 支持以链式结构的方式创建一个动画序列。 + - 支持对任意对象的任意属性进行缓动,不再局限于节点上的属性,而 `cc.Action` 添加一个属性的支持时还需要添加一个新的 action 类型。 + - 支持与 `cc.Action` 混用。 + - 支持设置 {{#crossLink "Easing"}}{{/crossLink}} 或者 progress 函数。 */ + export class Tween { + /** + + @param target target + */ + constructor(target?: any); + /** + !#en Stop all tweens + !#zh 停止所有缓动 + */ + static stopAll(): void; + /** + !#en Stop all tweens by tag + !#zh 停止所有指定标签的缓动 + @param tag tag + */ + static stopAllByTag(tag: number): void; + /** + !#en Stop all tweens by target + !#zh 停止所有指定对象的缓动 + @param target target + */ + static stopAllByTarget(target: any): void; + /** + !#en + Insert an action or tween to this sequence + !#zh + 插入一个 action 或者 tween 到队列中 + @param other other + */ + then(other: Action|Tween): Tween; + /** + !#en + Set tween target + !#zh + 设置 tween 的 target + @param target target + */ + target(target: any): Tween; + /** + !#en + Start this tween + !#zh + 运行当前 tween + */ + start(): Tween; + /** + !#en + Stop this tween + !#zh + 停止当前 tween + */ + stop(): Tween; + /** + !#en Sets tween tag + !#zh 设置缓动的标签 + @param tag tag + */ + tag(tag: number): Tween; + /** + !#en + Clone a tween + !#zh + 克隆当前 tween + @param target target + */ + clone(target?: any): Tween; + /** + !#en + Integrate all previous actions to an action. + !#zh + 将之前所有的 action 整合为一个 action。 + */ + union(): Tween; + /** + !#en Sets target's position property according to the bezier curve. + !#zh 按照贝塞尔路径设置目标的 position 属性。 + @param duration duration + @param c1 c1 + @param c2 c2 + @param to to + */ + bezierTo(duration: number, c1: Vec2, c2: Vec2, to: Vec2): Tween; + /** + !#en Sets target's position property according to the bezier curve. + !#zh 按照贝塞尔路径设置目标的 position 属性。 + @param duration duration + @param c1 c1 + @param c2 c2 + @param to to + */ + bezierBy(duration: number, c1: Vec2, c2: Vec2, to: Vec2): Tween; + /** + !#en Flips target's scaleX + !#zh 翻转目标的 scaleX 属性 + */ + flipX(): Tween; + /** + !#en Flips target's scaleY + !#zh 翻转目标的 scaleY 属性 + */ + flipY(): Tween; + /** + !#en Blinks target by set target's opacity property + !#zh 通过设置目标的 opacity 属性达到闪烁效果 + @param duration duration + @param times times + @param opts opts + */ + blink(duration: number, times: number, opts?: {progress?: Function; easing?: Function|string; }): Tween; + /** + !#en + Add an action which calculate with absolute value + !#zh + 添加一个对属性进行绝对值计算的 action + @param duration duration + @param props {scale: 2, position: cc.v3(100, 100, 100)} + @param opts opts + */ + to>(duration: number, props: ConstructorType, opts?: OPTS): Tween; + /** + !#en + Add an action which calculate with relative value + !#zh + 添加一个对属性进行相对值计算的 action + @param duration duration + @param props {scale: 2, position: cc.v3(100, 100, 100)} + @param opts opts + */ + by>(duration: number, props: ConstructorType, opts?: OPTS): Tween; + /** + !#en + Directly set target properties + !#zh + 直接设置 target 的属性 + @param props props + */ + set (props: ConstructorType) : Tween; + /** + !#en + Add an delay action + !#zh + 添加一个延时 action + @param duration duration + */ + delay(duration: number): Tween; + /** + !#en + Add an callback action + !#zh + 添加一个回调 action + @param callback callback + @param selectTarget selectTarget + */ + call(callback: Function, selectTarget?: object): Tween; + /** + !#en + Add an hide action + !#zh + 添加一个隐藏 action + */ + hide(): Tween; + /** + !#en + Add an show action + !#zh + 添加一个显示 action + */ + show(): Tween; + /** + !#en + Add an removeSelf action + !#zh + 添加一个移除自己 action + */ + removeSelf(): Tween; + /** + !#en + Add an sequence action + !#zh + 添加一个队列 action + @param action action + @param actions actions + */ + sequence(action: Action|Tween, ...actions: (Action|Tween)[]): Tween; + /** + !#en + Add an parallel action + !#zh + 添加一个并行 action + @param action action + @param actions actions + */ + parallel(action: Action|Tween, ...actions: (Action|Tween)[]): Tween; + /** + !#en + Add an repeat action. This action will integrate before actions to a sequence action as their parameters. + !#zh + 添加一个重复 action,这个 action 会将前一个动作作为他的参数。 + @param repeatTimes repeatTimes + @param action action + */ + repeat(repeatTimes: number, action?: Action|Tween): Tween; + /** + !#en + Add an repeat forever action. This action will integrate before actions to a sequence action as their parameters. + !#zh + 添加一个永久重复 action,这个 action 会将前一个动作作为他的参数。 + @param action action + */ + repeatForever(action?: Action|Tween): Tween; + /** + !#en + Add an reverse time action. This action will integrate before actions to a sequence action as their parameters. + !#zh + 添加一个倒置时间 action,这个 action 会将前一个动作作为他的参数。 + @param action action + */ + reverseTime(action?: Action|Tween): Tween; + } + /** !#en `cc.audioEngine` is the singleton object, it provide simple audio APIs. + !#zh + cc.audioengine是单例对象。
+ 主要用来播放音频,播放的时候会返回一个 audioID,之后都可以通过这个 audioID 来操作这个音频对象。
+ 不使用的时候,请使用 `cc.audioEngine.uncache(filePath);` 进行资源释放
+ 注意:
+ 在 Android 系统浏览器上,不同浏览器,不同版本的效果不尽相同。
+ 比如说:大多数浏览器都需要用户物理交互才可以开始播放音效,有一些不支持 WebAudio,有一些不支持多音轨播放。总之如果对音乐依赖比较强,请做尽可能多的测试。 */ + export class audioEngine { + /** + !#en Play audio. + !#zh 播放音频 + @param clip The audio clip to play. + @param loop Whether the music loop or not. + @param volume Volume size. + + @example + ```js + cc.resources.load(path, cc.AudioClip, null, function (err, clip) { + var audioID = cc.audioEngine.play(clip, false, 0.5); + }); + ``` + */ + static play(clip: AudioClip, loop: boolean, volume: number): number; + /** + !#en Set audio loop. + !#zh 设置音频是否循环。 + @param audioID audio id. + @param loop Whether cycle. + + @example + ```js + cc.audioEngine.setLoop(id, true); + ``` + */ + static setLoop(audioID: number, loop: boolean): void; + /** + !#en Get audio cycle state. + !#zh 获取音频的循环状态。 + @param audioID audio id. + + @example + ```js + cc.audioEngine.isLoop(id); + ``` + */ + static isLoop(audioID: number): boolean; + /** + !#en Set the volume of audio. + !#zh 设置音量(0.0 ~ 1.0)。 + @param audioID audio id. + @param volume Volume must be in 0.0~1.0 . + + @example + ```js + cc.audioEngine.setVolume(id, 0.5); + ``` + */ + static setVolume(audioID: number, volume: number): void; + /** + !#en The volume of the music max value is 1.0,the min value is 0.0 . + !#zh 获取音量(0.0 ~ 1.0)。 + @param audioID audio id. + + @example + ```js + var volume = cc.audioEngine.getVolume(id); + ``` + */ + static getVolume(audioID: number): number; + /** + !#en Set current time + !#zh 设置当前的音频时间。 + @param audioID audio id. + @param sec current time. + + @example + ```js + cc.audioEngine.setCurrentTime(id, 2); + ``` + */ + static setCurrentTime(audioID: number, sec: number): boolean; + /** + !#en Get current time + !#zh 获取当前的音频播放时间。 + @param audioID audio id. + + @example + ```js + var time = cc.audioEngine.getCurrentTime(id); + ``` + */ + static getCurrentTime(audioID: number): number; + /** + !#en Get audio duration + !#zh 获取音频总时长。 + @param audioID audio id. + + @example + ```js + var time = cc.audioEngine.getDuration(id); + ``` + */ + static getDuration(audioID: number): number; + /** + !#en Get audio state + !#zh 获取音频状态。 + @param audioID audio id. + + @example + ```js + var state = cc.audioEngine.getState(id); + ``` + */ + static getState(audioID: number): audioEngine.AudioState; + /** + !#en Set Audio finish callback + !#zh 设置一个音频结束后的回调 + @param audioID audio id. + @param callback loaded callback. + + @example + ```js + cc.audioEngine.setFinishCallback(id, function () {}); + ``` + */ + static setFinishCallback(audioID: number, callback: Function): void; + /** + !#en Pause playing audio. + !#zh 暂停正在播放音频。 + @param audioID The return value of function play. + + @example + ```js + cc.audioEngine.pause(audioID); + ``` + */ + static pause(audioID: number): void; + /** + !#en Pause all playing audio + !#zh 暂停现在正在播放的所有音频。 + + @example + ```js + cc.audioEngine.pauseAll(); + ``` + */ + static pauseAll(): void; + /** + !#en Resume playing audio. + !#zh 恢复播放指定的音频。 + @param audioID The return value of function play. + + @example + ```js + cc.audioEngine.resume(audioID); + ``` + */ + static resume(audioID: number): void; + /** + !#en Resume all playing audio. + !#zh 恢复播放所有之前暂停的所有音频。 + + @example + ```js + cc.audioEngine.resumeAll(); + ``` + */ + static resumeAll(): void; + /** + !#en Stop playing audio. + !#zh 停止播放指定音频。 + @param audioID The return value of function play. + + @example + ```js + cc.audioEngine.stop(audioID); + ``` + */ + static stop(audioID: number): void; + /** + !#en Stop all playing audio. + !#zh 停止正在播放的所有音频。 + + @example + ```js + cc.audioEngine.stopAll(); + ``` + */ + static stopAll(): void; + /** + !#en Set up an audio can generate a few examples. + !#zh 设置一个音频可以设置几个实例 + @param num a number of instances to be created from within an audio + + @example + ```js + cc.audioEngine.setMaxAudioInstance(20); + ``` + */ + static setMaxAudioInstance(num: number): void; + /** + !#en Getting audio can produce several examples. + !#zh 获取一个音频可以设置几个实例 + + @example + ```js + cc.audioEngine.getMaxAudioInstance(); + ``` + */ + static getMaxAudioInstance(): number; + /** + !#en Unload the preloaded audio from internal buffer. + !#zh 卸载预加载的音频。 + @param clip clip + + @example + ```js + cc.audioEngine.uncache(filePath); + ``` + */ + static uncache(clip: AudioClip): void; + /** + !#en Unload all audio from internal buffer. + !#zh 卸载所有音频。 + + @example + ```js + cc.audioEngine.uncacheAll(); + ``` + */ + static uncacheAll(): void; + /** + !#en Play background music + !#zh 播放背景音乐 + @param clip The audio clip to play. + @param loop Whether the music loop or not. + + @example + ```js + cc.resources.load(path, cc.AudioClip, null, function (err, clip) { + var audioID = cc.audioEngine.playMusic(clip, false); + }); + ``` + */ + static playMusic(clip: AudioClip, loop: boolean): number; + /** + !#en Stop background music. + !#zh 停止播放背景音乐。 + + @example + ```js + cc.audioEngine.stopMusic(); + ``` + */ + static stopMusic(): void; + /** + !#en Pause the background music. + !#zh 暂停播放背景音乐。 + + @example + ```js + cc.audioEngine.pauseMusic(); + ``` + */ + static pauseMusic(): void; + /** + !#en Resume playing background music. + !#zh 恢复播放背景音乐。 + + @example + ```js + cc.audioEngine.resumeMusic(); + ``` + */ + static resumeMusic(): void; + /** + !#en Get the volume(0.0 ~ 1.0). + !#zh 获取音量(0.0 ~ 1.0)。 + + @example + ```js + var volume = cc.audioEngine.getMusicVolume(); + ``` + */ + static getMusicVolume(): number; + /** + !#en Set the background music volume. + !#zh 设置背景音乐音量(0.0 ~ 1.0)。 + @param volume Volume must be in 0.0~1.0. + + @example + ```js + cc.audioEngine.setMusicVolume(0.5); + ``` + */ + static setMusicVolume(volume: number): void; + /** + !#en Background music playing state + !#zh 背景音乐是否正在播放 + + @example + ```js + cc.audioEngine.isMusicPlaying(); + ``` + */ + static isMusicPlaying(): boolean; + /** + !#en Play effect audio. + !#zh 播放音效 + @param clip The audio clip to play. + @param loop Whether the music loop or not. + + @example + ```js + cc.resources.load(path, cc.AudioClip, null, function (err, clip) { + var audioID = cc.audioEngine.playEffect(clip, false); + }); + ``` + */ + static playEffect(clip: AudioClip, loop: boolean): number; + /** + !#en Set the volume of effect audio. + !#zh 设置音效音量(0.0 ~ 1.0)。 + @param volume Volume must be in 0.0~1.0. + + @example + ```js + cc.audioEngine.setEffectsVolume(0.5); + ``` + */ + static setEffectsVolume(volume: number): void; + /** + !#en The volume of the effect audio max value is 1.0,the min value is 0.0 . + !#zh 获取音效音量(0.0 ~ 1.0)。 + + @example + ```js + var volume = cc.audioEngine.getEffectsVolume(); + ``` + */ + static getEffectsVolume(): number; + /** + !#en Pause effect audio. + !#zh 暂停播放音效。 + @param audioID audio id. + + @example + ```js + cc.audioEngine.pauseEffect(audioID); + ``` + */ + static pauseEffect(audioID: number): void; + /** + !#en Stop playing all the sound effects. + !#zh 暂停播放所有音效。 + + @example + ```js + cc.audioEngine.pauseAllEffects(); + ``` + */ + static pauseAllEffects(): void; + /** + !#en Resume effect audio. + !#zh 恢复播放音效音频。 + @param audioID The return value of function play. + + @example + ```js + cc.audioEngine.resumeEffect(audioID); + ``` + */ + static resumeEffect(audioID: number): void; + /** + !#en Resume all effect audio. + !#zh 恢复播放所有之前暂停的音效。 + + @example + ```js + cc.audioEngine.resumeAllEffects(); + ``` + */ + static resumeAllEffects(): void; + /** + !#en Stop playing the effect audio. + !#zh 停止播放音效。 + @param audioID audio id. + + @example + ```js + cc.audioEngine.stopEffect(id); + ``` + */ + static stopEffect(audioID: number): void; + /** + !#en Stop playing all the effects. + !#zh 停止播放所有音效。 + + @example + ```js + cc.audioEngine.stopAllEffects(); + ``` + */ + static stopAllEffects(): void; + } + /** !#en Class for animation data handling. + !#zh 动画剪辑,用于存储动画数据。 */ + export class AnimationClip extends Asset { + /** !#en Duration of this animation. + !#zh 动画的持续时间。 */ + duration: number; + /** !#en FrameRate of this animation. + !#zh 动画的帧速率。 */ + sample: number; + /** !#en Speed of this animation. + !#zh 动画的播放速度。 */ + speed: number; + /** !#en WrapMode of this animation. + !#zh 动画的循环模式。 */ + wrapMode: WrapMode; + /** !#en Curve data. + !#zh 曲线数据。 */ + curveData: any; + /** !#en Event data. + !#zh 事件数据。 */ + events: {frame: number, func: string, params: string[]}[]; + /** + !#en Crate clip with a set of sprite frames + !#zh 使用一组序列帧图片来创建动画剪辑 + @param spriteFrames spriteFrames + @param sample sample + + @example + ```js + var clip = cc.AnimationClip.createWithSpriteFrames(spriteFrames, 10); + ``` + */ + static createWithSpriteFrames(spriteFrames: SpriteFrame[], sample: number): AnimationClip; + } + /** !#en + The AnimationState gives full control over animation playback process. + In most cases the Animation Component is sufficient and easier to use. Use the AnimationState if you need full control. + !#zh + AnimationState 完全控制动画播放过程。
+ 大多数情况下 动画组件 是足够和易于使用的。如果您需要更多的动画控制接口,请使用 AnimationState。 */ + export class AnimationState extends Playable { + /** + + @param clip clip + @param name name + */ + constructor(clip: AnimationClip, name?: string); + /** !#en The curves list. + !#zh 曲线列表。 */ + curves: any[]; + /** !#en The start delay which represents the number of seconds from an animation's start time to the start of + the active interval. + !#zh 延迟多少秒播放。 */ + delay: number; + /** !#en The animation's iteration count property. + + A real number greater than or equal to zero (including positive infinity) representing the number of times + to repeat the animation node. + + Values less than zero and NaN values are treated as the value 1.0 for the purpose of timing model + calculations. + + !#zh 迭代次数,指动画播放多少次后结束, normalize time。 如 2.5(2次半) */ + repeatCount: number; + /** !#en The iteration duration of this animation in seconds. (length) + !#zh 单次动画的持续时间,秒。 */ + duration: number; + /** !#en The animation's playback speed. 1 is normal playback speed. + !#zh 播放速率。 */ + speed: number; + /** !#en + Wrapping mode of the playing animation. + Notice : dynamic change wrapMode will reset time and repeatCount property + !#zh + 动画循环方式。 + 需要注意的是,动态修改 wrapMode 时,会重置 time 以及 repeatCount */ + wrapMode: WrapMode; + /** !#en The current time of this animation in seconds. + !#zh 动画当前的时间,秒。 */ + time: number; + /** !#en The clip that is being played by this animation state. + !#zh 此动画状态正在播放的剪辑。 */ + clip: AnimationClip; + /** !#en The name of the playing animation. + !#zh 动画的名字 */ + name: string; + } + /** !#en + This class provide easing methods for {{#crossLink "tween"}}{{/crossLink}} class.
+ Demonstratio: https://easings.net/ + !#zh + 缓动函数类,为 {{#crossLink "Tween"}}{{/crossLink}} 提供缓动效果函数。
+ 函数效果演示: https://easings.net/ */ + export class Easing { + /** + !#en Easing in with quadratic formula. From slow to fast. + !#zh 平方曲线缓入函数。运动由慢到快。 + @param t The current time as a percentage of the total time. + */ + quadIn(t: number): number; + /** + !#en Easing out with quadratic formula. From fast to slow. + !#zh 平方曲线缓出函数。运动由快到慢。 + @param t The current time as a percentage of the total time. + */ + quadOut(t: number): number; + /** + !#en Easing in and out with quadratic formula. From slow to fast, then back to slow. + !#zh 平方曲线缓入缓出函数。运动由慢到快再到慢。 + @param t The current time as a percentage of the total time. + */ + quadInOut(t: number): number; + /** + !#en Easing in with cubic formula. From slow to fast. + !#zh 立方曲线缓入函数。运动由慢到快。 + @param t The current time as a percentage of the total time. + */ + cubicIn(t: number): number; + /** + !#en Easing out with cubic formula. From slow to fast. + !#zh 立方曲线缓出函数。运动由快到慢。 + @param t The current time as a percentage of the total time. + */ + cubicOut(t: number): number; + /** + !#en Easing in and out with cubic formula. From slow to fast, then back to slow. + !#zh 立方曲线缓入缓出函数。运动由慢到快再到慢。 + @param t The current time as a percentage of the total time. + */ + cubicInOut(t: number): number; + /** + !#en Easing in with quartic formula. From slow to fast. + !#zh 四次方曲线缓入函数。运动由慢到快。 + @param t The current time as a percentage of the total time. + */ + quartIn(t: number): number; + /** + !#en Easing out with quartic formula. From fast to slow. + !#zh 四次方曲线缓出函数。运动由快到慢。 + @param t The current time as a percentage of the total time. + */ + quartOut(t: number): number; + /** + !#en Easing in and out with quartic formula. From slow to fast, then back to slow. + !#zh 四次方曲线缓入缓出函数。运动由慢到快再到慢。 + @param t The current time as a percentage of the total time. + */ + quartInOut(t: number): number; + /** + !#en Easing in with quintic formula. From slow to fast. + !#zh 五次方曲线缓入函数。运动由慢到快。 + @param t The current time as a percentage of the total time. + */ + quintIn(t: number): number; + /** + !#en Easing out with quintic formula. From fast to slow. + !#zh 五次方曲线缓出函数。运动由快到慢。 + @param t The current time as a percentage of the total time. + */ + quintOut(t: number): number; + /** + !#en Easing in and out with quintic formula. From slow to fast, then back to slow. + !#zh 五次方曲线缓入缓出函数。运动由慢到快再到慢。 + @param t The current time as a percentage of the total time. + */ + quintInOut(t: number): number; + /** + !#en Easing in and out with sine formula. From slow to fast. + !#zh 正弦曲线缓入函数。运动由慢到快。 + @param t The current time as a percentage of the total time. + */ + sineIn(t: number): number; + /** + !#en Easing in and out with sine formula. From fast to slow. + !#zh 正弦曲线缓出函数。运动由快到慢。 + @param t The current time as a percentage of the total time. + */ + sineOut(t: number): number; + /** + !#en Easing in and out with sine formula. From slow to fast, then back to slow. + !#zh 正弦曲线缓入缓出函数。运动由慢到快再到慢。 + @param t The current time as a percentage of the total time. + */ + sineInOut(t: number): number; + /** + !#en Easing in and out with exponential formula. From slow to fast. + !#zh 指数曲线缓入函数。运动由慢到快。 + @param t The current time as a percentage of the total time. + */ + expoIn(t: number): number; + /** + !#en Easing in and out with exponential formula. From fast to slow. + !#zh 指数曲线缓出函数。运动由快到慢。 + @param t The current time as a percentage of the total time. + */ + expoOut(t: number): number; + /** + !#en Easing in and out with exponential formula. From slow to fast. + !#zh 指数曲线缓入和缓出函数。运动由慢到很快再到慢。 + @param t The current time as a percentage of the total time, then back to slow. + */ + expoInOut(t: number): number; + /** + !#en Easing in and out with circular formula. From slow to fast. + !#zh 循环公式缓入函数。运动由慢到快。 + @param t The current time as a percentage of the total time. + */ + circIn(t: number): number; + /** + !#en Easing in and out with circular formula. From fast to slow. + !#zh 循环公式缓出函数。运动由快到慢。 + @param t The current time as a percentage of the total time. + */ + circOut(t: number): number; + /** + !#en Easing in and out with circular formula. From slow to fast. + !#zh 指数曲线缓入缓出函数。运动由慢到很快再到慢。 + @param t The current time as a percentage of the total time, then back to slow. + */ + circInOut(t: number): number; + /** + !#en Easing in action with a spring oscillating effect. + !#zh 弹簧回震效果的缓入函数。 + @param t The current time as a percentage of the total time. + */ + elasticIn(t: number): number; + /** + !#en Easing out action with a spring oscillating effect. + !#zh 弹簧回震效果的缓出函数。 + @param t The current time as a percentage of the total time. + */ + elasticOut(t: number): number; + /** + !#en Easing in and out action with a spring oscillating effect. + !#zh 弹簧回震效果的缓入缓出函数。 + @param t The current time as a percentage of the total time. + */ + elasticInOut(t: number): number; + /** + !#en Easing in action with "back up" behavior. + !#zh 回退效果的缓入函数。 + @param t The current time as a percentage of the total time. + */ + backIn(t: number): number; + /** + !#en Easing out action with "back up" behavior. + !#zh 回退效果的缓出函数。 + @param t The current time as a percentage of the total time. + */ + backOut(t: number): number; + /** + !#en Easing in and out action with "back up" behavior. + !#zh 回退效果的缓入缓出函数。 + @param t The current time as a percentage of the total time. + */ + backInOut(t: number): number; + /** + !#en Easing in action with bouncing effect. + !#zh 弹跳效果的缓入函数。 + @param t The current time as a percentage of the total time. + */ + bounceIn(t: number): number; + /** + !#en Easing out action with bouncing effect. + !#zh 弹跳效果的缓出函数。 + @param t The current time as a percentage of the total time. + */ + bounceOut(t: number): number; + /** + !#en Easing in and out action with bouncing effect. + !#zh 弹跳效果的缓入缓出函数。 + @param t The current time as a percentage of the total time. + */ + bounceInOut(t: number): number; + /** + !#en Target will run action with smooth effect. + !#zh 平滑效果函数。 + @param t The current time as a percentage of the total time. + */ + smooth(t: number): number; + /** + !#en Target will run action with fade effect. + !#zh 渐褪效果函数。 + @param t The current time as a percentage of the total time. + */ + fade(t: number): number; + } + /** !#en Specifies how time is treated when it is outside of the keyframe range of an Animation. + !#zh 动画使用的循环模式。 */ + export enum WrapMode { + Default = 0, + Normal = 0, + Reverse = 0, + Loop = 0, + LoopReverse = 0, + PingPong = 0, + PingPongReverse = 0, + } + /** undefined */ + export class Playable { + /** !#en Is playing or paused in play mode? + !#zh 当前是否正在播放。 */ + isPlaying: boolean; + /** !#en Is currently paused? This can be true even if in edit mode(isPlaying == false). + !#zh 当前是否正在暂停 */ + isPaused: boolean; + /** + !#en Play this animation. + !#zh 播放动画。 + */ + play(): void; + /** + !#en Stop this animation. + !#zh 停止动画播放。 + */ + stop(): void; + /** + !#en Pause this animation. + !#zh 暂停动画。 + */ + pause(): void; + /** + !#en Resume this animation. + !#zh 重新播放动画。 + */ + resume(): void; + /** + !#en Perform a single frame step. + !#zh 执行一帧动画。 + */ + step(): void; + } + /** !#en An object to boot the game. + !#zh 包含游戏主体信息并负责驱动游戏的游戏对象。 */ + export class debug { + /** + !#en Gets error message with the error id and possible parameters. + !#zh 通过 error id 和必要的参数来获取错误信息。 + @param errorId errorId + @param param param + */ + static getError(errorId: number, param?: any): string; + /** + !#en Returns whether or not to display the FPS informations. + !#zh 是否显示 FPS 信息。 + */ + static isDisplayStats(): boolean; + /** + !#en Sets whether display the FPS on the bottom-left corner. + !#zh 设置是否在左下角显示 FPS。 + @param displayStats displayStats + */ + static setDisplayStats(displayStats: boolean): void; + } + /** !#en +

+ ATTENTION: USE cc.director INSTEAD OF cc.Director.
+ cc.director is a singleton object which manage your game's logic flow.
+ Since the cc.director is a singleton, you don't need to call any constructor or create functions,
+ the standard way to use it is by calling:
+ - cc.director.methodName();
+ + It creates and handle the main Window and manages how and when to execute the Scenes.
+
+ The cc.director is also responsible for:
+ - initializing the OpenGL context
+ - setting the OpenGL pixel format (default on is RGB565)
+ - setting the OpenGL buffer depth (default on is 0-bit)
+ - setting the color for clear screen (default one is BLACK)
+ - setting the projection (default one is 3D)
+ - setting the orientation (default one is Portrait)
+
+
+ The cc.director also sets the default OpenGL context:
+ - GL_TEXTURE_2D is enabled
+ - GL_VERTEX_ARRAY is enabled
+ - GL_COLOR_ARRAY is enabled
+ - GL_TEXTURE_COORD_ARRAY is enabled
+

+

+ cc.director also synchronizes timers with the refresh rate of the display.
+ Features and Limitations:
+ - Scheduled timers & drawing are synchronizes with the refresh rate of the display
+ - Only supports animation intervals of 1/60 1/30 & 1/15
+

+ + !#zh +

+ 注意:用 cc.director 代替 cc.Director。
+ cc.director 一个管理你的游戏的逻辑流程的单例对象。
+ 由于 cc.director 是一个单例,你不需要调用任何构造函数或创建函数,
+ 使用它的标准方法是通过调用:
+ - cc.director.methodName(); +
+ 它创建和处理主窗口并且管理什么时候执行场景。
+
+ cc.director 还负责:
+ - 初始化 OpenGL 环境。
+ - 设置OpenGL像素格式。(默认是 RGB565)
+ - 设置OpenGL缓冲区深度 (默认是 0-bit)
+ - 设置空白场景的颜色 (默认是 黑色)
+ - 设置投影 (默认是 3D)
+ - 设置方向 (默认是 Portrait)
+
+ cc.director 设置了 OpenGL 默认环境
+ - GL_TEXTURE_2D 启用。
+ - GL_VERTEX_ARRAY 启用。
+ - GL_COLOR_ARRAY 启用。
+ - GL_TEXTURE_COORD_ARRAY 启用。
+

+

+ cc.director 也同步定时器与显示器的刷新速率。 +
+ 特点和局限性:
+ - 将计时器 & 渲染与显示器的刷新频率同步。
+ - 只支持动画的间隔 1/60 1/30 & 1/15。
+

*/ + export class Director extends EventTarget { + /** + !#en + Converts a view coordinate to an WebGL coordinate
+ Useful to convert (multi) touches coordinates to the current layout (portrait or landscape)
+ Implementation can be found in CCDirectorWebGL. + !#zh 将触摸点的屏幕坐标转换为 WebGL View 下的坐标。 + @param uiPoint uiPoint + */ + convertToGL(uiPoint: Vec2): Vec2; + /** + !#en + Converts an OpenGL coordinate to a view coordinate
+ Useful to convert node points to window points for calls such as glScissor
+ Implementation can be found in CCDirectorWebGL. + !#zh 将触摸点的 WebGL View 坐标转换为屏幕坐标。 + @param glPoint glPoint + */ + convertToUI(glPoint: Vec2): Vec2; + /** + End the life of director in the next frame + */ + end(): void; + /** + !#en + Returns the size of the WebGL view in points.
+ It takes into account any possible rotation (device orientation) of the window. + !#zh 获取视图的大小,以点为单位。 + */ + getWinSize(): Size; + /** + !#en + Returns the size of the OpenGL view in pixels.
+ It takes into account any possible rotation (device orientation) of the window.
+ On Mac winSize and winSizeInPixels return the same value. + (The pixel here refers to the resource resolution. If you want to get the physics resolution of device, you need to use cc.view.getFrameSize()) + !#zh + 获取视图大小,以像素为单位(这里的像素指的是资源分辨率。 + 如果要获取屏幕物理分辨率,需要用 cc.view.getFrameSize()) + */ + getWinSizeInPixels(): Size; + /** + !#en Pause the director's ticker, only involve the game logic execution. + It won't pause the rendering process nor the event manager. + If you want to pause the entier game including rendering, audio and event, + please use {{#crossLink "Game.pause"}}cc.game.pause{{/crossLink}} + !#zh 暂停正在运行的场景,该暂停只会停止游戏逻辑执行,但是不会停止渲染和 UI 响应。 + 如果想要更彻底得暂停游戏,包含渲染,音频和事件,请使用 {{#crossLink "Game.pause"}}cc.game.pause{{/crossLink}}。 + */ + pause(): void; + /** + !#en + Run a scene. Replaces the running scene with a new one or enter the first scene.
+ The new scene will be launched immediately. + !#zh 立刻切换指定场景。 + @param scene The need run scene. + @param onBeforeLoadScene The function invoked at the scene before loading. + @param onLaunched The function invoked at the scene after launch. + */ + runSceneImmediate(scene: Scene|SceneAsset, onBeforeLoadScene?: Function, onLaunched?: Function): void; + /** + !#en + Run a scene. Replaces the running scene with a new one or enter the first scene. + The new scene will be launched at the end of the current frame. + !#zh 运行指定场景。 + @param scene The need run scene. + @param onBeforeLoadScene The function invoked at the scene before loading. + @param onLaunched The function invoked at the scene after launch. + */ + runScene(scene: Scene|SceneAsset, onBeforeLoadScene?: Function, onLaunched?: Function): void; + /** + !#en Loads the scene by its name. + !#zh 通过场景名称进行加载场景。 + @param sceneName The name of the scene to load. + @param onLaunched callback, will be called after scene launched. + */ + loadScene(sceneName: string, onLaunched?: Function): boolean; + /** + !#en + Preloads the scene to reduces loading time. You can call this method at any time you want. + After calling this method, you still need to launch the scene by `cc.director.loadScene`. + It will be totally fine to call `cc.director.loadScene` at any time even if the preloading is not + yet finished, the scene will be launched after loaded automatically. + !#zh 预加载场景,你可以在任何时候调用这个方法。 + 调用完后,你仍然需要通过 `cc.director.loadScene` 来启动场景,因为这个方法不会执行场景加载操作。 + 就算预加载还没完成,你也可以直接调用 `cc.director.loadScene`,加载完成后场景就会启动。 + @param sceneName The name of the scene to preload. + @param onProgress callback, will be called when the load progression change. + @param onLoaded callback, will be called after scene loaded. + */ + preloadScene(sceneName: string, onProgress?: (completedCount: number, totalCount: number, item: any) => void, onLoaded?: (error: Error) => void): void; + /** + !#en Resume game logic execution after pause, if the current scene is not paused, nothing will happen. + !#zh 恢复暂停场景的游戏逻辑,如果当前场景没有暂停将没任何事情发生。 + */ + resume(): void; + /** + !#en + Enables or disables WebGL depth test.
+ Implementation can be found in CCDirectorCanvas.js/CCDirectorWebGL.js + !#zh 启用/禁用深度测试(在 Canvas 渲染模式下不会生效)。 + @param on on + */ + setDepthTest(on: boolean): void; + /** + !#en + Set color for clear screen.
+ (Implementation can be found in CCDirectorCanvas.js/CCDirectorWebGL.js) + !#zh + 设置场景的默认擦除颜色。
+ 支持全透明,但不支持透明度为中间值。要支持全透明需手工开启 cc.macro.ENABLE_TRANSPARENT_CANVAS。 + @param clearColor clearColor + */ + setClearColor(clearColor: Color): void; + /** + !#en Returns current logic Scene. + !#zh 获取当前逻辑场景。 + + @example + ```js + // This will help you to get the Canvas node in scene + cc.director.getScene().getChildByName('Canvas'); + ``` + */ + getScene(): Scene; + /** + !#en Returns the FPS value. Please use {{#crossLink "Game.setFrameRate"}}cc.game.setFrameRate{{/crossLink}} to control animation interval. + !#zh 获取单位帧执行时间。请使用 {{#crossLink "Game.setFrameRate"}}cc.game.setFrameRate{{/crossLink}} 来控制游戏帧率。 + */ + getAnimationInterval(): number; + /** + Sets animation interval, this doesn't control the main loop. + To control the game's frame rate overall, please use {{#crossLink "Game.setFrameRate"}}cc.game.setFrameRate{{/crossLink}} + @param value The animation interval desired. + */ + setAnimationInterval(value: number): void; + /** + !#en Returns the delta time since last frame. + !#zh 获取上一帧的增量时间。 + */ + getDeltaTime(): number; + /** + !#en Returns the total passed time since game start, unit: ms + !#zh 获取从游戏开始到现在总共经过的时间,单位为 ms + */ + getTotalTime(): number; + /** + !#en Returns how many frames were called since the director started. + !#zh 获取 director 启动以来游戏运行的总帧数。 + */ + getTotalFrames(): number; + /** + !#en Returns whether or not the Director is paused. + !#zh 是否处于暂停状态。 + */ + isPaused(): boolean; + /** + !#en Returns the cc.Scheduler associated with this director. + !#zh 获取和 director 相关联的 cc.Scheduler。 + */ + getScheduler(): Scheduler; + /** + !#en Sets the cc.Scheduler associated with this director. + !#zh 设置和 director 相关联的 cc.Scheduler。 + @param scheduler scheduler + */ + setScheduler(scheduler: Scheduler): void; + /** + !#en Returns the cc.ActionManager associated with this director. + !#zh 获取和 director 相关联的 cc.ActionManager(动作管理器)。 + */ + getActionManager(): ActionManager; + /** + !#en Sets the cc.ActionManager associated with this director. + !#zh 设置和 director 相关联的 cc.ActionManager(动作管理器)。 + @param actionManager actionManager + */ + setActionManager(actionManager: ActionManager): void; + /** + !#en Returns the cc.CollisionManager associated with this director. + !#zh 获取和 director 相关联的 cc.CollisionManager (碰撞管理器)。 + */ + getCollisionManager(): CollisionManager; + /** + !#en Returns the cc.PhysicsManager associated with this director. + !#zh 返回与 director 相关联的 cc.PhysicsManager (物理管理器)。 + */ + getPhysicsManager(): PhysicsManager; + /** + !#en Returns the cc.Physics3DManager associated with this director. + !#zh 返回与 director 相关联的 cc.Physics3DManager (物理管理器)。 + */ + getPhysics3DManager(): Physics3DManager; + /** !#en The event projection changed of cc.Director. This event will not get triggered since v2.0 + !#zh cc.Director 投影变化的事件。从 v2.0 开始这个事件不会再被触发 */ + static EVENT_PROJECTION_CHANGED: string; + /** !#en The event which will be triggered before loading a new scene. + !#zh 加载新场景之前所触发的事件。 */ + static EVENT_BEFORE_SCENE_LOADING: string; + /** !#en The event which will be triggered before launching a new scene. + !#zh 运行新场景之前所触发的事件。 */ + static EVENT_BEFORE_SCENE_LAUNCH: string; + /** !#en The event which will be triggered after launching a new scene. + !#zh 运行新场景之后所触发的事件。 */ + static EVENT_AFTER_SCENE_LAUNCH: string; + /** !#en The event which will be triggered at the beginning of every frame. + !#zh 每个帧的开始时所触发的事件。 */ + static EVENT_BEFORE_UPDATE: string; + /** !#en The event which will be triggered after engine and components update logic. + !#zh 将在引擎和组件 “update” 逻辑之后所触发的事件。 */ + static EVENT_AFTER_UPDATE: string; + /** !#en The event is deprecated since v2.0, please use cc.Director.EVENT_BEFORE_DRAW instead + !#zh 这个事件从 v2.0 开始被废弃,请直接使用 cc.Director.EVENT_BEFORE_DRAW */ + static EVENT_BEFORE_VISIT: string; + /** !#en The event is deprecated since v2.0, please use cc.Director.EVENT_BEFORE_DRAW instead + !#zh 这个事件从 v2.0 开始被废弃,请直接使用 cc.Director.EVENT_BEFORE_DRAW */ + static EVENT_AFTER_VISIT: string; + /** !#en The event which will be triggered before the rendering process. + !#zh 渲染过程之前所触发的事件。 */ + static EVENT_BEFORE_DRAW: string; + /** !#en The event which will be triggered after the rendering process. + !#zh 渲染过程之后所触发的事件。 */ + static EVENT_AFTER_DRAW: string; + /** Constant for 2D projection (orthogonal projection) */ + static PROJECTION_2D: number; + /** Constant for 3D projection with a fovy=60, znear=0.5f and zfar=1500. */ + static PROJECTION_3D: number; + /** Constant for custom projection, if cc.Director's projection set to it, it calls "updateProjection" on the projection delegate. */ + static PROJECTION_CUSTOM: number; + /** Constant for default projection of cc.Director, default projection is 2D projection */ + static PROJECTION_DEFAULT: number; + } + /** !#en An object to boot the game. + !#zh 包含游戏主体信息并负责驱动游戏的游戏对象。 */ + export class Game extends EventTarget { + /** !#en Event triggered when game hide to background. + Please note that this event is not 100% guaranteed to be fired on Web platform, + on native platforms, it corresponds to enter background event, os status bar or notification center may not trigger this event. + !#zh 游戏进入后台时触发的事件。 + 请注意,在 WEB 平台,这个事件不一定会 100% 触发,这完全取决于浏览器的回调行为。 + 在原生平台,它对应的是应用被切换到后台事件,下拉菜单和上拉状态栏等不一定会触发这个事件,这取决于系统行为。 */ + EVENT_HIDE: string; + /** !#en Event triggered when game back to foreground + Please note that this event is not 100% guaranteed to be fired on Web platform, + on native platforms, it corresponds to enter foreground event. + !#zh 游戏进入前台运行时触发的事件。 + 请注意,在 WEB 平台,这个事件不一定会 100% 触发,这完全取决于浏览器的回调行为。 + 在原生平台,它对应的是应用被切换到前台事件。 */ + EVENT_SHOW: string; + /** !#en Event triggered when game restart + !#zh 调用restart后,触发事件。 */ + EVENT_RESTART: string; + /** Event triggered after game inited, at this point all engine objects and game scripts are loaded */ + EVENT_GAME_INITED: string; + /** Event triggered after engine inited, at this point you will be able to use all engine classes. + It was defined as EVENT_RENDERER_INITED in cocos creator v1.x and renamed in v2.0 */ + EVENT_ENGINE_INITED: string; + /** Web Canvas 2d API as renderer backend */ + RENDER_TYPE_CANVAS: number; + /** WebGL API as renderer backend */ + RENDER_TYPE_WEBGL: number; + /** OpenGL API as renderer backend */ + RENDER_TYPE_OPENGL: number; + /** !#en The outer frame of the game canvas, parent of game container. + !#zh 游戏画布的外框,container 的父容器。 */ + frame: any; + /** !#en The container of game canvas. + !#zh 游戏画布的容器。 */ + container: HTMLDivElement; + /** !#en The canvas of the game. + !#zh 游戏的画布。 */ + canvas: HTMLCanvasElement; + /** !#en The renderer backend of the game. + !#zh 游戏的渲染器类型。 */ + renderType: number; + /** !#en + The current game configuration, including:
+ 1. debugMode
+ "debugMode" possible values :
+ 0 - No message will be printed.
+ 1 - cc.error, cc.assert, cc.warn, cc.log will print in console.
+ 2 - cc.error, cc.assert, cc.warn will print in console.
+ 3 - cc.error, cc.assert will print in console.
+ 4 - cc.error, cc.assert, cc.warn, cc.log will print on canvas, available only on web.
+ 5 - cc.error, cc.assert, cc.warn will print on canvas, available only on web.
+ 6 - cc.error, cc.assert will print on canvas, available only on web.
+ 2. showFPS
+ Left bottom corner fps information will show when "showFPS" equals true, otherwise it will be hide.
+ 3. exposeClassName
+ Expose class name to chrome debug tools, the class intantiate performance is a little bit slower when exposed.
+ 4. frameRate
+ "frameRate" set the wanted frame rate for your game, but the real fps depends on your game implementation and the running environment.
+ 5. id
+ "gameCanvas" sets the id of your canvas element on the web page, it's useful only on web.
+ 6. renderMode
+ "renderMode" sets the renderer type, only useful on web :
+ 0 - Automatically chosen by engine
+ 1 - Forced to use canvas renderer
+ 2 - Forced to use WebGL renderer, but this will be ignored on mobile browsers
+
+ Please DO NOT modify this object directly, it won't have any effect.
+ !#zh + 当前的游戏配置,包括:
+ 1. debugMode(debug 模式,但是在浏览器中这个选项会被忽略)
+ "debugMode" 各种设置选项的意义。
+ 0 - 没有消息被打印出来。
+ 1 - cc.error,cc.assert,cc.warn,cc.log 将打印在 console 中。
+ 2 - cc.error,cc.assert,cc.warn 将打印在 console 中。
+ 3 - cc.error,cc.assert 将打印在 console 中。
+ 4 - cc.error,cc.assert,cc.warn,cc.log 将打印在 canvas 中(仅适用于 web 端)。
+ 5 - cc.error,cc.assert,cc.warn 将打印在 canvas 中(仅适用于 web 端)。
+ 6 - cc.error,cc.assert 将打印在 canvas 中(仅适用于 web 端)。
+ 2. showFPS(显示 FPS)
+ 当 showFPS 为 true 的时候界面的左下角将显示 fps 的信息,否则被隐藏。
+ 3. exposeClassName
+ 暴露类名让 Chrome DevTools 可以识别,如果开启会稍稍降低类的创建过程的性能,但对对象构造没有影响。
+ 4. frameRate (帧率)
+ “frameRate” 设置想要的帧率你的游戏,但真正的FPS取决于你的游戏实现和运行环境。
+ 5. id
+ "gameCanvas" Web 页面上的 Canvas Element ID,仅适用于 web 端。
+ 6. renderMode(渲染模式)
+ “renderMode” 设置渲染器类型,仅适用于 web 端:
+ 0 - 通过引擎自动选择。
+ 1 - 强制使用 canvas 渲染。 + 2 - 强制使用 WebGL 渲染,但是在部分 Android 浏览器中这个选项会被忽略。
+
+ 注意:请不要直接修改这个对象,它不会有任何效果。 */ + config: any; + /** + !#en Callback when the scripts of engine have been load. + !#zh 当引擎完成启动后的回调函数。 + */ + onStart(): void; + /** + !#en Set frame rate of game. + !#zh 设置游戏帧率。 + @param frameRate frameRate + */ + setFrameRate(frameRate: number): void; + /** + !#en Get frame rate set for the game, it doesn't represent the real frame rate. + !#zh 获取设置的游戏帧率(不等同于实际帧率)。 + */ + getFrameRate(): number; + /** + !#en Run the game frame by frame. + !#zh 执行一帧游戏循环。 + */ + step(): void; + /** + !#en Pause the game main loop. This will pause: + game logic execution, rendering process, event manager, background music and all audio effects. + This is different with cc.director.pause which only pause the game logic execution. + !#zh 暂停游戏主循环。包含:游戏逻辑,渲染,事件处理,背景音乐和所有音效。这点和只暂停游戏逻辑的 cc.director.pause 不同。 + */ + pause(): void; + /** + !#en Resume the game from pause. This will resume: + game logic execution, rendering process, event manager, background music and all audio effects. + !#zh 恢复游戏主循环。包含:游戏逻辑,渲染,事件处理,背景音乐和所有音效。 + */ + resume(): void; + /** + !#en Check whether the game is paused. + !#zh 判断游戏是否暂停。 + */ + isPaused(): boolean; + /** + !#en Restart game. + !#zh 重新开始游戏 + */ + restart(): void; + /** + !#en End game, it will close the game window + !#zh 退出游戏 + */ + end(): void; + /** + !#en + Register an callback of a specific event type on the game object. + This type of event should be triggered via `emit`. + !#zh + 注册 game 的特定事件类型回调。这种类型的事件应该被 `emit` 触发。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + */ + on(type: string, callback: T, target?: any, useCapture?: boolean): T; + /** + !#en + Register an callback of a specific event type on the game object, + the callback will remove itself after the first time it is triggered. + !#zh + 注册 game 的特定事件类型回调,回调会在第一时间被触发后删除自身。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + */ + once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void; + /** + !#en Prepare game. + !#zh 准备引擎,请不要直接调用这个函数。 + @param cb cb + */ + prepare(cb: Function): void; + /** + !#en Run game with configuration object and onStart function. + !#zh 运行游戏,并且指定引擎配置和 onStart 的回调。 + @param config Pass configuration object or onStart function + @param onStart function to be executed after game initialized + */ + run(config: any, onStart: Function): void; + /** + !#en + Add a persistent root node to the game, the persistent node won't be destroyed during scene transition.
+ The target node must be placed in the root level of hierarchy, otherwise this API won't have any effect. + !#zh + 声明常驻根节点,该节点不会被在场景切换中被销毁。
+ 目标节点必须位于为层级的根节点,否则无效。 + @param node The node to be made persistent + */ + addPersistRootNode(node: Node): void; + /** + !#en Remove a persistent root node. + !#zh 取消常驻根节点。 + @param node The node to be removed from persistent node list + */ + removePersistRootNode(node: Node): void; + /** + !#en Check whether the node is a persistent root node. + !#zh 检查节点是否是常驻根节点。 + @param node The node to be checked + */ + isPersistRootNode(node: Node): boolean; + } + /** !#en + Class of all entities in Cocos Creator scenes.
+ For events supported by Node, please refer to {{#crossLink "Node.EventType"}}{{/crossLink}} + !#zh + Cocos Creator 场景中的所有节点类。
+ 支持的节点事件,请参阅 {{#crossLink "Node.EventType"}}{{/crossLink}}。 */ + export class Node extends _BaseNode { + /** !#en + Group index of node.
+ Which Group this node belongs to will resolve that this node's collision components can collide with which other collision componentns.
+ !#zh + 节点的分组索引。
+ 节点的分组将关系到节点的碰撞组件可以与哪些碰撞组件相碰撞。
*/ + groupIndex: number; + /** !#en + Group of node.
+ Which Group this node belongs to will resolve that this node's collision components can collide with which other collision componentns.
+ !#zh + 节点的分组。
+ 节点的分组将关系到节点的碰撞组件可以与哪些碰撞组件相碰撞。
*/ + group: string; + /** !#en The position (x, y) of the node in its parent's coordinates. + !#zh 节点在父节点坐标系中的位置(x, y)。 */ + position: Vec3; + /** !#en x axis position of node. + !#zh 节点 X 轴坐标。 */ + x: number; + /** !#en y axis position of node. + !#zh 节点 Y 轴坐标。 */ + y: number; + /** !#en z axis position of node. + !#zh 节点 Z 轴坐标。 */ + z: number; + /** !#en Rotation of node. + !#zh 该节点旋转角度。 */ + rotation: number; + /** !#en + Angle of node, the positive value is anti-clockwise direction. + !#zh + 该节点的旋转角度,正值为逆时针方向。 */ + angle: number; + /** !#en The rotation as Euler angles in degrees, used in 3D node. + !#zh 该节点的欧拉角度,用于 3D 节点。 */ + eulerAngles: Vec3; + /** !#en Rotation on x axis. + !#zh 该节点 X 轴旋转角度。 */ + rotationX: number; + /** !#en Rotation on y axis. + !#zh 该节点 Y 轴旋转角度。 */ + rotationY: number; + /** !#en The local scale relative to the parent. + !#zh 节点相对父节点的缩放。 */ + scale: number; + /** !#en Scale on x axis. + !#zh 节点 X 轴缩放。 */ + scaleX: number; + /** !#en Scale on y axis. + !#zh 节点 Y 轴缩放。 */ + scaleY: number; + /** !#en Scale on z axis. + !#zh 节点 Z 轴缩放。 */ + scaleZ: number; + /** !#en Skew x + !#zh 该节点 X 轴倾斜角度。 */ + skewX: number; + /** !#en Skew y + !#zh 该节点 Y 轴倾斜角度。 */ + skewY: number; + /** !#en Opacity of node, default value is 255. + !#zh 节点透明度,默认值为 255。 */ + opacity: number; + /** !#en Color of node, default value is white: (255, 255, 255). + !#zh 节点颜色。默认为白色,数值为:(255,255,255)。 */ + color: Color; + /** !#en Anchor point's position on x axis. + !#zh 节点 X 轴锚点位置。 */ + anchorX: number; + /** !#en Anchor point's position on y axis. + !#zh 节点 Y 轴锚点位置。 */ + anchorY: number; + /** !#en Width of node. + !#zh 节点宽度。 */ + width: number; + /** !#en Height of node. + !#zh 节点高度。 */ + height: number; + /** !#en zIndex is the 'key' used to sort the node relative to its siblings.
+ The value of zIndex should be in the range between cc.macro.MIN_ZINDEX and cc.macro.MAX_ZINDEX.
+ The Node's parent will sort all its children based on the zIndex value and the arrival order.
+ Nodes with greater zIndex will be sorted after nodes with smaller zIndex.
+ If two nodes have the same zIndex, then the node that was added first to the children's array will be in front of the other node in the array.
+ Node's order in children list will affect its rendering order. Parent is always rendering before all children. + !#zh zIndex 是用来对节点进行排序的关键属性,它决定一个节点在兄弟节点之间的位置。
+ zIndex 的取值应该介于 cc.macro.MIN_ZINDEX 和 cc.macro.MAX_ZINDEX 之间 + 父节点主要根据节点的 zIndex 和添加次序来排序,拥有更高 zIndex 的节点将被排在后面,如果两个节点的 zIndex 一致,先添加的节点会稳定排在另一个节点之前。
+ 节点在 children 中的顺序决定了其渲染顺序。父节点永远在所有子节点之前被渲染 */ + zIndex: number; + /** !#en + Switch 2D/3D node. The 2D nodes will run faster. + !#zh + 切换 2D/3D 节点,2D 节点会有更高的运行效率 */ + is3DNode: boolean; + /** !#en Returns a normalized vector representing the up direction (Y axis) of the node in world space. + !#zh 获取节点正上方(y 轴)面对的方向,返回值为世界坐标系下的归一化向量 */ + up: Vec3; + /** !#en Returns a normalized vector representing the right direction (X axis) of the node in world space. + !#zh 获取节点正右方(x 轴)面对的方向,返回值为世界坐标系下的归一化向量 */ + right: Vec3; + /** !#en Returns a normalized vector representing the forward direction (Z axis) of the node in world space. + !#zh 获取节点正前方(z 轴)面对的方向,返回值为世界坐标系下的归一化向量 */ + forward: Vec3; + /** + + @param name name + */ + constructor(name?: string); + /** + !#en + Register a callback of a specific event type on Node.
+ Use this method to register touch or mouse event permit propagation based on scene graph,
+ These kinds of event are triggered with dispatchEvent, the dispatch process has three steps:
+ 1. Capturing phase: dispatch in capture targets (`_getCapturingTargets`), e.g. parents in node tree, from root to the real target
+ 2. At target phase: dispatch to the listeners of the real target
+ 3. Bubbling phase: dispatch in bubble targets (`_getBubblingTargets`), e.g. parents in node tree, from the real target to root
+ In any moment of the dispatching process, it can be stopped via `event.stopPropagation()` or `event.stopPropagationImmidiate()`.
+ It's the recommended way to register touch/mouse event for Node,
+ please do not use cc.eventManager directly for Node.
+ You can also register custom event and use `emit` to trigger custom event on Node.
+ For such events, there won't be capturing and bubbling phase, your event will be dispatched directly to its listeners registered on the same node.
+ You can also pass event callback parameters with `emit` by passing parameters after `type`. + !#zh + 在节点上注册指定类型的回调函数,也可以设置 target 用于绑定响应函数的 this 对象。
+ 鼠标或触摸事件会被系统调用 dispatchEvent 方法触发,触发的过程包含三个阶段:
+ 1. 捕获阶段:派发事件给捕获目标(通过 `_getCapturingTargets` 获取),比如,节点树中注册了捕获阶段的父节点,从根节点开始派发直到目标节点。
+ 2. 目标阶段:派发给目标节点的监听器。
+ 3. 冒泡阶段:派发事件给冒泡目标(通过 `_getBubblingTargets` 获取),比如,节点树中注册了冒泡阶段的父节点,从目标节点开始派发直到根节点。
+ 同时您可以将事件派发到父节点或者通过调用 stopPropagation 拦截它。
+ 推荐使用这种方式来监听节点上的触摸或鼠标事件,请不要在节点上直接使用 cc.eventManager。
+ 你也可以注册自定义事件到节点上,并通过 emit 方法触发此类事件,对于这类事件,不会发生捕获冒泡阶段,只会直接派发给注册在该节点上的监听器
+ 你可以通过在 emit 方法调用时在 type 之后传递额外的参数作为事件回调的参数列表 + @param type A string representing the event type to listen for.
See {{#crossLink "Node/EventTyupe/POSITION_CHANGED"}}Node Events{{/crossLink}} for all builtin events. + @param callback The callback that will be invoked when the event is dispatched. The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + @param useCapture When set to true, the listener will be triggered at capturing phase which is ahead of the final target emit, otherwise it will be triggered during bubbling phase. + + @example + ```js + this.node.on(cc.Node.EventType.TOUCH_START, this.memberFunction, this); // if "this" is component and the "memberFunction" declared in CCClass. + node.on(cc.Node.EventType.TOUCH_START, callback, this); + node.on(cc.Node.EventType.TOUCH_MOVE, callback, this); + node.on(cc.Node.EventType.TOUCH_END, callback, this); + node.on(cc.Node.EventType.TOUCH_CANCEL, callback, this); + node.on(cc.Node.EventType.ANCHOR_CHANGED, callback); + node.on(cc.Node.EventType.COLOR_CHANGED, callback); + ``` + */ + on(type: string, callback: T, target?: any, useCapture?: boolean): T; + /** + !#en + Register an callback of a specific event type on the Node, + the callback will remove itself after the first time it is triggered. + !#zh + 注册节点的特定事件类型回调,回调会在第一时间被触发后删除自身。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + node.once(cc.Node.EventType.ANCHOR_CHANGED, callback); + ``` + */ + once(type: string, callback: T, target?: any, useCapture?: boolean): T; + /** + !#en + Removes the callback previously registered with the same type, callback, target and or useCapture. + This method is merely an alias to removeEventListener. + !#zh 删除之前与同类型,回调,目标或 useCapture 注册的回调。 + @param type A string representing the event type being removed. + @param callback The callback to remove. + @param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed + @param useCapture When set to true, the listener will be triggered at capturing phase which is ahead of the final target emit, otherwise it will be triggered during bubbling phase. + + @example + ```js + this.node.off(cc.Node.EventType.TOUCH_START, this.memberFunction, this); + node.off(cc.Node.EventType.TOUCH_START, callback, this.node); + node.off(cc.Node.EventType.ANCHOR_CHANGED, callback, this); + ``` + */ + off(type: string, callback?: Function, target?: any, useCapture?: boolean): void; + /** + !#en Removes all callbacks previously registered with the same target. + !#zh 移除目标上的所有注册事件。 + @param target The target to be searched for all related callbacks + + @example + ```js + node.targetOff(target); + ``` + */ + targetOff(target: any): void; + /** + !#en Checks whether the EventTarget object has any callback registered for a specific type of event. + !#zh 检查事件目标对象是否有为特定类型的事件注册的回调。 + @param type The type of event. + */ + hasEventListener(type: string): boolean; + /** + !#en + Trigger an event directly with the event name and necessary arguments. + !#zh + 通过事件名发送自定义事件 + @param type event type + @param arg1 First argument in callback + @param arg2 Second argument in callback + @param arg3 Third argument in callback + @param arg4 Fourth argument in callback + @param arg5 Fifth argument in callback + + @example + ```js + eventTarget.emit('fire', event); + eventTarget.emit('fire', message, emitter); + ``` + */ + emit(type: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): void; + /** + !#en + Dispatches an event into the event flow. + The event target is the EventTarget object upon which the dispatchEvent() method is called. + !#zh 分发事件到事件流中。 + @param event The Event object that is dispatched into the event flow + */ + dispatchEvent(event: Event): void; + /** + !#en Pause node related system events registered with the current Node. Node system events includes touch and mouse events. + If recursive is set to true, then this API will pause the node system events for the node and all nodes in its sub node tree. + Reference: http://docs.cocos2d-x.org/editors_and_tools/creator-chapters/scripting/internal-events/ + !#zh 暂停当前节点上注册的所有节点系统事件,节点系统事件包含触摸和鼠标事件。 + 如果传递 recursive 为 true,那么这个 API 将暂停本节点和它的子树上所有节点的节点系统事件。 + 参考:https://www.cocos.com/docs/creator/scripting/internal-events.html + @param recursive Whether to pause node system events on the sub node tree. + + @example + ```js + node.pauseSystemEvents(true); + ``` + */ + pauseSystemEvents(recursive: boolean): void; + /** + !#en Resume node related system events registered with the current Node. Node system events includes touch and mouse events. + If recursive is set to true, then this API will resume the node system events for the node and all nodes in its sub node tree. + Reference: http://docs.cocos2d-x.org/editors_and_tools/creator-chapters/scripting/internal-events/ + !#zh 恢复当前节点上注册的所有节点系统事件,节点系统事件包含触摸和鼠标事件。 + 如果传递 recursive 为 true,那么这个 API 将恢复本节点和它的子树上所有节点的节点系统事件。 + 参考:https://www.cocos.com/docs/creator/scripting/internal-events.html + @param recursive Whether to resume node system events on the sub node tree. + + @example + ```js + node.resumeSystemEvents(true); + ``` + */ + resumeSystemEvents(recursive: boolean): void; + /** + !#en + Executes an action, and returns the action that is executed.
+ The node becomes the action's target. Refer to cc.Action's getTarget()
+ Calling runAction while the node is not active won't have any effect.
+ Note:You shouldn't modify the action after runAction, that won't take any effect.
+ if you want to modify, when you define action plus. + !#zh + 执行并返回该执行的动作。该节点将会变成动作的目标。
+ 调用 runAction 时,节点自身处于不激活状态将不会有任何效果。
+ 注意:你不应该修改 runAction 后的动作,将无法发挥作用,如果想进行修改,请在定义 action 时加入。 + @param action action + + @example + ```js + var action = cc.scaleTo(0.2, 1, 0.6); + node.runAction(action); + node.runAction(action).repeatForever(); // fail + node.runAction(action.repeatForever()); // right + ``` + */ + runAction(action: Action): Action; + /** + !#en Pause all actions running on the current node. Equals to `cc.director.getActionManager().pauseTarget(node)`. + !#zh 暂停本节点上所有正在运行的动作。和 `cc.director.getActionManager().pauseTarget(node);` 等价。 + + @example + ```js + node.pauseAllActions(); + ``` + */ + pauseAllActions(): void; + /** + !#en Resume all paused actions on the current node. Equals to `cc.director.getActionManager().resumeTarget(node)`. + !#zh 恢复运行本节点上所有暂停的动作。和 `cc.director.getActionManager().resumeTarget(node);` 等价。 + + @example + ```js + node.resumeAllActions(); + ``` + */ + resumeAllActions(): void; + /** + !#en Stops and removes all actions from the running action list . + !#zh 停止并且移除所有正在运行的动作列表。 + + @example + ```js + node.stopAllActions(); + ``` + */ + stopAllActions(): void; + /** + !#en Stops and removes an action from the running action list. + !#zh 停止并移除指定的动作。 + @param action An action object to be removed. + + @example + ```js + var action = cc.scaleTo(0.2, 1, 0.6); + node.stopAction(action); + ``` + */ + stopAction(action: Action): void; + /** + !#en Removes an action from the running action list by its tag. + !#zh 停止并且移除指定标签的动作。 + @param tag A tag that indicates the action to be removed. + + @example + ```js + node.stopActionByTag(1); + ``` + */ + stopActionByTag(tag: number): void; + /** + !#en Returns an action from the running action list by its tag. + !#zh 通过标签获取指定动作。 + @param tag tag + + @example + ```js + var action = node.getActionByTag(1); + ``` + */ + getActionByTag(tag: number): Action; + /** + !#en + Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays).
+ Composable actions are counted as 1 action. Example:
+ If you are running 1 Sequence of 7 actions, it will return 1.
+ If you are running 7 Sequences of 2 actions, it will return 7.

+ !#zh + 获取运行着的动作加上正在调度运行的动作的总数。
+ 例如:
+ - 如果你正在运行 7 个动作中的 1 个 Sequence,它将返回 1。
+ - 如果你正在运行 2 个动作中的 7 个 Sequence,它将返回 7。
+ + @example + ```js + var count = node.getNumberOfRunningActions(); + cc.log("Running Action Count: " + count); + ``` + */ + getNumberOfRunningActions(): number; + /** + !#en + Returns a copy of the position (x, y, z) of the node in its parent's coordinates. + You can pass a cc.Vec2 or cc.Vec3 as the argument to receive the return values. + !#zh + 获取节点在父节点坐标系中的位置(x, y, z)。 + 你可以传一个 cc.Vec2 或者 cc.Vec3 作为参数来接收返回值。 + @param out The return value to receive position + + @example + ```js + cc.log("Node Position: " + node.getPosition()); + ``` + */ + getPosition(out?: Vec2|Vec3): Vec2; + /** + !#en + Sets the position (x, y, z) of the node in its parent's coordinates.
+ Usually we use cc.v2(x, y) to compose cc.Vec2 object, in this case, position.z will become 0.
+ and passing two numbers (x, y) is more efficient than passing cc.Vec2 object, in this case, position.z will remain unchanged. + For 3D node we can use cc.v3(x, y, z) to compose cc.Vec3 object,
+ and passing three numbers (x, y, z) is more efficient than passing cc.Vec3 object. + !#zh + 设置节点在父节点坐标系中的位置。
+ 可以通过下面的方式设置坐标点:
+ 1. 传入 2 个数值 x, y (此时不会改变 position.z 的值)。
+ 2. 传入 cc.v2(x, y) 类型为 cc.Vec2 的对象 (此时 position.z 的值将被设置为0)。 + 3. 对于 3D 节点可以传入 3 个数值 x, y, z。
+ 4. 对于 3D 节点可以传入 cc.v3(x, y, z) 类型为 cc.Vec3 的对象。 + @param x X coordinate for position or the position object + @param y Y coordinate for position + @param z Z coordinate for position + */ + setPosition(x: Vec2|Vec3|number, y?: number, z?: number): void; + /** + !#en + Returns the scale factor of the node. + Need pass a cc.Vec2 or cc.Vec3 as the argument to receive the return values. + !#zh 获取节点的缩放,需要传一个 cc.Vec2 或者 cc.Vec3 作为参数来接收返回值。 + @param out out + + @example + ```js + cc.log("Node Scale: " + node.getScale(cc.v3())); + ``` + */ + getScale(out: Vec2|Vec3): Vec2; + /** + !#en + Sets the scale of axis in local coordinates of the node. + You can operate 2 axis in 2D node, and 3 axis in 3D node. + When only (x, y) is passed, the value of scale.z will not be changed. + When a Vec2 is passed in, the value of scale.z will be set to 0. + !#zh + 设置节点在本地坐标系中坐标轴上的缩放比例。 + 2D 节点可以操作两个坐标轴,而 3D 节点可以操作三个坐标轴。 + 当只传入 (x, y) 时,scale.z 的值不会被改变。 + 当只传入 Vec2 对象时,scale.z 的值将被设置为0。 + @param x scaleX or scale object + @param y y + @param z z + + @example + ```js + node.setScale(cc.v2(2, 2)); // Notice: scaleZ will be 0 + node.setScale(cc.v3(2, 2, 2)); // for 3D node + node.setScale(2); + ``` + */ + setScale(x: number|Vec2|Vec3, y?: number, z?: number): void; + /** + !#en + Get rotation of node (in quaternion). + Need pass a cc.Quat as the argument to receive the return values. + !#zh + 获取该节点的 quaternion 旋转角度,需要传一个 cc.Quat 作为参数来接收返回值。 + @param out out + */ + getRotation(out: Quat): Quat; + /** + !#en Set rotation of node (in quaternion). + !#zh 设置该节点的 quaternion 旋转角度。 + @param quat Quaternion object represents the rotation or the x value of quaternion + @param y y value of quternion + @param z z value of quternion + @param w w value of quternion + */ + setRotation(quat: Quat|number, y?: number, z?: number, w?: number): void; + /** + !#en + Returns a copy the untransformed size of the node.
+ The contentSize remains the same no matter the node is scaled or rotated.
+ All nodes has a size. Layer and Scene has the same size of the screen by default.
+ !#zh 获取节点自身大小,不受该节点是否被缩放或者旋转的影响。 + + @example + ```js + cc.log("Content Size: " + node.getContentSize()); + ``` + */ + getContentSize(): Size; + /** + !#en + Sets the untransformed size of the node.
+ The contentSize remains the same no matter the node is scaled or rotated.
+ All nodes has a size. Layer and Scene has the same size of the screen. + !#zh 设置节点原始大小,不受该节点是否被缩放或者旋转的影响。 + @param size The untransformed size of the node or The untransformed size's width of the node. + @param height The untransformed size's height of the node. + + @example + ```js + node.setContentSize(cc.size(100, 100)); + node.setContentSize(100, 100); + ``` + */ + setContentSize(size: Size|number, height?: number): void; + /** + !#en + Returns a copy of the anchor point.
+ Anchor point is the point around which all transformations and positioning manipulations take place.
+ It's like a pin in the node where it is "attached" to its parent.
+ The anchorPoint is normalized, like a percentage. (0,0) means the bottom-left corner and (1,1) means the top-right corner.
+ But you can use values higher than (1,1) and lower than (0,0) too.
+ The default anchor point is (0.5,0.5), so it starts at the center of the node. + !#zh + 获取节点锚点,用百分比表示。
+ 锚点应用于所有变换和坐标点的操作,它就像在节点上连接其父节点的大头针。
+ 锚点是标准化的,就像百分比一样。(0,0) 表示左下角,(1,1) 表示右上角。
+ 但是你可以使用比(1,1)更高的值或者比(0,0)更低的值。
+ 默认的锚点是(0.5,0.5),因此它开始于节点的中心位置。
+ 注意:Creator 中的锚点仅用于定位所在的节点,子节点的定位不受影响。 + + @example + ```js + cc.log("Node AnchorPoint: " + node.getAnchorPoint()); + ``` + */ + getAnchorPoint(): Vec2; + /** + !#en + Sets the anchor point in percent.
+ anchor point is the point around which all transformations and positioning manipulations take place.
+ It's like a pin in the node where it is "attached" to its parent.
+ The anchorPoint is normalized, like a percentage. (0,0) means the bottom-left corner and (1,1) means the top-right corner.
+ But you can use values higher than (1,1) and lower than (0,0) too.
+ The default anchor point is (0.5,0.5), so it starts at the center of the node. + !#zh + 设置锚点的百分比。
+ 锚点应用于所有变换和坐标点的操作,它就像在节点上连接其父节点的大头针。
+ 锚点是标准化的,就像百分比一样。(0,0) 表示左下角,(1,1) 表示右上角。
+ 但是你可以使用比(1,1)更高的值或者比(0,0)更低的值。
+ 默认的锚点是(0.5,0.5),因此它开始于节点的中心位置。
+ 注意:Creator 中的锚点仅用于定位所在的节点,子节点的定位不受影响。 + @param point The anchor point of node or The x axis anchor of node. + @param y The y axis anchor of node. + + @example + ```js + node.setAnchorPoint(cc.v2(1, 1)); + node.setAnchorPoint(1, 1); + ``` + */ + setAnchorPoint(point: Vec2|number, y?: number): void; + /** + !#en Set rotation by lookAt target point, normally used by Camera Node + !#zh 通过观察目标来设置 rotation,一般用于 Camera Node 上 + @param pos pos + @param up default is (0,1,0) + */ + lookAt(pos: Vec3, up?: Vec3): void; + /** + !#en + Get the local transform matrix (4x4), based on parent node coordinates + !#zh 返回局部空间坐标系的矩阵,基于父节点坐标系。 + @param out The matrix object to be filled with data + + @example + ```js + let mat4 = cc.mat4(); + node.getLocalMatrix(mat4); + ``` + */ + getLocalMatrix(out: Mat4): Mat4; + /** + !#en + Get the world transform matrix (4x4) + !#zh 返回世界空间坐标系的矩阵。 + @param out The matrix object to be filled with data + + @example + ```js + let mat4 = cc.mat4(); + node.getWorldMatrix(mat4); + ``` + */ + getWorldMatrix(out: Mat4): Mat4; + /** + !#en + Converts a Point to node (local) space coordinates. + !#zh + 将一个点转换到节点 (局部) 空间坐标系。 + @param worldPoint worldPoint + @param out out + + @example + ```js + var newVec2 = node.convertToNodeSpaceAR(cc.v2(100, 100)); + var newVec3 = node.convertToNodeSpaceAR(cc.v3(100, 100, 100)); + ``` + */ + convertToNodeSpaceAR(worldPoint: T, out?: T): T; + /** + !#en + Converts a Point in node coordinates to world space coordinates. + !#zh + 将节点坐标系下的一个点转换到世界空间坐标系。 + @param nodePoint nodePoint + @param out out + + @example + ```js + var newVec2 = node.convertToWorldSpaceAR(cc.v2(100, 100)); + var newVec3 = node.convertToWorldSpaceAR(cc.v3(100, 100, 100)); + ``` + */ + convertToWorldSpaceAR(nodePoint: T, out?: T): T; + /** + !#en Converts a Point to node (local) space coordinates then add the anchor point position. + So the return position will be related to the left bottom corner of the node's bounding box. + This equals to the API behavior of cocos2d-x, you probably want to use convertToNodeSpaceAR instead + !#zh 将一个点转换到节点 (局部) 坐标系,并加上锚点的坐标。
+ 也就是说返回的坐标是相对于节点包围盒左下角的坐标。
+ 这个 API 的设计是为了和 cocos2d-x 中行为一致,更多情况下你可能需要使用 convertToNodeSpaceAR。 + @param worldPoint worldPoint + + @example + ```js + var newVec2 = node.convertToNodeSpace(cc.v2(100, 100)); + ``` + */ + convertToNodeSpace(worldPoint: Vec2): Vec2; + /** + !#en Converts a Point related to the left bottom corner of the node's bounding box to world space coordinates. + This equals to the API behavior of cocos2d-x, you probably want to use convertToWorldSpaceAR instead + !#zh 将一个相对于节点左下角的坐标位置转换到世界空间坐标系。 + 这个 API 的设计是为了和 cocos2d-x 中行为一致,更多情况下你可能需要使用 convertToWorldSpaceAR + @param nodePoint nodePoint + + @example + ```js + var newVec2 = node.convertToWorldSpace(cc.v2(100, 100)); + ``` + */ + convertToWorldSpace(nodePoint: Vec2): Vec2; + /** + !#en + Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.
+ The matrix is in Pixels. + !#zh 返回这个将节点(局部)的空间坐标系转换成父节点的空间坐标系的矩阵。这个矩阵以像素为单位。 + @param out The affine transform object to be filled with data + + @example + ```js + let affineTransform = cc.AffineTransform.create(); + node.getNodeToParentTransform(affineTransform); + ``` + */ + getNodeToParentTransform(out?: AffineTransform): AffineTransform; + /** + !#en + Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates.
+ The matrix is in Pixels.
+ This method is AR (Anchor Relative). + !#zh + 返回这个将节点(局部)的空间坐标系转换成父节点的空间坐标系的矩阵。
+ 这个矩阵以像素为单位。
+ 该方法基于节点坐标。 + @param out The affine transform object to be filled with data + + @example + ```js + let affineTransform = cc.AffineTransform.create(); + node.getNodeToParentTransformAR(affineTransform); + ``` + */ + getNodeToParentTransformAR(out?: AffineTransform): AffineTransform; + /** + !#en Returns the world affine transform matrix. The matrix is in Pixels. + !#zh 返回节点到世界坐标系的仿射变换矩阵。矩阵单位是像素。 + @param out The affine transform object to be filled with data + + @example + ```js + let affineTransform = cc.AffineTransform.create(); + node.getNodeToWorldTransform(affineTransform); + ``` + */ + getNodeToWorldTransform(out?: AffineTransform): AffineTransform; + /** + !#en + Returns the world affine transform matrix. The matrix is in Pixels.
+ This method is AR (Anchor Relative). + !#zh + 返回节点到世界坐标仿射变换矩阵。矩阵单位是像素。
+ 该方法基于节点坐标。 + @param out The affine transform object to be filled with data + + @example + ```js + let affineTransform = cc.AffineTransform.create(); + node.getNodeToWorldTransformAR(affineTransform); + ``` + */ + getNodeToWorldTransformAR(out?: AffineTransform): AffineTransform; + /** + !#en + Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates.
+ The matrix is in Pixels. The returned transform is readonly and cannot be changed. + !#zh + 返回将父节点的坐标系转换成节点(局部)的空间坐标系的矩阵。
+ 该矩阵以像素为单位。返回的矩阵是只读的,不能更改。 + @param out The affine transform object to be filled with data + + @example + ```js + let affineTransform = cc.AffineTransform.create(); + node.getParentToNodeTransform(affineTransform); + ``` + */ + getParentToNodeTransform(out?: AffineTransform): AffineTransform; + /** + !#en Returns the inverse world affine transform matrix. The matrix is in Pixels. + !#en 返回世界坐标系到节点坐标系的逆矩阵。 + @param out The affine transform object to be filled with data + + @example + ```js + let affineTransform = cc.AffineTransform.create(); + node.getWorldToNodeTransform(affineTransform); + ``` + */ + getWorldToNodeTransform(out?: AffineTransform): AffineTransform; + /** + !#en convenience methods which take a cc.Touch instead of cc.Vec2. + !#zh 将触摸点转换成本地坐标系中位置。 + @param touch The touch object + + @example + ```js + var newVec2 = node.convertTouchToNodeSpace(touch); + ``` + */ + convertTouchToNodeSpace(touch: Touch): Vec2; + /** + !#en converts a cc.Touch (world coordinates) into a local coordinate. This method is AR (Anchor Relative). + !#zh 转换一个 cc.Touch(世界坐标)到一个局部坐标,该方法基于节点坐标。 + @param touch The touch object + + @example + ```js + var newVec2 = node.convertTouchToNodeSpaceAR(touch); + ``` + */ + convertTouchToNodeSpaceAR(touch: Touch): Vec2; + /** + !#en + Returns a "local" axis aligned bounding box of the node.
+ The returned box is relative only to its parent. + !#zh 返回父节坐标系下的轴向对齐的包围盒。 + + @example + ```js + var boundingBox = node.getBoundingBox(); + ``` + */ + getBoundingBox(): Rect; + /** + !#en + Returns a "world" axis aligned bounding box of the node.
+ The bounding box contains self and active children's world bounding box. + !#zh + 返回节点在世界坐标系下的对齐轴向的包围盒(AABB)。
+ 该边框包含自身和已激活的子节点的世界边框。 + + @example + ```js + var newRect = node.getBoundingBoxToWorld(); + ``` + */ + getBoundingBoxToWorld(): Rect; + /** + !#en + Adds a child to the node with z order and name. + !#zh + 添加子节点,并且可以修改该节点的 局部 Z 顺序和名字。 + @param child A child node + @param zIndex Z order for drawing priority. Please refer to zIndex property + @param name A name to identify the node easily. Please refer to name property + + @example + ```js + node.addChild(newNode, 1, "node"); + ``` + */ + addChild(child: Node, zIndex?: number, name?: string): void; + /** + !#en Stops all running actions and schedulers. + !#zh 停止所有正在播放的动作和计时器。 + + @example + ```js + node.cleanup(); + ``` + */ + cleanup(): void; + /** + !#en Sorts the children array depends on children's zIndex and arrivalOrder, + normally you won't need to invoke this function. + !#zh 根据子节点的 zIndex 和 arrivalOrder 进行排序,正常情况下开发者不需要手动调用这个函数。 + */ + sortAllChildren(): void; + /** + !#en + Returns the displayed opacity of Node, + the difference between displayed opacity and opacity is that displayed opacity is calculated based on opacity and parent node's opacity when cascade opacity enabled. + !#zh + 获取节点显示透明度, + 显示透明度和透明度之间的不同之处在于当启用级连透明度时, + 显示透明度是基于自身透明度和父节点透明度计算的。 + */ + getDisplayedOpacity(): number; + /** + !#en + Returns the displayed color of Node, + the difference between displayed color and color is that displayed color is calculated based on color and parent node's color when cascade color enabled. + !#zh + 获取节点的显示颜色, + 显示颜色和颜色之间的不同之处在于当启用级连颜色时, + 显示颜色是基于自身颜色和父节点颜色计算的。 + */ + getDisplayedColor(): Color; + /** !#en Cascade opacity is removed from v2.0 + Indicate whether node's opacity value affect its child nodes, default value is true. + !#zh 透明度级联功能从 v2.0 开始已移除 + 节点的不透明度值是否影响其子节点,默认值为 true。 */ + cascadeOpacity: boolean; + /** + !#en Cascade opacity is removed from v2.0 + Returns whether node's opacity value affect its child nodes. + !#zh 透明度级联功能从 v2.0 开始已移除 + 返回节点的不透明度值是否影响其子节点。 + */ + isCascadeOpacityEnabled(): boolean; + /** + !#en Cascade opacity is removed from v2.0 + Enable or disable cascade opacity, if cascade enabled, child nodes' opacity will be the multiplication of parent opacity and its own opacity. + !#zh 透明度级联功能从 v2.0 开始已移除 + 启用或禁用级连不透明度,如果级连启用,子节点的不透明度将是父不透明度乘上它自己的不透明度。 + @param cascadeOpacityEnabled cascadeOpacityEnabled + */ + setCascadeOpacityEnabled(cascadeOpacityEnabled: boolean): void; + /** + !#en Opacity modify RGB have been removed since v2.0 + Set whether color should be changed with the opacity value, + useless in ccsg.Node, but this function is override in some class to have such behavior. + !#zh 透明度影响颜色配置已经被废弃 + 设置更改透明度时是否修改RGB值, + @param opacityValue opacityValue + */ + setOpacityModifyRGB(opacityValue: boolean): void; + /** + !#en Opacity modify RGB have been removed since v2.0 + Get whether color should be changed with the opacity value. + !#zh 透明度影响颜色配置已经被废弃 + 获取更改透明度时是否修改RGB值。 + */ + isOpacityModifyRGB(): boolean; + } + /** !#en + Class of private entities in Cocos Creator scenes.
+ The PrivateNode is hidden in editor, and completely transparent to users.
+ It's normally used as Node's private content created by components in parent node.
+ So in theory private nodes are not children, they are part of the parent node.
+ Private node have two important characteristics:
+ 1. It has the minimum z index and cannot be modified, because they can't be displayed over real children.
+ 2. The positioning of private nodes is also special, they will consider the left bottom corner of the parent node's bounding box as the origin of local coordinates.
+ In this way, they can be easily kept inside the bounding box.
+ Currently, it's used by RichText component and TileMap component. + !#zh + Cocos Creator 场景中的私有节点类。
+ 私有节点在编辑器中不可见,对用户透明。
+ 通常私有节点是被一些特殊的组件创建出来作为父节点的一部分而存在的,理论上来说,它们不是子节点,而是父节点的组成部分。
+ 私有节点有两个非常重要的特性:
+ 1. 它有着最小的渲染排序的 Z 轴深度,并且无法被更改,因为它们不能被显示在其他正常子节点之上。
+ 2. 它的定位也是特殊的,对于私有节点来说,父节点包围盒的左下角是它的局部坐标系原点,这个原点相当于父节点的位置减去它锚点的偏移。这样私有节点可以比较容易被控制在包围盒之中。
+ 目前在引擎中,RichText 和 TileMap 都有可能生成私有节点。 */ + export class PrivateNode extends Node { + /** + + @param name name + */ + constructor(name?: string); + } + /** !#en + cc.Scene is a subclass of cc.Node that is used only as an abstract concept.
+ cc.Scene and cc.Node are almost identical with the difference that users can not modify cc.Scene manually. + !#zh + cc.Scene 是 cc.Node 的子类,仅作为一个抽象的概念。
+ cc.Scene 和 cc.Node 有点不同,用户不应直接修改 cc.Scene。 */ + export class Scene extends Node { + /** !#en Indicates whether all (directly or indirectly) static referenced assets of this scene are releasable by default after scene unloading. + !#zh 指示该场景中直接或间接静态引用到的所有资源是否默认在场景切换后自动释放。 */ + autoReleaseAssets: boolean; + } + /** !#en + Scheduler is responsible of triggering the scheduled callbacks.
+ You should not use NSTimer. Instead use this class.
+
+ There are 2 different types of callbacks (selectors):
+ - update callback: the 'update' callback will be called every frame. You can customize the priority.
+ - custom callback: A custom callback will be called every frame, or with a custom interval of time
+
+ The 'custom selectors' should be avoided when possible. It is faster, + and consumes less memory to use the 'update callback'. * + !#zh + Scheduler 是负责触发回调函数的类。
+ 通常情况下,建议使用 cc.director.getScheduler() 来获取系统定时器。
+ 有两种不同类型的定时器:
+ - update 定时器:每一帧都会触发。您可以自定义优先级。
+ - 自定义定时器:自定义定时器可以每一帧或者自定义的时间间隔触发。
+ 如果希望每帧都触发,应该使用 update 定时器,使用 update 定时器更快,而且消耗更少的内存。 */ + export class Scheduler { + /** + !#en This method should be called for any target which needs to schedule tasks, and this method should be called before any scheduler API usage. + This method will add a `_id` property if it doesn't exist. + !#zh 任何需要用 Scheduler 管理任务的对象主体都应该调用这个方法,并且应该在调用任何 Scheduler API 之前调用这个方法。 + 这个方法会给对象添加一个 `_id` 属性,如果这个属性不存在的话。 + @param target target + */ + enableForTarget(target: any): void; + /** + !#en + Modifies the time of all scheduled callbacks.
+ You can use this property to create a 'slow motion' or 'fast forward' effect.
+ Default is 1.0. To create a 'slow motion' effect, use values below 1.0.
+ To create a 'fast forward' effect, use values higher than 1.0.
+ Note:It will affect EVERY scheduled selector / action. + !#zh + 设置时间间隔的缩放比例。
+ 您可以使用这个方法来创建一个 “slow motion(慢动作)” 或 “fast forward(快进)” 的效果。
+ 默认是 1.0。要创建一个 “slow motion(慢动作)” 效果,使用值低于 1.0。
+ 要使用 “fast forward(快进)” 效果,使用值大于 1.0。
+ 注意:它影响该 Scheduler 下管理的所有定时器。 + @param timeScale timeScale + */ + setTimeScale(timeScale: number): void; + /** + !#en Returns time scale of scheduler. + !#zh 获取时间间隔的缩放比例。 + */ + getTimeScale(): number; + /** + !#en 'update' the scheduler. (You should NEVER call this method, unless you know what you are doing.) + !#zh update 调度函数。(不应该直接调用这个方法,除非完全了解这么做的结果) + @param dt delta time + */ + update(dt: number): void; + /** + !#en +

+ The scheduled method will be called every 'interval' seconds.
+ If paused is YES, then it won't be called until it is resumed.
+ If 'interval' is 0, it will be called every frame, but if so, it recommended to use 'scheduleUpdateForTarget:' instead.
+ If the callback function is already scheduled, then only the interval parameter will be updated without re-scheduling it again.
+ repeat let the action be repeated repeat + 1 times, use cc.macro.REPEAT_FOREVER to let the action run continuously
+ delay is the amount of time the action will wait before it'll start
+

+ !#zh + 指定回调函数,调用对象等信息来添加一个新的定时器。
+ 如果 paused 值为 true,那么直到 resume 被调用才开始计时。
+ 当时间间隔达到指定值时,设置的回调函数将会被调用。
+ 如果 interval 值为 0,那么回调函数每一帧都会被调用,但如果是这样, + 建议使用 scheduleUpdateForTarget 代替。
+ 如果回调函数已经被定时器使用,那么只会更新之前定时器的时间间隔参数,不会设置新的定时器。
+ repeat 值可以让定时器触发 repeat + 1 次,使用 cc.macro.REPEAT_FOREVER + 可以让定时器一直循环触发。
+ delay 值指定延迟时间,定时器会在延迟指定的时间之后开始计时。 + @param callback callback + @param target target + @param interval interval + @param repeat repeat + @param delay delay + @param paused paused + + @example + ```js + //register a schedule to scheduler + cc.director.getScheduler().schedule(callback, this, interval, !this._isRunning); + + ``` + */ + schedule(callback: Function, target: any, interval: number, repeat: number, delay: number, paused?: boolean): void; + schedule(callback: Function, target: any, interval: number, paused?: boolean): void; + /** + !#en + Schedules the update callback for a given target, + During every frame after schedule started, the "update" function of target will be invoked. + !#zh + 使用指定的优先级为指定的对象设置 update 定时器。 + update 定时器每一帧都会被触发,触发时自动调用指定对象的 "update" 函数。 + 优先级的值越低,定时器被触发的越早。 + @param target target + @param priority priority + @param paused paused + */ + scheduleUpdate(target: any, priority: number, paused: boolean): void; + /** + !#en + Unschedules a callback for a callback and a given target. + If you want to unschedule the "update", use `unscheduleUpdate()` + !#zh + 取消指定对象定时器。 + 如果需要取消 update 定时器,请使用 unscheduleUpdate()。 + @param callback The callback to be unscheduled + @param target The target bound to the callback. + */ + unschedule(callback: Function, target: any): void; + /** + !#en Unschedules the update callback for a given target. + !#zh 取消指定对象的 update 定时器。 + @param target The target to be unscheduled. + */ + unscheduleUpdate(target: any): void; + /** + !#en + Unschedules all scheduled callbacks for a given target. + This also includes the "update" callback. + !#zh 取消指定对象的所有定时器,包括 update 定时器。 + @param target The target to be unscheduled. + */ + unscheduleAllForTarget(target: any): void; + /** + !#en + Unschedules all scheduled callbacks from all targets including the system callbacks.
+ You should NEVER call this method, unless you know what you are doing. + !#zh + 取消所有对象的所有定时器,包括系统定时器。
+ 不要调用此函数,除非你确定你在做什么。 + */ + unscheduleAll(): void; + /** + !#en + Unschedules all callbacks from all targets with a minimum priority.
+ You should only call this with `PRIORITY_NON_SYSTEM_MIN` or higher. + !#zh + 取消所有优先级的值大于指定优先级的定时器。
+ 你应该只取消优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。 + @param minPriority The minimum priority of selector to be unscheduled. Which means, all selectors which + priority is higher than minPriority will be unscheduled. + */ + unscheduleAllWithMinPriority(minPriority: number): void; + /** + !#en Checks whether a callback for a given target is scheduled. + !#zh 检查指定的回调函数和回调对象组合是否存在定时器。 + @param callback The callback to check. + @param target The target of the callback. + */ + isScheduled(callback: Function, target: any): boolean; + /** + !#en + Pause all selectors from all targets.
+ You should NEVER call this method, unless you know what you are doing. + !#zh + 暂停所有对象的所有定时器。
+ 不要调用这个方法,除非你知道你正在做什么。 + */ + pauseAllTargets(): void; + /** + !#en + Pause all selectors from all targets with a minimum priority.
+ You should only call this with kCCPriorityNonSystemMin or higher. + !#zh + 暂停所有优先级的值大于指定优先级的定时器。
+ 你应该只暂停优先级的值大于 PRIORITY_NON_SYSTEM_MIN 的定时器。 + @param minPriority minPriority + */ + pauseAllTargetsWithMinPriority(minPriority: number): void; + /** + !#en + Resume selectors on a set of targets.
+ This can be useful for undoing a call to pauseAllCallbacks. + !#zh + 恢复指定数组中所有对象的定时器。
+ 这个函数是 pauseAllCallbacks 的逆操作。 + @param targetsToResume targetsToResume + */ + resumeTargets(targetsToResume: any[]): void; + /** + !#en + Pauses the target.
+ All scheduled selectors/update for a given target won't be 'ticked' until the target is resumed.
+ If the target is not present, nothing happens. + !#zh + 暂停指定对象的定时器。
+ 指定对象的所有定时器都会被暂停。
+ 如果指定的对象没有定时器,什么也不会发生。 + @param target target + */ + pauseTarget(target: any): void; + /** + !#en + Resumes the target.
+ The 'target' will be unpaused, so all schedule selectors/update will be 'ticked' again.
+ If the target is not present, nothing happens. + !#zh + 恢复指定对象的所有定时器。
+ 指定对象的所有定时器将继续工作。
+ 如果指定的对象没有定时器,什么也不会发生。 + @param target target + */ + resumeTarget(target: any): void; + /** + !#en Returns whether or not the target is paused. + !#zh 返回指定对象的定时器是否暂停了。 + @param target target + */ + isTargetPaused(target: any): boolean; + /** !#en Priority level reserved for system services. + !#zh 系统服务的优先级。 */ + static PRIORITY_SYSTEM: number; + /** !#en Minimum priority level for user scheduling. + !#zh 用户调度最低优先级。 */ + static PRIORITY_NON_SYSTEM: number; + } + /** Class for particle asset handling. */ + export class ParticleAsset extends Asset { + } + /** Particle System base class.
+ Attributes of a Particle System:
+ - emmision rate of the particles
+ - Gravity Mode (Mode A):
+ - gravity
+ - direction
+ - speed +- variance
+ - tangential acceleration +- variance
+ - radial acceleration +- variance
+ - Radius Mode (Mode B):
+ - startRadius +- variance
+ - endRadius +- variance
+ - rotate +- variance
+ - Properties common to all modes:
+ - life +- life variance
+ - start spin +- variance
+ - end spin +- variance
+ - start size +- variance
+ - end size +- variance
+ - start color +- variance
+ - end color +- variance
+ - life +- variance
+ - blending function
+ - texture
+
+ cocos2d also supports particles generated by Particle Designer (http://particledesigner.71squared.com/).
+ 'Radius Mode' in Particle Designer uses a fixed emit rate of 30 hz. Since that can't be guarateed in cocos2d,
+ cocos2d uses a another approach, but the results are almost identical.
+ cocos2d supports all the variables used by Particle Designer plus a bit more:
+ - spinning particles (supported when using ParticleSystem)
+ - tangential acceleration (Gravity mode)
+ - radial acceleration (Gravity mode)
+ - radius direction (Radius mode) (Particle Designer supports outwards to inwards direction only)
+ It is possible to customize any of the above mentioned properties in runtime. Example:
*/ + export class ParticleSystem extends RenderComponent implements BlendFunc { + /** !#en Play particle in edit mode. + !#zh 在编辑器模式下预览粒子,启用后选中粒子时,粒子将自动播放。 */ + preview: boolean; + /** !#en + If set custom to true, then use custom properties insteadof read particle file. + !#zh 是否自定义粒子属性。 */ + custom: boolean; + /** !#en The plist file. + !#zh plist 格式的粒子配置文件。 */ + file: ParticleAsset; + /** !#en SpriteFrame used for particles display + !#zh 用于粒子呈现的 SpriteFrame */ + spriteFrame: SpriteFrame; + /** !#en Texture of Particle System, readonly, please use spriteFrame to setup new texture。 + !#zh 粒子贴图,只读属性,请使用 spriteFrame 属性来替换贴图。 */ + texture: string; + /** !#en Current quantity of particles that are being simulated. + !#zh 当前播放的粒子数量。 */ + particleCount: number; + /** !#en Indicate whether the system simulation have stopped. + !#zh 指示粒子播放是否完毕。 */ + stopped: boolean; + /** !#en If set to true, the particle system will automatically start playing on onLoad. + !#zh 如果设置为 true 运行时会自动发射粒子。 */ + playOnLoad: boolean; + /** !#en Indicate whether the owner node will be auto-removed when it has no particles left. + !#zh 粒子播放完毕后自动销毁所在的节点。 */ + autoRemoveOnFinish: boolean; + /** !#en Indicate whether the particle system is activated. + !#zh 是否激活粒子。 */ + active: boolean; + /** !#en Maximum particles of the system. + !#zh 粒子最大数量。 */ + totalParticles: number; + /** !#en How many seconds the emitter wil run. -1 means 'forever'. + !#zh 发射器生存时间,单位秒,-1表示持续发射。 */ + duration: number; + /** !#en Emission rate of the particles. + !#zh 每秒发射的粒子数目。 */ + emissionRate: number; + /** !#en Life of each particle setter. + !#zh 粒子的运行时间。 */ + life: number; + /** !#en Variation of life. + !#zh 粒子的运行时间变化范围。 */ + lifeVar: number; + /** !#en Start color of each particle. + !#zh 粒子初始颜色。 */ + startColor: Color; + /** !#en Variation of the start color. + !#zh 粒子初始颜色变化范围。 */ + startColorVar: Color; + /** !#en Ending color of each particle. + !#zh 粒子结束颜色。 */ + endColor: Color; + /** !#en Variation of the end color. + !#zh 粒子结束颜色变化范围。 */ + endColorVar: Color; + /** !#en Angle of each particle setter. + !#zh 粒子角度。 */ + angle: number; + /** !#en Variation of angle of each particle setter. + !#zh 粒子角度变化范围。 */ + angleVar: number; + /** !#en Start size in pixels of each particle. + !#zh 粒子的初始大小。 */ + startSize: number; + /** !#en Variation of start size in pixels. + !#zh 粒子初始大小的变化范围。 */ + startSizeVar: number; + /** !#en End size in pixels of each particle. + !#zh 粒子结束时的大小。 */ + endSize: number; + /** !#en Variation of end size in pixels. + !#zh 粒子结束大小的变化范围。 */ + endSizeVar: number; + /** !#en Start angle of each particle. + !#zh 粒子开始自旋角度。 */ + startSpin: number; + /** !#en Variation of start angle. + !#zh 粒子开始自旋角度变化范围。 */ + startSpinVar: number; + /** !#en End angle of each particle. + !#zh 粒子结束自旋角度。 */ + endSpin: number; + /** !#en Variation of end angle. + !#zh 粒子结束自旋角度变化范围。 */ + endSpinVar: number; + /** !#en Source position of the emitter. + !#zh 发射器位置。 */ + sourcePos: Vec2; + /** !#en Variation of source position. + !#zh 发射器位置的变化范围。(横向和纵向) */ + posVar: Vec2; + /** !#en Particles movement type. + !#zh 粒子位置类型。 */ + positionType: ParticleSystem.PositionType; + /** !#en Particles emitter modes. + !#zh 发射器类型。 */ + emitterMode: ParticleSystem.EmitterMode; + /** !#en Gravity of the emitter. + !#zh 重力。 */ + gravity: Vec2; + /** !#en Speed of the emitter. + !#zh 速度。 */ + speed: number; + /** !#en Variation of the speed. + !#zh 速度变化范围。 */ + speedVar: number; + /** !#en Tangential acceleration of each particle. Only available in 'Gravity' mode. + !#zh 每个粒子的切向加速度,即垂直于重力方向的加速度,只有在重力模式下可用。 */ + tangentialAccel: number; + /** !#en Variation of the tangential acceleration. + !#zh 每个粒子的切向加速度变化范围。 */ + tangentialAccelVar: number; + /** !#en Acceleration of each particle. Only available in 'Gravity' mode. + !#zh 粒子径向加速度,即平行于重力方向的加速度,只有在重力模式下可用。 */ + radialAccel: number; + /** !#en Variation of the radial acceleration. + !#zh 粒子径向加速度变化范围。 */ + radialAccelVar: number; + /** !#en Indicate whether the rotation of each particle equals to its direction. Only available in 'Gravity' mode. + !#zh 每个粒子的旋转是否等于其方向,只有在重力模式下可用。 */ + rotationIsDir: boolean; + /** !#en Starting radius of the particles. Only available in 'Radius' mode. + !#zh 初始半径,表示粒子出生时相对发射器的距离,只有在半径模式下可用。 */ + startRadius: number; + /** !#en Variation of the starting radius. + !#zh 初始半径变化范围。 */ + startRadiusVar: number; + /** !#en Ending radius of the particles. Only available in 'Radius' mode. + !#zh 结束半径,只有在半径模式下可用。 */ + endRadius: number; + /** !#en Variation of the ending radius. + !#zh 结束半径变化范围。 */ + endRadiusVar: number; + /** !#en Number of degress to rotate a particle around the source pos per second. Only available in 'Radius' mode. + !#zh 粒子每秒围绕起始点的旋转角度,只有在半径模式下可用。 */ + rotatePerS: number; + /** !#en Variation of the degress to rotate a particle around the source pos per second. + !#zh 粒子每秒围绕起始点的旋转角度变化范围。 */ + rotatePerSVar: number; + /** !#en The Particle emitter lives forever. + !#zh 表示发射器永久存在 */ + static DURATION_INFINITY: number; + /** !#en The starting size of the particle is equal to the ending size. + !#zh 表示粒子的起始大小等于结束大小。 */ + static START_SIZE_EQUAL_TO_END_SIZE: number; + /** !#en The starting radius of the particle is equal to the ending radius. + !#zh 表示粒子的起始半径等于结束半径。 */ + static START_RADIUS_EQUAL_TO_END_RADIUS: number; + /** + !#en Stop emitting particles. Running particles will continue to run until they die. + !#zh 停止发射器发射粒子,发射出去的粒子将继续运行,直至粒子生命结束。 + + @example + ```js + // stop particle system. + myParticleSystem.stopSystem(); + ``` + */ + stopSystem(): void; + /** + !#en Kill all living particles. + !#zh 杀死所有存在的粒子,然后重新启动粒子发射器。 + + @example + ```js + // play particle system. + myParticleSystem.resetSystem(); + ``` + */ + resetSystem(): void; + /** + !#en Whether or not the system is full. + !#zh 发射器中粒子是否大于等于设置的总粒子数量。 + */ + isFull(): boolean; + /** + !#en Sets a new texture with a rect. The rect is in texture position and size. + Please use spriteFrame property instead, this function is deprecated since v1.9 + !#zh 设置一张新贴图和关联的矩形。 + 请直接设置 spriteFrame 属性,这个函数从 v1.9 版本开始已经被废弃 + @param texture texture + @param rect rect + */ + setTextureWithRect(texture: Texture2D, rect: Rect): void; + /** !#en specify the source Blend Factor, this will generate a custom material object, please pay attention to the memory cost. + !#zh 指定原图的混合模式,这会克隆一个新的材质对象,注意这带来的开销 */ + srcBlendFactor: macro.BlendFactor; + /** !#en specify the destination Blend Factor. + !#zh 指定目标的混合模式 */ + dstBlendFactor: macro.BlendFactor; + } + /** !#en cc.WebView is a component for display web pages in the game. Because different platforms have different authorization, API and control methods for WebView component. And have not yet formed a unified standard, only Web, iOS, and Android platforms are currently supported. + !#zh WebView 组件,用于在游戏中显示网页。由于不同平台对于 WebView 组件的授权、API、控制方式都不同,还没有形成统一的标准,所以目前只支持 Web、iOS 和 Android 平台。 */ + export class WebView extends Component { + /** !#en A given URL to be loaded by the WebView, it should have a http or https prefix. + !#zh 指定 WebView 加载的网址,它应该是一个 http 或者 https 开头的字符串 */ + url: string; + /** !#en The webview's event callback , it will be triggered when certain webview event occurs. + !#zh WebView 的回调事件,当网页加载过程中,加载完成后或者加载出错时都会回调此函数 */ + webviewLoadedEvents: Component.EventHandler[]; + /** + !#en + Set javascript interface scheme (see also setOnJSCallback).
+ Note: Supports only on the Android and iOS. For HTML5, please refer to the official documentation.
+ Please refer to the official documentation for more details. + !#zh + 设置 JavaScript 接口方案(与 'setOnJSCallback' 配套使用)。
+ 注意:只支持 Android 和 iOS ,Web 端用法请前往官方文档查看。
+ 详情请参阅官方文档 + @param scheme scheme + */ + setJavascriptInterfaceScheme(scheme: string): void; + /** + !#en + This callback called when load URL that start with javascript + interface scheme (see also setJavascriptInterfaceScheme).
+ Note: Supports only on the Android and iOS. For HTML5, please refer to the official documentation.
+ Please refer to the official documentation for more details. + !#zh + 当加载 URL 以 JavaScript 接口方案开始时调用这个回调函数。
+ 注意:只支持 Android 和 iOS,Web 端用法请前往官方文档查看。 + 详情请参阅官方文档 + @param callback callback + */ + setOnJSCallback(callback: Function): void; + /** + !#en + Evaluates JavaScript in the context of the currently displayed page.
+ Please refer to the official document for more details
+ Note: Cross domain issues need to be resolved by yourself
+ !#zh + 执行 WebView 内部页面脚本(详情请参阅官方文档)
+ 注意:需要自行解决跨域问题 + @param str str + */ + evaluateJS(str: string): void; + /** + !#en if you don't need the WebView and it isn't in any running Scene, you should + call the destroy method on this component or the associated node explicitly. + Otherwise, the created DOM element won't be removed from web page. + !#zh + 如果你不再使用 WebView,并且组件未添加到场景中,那么你必须手动对组件或所在节点调用 destroy。 + 这样才能移除网页上的 DOM 节点,避免 Web 平台内存泄露。 + + @example + ```js + webview.node.parent = null; // or webview.node.removeFromParent(false); + // when you don't need webview anymore + webview.node.destroy(); + ``` + */ + destroy(): boolean; + } + /** cc.TMXLayerInfo contains the information about the layers like: + - Layer name + - Layer size + - Layer opacity at creation time (it can be modified at runtime) + - Whether the layer is visible (if it's not visible, then the CocosNode won't be created) + This information is obtained from the TMX file. */ + export class TMXLayerInfo { + /** Properties of the layer info. */ + properties: any; + } + /** cc.TMXImageLayerInfo contains the information about the image layers. + This information is obtained from the TMX file. */ + export class TMXImageLayerInfo { + } + /**

cc.TMXObjectGroupInfo contains the information about the object group like: + - group name + - group size + - group opacity at creation time (it can be modified at runtime) + - Whether the group is visible + + This information is obtained from the TMX file.

*/ + export class TMXObjectGroupInfo { + /** Properties of the ObjectGroup info. */ + properties: any[]; + } + /**

cc.TMXTilesetInfo contains the information about the tilesets like:
+ - Tileset name
+ - Tileset spacing
+ - Tileset margin
+ - size of the tiles
+ - Image used for the tiles
+ - Image size
+ + This information is obtained from the TMX file.

*/ + export class TMXTilesetInfo { + /** Tileset name */ + name: string; + /** First grid */ + firstGid: number; + /** Spacing */ + spacing: number; + /** Margin */ + margin: number; + /** Texture containing the tiles (should be sprite sheet / texture atlas) */ + sourceImage: any; + /** Size in pixels of the image */ + imageSize: Size; + } + /**

cc.TMXMapInfo contains the information about the map like:
+ - Map orientation (hexagonal, isometric or orthogonal)
+ - Tile size
+ - Map size

+ +

And it also contains:
+ - Layers (an array of TMXLayerInfo objects)
+ - Tilesets (an array of TMXTilesetInfo objects)
+ - ObjectGroups (an array of TMXObjectGroupInfo objects)

+ +

This information is obtained from the TMX file.

*/ + export class TMXMapInfo { + /** Properties of the map info. */ + properties: any[]; + /** Map orientation. */ + orientation: number; + /** Parent element. */ + parentElement: any; + /** Parent GID. */ + parentGID: number; + /** Layer attributes. */ + layerAttrs: any; + /** Is reading storing characters stream. */ + storingCharacters: boolean; + /** Current string stored from characters stream. */ + currentString: string; + /** Width of the map */ + mapWidth: number; + /** Height of the map */ + mapHeight: number; + /** Width of a tile */ + tileWidth: number; + /** Height of a tile */ + tileHeight: number; + static ATTRIB_NONE: number; + static ATTRIB_BASE64: number; + static ATTRIB_GZIP: number; + static ATTRIB_ZLIB: number; + } + /** !#en Render the TMX layer. + !#zh 渲染 TMX layer。 */ + export class TiledLayer extends Component { + /** + !#en enable or disable culling + !#zh 开启或关闭裁剪。 + @param value value + */ + enableCulling(value: any): void; + /** + !#en Adds user's node into layer. + !#zh 添加用户节点。 + @param node node + */ + addUserNode(node: Node): boolean; + /** + !#en Removes user's node. + !#zh 移除用户节点。 + @param node node + */ + removeUserNode(node: Node): boolean; + /** + !#en Destroy user's node. + !#zh 销毁用户节点。 + @param node node + */ + destroyUserNode(node: Node): void; + /** + !#en Gets the layer name. + !#zh 获取层的名称。 + + @example + ```js + let layerName = tiledLayer.getLayerName(); + cc.log(layerName); + ``` + */ + getLayerName(): string; + /** + !#en Set the layer name. + !#zh 设置层的名称 + @param layerName layerName + + @example + ```js + tiledLayer.setLayerName("New Layer"); + ``` + */ + SetLayerName(layerName: string): void; + /** + !#en Return the value for the specific property name. + !#zh 获取指定属性名的值。 + @param propertyName propertyName + + @example + ```js + let property = tiledLayer.getProperty("info"); + cc.log(property); + ``` + */ + getProperty(propertyName: string): any; + /** + !#en Returns the position in pixels of a given tile coordinate. + !#zh 获取指定 tile 的像素坐标。 + @param pos position or x + @param y y + + @example + ```js + let pos = tiledLayer.getPositionAt(cc.v2(0, 0)); + cc.log("Pos: " + pos); + let pos = tiledLayer.getPositionAt(0, 0); + cc.log("Pos: " + pos); + ``` + */ + getPositionAt(pos: Vec2|number, y?: number): Vec2; + /** + !#en + Sets the tiles gid (gid = tile global id) at a given tiles rect. + !#zh + 设置给定区域的 tile 的 gid (gid = tile 全局 id), + @param gids an array contains gid + @param beginCol begin col number + @param beginRow begin row number + @param totalCols count of column + + @example + ```js + tiledLayer.setTilesGIDAt([1, 1, 1, 1], 10, 10, 2) + ``` + */ + setTilesGIDAt(gids: any[], beginCol: number, beginRow: number, totalCols: number): void; + /** + !#en + Sets the tile gid (gid = tile global id) at a given tile coordinate.
+ The Tile GID can be obtained by using the method "tileGIDAt" or by using the TMX editor . Tileset Mgr +1.
+ If a tile is already placed at that position, then it will be removed. + !#zh + 设置给定坐标的 tile 的 gid (gid = tile 全局 id), + tile 的 GID 可以使用方法 “tileGIDAt” 来获得。
+ 如果一个 tile 已经放在那个位置,那么它将被删除。 + @param gid gid + @param posOrX position or x + @param flagsOrY flags or y + @param flags flags + + @example + ```js + tiledLayer.setTileGIDAt(1001, 10, 10, 1) + ``` + */ + setTileGIDAt(gid: number, posOrX: Vec2|number, flagsOrY: number, flags?: number): void; + /** + !#en + Returns the tiles data.An array fill with GIDs.
+ !#zh + 返回 tiles 数据. 由GID构成的一个数组.
+ */ + getTiles(): number[]; + /** + !#en + Returns the tile gid at a given tile coordinate.
+ if it returns 0, it means that the tile is empty.
+ !#zh + 通过给定的 tile 坐标、flags(可选)返回 tile 的 GID.
+ 如果它返回 0,则表示该 tile 为空。
+ @param pos or x + @param y y + + @example + ```js + let tileGid = tiledLayer.getTileGIDAt(0, 0); + ``` + */ + getTileGIDAt(pos: Vec2|number, y?: number): number; + /** + !#en Layer orientation, which is the same as the map orientation. + !#zh 获取 Layer 方向(同地图方向)。 + + @example + ```js + let orientation = tiledLayer.getLayerOrientation(); + cc.log("Layer Orientation: " + orientation); + ``` + */ + getLayerOrientation(): number; + /** + !#en properties from the layer. They can be added using Tiled. + !#zh 获取 layer 的属性,可以使用 Tiled 编辑器添加属性。 + + @example + ```js + let properties = tiledLayer.getProperties(); + cc.log("Properties: " + properties); + ``` + */ + getProperties(): any; + /** + !#en + Get the TiledTile with the tile coordinate.
+ If there is no tile in the specified coordinate and forceCreate parameter is true,
+ then will create a new TiledTile at the coordinate. + The renderer will render the tile with the rotation, scale, position and color property of the TiledTile. + !#zh + 通过指定的 tile 坐标获取对应的 TiledTile。
+ 如果指定的坐标没有 tile,并且设置了 forceCreate 那么将会在指定的坐标创建一个新的 TiledTile 。
+ 在渲染这个 tile 的时候,将会使用 TiledTile 的节点的旋转、缩放、位移、颜色属性。
+ @param x x + @param y y + @param forceCreate forceCreate + + @example + ```js + let tile = tiledLayer.getTiledTileAt(100, 100, true); + cc.log(tile); + ``` + */ + getTiledTileAt(x: number, y: number, forceCreate: boolean): TiledTile; + /** + !#en + Change tile to TiledTile at the specified coordinate. + !#zh + 将指定的 tile 坐标替换为指定的 TiledTile。 + @param x x + @param y y + @param tiledTile tiledTile + */ + setTiledTileAt(x: number, y: number, tiledTile: TiledTile): TiledTile; + /** + !#en Return texture. + !#zh 获取纹理。 + @param index The index of textures + */ + getTexture(index: any): Texture2D; + /** + !#en Return texture. + !#zh 获取纹理。 + */ + getTextures(): Texture2D; + /** + !#en Set the texture. + !#zh 设置纹理。 + @param texture texture + */ + setTexture(texture: Texture2D): void; + /** + !#en Set the texture. + !#zh 设置纹理。 + @param textures textures + */ + setTexture(textures: Texture2D): void; + /** + !#en Gets layer size. + !#zh 获得层大小。 + + @example + ```js + let size = tiledLayer.getLayerSize(); + cc.log("layer size: " + size); + ``` + */ + getLayerSize(): Size; + /** + !#en Size of the map's tile (could be different from the tile's size). + !#zh 获取 tile 的大小( tile 的大小可能会有所不同)。 + + @example + ```js + let mapTileSize = tiledLayer.getMapTileSize(); + cc.log("MapTile size: " + mapTileSize); + ``` + */ + getMapTileSize(): Size; + /** + !#en Gets Tile set first information for the layer. + !#zh 获取 layer 索引位置为0的 Tileset 信息。 + @param index The index of tilesets + */ + getTileSet(index: any): TMXTilesetInfo; + /** + !#en Gets tile set all information for the layer. + !#zh 获取 layer 所有的 Tileset 信息。 + */ + getTileSet(): TMXTilesetInfo; + /** + !#en Sets tile set information for the layer. + !#zh 设置 layer 的 tileset 信息。 + @param tileset tileset + */ + setTileSet(tileset: TMXTilesetInfo): void; + /** + !#en Sets Tile set information for the layer. + !#zh 设置 layer 的 Tileset 信息。 + @param tilesets tilesets + */ + setTileSets(tilesets: TMXTilesetInfo): void; + } + /** !#en Renders a TMX Tile Map in the scene. + !#zh 在场景中渲染一个 tmx 格式的 Tile Map。 */ + export class TiledMap extends Component { + /** !#en The TiledMap Asset. + !#zh TiledMap 资源。 */ + tmxAsset: TiledMapAsset; + /** + !#en Gets the map size. + !#zh 获取地图大小。 + + @example + ```js + let mapSize = tiledMap.getMapSize(); + cc.log("Map Size: " + mapSize); + ``` + */ + getMapSize(): Size; + /** + !#en Gets the tile size. + !#zh 获取地图背景中 tile 元素的大小。 + + @example + ```js + let tileSize = tiledMap.getTileSize(); + cc.log("Tile Size: " + tileSize); + ``` + */ + getTileSize(): Size; + /** + !#en map orientation. + !#zh 获取地图方向。 + + @example + ```js + let mapOrientation = tiledMap.getMapOrientation(); + cc.log("Map Orientation: " + mapOrientation); + ``` + */ + getMapOrientation(): number; + /** + !#en object groups. + !#zh 获取所有的对象层。 + + @example + ```js + let objGroups = titledMap.getObjectGroups(); + for (let i = 0; i < objGroups.length; ++i) { + cc.log("obj: " + objGroups[i]); + } + ``` + */ + getObjectGroups(): TiledObjectGroup[]; + /** + !#en Return the TMXObjectGroup for the specific group. + !#zh 获取指定的 TMXObjectGroup。 + @param groupName groupName + + @example + ```js + let group = titledMap.getObjectGroup("Players"); + cc.log("ObjectGroup: " + group); + ``` + */ + getObjectGroup(groupName: string): TiledObjectGroup; + /** + !#en enable or disable culling + !#zh 开启或关闭裁剪。 + @param value value + */ + enableCulling(value: any): void; + /** + !#en Gets the map properties. + !#zh 获取地图的属性。 + + @example + ```js + let properties = titledMap.getProperties(); + for (let i = 0; i < properties.length; ++i) { + cc.log("Properties: " + properties[i]); + } + ``` + */ + getProperties(): any[]; + /** + !#en Return All layers array. + !#zh 返回包含所有 layer 的数组。 + + @example + ```js + let layers = titledMap.getLayers(); + for (let i = 0; i < layers.length; ++i) { + cc.log("Layers: " + layers[i]); + } + ``` + */ + getLayers(): TiledLayer[]; + /** + !#en return the cc.TiledLayer for the specific layer. + !#zh 获取指定名称的 layer。 + @param layerName layerName + + @example + ```js + let layer = titledMap.getLayer("Player"); + cc.log(layer); + ``` + */ + getLayer(layerName: string): TiledLayer; + /** + !#en Return the value for the specific property name. + !#zh 通过属性名称,获取指定的属性。 + @param propertyName propertyName + + @example + ```js + let property = titledMap.getProperty("info"); + cc.log("Property: " + property); + ``` + */ + getProperty(propertyName: string): string; + /** + !#en Return properties dictionary for tile GID. + !#zh 通过 GID ,获取指定的属性。 + @param GID GID + + @example + ```js + let properties = titledMap.getPropertiesForGID(GID); + cc.log("Properties: " + properties); + ``` + */ + getPropertiesForGID(GID: number): any; + } + /** Class for tiled map asset handling. */ + export class TiledMapAsset extends Asset { + textures: Texture2D[]; + textureNames: string[]; + textureSizes: Size[]; + imageLayerTextures: Texture2D[]; + imageLayerTextureNames: string[]; + } + /** !#en Renders the TMX object group. + !#zh 渲染 tmx object group。 */ + export class TiledObjectGroup extends Component { + /** + !#en Offset position of child objects. + !#zh 获取子对象的偏移位置。 + + @example + ```js + let offset = tMXObjectGroup.getPositionOffset(); + ``` + */ + getPositionOffset(): Vec2; + /** + !#en List of properties stored in a dictionary. + !#zh 以映射的形式获取属性列表。 + + @example + ```js + let offset = tMXObjectGroup.getProperties(); + ``` + */ + getProperties(): any; + /** + !#en Gets the Group name. + !#zh 获取组名称。 + + @example + ```js + let groupName = tMXObjectGroup.getGroupName; + ``` + */ + getGroupName(): string; + /** + !#en + Return the object for the specific object name.
+ It will return the 1st object found on the array for the given name. + !#zh 获取指定的对象。 + @param objectName objectName + + @example + ```js + let object = tMXObjectGroup.getObject("Group"); + ``` + */ + getObject(objectName: string): any; + /** + !#en Gets the objects. + !#zh 获取对象数组。 + + @example + ```js + let objects = tMXObjectGroup.getObjects(); + ``` + */ + getObjects(): any[]; + } + /** !#en TiledTile can control the specified map tile. + It will apply the node rotation, scale, translate to the map tile. + You can change the TiledTile's gid to change the map tile's style. + !#zh TiledTile 可以单独对某一个地图块进行操作。 + 他会将节点的旋转,缩放,平移操作应用在这个地图块上,并可以通过更换当前地图块的 gid 来更换地图块的显示样式。 */ + export class TiledTile extends Component { + /** !#en Specify the TiledTile horizontal coordinate,use map tile as the unit. + !#zh 指定 TiledTile 的横向坐标,以地图块为单位 */ + x: number; + /** !#en Specify the TiledTile vertical coordinate,use map tile as the unit. + !#zh 指定 TiledTile 的纵向坐标,以地图块为单位 */ + y: number; + /** !#en Specify the TiledTile gid. + !#zh 指定 TiledTile 的 gid 值 */ + gid: number; + } + /** !#en cc.VideoPlayer is a component for playing videos, you can use it for showing videos in your game. Because different platforms have different authorization, API and control methods for VideoPlayer component. And have not yet formed a unified standard, only Web, iOS, and Android platforms are currently supported. + !#zh Video 组件,用于在游戏中播放视频。由于不同平台对于 VideoPlayer 组件的授权、API、控制方式都不同,还没有形成统一的标准,所以目前只支持 Web、iOS 和 Android 平台。 */ + export class VideoPlayer extends Component { + /** !#en The resource type of videoplayer, REMOTE for remote url and LOCAL for local file path. + !#zh 视频来源:REMOTE 表示远程视频 URL,LOCAL 表示本地视频地址。 */ + resourceType: VideoPlayer.ResourceType; + /** !#en The remote URL of video. + !#zh 远程视频的 URL */ + remoteURL: string; + /** !#en The local video full path. + !#zh 本地视频的 URL */ + clip: string; + /** !#en The current playback time of the now playing item in seconds, you could also change the start playback time. + !#zh 指定视频从什么时间点开始播放,单位是秒,也可以用来获取当前视频播放的时间进度。 */ + currentTime: number; + /** !#en The volume of the video. + !#zh 视频的音量(0.0 ~ 1.0) */ + volume: number; + /** !#en Mutes the VideoPlayer. Mute sets the volume=0, Un-Mute restore the original volume. + !#zh 是否静音视频。静音时设置音量为 0,取消静音是恢复原来的音量。 */ + mute: boolean; + /** !#en Whether keep the aspect ration of the original video. + !#zh 是否保持视频原来的宽高比 */ + keepAspectRatio: boolean; + /** !#en Whether play video in fullscreen mode. + !#zh 是否全屏播放视频 */ + isFullscreen: boolean; + /** !#en Always below the game view (only useful on Web. Note: The specific effects are not guaranteed to be consistent, depending on whether each browser supports or restricts). + !#zh 永远在游戏视图最底层(这个属性只有在 Web 平台上有效果。注意:具体效果无法保证一致,跟各个浏览器是否支持与限制有关) */ + stayOnBottom: boolean; + /** !#en the video player's callback, it will be triggered when certain event occurs, like: playing, paused, stopped and completed. + !#zh 视频播放回调函数,该回调函数会在特定情况被触发,比如播放中,暂时,停止和完成播放。 */ + videoPlayerEvent: Component.EventHandler[]; + /** + !#en If a video is paused, call this method could resume playing. If a video is stopped, call this method to play from scratch. + !#zh 如果视频被暂停播放了,调用这个接口可以继续播放。如果视频被停止播放了,调用这个接口可以从头开始播放。 + */ + play(): void; + /** + !#en If a video is paused, call this method to resume playing. + !#zh 如果一个视频播放被暂停播放了,调用这个接口可以继续播放。 + */ + resume(): void; + /** + !#en If a video is playing, call this method to pause playing. + !#zh 如果一个视频正在播放,调用这个接口可以暂停播放。 + */ + pause(): void; + /** + !#en If a video is playing, call this method to stop playing immediately. + !#zh 如果一个视频正在播放,调用这个接口可以立马停止播放。 + */ + stop(): void; + /** + !#en Gets the duration of the video + !#zh 获取视频文件的播放总时长 + */ + getDuration(): number; + /** + !#en Determine whether video is playing or not. + !#zh 判断当前视频是否处于播放状态 + */ + isPlaying(): boolean; + /** + !#en if you don't need the VideoPlayer and it isn't in any running Scene, you should + call the destroy method on this component or the associated node explicitly. + Otherwise, the created DOM element won't be removed from web page. + !#zh + 如果你不再使用 VideoPlayer,并且组件未添加到场景中,那么你必须手动对组件或所在节点调用 destroy。 + 这样才能移除网页上的 DOM 节点,避免 Web 平台内存泄露。 + + @example + ```js + videoplayer.node.parent = null; // or videoplayer.node.removeFromParent(false); + // when you don't need videoplayer anymore + videoplayer.node.destroy(); + ``` + */ + destroy(): boolean; + } + /** !#en + cc.NodePool is the cache pool designed for node type.
+ It can helps you to improve your game performance for objects which need frequent release and recreate operations
+ + It's recommended to create cc.NodePool instances by node type, the type corresponds to node type in game design, not the class, + for example, a prefab is a specific node type.
+ When you create a node pool, you can pass a Component which contains `unuse`, `reuse` functions to control the content of node.
+ + Some common use case is :
+ 1. Bullets in game (die very soon, massive creation and recreation, no side effect on other objects)
+ 2. Blocks in candy crash (massive creation and recreation)
+ etc... + !#zh + cc.NodePool 是用于管理节点对象的对象缓存池。
+ 它可以帮助您提高游戏性能,适用于优化对象的反复创建和销毁
+ 以前 cocos2d-x 中的 cc.pool 和新的节点事件注册系统不兼容,因此请使用 cc.NodePool 来代替。 + + 新的 NodePool 需要实例化之后才能使用,每种不同的节点对象池需要一个不同的对象池实例,这里的种类对应于游戏中的节点设计,一个 prefab 相当于一个种类的节点。
+ 在创建缓冲池时,可以传入一个包含 unuse, reuse 函数的组件类型用于节点的回收和复用逻辑。
+ + 一些常见的用例是:
+ 1.在游戏中的子弹(死亡很快,频繁创建,对其他对象无副作用)
+ 2.糖果粉碎传奇中的木块(频繁创建)。 + 等等.... */ + export class NodePool { + /** + !#en + Constructor for creating a pool for a specific node template (usually a prefab). You can pass a component (type or name) argument for handling event for reusing and recycling node. + !#zh + 使用构造函数来创建一个节点专用的对象池,您可以传递一个组件类型或名称,用于处理节点回收和复用时的事件逻辑。 + @param poolHandlerComp !#en The constructor or the class name of the component to control the unuse/reuse logic. !#zh 处理节点回收和复用事件逻辑的组件类型或名称。 + + @example + ```js + properties: { + template: cc.Prefab + }, + onLoad () { + // MyTemplateHandler is a component with 'unuse' and 'reuse' to handle events when node is reused or recycled. + this.myPool = new cc.NodePool('MyTemplateHandler'); + } + ``` + */ + constructor(poolHandlerComp?: {prototype: Component}|string); + /** !#en The pool handler component, it could be the class name or the constructor. + !#zh 缓冲池处理组件,用于节点的回收和复用逻辑,这个属性可以是组件类名或组件的构造函数。 */ + poolHandlerComp: Function|string; + /** + !#en The current available size in the pool + !#zh 获取当前缓冲池的可用对象数量 + */ + size(): number; + /** + !#en Destroy all cached nodes in the pool + !#zh 销毁对象池中缓存的所有节点 + */ + clear(): void; + /** + !#en Put a new Node into the pool. + It will automatically remove the node from its parent without cleanup. + It will also invoke unuse method of the poolHandlerComp if exist. + !#zh 向缓冲池中存入一个不再需要的节点对象。 + 这个函数会自动将目标节点从父节点上移除,但是不会进行 cleanup 操作。 + 这个函数会调用 poolHandlerComp 的 unuse 函数,如果组件和函数都存在的话。 + @param obj obj + + @example + ```js + let myNode = cc.instantiate(this.template); + this.myPool.put(myNode); + ``` + */ + put(obj: Node): void; + /** + !#en Get a obj from pool, if no available object in pool, null will be returned. + This function will invoke the reuse function of poolHandlerComp if exist. + !#zh 获取对象池中的对象,如果对象池没有可用对象,则返回空。 + 这个函数会调用 poolHandlerComp 的 reuse 函数,如果组件和函数都存在的话。 + @param params !#en Params to pass to 'reuse' method in poolHandlerComp !#zh 向 poolHandlerComp 中的 'reuse' 函数传递的参数 + + @example + ```js + let newNode = this.myPool.get(); + ``` + */ + get(...params: any[]): Node; + } + /** !#en Box Collider. + !#zh 包围盒碰撞组件 */ + export class BoxCollider extends Collider implements Collider.Box { + /** !#en + Collider info in world coordinate. + !#zh + 碰撞体的世界坐标系下的信息。 */ + world: ColliderInfo; + /** !#en Position offset + !#zh 位置偏移量 */ + offset: Vec2; + /** !#en Box size + !#zh 包围盒大小 */ + size: Size; + } + /** !#en Collider component base class. + !#zh 碰撞组件基类 */ + export class Collider extends Component { + /** !#en Tag. If a node has several collider components, you can judge which type of collider is collided according to the tag. + !#zh 标签。当一个节点上有多个碰撞组件时,在发生碰撞后,可以使用此标签来判断是节点上的哪个碰撞组件被碰撞了。 */ + tag: number; + } + /** !#en Circle Collider. + !#zh 圆形碰撞组件 */ + export class CircleCollider extends Collider implements Collider.Circle { + /** !#en + Collider info in world coordinate. + !#zh + 碰撞体的世界坐标系下的信息。 */ + world: ColliderInfo; + /** !#en Position offset + !#zh 位置偏移量 */ + offset: Vec2; + /** !#en Circle radius + !#zh 圆形半径 */ + radius: number; + } + /** !#en + Collider Info. + !#zh + 碰撞体信息。 */ + export class ColliderInfo { + /** !#en + Collider aabb information of last frame + !#zh + 碰撞体上一帧的 aabb 信息 */ + preAabb: Rect; + /** !#en + Collider aabb information of current frame + !#zh + 碰撞体当前帧的 aabb 信息 */ + aabb: Rect; + /** !#en + Collider matrix + !#zh + 碰撞体的矩阵信息 */ + matrix: Mat4; + /** !#en + Collider radius (for CircleCollider) + !#zh + 碰撞体的半径(只对 CircleCollider 有效) */ + radius: number; + /** !#en + Collider position (for CircleCollider) + !#zh + 碰撞体的位置(只对 CircleCollider 有效) */ + position: Vec2; + /** !#en + Collider points (for BoxCollider and PolygonCollider) + !#zh + 碰撞体的顶点信息(只对 BoxCollider 和 PolygonCollider 有效) */ + points: Vec2[]; + } + /** !#en + A simple collision manager class. + It will calculate whether the collider collides other colliders, if collides then call the callbacks. + !#zh + 一个简单的碰撞组件管理类,用于处理节点之间的碰撞组件是否产生了碰撞,并调用相应回调函数。 */ + export class CollisionManager implements EventTarget { + /** !#en + !#zh + 是否开启碰撞管理,默认为不开启 */ + enabled: boolean; + /** !#en + !#zh + 是否绘制碰撞组件的包围盒,默认为不绘制 */ + enabledDrawBoundingBox: boolean; + /** !#en + !#zh + 是否绘制碰撞组件的形状,默认为不绘制 */ + enabledDebugDraw: boolean; + /** + !#en Checks whether the EventTarget object has any callback registered for a specific type of event. + !#zh 检查事件目标对象是否有为特定类型的事件注册的回调。 + @param type The type of event. + */ + hasEventListener(type: string): boolean; + /** + !#en + Register an callback of a specific event type on the EventTarget. + This type of event should be triggered via `emit`. + !#zh + 注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, node); + ``` + */ + on(type: string, callback: T, target?: any, useCapture?: boolean): T; + /** + !#en + Removes the listeners previously registered with the same type, callback, target and or useCapture, + if only type is passed as parameter, all listeners registered with that type will be removed. + !#zh + 删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。 + @param type A string representing the event type being removed. + @param callback The callback to remove. + @param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed + + @example + ```js + // register fire eventListener + var callback = eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, target); + // remove fire event listener + eventTarget.off('fire', callback, target); + // remove all fire event listeners + eventTarget.off('fire'); + ``` + */ + off(type: string, callback?: Function, target?: any): void; + /** + !#en Removes all callbacks previously registered with the same target (passed as parameter). + This is not for removing all listeners in the current event target, + and this is not for removing all listeners the target parameter have registered. + It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter. + !#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。 + 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。 + 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。 + @param target The target to be searched for all related listeners + */ + targetOff(target: any): void; + /** + !#en + Register an callback of a specific event type on the EventTarget, + the callback will remove itself after the first time it is triggered. + !#zh + 注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.once('fire', function () { + cc.log("this is the callback and will be invoked only once"); + }, node); + ``` + */ + once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void; + /** + !#en + Send an event with the event object. + !#zh + 通过事件对象派发事件 + @param event event + */ + dispatchEvent(event: Event): void; + /** + !#en + Destroy all callbackInfos. + !#zh + 销毁记录的事件 + */ + clear(): void; + } + /** !#en Intersection helper class + !#zh 辅助类,用于测试形状与形状是否相交 */ + export class Intersection { + /** + !#en Test line and line + !#zh 测试线段与线段是否相交 + @param a1 The start point of the first line + @param a2 The end point of the first line + @param b1 The start point of the second line + @param b2 The end point of the second line + */ + static lineLine(a1: Vec2, a2: Vec2, b1: Vec2, b2: Vec2): boolean; + /** + !#en Test line and rect + !#zh 测试线段与矩形是否相交 + @param a1 The start point of the line + @param a2 The end point of the line + @param b The rect + */ + static lineRect(a1: Vec2, a2: Vec2, b: Rect): boolean; + /** + !#en Test line and polygon + !#zh 测试线段与多边形是否相交 + @param a1 The start point of the line + @param a2 The end point of the line + @param b The polygon, a set of points + */ + static linePolygon(a1: Vec2, a2: Vec2, b: Vec2[]): boolean; + /** + !#en Test rect and rect + !#zh 测试矩形与矩形是否相交 + @param a The first rect + @param b The second rect + */ + static rectRect(a: Rect, b: Rect): boolean; + /** + !#en Test rect and polygon + !#zh 测试矩形与多边形是否相交 + @param a The rect + @param b The polygon, a set of points + */ + static rectPolygon(a: Rect, b: Vec2[]): boolean; + /** + !#en Test polygon and polygon + !#zh 测试多边形与多边形是否相交 + @param a The first polygon, a set of points + @param b The second polygon, a set of points + */ + static polygonPolygon(a: Vec2[], b: Vec2[]): boolean; + /** + !#en Test circle and circle + !#zh 测试圆形与圆形是否相交 + @param a Object contains position and radius + @param b Object contains position and radius + */ + static circleCircle(a: {position: Vec2, radius: number}, b: {position: Vec2, radius: number}): boolean; + /** + !#en Test polygon and circle + !#zh 测试矩形与圆形是否相交 + @param polygon The Polygon, a set of points + @param circle Object contains position and radius + */ + static polygonCircle(polygon: Vec2[], circle: {position: Vec2, radius: number}): boolean; + /** + !#en Test whether the point is in the polygon + !#zh 测试一个点是否在一个多边形中 + @param point The point + @param polygon The polygon, a set of points + */ + static pointInPolygon(point: Vec2, polygon: Vec2[]): boolean; + /** + !#en Calculate the distance of point to line. + !#zh 计算点到直线的距离。如果这是一条线段并且垂足不在线段内,则会计算点到线段端点的距离。 + @param point The point + @param start The start point of line + @param end The end point of line + @param isSegment whether this line is a segment + */ + static pointLineDistance(point: Vec2, start: Vec2, end: Vec2, isSegment: boolean): number; + } + /** !#en Polygon Collider. + !#zh 多边形碰撞组件 */ + export class PolygonCollider extends Collider implements Collider.Polygon { + /** !#en + Collider info in world coordinate. + !#zh + 碰撞体的世界坐标系下的信息。 */ + world: ColliderInfo; + /** !#en Position offset + !#zh 位置偏移量 */ + offset: Vec2; + /** !#en Polygon points + !#zh 多边形顶点数组 */ + points: Vec2[]; + } + /** !#en The Light Component + + !#zh 光源组件 */ + export class Light extends Component { + } + /** !#en + This module controls asset's behaviors and information, include loading, releasing etc. it is a singleton + All member can be accessed with `cc.assetManager`. + + !#zh + 此模块管理资源的行为和信息,包括加载,释放等,这是一个单例,所有成员能够通过 `cc.assetManager` 调用 */ + export class AssetManager { + /** !#en + Normal loading pipeline + + !#zh + 正常加载管线 */ + pipeline: cc.AssetManager.Pipeline; + /** !#en + Fetching pipeline + + !#zh + 下载管线 */ + fetchPipeline: cc.AssetManager.Pipeline; + /** !#en + Url transformer + + !#zh + Url 转换器 */ + transformPipeline: cc.AssetManager.Pipeline; + /** !#en + The collection of bundle which is already loaded, you can remove cache with {{#crossLink "AssetManager/removeBundle:method"}}{{/crossLink}} + + !#zh + 已加载 bundle 的集合, 你能通过 {{#crossLink "AssetManager/removeBundle:method"}}{{/crossLink}} 来移除缓存 */ + bundles: AssetManager.Cache; + /** !#en + The collection of asset which is already loaded, you can remove cache with {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}} + + !#zh + 已加载资源的集合, 你能通过 {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}} 来移除缓存 */ + assets: AssetManager.Cache; + /** !#en + Manage relationship between asset and its dependencies + + !#zh + 管理资源依赖关系 */ + dependUtil: cc.AssetManager.DependUtil; + /** !#en + Whether or not cache the loaded asset + + !#zh + 是否缓存已加载的资源 */ + cacheAsset: boolean; + /** !#en + Whether or not load asset forcely, if it is true, asset will be loaded regardless of error + + !#zh + 是否强制加载资源, 如果为 true ,加载资源将会忽略报错 */ + force: boolean; + /** !#en + Some useful function + + !#zh + 一些有用的方法 */ + utils: cc.AssetManager.Helper; + /** !#en + Manage all downloading task + + !#zh + 管理所有下载任务 */ + downloader: cc.AssetManager.Downloader; + /** !#en + Manage all parsing task + + !#zh + 管理所有解析任务 */ + parser: cc.AssetManager.Parser; + /** !#en + Manage internal asset + + !#zh + 管理内置资源 */ + builtins: cc.AssetManager.Builtins; + /** !#en + Manage all packed asset + + !#zh + 管理所有合并后的资源 */ + packManager: cc.AssetManager.PackManager; + /** !#en + Cache manager is a module which controls all caches downloaded from server in non-web platform. + + !#zh + 缓存管理器是一个模块,在非 WEB 平台上,用于管理所有从服务器上下载下来的缓存 */ + cacheManager: cc.AssetManager.CacheManager|null; + /** !#en + The preset of options + + !#zh + 可选参数的预设集 */ + presets: Record>; + /** !#en + The builtin 'main' bundle + + !#zh + 内置 main 包 */ + main: cc.AssetManager.Bundle; + /** !#en + The builtin 'resources' bundle + + !#zh + 内置 resources 包 */ + resources: cc.AssetManager.Bundle; + /** !#en + The builtin 'internal' bundle + + !#zh + 内置 internal 包 */ + internal: cc.AssetManager.Bundle; + /** + !#en + Initialize assetManager with options + + !#zh + 初始化资源管理器 + @param options options + */ + init(options: Record): void; + /** + !#en + Get the bundle which has been loaded + + !#zh + 获取已加载的分包 + @param name The name of bundle + + @example + ```js + // ${project}/assets/test1 + cc.assetManager.getBundle('test1'); + + cc.assetManager.getBundle('resources'); + ``` + */ + getBundle (name: string): cc.AssetManager.Bundle; + /** + !#en + Remove this bundle. NOTE: The asset whthin this bundle will not be released automatically, you can call {{#crossLink "Bundle/releaseAll:method"}}{{/crossLink}} manually before remove it if you need + + !#zh + 移除此包, 注意:这个包内的资源不会自动释放, 如果需要的话你可以在摧毁之前手动调用 {{#crossLink "Bundle/releaseAll:method"}}{{/crossLink}} 进行释放 + @param bundle The bundle to be removed + */ + removeBundle(bundle: cc.AssetManager.Bundle): void; + /** + !#en + General interface used to load assets with a progression callback and a complete callback. You can achieve almost all effect you want with combination of `requests` and `options`. + It is highly recommended that you use more simple API, such as `load`, `loadDir` etc. Every custom parameter in `options` will be distribute to each of `requests`. + if request already has same one, the parameter in request will be given priority. Besides, if request has dependencies, `options` will distribute to dependencies too. + Every custom parameter in `requests` will be tranfered to handler of `downloader` and `parser` as `options`. + You can register you own handler downloader or parser to collect these custom parameters for some effect. + + Reserved Keyword: `uuid`, `url`, `path`, `dir`, `scene`, `type`, `priority`, `preset`, `audioLoadMode`, `ext`, `bundle`, `onFileProgress`, `maxConcurrency`, `maxRequestsPerFrame` + `maxRetryCount`, `version`, `responseType`, `withCredentials`, `mimeType`, `timeout`, `header`, `reload`, `cacheAsset`, `cacheEnabled`, + Please DO NOT use these words as custom options! + + !#zh + 通用加载资源接口,可传入进度回调以及完成回调,通过组合 `request` 和 `options` 参数,几乎可以实现和扩展所有想要的加载效果。非常建议你使用更简单的API,例如 `load`、`loadDir` 等。 + `options` 中的自定义参数将会分发到 `requests` 的每一项中,如果request中已存在同名的参数则以 `requests` 中为准,同时如果有其他 + 依赖资源,则 `options` 中的参数会继续向依赖项中分发。request中的自定义参数都会以 `options` 形式传入加载流程中的 `downloader`, `parser` 的方法中, 你可以 + 扩展 `downloader`, `parser` 收集参数完成想实现的效果。 + + 保留关键字: `uuid`, `url`, `path`, `dir`, `scene`, `type`, `priority`, `preset`, `audioLoadMode`, `ext`, `bundle`, `onFileProgress`, `maxConcurrency`, `maxRequestsPerFrame` + `maxRetryCount`, `version`, `responseType`, `withCredentials`, `mimeType`, `timeout`, `header`, `reload`, `cacheAsset`, `cacheEnabled`, + 请不要使用这些字段为自定义参数! + @param requests The request you want to load + @param options Optional parameters + @param onProgress Callback invoked when progression change + @param onComplete Callback invoked when finish loading + + @example + ```js + cc.assetManager.loadAny({url: 'http://example.com/a.png'}, (err, img) => cc.log(img)); + cc.assetManager.loadAny(['60sVXiTH1D/6Aft4MRt9VC'], (err, assets) => cc.log(assets)); + cc.assetManager.loadAny([{ uuid: '0cbZa5Y71CTZAccaIFluuZ'}, {url: 'http://example.com/a.png'}], (err, assets) => cc.log(assets)); + cc.assetManager.downloader.register('.asset', (url, options, onComplete) => { + url += '?userName=' + options.userName + "&password=" + options.password; + cc.assetManager.downloader.downloadFile(url, null, onComplete); + }); + cc.assetManager.parser.register('.asset', (file, options, onComplete) => { + var json = JSON.parse(file); + var skin = json[options.skin]; + var model = json[options.model]; + onComplete(null, {skin, model}); + }); + cc.assetManager.loadAny({ url: 'http://example.com/my.asset', skin: 'xxx', model: 'xxx', userName: 'xxx', password: 'xxx' }); + ``` + */ + loadAny(requests: string | string[] | Record | Record[], options: Record, onProgress: (finished: number, total: number, item: cc.AssetManager.RequestItem) => void, onComplete: (err: Error, data: any) => void): void; + loadAny(requests: string | string[] | Record | Record[], onProgress: (finished: number, total: number, item: cc.AssetManager.RequestItem) => void, onComplete: (err: Error, data: any) => void): void; + loadAny(requests: string | string[] | Record | Record[], options: Record, onComplete: (err: Error, data: any) => void): void; + loadAny(requests: string | string[] | Record | Record[], onComplete: (err: Error, data: any) => void): void; + loadAny(requests: string | string[] | Record | Record[], options: Record): void; + loadAny(requests: string | string[] | Record | Record[]): void; + /** + !#en + General interface used to preload assets with a progression callback and a complete callback.It is highly recommended that you use more simple API, such as `preloadRes`, `preloadResDir` etc. + Everything about preload is just likes `cc.assetManager.loadAny`, the difference is `cc.assetManager.preloadAny` will only download asset but not parse asset. You need to invoke `cc.assetManager.loadAny(preloadTask)` + to finish loading asset + + !#zh + 通用预加载资源接口,可传入进度回调以及完成回调,非常建议你使用更简单的 API ,例如 `preloadRes`, `preloadResDir` 等。`preloadAny` 和 `loadAny` 几乎一样,区别在于 `preloadAny` 只会下载资源,不会去解析资源,你需要调用 `cc.assetManager.loadAny(preloadTask)` + 来完成资源加载。 + @param requests The request you want to preload + @param options Optional parameters + @param onProgress Callback invoked when progression change + @param onComplete Callback invoked when finish preloading + + @example + ```js + cc.assetManager.preloadAny('0cbZa5Y71CTZAccaIFluuZ', (err) => cc.assetManager.loadAny('0cbZa5Y71CTZAccaIFluuZ')); + ``` + */ + preloadAny(requests: string | string[] | Record | Record[], options: Record, onProgress: (finished: number, total: number, item: cc.AssetManager.RequestItem) => void, onComplete: (err: Error, items: cc.AssetManager.RequestItem[]) => void): void; + preloadAny(requests: string | string[] | Record | Record[], onProgress: (finished: number, total: number, item: cc.AssetManager.RequestItem) => void, onComplete: (err: Error, items: cc.AssetManager.RequestItem[]) => void): void; + preloadAny(requests: string | string[] | Record | Record[], options: Record, onComplete: (err: Error, items: cc.AssetManager.RequestItem[]) => void): void; + preloadAny(requests: string | string[] | Record | Record[], onComplete: (err: Error, items: cc.AssetManager.RequestItem[]) => void): void; + preloadAny(requests: string | string[] | Record | Record[], options: Record): void; + preloadAny(requests: string | string[] | Record | Record[]): void; + /** + !#en + Load native file of asset, if you check the option 'Async Load Assets', you may need to load native file with this before you use the asset + + !#zh + 加载资源的原生文件,如果你勾选了'延迟加载资源'选项,你可能需要在使用资源之前调用此方法来加载原生文件 + @param asset The asset + @param options Some optional parameters + @param onComplete Callback invoked when finish loading + + @example + ```js + cc.assetManager.postLoadNative(texture, (err) => console.log(err)); + ``` + */ + postLoadNative(asset: cc.Asset, options: Record, onComplete: (err: Error) => void): void; + postLoadNative(asset: cc.Asset, onComplete: (err: Error) => void): void; + postLoadNative(asset: cc.Asset, options: Record): void; + postLoadNative(asset: cc.Asset): void; + /** + !#en + Load remote asset with url, such as audio, image, text and so on. + + !#zh + 使用 url 加载远程资源,例如音频,图片,文本等等。 + @param url The url of asset + @param options Some optional parameters + @param onComplete Callback invoked when finish loading + + @example + ```js + cc.assetManager.loadRemote('http://www.cloud.com/test1.jpg', (err, texture) => console.log(err)); + cc.assetManager.loadRemote('http://www.cloud.com/test2.mp3', (err, audioClip) => console.log(err)); + cc.assetManager.loadRemote('http://www.cloud.com/test3', { ext: '.png' }, (err, texture) => console.log(err)); + ``` + */ + loadRemote(url: string, options: Record, onComplete: (err: Error, asset: T) => void): void; + loadRemote(url: string, onComplete: (err: Error, asset: T) => void): void; + loadRemote(url: string, options: Record): void; + loadRemote(url: string): void; + /** + !#en + Load script + + !#zh + 加载脚本 + @param url Url of the script + @param options Some optional paramters + @param onComplete Callback when script loaded or failed + + @example + ```js + loadScript('http://localhost:8080/index.js', null, (err) => console.log(err)); + ``` + */ + loadScript(url: string|string[], options: Record, onComplete: (err: Error) => void): void; + loadScript(url: string|string[], onComplete: (err: Error) => void): void; + loadScript(url: string|string[], options: Record): void; + loadScript(url: string|string[]): void; + /** + !#en + load bundle + + !#zh + 加载资源包 + @param nameOrUrl The name or root path of bundle + @param options Some optional paramter, same like downloader.downloadFile + @param onComplete Callback when bundle loaded or failed + + @example + ```js + loadBundle('http://localhost:8080/test', null, (err, bundle) => console.log(err)); + ``` + */ + loadBundle(nameOrUrl: string, options: Record, onComplete: (err: Error, bundle: cc.AssetManager.Bundle) => void): void; + loadBundle(nameOrUrl: string, onComplete: (err: Error, bundle: cc.AssetManager.Bundle) => void): void; + loadBundle(nameOrUrl: string, options: Record): void; + loadBundle(nameOrUrl: string): void; + /** + !#en + Release asset and it's dependencies. + This method will not only remove the cache of the asset in assetManager, but also clean up its content. + For example, if you release a texture, the texture asset and its gl texture data will be freed up. + Notice, this method may cause the texture to be unusable, if there are still other nodes use the same texture, they may turn to black and report gl errors. + + !#zh + 释放资源以及其依赖资源, 这个方法不仅会从 assetManager 中删除资源的缓存引用,还会清理它的资源内容。 + 比如说,当你释放一个 texture 资源,这个 texture 和它的 gl 贴图数据都会被释放。 + 注意,这个函数可能会导致资源贴图或资源所依赖的贴图不可用,如果场景中存在节点仍然依赖同样的贴图,它们可能会变黑并报 GL 错误。 + @param asset The asset to be released + + @example + ```js + // release a texture which is no longer need + cc.assetManager.releaseAsset(texture); + ``` + */ + releaseAsset(asset: cc.Asset): void; + /** + !#en + Release all assets. Refer to {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}} for detailed informations. + + !#zh + 释放所有资源。详细信息请参考 {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}} + */ + releaseAll(): void; + } + /** `cc.loader` is deprecated, please backup your project and upgrade to {{#crossLink "AssetManager"}}{{/crossLink}} */ + export class loader { + /** `cc.loader.onProgress` is deprecated, please transfer onProgress to API as a parameter */ + static onProgress: any; + /** + `cc.loader.load` is deprecated, please use {{#crossLink "AssetManager/loadAny:method"}}{{/crossLink}} instead + @param resources Url list in an array + @param progressCallback Callback invoked when progression change + @param completeCallback Callback invoked when all resources loaded + */ + static load(resources: string|string[]|{uuid?: string, url?: string, type?: string}, completeCallback?: Function): void; + static load(resources: string|string[]|{uuid?: string, url?: string, type?: string}, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: Function|null): void; + /** + `cc.loader.getXMLHttpRequest` is deprecated, please use `XMLHttpRequest` directly + */ + static getXMLHttpRequest(): XMLHttpRequest; + /** + `cc.loader.getItem` is deprecated, please use `cc.assetManager.asset.get` instead + @param id The id of the item + */ + static getItem(id: any): any; + /** + `cc.loader.loadRes` is deprecated, please use {{#crossLink "Bundle/load:method"}}{{/crossLink}} instead + @param url Url of the target resource. + The url is relative to the "resources" folder, extensions must be omitted. + @param type Only asset of type will be loaded if this argument is supplied. + @param progressCallback Callback invoked when progression change. + @param completeCallback Callback invoked when the resource loaded. + */ + static loadRes(url: string, type: typeof cc.Asset, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any) => void)|null): void; + static loadRes(url: string, type: typeof cc.Asset, completeCallback: (error: Error, resource: any) => void): void; + static loadRes(url: string, type: typeof cc.Asset): void; + static loadRes(url: string, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any) => void)|null): void; + static loadRes(url: string, completeCallback: (error: Error, resource: any) => void): void; + static loadRes(url: string): void; + /** + `cc.loader.loadResArray` is deprecated, please use {{#crossLink "Bundle/load:method"}}{{/crossLink}} instead + @param urls Array of URLs of the target resource. + The url is relative to the "resources" folder, extensions must be omitted. + @param type Only asset of type will be loaded if this argument is supplied. + @param progressCallback Callback invoked when progression change. + @param completeCallback A callback which is called when all assets have been loaded, or an error occurs. + */ + static loadResArray(url: string[], type: typeof cc.Asset, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[]) => void)|null): void; + static loadResArray(url: string[], type: typeof cc.Asset, completeCallback: (error: Error, resource: any[]) => void): void; + static loadResArray(url: string[], type: typeof cc.Asset): void; + static loadResArray(url: string[], progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[]) => void)|null): void; + static loadResArray(url: string[], completeCallback: (error: Error, resource: any[]) => void): void; + static loadResArray(url: string[]): void; + static loadResArray(url: string[], type: typeof cc.Asset[]): void; + /** + `cc.loader.loadResDir` is deprecated, please use {{#crossLink "Bundle/loadDir:method"}}{{/crossLink}} instead + @param url Url of the target folder. + The url is relative to the "resources" folder, extensions must be omitted. + @param type Only asset of type will be loaded if this argument is supplied. + @param progressCallback Callback invoked when progression change. + @param completeCallback A callback which is called when all assets have been loaded, or an error occurs. + */ + static loadResDir(url: string, type: typeof cc.Asset, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[], urls: string[]) => void)|null): void; + static loadResDir(url: string, type: typeof cc.Asset, completeCallback: (error: Error, resource: any[], urls: string[]) => void): void; + static loadResDir(url: string, type: typeof cc.Asset): void; + static loadResDir(url: string, progressCallback: (completedCount: number, totalCount: number, item: any) => void, completeCallback: ((error: Error, resource: any[], urls: string[]) => void)|null): void; + static loadResDir(url: string, completeCallback: (error: Error, resource: any[], urls: string[]) => void): void; + static loadResDir(url: string): void; + /** + `cc.loader.getRes` is deprecated, please use {{#crossLink "Bundle/get:method"}}{{/crossLink}} instead + @param url url + @param type Only asset of type will be returned if this argument is supplied. + */ + static getRes(url: string, type?: Function): any; + /** + `cc.loader.getDependsRecursively` is deprecated, please use use {{#crossLink "DependUtil/getDepsRecursively:method"}}{{/crossLink}} instead + @param owner The owner asset or the resource url or the asset's uuid + */ + static getDependsRecursively(owner: Asset|string): any[]; + /** `cc.loader.assetLoader` was removed, assetLoader and md5Pipe were merged into {{#crossLink "AssetManager/transformPipeline:property"}}{{/crossLink}} */ + static assetLoader: any; + /** `cc.loader.md5Pipe` is deprecated, assetLoader and md5Pipe were merged into {{#crossLink "AssetManager/transformPipeline:property"}}{{/crossLink}} */ + static md5Pipe: any; + /** `cc.loader.downloader` is deprecated, please use {{#crossLink "AssetManager/downloader:property"}}{{/crossLink}} instead */ + static downloader: any; + /** `cc.loader.loader` is deprecated, please use {{#crossLink "AssetManager/parser:property"}}{{/crossLink}} instead */ + static loader: any; + /** + `cc.loader.addDownloadHandlers` is deprecated, please use `cc.assetManager.downloader.register` instead + @param extMap Custom supported types with corresponded handler + */ + static addDownloadHandlers(extMap: any): void; + /** + `cc.loader.addLoadHandlers` is deprecated, please use `cc.assetManager.parser.register` instead + @param extMap Custom supported types with corresponded handler + */ + static addLoadHandlers(extMap: any): void; + /** + `cc.loader.release` is deprecated, please use {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}} instead + @param asset asset + */ + static release(asset: Asset|string|any[]): void; + /** + `cc.loader.releaseAsset` is deprecated, please use {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}} instead + @param asset asset + */ + static releaseAsset(asset: Asset): void; + /** + `cc.loader.releaseRes` is deprecated, please use {{#crossLink "AssetManager/releaseRes:method"}}{{/crossLink}} instead + @param url url + @param type Only asset of type will be released if this argument is supplied. + */ + static releaseRes(url: string, type?: Function): void; + /** + `cc.loader.releaseResDir` was removed, please use {{#crossLink "AssetManager/releaseRes:method"}}{{/crossLink}} instead + */ + static releaseResDir(): void; + /** + `cc.loader.releaseAll` is deprecated, please use {{#crossLink "AssetManager/releaseAll:method"}}{{/crossLink}} instead + */ + static releaseAll(): void; + /** + `cc.loader.removeItem` is deprecated, please use `cc.assetManager.assets.remove` instead + @param id The id of the item + */ + static removeItem(id: any): boolean; + /** + `cc.loader.setAutoRelease` is deprecated, if you want to prevent some asset from auto releasing, please use {{#crossLink "Asset/addRef:method"}}{{/crossLink}} instead + @param assetOrUrlOrUuid asset object or the raw asset's url or uuid + @param autoRelease indicates whether should release automatically + */ + static setAutoRelease(assetOrUrlOrUuid: Asset|string, autoRelease: boolean): void; + /** + `cc.loader.setAutoReleaseRecursively` is deprecated, if you want to prevent some asset from auto releasing, please use {{#crossLink "Asset/addRef:method"}}{{/crossLink}} instead + @param assetOrUrlOrUuid asset object or the raw asset's url or uuid + @param autoRelease indicates whether should release automatically + */ + static setAutoReleaseRecursively(assetOrUrlOrUuid: Asset|string, autoRelease: boolean): void; + /** + `cc.loader.isAutoRelease` is deprecated + @param assetOrUrl asset object or the raw asset's url + */ + static isAutoRelease(assetOrUrl: Asset|string): boolean; + } + /** `cc.url` is deprecated */ + export class url { + /** + `cc.url.raw` is deprecated, please use `cc.resources.load` directly, or use `Asset.nativeUrl` instead. + @param url url + */ + static raw(url: string): string; + } + /** `cc.LoadingItems` was removed, please use {{#crossLink "Task"}}{{/crossLink}} instead */ + export class LoadingItems { + } + /** !#en + Base class for handling assets used in Creator.
+ + You may want to override:
+ - createNode
+ - getset functions of _nativeAsset
+ - cc.Object._serialize
+ - cc.Object._deserialize
+ !#zh + Creator 中的资源基类。
+ + 您可能需要重写:
+ - createNode
+ - _nativeAsset 的 getset 方法
+ - cc.Object._serialize
+ - cc.Object._deserialize
*/ + export class Asset extends Object { + /** `cc.Asset.url` is deprecated, please use {{#crossLink "Asset/nativeUrl:property"}}{{/crossLink}} instead */ + url: string; + /** !#en + Whether the asset is loaded or not. + !#zh + 该资源是否已经成功加载。 */ + loaded: boolean; + /** !#en + Returns the url of this asset's native object, if none it will returns an empty string. + !#zh + 返回该资源对应的目标平台资源的 URL,如果没有将返回一个空字符串。 */ + nativeUrl: string; + /** !#en + The number of reference + + !#zh + 引用的数量 */ + refCount: number; + /** !#en Indicates whether its dependent raw assets can support deferred load if the owner scene (or prefab) is marked as `asyncLoadAssets`. + !#zh 当场景或 Prefab 被标记为 `asyncLoadAssets`,禁止延迟加载该资源所依赖的其它原始资源。 */ + static preventDeferredLoadDependents: boolean; + /** !#en Indicates whether its native object should be preloaded from native url. + !#zh 禁止预加载原生对象。 */ + static preventPreloadNativeObject: boolean; + /** + !#en + Returns the asset's url. + + The `Asset` object overrides the `toString()` method of the `Object` object. + For `Asset` objects, the `toString()` method returns a string representation of the object. + JavaScript calls the `toString()` method automatically when an asset is to be represented as a text value or when a texture is referred to in a string concatenation. + !#zh + 返回资源的 URL。 + + Asset 对象将会重写 Object 对象的 `toString()` 方法。 + 对于 Asset 对象,`toString()` 方法返回该对象的字符串表示形式。 + 当资源要表示为文本值时或在字符串连接时引用时,JavaScript 会自动调用 `toString()` 方法。 + */ + toString(): string; + /** + !#en + Create a new node using this asset in the scene.
+ If this type of asset dont have its corresponding node type, this method should be null. + !#zh + 使用该资源在场景中创建一个新节点。
+ 如果这类资源没有相应的节点类型,该方法应该是空的。 + @param callback callback + */ + createNode(callback: (error: string, node: any) => void): void; + /** + !#en + Add references of asset + + !#zh + 增加资源的引用 + */ + addRef(): cc.Asset; + /** + !#en + Reduce references of asset and it will be auto released when refCount equals 0. + + !#zh + 减少资源的引用并尝试进行自动释放。 + */ + decRef(): cc.Asset; + } + /** Predefined constants */ + export class macro { + /** `cc.macro.DOWNLOAD_MAX_CONCURRENT` is deprecated now, please use {{#crossLink "Downloader/maxConcurrency:property"}}{{/crossLink}} instead */ + static DOWNLOAD_MAX_CONCURRENT: number; + /** PI / 180 */ + static RAD: number; + /** One degree */ + static DEG: number; + static REPEAT_FOREVER: number; + static FLT_EPSILON: number; + /** Minimum z index value for node */ + static MIN_ZINDEX: number; + /** Maximum z index value for node */ + static MAX_ZINDEX: number; + static ONE: number; + static ZERO: number; + static SRC_ALPHA: number; + static SRC_ALPHA_SATURATE: number; + static SRC_COLOR: number; + static DST_ALPHA: number; + static DST_COLOR: number; + static ONE_MINUS_SRC_ALPHA: number; + static ONE_MINUS_SRC_COLOR: number; + static ONE_MINUS_DST_ALPHA: number; + static ONE_MINUS_DST_COLOR: number; + static ONE_MINUS_CONSTANT_ALPHA: number; + static ONE_MINUS_CONSTANT_COLOR: number; + /** Oriented vertically */ + static ORIENTATION_PORTRAIT: number; + /** Oriented horizontally */ + static ORIENTATION_LANDSCAPE: number; + /** Oriented automatically */ + static ORIENTATION_AUTO: number; + /**

+ If enabled, the texture coordinates will be calculated by using this formula:
+ - texCoord.left = (rect.x*2+1) / (texture.wide*2);
+ - texCoord.right = texCoord.left + (rect.width*2-2)/(texture.wide*2);
+
+ The same for bottom and top.
+
+ This formula prevents artifacts by using 99% of the texture.
+ The "correct" way to prevent artifacts is by expand the texture's border with the same color by 1 pixel
+
+ Affected component:
+ - cc.TMXLayer
+
+ Enabled by default. To disabled set it to 0.
+ To modify it, in Web engine please refer to CCMacro.js, in JSB please refer to CCConfig.h +

*/ + static FIX_ARTIFACTS_BY_STRECHING_TEXEL_TMX: number; + /** Position of the FPS (Default: 0,0 (bottom-left corner))
+ To modify it, in Web engine please refer to CCMacro.js, in JSB please refer to CCConfig.h */ + static DIRECTOR_STATS_POSITION: Vec2; + /**

+ If enabled, actions that alter the position property (eg: CCMoveBy, CCJumpBy, CCBezierBy, etc..) will be stacked.
+ If you run 2 or more 'position' actions at the same time on a node, then end position will be the sum of all the positions.
+ If disabled, only the last run action will take effect. +

*/ + static ENABLE_STACKABLE_ACTIONS: number; + /** !#en + The timeout to determine whether a touch is no longer active and should be removed. + The reason to add this timeout is due to an issue in X5 browser core, + when X5 is presented in wechat on Android, if a touch is glissed from the bottom up, and leave the page area, + no touch cancel event is triggered, and the touch will be considered active forever. + After multiple times of this action, our maximum touches number will be reached and all new touches will be ignored. + So this new mechanism can remove the touch that should be inactive if it's not updated during the last 5000 milliseconds. + Though it might remove a real touch if it's just not moving for the last 5 seconds which is not easy with the sensibility of mobile touch screen. + You can modify this value to have a better behavior if you find it's not enough. + !#zh + 用于甄别一个触点对象是否已经失效并且可以被移除的延时时长 + 添加这个时长的原因是 X5 内核在微信浏览器中出现的一个 bug。 + 在这个环境下,如果用户将一个触点从底向上移出页面区域,将不会触发任何 touch cancel 或 touch end 事件,而这个触点会被永远当作停留在页面上的有效触点。 + 重复这样操作几次之后,屏幕上的触点数量将达到我们的事件系统所支持的最高触点数量,之后所有的触摸事件都将被忽略。 + 所以这个新的机制可以在触点在一定时间内没有任何更新的情况下视为失效触点并从事件系统中移除。 + 当然,这也可能移除一个真实的触点,如果用户的触点真的在一定时间段内完全没有移动(这在当前手机屏幕的灵敏度下会很难)。 + 你可以修改这个值来获得你需要的效果,默认值是 5000 毫秒。 */ + static TOUCH_TIMEOUT: number; + /** !#en + The maximum vertex count for a single batched draw call. + !#zh + 最大可以被单次批处理渲染的顶点数量。 */ + static BATCH_VERTEX_COUNT: number; + /** !#en + Whether or not enabled tiled map auto culling. If you set the TiledMap skew or rotation, then need to manually disable this, otherwise, the rendering will be wrong. + !#zh + 是否开启瓦片地图的自动裁减功能。瓦片地图如果设置了 skew, rotation 或者采用了摄像机的话,需要手动关闭,否则渲染会出错。 */ + static ENABLE_TILEDMAP_CULLING: boolean; + /** !#en + Boolean that indicates if the canvas contains an alpha channel, default sets to false for better performance. + Though if you want to make your canvas background transparent and show other dom elements at the background, + you can set it to true before `cc.game.run`. + Web only. + !#zh + 用于设置 Canvas 背景是否支持 alpha 通道,默认为 false,这样可以有更高的性能表现。 + 如果你希望 Canvas 背景是透明的,并显示背后的其他 DOM 元素,你可以在 `cc.game.run` 之前将这个值设为 true。 + 仅支持 Web */ + static ENABLE_TRANSPARENT_CANVAS: boolean; + /** !#en + Boolean that indicates if the WebGL context is created with `antialias` option turned on, default value is false. + Set it to true could make your game graphics slightly smoother, like texture hard edges when rotated. + Whether to use this really depend on your game design and targeted platform, + device with retina display usually have good detail on graphics with or without this option, + you probably don't want antialias if your game style is pixel art based. + Also, it could have great performance impact with some browser / device using software MSAA. + You can set it to true before `cc.game.run`. + Web only. + !#zh + 用于设置在创建 WebGL Context 时是否开启抗锯齿选项,默认值是 false。 + 将这个选项设置为 true 会让你的游戏画面稍稍平滑一些,比如旋转硬边贴图时的锯齿。是否开启这个选项很大程度上取决于你的游戏和面向的平台。 + 在大多数拥有 retina 级别屏幕的设备上用户往往无法区分这个选项带来的变化;如果你的游戏选择像素艺术风格,你也多半不会想开启这个选项。 + 同时,在少部分使用软件级别抗锯齿算法的设备或浏览器上,这个选项会对性能产生比较大的影响。 + 你可以在 `cc.game.run` 之前设置这个值,否则它不会生效。 + 仅支持 Web */ + static ENABLE_WEBGL_ANTIALIAS: boolean; + /** !#en + Whether or not enable auto culling. + This feature have been removed in v2.0 new renderer due to overall performance consumption. + We have no plan currently to re-enable auto culling. + If your game have more dynamic objects, we suggest to disable auto culling. + If your game have more static objects, we suggest to enable auto culling. + !#zh + 是否开启自动裁减功能,开启裁减功能将会把在屏幕外的物体从渲染队列中去除掉。 + 这个功能在 v2.0 的新渲染器中被移除了,因为它在大多数游戏中所带来的损耗要高于性能的提升,目前我们没有计划重新支持自动裁剪。 + 如果游戏中的动态物体比较多的话,建议将此选项关闭。 + 如果游戏中的静态物体比较多的话,建议将此选项打开。 */ + static ENABLE_CULLING: boolean; + /** !#en + Whether to clear the original image cache after uploaded a texture to GPU. If cleared, [Dynamic Atlas](https://docs.cocos.com/creator/manual/en/advanced-topics/dynamic-atlas.html) will not be supported. + Normally you don't need to enable this option on the web platform, because Image object doesn't consume too much memory. + But on WeChat Game platform, the current version cache decoded data in Image object, which has high memory usage. + So we enabled this option by default on WeChat, so that we can release Image cache immediately after uploaded to GPU. + !#zh + 是否在将贴图上传至 GPU 之后删除原始图片缓存,删除之后图片将无法进行 [动态合图](https://docs.cocos.com/creator/manual/zh/advanced-topics/dynamic-atlas.html)。 + 在 Web 平台,你通常不需要开启这个选项,因为在 Web 平台 Image 对象所占用的内存很小。 + 但是在微信小游戏平台的当前版本,Image 对象会缓存解码后的图片数据,它所占用的内存空间很大。 + 所以我们在微信平台默认开启了这个选项,这样我们就可以在上传 GL 贴图之后立即释放 Image 对象的内存,避免过高的内存占用。 */ + static CLEANUP_IMAGE_CACHE: boolean; + /** !#en + Whether or not show mesh wire frame. + !#zh + 是否显示网格的线框。 */ + static SHOW_MESH_WIREFRAME: boolean; + /** !#en + Whether or not show mesh normal. + !#zh + 是否显示网格的法线。 */ + static SHOW_MESH_NORMAL: boolean; + /** !#en + Whether to enable multi-touch. + !#zh + 是否开启多点触摸 */ + static ENABLE_MULTI_TOUCH: boolean; + /** References: + https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap + https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/createImageBitmap + + !#en + Whether to use image bitmap first. If enabled, memory usage will increase. + + !#zh + 是否优先使用 image bitmap,启用之后,内存占用会变高 */ + static ALLOW_IMAGE_BITMAP: boolean; + /** !#en + Whether to use native TTF renderer which is faster but layout slightly different. + + !#zh + 是否使用原生的文本渲染机制, 布局和编辑器有差异. */ + static ENABLE_NATIVE_TTF_RENDERER: boolean; + /** !#en + The image format supported by the engine defaults, and the supported formats may differ in different build platforms and device types. + Currently all platform and device support ['.webp', '.jpg', '.jpeg', '.bmp', '.png'], The iOS mobile platform also supports the PVR format。 + !#zh + 引擎默认支持的图片格式,支持的格式可能在不同的构建平台和设备类型上有所差别。 + 目前所有平台和设备支持的格式有 ['.webp', '.jpg', '.jpeg', '.bmp', '.png']. 另外 Ios 手机平台还额外支持了 PVR 格式。 */ + static SUPPORT_TEXTURE_FORMATS: string[]; + } + /** !#en Class for BitmapFont handling. + !#zh 位图字体资源类。 */ + export class BitmapFont extends Font { + } + /** !#en Class for audio data handling. + !#zh 音频资源类。 */ + export class AudioClip extends Asset implements EventTarget { + /** !#en Get the audio clip duration + !#zh 获取音频剪辑的长度 */ + duration: number; + /** + !#en Checks whether the EventTarget object has any callback registered for a specific type of event. + !#zh 检查事件目标对象是否有为特定类型的事件注册的回调。 + @param type The type of event. + */ + hasEventListener(type: string): boolean; + /** + !#en + Register an callback of a specific event type on the EventTarget. + This type of event should be triggered via `emit`. + !#zh + 注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, node); + ``` + */ + on(type: string, callback: T, target?: any, useCapture?: boolean): T; + /** + !#en + Removes the listeners previously registered with the same type, callback, target and or useCapture, + if only type is passed as parameter, all listeners registered with that type will be removed. + !#zh + 删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。 + @param type A string representing the event type being removed. + @param callback The callback to remove. + @param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed + + @example + ```js + // register fire eventListener + var callback = eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, target); + // remove fire event listener + eventTarget.off('fire', callback, target); + // remove all fire event listeners + eventTarget.off('fire'); + ``` + */ + off(type: string, callback?: Function, target?: any): void; + /** + !#en Removes all callbacks previously registered with the same target (passed as parameter). + This is not for removing all listeners in the current event target, + and this is not for removing all listeners the target parameter have registered. + It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter. + !#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。 + 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。 + 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。 + @param target The target to be searched for all related listeners + */ + targetOff(target: any): void; + /** + !#en + Register an callback of a specific event type on the EventTarget, + the callback will remove itself after the first time it is triggered. + !#zh + 注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.once('fire', function () { + cc.log("this is the callback and will be invoked only once"); + }, node); + ``` + */ + once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void; + /** + !#en + Send an event with the event object. + !#zh + 通过事件对象派发事件 + @param event event + */ + dispatchEvent(event: Event): void; + /** + !#en + Destroy all callbackInfos. + !#zh + 销毁记录的事件 + */ + clear(): void; + } + /** undefined */ + export class BufferAsset extends Asset { + } + /** !#en Class for Font handling. + !#zh 字体资源类。 */ + export class Font extends Asset { + } + /** !#en Class for LabelAtlas handling. + !#zh 艺术数字字体资源类。 */ + export class LabelAtlas extends BitmapFont { + } + /** !#en + Class for JSON file. When the JSON file is loaded, this object is returned. + The parsed JSON object can be accessed through the `json` attribute in it.
+ If you want to get the original JSON text, you should modify the extname to `.txt` + so that it is loaded as a `TextAsset` instead of a `JsonAsset`. + + !#zh + JSON 资源类。JSON 文件加载后,将会返回该对象。可以通过其中的 `json` 属性访问解析后的 JSON 对象。
+ 如果你想要获得 JSON 的原始文本,那么应该修改源文件的后缀为 `.txt`,这样就会加载为一个 `TextAsset` 而不是 `JsonAsset`。 */ + export class JsonAsset extends Asset { + /** The loaded JSON object. */ + json: any; + } + /** !#en Class for prefab handling. + !#zh 预制资源类。 */ + export class Prefab extends Asset { + /** the main cc.Node in the prefab */ + data: Node; + /** !#zh + 设置实例化这个 prefab 时所用的优化策略。根据使用情况设置为合适的值,能优化该 prefab 实例化所用的时间。 + !#en + Indicates the optimization policy for instantiating this prefab. + Set to a suitable value based on usage, can optimize the time it takes to instantiate this prefab. */ + optimizationPolicy: Prefab.OptimizationPolicy; + /** !#en Indicates the raw assets of this prefab can be load after prefab loaded. + !#zh 指示该 Prefab 依赖的资源可否在 Prefab 加载后再延迟加载。 */ + asyncLoadAssets: boolean; + readonly: boolean; + /** + Dynamically translation prefab data into minimized code.
+ This method will be called automatically before the first time the prefab being instantiated, + but you can re-call to refresh the create function once you modified the original prefab data in script. + */ + compileCreateFunction(): void; + } + /** Render textures are textures that can be rendered to. */ + export class RenderTexture extends Texture2D { + /** + !#en + Init the render texture with size. + !#zh + 初始化 render texture + @param width width + @param height height + @param depthStencilFormat depthStencilFormat + */ + initWithSize(width?: number, height?: number, depthStencilFormat?: number): void; + /** + !#en + Get pixels from render texture, the pixels data stores in a RGBA Uint8Array. + It will return a new (width * height * 4) length Uint8Array by default。 + You can specify a data to store the pixels to reuse the data, + you and can specify other params to specify the texture region to read. + !#zh + 从 render texture 读取像素数据,数据类型为 RGBA 格式的 Uint8Array 数组。 + 默认每次调用此函数会生成一个大小为 (长 x 高 x 4) 的 Uint8Array。 + 你可以通过传入 data 来接收像素数据,也可以通过传参来指定需要读取的区域的像素。 + @param data data + @param x x + @param y y + @param w w + @param h h + */ + readPixels(data?: Uint8Array, x?: number, y?: number, w?: number, h?: number): Uint8Array; + } + /** !#en Class for scene handling. + !#zh 场景资源类。 */ + export class SceneAsset extends Asset { + scene: Scene; + /** !#en Indicates the raw assets of this scene can be load after scene launched. + !#zh 指示该场景依赖的资源可否在场景切换后再延迟加载。 */ + asyncLoadAssets: boolean; + } + /** !#en Class for script handling. + !#zh Script 资源类。 */ + export class _Script extends Asset { + } + /** !#en Class for JavaScript handling. + !#zh JavaScript 资源类。 */ + export class _JavaScript extends Asset { + } + /** !#en Class for TypeScript handling. + !#zh TypeScript 资源类。 */ + export class TypeScript extends Asset { + } + /** !#en Class for sprite atlas handling. + !#zh 精灵图集资源类。 */ + export class SpriteAtlas extends Asset { + /** + Returns the texture of the sprite atlas + */ + getTexture(): Texture2D; + /** + Returns the sprite frame correspond to the given key in sprite atlas. + @param key key + */ + getSpriteFrame(key: string): SpriteFrame; + /** + Returns the sprite frames in sprite atlas. + */ + getSpriteFrames(): SpriteFrame[]; + } + /** !#en + A cc.SpriteFrame has:
+ - texture: A cc.Texture2D that will be used by render components
+ - rectangle: A rectangle of the texture + + !#zh + 一个 SpriteFrame 包含:
+ - 纹理:会被渲染组件使用的 Texture2D 对象。
+ - 矩形:在纹理中的矩形区域。 */ + export class SpriteFrame extends Asset implements EventTarget { + /** !#en Top border of the sprite + !#zh sprite 的顶部边框 */ + insetTop: number; + /** !#en Bottom border of the sprite + !#zh sprite 的底部边框 */ + insetBottom: number; + /** !#en Left border of the sprite + !#zh sprite 的左边边框 */ + insetLeft: number; + /** !#en Right border of the sprite + !#zh sprite 的左边边框 */ + insetRight: number; + /** + !#en + Constructor of SpriteFrame class. + !#zh + SpriteFrame 类的构造函数。 + @param filename filename + @param rect rect + @param rotated Whether the frame is rotated in the texture + @param offset The offset of the frame in the texture + @param originalSize The size of the frame in the texture + */ + constructor(filename?: string|Texture2D, rect?: Rect, rotated?: boolean, offset?: Vec2, originalSize?: Size); + /** + !#en Returns whether the texture have been loaded + !#zh 返回是否已加载纹理 + */ + textureLoaded(): boolean; + /** + !#en Returns whether the sprite frame is rotated in the texture. + !#zh 获取 SpriteFrame 是否旋转 + */ + isRotated(): boolean; + /** + !#en Set whether the sprite frame is rotated in the texture. + !#zh 设置 SpriteFrame 是否旋转 + @param bRotated bRotated + */ + setRotated(bRotated: boolean): void; + /** + !#en Returns whether the sprite frame is flip x axis in the texture. + !#zh 获取 SpriteFrame 是否反转 x 轴 + */ + isFlipX(): boolean; + /** + !#en Returns whether the sprite frame is flip y axis in the texture. + !#zh 获取 SpriteFrame 是否反转 y 轴 + */ + isFlipY(): boolean; + /** + !#en Set whether the sprite frame is flip x axis in the texture. + !#zh 设置 SpriteFrame 是否翻转 x 轴 + @param flipX flipX + */ + setFlipX(flipX: boolean): void; + /** + !#en Set whether the sprite frame is flip y axis in the texture. + !#zh 设置 SpriteFrame 是否翻转 y 轴 + @param flipY flipY + */ + setFlipY(flipY: boolean): void; + /** + !#en Returns the rect of the sprite frame in the texture. + !#zh 获取 SpriteFrame 的纹理矩形区域 + */ + getRect(): Rect; + /** + !#en Sets the rect of the sprite frame in the texture. + !#zh 设置 SpriteFrame 的纹理矩形区域 + @param rect rect + */ + setRect(rect: Rect): void; + /** + !#en Returns the original size of the trimmed image. + !#zh 获取修剪前的原始大小 + */ + getOriginalSize(): Size; + /** + !#en Sets the original size of the trimmed image. + !#zh 设置修剪前的原始大小 + @param size size + */ + setOriginalSize(size: Size): void; + /** + !#en Returns the texture of the frame. + !#zh 获取使用的纹理实例 + */ + getTexture(): Texture2D; + /** + !#en Returns the offset of the frame in the texture. + !#zh 获取偏移量 + */ + getOffset(): Vec2; + /** + !#en Sets the offset of the frame in the texture. + !#zh 设置偏移量 + @param offsets offsets + */ + setOffset(offsets: Vec2): void; + /** + !#en Clone the sprite frame. + !#zh 克隆 SpriteFrame + */ + clone(): SpriteFrame; + /** + !#en Set SpriteFrame with Texture, rect, rotated, offset and originalSize.
+ !#zh 通过 Texture,rect,rotated,offset 和 originalSize 设置 SpriteFrame。 + @param texture texture + @param rect rect + @param rotated rotated + @param offset offset + @param originalSize originalSize + */ + setTexture(texture: Texture2D, rect?: Rect, rotated?: boolean, offset?: Vec2, originalSize?: Size): boolean; + /** + !#en If a loading scene (or prefab) is marked as `asyncLoadAssets`, all the textures of the SpriteFrame which + associated by user's custom Components in the scene, will not preload automatically. + These textures will be load when Sprite component is going to render the SpriteFrames. + You can call this method if you want to load the texture early. + !#zh 当加载中的场景或 Prefab 被标记为 `asyncLoadAssets` 时,用户在场景中由自定义组件关联到的所有 SpriteFrame 的贴图都不会被提前加载。 + 只有当 Sprite 组件要渲染这些 SpriteFrame 时,才会检查贴图是否加载。如果你希望加载过程提前,你可以手工调用这个方法。 + + @example + ```js + if (spriteFrame.textureLoaded()) { + this._onSpriteFrameLoaded(); + } + else { + spriteFrame.once('load', this._onSpriteFrameLoaded, this); + spriteFrame.ensureLoadTexture(); + } + ``` + */ + ensureLoadTexture(): void; + /** + !#en + If you do not need to use the SpriteFrame temporarily, you can call this method so that its texture could be garbage collected. Then when you need to render the SpriteFrame, you should call `ensureLoadTexture` manually to reload texture. + !#zh + 当你暂时不再使用这个 SpriteFrame 时,可以调用这个方法来保证引用的贴图对象能被 GC。然后当你要渲染 SpriteFrame 时,你需要手动调用 `ensureLoadTexture` 来重新加载贴图。 + */ + clearTexture(): void; + /** + !#en Checks whether the EventTarget object has any callback registered for a specific type of event. + !#zh 检查事件目标对象是否有为特定类型的事件注册的回调。 + @param type The type of event. + */ + hasEventListener(type: string): boolean; + /** + !#en + Register an callback of a specific event type on the EventTarget. + This type of event should be triggered via `emit`. + !#zh + 注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, node); + ``` + */ + on(type: string, callback: T, target?: any, useCapture?: boolean): T; + /** + !#en + Removes the listeners previously registered with the same type, callback, target and or useCapture, + if only type is passed as parameter, all listeners registered with that type will be removed. + !#zh + 删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。 + @param type A string representing the event type being removed. + @param callback The callback to remove. + @param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed + + @example + ```js + // register fire eventListener + var callback = eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, target); + // remove fire event listener + eventTarget.off('fire', callback, target); + // remove all fire event listeners + eventTarget.off('fire'); + ``` + */ + off(type: string, callback?: Function, target?: any): void; + /** + !#en Removes all callbacks previously registered with the same target (passed as parameter). + This is not for removing all listeners in the current event target, + and this is not for removing all listeners the target parameter have registered. + It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter. + !#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。 + 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。 + 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。 + @param target The target to be searched for all related listeners + */ + targetOff(target: any): void; + /** + !#en + Register an callback of a specific event type on the EventTarget, + the callback will remove itself after the first time it is triggered. + !#zh + 注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.once('fire', function () { + cc.log("this is the callback and will be invoked only once"); + }, node); + ``` + */ + once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void; + /** + !#en + Send an event with the event object. + !#zh + 通过事件对象派发事件 + @param event event + */ + dispatchEvent(event: Event): void; + /** + !#en + Destroy all callbackInfos. + !#zh + 销毁记录的事件 + */ + clear(): void; + } + /** !#en Class for TTFFont handling. + !#zh TTF 字体资源类。 */ + export class TTFFont extends Font { + } + /** !#en Class for text file. + !#zh 文本资源类。 */ + export class TextAsset extends Asset { + /** The text contents of the resource. */ + text: string; + } + /** This class allows to easily create OpenGL or Canvas 2D textures from images or raw data. */ + export class Texture2D extends Asset implements EventTarget { + /** !#en Sets whether generate mipmaps for the texture + !#zh 是否为纹理设置生成 mipmaps。 */ + genMipmaps: boolean; + /** !#en + Sets whether texture can be packed into texture atlas. + If need use texture uv in custom Effect, please sets packable to false. + !#zh + 设置纹理是否允许参与合图。 + 如果需要在自定义 Effect 中使用纹理 UV,需要禁止该选项。 */ + packable: boolean; + /** !#en + Whether the texture is loaded or not + !#zh + 贴图是否已经成功加载 */ + loaded: boolean; + /** !#en + Texture width in pixel + !#zh + 贴图像素宽度 */ + width: number; + /** !#en + Texture height in pixel + !#zh + 贴图像素高度 */ + height: number; + /** + !#en + Get renderer texture implementation object + extended from render.Texture2D + !#zh 返回渲染器内部贴图对象 + */ + getImpl(): void; + /** + Update texture options, not available in Canvas render mode. + image, format, premultiplyAlpha can not be updated in native. + @param options options + */ + update(options: {image: DOMImageElement; genMipmaps: boolean; format: Texture2D.PixelFormat; minFilter: Texture2D.Filter; magFilter: Texture2D.Filter; wrapS: WrapMode; wrapT: WrapMode; premultiplyAlpha: boolean; }): void; + /** + !#en + Init with HTML element. + !#zh 用 HTML Image 或 Canvas 对象初始化贴图。 + @param element element + + @example + ```js + var img = new Image(); + img.src = dataURL; + texture.initWithElement(img); + ``` + */ + initWithElement(element: HTMLImageElement|HTMLCanvasElement): void; + /** + !#en + Intializes with texture data in ArrayBufferView. + !#zh 使用一个存储在 ArrayBufferView 中的图像数据(raw data)初始化数据。 + @param data data + @param pixelFormat pixelFormat + @param pixelsWidth pixelsWidth + @param pixelsHeight pixelsHeight + */ + initWithData(data: ArrayBufferView, pixelFormat: number, pixelsWidth: number, pixelsHeight: number): boolean; + /** + !#en + HTMLElement Object getter, available only on web.
+ Note: texture is packed into texture atlas by default
+ you should set texture.packable as false before getting Html element object. + !#zh 获取当前贴图对应的 HTML Image 或 Canvas 对象,只在 Web 平台下有效。
+ 注意:
+ texture 默认参与动态合图,如果需要获取到正确的 Html 元素对象,需要先设置 texture.packable 为 false + */ + getHtmlElementObj(): HTMLImageElement; + /** + !#en + Destory this texture and immediately release its video memory. (Inherit from cc.Object.destroy)
+ After destroy, this object is not usable anymore. + You can use cc.isValid(obj) to check whether the object is destroyed before accessing it. + !#zh + 销毁该贴图,并立即释放它对应的显存。(继承自 cc.Object.destroy)
+ 销毁后,该对象不再可用。您可以在访问对象之前使用 cc.isValid(obj) 来检查对象是否已被销毁。 + */ + destroy(): boolean; + /** + !#en + Pixel format of the texture. + !#zh 获取纹理的像素格式。 + */ + getPixelFormat(): number; + /** + !#en + Whether or not the texture has their Alpha premultiplied. + !#zh 检查纹理在上传 GPU 时预乘选项是否开启。 + */ + hasPremultipliedAlpha(): boolean; + /** + !#en + Handler of texture loaded event. + Since v2.0, you don't need to invoke this function, it will be invoked automatically after texture loaded. + !#zh 贴图加载事件处理器。v2.0 之后你将不在需要手动执行这个函数,它会在贴图加载成功之后自动执行。 + @param premultiplied premultiplied + */ + handleLoadedTexture(premultiplied?: boolean): void; + /** + !#en + Description of cc.Texture2D. + !#zh cc.Texture2D 描述。 + */ + description(): string; + /** + !#en + Release texture, please use destroy instead. + !#zh 释放纹理,请使用 destroy 替代。 + */ + releaseTexture(): void; + /** + !#en Sets the wrap s and wrap t options.
+ If the texture size is NPOT (non power of 2), then in can only use gl.CLAMP_TO_EDGE in gl.TEXTURE_WRAP_{S,T}. + !#zh 设置纹理包装模式。 + 若纹理贴图尺寸是 NPOT(non power of 2),则只能使用 Texture2D.WrapMode.CLAMP_TO_EDGE。 + @param wrapS wrapS + @param wrapT wrapT + */ + setWrapMode(wrapS: Texture2D.WrapMode, wrapT: Texture2D.WrapMode): void; + /** + !#en Sets the minFilter and magFilter options + !#zh 设置纹理贴图缩小和放大过滤器算法选项。 + @param minFilter minFilter + @param magFilter magFilter + */ + setFilters(minFilter: Texture2D.Filter, magFilter: Texture2D.Filter): void; + /** + !#en + Sets the flipY options + !#zh 设置贴图的纵向翻转选项。 + @param flipY flipY + */ + setFlipY(flipY: boolean): void; + /** + !#en + Sets the premultiply alpha options + !#zh 设置贴图的预乘选项。 + @param premultiply premultiply + */ + setPremultiplyAlpha(premultiply: boolean): void; + /** + !#en Checks whether the EventTarget object has any callback registered for a specific type of event. + !#zh 检查事件目标对象是否有为特定类型的事件注册的回调。 + @param type The type of event. + */ + hasEventListener(type: string): boolean; + /** + !#en + Register an callback of a specific event type on the EventTarget. + This type of event should be triggered via `emit`. + !#zh + 注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, node); + ``` + */ + on(type: string, callback: T, target?: any, useCapture?: boolean): T; + /** + !#en + Removes the listeners previously registered with the same type, callback, target and or useCapture, + if only type is passed as parameter, all listeners registered with that type will be removed. + !#zh + 删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。 + @param type A string representing the event type being removed. + @param callback The callback to remove. + @param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed + + @example + ```js + // register fire eventListener + var callback = eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, target); + // remove fire event listener + eventTarget.off('fire', callback, target); + // remove all fire event listeners + eventTarget.off('fire'); + ``` + */ + off(type: string, callback?: Function, target?: any): void; + /** + !#en Removes all callbacks previously registered with the same target (passed as parameter). + This is not for removing all listeners in the current event target, + and this is not for removing all listeners the target parameter have registered. + It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter. + !#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。 + 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。 + 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。 + @param target The target to be searched for all related listeners + */ + targetOff(target: any): void; + /** + !#en + Register an callback of a specific event type on the EventTarget, + the callback will remove itself after the first time it is triggered. + !#zh + 注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.once('fire', function () { + cc.log("this is the callback and will be invoked only once"); + }, node); + ``` + */ + once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void; + /** + !#en + Send an event with the event object. + !#zh + 通过事件对象派发事件 + @param event event + */ + dispatchEvent(event: Event): void; + /** + !#en + Destroy all callbackInfos. + !#zh + 销毁记录的事件 + */ + clear(): void; + } + /** !#en + EventTarget is an object to which an event is dispatched when something has occurred. + Entity are the most common event targets, but other objects can be event targets too. + + Event targets are an important part of the Fireball event model. + The event target serves as the focal point for how events flow through the scene graph. + When an event such as a mouse click or a keypress occurs, Fireball dispatches an event object + into the event flow from the root of the hierarchy. The event object then makes its way through + the scene graph until it reaches the event target, at which point it begins its return trip through + the scene graph. This round-trip journey to the event target is conceptually divided into three phases: + - The capture phase comprises the journey from the root to the last node before the event target's node + - The target phase comprises only the event target node + - The bubbling phase comprises any subsequent nodes encountered on the return trip to the root of the tree + See also: http://www.w3.org/TR/DOM-Level-3-Events/#event-flow + + Event targets can implement the following methods: + - _getCapturingTargets + - _getBubblingTargets + + !#zh + 事件目标是事件触发时,分派的事件对象,Node 是最常见的事件目标, + 但是其他对象也可以是事件目标。
*/ + export class EventTarget extends CallbacksInvoker { + /** + !#en Checks whether the EventTarget object has any callback registered for a specific type of event. + !#zh 检查事件目标对象是否有为特定类型的事件注册的回调。 + @param type The type of event. + */ + hasEventListener(type: string): boolean; + /** + !#en + Register an callback of a specific event type on the EventTarget. + This type of event should be triggered via `emit`. + !#zh + 注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, node); + ``` + */ + on(type: string, callback: T, target?: any, useCapture?: boolean): T; + /** + !#en + Removes the listeners previously registered with the same type, callback, target and or useCapture, + if only type is passed as parameter, all listeners registered with that type will be removed. + !#zh + 删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。 + @param type A string representing the event type being removed. + @param callback The callback to remove. + @param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed + + @example + ```js + // register fire eventListener + var callback = eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, target); + // remove fire event listener + eventTarget.off('fire', callback, target); + // remove all fire event listeners + eventTarget.off('fire'); + ``` + */ + off(type: string, callback?: Function, target?: any): void; + /** + !#en Removes all callbacks previously registered with the same target (passed as parameter). + This is not for removing all listeners in the current event target, + and this is not for removing all listeners the target parameter have registered. + It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter. + !#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。 + 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。 + 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。 + @param target The target to be searched for all related listeners + */ + targetOff(target: any): void; + /** + !#en + Register an callback of a specific event type on the EventTarget, + the callback will remove itself after the first time it is triggered. + !#zh + 注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.once('fire', function () { + cc.log("this is the callback and will be invoked only once"); + }, node); + ``` + */ + once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void; + /** + !#en + Send an event with the event object. + !#zh + 通过事件对象派发事件 + @param event event + */ + dispatchEvent(event: Event): void; + /** + !#en + Destroy all callbackInfos. + !#zh + 销毁记录的事件 + */ + clear(): void; + } + /** !#en Base class of all kinds of events. + !#zh 包含事件相关信息的对象。 */ + export class Event { + /** + + @param type The name of the event (case-sensitive), e.g. "click", "fire", or "submit" + @param bubbles A boolean indicating whether the event bubbles up through the tree or not + */ + constructor(type: string, bubbles: boolean); + /** !#en The name of the event (case-sensitive), e.g. "click", "fire", or "submit". + !#zh 事件类型。 */ + type: string; + /** !#en Indicate whether the event bubbles up through the tree or not. + !#zh 表示该事件是否进行冒泡。 */ + bubbles: boolean; + /** !#en A reference to the target to which the event was originally dispatched. + !#zh 最初事件触发的目标 */ + target: any; + /** !#en A reference to the currently registered target for the event. + !#zh 当前目标 */ + currentTarget: any; + /** !#en + Indicates which phase of the event flow is currently being evaluated. + Returns an integer value represented by 4 constants: + - Event.NONE = 0 + - Event.CAPTURING_PHASE = 1 + - Event.AT_TARGET = 2 + - Event.BUBBLING_PHASE = 3 + The phases are explained in the [section 3.1, Event dispatch and DOM event flow] + (http://www.w3.org/TR/DOM-Level-3-Events/#event-flow), of the DOM Level 3 Events specification. + !#zh 事件阶段 */ + eventPhase: number; + /** + !#en Reset the event for being stored in the object pool. + !#zh 重置对象池中存储的事件。 + */ + unuse(): string; + /** + !#en Reuse the event for being used again by the object pool. + !#zh 用于对象池再次使用的事件。 + */ + reuse(): string; + /** + !#en Stops propagation for current event. + !#zh 停止传递当前事件。 + */ + stopPropagation(): void; + /** + !#en Stops propagation for current event immediately, + the event won't even be dispatched to the listeners attached in the current target. + !#zh 立即停止当前事件的传递,事件甚至不会被分派到所连接的当前目标。 + */ + stopPropagationImmediate(): void; + /** + !#en Checks whether the event has been stopped. + !#zh 检查该事件是否已经停止传递. + */ + isStopped(): boolean; + /** + !#en +

+ Gets current target of the event
+ note: It only be available when the event listener is associated with node.
+ It returns 0 when the listener is associated with fixed priority. +

+ !#zh 获取当前目标节点 + */ + getCurrentTarget(): Node; + /** + !#en Gets the event type. + !#zh 获取事件类型 + */ + getType(): string; + /** !#en Code for event without type. + !#zh 没有类型的事件 */ + static NO_TYPE: string; + /** !#en The type code of Touch event. + !#zh 触摸事件类型 */ + static TOUCH: string; + /** !#en The type code of Mouse event. + !#zh 鼠标事件类型 */ + static MOUSE: string; + /** !#en The type code of Keyboard event. + !#zh 键盘事件类型 */ + static KEYBOARD: string; + /** !#en The type code of Acceleration event. + !#zh 加速器事件类型 */ + static ACCELERATION: string; + /** !#en Events not currently dispatched are in this phase + !#zh 尚未派发事件阶段 */ + static NONE: number; + /** !#en + The capturing phase comprises the journey from the root to the last node before the event target's node + see http://www.w3.org/TR/DOM-Level-3-Events/#event-flow + !#zh 捕获阶段,包括事件目标节点之前从根节点到最后一个节点的过程。 */ + static CAPTURING_PHASE: number; + /** !#en + The target phase comprises only the event target node + see http://www.w3.org/TR/DOM-Level-3-Events/#event-flow + !#zh 目标阶段仅包括事件目标节点。 */ + static AT_TARGET: number; + /** !#en + The bubbling phase comprises any subsequent nodes encountered on the return trip to the root of the hierarchy + see http://www.w3.org/TR/DOM-Level-3-Events/#event-flow + !#zh 冒泡阶段, 包括回程遇到到层次根节点的任何后续节点。 */ + static BUBBLING_PHASE: number; + } + /** !#en + The System event, it currently supports keyboard events and accelerometer events.
+ You can get the SystemEvent instance with cc.systemEvent.
+ !#zh + 系统事件,它目前支持按键事件和重力感应事件。
+ 你可以通过 cc.systemEvent 获取到 SystemEvent 的实例。
*/ + export class SystemEvent extends EventTarget { + /** + !#en whether enable accelerometer event + !#zh 是否启用加速度计事件 + @param isEnable isEnable + */ + setAccelerometerEnabled(isEnable: boolean): void; + /** + !#en set accelerometer interval value + !#zh 设置加速度计间隔值 + @param interval interval + */ + setAccelerometerInterval(interval: number): void; + } + /** !#en The animation component is used to play back animations. + + Animation provide several events to register: + - play : Emit when begin playing animation + - stop : Emit when stop playing animation + - pause : Emit when pause animation + - resume : Emit when resume animation + - lastframe : If animation repeat count is larger than 1, emit when animation play to the last frame + - finished : Emit when finish playing animation + + !#zh Animation 组件用于播放动画。 + + Animation 提供了一系列可注册的事件: + - play : 开始播放时 + - stop : 停止播放时 + - pause : 暂停播放时 + - resume : 恢复播放时 + - lastframe : 假如动画循环次数大于 1,当动画播放到最后一帧时 + - finished : 动画播放完成时 */ + export class Animation extends Component implements EventTarget { + /** !#en Animation will play the default clip when start game. + !#zh 在勾选自动播放或调用 play() 时默认播放的动画剪辑。 */ + defaultClip: AnimationClip; + /** !#en Current played clip. + !#zh 当前播放的动画剪辑。 */ + currentClip: AnimationClip; + /** !#en Whether the animation should auto play the default clip when start game. + !#zh 是否在运行游戏后自动播放默认动画剪辑。 */ + playOnLoad: boolean; + /** + !#en Get all the clips used in this animation. + !#zh 获取动画组件上的所有动画剪辑。 + */ + getClips(): AnimationClip[]; + /** + !#en Plays an animation and stop other animations. + !#zh 播放指定的动画,并且停止当前正在播放动画。如果没有指定动画,则播放默认动画。 + @param name The name of animation to play. If no name is supplied then the default animation will be played. + @param startTime play an animation from startTime + + @example + ```js + var animCtrl = this.node.getComponent(cc.Animation); + animCtrl.play("linear"); + ``` + */ + play(name?: string, startTime?: number): AnimationState; + /** + !#en + Plays an additive animation, it will not stop other animations. + If there are other animations playing, then will play several animations at the same time. + !#zh 播放指定的动画(将不会停止当前播放的动画)。如果没有指定动画,则播放默认动画。 + @param name The name of animation to play. If no name is supplied then the default animation will be played. + @param startTime play an animation from startTime + + @example + ```js + // linear_1 and linear_2 at the same time playing. + var animCtrl = this.node.getComponent(cc.Animation); + animCtrl.playAdditive("linear_1"); + animCtrl.playAdditive("linear_2"); + ``` + */ + playAdditive(name?: string, startTime?: number): AnimationState; + /** + !#en Stops an animation named name. If no name is supplied then stops all playing animations that were started with this Animation.
+ Stopping an animation also Rewinds it to the Start. + !#zh 停止指定的动画。如果没有指定名字,则停止当前正在播放的动画。 + @param name The animation to stop, if not supplied then stops all playing animations. + */ + stop(name?: string): void; + /** + !#en Pauses an animation named name. If no name is supplied then pauses all playing animations that were started with this Animation. + !#zh 暂停当前或者指定的动画。如果没有指定名字,则暂停当前正在播放的动画。 + @param name The animation to pauses, if not supplied then pauses all playing animations. + */ + pause(name?: string): void; + /** + !#en Resumes an animation named name. If no name is supplied then resumes all paused animations that were started with this Animation. + !#zh 重新播放指定的动画,如果没有指定名字,则重新播放当前正在播放的动画。 + @param name The animation to resumes, if not supplied then resumes all paused animations. + */ + resume(name?: string): void; + /** + !#en Make an animation named name go to the specified time. If no name is supplied then make all animations go to the specified time. + !#zh 设置指定动画的播放时间。如果没有指定名字,则设置当前播放动画的播放时间。 + @param time The time to go to + @param name Specified animation name, if not supplied then make all animations go to the time. + */ + setCurrentTime(time?: number, name?: string): void; + /** + !#en Returns the animation state named name. If no animation with the specified name, the function will return null. + !#zh 获取当前或者指定的动画状态,如果未找到指定动画剪辑则返回 null。 + @param name name + */ + getAnimationState(name: string): AnimationState; + /** + !#en Adds a clip to the animation with name newName. If a clip with that name already exists it will be replaced with the new clip. + !#zh 添加动画剪辑,并且可以重新设置该动画剪辑的名称。 + @param clip the clip to add + @param newName newName + */ + addClip(clip: AnimationClip, newName?: string): AnimationState; + /** + !#en + Remove clip from the animation list. This will remove the clip and any animation states based on it. + If there are animation states depand on the clip are playing or clip is defaultClip, it will not delete the clip. + But if force is true, then will always remove the clip and any animation states based on it. If clip is defaultClip, defaultClip will be reset to null + !#zh + 从动画列表中移除指定的动画剪辑,
+ 如果依赖于 clip 的 AnimationState 正在播放或者 clip 是 defaultClip 的话,默认是不会删除 clip 的。 + 但是如果 force 参数为 true,则会强制停止该动画,然后移除该动画剪辑和相关的动画。这时候如果 clip 是 defaultClip,defaultClip 将会被重置为 null。 + @param clip clip + @param force If force is true, then will always remove the clip and any animation states based on it. + */ + removeClip(clip: AnimationClip, force?: boolean): void; + /** + !#en + Samples animations at the current state.
+ This is useful when you explicitly want to set up some animation state, and sample it once. + !#zh 对指定或当前动画进行采样。你可以手动将动画设置到某一个状态,然后采样一次。 + @param name name + */ + sample(name: string): void; + /** + !#en + Register animation event callback. + The event arguments will provide the AnimationState which emit the event. + When play an animation, will auto register the event callback to the AnimationState, and unregister the event callback from the AnimationState when animation stopped. + !#zh + 注册动画事件回调。 + 回调的事件里将会附上发送事件的 AnimationState。 + 当播放一个动画时,会自动将事件注册到对应的 AnimationState 上,停止播放时会将事件从这个 AnimationState 上取消注册。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param state state + @param target The target (this object) to invoke the callback, can be null + @param useCapture When set to true, the capture argument prevents callback + from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. + When false, callback will NOT be invoked when event's eventPhase attribute value is CAPTURING_PHASE. + Either way, callback will be invoked when event's eventPhase attribute value is AT_TARGET. + + @example + ```js + onPlay: function (type, state) { + // callback + } + + // register event to all animation + animation.on('play', this.onPlay, this); + ``` + */ + on(type: string, callback: (event: Event.EventCustom) => void, target?: any, useCapture?: boolean): (event: Event.EventCustom) => void; + on(type: string, callback: (event: T) => void, target?: any, useCapture?: boolean): (event: T) => void; + on(type: string, callback: (type: string, state: cc.AnimationState) => void, target?: any, useCapture?: boolean): (type: string, state: cc.AnimationState) => void; + /** + !#en + Unregister animation event callback. + !#zh + 取消注册动画事件回调。 + @param type A string representing the event type being removed. + @param callback The callback to remove. + @param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed + @param useCapture Specifies whether the callback being removed was registered as a capturing callback or not. + If not specified, useCapture defaults to false. If a callback was registered twice, + one with capture and one without, each must be removed separately. Removal of a capturing callback + does not affect a non-capturing version of the same listener, and vice versa. + + @example + ```js + // unregister event to all animation + animation.off('play', this.onPlay, this); + ``` + */ + off(type: string, callback?: Function, target?: any, useCapture?: boolean): void; + /** + !#en Checks whether the EventTarget object has any callback registered for a specific type of event. + !#zh 检查事件目标对象是否有为特定类型的事件注册的回调。 + @param type The type of event. + */ + hasEventListener(type: string): boolean; + /** + !#en Removes all callbacks previously registered with the same target (passed as parameter). + This is not for removing all listeners in the current event target, + and this is not for removing all listeners the target parameter have registered. + It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter. + !#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。 + 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。 + 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。 + @param target The target to be searched for all related listeners + */ + targetOff(target: any): void; + /** + !#en + Register an callback of a specific event type on the EventTarget, + the callback will remove itself after the first time it is triggered. + !#zh + 注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.once('fire', function () { + cc.log("this is the callback and will be invoked only once"); + }, node); + ``` + */ + once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void; + /** + !#en + Send an event with the event object. + !#zh + 通过事件对象派发事件 + @param event event + */ + dispatchEvent(event: Event): void; + /** + !#en + Destroy all callbackInfos. + !#zh + 销毁记录的事件 + */ + clear(): void; + } + /** !#en Audio Source. + !#zh 音频源组件,能对音频剪辑。 */ + export class AudioSource extends Component { + /** !#en + Is the audio source playing (Read Only).
+ Note: isPlaying is not supported for Native platforms. + !#zh + 该音频剪辑是否正播放(只读)。
+ 注意:Native 平台暂时不支持 isPlaying。 */ + isPlaying: boolean; + /** !#en The clip of the audio source to play. + !#zh 要播放的音频剪辑。 */ + clip: AudioClip; + /** !#en The volume of the audio source. + !#zh 音频源的音量(0.0 ~ 1.0)。 */ + volume: number; + /** !#en Is the audio source mute? + !#zh 是否静音音频源。Mute 是设置音量为 0,取消静音是恢复原来的音量。 */ + mute: boolean; + /** !#en Is the audio source looping? + !#zh 音频源是否循环播放? */ + loop: boolean; + /** !#en If set to true, the audio source will automatically start playing on onEnable. + !#zh 如果设置为 true,音频源将在 onEnable 时自动播放。 */ + playOnLoad: boolean; + /** !#en If set to true and AudioClip is a deferred load resource, the component will preload AudioClip in the onLoad phase. + !#zh 如果设置为 true 且 AudioClip 为延迟加载资源,组件将在 onLoad 阶段预加载 AudioClip。 */ + preload: boolean; + /** + !#en Plays the clip. + !#zh 播放音频剪辑。 + */ + play(): void; + /** + !#en Stops the clip. + !#zh 停止当前音频剪辑。 + */ + stop(): void; + /** + !#en Pause the clip. + !#zh 暂停当前音频剪辑。 + */ + pause(): void; + /** + !#en Resume the clip. + !#zh 恢复播放。 + */ + resume(): void; + /** + !#en Rewind playing music. + !#zh 从头开始播放。 + */ + rewind(): void; + /** + !#en Get current time + !#zh 获取当前的播放时间 + */ + getCurrentTime(): number; + /** + !#en Set current time + !#zh 设置当前的播放时间 + @param time time + */ + setCurrentTime(time: number): number; + /** + !#en Get audio duration + !#zh 获取当前音频的长度 + */ + getDuration(): number; + } + /** !#en + This component will block all input events (mouse and touch) within the bounding box of the node, preventing the input from penetrating into the underlying node, typically for the background of the top UI.
+ This component does not have any API interface and can be added directly to the scene to take effect. + !#zh + 该组件将拦截所属节点 bounding box 内的所有输入事件(鼠标和触摸),防止输入穿透到下层节点,一般用于上层 UI 的背景。
+ 该组件没有任何 API 接口,直接添加到场景即可生效。 */ + export class BlockInputEvents extends Component { + } + /** !#en + Button component. Can be pressed or clicked. Button has 4 Transition types: + + - Button.Transition.NONE // Button will do nothing + - Button.Transition.COLOR // Button will change target's color + - Button.Transition.SPRITE // Button will change target Sprite's sprite + - Button.Transition.SCALE // Button will change target node's scale + + The button can bind events (but you must be on the button's node to bind events).
+ The following events can be triggered on all platforms. + + - cc.Node.EventType.TOUCH_START // Press + - cc.Node.EventType.TOUCH_MOVE // After pressing and moving + - cc.Node.EventType.TOUCH_END // After pressing and releasing + - cc.Node.EventType.TOUCH_CANCEL // Press to cancel + + The following events are only triggered on the PC platform: + + - cc.Node.EventType.MOUSE_DOWN + - cc.Node.EventType.MOUSE_MOVE + - cc.Node.EventType.MOUSE_ENTER + - cc.Node.EventType.MOUSE_LEAVE + - cc.Node.EventType.MOUSE_UP + - cc.Node.EventType.MOUSE_WHEEL + + User can get the current clicked node with 'event.target' from event object which is passed as parameter in the callback function of click event. + + !#zh + 按钮组件。可以被按下,或者点击。 + + 按钮可以通过修改 Transition 来设置按钮状态过渡的方式: + + - Button.Transition.NONE // 不做任何过渡 + - Button.Transition.COLOR // 进行颜色之间过渡 + - Button.Transition.SPRITE // 进行精灵之间过渡 + - Button.Transition.SCALE // 进行缩放过渡 + + 按钮可以绑定事件(但是必须要在按钮的 Node 上才能绑定事件):
+ 以下事件可以在全平台上都触发: + + - cc.Node.EventType.TOUCH_START // 按下时事件 + - cc.Node.EventType.TOUCH_MOVE // 按住移动后事件 + - cc.Node.EventType.TOUCH_END // 按下后松开后事件 + - cc.Node.EventType.TOUCH_CANCEL // 按下取消事件 + + 以下事件只在 PC 平台上触发: + + - cc.Node.EventType.MOUSE_DOWN // 鼠标按下时事件 + - cc.Node.EventType.MOUSE_MOVE // 鼠标按住移动后事件 + - cc.Node.EventType.MOUSE_ENTER // 鼠标进入目标事件 + - cc.Node.EventType.MOUSE_LEAVE // 鼠标离开目标事件 + - cc.Node.EventType.MOUSE_UP // 鼠标松开事件 + - cc.Node.EventType.MOUSE_WHEEL // 鼠标滚轮事件 + + 用户可以通过获取 __点击事件__ 回调函数的参数 event 的 target 属性获取当前点击对象。 */ + export class Button extends Component implements GraySpriteState { + /** !#en + Whether the Button is disabled. + If true, the Button will trigger event and do transition. + !#zh + 按钮事件是否被响应,如果为 false,则按钮将被禁用。 */ + interactable: boolean; + /** !#en When this flag is true, Button target sprite will turn gray when interactable is false. + !#zh 如果这个标记为 true,当 button 的 interactable 属性为 false 的时候,会使用内置 shader 让 button 的 target 节点的 sprite 组件变灰 */ + enableAutoGrayEffect: boolean; + /** !#en Transition type + !#zh 按钮状态改变时过渡方式。 */ + transition: Button.Transition; + /** !#en Normal state color. + !#zh 普通状态下按钮所显示的颜色。 */ + normalColor: Color; + /** !#en Pressed state color + !#zh 按下状态时按钮所显示的颜色。 */ + pressedColor: Color; + /** !#en Hover state color + !#zh 悬停状态下按钮所显示的颜色。 */ + hoverColor: Color; + /** !#en Disabled state color + !#zh 禁用状态下按钮所显示的颜色。 */ + disabledColor: Color; + /** !#en Color and Scale transition duration + !#zh 颜色过渡和缩放过渡时所需时间 */ + duration: number; + /** !#en When user press the button, the button will zoom to a scale. + The final scale of the button equals (button original scale * zoomScale) + !#zh 当用户点击按钮后,按钮会缩放到一个值,这个值等于 Button 原始 scale * zoomScale */ + zoomScale: number; + /** !#en Normal state sprite + !#zh 普通状态下按钮所显示的 Sprite 。 */ + normalSprite: SpriteFrame; + /** !#en Pressed state sprite + !#zh 按下状态时按钮所显示的 Sprite 。 */ + pressedSprite: SpriteFrame; + /** !#en Hover state sprite + !#zh 悬停状态下按钮所显示的 Sprite 。 */ + hoverSprite: SpriteFrame; + /** !#en Disabled state sprite + !#zh 禁用状态下按钮所显示的 Sprite 。 */ + disabledSprite: SpriteFrame; + /** !#en + Transition target. + When Button state changed: + If Transition type is Button.Transition.NONE, Button will do nothing + If Transition type is Button.Transition.COLOR, Button will change target's color + If Transition type is Button.Transition.SPRITE, Button will change target Sprite's sprite + !#zh + 需要过渡的目标。 + 当前按钮状态改变规则: + -如果 Transition type 选择 Button.Transition.NONE,按钮不做任何过渡。 + -如果 Transition type 选择 Button.Transition.COLOR,按钮会对目标颜色进行颜色之间的过渡。 + -如果 Transition type 选择 Button.Transition.Sprite,按钮会对目标 Sprite 进行 Sprite 之间的过渡。 */ + target: Node; + /** !#en If Button is clicked, it will trigger event's handler + !#zh 按钮的点击事件列表。 */ + clickEvents: Component.EventHandler[]; + /** !#en The normal material. + !#zh 正常状态的材质。 */ + normalMaterial: Material; + /** !#en The gray material. + !#zh 置灰状态的材质。 */ + grayMaterial: Material; + } + /** !#zh 作为 UI 根节点,为所有子节点提供视窗四边的位置信息以供对齐,另外提供屏幕适配策略接口,方便从编辑器设置。
+ 注:由于本节点的尺寸会跟随屏幕拉伸,所以 anchorPoint 只支持 (0.5, 0.5),否则适配不同屏幕时坐标会有偏差。 */ + export class Canvas extends Component { + /** !#en Current active canvas, the scene should only have one active canvas at the same time. + !#zh 当前激活的画布组件,场景同一时间只能有一个激活的画布。 */ + static instance: Canvas; + /** !#en The desigin resolution for current scene. + !#zh 当前场景设计分辨率。 */ + designResolution: Size; + /** !#en TODO + !#zh: 是否优先将设计分辨率高度撑满视图高度。 */ + fitHeight: boolean; + /** !#en TODO + !#zh: 是否优先将设计分辨率宽度撑满视图宽度。 */ + fitWidth: boolean; + } + /** !#en + Base class for everything attached to Node(Entity).
+
+ NOTE: Not allowed to use construction parameters for Component's subclasses, + because Component is created by the engine. + !#zh + 所有附加到节点的基类。
+
+ 注意:不允许使用组件的子类构造参数,因为组件是由引擎创建的。 */ + export class Component extends Object { + /** !#en The node this component is attached to. A component is always attached to a node. + !#zh 该组件被附加到的节点。组件总会附加到一个节点。 */ + node: Node; + /** !#en The uuid for editor. + !#zh 组件的 uuid,用于编辑器。 */ + uuid: string; + /** !#en indicates whether this component is enabled or not. + !#zh 表示该组件自身是否启用。 */ + enabled: boolean; + /** !#en indicates whether this component is enabled and its node is also active in the hierarchy. + !#zh 表示该组件是否被启用并且所在的节点也处于激活状态。 */ + enabledInHierarchy: boolean; + /** !#en Returns a value which used to indicate the onLoad get called or not. + !#zh 返回一个值用来判断 onLoad 是否被调用过,不等于 0 时调用过,等于 0 时未调用。 */ + _isOnLoadCalled: number; + /** + !#en Update is called every frame, if the Component is enabled.
+ This is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere. + !#zh 如果该组件启用,则每帧调用 update。
+ 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。 + @param dt the delta time in seconds it took to complete the last frame + */ + protected update(dt: number): void; + /** + !#en LateUpdate is called every frame, if the Component is enabled.
+ This is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere. + !#zh 如果该组件启用,则每帧调用 LateUpdate。
+ 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。 + @param dt the delta time in seconds it took to complete the last frame + */ + protected lateUpdate(dt: number): void; + /** + !#en + When attaching to an active node or its node first activated. + onLoad is always called before any start functions, this allows you to order initialization of scripts.
+ This is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere. + !#zh + 当附加到一个激活的节点上或者其节点第一次激活时候调用。onLoad 总是会在任何 start 方法调用前执行,这能用于安排脚本的初始化顺序。
+ 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。 + */ + protected onLoad(): void; + /** + !#en + Called before all scripts' update if the Component is enabled the first time. + Usually used to initialize some logic which need to be called after all components' `onload` methods called.
+ This is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere. + !#zh + 如果该组件第一次启用,则在所有组件的 update 之前调用。通常用于需要在所有组件的 onLoad 初始化完毕后执行的逻辑。
+ 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。 + */ + protected start(): void; + /** + !#en Called when this component becomes enabled and its node is active.
+ This is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere. + !#zh 当该组件被启用,并且它的节点也激活时。
+ 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。 + */ + protected onEnable(): void; + /** + !#en Called when this component becomes disabled or its node becomes inactive.
+ This is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere. + !#zh 当该组件被禁用或节点变为无效时调用。
+ 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。 + */ + protected onDisable(): void; + /** + !#en Called when this component will be destroyed.
+ This is a lifecycle method. It may not be implemented in the super class. You can only call its super class method inside it. It should not be called manually elsewhere. + !#zh 当该组件被销毁时调用
+ 该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。 + */ + protected onDestroy(): void; + protected onFocusInEditor(): void; + protected onLostFocusInEditor(): void; + /** + !#en Called to initialize the component or node’s properties when adding the component the first time or when the Reset command is used. This function is only called in editor. + !#zh 用来初始化组件或节点的一些属性,当该组件被第一次添加到节点上或用户点击了它的 Reset 菜单时调用。这个回调只会在编辑器下调用。 + */ + protected resetInEditor(): void; + /** + !#en Adds a component class to the node. You can also add component to node by passing in the name of the script. + !#zh 向节点添加一个组件类,你还可以通过传入脚本的名称来添加组件。 + @param typeOrClassName the constructor or the class name of the component to add + + @example + ```js + var sprite = node.addComponent(cc.Sprite); + var test = node.addComponent("Test"); + ``` + */ + addComponent(type: {new(): T}): T; + addComponent(className: string): any; + /** + !#en + Returns the component of supplied type if the node has one attached, null if it doesn't.
+ You can also get component in the node by passing in the name of the script. + !#zh + 获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。
+ 传入参数也可以是脚本的名称。 + @param typeOrClassName typeOrClassName + + @example + ```js + // get sprite component. + var sprite = node.getComponent(cc.Sprite); + // get custom test calss. + var test = node.getComponent("Test"); + ``` + */ + getComponent(type: {prototype: T}): T; + getComponent(className: string): any; + /** + !#en Returns all components of supplied Type in the node. + !#zh 返回节点上指定类型的所有组件。 + @param typeOrClassName typeOrClassName + + @example + ```js + var sprites = node.getComponents(cc.Sprite); + var tests = node.getComponents("Test"); + ``` + */ + getComponents(type: {prototype: T}): T[]; + getComponents(className: string): any[]; + /** + !#en Returns the component of supplied type in any of its children using depth first search. + !#zh 递归查找所有子节点中第一个匹配指定类型的组件。 + @param typeOrClassName typeOrClassName + + @example + ```js + var sprite = node.getComponentInChildren(cc.Sprite); + var Test = node.getComponentInChildren("Test"); + ``` + */ + getComponentInChildren(type: {prototype: T}): T; + getComponentInChildren(className: string): any; + /** + !#en Returns the components of supplied type in self or any of its children using depth first search. + !#zh 递归查找自身或所有子节点中指定类型的组件 + @param typeOrClassName typeOrClassName + + @example + ```js + var sprites = node.getComponentsInChildren(cc.Sprite); + var tests = node.getComponentsInChildren("Test"); + ``` + */ + getComponentsInChildren(type: {prototype: T}): T[]; + getComponentsInChildren(className: string): any[]; + /** + !#en + If the component's bounding box is different from the node's, you can implement this method to supply + a custom axis aligned bounding box (AABB), so the editor's scene view can perform hit test properly. + !#zh + 如果组件的包围盒与节点不同,您可以实现该方法以提供自定义的轴向对齐的包围盒(AABB), + 以便编辑器的场景视图可以正确地执行点选测试。 + @param out_rect the Rect to receive the bounding box + */ + _getLocalBounds(out_rect: Rect): void; + /** + !#en + onRestore is called after the user clicks the Reset item in the Inspector's context menu or performs + an undo operation on this component.
+
+ If the component contains the "internal state", short for "temporary member variables which not included
+ in its CCClass properties", then you may need to implement this function.
+
+ The editor will call the getset accessors of your component to record/restore the component's state
+ for undo/redo operation. However, in extreme cases, it may not works well. Then you should implement
+ this function to manually synchronize your component's "internal states" with its public properties.
+ Once you implement this function, all the getset accessors of your component will not be called when
+ the user performs an undo/redo operation. Which means that only the properties with default value
+ will be recorded or restored by editor.
+
+ Similarly, the editor may failed to reset your component correctly in extreme cases. Then if you need
+ to support the reset menu, you should manually synchronize your component's "internal states" with its
+ properties in this function. Once you implement this function, all the getset accessors of your component
+ will not be called during reset operation. Which means that only the properties with default value
+ will be reset by editor. + + This function is only called in editor mode. + !#zh + onRestore 是用户在检查器菜单点击 Reset 时,对此组件执行撤消操作后调用的。
+
+ 如果组件包含了“内部状态”(不在 CCClass 属性中定义的临时成员变量),那么你可能需要实现该方法。
+
+ 编辑器执行撤销/重做操作时,将调用组件的 get set 来录制和还原组件的状态。然而,在极端的情况下,它可能无法良好运作。
+ 那么你就应该实现这个方法,手动根据组件的属性同步“内部状态”。一旦你实现这个方法,当用户撤销或重做时,组件的所有 get set 都不会再被调用。这意味着仅仅指定了默认值的属性将被编辑器记录和还原。
+
+ 同样的,编辑可能无法在极端情况下正确地重置您的组件。如果你需要支持组件重置菜单,则需要在该方法中手工同步组件属性到“内部状态”。一旦你实现这个方法,组件的所有 get set 都不会在重置操作时被调用。这意味着仅仅指定了默认值的属性将被编辑器重置。 +
+ 此方法仅在编辑器下会被调用。 + */ + onRestore(): void; + /** + !#en + Schedules a custom selector.
+ If the selector is already scheduled, then the interval parameter will be updated without scheduling it again. + !#zh + 调度一个自定义的回调函数。
+ 如果回调函数已调度,那么将不会重复调度它,只会更新时间间隔参数。 + @param callback The callback function + @param interval Tick interval in seconds. 0 means tick every frame. + @param repeat The selector will be executed (repeat + 1) times, you can use cc.macro.REPEAT_FOREVER for tick infinitely. + @param delay The amount of time that the first tick will wait before execution. Unit: s + + @example + ```js + var timeCallback = function (dt) { + cc.log("time: " + dt); + } + this.schedule(timeCallback, 1); + ``` + */ + schedule(callback: Function, interval?: number, repeat?: number, delay?: number): void; + /** + !#en Schedules a callback function that runs only once, with a delay of 0 or larger. + !#zh 调度一个只运行一次的回调函数,可以指定 0 让回调函数在下一帧立即执行或者在一定的延时之后执行。 + @param callback A function wrapped as a selector + @param delay The amount of time that the first tick will wait before execution. Unit: s + + @example + ```js + var timeCallback = function (dt) { + cc.log("time: " + dt); + } + this.scheduleOnce(timeCallback, 2); + ``` + */ + scheduleOnce(callback: Function, delay?: number): void; + /** + !#en Unschedules a custom callback function. + !#zh 取消调度一个自定义的回调函数。 + @param callback_fn A function wrapped as a selector + + @example + ```js + this.unschedule(_callback); + ``` + */ + unschedule(callback_fn: Function): void; + /** + !#en + unschedule all scheduled callback functions: custom callback functions, and the 'update' callback function.
+ Actions are not affected by this method. + !#zh 取消调度所有已调度的回调函数:定制的回调函数以及 `update` 回调函数。动作不受此方法影响。 + + @example + ```js + this.unscheduleAllCallbacks(); + ``` + */ + unscheduleAllCallbacks(): void; + } + /** !#en The Label Component. + !#zh 文字标签组件 */ + export class Label extends RenderComponent { + /** !#en Content string of label. + !#zh 标签显示的文本内容。 */ + string: string; + /** !#en Horizontal Alignment of label. + !#zh 文本内容的水平对齐方式。 */ + horizontalAlign: Label.HorizontalAlign; + /** !#en Vertical Alignment of label. + !#zh 文本内容的垂直对齐方式。 */ + verticalAlign: Label.VerticalAlign; + /** !#en The actual rendering font size in shrink mode + !#zh SHRINK 模式下面文本实际渲染的字体大小 */ + actualFontSize: number; + /** !#en Font size of label. + !#zh 文本字体大小。 */ + fontSize: number; + /** !#en Font family of label, only take effect when useSystemFont property is true. + !#zh 文本字体名称, 只在 useSystemFont 属性为 true 的时候生效。 */ + fontFamily: string; + /** !#en Line Height of label. + !#zh 文本行高。 */ + lineHeight: number; + /** !#en Overflow of label. + !#zh 文字显示超出范围时的处理方式。 */ + overflow: Label.Overflow; + /** !#en Whether auto wrap label when string width is large than label width. + !#zh 是否自动换行。 */ + enableWrapText: boolean; + /** !#en The font of label. + !#zh 文本字体。 */ + font: Font; + /** !#en Whether use system font name or not. + !#zh 是否使用系统字体。 */ + useSystemFont: boolean; + /** !#en The spacing of the x axis between characters, only take Effect when using bitmap fonts. + !#zh 文字之间 x 轴的间距,仅在使用位图字体时生效。 */ + spacingX: number; + /** !#en The cache mode of label. This mode only supports system fonts. + !#zh 文本缓存模式, 该模式只支持系统字体。 */ + cacheMode: Label.CacheMode; + /** !#en Whether enable bold. + !#zh 是否启用黑体。 */ + enableBold: boolean; + /** !#en Whether enable italic. + !#zh 是否启用斜体。 */ + enableItalic: boolean; + /** !#en Whether enable underline. + !#zh 是否启用下划线。 */ + enableUnderline: boolean; + /** !#en The height of underline. + !#zh 下划线高度。 */ + underlineHeight: number; + /** + !#zh 需要保证当前场景中没有使用CHAR缓存的Label才可以清除,否则已渲染的文字没有重新绘制会不显示 + !#en It can be cleared that need to ensure there is not use the CHAR cache in the current scene. Otherwise, the rendered text will not be displayed without repainting. + */ + static clearCharCache(): void; + } + /** !#en Outline effect used to change the display, only for system fonts or TTF fonts + !#zh 描边效果组件,用于字体描边,只能用于系统字体 */ + export class LabelOutline extends Component { + /** !#en outline color + !#zh 改变描边的颜色 */ + color: Color; + /** !#en Change the outline width + !#zh 改变描边的宽度 */ + width: number; + } + /** !#en Shadow effect for Label component, only for system fonts or TTF fonts + !#zh 用于给 Label 组件添加阴影效果,只能用于系统字体或 ttf 字体 */ + export class LabelShadow extends Component { + /** !#en The shadow color + !#zh 阴影的颜色 */ + color: Color; + /** !#en Offset between font and shadow + !#zh 字体与阴影的偏移 */ + offset: Vec2; + /** !#en A non-negative float specifying the level of shadow blur + !#zh 阴影的模糊程度 */ + blur: number; + } + /** !#en + The Layout is a container component, use it to arrange child elements easily.
+ Note:
+ 1.Scaling and rotation of child nodes are not considered.
+ 2.After setting the Layout, the results need to be updated until the next frame, + unless you manually call {{#crossLink "Layout/updateLayout:method"}}{{/crossLink}}。 + !#zh + Layout 组件相当于一个容器,能自动对它的所有子节点进行统一排版。
+ 注意:
+ 1.不会考虑子节点的缩放和旋转。
+ 2.对 Layout 设置后结果需要到下一帧才会更新,除非你设置完以后手动调用 {{#crossLink "Layout/updateLayout:method"}}{{/crossLink}}。 */ + export class Layout extends Component { + /** !#en The layout type. + !#zh 布局类型 */ + type: Layout.Type; + /** !#en + The are three resize modes for Layout. + None, resize Container and resize children. + !#zh 缩放模式 */ + resizeMode: Layout.ResizeMode; + /** !#en The cell size for grid layout. + !#zh 每个格子的大小,只有布局类型为 GRID 的时候才有效。 */ + cellSize: Size; + /** !#en + The start axis for grid layout. If you choose horizontal, then children will layout horizontally at first, + and then break line on demand. Choose vertical if you want to layout vertically at first . + !#zh 起始轴方向类型,可进行水平和垂直布局排列,只有布局类型为 GRID 的时候才有效。 */ + startAxis: Layout.AxisDirection; + /** !#en The left padding of layout, it only effect the layout in one direction. + !#zh 容器内左边距,只会在一个布局方向上生效。 */ + paddingLeft: number; + /** !#en The right padding of layout, it only effect the layout in one direction. + !#zh 容器内右边距,只会在一个布局方向上生效。 */ + paddingRight: number; + /** !#en The top padding of layout, it only effect the layout in one direction. + !#zh 容器内上边距,只会在一个布局方向上生效。 */ + paddingTop: number; + /** !#en The bottom padding of layout, it only effect the layout in one direction. + !#zh 容器内下边距,只会在一个布局方向上生效。 */ + paddingBottom: number; + /** !#en The distance in x-axis between each element in layout. + !#zh 子节点之间的水平间距。 */ + spacingX: number; + /** !#en The distance in y-axis between each element in layout. + !#zh 子节点之间的垂直间距。 */ + spacingY: number; + /** !#en + Only take effect in Vertical layout mode. + This option changes the start element's positioning. + !#zh 垂直排列子节点的方向。 */ + verticalDirection: Layout.VerticalDirection; + /** !#en + Only take effect in Horizontal layout mode. + This option changes the start element's positioning. + !#zh 水平排列子节点的方向。 */ + horizontalDirection: Layout.HorizontalDirection; + /** !#en Adjust the layout if the children scaled. + !#zh 子节点缩放比例是否影响布局。 */ + affectedByScale: boolean; + /** + !#en Perform the layout update + !#zh 立即执行更新布局 + + @example + ```js + layout.type = cc.Layout.HORIZONTAL; + layout.node.addChild(childNode); + cc.log(childNode.x); // not yet changed + layout.updateLayout(); + cc.log(childNode.x); // changed + ``` + */ + updateLayout(): void; + } + /** !#en The Mask Component + !#zh 遮罩组件 */ + export class Mask extends RenderComponent { + /** !#en The mask type. + !#zh 遮罩类型 */ + type: Mask.Type; + /** !#en The mask image + !#zh 遮罩所需要的贴图 */ + spriteFrame: SpriteFrame; + /** !#en + The alpha threshold.(Not supported Canvas Mode)
+ The content is drawn only where the stencil have pixel with alpha greater than the alphaThreshold.
+ Should be a float between 0 and 1.
+ This default to 0.1. + When it's set to 1, the stencil will discard all pixels, nothing will be shown. + !#zh + Alpha 阈值(不支持 Canvas 模式)
+ 只有当模板的像素的 alpha 大于等于 alphaThreshold 时,才会绘制内容。
+ 该数值 0 ~ 1 之间的浮点数,默认值为 0.1 + 当被设置为 1 时,会丢弃所有蒙版像素,所以不会显示任何内容 */ + alphaThreshold: number; + /** !#en Reverse mask (Not supported Canvas Mode) + !#zh 反向遮罩(不支持 Canvas 模式) */ + inverted: boolean; + /** TODO: remove segments, not supported by graphics + !#en The segements for ellipse mask. + !#zh 椭圆遮罩的曲线细分数 */ + segements: number; + } + /** !#en + cc.MotionStreak manages a Ribbon based on it's motion in absolute space.
+ You construct it with a fadeTime, minimum segment size, texture path, texture
+ length and color. The fadeTime controls how long it takes each vertex in
+ the streak to fade out, the minimum segment size it how many pixels the
+ streak will move before adding a new ribbon segment, and the texture
+ length is the how many pixels the texture is stretched across. The texture
+ is vertically aligned along the streak segment. + !#zh 运动轨迹,用于游戏对象的运动轨迹上实现拖尾渐隐效果。 */ + export class MotionStreak extends Component implements BlendFunc { + /** !#en + !#zh 在编辑器模式下预览拖尾效果。 */ + preview: boolean; + /** !#en The fade time to fade. + !#zh 拖尾的渐隐时间,以秒为单位。 */ + fadeTime: number; + /** !#en The minimum segment size. + !#zh 拖尾之间最小距离。 */ + minSeg: number; + /** !#en The stroke's width. + !#zh 拖尾的宽度。 */ + stroke: number; + /** !#en The texture of the MotionStreak. + !#zh 拖尾的贴图。 */ + texture: Texture2D; + /** !#en The color of the MotionStreak. + !#zh 拖尾的颜色 */ + color: Color; + /** !#en The fast Mode. + !#zh 是否启用了快速模式。当启用快速模式,新的点会被更快地添加,但精度较低。 */ + fastMode: boolean; + /** + !#en Remove all living segments of the ribbon. + !#zh 删除当前所有的拖尾片段。 + + @example + ```js + // Remove all living segments of the ribbon. + myMotionStreak.reset(); + ``` + */ + reset(): void; + /** !#en specify the source Blend Factor, this will generate a custom material object, please pay attention to the memory cost. + !#zh 指定原图的混合模式,这会克隆一个新的材质对象,注意这带来的开销 */ + srcBlendFactor: macro.BlendFactor; + /** !#en specify the destination Blend Factor. + !#zh 指定目标的混合模式 */ + dstBlendFactor: macro.BlendFactor; + } + /** !#en The PageView control + !#zh 页面视图组件 */ + export class PageView extends ScrollView { + /** !#en Specify the size type of each page in PageView. + !#zh 页面视图中每个页面大小类型 */ + sizeMode: PageView.SizeMode; + /** !#en The page view direction + !#zh 页面视图滚动类型 */ + direction: PageView.Direction; + /** !#en + The scroll threshold value, when drag exceeds this value, + release the next page will automatically scroll, less than the restore + !#zh 滚动临界值,默认单位百分比,当拖拽超出该数值时,松开会自动滚动下一页,小于时则还原。 */ + scrollThreshold: number; + /** !#en + Auto page turning velocity threshold. When users swipe the PageView quickly, + it will calculate a velocity based on the scroll distance and time, + if the calculated velocity is larger than the threshold, then it will trigger page turning. + !#zh + 快速滑动翻页临界值。 + 当用户快速滑动时,会根据滑动开始和结束的距离与时间计算出一个速度值, + 该值与此临界值相比较,如果大于临界值,则进行自动翻页。 */ + autoPageTurningThreshold: number; + /** !#en Change the PageTurning event timing of PageView. + !#zh 设置 PageView PageTurning 事件的发送时机。 */ + pageTurningEventTiming: number; + /** !#en The Page View Indicator + !#zh 页面视图指示器组件 */ + indicator: PageViewIndicator; + /** !#en The time required to turn over a page. unit: second + !#zh 每个页面翻页时所需时间。单位:秒 */ + pageTurningSpeed: number; + /** !#en PageView events callback + !#zh 滚动视图的事件回调函数 */ + pageEvents: Component.EventHandler[]; + /** + !#en Returns current page index + !#zh 返回当前页面索引 + */ + getCurrentPageIndex(): number; + /** + !#en Set current page index + !#zh 设置当前页面索引 + @param index index + */ + setCurrentPageIndex(index: number): void; + /** + !#en Returns all pages of pageview + !#zh 返回视图中的所有页面 + */ + getPages(): Node[]; + /** + !#en At the end of the current page view to insert a new view + !#zh 在当前页面视图的尾部插入一个新视图 + @param page page + */ + addPage(page: Node): void; + /** + !#en Inserts a page in the specified location + !#zh 将页面插入指定位置中 + @param page page + @param index index + */ + insertPage(page: Node, index: number): void; + /** + !#en Removes a page from PageView. + !#zh 移除指定页面 + @param page page + */ + removePage(page: Node): void; + /** + !#en Removes a page at index of PageView. + !#zh 移除指定下标的页面 + @param index index + */ + removePageAtIndex(index: number): void; + /** + !#en Removes all pages from PageView + !#zh 移除所有页面 + */ + removeAllPages(): void; + /** + !#en Scroll PageView to index. + !#zh 滚动到指定页面 + @param idx index of page. + @param timeInSecond scrolling time + */ + scrollToPage(idx: number, timeInSecond: number): void; + } + /** !#en + Visual indicator of progress in some operation. + Displays a bar to the user representing how far the operation has progressed. + !#zh + 进度条组件,可用于显示加载资源时的进度。 */ + export class ProgressBar extends Component { + /** !#en The targeted Sprite which will be changed progressively. + !#zh 用来显示进度条比例的 Sprite 对象。 */ + barSprite: Sprite; + /** !#en The progress mode, there are two modes supported now: horizontal and vertical. + !#zh 进度条的模式 */ + mode: ProgressBar.Mode; + /** !#en The total width or height of the bar sprite. + !#zh 进度条实际的总长度 */ + totalLength: number; + /** !#en The current progress of the bar sprite. The valid value is between 0-1. + !#zh 当前进度值,该数值的区间是 0-1 之间。 */ + progress: number; + /** !#en Whether reverse the progress direction of the bar sprite. + !#zh 进度条是否进行反方向变化。 */ + reverse: boolean; + } + /** !#en The Page View Indicator Component + !#zh 页面视图每页标记组件 */ + export class PageViewIndicator extends Component { + /** !#en The spriteFrame for each element. + !#zh 每个页面标记显示的图片 */ + spriteFrame: SpriteFrame; + /** !#en The location direction of PageViewIndicator. + !#zh 页面标记摆放方向 */ + direction: PageViewIndicator.Direction; + /** !#en The cellSize for each element. + !#zh 每个页面标记的大小 */ + cellSize: Size; + /** !#en The distance between each element. + !#zh 每个页面标记之间的边距 */ + spacing: number; + /** + !#en Set Page View + !#zh 设置页面视图 + @param target target + */ + setPageView(target: PageView): void; + } + /** !#en + Base class for components which supports rendering features. + !#zh + 所有支持渲染的组件的基类 */ + export class RenderComponent extends Component { + /** !#en The materials used by this render component. + !#zh 渲染组件使用的材质。 */ + sharedMaterials: Material[]; + /** + !#en Get the material by index. + !#zh 根据指定索引获取材质 + @param index index + */ + getMaterial(index: number): MaterialVariant; + /** + !#en Gets all the materials. + !#zh 获取所有材质。 + */ + getMaterials(): MaterialVariant[]; + /** + !#en Set the material by index. + !#zh 根据指定索引设置材质 + @param index index + @param material material + */ + setMaterial(index: number, material: Material): Material; + } + /** !#en The RichText Component. + !#zh 富文本组件 */ + export class RichText extends Component { + /** !#en Content string of RichText. + !#zh 富文本显示的文本内容。 */ + string: string; + /** !#en Horizontal Alignment of each line in RichText. + !#zh 文本内容的水平对齐方式。 */ + horizontalAlign: macro.TextAlignment; + /** !#en Font size of RichText. + !#zh 富文本字体大小。 */ + fontSize: number; + /** !#en Custom System font of RichText + !#zh 富文本定制系统字体 */ + fontFamily: string; + /** !#en Custom TTF font of RichText + !#zh 富文本定制字体 */ + font: TTFFont; + /** !#en Whether use system font name or not. + !#zh 是否使用系统字体。 */ + useSystemFont: boolean; + /** !#en The cache mode of label. This mode only supports system fonts. + !#zh 文本缓存模式, 该模式只支持系统字体。 */ + cacheMode: Label.CacheMode; + /** !#en The maximize width of the RichText + !#zh 富文本的最大宽度 */ + maxWidth: number; + /** !#en Line Height of RichText. + !#zh 富文本行高。 */ + lineHeight: number; + /** !#en The image atlas for the img tag. For each src value in the img tag, there should be a valid spriteFrame in the image atlas. + !#zh 对于 img 标签里面的 src 属性名称,都需要在 imageAtlas 里面找到一个有效的 spriteFrame,否则 img tag 会判定为无效。 */ + imageAtlas: SpriteAtlas; + /** !#en + Once checked, the RichText will block all input events (mouse and touch) within + the bounding box of the node, preventing the input from penetrating into the underlying node. + !#zh + 选中此选项后,RichText 将阻止节点边界框中的所有输入事件(鼠标和触摸),从而防止输入事件穿透到底层节点。 */ + handleTouchEvent: boolean; + } + /** !#en + This component is used to adjust the layout of current node to respect the safe area of a notched mobile device such as the iPhone X. + It is typically used for the top node of the UI interaction area. For specific usage, refer to the official [example-cases/02_ui/16_safeArea/SafeArea.fire](https://github.com/cocos-creator/example-cases). + + The concept of safe area is to give you a fixed inner rectangle in which you can safely display content that will be drawn on screen. + You are strongly discouraged from providing controls outside of this area. But your screen background could embellish edges. + + This component internally uses the API `cc.sys.getSafeAreaRect();` to obtain the safe area of the current iOS or Android device, + and implements the adaptation by using the Widget component and set anchor. + + !#zh + 该组件会将所在节点的布局适配到 iPhone X 等异形屏手机的安全区域内,通常用于 UI 交互区域的顶层节点,具体用法可参考官方范例 [example-cases/02_ui/16_safeArea/SafeArea.fire](https://github.com/cocos-creator/example-cases)。 + + 该组件内部通过 API `cc.sys.getSafeAreaRect();` 获取到当前 iOS 或 Android 设备的安全区域,并通过 Widget 组件实现适配。 */ + export class SafeArea extends Component { + /** + !#en Adapt to safe area + !#zh 立即适配安全区域 + + @example + ```js + let safeArea = this.node.addComponent(cc.SafeArea); + safeArea.updateArea(); + ``` + */ + updateArea(): void; + } + /** !#en + The Scrollbar control allows the user to scroll an image or other view that is too large to see completely + !#zh 滚动条组件 */ + export class Scrollbar extends Component { + /** !#en The "handle" part of the scrollbar. + !#zh 作为当前滚动区域位置显示的滑块 Sprite。 */ + handle: Sprite; + /** !#en The direction of scrollbar. + !#zh ScrollBar 的滚动方向。 */ + direction: Scrollbar.Direction; + /** !#en Whether enable auto hide or not. + !#zh 是否在没有滚动动作时自动隐藏 ScrollBar。 */ + enableAutoHide: boolean; + /** !#en + The time to hide scrollbar when scroll finished. + Note: This value is only useful when enableAutoHide is true. + !#zh + 没有滚动动作后经过多久会自动隐藏。 + 注意:只要当 “enableAutoHide” 为 true 时,才有效。 */ + autoHideTime: number; + } + /** !#en + Layout container for a view hierarchy that can be scrolled by the user, + allowing it to be larger than the physical display. + + !#zh + 滚动视图组件 */ + export class ScrollView extends Component { + /** !#en This is a reference to the UI element to be scrolled. + !#zh 可滚动展示内容的节点。 */ + content: Node; + /** !#en Enable horizontal scroll. + !#zh 是否开启水平滚动。 */ + horizontal: boolean; + /** !#en Enable vertical scroll. + !#zh 是否开启垂直滚动。 */ + vertical: boolean; + /** !#en When inertia is set, the content will continue to move when touch ended. + !#zh 是否开启滚动惯性。 */ + inertia: boolean; + /** !#en + It determines how quickly the content stop moving. A value of 1 will stop the movement immediately. + A value of 0 will never stop the movement until it reaches to the boundary of scrollview. + !#zh + 开启惯性后,在用户停止触摸后滚动多快停止,0表示永不停止,1表示立刻停止。 */ + brake: number; + /** !#en When elastic is set, the content will be bounce back when move out of boundary. + !#zh 是否允许滚动内容超过边界,并在停止触摸后回弹。 */ + elastic: boolean; + /** !#en The elapse time of bouncing back. A value of 0 will bounce back immediately. + !#zh 回弹持续的时间,0 表示将立即反弹。 */ + bounceDuration: number; + /** !#en The horizontal scrollbar reference. + !#zh 水平滚动的 ScrollBar。 */ + horizontalScrollBar: Scrollbar; + /** !#en The vertical scrollbar reference. + !#zh 垂直滚动的 ScrollBar。 */ + verticalScrollBar: Scrollbar; + /** !#en Scrollview events callback + !#zh 滚动视图的事件回调函数 */ + scrollEvents: Component.EventHandler[]; + /** !#en If cancelInnerEvents is set to true, the scroll behavior will cancel touch events on inner content nodes + It's set to true by default. + !#zh 如果这个属性被设置为 true,那么滚动行为会取消子节点上注册的触摸事件,默认被设置为 true。 + 注意,子节点上的 touchstart 事件仍然会触发,触点移动距离非常短的情况下 touchmove 和 touchend 也不会受影响。 */ + cancelInnerEvents: boolean; + /** + !#en Scroll the content to the bottom boundary of ScrollView. + !#zh 视图内容将在规定时间内滚动到视图底部。 + @param timeInSecond Scroll time in second, if you don't pass timeInSecond, + the content will jump to the bottom boundary immediately. + @param attenuated Whether the scroll acceleration attenuated, default is true. + + @example + ```js + // Scroll to the bottom of the view. + scrollView.scrollToBottom(0.1); + ``` + */ + scrollToBottom(timeInSecond?: number, attenuated?: boolean): void; + /** + !#en Scroll the content to the top boundary of ScrollView. + !#zh 视图内容将在规定时间内滚动到视图顶部。 + @param timeInSecond Scroll time in second, if you don't pass timeInSecond, + the content will jump to the top boundary immediately. + @param attenuated Whether the scroll acceleration attenuated, default is true. + + @example + ```js + // Scroll to the top of the view. + scrollView.scrollToTop(0.1); + ``` + */ + scrollToTop(timeInSecond?: number, attenuated?: boolean): void; + /** + !#en Scroll the content to the left boundary of ScrollView. + !#zh 视图内容将在规定时间内滚动到视图左边。 + @param timeInSecond Scroll time in second, if you don't pass timeInSecond, + the content will jump to the left boundary immediately. + @param attenuated Whether the scroll acceleration attenuated, default is true. + + @example + ```js + // Scroll to the left of the view. + scrollView.scrollToLeft(0.1); + ``` + */ + scrollToLeft(timeInSecond?: number, attenuated?: boolean): void; + /** + !#en Scroll the content to the right boundary of ScrollView. + !#zh 视图内容将在规定时间内滚动到视图右边。 + @param timeInSecond Scroll time in second, if you don't pass timeInSecond, + the content will jump to the right boundary immediately. + @param attenuated Whether the scroll acceleration attenuated, default is true. + + @example + ```js + // Scroll to the right of the view. + scrollView.scrollToRight(0.1); + ``` + */ + scrollToRight(timeInSecond?: number, attenuated?: boolean): void; + /** + !#en Scroll the content to the top left boundary of ScrollView. + !#zh 视图内容将在规定时间内滚动到视图左上角。 + @param timeInSecond Scroll time in second, if you don't pass timeInSecond, + the content will jump to the top left boundary immediately. + @param attenuated Whether the scroll acceleration attenuated, default is true. + + @example + ```js + // Scroll to the upper left corner of the view. + scrollView.scrollToTopLeft(0.1); + ``` + */ + scrollToTopLeft(timeInSecond?: number, attenuated?: boolean): void; + /** + !#en Scroll the content to the top right boundary of ScrollView. + !#zh 视图内容将在规定时间内滚动到视图右上角。 + @param timeInSecond Scroll time in second, if you don't pass timeInSecond, + the content will jump to the top right boundary immediately. + @param attenuated Whether the scroll acceleration attenuated, default is true. + + @example + ```js + // Scroll to the top right corner of the view. + scrollView.scrollToTopRight(0.1); + ``` + */ + scrollToTopRight(timeInSecond?: number, attenuated?: boolean): void; + /** + !#en Scroll the content to the bottom left boundary of ScrollView. + !#zh 视图内容将在规定时间内滚动到视图左下角。 + @param timeInSecond Scroll time in second, if you don't pass timeInSecond, + the content will jump to the bottom left boundary immediately. + @param attenuated Whether the scroll acceleration attenuated, default is true. + + @example + ```js + // Scroll to the lower left corner of the view. + scrollView.scrollToBottomLeft(0.1); + ``` + */ + scrollToBottomLeft(timeInSecond?: number, attenuated?: boolean): void; + /** + !#en Scroll the content to the bottom right boundary of ScrollView. + !#zh 视图内容将在规定时间内滚动到视图右下角。 + @param timeInSecond Scroll time in second, if you don't pass timeInSecond, + the content will jump to the bottom right boundary immediately. + @param attenuated Whether the scroll acceleration attenuated, default is true. + + @example + ```js + // Scroll to the lower right corner of the view. + scrollView.scrollToBottomRight(0.1); + ``` + */ + scrollToBottomRight(timeInSecond?: number, attenuated?: boolean): void; + /** + !#en Scroll with an offset related to the ScrollView's top left origin, if timeInSecond is omitted, then it will jump to the + specific offset immediately. + !#zh 视图内容在规定时间内将滚动到 ScrollView 相对左上角原点的偏移位置, 如果 timeInSecond参数不传,则立即滚动到指定偏移位置。 + @param offset A Vec2, the value of which each axis between 0 and maxScrollOffset + @param timeInSecond Scroll time in second, if you don't pass timeInSecond, + the content will jump to the specific offset of ScrollView immediately. + @param attenuated Whether the scroll acceleration attenuated, default is true. + + @example + ```js + // Scroll to middle position in 0.1 second in x-axis + let maxScrollOffset = this.getMaxScrollOffset(); + scrollView.scrollToOffset(cc.v2(maxScrollOffset.x / 2, 0), 0.1); + ``` + */ + scrollToOffset(offset: Vec2, timeInSecond?: number, attenuated?: boolean): void; + /** + !#en Get the positive offset value corresponds to the content's top left boundary. + !#zh 获取滚动视图相对于左上角原点的当前滚动偏移 + */ + getScrollOffset(): Vec2; + /** + !#en Get the maximize available scroll offset + !#zh 获取滚动视图最大可以滚动的偏移量 + */ + getMaxScrollOffset(): Vec2; + /** + !#en Scroll the content to the horizontal percent position of ScrollView. + !#zh 视图内容在规定时间内将滚动到 ScrollView 水平方向的百分比位置上。 + @param percent A value between 0 and 1. + @param timeInSecond Scroll time in second, if you don't pass timeInSecond, + the content will jump to the horizontal percent position of ScrollView immediately. + @param attenuated Whether the scroll acceleration attenuated, default is true. + + @example + ```js + // Scroll to middle position. + scrollView.scrollToBottomRight(0.5, 0.1); + ``` + */ + scrollToPercentHorizontal(percent: number, timeInSecond?: number, attenuated?: boolean): void; + /** + !#en Scroll the content to the percent position of ScrollView in any direction. + !#zh 视图内容在规定时间内进行垂直方向和水平方向的滚动,并且滚动到指定百分比位置上。 + @param anchor A point which will be clamp between cc.v2(0,0) and cc.v2(1,1). + @param timeInSecond Scroll time in second, if you don't pass timeInSecond, + the content will jump to the percent position of ScrollView immediately. + @param attenuated Whether the scroll acceleration attenuated, default is true. + + @example + ```js + // Vertical scroll to the bottom of the view. + scrollView.scrollTo(cc.v2(0, 1), 0.1); + + // Horizontal scroll to view right. + scrollView.scrollTo(cc.v2(1, 0), 0.1); + ``` + */ + scrollTo(anchor: Vec2, timeInSecond?: number, attenuated?: boolean): void; + /** + !#en Scroll the content to the vertical percent position of ScrollView. + !#zh 视图内容在规定时间内滚动到 ScrollView 垂直方向的百分比位置上。 + @param percent A value between 0 and 1. + @param timeInSecond Scroll time in second, if you don't pass timeInSecond, + the content will jump to the vertical percent position of ScrollView immediately. + @param attenuated Whether the scroll acceleration attenuated, default is true. + // Scroll to middle position. + scrollView.scrollToPercentVertical(0.5, 0.1); + */ + scrollToPercentVertical(percent: number, timeInSecond?: number, attenuated?: boolean): void; + /** + !#en Stop auto scroll immediately + !#zh 停止自动滚动, 调用此 API 可以让 Scrollview 立即停止滚动 + */ + stopAutoScroll(): void; + /** + !#en Modify the content position. + !#zh 设置当前视图内容的坐标点。 + @param position The position in content's parent space. + */ + setContentPosition(position: Vec2): void; + /** + !#en Query the content's position in its parent space. + !#zh 获取当前视图内容的坐标点。 + */ + getContentPosition(): Vec2; + /** + !#en Query whether the user is currently dragging the ScrollView to scroll it + !#zh 用户是否在拖拽当前滚动视图 + */ + isScrolling(): boolean; + /** + !#en Query whether the ScrollView is currently scrolling because of a bounceback or inertia slowdown. + !#zh 当前滚动视图是否在惯性滚动 + */ + isAutoScrolling(): boolean; + } + /** !#en The Slider Control + !#zh 滑动器组件 */ + export class Slider extends Component { + /** !#en The "handle" part of the slider + !#zh 滑动器滑块按钮部件 */ + handle: Button; + /** !#en The slider direction + !#zh 滑动器方向 */ + direction: Slider.Direction; + /** !#en The current progress of the slider. The valid value is between 0-1 + !#zh 当前进度值,该数值的区间是 0-1 之间 */ + progress: number; + /** !#en The slider slide events' callback array + !#zh 滑动器组件滑动事件回调函数数组 */ + slideEvents: Component.EventHandler[]; + } + /** !#en Renders a sprite in the scene. + !#zh 该组件用于在场景中渲染精灵。 */ + export class Sprite extends RenderComponent implements BlendFunc { + /** !#en The sprite frame of the sprite. + !#zh 精灵的精灵帧 */ + spriteFrame: SpriteFrame; + /** !#en The sprite render type. + !#zh 精灵渲染类型 */ + type: Sprite.Type; + /** !#en + The fill type, This will only have any effect if the "type" is set to “cc.Sprite.Type.FILLED”. + !#zh + 精灵填充类型,仅渲染类型设置为 cc.Sprite.Type.FILLED 时有效。 */ + fillType: Sprite.FillType; + /** !#en + The fill Center, This will only have any effect if the "type" is set to “cc.Sprite.Type.FILLED”. + !#zh + 填充中心点,仅渲染类型设置为 cc.Sprite.Type.FILLED 时有效。 */ + fillCenter: Vec2; + /** !#en + The fill Start, This will only have any effect if the "type" is set to “cc.Sprite.Type.FILLED”. + !#zh + 填充起始点,仅渲染类型设置为 cc.Sprite.Type.FILLED 时有效。 */ + fillStart: number; + /** !#en + The fill Range, This will only have any effect if the "type" is set to “cc.Sprite.Type.FILLED”. + !#zh + 填充范围,仅渲染类型设置为 cc.Sprite.Type.FILLED 时有效。 */ + fillRange: number; + /** !#en specify the frame is trimmed or not. + !#zh 是否使用裁剪模式 */ + trim: boolean; + /** !#en specify the size tracing mode. + !#zh 精灵尺寸调整模式 */ + sizeMode: Sprite.SizeMode; + /** + Change the state of sprite. + @param state NORMAL or GRAY State. + */ + setState(state: Sprite.State): void; + /** + Gets the current state. + */ + getState(): Sprite.State; + /** !#en specify the source Blend Factor, this will generate a custom material object, please pay attention to the memory cost. + !#zh 指定原图的混合模式,这会克隆一个新的材质对象,注意这带来的开销 */ + srcBlendFactor: macro.BlendFactor; + /** !#en specify the destination Blend Factor. + !#zh 指定目标的混合模式 */ + dstBlendFactor: macro.BlendFactor; + } + /** !#en The toggle component is a CheckBox, when it used together with a ToggleGroup, it + could be treated as a RadioButton. + !#zh Toggle 是一个 CheckBox,当它和 ToggleGroup 一起使用的时候,可以变成 RadioButton。 */ + export class Toggle extends Button implements GraySpriteState { + /** !#en When this value is true, the check mark component will be enabled, otherwise + the check mark component will be disabled. + !#zh 如果这个设置为 true,则 check mark 组件会处于 enabled 状态,否则处于 disabled 状态。 */ + isChecked: boolean; + /** !#en The toggle group which the toggle belongs to, when it is null, the toggle is a CheckBox. + Otherwise, the toggle is a RadioButton. + !#zh Toggle 所属的 ToggleGroup,这个属性是可选的。如果这个属性为 null,则 Toggle 是一个 CheckBox, + 否则,Toggle 是一个 RadioButton。 */ + toggleGroup: ToggleGroup; + /** !#en The image used for the checkmark. + !#zh Toggle 处于选中状态时显示的图片 */ + checkMark: Sprite; + /** !#en If Toggle is clicked, it will trigger event's handler + !#zh Toggle 按钮的点击事件列表。 */ + checkEvents: Component.EventHandler[]; + /** + !#en Make the toggle button checked. + !#zh 使 toggle 按钮处于选中状态 + */ + check(): void; + /** + !#en Make the toggle button unchecked. + !#zh 使 toggle 按钮处于未选中状态 + */ + uncheck(): void; + /** !#en The normal material. + !#zh 正常状态的材质。 */ + normalMaterial: Material; + /** !#en The gray material. + !#zh 置灰状态的材质。 */ + grayMaterial: Material; + } + /** !#en ToggleContainer is not a visiable UI component but a way to modify the behavior of a set of Toggles.
+ Toggles that belong to the same group could only have one of them to be switched on at a time.
+ Note: All the first layer child node containing the toggle component will auto be added to the container + !#zh ToggleContainer 不是一个可见的 UI 组件,它可以用来修改一组 Toggle 组件的行为。
+ 当一组 Toggle 属于同一个 ToggleContainer 的时候,任何时候只能有一个 Toggle 处于选中状态。
+ 注意:所有包含 Toggle 组件的一级子节点都会自动被添加到该容器中 */ + export class ToggleContainer extends Component { + /** !#en If this setting is true, a toggle could be switched off and on when pressed. + If it is false, it will make sure there is always only one toggle could be switched on + and the already switched on toggle can't be switched off. + !#zh 如果这个设置为 true, 那么 toggle 按钮在被点击的时候可以反复地被选中和未选中。 */ + allowSwitchOff: boolean; + /** !#en If Toggle is clicked, it will trigger event's handler + !#zh Toggle 按钮的点击事件列表。 */ + checkEvents: Component.EventHandler[]; + /** !#en Read only property, return the toggle items array reference managed by ToggleContainer. + !#zh 只读属性,返回 ToggleContainer 管理的 toggle 数组引用 */ + toggleItems: Toggle[]; + } + /** !#en ToggleGroup is not a visiable UI component but a way to modify the behavior of a set of Toggles. + Toggles that belong to the same group could only have one of them to be switched on at a time. + !#zh ToggleGroup 不是一个可见的 UI 组件,它可以用来修改一组 Toggle 组件的行为。当一组 Toggle 属于同一个 ToggleGroup 的时候, + 任何时候只能有一个 Toggle 处于选中状态。 */ + export class ToggleGroup extends Component { + /** !#en If this setting is true, a toggle could be switched off and on when pressed. + If it is false, it will make sure there is always only one toggle could be switched on + and the already switched on toggle can't be switched off. + !#zh 如果这个设置为 true, 那么 toggle 按钮在被点击的时候可以反复地被选中和未选中。 */ + allowSwitchOff: boolean; + /** !#en Read only property, return the toggle items array reference managed by toggleGroup. + !#zh 只读属性,返回 toggleGroup 管理的 toggle 数组引用 */ + toggleItems: any[]; + } + /** !#en + Handling touch events in a ViewGroup takes special care, + because it's common for a ViewGroup to have children that are targets for different touch events than the ViewGroup itself. + To make sure that each view correctly receives the touch events intended for it, + ViewGroup should register capture phase event and handle the event propagation properly. + Please refer to Scrollview for more information. + + !#zh + ViewGroup的事件处理比较特殊,因为 ViewGroup 里面的子节点关心的事件跟 ViewGroup 本身可能不一样。 + 为了让子节点能够正确地处理事件,ViewGroup 需要注册 capture 阶段的事件,并且合理地处理 ViewGroup 之间的事件传递。 + 请参考 ScrollView 的实现来获取更多信息。 */ + export class ViewGroup extends Component { + } + /** !#en + Stores and manipulate the anchoring based on its parent. + Widget are used for GUI but can also be used for other things. + Widget will adjust current node's position and size automatically, but the results after adjustment can not be obtained until the next frame unless you call {{#crossLink "Widget/updateAlignment:method"}}{{/crossLink}} manually. + !#zh + Widget 组件,用于设置和适配其相对于父节点的边距,Widget 通常被用于 UI 界面,也可以用于其他地方。 + Widget 会自动调整当前节点的坐标和宽高,不过目前调整后的结果要到下一帧才能在脚本里获取到,除非你先手动调用 {{#crossLink "Widget/updateAlignment:method"}}{{/crossLink}}。 */ + export class Widget extends Component { + /** !#en Specifies an alignment target that can only be one of the parent nodes of the current node. + The default value is null, and when null, indicates the current parent. + !#zh 指定一个对齐目标,只能是当前节点的其中一个父节点,默认为空,为空时表示当前父节点。 */ + target: Node; + /** !#en Whether to align the top. + !#zh 是否对齐上边。 */ + isAlignTop: boolean; + /** !#en + Vertically aligns the midpoint, This will open the other vertical alignment options cancel. + !#zh + 是否垂直方向对齐中点,开启此项会将垂直方向其他对齐选项取消。 */ + isAlignVerticalCenter: boolean; + /** !#en Whether to align the bottom. + !#zh 是否对齐下边。 */ + isAlignBottom: boolean; + /** !#en Whether to align the left. + !#zh 是否对齐左边 */ + isAlignLeft: boolean; + /** !#en + Horizontal aligns the midpoint. This will open the other horizontal alignment options canceled. + !#zh + 是否水平方向对齐中点,开启此选项会将水平方向其他对齐选项取消。 */ + isAlignHorizontalCenter: boolean; + /** !#en Whether to align the right. + !#zh 是否对齐右边。 */ + isAlignRight: boolean; + /** !#en + Whether the stretched horizontally, when enable the left and right alignment will be stretched horizontally, + the width setting is invalid (read only). + !#zh + 当前是否水平拉伸。当同时启用左右对齐时,节点将会被水平拉伸,此时节点的宽度只读。 */ + isStretchWidth: boolean; + /** !#en + Whether the stretched vertically, when enable the left and right alignment will be stretched vertically, + then height setting is invalid (read only) + !#zh + 当前是否垂直拉伸。当同时启用上下对齐时,节点将会被垂直拉伸,此时节点的高度只读。 */ + isStretchHeight: boolean; + /** !#en + The margins between the top of this node and the top of parent node, + the value can be negative, Only available in 'isAlignTop' open. + !#zh + 本节点顶边和父节点顶边的距离,可填写负值,只有在 isAlignTop 开启时才有作用。 */ + top: number; + /** !#en + The margins between the bottom of this node and the bottom of parent node, + the value can be negative, Only available in 'isAlignBottom' open. + !#zh + 本节点底边和父节点底边的距离,可填写负值,只有在 isAlignBottom 开启时才有作用。 */ + bottom: number; + /** !#en + The margins between the left of this node and the left of parent node, + the value can be negative, Only available in 'isAlignLeft' open. + !#zh + 本节点左边和父节点左边的距离,可填写负值,只有在 isAlignLeft 开启时才有作用。 */ + left: number; + /** !#en + The margins between the right of this node and the right of parent node, + the value can be negative, Only available in 'isAlignRight' open. + !#zh + 本节点右边和父节点右边的距离,可填写负值,只有在 isAlignRight 开启时才有作用。 */ + right: number; + /** !#en + Horizontal aligns the midpoint offset value, + the value can be negative, Only available in 'isAlignHorizontalCenter' open. + !#zh 水平居中的偏移值,可填写负值,只有在 isAlignHorizontalCenter 开启时才有作用。 */ + horizontalCenter: number; + /** !#en + Vertical aligns the midpoint offset value, + the value can be negative, Only available in 'isAlignVerticalCenter' open. + !#zh 垂直居中的偏移值,可填写负值,只有在 isAlignVerticalCenter 开启时才有作用。 */ + verticalCenter: number; + /** !#en If true, horizontalCenter is pixel margin, otherwise is percentage (0 - 1) margin. + !#zh 如果为 true,"horizontalCenter" 将会以像素作为偏移值,反之为百分比(0 到 1)。 */ + isAbsoluteHorizontalCenter: boolean; + /** !#en If true, verticalCenter is pixel margin, otherwise is percentage (0 - 1) margin. + !#zh 如果为 true,"verticalCenter" 将会以像素作为偏移值,反之为百分比(0 到 1)。 */ + isAbsoluteVerticalCenter: boolean; + /** !#en + If true, top is pixel margin, otherwise is percentage (0 - 1) margin relative to the parent's height. + !#zh + 如果为 true,"top" 将会以像素作为边距,否则将会以相对父物体高度的百分比(0 到 1)作为边距。 */ + isAbsoluteTop: boolean; + /** !#en + If true, bottom is pixel margin, otherwise is percentage (0 - 1) margin relative to the parent's height. + !#zh + 如果为 true,"bottom" 将会以像素作为边距,否则将会以相对父物体高度的百分比(0 到 1)作为边距。 */ + isAbsoluteBottom: boolean; + /** !#en + If true, left is pixel margin, otherwise is percentage (0 - 1) margin relative to the parent's width. + !#zh + 如果为 true,"left" 将会以像素作为边距,否则将会以相对父物体宽度的百分比(0 到 1)作为边距。 */ + isAbsoluteLeft: boolean; + /** !#en + If true, right is pixel margin, otherwise is percentage (0 - 1) margin relative to the parent's width. + !#zh + 如果为 true,"right" 将会以像素作为边距,否则将会以相对父物体宽度的百分比(0 到 1)作为边距。 */ + isAbsoluteRight: boolean; + /** !#en Specifies the alignment mode of the Widget, which determines when the widget should refresh. + !#zh 指定 Widget 的对齐模式,用于决定 Widget 应该何时刷新。 */ + alignMode: Widget.AlignMode; + /** + !#en + Immediately perform the widget alignment. You need to manually call this method only if + you need to get the latest results after the alignment before the end of current frame. + !#zh + 立刻执行 widget 对齐操作。这个接口一般不需要手工调用。 + 只有当你需要在当前帧结束前获得 widget 对齐后的最新结果时才需要手动调用这个方法。 + + @example + ```js + widget.top = 10; // change top margin + cc.log(widget.node.y); // not yet changed + widget.updateAlignment(); + cc.log(widget.node.y); // changed + ``` + */ + updateAlignment(): void; + /** !#en + When turned on, it will only be aligned once at the end of the onEnable frame, + then immediately disables the current component. + This will allow the script or animation to continue controlling the current node. + Note: It will still be aligned at the frame when onEnable is called. + !#zh + 开启后仅会在 onEnable 的当帧结束时对齐一次,然后立刻禁用当前组件。 + 这样便于脚本或动画继续控制当前节点。 + 注意:onEnable 时所在的那一帧仍然会进行对齐。 */ + isAlignOnce: boolean; + } + /** !#en SubContextView is a view component which controls open data context viewport in minigame platform.
+ The component's node size decide the viewport of the sub context content in main context, + the entire sub context texture will be scaled to the node's bounding box area.
+ This component provides multiple important features:
+ 1. Sub context could use its own resolution size and policy.
+ 2. Sub context could be minized to smallest size it needed.
+ 3. Resolution of sub context content could be increased.
+ 4. User touch input is transformed to the correct viewport.
+ 5. Texture update is handled by this component. User don't need to worry.
+ One important thing to be noted, whenever the node's bounding box change, + !#zh SubContextView 可以用来控制小游戏平台开放数据域在主域中的视窗的位置。
+ 这个组件的节点尺寸决定了开放数据域内容在主域中的尺寸,整个开放数据域会被缩放到节点的包围盒范围内。
+ 在这个组件的控制下,用户可以更自由得控制开放数据域:
+ 1. 子域中可以使用独立的设计分辨率和适配模式
+ 2. 子域区域尺寸可以缩小到只容纳内容即可
+ 3. 子域的分辨率也可以被放大,以便获得更清晰的显示效果
+ 4. 用户输入坐标会被自动转换到正确的子域视窗中
+ 5. 子域内容贴图的更新由组件负责,用户不需要处理
*/ + export class SubContextView extends Component { + /** + !#en Reset open data context size and viewport + !#zh 重置开放数据域的尺寸和视窗 + */ + reset(): void; + /** + !#en Update the sub context viewport manually, it should be called whenever the node's bounding box changes. + !#zh 更新开放数据域相对于主域的 viewport,这个函数应该在节点包围盒改变时手动调用。 + */ + updateSubContextViewport(): void; + } + /** !#en WXSubContextView is deprecated since v2.4.1, please use SubContextView instead. + !#zh 自 v2.4.1 起,WXSubContextView 已经废弃,请使用 SubContextView */ + export class WXSubContextView extends Component { + } + /** !#en SwanSubContextView is deprecated since v2.4.1, please use SubContextView instead. + !#zh 自 v2.4.1 起,SwanSubContextView 已经废弃,请使用 SubContextView */ + export class SwanSubContextView extends Component { + } + /** !#en The touch event class + !#zh 封装了触摸相关的信息。 */ + export class Touch { + /** + !#en Returns the current touch location in OpenGL coordinates.、 + !#zh 获取当前触点位置。 + */ + getLocation(): Vec2; + /** + !#en Returns X axis location value. + !#zh 获取当前触点 X 轴位置。 + */ + getLocationX(): number; + /** + !#en Returns Y axis location value. + !#zh 获取当前触点 Y 轴位置。 + */ + getLocationY(): number; + /** + !#en Returns the previous touch location in OpenGL coordinates. + !#zh 获取触点在上一次事件时的位置对象,对象包含 x 和 y 属性。 + */ + getPreviousLocation(): Vec2; + /** + !#en Returns the start touch location in OpenGL coordinates. + !#zh 获取触点落下时的位置对象,对象包含 x 和 y 属性。 + */ + getStartLocation(): Vec2; + /** + !#en Returns the delta distance from the previous touche to the current one in screen coordinates. + !#zh 获取触点距离上一次事件移动的距离对象,对象包含 x 和 y 属性。 + */ + getDelta(): Vec2; + /** + !#en Returns the current touch location in screen coordinates. + !#zh 获取当前事件在游戏窗口内的坐标位置对象,对象包含 x 和 y 属性。 + */ + getLocationInView(): Vec2; + /** + !#en Returns the previous touch location in screen coordinates. + !#zh 获取触点在上一次事件时在游戏窗口中的位置对象,对象包含 x 和 y 属性。 + */ + getPreviousLocationInView(): Vec2; + /** + !#en Returns the start touch location in screen coordinates. + !#zh 获取触点落下时在游戏窗口中的位置对象,对象包含 x 和 y 属性。 + */ + getStartLocationInView(): Vec2; + /** + !#en Returns the id of cc.Touch. + !#zh 触点的标识 ID,可以用来在多点触摸中跟踪触点。 + */ + getID(): number; + /** + !#en Sets information to touch. + !#zh 设置触摸相关的信息。用于监控触摸事件。 + @param id id + @param x x + @param y y + */ + setTouchInfo(id: number, x: number, y: number): void; + } + /** undefined */ + export class Graphics extends RenderComponent { + /** !#en + Current line width. + !#zh + 当前线条宽度 */ + lineWidth: number; + /** !#en + lineJoin determines how two connecting segments (of lines, arcs or curves) with non-zero lengths in a shape are joined together. + !#zh + lineJoin 用来设置2个长度不为0的相连部分(线段,圆弧,曲线)如何连接在一起的属性。 */ + lineJoin: Graphics.LineJoin; + /** !#en + lineCap determines how the end points of every line are drawn. + !#zh + lineCap 指定如何绘制每一条线段末端。 */ + lineCap: Graphics.LineCap; + /** !#en + stroke color + !#zh + 线段颜色 */ + strokeColor: Color; + /** !#en + fill color + !#zh + 填充颜色 */ + fillColor: Color; + /** !#en + Sets the miter limit ratio + !#zh + 设置斜接面限制比例 */ + miterLimit: number; + /** + !#en Move path start point to (x,y). + !#zh 移动路径起点到坐标(x, y) + @param x The x axis of the coordinate for the end point. + @param y The y axis of the coordinate for the end point. + */ + moveTo(x?: number, y?: number): void; + /** + !#en Adds a straight line to the path + !#zh 绘制直线路径 + @param x The x axis of the coordinate for the end point. + @param y The y axis of the coordinate for the end point. + */ + lineTo(x?: number, y?: number): void; + /** + !#en Adds a cubic Bézier curve to the path + !#zh 绘制三次贝赛尔曲线路径 + @param c1x The x axis of the coordinate for the first control point. + @param c1y The y axis of the coordinate for first control point. + @param c2x The x axis of the coordinate for the second control point. + @param c2y The y axis of the coordinate for the second control point. + @param x The x axis of the coordinate for the end point. + @param y The y axis of the coordinate for the end point. + */ + bezierCurveTo(c1x?: number, c1y?: number, c2x?: number, c2y?: number, x?: number, y?: number): void; + /** + !#en Adds a quadratic Bézier curve to the path + !#zh 绘制二次贝赛尔曲线路径 + @param cx The x axis of the coordinate for the control point. + @param cy The y axis of the coordinate for the control point. + @param x The x axis of the coordinate for the end point. + @param y The y axis of the coordinate for the end point. + */ + quadraticCurveTo(cx?: number, cy?: number, x?: number, y?: number): void; + /** + !#en Adds an arc to the path which is centered at (cx, cy) position with radius r starting at startAngle and ending at endAngle going in the given direction by counterclockwise (defaulting to false). + !#zh 绘制圆弧路径。圆弧路径的圆心在 (cx, cy) 位置,半径为 r ,根据 counterclockwise (默认为false)指定的方向从 startAngle 开始绘制,到 endAngle 结束。 + @param cx The x axis of the coordinate for the center point. + @param cy The y axis of the coordinate for the center point. + @param r The arc's radius. + @param startAngle The angle at which the arc starts, measured clockwise from the positive x axis and expressed in radians. + @param endAngle The angle at which the arc ends, measured clockwise from the positive x axis and expressed in radians. + @param counterclockwise An optional Boolean which, if true, causes the arc to be drawn counter-clockwise between the two angles. By default it is drawn clockwise. + */ + arc(cx?: number, cy?: number, r?: number, startAngle?: number, endAngle?: number, counterclockwise?: boolean): void; + /** + !#en Adds an ellipse to the path. + !#zh 绘制椭圆路径。 + @param cx The x axis of the coordinate for the center point. + @param cy The y axis of the coordinate for the center point. + @param rx The ellipse's x-axis radius. + @param ry The ellipse's y-axis radius. + */ + ellipse(cx?: number, cy?: number, rx?: number, ry?: number): void; + /** + !#en Adds an circle to the path. + !#zh 绘制圆形路径。 + @param cx The x axis of the coordinate for the center point. + @param cy The y axis of the coordinate for the center point. + @param r The circle's radius. + */ + circle(cx?: number, cy?: number, r?: number): void; + /** + !#en Adds an rectangle to the path. + !#zh 绘制矩形路径。 + @param x The x axis of the coordinate for the rectangle starting point. + @param y The y axis of the coordinate for the rectangle starting point. + @param w The rectangle's width. + @param h The rectangle's height. + */ + rect(x?: number, y?: number, w?: number, h?: number): void; + /** + !#en Adds an round corner rectangle to the path. + !#zh 绘制圆角矩形路径。 + @param x The x axis of the coordinate for the rectangle starting point. + @param y The y axis of the coordinate for the rectangle starting point. + @param w The rectangles width. + @param h The rectangle's height. + @param r The radius of the rectangle. + */ + roundRect(x?: number, y?: number, w?: number, h?: number, r?: number): void; + /** + !#en Draws a filled rectangle. + !#zh 绘制填充矩形。 + @param x The x axis of the coordinate for the rectangle starting point. + @param y The y axis of the coordinate for the rectangle starting point. + @param w The rectangle's width. + @param h The rectangle's height. + */ + fillRect(x?: number, y?: number, w?: number, h?: number): void; + /** + !#en Erasing any previously drawn content. + !#zh 擦除之前绘制的所有内容的方法。 + @param clean Whether to clean the graphics inner cache. + */ + clear(clean?: boolean): void; + /** + !#en Causes the point of the pen to move back to the start of the current path. It tries to add a straight line from the current point to the start. + !#zh 将笔点返回到当前路径起始点的。它尝试从当前点到起始点绘制一条直线。 + */ + close(): void; + /** + !#en Strokes the current or given path with the current stroke style. + !#zh 根据当前的画线样式,绘制当前或已经存在的路径。 + */ + stroke(): void; + /** + !#en Fills the current or given path with the current fill style. + !#zh 根据当前的画线样式,填充当前或已经存在的路径。 + */ + fill(): void; + } + /** !#en + Camera is usefull when making reel game or other games which need scroll screen. + Using camera will be more efficient than moving node to scroll screen. + Camera + !#zh + 摄像机在制作卷轴或是其他需要移动屏幕的游戏时比较有用,使用摄像机将会比移动节点来移动屏幕更加高效。 */ + export class Camera extends Component { + /** !#en + The camera zoom ratio, only support 2D camera. + !#zh + 摄像机缩放比率, 只支持 2D camera。 */ + zoomRatio: number; + /** !#en + Field of view. The width of the Camera’s view angle, measured in degrees along the local Y axis. + !#zh + 决定摄像机视角的宽度,当摄像机处于透视投影模式下这个属性才会生效。 */ + fov: number; + /** !#en + The viewport size of the Camera when set to orthographic projection. + !#zh + 摄像机在正交投影模式下的视窗大小。 */ + orthoSize: number; + /** !#en + The near clipping plane. + !#zh + 摄像机的近剪裁面。 */ + nearClip: number; + /** !#en + The far clipping plane. + !#zh + 摄像机的远剪裁面。 */ + farClip: number; + /** !#en + Is the camera orthographic (true) or perspective (false)? + !#zh + 设置摄像机的投影模式是正交还是透视模式。 */ + ortho: boolean; + /** !#en + Four values (0 ~ 1) that indicate where on the screen this camera view will be drawn. + !#zh + 决定摄像机绘制在屏幕上哪个位置,值为(0 ~ 1)。 */ + rect: Rect; + /** !#en + This is used to render parts of the scene selectively. + !#zh + 决定摄像机会渲染场景的哪一部分。 */ + cullingMask: number; + /** !#en + Determining what to clear when camera rendering. + !#zh + 决定摄像机渲染时会清除哪些状态。 */ + clearFlags: Camera.ClearFlags; + /** !#en + The color with which the screen will be cleared. + !#zh + 摄像机用于清除屏幕的背景色。 */ + backgroundColor: Color; + /** !#en + Camera's depth in the camera rendering order. Cameras with higher depth are rendered after cameras with lower depth. + !#zh + 摄像机深度。用于决定摄像机的渲染顺序,值越大渲染在越上层。 */ + depth: number; + /** !#en + Destination render texture. + Usually cameras render directly to screen, but for some effects it is useful to make a camera render into a texture. + !#zh + 摄像机渲染的目标 RenderTexture。 + 一般摄像机会直接渲染到屏幕上,但是有一些效果可以使用摄像机渲染到 RenderTexture 上再对 RenderTexture 进行处理来实现。 */ + targetTexture: RenderTexture; + /** !#en + Sets the camera's render stages. + !#zh + 设置摄像机渲染的阶段 */ + renderStages: number; + /** !#en Whether auto align camera viewport to screen + !#zh 是否自动将摄像机的视口对准屏幕 */ + alignWithScreen: boolean; + /** !#en + The primary camera in the scene. Returns the rear most rendered camera, which is the camera with the lowest depth. + !#zh + 当前场景中激活的主摄像机。将会返回渲染在屏幕最底层,也就是 depth 最小的摄像机。 */ + static main: Camera; + /** !#en + All enabled cameras. + !#zh + 当前激活的所有摄像机。 */ + static cameras: Camera[]; + /** + !#en + Get the first camera which the node belong to. + !#zh + 获取节点所在的第一个摄像机。 + @param node node + */ + static findCamera(node: Node): Camera; + /** + !#en + Get the screen to world matrix, only support 2D camera which alignWithScreen is true. + !#zh + 获取屏幕坐标系到世界坐标系的矩阵,只适用于 alignWithScreen 为 true 的 2D 摄像机。 + @param out the matrix to receive the result + */ + getScreenToWorldMatrix2D(out: Mat4): Mat4; + /** + !#en + Get the world to camera matrix, only support 2D camera which alignWithScreen is true. + !#zh + 获取世界坐标系到摄像机坐标系的矩阵,只适用于 alignWithScreen 为 true 的 2D 摄像机。 + @param out the matrix to receive the result + */ + getWorldToScreenMatrix2D(out: Mat4): Mat4; + /** + !#en + Convert point from screen to world. + !#zh + 将坐标从屏幕坐标系转换到世界坐标系。 + @param screenPosition screenPosition + @param out out + */ + getScreenToWorldPoint(screenPosition: Vec3|Vec2, out?: Vec3|Vec2): Vec3; + /** + !#en + Convert point from world to screen. + !#zh + 将坐标从世界坐标系转化到屏幕坐标系。 + @param worldPosition worldPosition + @param out out + */ + getWorldToScreenPoint(worldPosition: Vec3|Vec2, out?: Vec3|Vec2): Vec3; + /** + !#en + Get a ray from screen position + !#zh + 从屏幕坐标获取一条射线 + @param screenPos screenPos + */ + getRay(screenPos: Vec2): geomUtils.Ray; + /** + !#en + Check whether the node is in the camera. + !#zh + 检测节点是否被此摄像机影响 + @param node the node which need to check + */ + containsNode(node: Node): boolean; + /** + !#en + Render the camera manually. + !#zh + 手动渲染摄像机。 + @param rootNode rootNode + */ + render(rootNode?: Node): void; + /** + !#en + Returns the matrix that transform the node's (local) space coordinates into the camera's space coordinates. + !#zh + 返回一个将节点坐标系转换到摄像机坐标系下的矩阵 + @param node the node which should transform + */ + getNodeToCameraTransform(node: Node): AffineTransform; + /** + !#en + Conver a camera coordinates point to world coordinates. + !#zh + 将一个摄像机坐标系下的点转换到世界坐标系下。 + @param point the point which should transform + @param out the point to receive the result + */ + getCameraToWorldPoint(point: Vec2, out?: Vec2): Vec2; + /** + !#en + Conver a world coordinates point to camera coordinates. + !#zh + 将一个世界坐标系下的点转换到摄像机坐标系下。 + @param point point + @param out the point to receive the result + */ + getWorldToCameraPoint(point: Vec2, out?: Vec2): Vec2; + /** + !#en + Get the camera to world matrix + !#zh + 获取摄像机坐标系到世界坐标系的矩阵 + @param out the matrix to receive the result + */ + getCameraToWorldMatrix(out: Mat4): Mat4; + /** + !#en + Get the world to camera matrix + !#zh + 获取世界坐标系到摄像机坐标系的矩阵 + @param out the matrix to receive the result + */ + getWorldToCameraMatrix(out: Mat4): Mat4; + } + /** !#en Mesh Asset. + !#zh 网格资源。 */ + export class Mesh extends Asset implements EventTarget { + /** !#en Get ir set the sub meshes. + !#zh 设置或者获取子网格。 */ + subMeshes: InputAssembler[]; + /** + !#en + Init vertex buffer according to the vertex format. + !#zh + 根据顶点格式初始化顶点内存。 + @param vertexFormat vertex format + @param vertexCount how much vertex should be create in this buffer. + @param dynamic whether or not to use dynamic buffer. + @param index index + */ + init(vertexFormat: gfx.VertexFormat, vertexCount: number, dynamic?: boolean, index?: boolean): void; + /** + !#en + Set the vertex values. + !#zh + 设置顶点数据 + @param name the attribute name, e.g. gfx.ATTR_POSITION + @param values the vertex values + */ + setVertices(name: string, values: Vec2[]|Vec3[]|Color[]|number[]|Uint8Array|Float32Array): void; + /** + !#en + Set the sub mesh indices. + !#zh + 设置子网格索引。 + @param indices the sub mesh indices. + @param index sub mesh index. + @param dynamic whether or not to use dynamic buffer. + */ + setIndices(indices: number[]|Uint16Array|Uint8Array, index?: number, dynamic?: boolean): void; + /** + !#en + Set the sub mesh primitive type. + !#zh + 设置子网格绘制线条的方式。 + @param type type + @param index index + */ + setPrimitiveType(type: number, index: number): void; + /** + !#en + Clear the buffer data. + !#zh + 清除网格创建的内存数据。 + */ + clear(): void; + /** + !#en Set mesh bounding box + !#zh 设置网格的包围盒 + @param min min + @param max max + */ + setBoundingBox(min: Vec3, max: Vec3): void; + /** + !#en Read the specified attributes of the subgrid into the target buffer. + !#zh 读取子网格的指定属性到目标缓冲区中。 + @param primitiveIndex The subgrid index. + @param attributeName attribute name. + @param buffer The target buffer. + @param stride The byte interval between adjacent attributes in the target buffer. + @param offset The offset of the first attribute in the target buffer. + */ + copyAttribute(primitiveIndex: number, attributeName: string, buffer: ArrayBuffer, stride: number, offset: number): boolean; + /** + !#en Read the index data of the subgrid into the target array. + !#zh 读取子网格的索引数据到目标数组中。 + @param primitiveIndex The subgrid index. + @param outputArray The target array. + */ + copyIndices(primitiveIndex: number, outputArray: DataView): boolean; + /** + !#en Checks whether the EventTarget object has any callback registered for a specific type of event. + !#zh 检查事件目标对象是否有为特定类型的事件注册的回调。 + @param type The type of event. + */ + hasEventListener(type: string): boolean; + /** + !#en + Register an callback of a specific event type on the EventTarget. + This type of event should be triggered via `emit`. + !#zh + 注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, node); + ``` + */ + on(type: string, callback: T, target?: any, useCapture?: boolean): T; + /** + !#en + Removes the listeners previously registered with the same type, callback, target and or useCapture, + if only type is passed as parameter, all listeners registered with that type will be removed. + !#zh + 删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。 + @param type A string representing the event type being removed. + @param callback The callback to remove. + @param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed + + @example + ```js + // register fire eventListener + var callback = eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, target); + // remove fire event listener + eventTarget.off('fire', callback, target); + // remove all fire event listeners + eventTarget.off('fire'); + ``` + */ + off(type: string, callback?: Function, target?: any): void; + /** + !#en Removes all callbacks previously registered with the same target (passed as parameter). + This is not for removing all listeners in the current event target, + and this is not for removing all listeners the target parameter have registered. + It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter. + !#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。 + 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。 + 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。 + @param target The target to be searched for all related listeners + */ + targetOff(target: any): void; + /** + !#en + Register an callback of a specific event type on the EventTarget, + the callback will remove itself after the first time it is triggered. + !#zh + 注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.once('fire', function () { + cc.log("this is the callback and will be invoked only once"); + }, node); + ``` + */ + once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void; + /** + !#en + Send an event with the event object. + !#zh + 通过事件对象派发事件 + @param event event + */ + dispatchEvent(event: Event): void; + } + /** !#en + Mesh Renderer Component + !#zh + 网格渲染组件 */ + export class MeshRenderer extends RenderComponent { + /** !#en + The mesh which the renderer uses. + !#zh + 设置使用的网格 */ + mesh: Mesh; + /** !#en + Whether the mesh should receive shadows. + !#zh + 网格是否接受光源投射的阴影 */ + receiveShadows: boolean; + /** !#en + Shadow Casting Mode + !#zh + 网格投射阴影的模式 */ + shadowCastingMode: MeshRenderer.ShadowCastingMode; + /** !#en + Enable auto merge mesh, only support when mesh's VertexFormat, PrimitiveType, materials are all the same + !#zh + 开启自动合并 mesh 功能,只有在网格的 顶点格式,PrimitiveType, 使用的材质 都一致的情况下才会有效 */ + enableAutoBatch: boolean; + } + /** The class BufferRange denotes a range of the buffer. */ + export class BufferRange { + /** The offset of the range. */ + offset: number; + /** The length of the range. */ + length: number; + } + /** undefined */ + export class VertexFormat { + /** The data range of this bundle. + This range of data is essentially mapped to a GPU vertex buffer. */ + data: BufferRange; + /** The attribute formats. */ + formats: VertexFormat; + /** The vertex bundle that the primitive use. */ + vertexBundleIndices: number[]; + /** The data range of the primitive. + This range of data is essentially mapped to a GPU indices buffer. */ + data: BufferRange; + /** The type of this primitive's indices. */ + indexUnit: number; + /** The primitive's topology. */ + topology: number; + } + /** undefined */ + export class WorldManifold { + /** !#en + world contact point (point of intersection) + !#zh + 碰撞点集合 */ + points: Vec2[]; + /** !#en + world vector pointing from A to B + !#zh + 世界坐标系下由 A 指向 B 的向量 */ + normal: Vec2; + } + /** !#en + A manifold point is a contact point belonging to a contact manifold. + It holds details related to the geometry and dynamics of the contact points. + Note: the impulses are used for internal caching and may not + provide reliable contact forces, especially for high speed collisions. + !#zh + ManifoldPoint 是接触信息中的接触点信息。它拥有关于几何和接触点的详细信息。 + 注意:信息中的冲量用于系统内部缓存,提供的接触力可能不是很准确,特别是高速移动中的碰撞信息。 */ + export class ManifoldPoint { + /** !#en + The local point usage depends on the manifold type: + -e_circles: the local center of circleB + -e_faceA: the local center of circleB or the clip point of polygonB + -e_faceB: the clip point of polygonA + !#zh + 本地坐标点的用途取决于 manifold 的类型 + - e_circles: circleB 的本地中心点 + - e_faceA: circleB 的本地中心点 或者是 polygonB 的截取点 + - e_faceB: polygonB 的截取点 */ + localPoint: Vec2; + /** !#en + Normal impulse. + !#zh + 法线冲量。 */ + normalImpulse: number; + /** !#en + Tangent impulse. + !#zh + 切线冲量。 */ + tangentImpulse: number; + } + /** undefined */ + export class Manifold { + /** !#en + Manifold type : 0: e_circles, 1: e_faceA, 2: e_faceB + !#zh + Manifold 类型 : 0: e_circles, 1: e_faceA, 2: e_faceB */ + type: number; + /** !#en + The local point usage depends on the manifold type: + -e_circles: the local center of circleA + -e_faceA: the center of faceA + -e_faceB: the center of faceB + !#zh + 用途取决于 manifold 类型 + -e_circles: circleA 的本地中心点 + -e_faceA: faceA 的本地中心点 + -e_faceB: faceB 的本地中心点 */ + localPoint: Vec2; + /** !#en + -e_circles: not used + -e_faceA: the normal on polygonA + -e_faceB: the normal on polygonB + !#zh + -e_circles: 没被使用到 + -e_faceA: polygonA 的法向量 + -e_faceB: polygonB 的法向量 */ + localNormal: Vec2; + /** !#en + the points of contact. + !#zh + 接触点信息。 */ + points: ManifoldPoint[]; + } + /** !#en + Contact impulses for reporting. + !#zh + 用于返回给回调的接触冲量。 */ + export class PhysicsImpulse { + /** !#en + Normal impulses. + !#zh + 法线方向的冲量 */ + normalImpulses: any; + /** !#en + Tangent impulses + !#zh + 切线方向的冲量 */ + tangentImpulses: any; + } + /** !#en + PhysicsContact will be generated during begin and end collision as a parameter of the collision callback. + Note that contacts will be reused for speed up cpu time, so do not cache anything in the contact. + !#zh + 物理接触会在开始和结束碰撞之间生成,并作为参数传入到碰撞回调函数中。 + 注意:传入的物理接触会被系统进行重用,所以不要在使用中缓存里面的任何信息。 */ + export class PhysicsContact { + /** + !#en + Get the world manifold. + !#zh + 获取世界坐标系下的碰撞信息。 + */ + getWorldManifold(): WorldManifold; + /** + !#en + Get the manifold. + !#zh + 获取本地(局部)坐标系下的碰撞信息。 + */ + getManifold(): Manifold; + /** + !#en + Get the impulses. + Note: PhysicsImpulse can only used in onPostSolve callback. + !#zh + 获取冲量信息 + 注意:这个信息只有在 onPostSolve 回调中才能获取到 + */ + getImpulse(): PhysicsImpulse; + /** !#en + One of the collider that collided + !#zh + 发生碰撞的碰撞体之一 */ + colliderA: Collider; + /** !#en + One of the collider that collided + !#zh + 发生碰撞的碰撞体之一 */ + colliderB: Collider; + /** !#en + If set disabled to true, the contact will be ignored until contact end. + If you just want to disabled contact for current time step or sub-step, please use disabledOnce. + !#zh + 如果 disabled 被设置为 true,那么直到接触结束此接触都将被忽略。 + 如果只是希望在当前时间步或子步中忽略此接触,请使用 disabledOnce 。 */ + disabled: boolean; + /** !#en + Disabled contact for current time step or sub-step. + !#zh + 在当前时间步或子步中忽略此接触。 */ + disabledOnce: boolean; + /** + !#en + Is this contact touching? + !#zh + 返回碰撞体是否已经接触到。 + */ + isTouching(): boolean; + /** + !#en + Set the desired tangent speed for a conveyor belt behavior. + !#zh + 为传送带设置期望的切线速度 + @param tangentSpeed tangentSpeed + */ + setTangentSpeed(tangentSpeed: number): void; + /** + !#en + Get the desired tangent speed. + !#zh + 获取切线速度 + */ + getTangentSpeed(): number; + /** + !#en + Override the default friction mixture. You can call this in onPreSolve callback. + !#zh + 覆盖默认的摩擦力系数。你可以在 onPreSolve 回调中调用此函数。 + @param friction friction + */ + setFriction(friction: number): void; + /** + !#en + Get the friction. + !#zh + 获取当前摩擦力系数 + */ + getFriction(): number; + /** + !#en + Reset the friction mixture to the default value. + !#zh + 重置摩擦力系数到默认值 + */ + resetFriction(): void; + /** + !#en + Override the default restitution mixture. You can call this in onPreSolve callback. + !#zh + 覆盖默认的恢复系数。你可以在 onPreSolve 回调中调用此函数。 + @param restitution restitution + */ + setRestitution(restitution: number): void; + /** + !#en + Get the restitution. + !#zh + 获取当前恢复系数 + */ + getRestitution(): number; + /** + !#en + Reset the restitution mixture to the default value. + !#zh + 重置恢复系数到默认值 + */ + resetRestitution(): void; + } + /** !#en + Physics manager uses box2d as the inner physics system, and hide most box2d implement details(creating rigidbody, synchronize rigidbody info to node). + You can visit some common box2d function through physics manager(hit testing, raycast, debug info). + Physics manager distributes the collision information to each collision callback when collision is produced. + Note: You need first enable the collision listener in the rigidbody. + !#zh + 物理系统将 box2d 作为内部物理系统,并且隐藏了大部分 box2d 实现细节(比如创建刚体,同步刚体信息到节点中等)。 + 你可以通过物理系统访问一些 box2d 常用的功能,比如点击测试,射线测试,设置测试信息等。 + 物理系统还管理碰撞信息的分发,她会在产生碰撞时,将碰撞信息分发到各个碰撞回调中。 + 注意:你需要先在刚体中开启碰撞接听才会产生相应的碰撞回调。
+ 支持的物理系统指定绘制信息事件,请参阅 {{#crossLink "PhysicsManager.DrawBits"}}{{/crossLink}} */ + export class PhysicsManager implements EventTarget { + /** !#en + The ratio transform between physics unit and pixel unit, generally is 32. + !#zh + 物理单位与像素单位互相转换的比率,一般是 32。 */ + static PTM_RATIO: number; + /** !#en + The velocity iterations for the velocity constraint solver. + !#zh + 速度更新迭代数 */ + static VELOCITY_ITERATIONS: number; + /** !#en + The position Iterations for the position constraint solver. + !#zh + 位置迭代更新数 */ + static POSITION_ITERATIONS: number; + /** !#en + Specify the fixed time step. + Need enabledAccumulator to make it work. + !#zh + 指定固定的物理更新间隔时间,需要开启 enabledAccumulator 才有效。 */ + static FIXED_TIME_STEP: number; + /** !#en + Specify the max accumulator time. + Need enabledAccumulator to make it work. + !#zh + 每次可用于更新物理系统的最大时间,需要开启 enabledAccumulator 才有效。 */ + static MAX_ACCUMULATOR: number; + /** !#en + If enabled accumulator, then will call step function with the fixed time step FIXED_TIME_STEP. + And if the update dt is bigger than the time step, then will call step function several times. + If disabled accumulator, then will call step function with a time step calculated with the frame rate. + !#zh + 如果开启此选项,那么将会以固定的间隔时间 FIXED_TIME_STEP 来更新物理引擎,如果一个 update 的间隔时间大于 FIXED_TIME_STEP,则会对物理引擎进行多次更新。 + 如果关闭此选项,那么将会根据设定的 frame rate 计算出一个间隔时间来更新物理引擎。 */ + enabledAccumulator: boolean; + /** + !#en + Test which collider contains the given world point + !#zh + 获取包含给定世界坐标系点的碰撞体 + @param point the world point + */ + testPoint(point: Vec2): PhysicsCollider; + /** + !#en + Test which colliders intersect the given world rect + !#zh + 获取与给定世界坐标系矩形相交的碰撞体 + @param rect the world rect + */ + testAABB(rect: Rect): PhysicsCollider[]; + /** + !#en + Raycast the world for all colliders in the path of the ray. + The raycast ignores colliders that contain the starting point. + !#zh + 检测哪些碰撞体在给定射线的路径上,射线检测将忽略包含起始点的碰撞体。 + @param p1 start point of the raycast + @param p2 end point of the raycast + @param type optional, default is RayCastType.Closest + */ + rayCast(p1: Vec2, p2: Vec2, type: RayCastType): PhysicsRayCastResult[]; + /** !#en + Enabled the physics manager? + !#zh + 指定是否启用物理系统? */ + enabled: boolean; + /** !#en + Debug draw flags. + !#zh + 设置调试绘制标志 */ + debugDrawFlags: number; + /** !#en + The physics world gravity. + !#zh + 物理世界重力值 */ + gravity: Vec2; + /** + !#en Checks whether the EventTarget object has any callback registered for a specific type of event. + !#zh 检查事件目标对象是否有为特定类型的事件注册的回调。 + @param type The type of event. + */ + hasEventListener(type: string): boolean; + /** + !#en + Register an callback of a specific event type on the EventTarget. + This type of event should be triggered via `emit`. + !#zh + 注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, node); + ``` + */ + on(type: string, callback: T, target?: any, useCapture?: boolean): T; + /** + !#en + Removes the listeners previously registered with the same type, callback, target and or useCapture, + if only type is passed as parameter, all listeners registered with that type will be removed. + !#zh + 删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。 + @param type A string representing the event type being removed. + @param callback The callback to remove. + @param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed + + @example + ```js + // register fire eventListener + var callback = eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, target); + // remove fire event listener + eventTarget.off('fire', callback, target); + // remove all fire event listeners + eventTarget.off('fire'); + ``` + */ + off(type: string, callback?: Function, target?: any): void; + /** + !#en Removes all callbacks previously registered with the same target (passed as parameter). + This is not for removing all listeners in the current event target, + and this is not for removing all listeners the target parameter have registered. + It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter. + !#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。 + 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。 + 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。 + @param target The target to be searched for all related listeners + */ + targetOff(target: any): void; + /** + !#en + Register an callback of a specific event type on the EventTarget, + the callback will remove itself after the first time it is triggered. + !#zh + 注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.once('fire', function () { + cc.log("this is the callback and will be invoked only once"); + }, node); + ``` + */ + once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void; + /** + !#en + Send an event with the event object. + !#zh + 通过事件对象派发事件 + @param event event + */ + dispatchEvent(event: Event): void; + /** + !#en + Destroy all callbackInfos. + !#zh + 销毁记录的事件 + */ + clear(): void; + } + /** undefined */ + export class PhysicsRayCastResult { + /** !#en + The PhysicsCollider which intersects with the raycast + !#zh + 与射线相交的碰撞体 */ + collider: PhysicsCollider; + /** !#en + The intersection point + !#zh + 射线与碰撞体相交的点 */ + point: Vec2; + /** !#en + The normal vector at the point of intersection + !#zh + 射线与碰撞体相交的点的法向量 */ + normal: Vec2; + /** !#en + The fraction of the raycast path at the point of intersection + !#zh + 射线与碰撞体相交的点占射线长度的分数 */ + fraction: number; + } + /** !#en Enum for RigidBodyType. + !#zh 刚体类型 */ + export enum RigidBodyType { + Static = 0, + Kinematic = 0, + Dynamic = 0, + Animated = 0, + } + /** !#en Enum for RayCastType. + !#zh 射线检测类型 */ + export enum RayCastType { + Closest = 0, + Any = 0, + AllClosest = 0, + All = 0, + } + /** undefined */ + export class RigidBody extends Component { + /** !#en + Should enabled contact listener? + When a collision is trigger, the collision callback will only be called when enabled contact listener. + !#zh + 是否启用接触接听器。 + 当 collider 产生碰撞时,只有开启了接触接听器才会调用相应的回调函数 */ + enabledContactListener: boolean; + /** + !#en + Collision callback. + Called when two collider begin to touch. + !#zh + 碰撞回调。 + 如果你的脚本中实现了这个函数,那么它将会在两个碰撞体开始接触时被调用。 + @param contact contact information + @param selfCollider the collider belong to this rigidbody + @param otherCollider the collider belong to another rigidbody + */ + onBeginContact(contact: PhysicsContact, selfCollider: PhysicsCollider, otherCollider: PhysicsCollider): void; + /** + !#en + Collision callback. + Called when two collider cease to touch. + !#zh + 碰撞回调。 + 如果你的脚本中实现了这个函数,那么它将会在两个碰撞体停止接触时被调用。 + @param contact contact information + @param selfCollider the collider belong to this rigidbody + @param otherCollider the collider belong to another rigidbody + */ + onEndContact(contact: PhysicsContact, selfCollider: PhysicsCollider, otherCollider: PhysicsCollider): void; + /** + !#en + Collision callback. + This is called when a contact is updated. + This allows you to inspect a contact before it goes to the solver(e.g. disable contact). + Note: this is called only for awake bodies. + Note: this is called even when the number of contact points is zero. + Note: this is not called for sensors. + !#zh + 碰撞回调。 + 如果你的脚本中实现了这个函数,那么它将会在接触更新时被调用。 + 你可以在接触被处理前根据他包含的信息作出相应的处理,比如将这个接触禁用掉。 + 注意:回调只会为醒着的刚体调用。 + 注意:接触点为零的时候也有可能被调用。 + 注意:感知体(sensor)的回调不会被调用。 + @param contact contact information + @param selfCollider the collider belong to this rigidbody + @param otherCollider the collider belong to another rigidbody + */ + onPreSolve(contact: PhysicsContact, selfCollider: PhysicsCollider, otherCollider: PhysicsCollider): void; + /** + !#en + Collision callback. + This is called after a contact is updated. + You can get the impulses from the contact in this callback. + !#zh + 碰撞回调。 + 如果你的脚本中实现了这个函数,那么它将会在接触更新完后被调用。 + 你可以在这个回调中从接触信息中获取到冲量信息。 + @param contact contact information + @param selfCollider the collider belong to this rigidbody + @param otherCollider the collider belong to another rigidbody + */ + onPostSolve(contact: PhysicsContact, selfCollider: PhysicsCollider, otherCollider: PhysicsCollider): void; + /** !#en + Is this a fast moving body that should be prevented from tunneling through + other moving bodies? + Note : + - All bodies are prevented from tunneling through kinematic and static bodies. This setting is only considered on dynamic bodies. + - You should use this flag sparingly since it increases processing time. + !#zh + 这个刚体是否是一个快速移动的刚体,并且需要禁止穿过其他快速移动的刚体? + 需要注意的是 : + - 所有刚体都被禁止从 运动刚体 和 静态刚体 中穿过。此选项只关注于 动态刚体。 + - 应该尽量少的使用此选项,因为它会增加程序处理时间。 */ + bullet: boolean; + /** !#en + Rigidbody type : Static, Kinematic, Dynamic or Animated. + !#zh + 刚体类型: Static, Kinematic, Dynamic or Animated. */ + type: RigidBodyType; + /** !#en + Set this flag to false if this body should never fall asleep. + Note that this increases CPU usage. + !#zh + 如果此刚体永远都不应该进入睡眠,那么设置这个属性为 false。 + 需要注意这将使 CPU 占用率提高。 */ + allowSleep: boolean; + /** !#en + Scale the gravity applied to this body. + !#zh + 缩放应用在此刚体上的重力值 */ + gravityScale: number; + /** !#en + Linear damping is use to reduce the linear velocity. + The damping parameter can be larger than 1, but the damping effect becomes sensitive to the + time step when the damping parameter is large. + !#zh + Linear damping 用于衰减刚体的线性速度。衰减系数可以大于 1,但是当衰减系数比较大的时候,衰减的效果会变得比较敏感。 */ + linearDamping: number; + /** !#en + Angular damping is use to reduce the angular velocity. The damping parameter + can be larger than 1 but the damping effect becomes sensitive to the + time step when the damping parameter is large. + !#zh + Angular damping 用于衰减刚体的角速度。衰减系数可以大于 1,但是当衰减系数比较大的时候,衰减的效果会变得比较敏感。 */ + angularDamping: number; + /** !#en + The linear velocity of the body's origin in world co-ordinates. + !#zh + 刚体在世界坐标下的线性速度 */ + linearVelocity: Vec2; + /** !#en + The angular velocity of the body. + !#zh + 刚体的角速度 */ + angularVelocity: number; + /** !#en + Should this body be prevented from rotating? + !#zh + 是否禁止此刚体进行旋转 */ + fixedRotation: boolean; + /** !#en + Set the sleep state of the body. A sleeping body has very low CPU cost.(When the rigid body is hit, if the rigid body is in sleep state, it will be immediately awakened.) + !#zh + 设置刚体的睡眠状态。 睡眠的刚体具有非常低的 CPU 成本。(当刚体被碰撞到时,如果刚体处于睡眠状态,它会立即被唤醒) */ + awake: boolean; + /** !#en + Whether to wake up this rigid body during initialization + !#zh + 是否在初始化时唤醒此刚体 */ + awakeOnLoad: boolean; + /** !#en + Set the active state of the body. An inactive body is not + simulated and cannot be collided with or woken up. + If body is active, all fixtures will be added to the + broad-phase. + If body is inactive, all fixtures will be removed from + the broad-phase and all contacts will be destroyed. + Fixtures on an inactive body are implicitly inactive and will + not participate in collisions, ray-casts, or queries. + Joints connected to an inactive body are implicitly inactive. + !#zh + 设置刚体的激活状态。一个非激活状态下的刚体是不会被模拟和碰撞的,不管它是否处于睡眠状态下。 + 如果刚体处于激活状态下,所有夹具会被添加到 粗测阶段(broad-phase)。 + 如果刚体处于非激活状态下,所有夹具会被从 粗测阶段(broad-phase)中移除。 + 在非激活状态下的夹具不会参与到碰撞,射线,或者查找中 + 链接到非激活状态下刚体的关节也是非激活的。 */ + active: boolean; + /** + !#en + Converts a given point in the world coordinate system to this rigid body's local coordinate system + !#zh + 将一个给定的世界坐标系下的点转换为刚体本地坐标系下的点 + @param worldPoint a point in world coordinates. + @param out optional, the receiving point + */ + getLocalPoint(worldPoint: Vec2, out: Vec2): Vec2; + /** + !#en + Converts a given point in this rigid body's local coordinate system to the world coordinate system + !#zh + 将一个给定的刚体本地坐标系下的点转换为世界坐标系下的点 + @param localPoint a point in local coordinates. + @param out optional, the receiving point + */ + getWorldPoint(localPoint: Vec2, out: Vec2): Vec2; + /** + !#en + Converts a given vector in this rigid body's local coordinate system to the world coordinate system + !#zh + 将一个给定的刚体本地坐标系下的向量转换为世界坐标系下的向量 + @param localVector a vector in world coordinates. + @param out optional, the receiving vector + */ + getWorldVector(localVector: Vec2, out: Vec2): Vec2; + /** + !#en + Converts a given vector in the world coordinate system to this rigid body's local coordinate system + !#zh + 将一个给定的世界坐标系下的向量转换为刚体本地坐标系下的向量 + @param worldVector a vector in world coordinates. + @param out optional, the receiving vector + */ + getLocalVector(worldVector: Vec2, out: Vec2): Vec2; + /** + !#en + Get the world body origin position. + !#zh + 获取刚体世界坐标系下的原点值 + @param out optional, the receiving point + */ + getWorldPosition(out: Vec2): Vec2; + /** + !#en + Get the world body rotation angle. + !#zh + 获取刚体世界坐标系下的旋转值。 + */ + getWorldRotation(): number; + /** + !#en + Get the local position of the center of mass. + !#zh + 获取刚体本地坐标系下的质心 + */ + getLocalCenter(): Vec2; + /** + !#en + Get the world position of the center of mass. + !#zh + 获取刚体世界坐标系下的质心 + */ + getWorldCenter(): Vec2; + /** + !#en + Get the world linear velocity of a world point attached to this body. + !#zh + 获取刚体上指定点的线性速度 + @param worldPoint a point in world coordinates. + @param out optional, the receiving point + */ + getLinearVelocityFromWorldPoint(worldPoint: Vec2, out: Vec2): Vec2; + /** + !#en + Get total mass of the body. + !#zh + 获取刚体的质量。 + */ + getMass(): number; + /** + !#en + Get the rotational inertia of the body about the local origin. + !#zh + 获取刚体本地坐标系下原点的旋转惯性 + */ + getInertia(): number; + /** + !#en + Get all the joints connect to the rigidbody. + !#zh + 获取链接到此刚体的所有关节 + */ + getJointList(): Joint[]; + /** + !#en + Apply a force at a world point. If the force is not + applied at the center of mass, it will generate a torque and + affect the angular velocity. + !#zh + 施加一个力到刚体上的一个点。如果力没有施加到刚体的质心上,还会产生一个扭矩并且影响到角速度。 + @param force the world force vector. + @param point the world position. + @param wake also wake up the body. + */ + applyForce(force: Vec2, point: Vec2, wake: boolean): void; + /** + !#en + Apply a force to the center of mass. + !#zh + 施加一个力到刚体上的质心上。 + @param force the world force vector. + @param wake also wake up the body. + */ + applyForceToCenter(force: Vec2, wake: boolean): void; + /** + !#en + Apply a torque. This affects the angular velocity. + !#zh + 施加一个扭矩力,将影响刚体的角速度 + @param torque about the z-axis (out of the screen), usually in N-m. + @param wake also wake up the body + */ + applyTorque(torque: number, wake: boolean): void; + /** + !#en + Apply a impulse at a world point, This immediately modifies the velocity. + If the impulse is not applied at the center of mass, it will generate a torque and + affect the angular velocity. + !#zh + 施加冲量到刚体上的一个点,将立即改变刚体的线性速度。 + 如果冲量施加到的点不是刚体的质心,那么将产生一个扭矩并影响刚体的角速度。 + @param impulse the world impulse vector, usually in N-seconds or kg-m/s. + @param point the world position + @param wake alse wake up the body + */ + applyLinearImpulse(impulse: Vec2, point: Vec2, wake: boolean): void; + /** + !#en + Apply an angular impulse. + !#zh + 施加一个角速度冲量。 + @param impulse the angular impulse in units of kg*m*m/s + @param wake also wake up the body + */ + applyAngularImpulse(impulse: number, wake: boolean): void; + /** + !#en + Synchronize node's world position to box2d rigidbody's position. + If enableAnimated is true and rigidbody's type is Animated type, + will set linear velocity instead of directly set rigidbody's position. + !#zh + 同步节点的世界坐标到 box2d 刚体的坐标上。 + 如果 enableAnimated 是 true,并且刚体的类型是 Animated ,那么将设置刚体的线性速度来代替直接设置刚体的位置。 + @param enableAnimated enableAnimated + */ + syncPosition(enableAnimated: boolean): void; + /** + !#en + Synchronize node's world angle to box2d rigidbody's angle. + If enableAnimated is true and rigidbody's type is Animated type, + will set angular velocity instead of directly set rigidbody's angle. + !#zh + 同步节点的世界旋转角度值到 box2d 刚体的旋转值上。 + 如果 enableAnimated 是 true,并且刚体的类型是 Animated ,那么将设置刚体的角速度来代替直接设置刚体的角度。 + @param enableAnimated enableAnimated + */ + syncRotation(enableAnimated: boolean): void; + } + /** !#en the device accelerometer reports values for each axis in units of g-force. + !#zh 设备重力传感器传递的各个轴的数据。 */ + export class constructor { + /** + whether enable accelerometer event + @param isEnable isEnable + */ + setAccelerometerEnabled(isEnable: boolean): void; + /** + set accelerometer interval value + @param interval interval + */ + setAccelerometerInterval(interval: number): void; + } + /** undefined */ + export enum VerticalTextAlignment { + TOP = 0, + CENTER = 0, + BOTTOM = 0, + } + /** The base class of most of all the objects in Fireball. */ + export class Object { + /** !#en The name of the object. + !#zh 该对象的名称。 */ + name: string; + /** !#en + Indicates whether the object is not yet destroyed. (It will not be available after being destroyed)
+ When an object's `destroy` is called, it is actually destroyed after the end of this frame. + So `isValid` will return false from the next frame, while `isValid` in the current frame will still be true. + If you want to determine whether the current frame has called `destroy`, use `cc.isValid(obj, true)`, + but this is often caused by a particular logical requirements, which is not normally required. + + !#zh + 表示该对象是否可用(被 destroy 后将不可用)。
+ 当一个对象的 `destroy` 调用以后,会在这一帧结束后才真正销毁。因此从下一帧开始 `isValid` 就会返回 false,而当前帧内 `isValid` 仍然会是 true。如果希望判断当前帧是否调用过 `destroy`,请使用 `cc.isValid(obj, true)`,不过这往往是特殊的业务需求引起的,通常情况下不需要这样。 */ + isValid: boolean; + /** + !#en + Destroy this Object, and release all its own references to other objects.
+ Actual object destruction will delayed until before rendering. + From the next frame, this object is not usable anymore. + You can use `cc.isValid(obj)` to check whether the object is destroyed before accessing it. + !#zh + 销毁该对象,并释放所有它对其它对象的引用。
+ 实际销毁操作会延迟到当前帧渲染前执行。从下一帧开始,该对象将不再可用。 + 您可以在访问对象之前使用 `cc.isValid(obj)` 来检查对象是否已被销毁。 + + @example + ```js + obj.destroy(); + ``` + */ + destroy(): boolean; + } + /** Bit mask that controls object states. */ + export enum Flags { + DontSave = 0, + EditorOnly = 0, + HideInHierarchy = 0, + } + /** The fullscreen API provides an easy way for web content to be presented using the user's entire screen. + It's invalid on safari, QQbrowser and android browser */ + export class screen { + /** + initialize + */ + init(): void; + /** + return true if it's full now. + */ + fullScreen(): boolean; + /** + change the screen to full mode. + @param element element + @param onFullScreenChange onFullScreenChange + @param onFullScreenError onFullScreenError + */ + requestFullScreen(element: Element, onFullScreenChange: Function, onFullScreenError: Function): void; + /** + exit the full mode. + */ + exitFullScreen(): boolean; + /** + Automatically request full screen with a touch/click event + @param element element + @param onFullScreenChange onFullScreenChange + */ + autoFullScreen(element: Element, onFullScreenChange: Function): void; + } + /** System variables */ + export class sys { + /** English language code */ + static LANGUAGE_ENGLISH: string; + /** Chinese language code */ + static LANGUAGE_CHINESE: string; + /** French language code */ + static LANGUAGE_FRENCH: string; + /** Italian language code */ + static LANGUAGE_ITALIAN: string; + /** German language code */ + static LANGUAGE_GERMAN: string; + /** Spanish language code */ + static LANGUAGE_SPANISH: string; + /** Spanish language code */ + static LANGUAGE_DUTCH: string; + /** Russian language code */ + static LANGUAGE_RUSSIAN: string; + /** Korean language code */ + static LANGUAGE_KOREAN: string; + /** Japanese language code */ + static LANGUAGE_JAPANESE: string; + /** Hungarian language code */ + static LANGUAGE_HUNGARIAN: string; + /** Portuguese language code */ + static LANGUAGE_PORTUGUESE: string; + /** Arabic language code */ + static LANGUAGE_ARABIC: string; + /** Norwegian language code */ + static LANGUAGE_NORWEGIAN: string; + /** Polish language code */ + static LANGUAGE_POLISH: string; + /** Turkish language code */ + static LANGUAGE_TURKISH: string; + /** Ukrainian language code */ + static LANGUAGE_UKRAINIAN: string; + /** Romanian language code */ + static LANGUAGE_ROMANIAN: string; + /** Bulgarian language code */ + static LANGUAGE_BULGARIAN: string; + /** Unknown language code */ + static LANGUAGE_UNKNOWN: string; + static OS_IOS: string; + static OS_ANDROID: string; + static OS_WINDOWS: string; + static OS_MARMALADE: string; + static OS_LINUX: string; + static OS_BADA: string; + static OS_BLACKBERRY: string; + static OS_OSX: string; + static OS_WP8: string; + static OS_WINRT: string; + static OS_UNKNOWN: string; + static UNKNOWN: number; + static WIN32: number; + static LINUX: number; + static MACOS: number; + static ANDROID: number; + static IPHONE: number; + static IPAD: number; + static BLACKBERRY: number; + static NACL: number; + static EMSCRIPTEN: number; + static TIZEN: number; + static WINRT: number; + static WP8: number; + static MOBILE_BROWSER: number; + static DESKTOP_BROWSER: number; + /** Indicates whether executes in editor's window process (Electron's renderer context) */ + static EDITOR_PAGE: number; + /** Indicates whether executes in editor's main process (Electron's browser context) */ + static EDITOR_CORE: number; + static WECHAT_GAME: number; + static QQ_PLAY: number; + static FB_PLAYABLE_ADS: number; + static BAIDU_GAME: number; + static VIVO_GAME: number; + static OPPO_GAME: number; + static HUAWEI_GAME: number; + static XIAOMI_GAME: number; + static JKW_GAME: number; + static ALIPAY_GAME: number; + static WECHAT_GAME_SUB: number; + static BAIDU_GAME_SUB: number; + static QTT_GAME: number; + static BYTEDANCE_GAME: number; + static BYTEDANCE_GAME_SUB: number; + static LINKSURE: number; + /** BROWSER_TYPE_WECHAT */ + static BROWSER_TYPE_WECHAT: string; + static BROWSER_TYPE_ANDROID: string; + static BROWSER_TYPE_IE: string; + static BROWSER_TYPE_EDGE: string; + static BROWSER_TYPE_QQ: string; + static BROWSER_TYPE_MOBILE_QQ: string; + static BROWSER_TYPE_UC: string; + /** uc third party integration. */ + static BROWSER_TYPE_UCBS: string; + static BROWSER_TYPE_360: string; + static BROWSER_TYPE_BAIDU_APP: string; + static BROWSER_TYPE_BAIDU: string; + static BROWSER_TYPE_MAXTHON: string; + static BROWSER_TYPE_OPERA: string; + static BROWSER_TYPE_OUPENG: string; + static BROWSER_TYPE_MIUI: string; + static BROWSER_TYPE_FIREFOX: string; + static BROWSER_TYPE_SAFARI: string; + static BROWSER_TYPE_CHROME: string; + static BROWSER_TYPE_LIEBAO: string; + static BROWSER_TYPE_QZONE: string; + static BROWSER_TYPE_SOUGOU: string; + static BROWSER_TYPE_HUAWEI: string; + static BROWSER_TYPE_UNKNOWN: string; + /** Is native ? This is set to be true in jsb auto. */ + static isNative: boolean; + /** Is web browser ? */ + static isBrowser: boolean; + /** + Is webgl extension support? + @param name name + */ + static glExtension(name: any): boolean; + /** + Get max joint matrix size for skinned mesh renderer. + */ + static getMaxJointMatrixSize(): void; + /** + !#en + Returns the safe area of the screen (in design resolution). If the screen is not notched, the visibleRect will be returned by default. + Currently supports Android, iOS and WeChat Mini Game platform. + !#zh + 返回手机屏幕安全区域(设计分辨率为单位),如果不是异形屏将默认返回 visibleRect。目前支持安卓、iOS 原生平台和微信小游戏平台。 + */ + static getSafeAreaRect(): Rect; + /** Indicate whether system is mobile system */ + static isMobile: boolean; + /** Indicate the running platform */ + static platform: number; + /** Get current language iso 639-1 code. + Examples of valid language codes include "zh-tw", "en", "en-us", "fr", "fr-fr", "es-es", etc. + The actual value totally depends on results provided by destination platform. */ + static languageCode: string; + /** Indicate the current language of the running system */ + static language: string; + /** Indicate the running os name */ + static os: string; + /** Indicate the running os version */ + static osVersion: string; + /** Indicate the running os main version */ + static osMainVersion: number; + /** Indicate the running browser type */ + static browserType: string|void; + /** Indicate the running browser version */ + static browserVersion: string|void; + /** Indicate the real pixel resolution of the whole game window */ + static windowPixelResolution: Size; + /** cc.sys.localStorage is a local storage component. */ + static localStorage: any; + /** The capabilities of the current platform */ + static capabilities: any; + /** + !#en + Get the network type of current device, return cc.sys.NetworkType.LAN if failure. + !#zh + 获取当前设备的网络类型, 如果网络类型无法获取,默认将返回 cc.sys.NetworkType.LAN + */ + static getNetworkType(): sys.NetworkType; + /** + !#en + Get the battery level of current device, return 1.0 if failure. + !#zh + 获取当前设备的电池电量,如果电量无法获取,默认将返回 1 + */ + static getBatteryLevel(): number; + /** + Forces the garbage collection, only available in JSB + */ + static garbageCollect(): void; + /** + Restart the JS VM, only available in JSB + */ + static restartVM(): void; + /** + Check whether an object is valid, + In web engine, it will return true if the object exist + In native engine, it will return true if the JS object and the correspond native object are both valid + @param obj obj + */ + static isObjectValid(obj: any): boolean; + /** + Dump system informations + */ + static dump(): void; + /** + Open a url in browser + @param url url + */ + static openURL(url: string): void; + /** + Get the number of milliseconds elapsed since 1 January 1970 00:00:00 UTC. + */ + static now(): number; + } + /** cc.view is the singleton object which represents the game window.
+ It's main task include:
+ - Apply the design resolution policy
+ - Provide interaction with the window, like resize event on web, retina display support, etc...
+ - Manage the game view port which can be different with the window
+ - Manage the content scale and translation
+
+ Since the cc.view is a singleton, you don't need to call any constructor or create functions,
+ the standard way to use it is by calling:
+ - cc.view.methodName();
*/ + export class View extends EventTarget { + /** + !#en + Sets view's target-densitydpi for android mobile browser. it can be set to:
+ 1. cc.macro.DENSITYDPI_DEVICE, value is "device-dpi"
+ 2. cc.macro.DENSITYDPI_HIGH, value is "high-dpi" (default value)
+ 3. cc.macro.DENSITYDPI_MEDIUM, value is "medium-dpi" (browser's default value)
+ 4. cc.macro.DENSITYDPI_LOW, value is "low-dpi"
+ 5. Custom value, e.g: "480"
+ !#zh 设置目标内容的每英寸像素点密度。 + @param densityDPI densityDPI + */ + setTargetDensityDPI(densityDPI: string): void; + /** + !#en + Returns the current target-densitydpi value of cc.view. + !#zh 获取目标内容的每英寸像素点密度。 + */ + getTargetDensityDPI(): string; + /** + !#en + Sets whether resize canvas automatically when browser's size changed.
+ Useful only on web. + !#zh 设置当发现浏览器的尺寸改变时,是否自动调整 canvas 尺寸大小。 + 仅在 Web 模式下有效。 + @param enabled Whether enable automatic resize with browser's resize event + */ + resizeWithBrowserSize(enabled: boolean): void; + /** + !#en + Sets the callback function for cc.view's resize action,
+ this callback will be invoked before applying resolution policy,
+ so you can do any additional modifications within the callback.
+ Useful only on web. + !#zh 设置 cc.view 调整视窗尺寸行为的回调函数, + 这个回调函数会在应用适配模式之前被调用, + 因此你可以在这个回调函数内添加任意附加改变, + 仅在 Web 平台下有效。 + @param callback The callback function + */ + setResizeCallback(callback: Function|void): void; + /** + !#en + Sets the orientation of the game, it can be landscape, portrait or auto. + When set it to landscape or portrait, and screen w/h ratio doesn't fit, + cc.view will automatically rotate the game canvas using CSS. + Note that this function doesn't have any effect in native, + in native, you need to set the application orientation in native project settings + !#zh 设置游戏屏幕朝向,它能够是横版,竖版或自动。 + 当设置为横版或竖版,并且屏幕的宽高比例不匹配时, + cc.view 会自动用 CSS 旋转游戏场景的 canvas, + 这个方法不会对 native 部分产生任何影响,对于 native 而言,你需要在应用设置中的设置排版。 + @param orientation Possible values: cc.macro.ORIENTATION_LANDSCAPE | cc.macro.ORIENTATION_PORTRAIT | cc.macro.ORIENTATION_AUTO + */ + setOrientation(orientation: number): void; + /** + !#en + Sets whether the engine modify the "viewport" meta in your web page.
+ It's enabled by default, we strongly suggest you not to disable it.
+ And even when it's enabled, you can still set your own "viewport" meta, it won't be overridden
+ Only useful on web + !#zh 设置引擎是否调整 viewport meta 来配合屏幕适配。 + 默认设置为启动,我们强烈建议你不要将它设置为关闭。 + 即使当它启动时,你仍然能够设置你的 viewport meta,它不会被覆盖。 + 仅在 Web 模式下有效 + @param enabled Enable automatic modification to "viewport" meta + */ + adjustViewportMeta(enabled: boolean): void; + /** + !#en + Retina support is enabled by default for Apple device but disabled for other devices,
+ it takes effect only when you called setDesignResolutionPolicy
+ Only useful on web + !#zh 对于 Apple 这种支持 Retina 显示的设备上默认进行优化而其他类型设备默认不进行优化, + 它仅会在你调用 setDesignResolutionPolicy 方法时有影响。 + 仅在 Web 模式下有效。 + @param enabled Enable or disable retina display + */ + enableRetina(enabled: boolean): void; + /** + !#en + Check whether retina display is enabled.
+ Only useful on web + !#zh 检查是否对 Retina 显示设备进行优化。 + 仅在 Web 模式下有效。 + */ + isRetinaEnabled(): boolean; + /** + !#en Whether to Enable on anti-alias + !#zh 控制抗锯齿是否开启 + @param enabled Enable or not anti-alias + */ + enableAntiAlias(enabled: boolean): void; + /** + !#en Returns whether the current enable on anti-alias + !#zh 返回当前是否抗锯齿 + */ + isAntiAliasEnabled(): boolean; + /** + !#en + If enabled, the application will try automatically to enter full screen mode on mobile devices
+ You can pass true as parameter to enable it and disable it by passing false.
+ Only useful on web + !#zh 启动时,移动端游戏会在移动端自动尝试进入全屏模式。 + 你能够传入 true 为参数去启动它,用 false 参数来关闭它。 + @param enabled Enable or disable auto full screen on mobile devices + */ + enableAutoFullScreen(enabled: boolean): void; + /** + !#en + Check whether auto full screen is enabled.
+ Only useful on web + !#zh 检查自动进入全屏模式是否启动。 + 仅在 Web 模式下有效。 + */ + isAutoFullScreenEnabled(): boolean; + /** + !#en + Returns the canvas size of the view.
+ On native platforms, it returns the screen size since the view is a fullscreen view.
+ On web, it returns the size of the canvas element. + !#zh 返回视图中 canvas 的尺寸。 + 在 native 平台下,它返回全屏视图下屏幕的尺寸。 + 在 Web 平台下,它返回 canvas 元素尺寸。 + */ + getCanvasSize(): Size; + /** + !#en + Returns the frame size of the view.
+ On native platforms, it returns the screen size since the view is a fullscreen view.
+ On web, it returns the size of the canvas's outer DOM element. + !#zh 返回视图中边框尺寸。 + 在 native 平台下,它返回全屏视图下屏幕的尺寸。 + 在 web 平台下,它返回 canvas 元素的外层 DOM 元素尺寸。 + */ + getFrameSize(): Size; + /** + !#en + On native, it sets the frame size of view.
+ On web, it sets the size of the canvas's outer DOM element. + !#zh 在 native 平台下,设置视图框架尺寸。 + 在 web 平台下,设置 canvas 外层 DOM 元素尺寸。 + @param width width + @param height height + */ + setFrameSize(width: number, height: number): void; + /** + !#en + Returns the visible area size of the view port. + !#zh 返回视图窗口可见区域尺寸。 + */ + getVisibleSize(): Size; + /** + !#en + Returns the visible area size of the view port. + !#zh 返回视图窗口可见区域像素尺寸。 + */ + getVisibleSizeInPixel(): Size; + /** + !#en + Returns the visible origin of the view port. + !#zh 返回视图窗口可见区域原点。 + */ + getVisibleOrigin(): Vec2; + /** + !#en + Returns the visible origin of the view port. + !#zh 返回视图窗口可见区域像素原点。 + */ + getVisibleOriginInPixel(): Vec2; + /** + !#en + Returns the current resolution policy + !#zh 返回当前分辨率方案 + */ + getResolutionPolicy(): ResolutionPolicy; + /** + !#en + Sets the current resolution policy + !#zh 设置当前分辨率模式 + @param resolutionPolicy resolutionPolicy + */ + setResolutionPolicy(resolutionPolicy: ResolutionPolicy|number): void; + /** + !#en + Sets the resolution policy with designed view size in points.
+ The resolution policy include:
+ [1] ResolutionExactFit Fill screen by stretch-to-fit: if the design resolution ratio of width to height is different from the screen resolution ratio, your game view will be stretched.
+ [2] ResolutionNoBorder Full screen without black border: if the design resolution ratio of width to height is different from the screen resolution ratio, two areas of your game view will be cut.
+ [3] ResolutionShowAll Full screen with black border: if the design resolution ratio of width to height is different from the screen resolution ratio, two black borders will be shown.
+ [4] ResolutionFixedHeight Scale the content's height to screen's height and proportionally scale its width
+ [5] ResolutionFixedWidth Scale the content's width to screen's width and proportionally scale its height
+ [cc.ResolutionPolicy] [Web only feature] Custom resolution policy, constructed by cc.ResolutionPolicy
+ !#zh 通过设置设计分辨率和匹配模式来进行游戏画面的屏幕适配。 + @param width Design resolution width. + @param height Design resolution height. + @param resolutionPolicy The resolution policy desired + */ + setDesignResolutionSize(width: number, height: number, resolutionPolicy: ResolutionPolicy|number): void; + /** + !#en + Returns the designed size for the view. + Default resolution size is the same as 'getFrameSize'. + !#zh 返回视图的设计分辨率。 + 默认下分辨率尺寸同 `getFrameSize` 方法相同 + */ + getDesignResolutionSize(): Size; + /** + !#en + Sets the container to desired pixel resolution and fit the game content to it. + This function is very useful for adaptation in mobile browsers. + In some HD android devices, the resolution is very high, but its browser performance may not be very good. + In this case, enabling retina display is very costy and not suggested, and if retina is disabled, the image may be blurry. + But this API can be helpful to set a desired pixel resolution which is in between. + This API will do the following: + 1. Set viewport's width to the desired width in pixel + 2. Set body width to the exact pixel resolution + 3. The resolution policy will be reset with designed view size in points. + !#zh 设置容器(container)需要的像素分辨率并且适配相应分辨率的游戏内容。 + @param width Design resolution width. + @param height Design resolution height. + @param resolutionPolicy The resolution policy desired + */ + setRealPixelResolution(width: number, height: number, resolutionPolicy: ResolutionPolicy|number): void; + /** + !#en + Sets view port rectangle with points. + !#zh 用设计分辨率下的点尺寸来设置视窗。 + @param x x + @param y y + @param w width + @param h height + */ + setViewportInPoints(x: number, y: number, w: number, h: number): void; + /** + !#en + Sets Scissor rectangle with points. + !#zh 用设计分辨率下的点的尺寸来设置 scissor 剪裁区域。 + @param x x + @param y y + @param w w + @param h h + */ + setScissorInPoints(x: number, y: number, w: number, h: number): void; + /** + !#en + Returns whether GL_SCISSOR_TEST is enable + !#zh 检查 scissor 是否生效。 + */ + isScissorEnabled(): boolean; + /** + !#en + Returns the current scissor rectangle + !#zh 返回当前的 scissor 剪裁区域。 + */ + getScissorRect(): Rect; + /** + !#en + Returns the view port rectangle. + !#zh 返回视窗剪裁区域。 + */ + getViewportRect(): Rect; + /** + !#en + Returns scale factor of the horizontal direction (X axis). + !#zh 返回横轴的缩放比,这个缩放比是将画布像素分辨率放到设计分辨率的比例。 + */ + getScaleX(): number; + /** + !#en + Returns scale factor of the vertical direction (Y axis). + !#zh 返回纵轴的缩放比,这个缩放比是将画布像素分辨率缩放到设计分辨率的比例。 + */ + getScaleY(): number; + /** + !#en + Returns device pixel ratio for retina display. + !#zh 返回设备或浏览器像素比例。 + */ + getDevicePixelRatio(): number; + /** + !#en + Returns the real location in view for a translation based on a related position + !#zh 将屏幕坐标转换为游戏视图下的坐标。 + @param tx The X axis translation + @param ty The Y axis translation + @param relatedPos The related position object including "left", "top", "width", "height" informations + */ + convertToLocationInView(tx: number, ty: number, relatedPos: any): Vec2; + } + /**

cc.game.containerStrategy class is the root strategy class of container's scale strategy, + it controls the behavior of how to scale the cc.game.container and cc.game.canvas object

*/ + export class ContainerStrategy { + /** + !#en + Manipulation before appling the strategy + !#zh 在应用策略之前的操作 + @param view The target view + */ + preApply(view: View): void; + /** + !#en + Function to apply this strategy + !#zh 策略应用方法 + @param view view + @param designedResolution designedResolution + */ + apply(view: View, designedResolution: Size): void; + /** + !#en + Manipulation after applying the strategy + !#zh 策略调用之后的操作 + @param view The target view + */ + postApply(view: View): void; + } + /**

cc.ContentStrategy class is the root strategy class of content's scale strategy, + it controls the behavior of how to scale the scene and setup the viewport for the game

*/ + export class ContentStrategy { + /** + !#en + Manipulation before applying the strategy + !#zh 策略应用前的操作 + @param view The target view + */ + preApply(view: View): void; + /** + !#en Function to apply this strategy + The return value is {scale: [scaleX, scaleY], viewport: {cc.Rect}}, + The target view can then apply these value to itself, it's preferred not to modify directly its private variables + !#zh 调用策略方法 + @param view view + @param designedResolution designedResolution + */ + apply(view: View, designedResolution: Size): any; + /** + !#en + Manipulation after applying the strategy + !#zh 策略调用之后的操作 + @param view The target view + */ + postApply(view: View): void; + } + /** undefined */ + export class EqualToFrame extends ContainerStrategy { + } + /** undefined */ + export class ProportionalToFrame extends ContainerStrategy { + } + /** undefined */ + export class EqualToWindow extends EqualToFrame { + } + /** undefined */ + export class ProportionalToWindow extends ProportionalToFrame { + } + /** undefined */ + export class OriginalContainer extends ContainerStrategy { + } + /**

cc.ResolutionPolicy class is the root strategy class of scale strategy, + its main task is to maintain the compatibility with Cocos2d-x

*/ + export class ResolutionPolicy { + /** + + @param containerStg The container strategy + @param contentStg The content strategy + */ + constructor(containerStg: ContainerStrategy, contentStg: ContentStrategy); + /** + !#en Manipulation before applying the resolution policy + !#zh 策略应用前的操作 + @param view The target view + */ + preApply(view: View): void; + /** + !#en Function to apply this resolution policy + The return value is {scale: [scaleX, scaleY], viewport: {cc.Rect}}, + The target view can then apply these value to itself, it's preferred not to modify directly its private variables + !#zh 调用策略方法 + @param view The target view + @param designedResolution The user defined design resolution + */ + apply(view: View, designedResolution: Size): any; + /** + !#en Manipulation after appyling the strategy + !#zh 策略应用之后的操作 + @param view The target view + */ + postApply(view: View): void; + /** + !#en + Setup the container's scale strategy + !#zh 设置容器的适配策略 + @param containerStg containerStg + */ + setContainerStrategy(containerStg: ContainerStrategy): void; + /** + !#en + Setup the content's scale strategy + !#zh 设置内容的适配策略 + @param contentStg contentStg + */ + setContentStrategy(contentStg: ContentStrategy): void; + /** The entire application is visible in the specified area without trying to preserve the original aspect ratio.
+ Distortion can occur, and the application may appear stretched or compressed. */ + static EXACT_FIT: number; + /** The entire application fills the specified area, without distortion but possibly with some cropping,
+ while maintaining the original aspect ratio of the application. */ + static NO_BORDER: number; + /** The entire application is visible in the specified area without distortion while maintaining the original
+ aspect ratio of the application. Borders can appear on two sides of the application. */ + static SHOW_ALL: number; + /** The application takes the height of the design resolution size and modifies the width of the internal
+ canvas so that it fits the aspect ratio of the device
+ no distortion will occur however you must make sure your application works on different
+ aspect ratios */ + static FIXED_HEIGHT: number; + /** The application takes the width of the design resolution size and modifies the height of the internal
+ canvas so that it fits the aspect ratio of the device
+ no distortion will occur however you must make sure your application works on different
+ aspect ratios */ + static FIXED_WIDTH: number; + /** Unknow policy */ + static UNKNOWN: number; + } + /** cc.visibleRect is a singleton object which defines the actual visible rect of the current view, + it should represent the same rect as cc.view.getViewportRect() */ + export class visibleRect { + /** + initialize + @param visibleRect visibleRect + */ + static init(visibleRect: Rect): void; + /** Top left coordinate of the screen related to the game scene. */ + static topLeft: Vec2; + /** Top right coordinate of the screen related to the game scene. */ + static topRight: Vec2; + /** Top center coordinate of the screen related to the game scene. */ + static top: Vec2; + /** Bottom left coordinate of the screen related to the game scene. */ + static bottomLeft: Vec2; + /** Bottom right coordinate of the screen related to the game scene. */ + static bottomRight: Vec2; + /** Bottom center coordinate of the screen related to the game scene. */ + static bottom: Vec2; + /** Center coordinate of the screen related to the game scene. */ + static center: Vec2; + /** Left center coordinate of the screen related to the game scene. */ + static left: Vec2; + /** Right center coordinate of the screen related to the game scene. */ + static right: Vec2; + /** Width of the screen. */ + static width: number; + /** Height of the screen. */ + static height: number; + } + /** !#en The callbacks invoker to handle and invoke callbacks by key. + !#zh CallbacksInvoker 用来根据 Key 管理并调用回调方法。 */ + export class CallbacksInvoker { + /** + !#zh + 检查指定事件是否已注册回调。 + !#en + Check if the specified key has any registered callback. If a callback is also specified, + it will only return true if the callback is registered. + @param key key + @param callback callback + @param target target + */ + hasEventListener(key: string, callback?: Function, target?: any): boolean; + /** + !#zh + 移除在特定事件类型中注册的所有回调或在某个目标中注册的所有回调。 + + !#en + Removes all callbacks registered in a certain event type or all callbacks registered with a certain target + @param keyOrTarget The event key to be removed or the target to be removed + */ + removeAll(keyOrTarget: string|any): void; + /** + !#zh + 删除之前与同类型,回调,目标注册的回调。 + @param key key + @param callback callback + @param target target + */ + off(key: string, callback: Function, target?: any): void; + /** + !#en + Trigger an event directly with the event name and necessary arguments. + !#zh + 通过事件名发送自定义事件 + @param key event type + @param arg1 First argument + @param arg2 Second argument + @param arg3 Third argument + @param arg4 Fourth argument + @param arg5 Fifth argument + + @example + ```js + eventTarget.emit('fire', event); + eventTarget.emit('fire', message, emitter); + ``` + */ + emit(key: string, arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any): void; + } + /** !#en Contains information collected during deserialization + !#zh 包含反序列化时的一些信息 */ + export class Details { + /** the obj list whose field needs to load asset by uuid */ + uuidObjList: any[]; + /** the corresponding field name which referenced to the asset */ + uuidPropList: (String|Number)[]; + /** list of the depends assets' uuid */ + uuidList: string[]; + /** + + @param data data + */ + init(data: any): void; + reset(): void; + /** + + @param obj obj + @param propName propName + @param uuid uuid + */ + push(obj: any, propName: string, uuid: string): void; + /** list of the depends assets' uuid */ + uuidList: string[]; + /** the obj list whose field needs to load asset by uuid */ + uuidObjList: any[]; + /** the corresponding field name which referenced to the asset */ + uuidPropList: string[]; + reset(): void; + /** + + @param obj obj + @param propName propName + @param uuid uuid + */ + push(obj: any, propName: string, uuid: string): void; + } + /** !#en + Representation of RGBA colors. + + Each color component is a floating point value with a range from 0 to 255. + + You can also use the convenience method {{#crossLink "cc/color:method"}}cc.color{{/crossLink}} to create a new Color. + + !#zh + cc.Color 用于表示颜色。 + + 它包含 RGBA 四个以浮点数保存的颜色分量,每个的值都在 0 到 255 之间。 + + 您也可以通过使用 {{#crossLink "cc/color:method"}}cc.color{{/crossLink}} 的便捷方法来创建一个新的 Color。 */ + export class Color extends ValueType { + /** !#en Solid white, RGBA is [255, 255, 255, 255]. + !#zh 纯白色,RGBA 是 [255, 255, 255, 255]。 */ + static WHITE: Color; + /** !#en Solid black, RGBA is [0, 0, 0, 255]. + !#zh 纯黑色,RGBA 是 [0, 0, 0, 255]。 */ + static BLACK: Color; + /** !#en Transparent, RGBA is [0, 0, 0, 0]. + !#zh 透明,RGBA 是 [0, 0, 0, 0]。 */ + static TRANSPARENT: Color; + /** !#en Grey, RGBA is [127.5, 127.5, 127.5]. + !#zh 灰色,RGBA 是 [127.5, 127.5, 127.5]。 */ + static GRAY: Color; + /** !#en Solid red, RGBA is [255, 0, 0]. + !#zh 纯红色,RGBA 是 [255, 0, 0]。 */ + static RED: Color; + /** !#en Solid green, RGBA is [0, 255, 0]. + !#zh 纯绿色,RGBA 是 [0, 255, 0]。 */ + static GREEN: Color; + /** !#en Solid blue, RGBA is [0, 0, 255]. + !#zh 纯蓝色,RGBA 是 [0, 0, 255]。 */ + static BLUE: Color; + /** !#en Yellow, RGBA is [255, 235, 4]. + !#zh 黄色,RGBA 是 [255, 235, 4]。 */ + static YELLOW: Color; + /** !#en Orange, RGBA is [255, 127, 0]. + !#zh 橙色,RGBA 是 [255, 127, 0]。 */ + static ORANGE: Color; + /** !#en Cyan, RGBA is [0, 255, 255]. + !#zh 青色,RGBA 是 [0, 255, 255]。 */ + static CYAN: Color; + /** !#en Magenta, RGBA is [255, 0, 255]. + !#zh 洋红色(品红色),RGBA 是 [255, 0, 255]。 */ + static MAGENTA: Color; + /** + Copy content of a color into another. + */ + static copy (out: Color, a: Color): Color; + /** + Clone a new color. + */ + static clone (a: Color): Color; + /** + Set the components of a color to the given values. + */ + static set (out: Color, r?: number, g?: number, b?: number, a?: number): Color; + /** + Converts the hexadecimal formal color into rgb formal. + */ + static fromHex (out: Color, hex: number): Color; + /** + Converts the hexadecimal formal color into rgb formal. + */ + static fromHEX (out: Color, hex: string): Color; + /** + Add components of two colors, respectively. + */ + static add (out: Color, a: Color, b: Color): Color; + /** + Subtract components of color b from components of color a, respectively. + */ + static subtract (out: Color, a: Color, b: Color): Color; + /** + Multiply components of two colors, respectively. + */ + static multiply (out: Color, a: Color, b: Color): Color; + /** + Divide components of color a by components of color b, respectively. + */ + static divide (out: Color, a: Color, b: Color): Color; + /** + Scales a color by a number. + */ + static scale (out: Color, a: Color, b: number): Color; + /** + Performs a linear interpolation between two colors. + */ + static lerp (out: Color, a: Color, b: Color, t: number): Color; + /** + !#zh 颜色转数组 + !#en Turn an array of colors + @param ofs 数组起始偏移量 + */ + static toArray > (out: Out, a: IColorLike, ofs?: number): Out; + /** + !#zh 数组转颜色 + !#en An array of colors turn + @param ofs 数组起始偏移量 + */ + static fromArray (arr: IWritableArrayLike, out: Out, ofs?: number): Out; + /** + !#zh 颜色 RGB 预乘 Alpha 通道 + !#en RGB premultiply alpha channel + @param out 返回颜色 + @param color 预乘处理的目标颜色 + */ + static premultiplyAlpha (out: Out, a: IColorLike); + /** + + @param r red component of the color, default value is 0. + @param g green component of the color, defualt value is 0. + @param b blue component of the color, default value is 0. + @param a alpha component of the color, default value is 255. + */ + constructor(r?: number, g?: number, b?: number, a?: number); + /** + !#en Clone a new color from the current color. + !#zh 克隆当前颜色。 + + @example + ```js + var color = new cc.Color(); + var newColor = color.clone();// Color {r: 0, g: 0, b: 0, a: 255} + ``` + */ + clone(): Color; + /** + !#en TODO + !#zh 判断两个颜色是否相等。 + @param other other + + @example + ```js + var color1 = cc.Color.WHITE; + var color2 = new cc.Color(255, 255, 255); + cc.log(color1.equals(color2)); // true; + color2 = cc.Color.RED; + cc.log(color2.equals(color1)); // false; + ``` + */ + equals(other: Color): boolean; + /** + !#en TODO + !#zh 线性插值 + @param to to + @param ratio the interpolation coefficient. + @param out optional, the receiving vector. + + @example + ```js + // Converts a white color to a black one trough time. + update: function (dt) { + var color = this.node.color; + if (color.equals(cc.Color.BLACK)) { + return; + } + this.ratio += dt * 0.1; + this.node.color = cc.Color.WHITE.lerp(cc.Color.BLACK, ratio); + } + + ``` + */ + lerp(to: Color, ratio: number, out?: Color): Color; + /** + !#en TODO + !#zh 转换为方便阅读的字符串。 + + @example + ```js + var color = cc.Color.WHITE; + color.toString(); // "rgba(255, 255, 255, 255)" + ``` + */ + toString(): string; + /** !#en Get or set red channel value + !#zh 获取或者设置红色通道 */ + r: number; + /** !#en Get or set green channel value + !#zh 获取或者设置绿色通道 */ + g: number; + /** !#en Get or set blue channel value + !#zh 获取或者设置蓝色通道 */ + b: number; + /** !#en Get or set alpha channel value + !#zh 获取或者设置透明通道 */ + a: number; + /** + !#en Gets red channel value + !#zh 获取当前颜色的红色值。 + */ + getR(): number; + /** + !#en Sets red value and return the current color object + !#zh 设置当前的红色值,并返回当前对象。 + @param red the new Red component. + + @example + ```js + var color = new cc.Color(); + color.setR(255); // Color {r: 255, g: 0, b: 0, a: 255} + ``` + */ + setR(red: number): Color; + /** + !#en Gets green channel value + !#zh 获取当前颜色的绿色值。 + */ + getG(): number; + /** + !#en Sets green value and return the current color object + !#zh 设置当前的绿色值,并返回当前对象。 + @param green the new Green component. + + @example + ```js + var color = new cc.Color(); + color.setG(255); // Color {r: 0, g: 255, b: 0, a: 255} + ``` + */ + setG(green: number): Color; + /** + !#en Gets blue channel value + !#zh 获取当前颜色的蓝色值。 + */ + getB(): number; + /** + !#en Sets blue value and return the current color object + !#zh 设置当前的蓝色值,并返回当前对象。 + @param blue the new Blue component. + + @example + ```js + var color = new cc.Color(); + color.setB(255); // Color {r: 0, g: 0, b: 255, a: 255} + ``` + */ + setB(blue: number): Color; + /** + !#en Gets alpha channel value + !#zh 获取当前颜色的透明度值。 + */ + getA(): number; + /** + !#en Sets alpha value and return the current color object + !#zh 设置当前的透明度,并返回当前对象。 + @param alpha the new Alpha component. + + @example + ```js + var color = new cc.Color(); + color.setA(0); // Color {r: 0, g: 0, b: 0, a: 0} + ``` + */ + setA(alpha: number): Color; + /** + !#en Convert color to css format. + !#zh 转换为 CSS 格式。 + @param opt "rgba", "rgb", "#rgb" or "#rrggbb". + + @example + ```js + var color = cc.Color.BLACK; + color.toCSS(); // "rgba(0,0,0,1.00)"; + color.toCSS("rgba"); // "rgba(0,0,0,1.00)"; + color.toCSS("rgb"); // "rgba(0,0,0)"; + color.toCSS("#rgb"); // "#000"; + color.toCSS("#rrggbb"); // "#000000"; + ``` + */ + toCSS(opt?: string): string; + /** + !#en Read hex string and store color data into the current color object, the hex string must be formated as rgba or rgb. + !#zh 读取 16 进制颜色。 + @param hexString hexString + + @example + ```js + var color = cc.Color.BLACK; + color.fromHEX("#FFFF33"); // Color {r: 255, g: 255, b: 51, a: 255}; + ``` + */ + fromHEX(hexString: string): Color; + /** + !#en convert Color to HEX color string. + !#zh 转换为 16 进制。 + @param fmt "#rgb", "#rrggbb" or "#rrggbbaa". + + @example + ```js + var color = cc.Color.BLACK; + color.toHEX("#rgb"); // "000"; + color.toHEX("#rrggbb"); // "000000"; + ``` + */ + toHEX(fmt?: string): string; + /** + !#en Convert to 24bit rgb value. + !#zh 转换为 24bit 的 RGB 值。 + + @example + ```js + var color = cc.Color.YELLOW; + color.toRGBValue(); // 16771844; + ``` + */ + toRGBValue(): number; + /** + !#en Read HSV model color and convert to RGB color + !#zh 读取 HSV(色彩模型)格式。 + @param h h + @param s s + @param v v + + @example + ```js + var color = cc.Color.YELLOW; + color.fromHSV(0, 0, 1); // Color {r: 255, g: 255, b: 255, a: 255}; + ``` + */ + fromHSV(h: number, s: number, v: number): Color; + /** + !#en Transform to HSV model color + !#zh 转换为 HSV(色彩模型)格式。 + + @example + ```js + var color = cc.Color.YELLOW; + color.toHSV(); // Object {h: 0.1533864541832669, s: 0.9843137254901961, v: 1}; + ``` + */ + toHSV(): any; + /** + !#en Set the color + !#zh 设置颜色 + @param color color + */ + set (color: Color): Color; + /** + !#en Multiplies the current color by the specified color + !#zh 将当前颜色乘以与指定颜色 + @param other other + */ + multiply(other: Color): Color; + } + /** !#en Representation of 4*4 matrix. + !#zh 表示 4*4 矩阵 */ + export class Mat4 extends ValueType { + /** + !#en Multiply the current matrix with another one + !#zh 将当前矩阵与指定矩阵相乘 + @param other the second operand + @param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created + */ + mul(other: Mat4, out?: Mat4): Mat4; + /** + !#en Multiply each element of the matrix by a scalar. + !#zh 将矩阵的每一个元素都乘以指定的缩放值。 + @param number amount to scale the matrix's elements by + @param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created + */ + mulScalar(number: number, out?: Mat4): Mat4; + /** + !#en Subtracts the current matrix with another one + !#zh 将当前矩阵与指定的矩阵相减 + @param other the second operand + @param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created + */ + sub(other: Mat4, out?: Mat4): Mat4; + /** Identity of Mat4 */ + static IDENTITY: Mat4; + /** + !#zh 获得指定矩阵的拷贝 + !#en Copy of the specified matrix to obtain + */ + static clone (a: Out): Mat4; + /** + !#zh 复制目标矩阵 + !#en Copy the target matrix + */ + static copy (out: Out, a: Out): Out; + /** + !#zh 将目标赋值为单位矩阵 + !#en The target of an assignment is the identity matrix + */ + static identity (out: Out): Out; + /** + !#zh 转置矩阵 + !#en Transposed matrix + */ + static transpose (out: Out, a: Out): Out; + /** + !#zh 矩阵求逆 + !#en Matrix inversion + */ + static invert (out: Out, a: Out): Out; + /** + !#zh 矩阵行列式 + !#en Matrix determinant + */ + static determinant (a: Out): number; + /** + !#zh 矩阵乘法 + !#en Matrix Multiplication + */ + static multiply (out: Out, a: Out, b: Out): Out; + /** + !#zh 在给定矩阵变换基础上加入变换 + !#en Was added in a given transformation matrix transformation on the basis of + */ + static transform (out: Out, a: Out, v: VecLike): Out; + /** + !#zh 在给定矩阵变换基础上加入新位移变换 + !#en Add new displacement transducer in a matrix transformation on the basis of a given + */ + static translate (out: Out, a: Out, v: VecLike): Out; + /** + !#zh 在给定矩阵变换基础上加入新缩放变换 + !#en Add new scaling transformation in a given matrix transformation on the basis of + */ + static scale (out: Out, a: Out, v: VecLike): Out; + /** + !#zh 在给定矩阵变换基础上加入新旋转变换 + !#en Add a new rotational transform matrix transformation on the basis of a given + @param rad 旋转角度 + @param axis 旋转轴 + */ + static rotate (out: Out, a: Out, rad: number, axis: VecLike): Out; + /** + !#zh 在给定矩阵变换基础上加入绕 X 轴的旋转变换 + !#en Add rotational transformation around the X axis at a given matrix transformation on the basis of + @param rad 旋转角度 + */ + static rotateX (out: Out, a: Out, rad: number): Out; + /** + !#zh 在给定矩阵变换基础上加入绕 Y 轴的旋转变换 + !#en Add about the Y axis rotation transformation in a given matrix transformation on the basis of + @param rad 旋转角度 + */ + static rotateY (out: Out, a: Out, rad: number): Out; + /** + !#zh 在给定矩阵变换基础上加入绕 Z 轴的旋转变换 + !#en Added about the Z axis at a given rotational transformation matrix transformation on the basis of + @param rad 旋转角度 + */ + static rotateZ (out: Out, a: Out, rad: number): Out; + /** + !#zh 计算位移矩阵 + !#en Displacement matrix calculation + */ + static fromTranslation (out: Out, v: VecLike): Out; + /** + !#zh 计算缩放矩阵 + !#en Scaling matrix calculation + */ + static fromScaling (out: Out, v: VecLike): Out; + /** + !#zh 计算旋转矩阵 + !#en Calculates the rotation matrix + */ + static fromRotation (out: Out, rad: number, axis: VecLike): Out; + /** + !#zh 计算绕 X 轴的旋转矩阵 + !#en Calculating rotation matrix about the X axis + */ + static fromXRotation (out: Out, rad: number): Out; + /** + !#zh 计算绕 Y 轴的旋转矩阵 + !#en Calculating rotation matrix about the Y axis + */ + static fromYRotation (out: Out, rad: number): Out; + /** + !#zh 计算绕 Z 轴的旋转矩阵 + !#en Calculating rotation matrix about the Z axis + */ + static fromZRotation (out: Out, rad: number): Out; + /** + !#zh 根据旋转和位移信息计算矩阵 + !#en The rotation and displacement information calculating matrix + */ + static fromRT (out: Out, q: Quat, v: VecLike): Out; + /** + !#zh 提取矩阵的位移信息, 默认矩阵中的变换以 S->R->T 的顺序应用 + !#en Extracting displacement information of the matrix, the matrix transform to the default sequential application S-> R-> T is + */ + static getTranslation (out: VecLike, mat: Out): VecLike; + /** + !#zh 提取矩阵的缩放信息, 默认矩阵中的变换以 S->R->T 的顺序应用 + !#en Scaling information extraction matrix, the matrix transform to the default sequential application S-> R-> T is + */ + static getScaling (out: VecLike, mat: Out): VecLike; + /** + !#zh 提取矩阵的旋转信息, 默认输入矩阵不含有缩放信息,如考虑缩放应使用 `toRTS` 函数。 + !#en Rotation information extraction matrix, the matrix containing no default input scaling information, such as the use of `toRTS` should consider the scaling function. + */ + static getRotation (out: Quat, mat: Out): Quat; + /** + !#zh 提取旋转、位移、缩放信息, 默认矩阵中的变换以 S->R->T 的顺序应用 + !#en Extracting rotational displacement, zoom information, the default matrix transformation in order S-> R-> T applications + */ + static toRTS (mat: Out, q: Quat, v: VecLike, s: VecLike): void; + /** + !#zh 根据旋转、位移、缩放信息计算矩阵,以 S->R->T 的顺序应用 + !#en The rotary displacement, the scaling matrix calculation information, the order S-> R-> T applications + */ + static fromRTS (out: Out, q: Quat, v: VecLike, s: VecLike): Out; + /** + !#zh 根据指定的旋转、位移、缩放及变换中心信息计算矩阵,以 S->R->T 的顺序应用 + !#en According to the specified rotation, displacement, and scale conversion matrix calculation information center, order S-> R-> T applications + @param q 旋转值 + @param v 位移值 + @param s 缩放值 + @param o 指定变换中心 + */ + static fromRTSOrigin (out: Out, q: Quat, v: VecLike, s: VecLike, o: VecLike): Out; + /** + !#zh 根据指定的旋转信息计算矩阵 + !#en The rotation matrix calculation information specified + */ + static fromQuat (out: Out, q: Quat): Out; + /** + !#zh 根据指定的视锥体信息计算矩阵 + !#en The matrix calculation information specified frustum + @param left 左平面距离 + @param right 右平面距离 + @param bottom 下平面距离 + @param top 上平面距离 + @param near 近平面距离 + @param far 远平面距离 + */ + static frustum (out: Out, left: number, right: number, bottom: number, top: number, near: number, far: number): Out; + /** + !#zh 计算透视投影矩阵 + !#en Perspective projection matrix calculation + @param fovy 纵向视角高度 + @param aspect 长宽比 + @param near 近平面距离 + @param far 远平面距离 + */ + static perspective (out: Out, fovy: number, aspect: number, near: number, far: number): Out; + /** + !#zh 计算正交投影矩阵 + !#en Computing orthogonal projection matrix + @param left 左平面距离 + @param right 右平面距离 + @param bottom 下平面距离 + @param top 上平面距离 + @param near 近平面距离 + @param far 远平面距离 + */ + static ortho (out: Out, left: number, right: number, bottom: number, top: number, near: number, far: number): Out; + /** + !#zh 根据视点计算矩阵,注意 `eye - center` 不能为零向量或与 `up` 向量平行 + !#en `Up` parallel vector or vector center` not be zero - the matrix calculation according to the viewpoint, note` eye + @param eye 当前位置 + @param center 目标视点 + @param up 视口上方向 + */ + static lookAt (out: Out, eye: VecLike, center: VecLike, up: VecLike): Out; + /** + !#zh 计算逆转置矩阵 + !#en Reversal matrix calculation + */ + static inverseTranspose (out: Out, a: Out): Out; + /** + !#zh 逐元素矩阵加法 + !#en Element by element matrix addition + */ + static add (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素矩阵减法 + !#en Matrix element by element subtraction + */ + static subtract (out: Out, a: Out, b: Out): Out; + /** + !#zh 矩阵标量乘法 + !#en Matrix scalar multiplication + */ + static multiplyScalar (out: Out, a: Out, b: number): Out; + /** + !#zh 逐元素矩阵标量乘加: A + B * scale + !#en Elements of the matrix by the scalar multiplication and addition: A + B * scale + */ + static multiplyScalarAndAdd (out: Out, a: Out, b: Out, scale: number): Out; + /** + !#zh 矩阵等价判断 + !#en Analyzing the equivalent matrix + */ + static strictEquals (a: Out, b: Out): boolean; + /** + !#zh 排除浮点数误差的矩阵近似等价判断 + !#en Negative floating point error is approximately equivalent to determining a matrix + */ + static equals (a: Out, b: Out, epsilon?: number): boolean; + /** + !#zh 矩阵转数组 + !#en Matrix transpose array + @param ofs 数组内的起始偏移量 + */ + static toArray > (out: Out, mat: IMat4Like, ofs?: number): Out; + /** + !#zh 数组转矩阵 + !#en Transfer matrix array + @param ofs 数组起始偏移量 + */ + static fromArray (out: Out, arr: IWritableArrayLike, ofs?: number): Out; + /** !#en Matrix Data + !#zh 矩阵数据 */ + m: Float64Array|Float32Array; + /** + !#en + Constructor + see {{#crossLink "cc/mat4:method"}}cc.mat4{{/crossLink}} + !#zh + 构造函数,可查看 {{#crossLink "cc/mat4:method"}}cc.mat4{{/crossLink}} + */ + constructor ( m00?: number, m01?: number, m02?: number, m03?: number, m10?: number, m11?: number, m12?: number, m13?: number, m20?: number, m21?: number, m22?: number, m23?: number, m30?: number, m31?: number, m32?: number, m33?: number); + /** + !#en clone a Mat4 object + !#zh 克隆一个 Mat4 对象 + */ + clone(): Mat4; + /** + !#en Sets the matrix with another one's value + !#zh 用另一个矩阵设置这个矩阵的值。 + @param srcObj srcObj + */ + set(srcObj: Mat4): Mat4; + /** + !#en Check whether two matrix equal + !#zh 当前的矩阵是否与指定的矩阵相等。 + @param other other + */ + equals(other: Mat4): boolean; + /** + !#en Check whether two matrix equal with default degree of variance. + !#zh + 近似判断两个矩阵是否相等。
+ 判断 2 个矩阵是否在默认误差范围之内,如果在则返回 true,反之则返回 false。 + @param other other + */ + fuzzyEquals(other: Mat4): boolean; + /** + !#en Transform to string with matrix informations + !#zh 转换为方便阅读的字符串。 + */ + toString(): string; + /** + Set the matrix to the identity matrix + */ + identity(): Mat4; + /** + Transpose the values of a mat4 + @param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created. + */ + transpose(out?: Mat4): Mat4; + /** + Inverts a mat4 + @param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created. + */ + invert(out?: Mat4): Mat4; + /** + Calculates the adjugate of a mat4 + @param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created. + */ + adjoint(out?: Mat4): Mat4; + /** + Calculates the determinant of a mat4 + */ + determinant(): number; + /** + Adds two Mat4 + @param other the second operand + @param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created. + */ + add(other: Mat4, out?: Mat4): Mat4; + /** + Subtracts the current matrix with another one + @param other the second operand + */ + subtract(other: Mat4): Mat4; + /** + Subtracts the current matrix with another one + @param other the second operand + */ + multiply(other: Mat4): Mat4; + /** + Multiply each element of the matrix by a scalar. + @param number amount to scale the matrix's elements by + */ + multiplyScalar(number: number): Mat4; + /** + Translate a mat4 by the given vector + @param v vector to translate by + @param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created + */ + translate(v: Vec3, out?: Mat4): Mat4; + /** + Scales the mat4 by the dimensions in the given vec3 + @param v vector to scale by + @param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created + */ + scale(v: Vec3, out?: Mat4): Mat4; + /** + Rotates a mat4 by the given angle around the given axis + @param rad the angle to rotate the matrix by + @param axis the axis to rotate around + @param out the receiving matrix, you can pass the same matrix to save result to itself, if not provided, a new matrix will be created + */ + rotate(rad: number, axis: Vec3, out?: Mat4): Mat4; + /** + Returns the translation vector component of a transformation matrix. + @param out Vector to receive translation component, if not provided, a new vec3 will be created + */ + getTranslation(out: Vec3): Vec3; + /** + Returns the scale factor component of a transformation matrix + @param out Vector to receive scale component, if not provided, a new vec3 will be created + */ + getScale(out: Vec3): Vec3; + /** + Returns the rotation factor component of a transformation matrix + @param out Vector to receive rotation component, if not provided, a new quaternion object will be created + */ + getRotation(out: Quat): Quat; + /** + Restore the matrix values from a quaternion rotation, vector translation and vector scale + @param q Rotation quaternion + @param v Translation vector + @param s Scaling vector + */ + fromRTS(q: Quat, v: Vec3, s: Vec3): Mat4; + /** + Restore the matrix values from a quaternion rotation + @param q Rotation quaternion + */ + fromQuat(q: Quat): Mat4; + } + /** !#en Representation of 2D vectors and points. + !#zh 表示 2D 向量和坐标 */ + export class Quat extends ValueType { + /** + !#en + Constructor + see {{#crossLink "cc/quat:method"}}cc.quat{{/crossLink}} + !#zh + 构造函数,可查看 {{#crossLink "cc/quat:method"}}cc.quat{{/crossLink}} + @param x x + @param y y + @param z z + @param w w + */ + constructor(x?: number, y?: number, z?: number, w?: number); + /** + !#en Calculate the multiply result between this quaternion and another one + !#zh 计算四元数乘积的结果 + @param other other + @param out out + */ + mul(other: Quat, out?: Quat): Quat; + /** + !#zh 获得指定四元数的拷贝 + !#en Obtaining copy specified quaternion + */ + static clone (a: Out): Quat; + /** + !#zh 复制目标四元数 + !#en Copy quaternion target + */ + static copy (out: Out, a: QuatLike): Out; + /** + !#zh 设置四元数值 + !#en Provided Quaternion Value + */ + static set (out: Out, x: number, y: number, z: number, w: number): Out; + /** + !#zh 将目标赋值为单位四元数 + !#en The target of an assignment as a unit quaternion + */ + static identity (out: Out): Out; + /** + !#zh 设置四元数为两向量间的最短路径旋转,默认两向量都已归一化 + !#en Set quaternion rotation is the shortest path between two vectors, the default two vectors are normalized + */ + static rotationTo (out: Out, a: VecLike, b: VecLike): Out; + /** + !#zh 获取四元数的旋转轴和旋转弧度 + !#en Get the rotary shaft and the arc of rotation quaternion + @param outAxis 旋转轴输出 + @param q 源四元数 + */ + static getAxisAngle (outAxis: VecLike, q: Out): number; + /** + !#zh 四元数乘法 + !#en Quaternion multiplication + */ + static multiply (out: Out, a: QuatLike_1, b: QuatLike_2): Out; + /** + !#zh 四元数标量乘法 + !#en Quaternion scalar multiplication + */ + static multiplyScalar (out: Out, a: Out, b: number): Out; + /** + !#zh 四元数乘加:A + B * scale + !#en Quaternion multiplication and addition: A + B * scale + */ + static scaleAndAdd (out: Out, a: Out, b: Out, scale: number): Out; + /** + !#zh 绕 X 轴旋转指定四元数 + !#en About the X axis specified quaternion + @param rad 旋转弧度 + */ + static rotateX (out: Out, a: Out, rad: number): Out; + /** + !#zh 绕 Y 轴旋转指定四元数 + !#en Rotation about the Y axis designated quaternion + @param rad 旋转弧度 + */ + static rotateY (out: Out, a: Out, rad: number): Out; + /** + !#zh 绕 Z 轴旋转指定四元数 + !#en Around the Z axis specified quaternion + @param rad 旋转弧度 + */ + static rotateZ (out: Out, a: Out, rad: number): Out; + /** + !#zh 绕世界空间下指定轴旋转四元数 + !#en Space around the world at a given axis of rotation quaternion + @param axis 旋转轴,默认已归一化 + @param rad 旋转弧度 + */ + static rotateAround (out: Out, rot: Out, axis: VecLike, rad: number): Out; + /** + !#zh 绕本地空间下指定轴旋转四元数 + !#en Local space around the specified axis rotation quaternion + @param axis 旋转轴 + @param rad 旋转弧度 + */ + static rotateAroundLocal (out: Out, rot: Out, axis: VecLike, rad: number): Out; + /** + !#zh 根据 xyz 分量计算 w 分量,默认已归一化 + !#en The component w xyz components calculated, normalized by default + */ + static calculateW (out: Out, a: Out): Out; + /** + !#zh 四元数点积(数量积) + !#en Quaternion dot product (scalar product) + */ + static dot (a: Out, b: Out): number; + /** + !#zh 逐元素线性插值: A + t * (B - A) + !#en Element by element linear interpolation: A + t * (B - A) + */ + static lerp (out: Out, a: Out, b: Out, t: number): Out; + /** + !#zh 四元数球面插值 + !#en Spherical quaternion interpolation + */ + static slerp(out: Out, a: QuatLike_1, b: QuatLike_2, t: number): Out; + /** + !#zh 带两个控制点的四元数球面插值 + !#en Quaternion with two spherical interpolation control points + */ + static sqlerp (out: Out, a: Out, b: Out, c: Out, d: Out, t: number): Out; + /** + !#zh 四元数求逆 + !#en Quaternion inverse + */ + static invert (out: Out, a: QuatLike): Out; + /** + !#zh 求共轭四元数,对单位四元数与求逆等价,但更高效 + !#en Conjugating a quaternion, and the unit quaternion equivalent to inversion, but more efficient + */ + static conjugate (out: Out, a: Out): Out; + /** + !#zh 求四元数长度 + !#en Seek length quaternion + */ + static len (a: Out): number; + /** + !#zh 求四元数长度平方 + !#en Seeking quaternion square of the length + */ + static lengthSqr (a: Out): number; + /** + !#zh 归一化四元数 + !#en Normalized quaternions + */ + static normalize (out: Out, a: Out): Out; + /** + !#zh 根据本地坐标轴朝向计算四元数,默认三向量都已归一化且相互垂直 + !#en Calculated according to the local orientation quaternion coordinate axis, the default three vectors are normalized and mutually perpendicular + */ + static fromAxes (out: Out, xAxis: VecLike, yAxis: VecLike, zAxis: VecLike): Out; + /** + !#zh 根据视口的前方向和上方向计算四元数 + !#en The forward direction and the direction of the viewport computing quaternion + @param view 视口面向的前方向,必须归一化 + @param up 视口的上方向,必须归一化,默认为 (0, 1, 0) + */ + static fromViewUp (out: Out, view: Vec3, up?: Vec3): Out; + /** + !#zh 根据旋转轴和旋转弧度计算四元数 + !#en The quaternion calculated and the arc of rotation of the rotary shaft + */ + static fromAxisAngle (out: Out, axis: VecLike, rad: number): Out; + /** + !#zh 根据三维矩阵信息计算四元数,默认输入矩阵不含有缩放信息 + !#en Calculating the three-dimensional quaternion matrix information, default zoom information input matrix does not contain + */ + static fromMat3 (out: Out, mat: Mat3): Out; + /** + !#zh 根据欧拉角信息计算四元数,旋转顺序为 YZX + !#en The quaternion calculated Euler angle information, rotation order YZX + */ + static fromEuler (out: Out, x: number, y: number, z: number): Out; + /** + !#zh 返回定义此四元数的坐标系 X 轴向量 + !#en This returns the result of the quaternion coordinate system X-axis vector + */ + static toAxisX (out: VecLike, q: Out): VecLike; + /** + !#zh 返回定义此四元数的坐标系 Y 轴向量 + !#en This returns the result of the quaternion coordinate system Y axis vector + */ + static toAxisY (out: VecLike, q: Out): VecLike; + /** + !#zh 返回定义此四元数的坐标系 Z 轴向量 + !#en This returns the result of the quaternion coordinate system the Z-axis vector + */ + static toAxisZ (out: VecLike, q: Out): VecLike; + /** + !#zh 根据四元数计算欧拉角,返回角度 x, y 在 [-180, 180] 区间内, z 默认在 [-90, 90] 区间内,旋转顺序为 YZX + !#en The quaternion calculated Euler angles, return angle x, y in the [-180, 180] interval, z default the range [-90, 90] interval, the rotation order YZX + @param outerZ z 取值范围区间改为 [-180, -90] U [90, 180] + */ + static toEuler (out: Out, q: IQuatLike, outerZ?: boolean): Out; + /** + !#zh 四元数等价判断 + !#en Analyzing quaternion equivalent + */ + static strictEquals (a: Out, b: Out): boolean; + /** + !#zh 排除浮点数误差的四元数近似等价判断 + !#en Negative floating point error quaternion approximately equivalent Analyzing + */ + static equals (a: Out, b: Out, epsilon?: number): boolean; + /** + !#zh 四元数转数组 + !#en Quaternion rotation array + @param ofs 数组内的起始偏移量 + */ + static toArray > (out: Out, q: IQuatLike, ofs?: number): Out; + /** + !#zh 数组转四元数 + !#en Array to a quaternion + @param ofs 数组起始偏移量 + */ + static fromArray (out: Out, arr: IWritableArrayLike, ofs?: number): Out; + x: number; + y: number; + z: number; + w: number; + /** + !#en clone a Quat object and return the new object + !#zh 克隆一个四元数并返回 + */ + clone(): Quat; + /** + !#en Set values with another quaternion + !#zh 用另一个四元数的值设置到当前对象上。 + @param newValue !#en new value to set. !#zh 要设置的新值 + */ + set(newValue: Quat): Quat; + /** + !#en Check whether current quaternion equals another + !#zh 当前的四元数是否与指定的四元数相等。 + @param other other + */ + equals(other: Quat): boolean; + /** + !#en Convert quaternion to euler + !#zh 转换四元数到欧拉角 + @param out out + */ + toEuler(out: Vec3): Vec3; + /** + !#en Convert euler to quaternion + !#zh 转换欧拉角到四元数 + @param euler euler + */ + fromEuler(euler: Vec3): Quat; + /** + !#en Calculate the interpolation result between this quaternion and another one with given ratio + !#zh 计算四元数的插值结果 + @param to to + @param ratio ratio + @param out out + */ + lerp(to: Quat, ratio: number, out?: Quat): Quat; + /** + !#en Calculate the multiply result between this quaternion and another one + !#zh 计算四元数乘积的结果 + @param other other + */ + multiply(other: Quat): Quat; + /** + !#en Rotates a quaternion by the given angle (in radians) about a world space axis. + !#zh 围绕世界空间轴按给定弧度旋转四元数 + @param rot Quaternion to rotate + @param axis The axis around which to rotate in world space + @param rad Angle (in radians) to rotate + @param out Quaternion to store result + */ + rotateAround(rot: Quat, axis: Vec3, rad: number, out?: Quat): Quat; + } + /** Mathematical 3x3 matrix. + + NOTE: we use column-major matrix for all matrix calculation. + + This may lead to some confusion when referencing OpenGL documentation, + however, which represents out all matricies in column-major format. + This means that while in code a matrix may be typed out as: + + [1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + x, y, z, 0] + + The same matrix in the [OpenGL documentation](https://www.khronos.org/registry/OpenGL-Refpages/gl2.1/xhtml/glTranslate.xml) + is written as: + + 1 0 0 x + 0 1 0 y + 0 0 1 z + 0 0 0 0 + + Please rest assured, however, that they are the same thing! + This is not unique to glMatrix, either, as OpenGL developers have long been confused by the + apparent lack of consistency between the memory layout and the documentation. */ + export class Mat3 extends ValueType { + /** Identity of Mat3 */ + static IDENTITY: Mat3; + /** + !#zh 矩阵转数组 + !#en Matrix transpose array + @param ofs 数组内的起始偏移量 + */ + static toArray > (out: Out, mat: IMat3Like, ofs?: number): Out; + /** + !#zh 数组转矩阵 + !#en Transfer matrix array + @param ofs 数组起始偏移量 + */ + static fromArray (out: Out, arr: IWritableArrayLike, ofs?: number): Out; + /** !#en Matrix Data + !#zh 矩阵数据 */ + m: Float64Array|Float32Array; + constructor (m00?: number | Float32Array, m01?: number, m02?: number, m03?: number, m04?: number, m05?: number, m06?: number, m07?: number, m08?: number); + } + /** !#en + cc.Size is the class for size object,
+ please do not use its constructor to create sizes,
+ use {{#crossLink "cc/size:method"}}{{/crossLink}} alias function instead.
+ It will be deprecated soon, please use cc.Vec2 instead. + + !#zh + cc.Size 是 size 对象的类。
+ 请不要使用它的构造函数创建的 size,
+ 使用 {{#crossLink "cc/size:method"}}{{/crossLink}} 别名函数。
+ 它不久将被取消,请使用cc.Vec2代替。 */ + export class Size { + /** + + @param width width + @param height height + */ + constructor(width: number|Size, height?: number); + /** !#en return a Size object with width = 0 and height = 0. + !#zh 返回一个宽度为 0 和高度为 0 的 Size 对象。 */ + static ZERO: Size; + width: number; + height: number; + /** + !#en TODO + !#zh 克隆 size 对象。 + + @example + ```js + var a = new cc.size(10, 10); + a.clone();// return Size {width: 0, height: 0}; + ``` + */ + clone(): Size; + /** + !#en TODO + !#zh 当前 Size 对象是否等于指定 Size 对象。 + @param other other + + @example + ```js + var a = new cc.size(10, 10); + a.equals(new cc.size(10, 10));// return true; + ``` + */ + equals(other: Size): boolean; + /** + !#en TODO + !#zh 线性插值。 + @param to to + @param ratio the interpolation coefficient. + @param out optional, the receiving vector. + + @example + ```js + var a = new cc.size(10, 10); + var b = new cc.rect(50, 50, 100, 100); + update (dt) { + // method 1; + var c = a.lerp(b, dt * 0.1); + // method 2; + a.lerp(b, dt * 0.1, c); + } + ``` + */ + lerp(to: Rect, ratio: number, out?: Size): Size; + /** + !#en TODO + !#zh 转换为方便阅读的字符串。 + + @example + ```js + var a = new cc.size(10, 10); + a.toString();// return "(10.00, 10.00)"; + ``` + */ + toString(): string; + } + /** !#en The base class of all value types. + !#zh 所有值类型的基类。 */ + export class ValueType { + /** + !#en This method returns an exact copy of current value. + !#zh 克隆当前值,该方法返回一个新对象,新对象的值和原对象相等。 + */ + clone(): ValueType; + /** + !#en Compares this object with the other one. + !#zh 当前对象是否等于指定对象。 + @param other other + */ + equals(other: ValueType): boolean; + /** + !#en + Linearly interpolates between this value to to value by ratio which is in the range [0, 1]. + When ratio = 0 returns this. When ratio = 1 return to. When ratio = 0.5 returns the average of this and to. + !#zh + 线性插值。
+ 当 ratio = 0 时返回自身,ratio = 1 时返回目标,ratio = 0.5 返回自身和目标的平均值。。 + @param to the to value + @param ratio the interpolation coefficient + */ + lerp(to: ValueType, ratio: number): ValueType; + /** + !#en + Copys all the properties from another given object to this value. + !#zh + 从其它对象把所有属性复制到当前对象。 + @param source the source to copy + */ + set(source: ValueType): void; + /** + !#en Convert to a readable string. + !#zh 转换为方便阅读的字符串。 + */ + toString(): string; + } + /** !#en Representation of 2D vectors and points. + !#zh 表示 2D 向量和坐标 */ + export class Vec2 extends ValueType { + /** + !#en Returns the length of this vector. + !#zh 返回该向量的长度。 + + @example + ```js + var v = cc.v2(10, 10); + v.mag(); // return 14.142135623730951; + ``` + */ + mag(): number; + /** + !#en Returns the squared length of this vector. + !#zh 返回该向量的长度平方。 + + @example + ```js + var v = cc.v2(10, 10); + v.magSqr(); // return 200; + ``` + */ + magSqr(): number; + /** + !#en Subtracts one vector from this. If you want to save result to another vector, use sub() instead. + !#zh 向量减法。如果你想保存结果到另一个向量,可使用 sub() 代替。 + @param vector vector + + @example + ```js + var v = cc.v2(10, 10); + v.subSelf(cc.v2(5, 5));// return Vec2 {x: 5, y: 5}; + ``` + */ + subSelf(vector: Vec2): Vec2; + /** + !#en Subtracts one vector from this, and returns the new result. + !#zh 向量减法,并返回新结果。 + @param vector vector + @param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created + + @example + ```js + var v = cc.v2(10, 10); + v.sub(cc.v2(5, 5)); // return Vec2 {x: 5, y: 5}; + var v1 = new Vec2; + v.sub(cc.v2(5, 5), v1); // return Vec2 {x: 5, y: 5}; + ``` + */ + sub(vector: Vec2, out?: Vec2): Vec2; + /** + !#en Multiplies this by a number. If you want to save result to another vector, use mul() instead. + !#zh 缩放当前向量。如果你想结果保存到另一个向量,可使用 mul() 代替。 + @param num num + + @example + ```js + var v = cc.v2(10, 10); + v.mulSelf(5);// return Vec2 {x: 50, y: 50}; + ``` + */ + mulSelf(num: number): Vec2; + /** + !#en Multiplies by a number, and returns the new result. + !#zh 缩放向量,并返回新结果。 + @param num num + @param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created + + @example + ```js + var v = cc.v2(10, 10); + v.mul(5); // return Vec2 {x: 50, y: 50}; + var v1 = new Vec2; + v.mul(5, v1); // return Vec2 {x: 50, y: 50}; + ``` + */ + mul(num: number, out?: Vec2): Vec2; + /** + !#en Divides by a number. If you want to save result to another vector, use div() instead. + !#zh 向量除法。如果你想结果保存到另一个向量,可使用 div() 代替。 + @param num num + + @example + ```js + var v = cc.v2(10, 10); + v.divSelf(5); // return Vec2 {x: 2, y: 2}; + ``` + */ + divSelf(num: number): Vec2; + /** + !#en Divides by a number, and returns the new result. + !#zh 向量除法,并返回新的结果。 + @param num num + @param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created + + @example + ```js + var v = cc.v2(10, 10); + v.div(5); // return Vec2 {x: 2, y: 2}; + var v1 = new Vec2; + v.div(5, v1); // return Vec2 {x: 2, y: 2}; + ``` + */ + div(num: number, out?: Vec2): Vec2; + /** + !#en Multiplies two vectors. + !#zh 分量相乘。 + @param vector vector + + @example + ```js + var v = cc.v2(10, 10); + v.scaleSelf(cc.v2(5, 5));// return Vec2 {x: 50, y: 50}; + ``` + */ + scaleSelf(vector: Vec2): Vec2; + /** + !#en Multiplies two vectors, and returns the new result. + !#zh 分量相乘,并返回新的结果。 + @param vector vector + @param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created + + @example + ```js + var v = cc.v2(10, 10); + v.scale(cc.v2(5, 5)); // return Vec2 {x: 50, y: 50}; + var v1 = new Vec2; + v.scale(cc.v2(5, 5), v1); // return Vec2 {x: 50, y: 50}; + ``` + */ + scale(vector: Vec2, out?: Vec2): Vec2; + /** + !#en Negates the components. If you want to save result to another vector, use neg() instead. + !#zh 向量取反。如果你想结果保存到另一个向量,可使用 neg() 代替。 + + @example + ```js + var v = cc.v2(10, 10); + v.negSelf(); // return Vec2 {x: -10, y: -10}; + ``` + */ + negSelf(): Vec2; + /** + !#en Negates the components, and returns the new result. + !#zh 返回取反后的新向量。 + @param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created + + @example + ```js + var v = cc.v2(10, 10); + var v1 = new Vec2; + v.neg(v1); // return Vec2 {x: -10, y: -10}; + ``` + */ + neg(out?: Vec2): Vec2; + /** !#en return a Vec2 object with x = 1 and y = 1. + !#zh 新 Vec2 对象。 */ + static ONE: Vec2; + /** !#en return a Vec2 object with x = 0 and y = 0. + !#zh 返回 x = 0 和 y = 0 的 Vec2 对象。 */ + static ZERO: Vec2; + /** !#en return a readonly Vec2 object with x = 0 and y = 0. + !#zh 返回一个 x = 0 和 y = 0 的 Vec2 只读对象。 */ + static ZERO_R: Vec2; + /** !#en return a Vec2 object with x = 0 and y = 1. + !#zh 返回 x = 0 和 y = 1 的 Vec2 对象。 */ + static UP: Vec2; + /** !#en return a readonly Vec2 object with x = 0 and y = 1. + !#zh 返回 x = 0 和 y = 1 的 Vec2 只读对象。 */ + static UP_R: Vec2; + /** !#en return a readonly Vec2 object with x = 1 and y = 0. + !#zh 返回 x = 1 和 y = 0 的 Vec2 只读对象。 */ + static RIGHT: Vec2; + /** !#en return a Vec2 object with x = 1 and y = 0. + !#zh 返回 x = 1 和 y = 0 的 Vec2 对象。 */ + static RIGHT_R: Vec2; + /** + !#zh 获得指定向量的拷贝 + */ + static clone (a: Out): Vec2; + /** + !#zh 复制指定向量的值 + */ + static copy (out: Out, a: Out): Out; + /** + !#zh 设置向量值 + */ + static set (out: Out, x: number, y: number): Out; + /** + !#zh 逐元素向量加法 + */ + static add (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量减法 + */ + static subtract (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量乘法 + */ + static multiply (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量除法 + */ + static divide (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量向上取整 + */ + static ceil (out: Out, a: Out): Out; + /** + !#zh 逐元素向量向下取整 + */ + static floor (out: Out, a: Out): Out; + /** + !#zh 逐元素向量最小值 + */ + static min (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量最大值 + */ + static max (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量四舍五入取整 + */ + static round (out: Out, a: Out): Out; + /** + !#zh 向量标量乘法 + */ + static multiplyScalar (out: Out, a: Out, b: number): Out; + /** + !#zh 逐元素向量乘加: A + B * scale + */ + static scaleAndAdd (out: Out, a: Out, b: Out, scale: number): Out; + /** + !#zh 求两向量的欧氏距离 + */ + static distance (a: Out, b: Out): number; + /** + !#zh 求两向量的欧氏距离平方 + */ + static squaredDistance (a: Out, b: Out): number; + /** + !#zh 求向量长度 + */ + static len (a: Out): number; + /** + !#zh 求向量长度平方 + */ + static lengthSqr (a: Out): number; + /** + !#zh 逐元素向量取负 + */ + static negate (out: Out, a: Out): Out; + /** + !#zh 逐元素向量取倒数,接近 0 时返回 Infinity + */ + static inverse (out: Out, a: Out): Out; + /** + !#zh 逐元素向量取倒数,接近 0 时返回 0 + */ + static inverseSafe (out: Out, a: Out): Out; + /** + !#zh 归一化向量 + */ + static normalize (out: Out, a: Vec2Like): Out; + /** + !#zh 向量点积(数量积) + */ + static dot (a: Out, b: Out): number; + /** + !#zh 向量叉积(向量积),注意二维向量的叉积为与 Z 轴平行的三维向量 + */ + static cross (out: Vec2, a: Out, b: Out): Vec2; + /** + !#zh 逐元素向量线性插值: A + t * (B - A) + */ + static lerp (out: Out, a: Out, b: Out, t: number): Out; + /** + !#zh 生成一个在单位圆上均匀分布的随机向量 + */ + static random (out: Out, scale?: number): Out; + /** + !#zh 向量与三维矩阵乘法,默认向量第三位为 1。 + */ + static transformMat3 (out: Out, a: Out, mat: IMat3Like): Out; + /** + !#zh 向量与四维矩阵乘法,默认向量第三位为 0,第四位为 1。 + */ + static transformMat4 (out: Out, a: Out, mat: MatLike): Out; + /** + !#zh 向量等价判断 + */ + static strictEquals (a: Out, b: Out): boolean; + /** + !#zh 排除浮点数误差的向量近似等价判断 + */ + static equals (a: Out, b: Out, epsilon?: number): boolean; + /** + !#zh 排除浮点数误差的向量近似等价判断 + */ + static angle (a: Out, b: Out): number; + /** + !#zh 向量转数组 + */ + static toArray > (out: Out, v: IVec2Like, ofs?: number): Out; + /** + !#zh 数组转向量 + */ + static fromArray (out: Out, arr: IWritableArrayLike, ofs?: number): Out; + x: number; + y: number; + /** + !#en + Constructor + see {{#crossLink "cc/vec2:method"}}cc.v2{{/crossLink}} or {{#crossLink "cc/p:method"}}cc.p{{/crossLink}} + !#zh + 构造函数,可查看 {{#crossLink "cc/vec2:method"}}cc.v2{{/crossLink}} 或者 {{#crossLink "cc/p:method"}}cc.p{{/crossLink}} + @param x x + @param y y + */ + constructor(x?: number, y?: number); + /** + !#en clone a Vec2 object + !#zh 克隆一个 Vec2 对象 + */ + clone(): Vec2; + /** + !#en Sets vector with another's value + !#zh 设置向量值。 + @param newValue !#en new value to set. !#zh 要设置的新值 + */ + set(newValue: Vec2): Vec2; + /** + !#en Check whether two vector equal + !#zh 当前的向量是否与指定的向量相等。 + @param other other + */ + equals(other: Vec2): boolean; + /** + !#en Check whether two vector equal with some degree of variance. + !#zh + 近似判断两个点是否相等。
+ 判断 2 个向量是否在指定数值的范围之内,如果在则返回 true,反之则返回 false。 + @param other other + @param variance variance + */ + fuzzyEquals(other: Vec2, variance: number): boolean; + /** + !#en Transform to string with vector informations + !#zh 转换为方便阅读的字符串。 + */ + toString(): string; + /** + !#en Calculate linear interpolation result between this vector and another one with given ratio + !#zh 线性插值。 + @param to to + @param ratio the interpolation coefficient + @param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created + */ + lerp(to: Vec2, ratio: number, out?: Vec2): Vec2; + /** + !#en Clamp the vector between from float and to float. + !#zh + 返回指定限制区域后的向量。
+ 向量大于 max_inclusive 则返回 max_inclusive。
+ 向量小于 min_inclusive 则返回 min_inclusive。
+ 否则返回自身。 + @param min_inclusive min_inclusive + @param max_inclusive max_inclusive + + @example + ```js + var min_inclusive = cc.v2(0, 0); + var max_inclusive = cc.v2(20, 20); + var v1 = cc.v2(20, 20).clampf(min_inclusive, max_inclusive); // Vec2 {x: 20, y: 20}; + var v2 = cc.v2(0, 0).clampf(min_inclusive, max_inclusive); // Vec2 {x: 0, y: 0}; + var v3 = cc.v2(10, 10).clampf(min_inclusive, max_inclusive); // Vec2 {x: 10, y: 10}; + ``` + */ + clampf(min_inclusive: Vec2, max_inclusive: Vec2): Vec2; + /** + !#en Adds this vector. + !#zh 向量加法。 + @param vector vector + @param out out + + @example + ```js + var v = cc.v2(10, 10); + v.add(cc.v2(5, 5));// return Vec2 {x: 15, y: 15}; + ``` + */ + add(vector: Vec2, out?: Vec2): Vec2; + /** + !#en Adds this vector. If you want to save result to another vector, use add() instead. + !#zh 向量加法。如果你想保存结果到另一个向量,使用 add() 代替。 + @param vector vector + */ + addSelf(vector: Vec2): Vec2; + /** + !#en Subtracts one vector from this. + !#zh 向量减法。 + @param vector vector + + @example + ```js + var v = cc.v2(10, 10); + v.subSelf(cc.v2(5, 5));// return Vec2 {x: 5, y: 5}; + ``` + */ + subtract(vector: Vec2): Vec2; + /** + !#en Multiplies this by a number. + !#zh 缩放当前向量。 + @param num num + + @example + ```js + var v = cc.v2(10, 10); + v.multiply(5);// return Vec2 {x: 50, y: 50}; + ``` + */ + multiplyScalar(num: number): Vec2; + /** + !#en Multiplies two vectors. + !#zh 分量相乘。 + @param vector vector + + @example + ```js + var v = cc.v2(10, 10); + v.multiply(cc.v2(5, 5));// return Vec2 {x: 50, y: 50}; + ``` + */ + multiply(vector: Vec2): Vec2; + /** + !#en Divides by a number. + !#zh 向量除法。 + @param num num + + @example + ```js + var v = cc.v2(10, 10); + v.divide(5); // return Vec2 {x: 2, y: 2}; + ``` + */ + divide(num: number): Vec2; + /** + !#en Negates the components. + !#zh 向量取反。 + + @example + ```js + var v = cc.v2(10, 10); + v.negate(); // return Vec2 {x: -10, y: -10}; + ``` + */ + negate(): Vec2; + /** + !#en Dot product + !#zh 当前向量与指定向量进行点乘。 + @param vector vector + + @example + ```js + var v = cc.v2(10, 10); + v.dot(cc.v2(5, 5)); // return 100; + ``` + */ + dot(vector?: Vec2): number; + /** + !#en Cross product + !#zh 当前向量与指定向量进行叉乘。 + @param vector vector + + @example + ```js + var v = cc.v2(10, 10); + v.cross(cc.v2(5, 5)); // return 0; + ``` + */ + cross(vector?: Vec2): number; + /** + !#en Returns the length of this vector. + !#zh 返回该向量的长度。 + + @example + ```js + var v = cc.v2(10, 10); + v.len(); // return 14.142135623730951; + ``` + */ + len(): number; + /** + !#en Returns the squared length of this vector. + !#zh 返回该向量的长度平方。 + + @example + ```js + var v = cc.v2(10, 10); + v.lengthSqr(); // return 200; + ``` + */ + lengthSqr(): number; + /** + !#en Make the length of this vector to 1. + !#zh 向量归一化,让这个向量的长度为 1。 + + @example + ```js + var v = cc.v2(10, 10); + v.normalizeSelf(); // return Vec2 {x: 0.7071067811865475, y: 0.7071067811865475}; + ``` + */ + normalizeSelf(): Vec2; + /** + !#en + Returns this vector with a magnitude of 1.
+
+ Note that the current vector is unchanged and a new normalized vector is returned. If you want to normalize the current vector, use normalizeSelf function. + !#zh + 返回归一化后的向量。
+
+ 注意,当前向量不变,并返回一个新的归一化向量。如果你想来归一化当前向量,可使用 normalizeSelf 函数。 + @param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created + */ + normalize(out?: Vec2): Vec2; + /** + !#en Get angle in radian between this and vector. + !#zh 夹角的弧度。 + @param vector vector + */ + angle(vector: Vec2): number; + /** + !#en Get angle in radian between this and vector with direction. + !#zh 带方向的夹角的弧度。 + @param vector vector + */ + signAngle(vector: Vec2): number; + /** + !#en rotate + !#zh 返回旋转给定弧度后的新向量。 + @param radians radians + @param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created + */ + rotate(radians: number, out?: Vec2): Vec2; + /** + !#en rotate self + !#zh 按指定弧度旋转向量。 + @param radians radians + */ + rotateSelf(radians: number): Vec2; + /** + !#en Calculates the projection of the current vector over the given vector. + !#zh 返回当前向量在指定 vector 向量上的投影向量。 + @param vector vector + + @example + ```js + var v1 = cc.v2(20, 20); + var v2 = cc.v2(5, 5); + v1.project(v2); // Vec2 {x: 20, y: 20}; + ``` + */ + project(vector: Vec2): Vec2; + /** + Transforms the vec2 with a mat4. 3rd vector component is implicitly '0', 4th vector component is implicitly '1' + @param m matrix to transform with + @param out the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created + */ + transformMat4(m: Mat4, out?: Vec2): Vec2; + /** + Returns the maximum value in x, y. + */ + maxAxis(): number; + } + /** !#en A 2D rectangle defined by x, y position and width, height. + !#zh 通过位置和宽高定义的 2D 矩形。 */ + export class Rect extends ValueType { + /** + !#en + Constructor of Rect class. + see {{#crossLink "cc/rect:method"}} cc.rect {{/crossLink}} for convenience method. + !#zh + Rect类的构造函数。可以通过 {{#crossLink "cc/rect:method"}} cc.rect {{/crossLink}} 简便方法进行创建。 + @param x x + @param y y + @param w w + @param h h + */ + constructor(x?: number, y?: number, w?: number, h?: number); + /** + !#en Creates a rectangle from two coordinate values. + !#zh 根据指定 2 个坐标创建出一个矩形区域。 + @param v1 v1 + @param v2 v2 + + @example + ```js + cc.Rect.fromMinMax(cc.v2(10, 10), cc.v2(20, 20)); // Rect {x: 10, y: 10, width: 10, height: 10}; + ``` + */ + static fromMinMax(v1: Vec2, v2: Vec2): Rect; + x: number; + y: number; + width: number; + height: number; + /** + !#en TODO + !#zh 克隆一个新的 Rect。 + + @example + ```js + var a = new cc.Rect(0, 0, 10, 10); + a.clone();// Rect {x: 0, y: 0, width: 10, height: 10} + ``` + */ + clone(): Rect; + /** + !#en TODO + !#zh 是否等于指定的矩形。 + @param other other + + @example + ```js + var a = new cc.Rect(0, 0, 10, 10); + var b = new cc.Rect(0, 0, 10, 10); + a.equals(b);// true; + ``` + */ + equals(other: Rect): boolean; + /** + !#en TODO + !#zh 线性插值 + @param to to + @param ratio the interpolation coefficient. + @param out optional, the receiving vector. + + @example + ```js + var a = new cc.Rect(0, 0, 10, 10); + var b = new cc.Rect(50, 50, 100, 100); + update (dt) { + // method 1; + var c = a.lerp(b, dt * 0.1); + // method 2; + a.lerp(b, dt * 0.1, c); + } + ``` + */ + lerp(to: Rect, ratio: number, out?: Rect): Rect; + /** + !#en Check whether the current rectangle intersects with the given one + !#zh 当前矩形与指定矩形是否相交。 + @param rect rect + + @example + ```js + var a = new cc.Rect(0, 0, 10, 10); + var b = new cc.Rect(0, 0, 20, 20); + a.intersects(b);// true + ``` + */ + intersects(rect: Rect): boolean; + /** + !#en Returns the overlapping portion of 2 rectangles. + !#zh 返回 2 个矩形重叠的部分。 + @param out Stores the result + @param rectB rectB + + @example + ```js + var a = new cc.Rect(0, 10, 20, 20); + var b = new cc.Rect(0, 10, 10, 10); + var intersection = new cc.Rect(); + a.intersection(intersection, b); // intersection {x: 0, y: 10, width: 10, height: 10}; + ``` + */ + intersection(out: Rect, rectB: Rect): Rect; + /** + !#en Check whether the current rect contains the given point + !#zh 当前矩形是否包含指定坐标点。 + Returns true if the point inside this rectangle. + @param point point + + @example + ```js + var a = new cc.Rect(0, 0, 10, 10); + var b = new cc.Vec2(0, 5); + a.contains(b);// true + ``` + */ + contains(point: Vec2): boolean; + /** + !#en Returns true if the other rect totally inside this rectangle. + !#zh 当前矩形是否包含指定矩形。 + @param rect rect + + @example + ```js + var a = new cc.Rect(0, 0, 20, 20); + var b = new cc.Rect(0, 0, 10, 10); + a.containsRect(b);// true + ``` + */ + containsRect(rect: Rect): boolean; + /** + !#en Returns the smallest rectangle that contains the current rect and the given rect. + !#zh 返回一个包含当前矩形和指定矩形的最小矩形。 + @param out Stores the result + @param rectB rectB + + @example + ```js + var a = new cc.Rect(0, 10, 20, 20); + var b = new cc.Rect(0, 10, 10, 10); + var union = new cc.Rect(); + a.union(union, b); // union {x: 0, y: 10, width: 20, height: 20}; + ``` + */ + union(out: Rect, rectB: Rect): Rect; + /** + !#en Apply matrix4 to the rect. + !#zh 使用 mat4 对矩形进行矩阵转换。 + @param out The output rect + @param mat The matrix4 + */ + transformMat4(out: Rect, mat: Mat4): void; + /** + !#en Output rect informations to string + !#zh 转换为方便阅读的字符串 + + @example + ```js + var a = new cc.Rect(0, 0, 10, 10); + a.toString();// "(0.00, 0.00, 10.00, 10.00)"; + ``` + */ + toString(): string; + /** !#en The minimum x value, equals to rect.x + !#zh 矩形 x 轴上的最小值,等价于 rect.x。 */ + xMin: number; + /** !#en The minimum y value, equals to rect.y + !#zh 矩形 y 轴上的最小值。 */ + yMin: number; + /** !#en The maximum x value. + !#zh 矩形 x 轴上的最大值。 */ + xMax: number; + /** !#en The maximum y value. + !#zh 矩形 y 轴上的最大值。 */ + yMax: number; + /** !#en The position of the center of the rectangle. + !#zh 矩形的中心点。 */ + center: Vec2; + /** !#en The X and Y position of the rectangle. + !#zh 矩形的 x 和 y 坐标。 */ + origin: Vec2; + /** !#en Width and height of the rectangle. + !#zh 矩形的大小。 */ + size: Size; + } + /** !#en Representation of 3D vectors and points. + !#zh 表示 3D 向量和坐标 */ + export class Vec3 extends ValueType { + /** + !#en Returns the length of this vector. + !#zh 返回该向量的长度。 + + @example + ```js + var v = cc.v3(10, 10, 10); + v.mag(); // return 17.320508075688775; + ``` + */ + mag(): number; + /** + !#en Returns the squared length of this vector. + !#zh 返回该向量的长度平方。 + */ + magSqr(): number; + /** + !#en Subtracts one vector from this. If you want to save result to another vector, use sub() instead. + !#zh 向量减法。如果你想保存结果到另一个向量,可使用 sub() 代替。 + @param vector vector + */ + subSelf(vector: Vec3): Vec3; + /** + !#en Subtracts one vector from this, and returns the new result. + !#zh 向量减法,并返回新结果。 + @param vector vector + @param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created + */ + sub(vector: Vec3, out?: Vec3): Vec3; + /** + !#en Multiplies this by a number. If you want to save result to another vector, use mul() instead. + !#zh 缩放当前向量。如果你想结果保存到另一个向量,可使用 mul() 代替。 + @param num num + */ + mulSelf(num: number): Vec3; + /** + !#en Multiplies by a number, and returns the new result. + !#zh 缩放向量,并返回新结果。 + @param num num + @param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created + */ + mul(num: number, out?: Vec3): Vec3; + /** + !#en Divides by a number. If you want to save result to another vector, use div() instead. + !#zh 向量除法。如果你想结果保存到另一个向量,可使用 div() 代替。 + @param num num + */ + divSelf(num: number): Vec3; + /** + !#en Divides by a number, and returns the new result. + !#zh 向量除法,并返回新的结果。 + @param num num + @param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created + */ + div(num: number, out?: Vec3): Vec3; + /** + !#en Multiplies two vectors. + !#zh 分量相乘。 + @param vector vector + */ + scaleSelf(vector: Vec3): Vec3; + /** + !#en Multiplies two vectors, and returns the new result. + !#zh 分量相乘,并返回新的结果。 + @param vector vector + @param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created + */ + scale(vector: Vec3, out?: Vec3): Vec3; + /** + !#en Negates the components. If you want to save result to another vector, use neg() instead. + !#zh 向量取反。如果你想结果保存到另一个向量,可使用 neg() 代替。 + */ + negSelf(): Vec3; + /** + !#en Negates the components, and returns the new result. + !#zh 返回取反后的新向量。 + @param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created + */ + neg(out?: Vec3): Vec3; + /** !#en return a Vec3 object with x = 1, y = 1, z = 1. + !#zh 新 Vec3 对象。 */ + static ONE: Vec3; + /** !#en return a Vec3 object with x = 0, y = 0, z = 0. + !#zh 返回 x = 0,y = 0,z = 0 的 Vec3 对象。 */ + static ZERO: Vec3; + /** !#en return a Vec3 object with x = 0, y = 1, z = 0. + !#zh 返回 x = 0, y = 1, z = 0 的 Vec3 对象。 */ + static UP: Vec3; + /** !#en return a Vec3 object with x = 1, y = 0, z = 0. + !#zh 返回 x = 1,y = 0,z = 0 的 Vec3 对象。 */ + static RIGHT: Vec3; + /** !#en return a Vec3 object with x = 0, y = 0, z = 1. + !#zh 返回 x = 0,y = 0,z = 1 的 Vec3 对象。 */ + static FORWARD: Vec3; + /** + !#zh 将目标赋值为零向量 + !#en The target of an assignment zero vector + */ + static zero (out: Out): Out; + /** + !#zh 获得指定向量的拷贝 + !#en Obtaining copy vectors designated + */ + static clone (a: Out): Vec3; + /** + !#zh 复制目标向量 + !#en Copy the target vector + */ + static copy (out: Out, a: Vec3Like): Out; + /** + !#zh 设置向量值 + !#en Set to value + */ + static set (out: Out, x: number, y: number, z: number): Out; + /** + !#zh 逐元素向量加法 + !#en Element-wise vector addition + */ + static add (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量减法 + !#en Element-wise vector subtraction + */ + static subtract (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量乘法 (分量积) + !#en Element-wise vector multiplication (product component) + */ + static multiply (out: Out, a: Vec3Like_1, b: Vec3Like_2): Out; + /** + !#zh 逐元素向量除法 + !#en Element-wise vector division + */ + static divide (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量向上取整 + !#en Rounding up by elements of the vector + */ + static ceil (out: Out, a: Out): Out; + /** + !#zh 逐元素向量向下取整 + !#en Element vector by rounding down + */ + static floor (out: Out, a: Out): Out; + /** + !#zh 逐元素向量最小值 + !#en The minimum by-element vector + */ + static min (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量最大值 + !#en The maximum value of the element-wise vector + */ + static max (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量四舍五入取整 + !#en Element-wise vector of rounding to whole + */ + static round (out: Out, a: Out): Out; + /** + !#zh 向量标量乘法 + !#en Vector scalar multiplication + */ + static multiplyScalar (out: Out, a: Vec3Like, b: number): Out; + /** + !#zh 逐元素向量乘加: A + B * scale + !#en Element-wise vector multiply add: A + B * scale + */ + static scaleAndAdd (out: Out, a: Out, b: Out, scale: number): Out; + /** + !#zh 求两向量的欧氏距离 + !#en Seeking two vectors Euclidean distance + */ + static distance (a: Out, b: Out): number; + /** + !#zh 求两向量的欧氏距离平方 + !#en Euclidean distance squared seeking two vectors + */ + static squaredDistance (a: Out, b: Out): number; + /** + !#zh 求向量长度 + !#en Seeking vector length + */ + static len (a: Out): number; + /** + !#zh 求向量长度平方 + !#en Seeking squared vector length + */ + static lengthSqr (a: Out): number; + /** + !#zh 逐元素向量取负 + !#en By taking the negative elements of the vector + */ + static negate (out: Out, a: Out): Out; + /** + !#zh 逐元素向量取倒数,接近 0 时返回 Infinity + !#en Element vector by taking the inverse, return near 0 Infinity + */ + static inverse (out: Out, a: Out): Out; + /** + !#zh 逐元素向量取倒数,接近 0 时返回 0 + !#en Element vector by taking the inverse, return near 0 0 + */ + static inverseSafe (out: Out, a: Out): Out; + /** + !#zh 归一化向量 + !#en Normalized vector + */ + static normalize (out: Out, a: Vec3Like): Out; + /** + !#zh 向量点积(数量积) + !#en Vector dot product (scalar product) + */ + static dot (a: Out, b: Out): number; + /** + !#zh 向量叉积(向量积) + !#en Vector cross product (vector product) + */ + static cross (out: Out, a: Vec3Like_1, b: Vec3Like_2): Out; + /** + !#zh 逐元素向量线性插值: A + t * (B - A) + !#en Vector element by element linear interpolation: A + t * (B - A) + */ + static lerp (out: Out, a: Out, b: Out, t: number): Out; + /** + !#zh 生成一个在单位球体上均匀分布的随机向量 + !#en Generates a uniformly distributed random vectors on the unit sphere + @param scale 生成的向量长度 + */ + static random (out: Out, scale?: number): Out; + /** + !#zh 向量与四维矩阵乘法,默认向量第四位为 1。 + !#en Four-dimensional vector and matrix multiplication, the default vectors fourth one. + */ + static transformMat4 (out: Out, a: Vec3Like, mat: MatLike): Out; + /** + !#zh 向量与四维矩阵乘法,默认向量第四位为 0。 + !#en Four-dimensional vector and matrix multiplication, vector fourth default is 0. + */ + static transformMat4Normal (out: Out, a: Out, mat: MatLike): Out; + /** + !#zh 向量与三维矩阵乘法 + !#en Dimensional vector matrix multiplication + */ + static transformMat3 (out: Out, a: Out, mat: MatLike): Out; + /** + !#zh 向量仿射变换 + !#en Affine transformation vector + */ + static transformAffine(out: Out, v: VecLike, mat: MatLike): Out; + /** + !#zh 向量四元数乘法 + !#en Vector quaternion multiplication + */ + static transformQuat (out: Out, a: VecLike, q: QuatLike): Out; + /** + !#zh 以缩放 -> 旋转 -> 平移顺序变换向量 + !#en To scale -> rotation -> transformation vector sequence translation + */ + static transformRTS(out: Out, a: VecLike, r: QuatLike, t: VecLike, s: VecLike): Out; + /** + !#zh 以平移 -> 旋转 -> 缩放顺序逆变换向量 + !#en Translational -> rotation -> Zoom inverse transformation vector sequence + */ + static transformInverseRTS(out: Out, a: VecLike, r: QuatLike, t: VecLike, s: VecLike): Out; + /** + !#zh 绕 X 轴旋转向量指定弧度 + !#en Rotation vector specified angle about the X axis + @param v 待旋转向量 + @param o 旋转中心 + @param a 旋转弧度 + */ + static rotateX (out: Out, v: Out, o: Out, a: number): Out; + /** + !#zh 绕 Y 轴旋转向量指定弧度 + !#en Rotation vector specified angle around the Y axis + @param v 待旋转向量 + @param o 旋转中心 + @param a 旋转弧度 + */ + static rotateY (out: Out, v: Out, o: Out, a: number): Out; + /** + !#zh 绕 Z 轴旋转向量指定弧度 + !#en Around the Z axis specified angle vector + @param v 待旋转向量 + @param o 旋转中心 + @param a 旋转弧度 + */ + static rotateZ (out: Out, v: Out, o: Out, a: number): Out; + /** + !#zh 向量等价判断 + !#en Equivalent vectors Analyzing + */ + static strictEquals (a: Out, b: Out): boolean; + /** + !#zh 排除浮点数误差的向量近似等价判断 + !#en Negative error vector floating point approximately equivalent Analyzing + */ + static equals (a: Out, b: Out, epsilon?: number): boolean; + /** + !#zh 求两向量夹角弧度 + !#en Radian angle between two vectors seek + */ + static angle (a: Out, b: Out): number; + /** + !#zh 计算向量在指定平面上的投影 + !#en Calculating a projection vector in the specified plane + @param a 待投影向量 + @param n 指定平面的法线 + */ + static projectOnPlane (out: Out, a: Out, n: Out): Out; + /** + !#zh 计算向量在指定向量上的投影 + !#en Projection vector calculated in the vector designated + @param a 待投影向量 + @param n 目标向量 + */ + static project (out: Out, a: Out, b: Out): Out; + /** + !#zh 向量转数组 + !#en Vector transfer array + @param ofs 数组起始偏移量 + */ + static toArray > (out: Out, v: IVec3Like, ofs?: number): Out; + /** + !#zh 数组转向量 + !#en Array steering amount + @param ofs 数组起始偏移量 + */ + static fromArray (out: Out, arr: IWritableArrayLike, ofs?: number): Out; + x: number; + y: number; + z: number; + /** + !#en + Constructor + see {{#crossLink "cc/vec3:method"}}cc.v3{{/crossLink}} + !#zh + 构造函数,可查看 {{#crossLink "cc/vec3:method"}}cc.v3{{/crossLink}} + @param x x + @param y y + @param z z + */ + constructor(x?: Vec3|number, y?: number, z?: number); + /** + !#en clone a Vec3 value + !#zh 克隆一个 Vec3 值 + */ + clone(): Vec3; + /** + !#en Set the current vector value with the given vector. + !#zh 用另一个向量设置当前的向量对象值。 + @param newValue !#en new value to set. !#zh 要设置的新值 + */ + set(newValue: Vec3): Vec3; + /** + !#en Check whether the vector equals another one + !#zh 当前的向量是否与指定的向量相等。 + @param other other + */ + equals(other: Vec3): boolean; + /** + !#en Check whether two vector equal with some degree of variance. + !#zh + 近似判断两个点是否相等。
+ 判断 2 个向量是否在指定数值的范围之内,如果在则返回 true,反之则返回 false。 + @param other other + @param variance variance + */ + fuzzyEquals(other: Vec3, variance: number): boolean; + /** + !#en Transform to string with vector informations + !#zh 转换为方便阅读的字符串。 + */ + toString(): string; + /** + !#en Calculate linear interpolation result between this vector and another one with given ratio + !#zh 线性插值。 + @param to to + @param ratio the interpolation coefficient + @param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created + */ + lerp(to: Vec3, ratio: number, out?: Vec3): Vec3; + /** + !#en Clamp the vector between from float and to float. + !#zh + 返回指定限制区域后的向量。
+ 向量大于 max_inclusive 则返回 max_inclusive。
+ 向量小于 min_inclusive 则返回 min_inclusive。
+ 否则返回自身。 + @param min_inclusive min_inclusive + @param max_inclusive max_inclusive + */ + clampf(min_inclusive: Vec3, max_inclusive: Vec3): Vec3; + /** + !#en Adds this vector. If you want to save result to another vector, use add() instead. + !#zh 向量加法。如果你想保存结果到另一个向量,使用 add() 代替。 + @param vector vector + */ + addSelf(vector: Vec3): Vec3; + /** + !#en Adds two vectors, and returns the new result. + !#zh 向量加法,并返回新结果。 + @param vector vector + @param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created + */ + add(vector: Vec3, out?: Vec3): Vec3; + /** + !#en Subtracts one vector from this. + !#zh 向量减法。 + @param vector vector + */ + subtract(vector: Vec3): Vec3; + /** + !#en Multiplies this by a number. + !#zh 缩放当前向量。 + @param num num + */ + multiplyScalar(num: number): Vec3; + /** + !#en Multiplies two vectors. + !#zh 分量相乘。 + @param vector vector + */ + multiply(vector: Vec3): Vec3; + /** + !#en Divides by a number. + !#zh 向量除法。 + @param num num + */ + divide(num: number): Vec3; + /** + !#en Negates the components. + !#zh 向量取反。 + */ + negate(): Vec3; + /** + !#en Dot product + !#zh 当前向量与指定向量进行点乘。 + @param vector vector + */ + dot(vector?: Vec3): number; + /** + !#en Cross product + !#zh 当前向量与指定向量进行叉乘。 + @param vector vector + @param out out + */ + cross(vector: Vec3, out?: Vec3): Vec3; + /** + !#en Returns the length of this vector. + !#zh 返回该向量的长度。 + + @example + ```js + var v = cc.v3(10, 10, 10); + v.len(); // return 17.320508075688775; + ``` + */ + len(): number; + /** + !#en Returns the squared length of this vector. + !#zh 返回该向量的长度平方。 + */ + lengthSqr(): number; + /** + !#en Make the length of this vector to 1. + !#zh 向量归一化,让这个向量的长度为 1。 + */ + normalizeSelf(): Vec3; + /** + !#en + Returns this vector with a magnitude of 1.
+
+ Note that the current vector is unchanged and a new normalized vector is returned. If you want to normalize the current vector, use normalizeSelf function. + !#zh + 返回归一化后的向量。
+
+ 注意,当前向量不变,并返回一个新的归一化向量。如果你想来归一化当前向量,可使用 normalizeSelf 函数。 + @param out optional, the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created + */ + normalize(out?: Vec3): Vec3; + /** + Transforms the vec3 with a mat4. 4th vector component is implicitly '1' + @param m matrix to transform with + @param out the receiving vector, you can pass the same vec3 to save result to itself, if not provided, a new vec3 will be created + */ + transformMat4(m: Mat4, out?: Vec3): Vec3; + /** + Returns the maximum value in x, y, and z + */ + maxAxis(): number; + /** + !#en Get angle in radian between this and vector. + !#zh 夹角的弧度。 + @param vector vector + */ + angle(vector: Vec3): number; + /** + !#en Calculates the projection of the current vector over the given vector. + !#zh 返回当前向量在指定 vector 向量上的投影向量。 + @param vector vector + + @example + ```js + var v1 = cc.v3(20, 20, 20); + var v2 = cc.v3(5, 5, 5); + v1.project(v2); // Vec3 {x: 20, y: 20, z: 20}; + ``` + */ + project(vector: Vec3): Vec3; + /** + !#en Get angle in radian between this and vector with direction.
+ In order to compatible with the vec2 API. + !#zh 带方向的夹角的弧度。该方法仅用做兼容 2D 计算。 + @param vector vector + */ + signAngle(vector: Vec3|Vec2): number; + /** + !#en rotate. In order to compatible with the vec2 API. + !#zh 返回旋转给定弧度后的新向量。该方法仅用做兼容 2D 计算。 + @param radians radians + @param out optional, the receiving vector, you can pass the same vec2 to save result to itself, if not provided, a new vec2 will be created + */ + rotate(radians: number, out?: Vec3): Vec2; + /** + !#en rotate self. In order to compatible with the vec2 API. + !#zh 按指定弧度旋转向量。该方法仅用做兼容 2D 计算。 + @param radians radians + */ + rotateSelf(radians: number): Vec3; + } + /** !#en Representation of 3D vectors and points. + !#zh 表示 3D 向量和坐标 */ + export class Vec4 extends ValueType { + /** + !#en Subtracts one vector from this. If you want to save result to another vector, use sub() instead. + !#zh 向量减法。如果你想保存结果到另一个向量,可使用 sub() 代替。 + @param vector vector + */ + subSelf(vector: Vec4): Vec4; + /** + !#en Subtracts one vector from this, and returns the new result. + !#zh 向量减法,并返回新结果。 + @param vector vector + @param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created + */ + sub(vector: Vec4, out?: Vec4): Vec4; + /** + !#en Multiplies this by a number. If you want to save result to another vector, use mul() instead. + !#zh 缩放当前向量。如果你想结果保存到另一个向量,可使用 mul() 代替。 + @param num num + */ + mulSelf(num: number): Vec4; + /** + !#en Multiplies by a number, and returns the new result. + !#zh 缩放向量,并返回新结果。 + @param num num + @param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created + */ + mul(num: number, out?: Vec4): Vec4; + /** + !#en Divides by a number. If you want to save result to another vector, use div() instead. + !#zh 向量除法。如果你想结果保存到另一个向量,可使用 div() 代替。 + @param num num + */ + divSelf(num: number): Vec4; + /** + !#en Divides by a number, and returns the new result. + !#zh 向量除法,并返回新的结果。 + @param num num + @param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created + */ + div(num: number, out?: Vec4): Vec4; + /** + !#en Multiplies two vectors. + !#zh 分量相乘。 + @param vector vector + */ + scaleSelf(vector: Vec4): Vec4; + /** + !#en Multiplies two vectors, and returns the new result. + !#zh 分量相乘,并返回新的结果。 + @param vector vector + @param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created + */ + scale(vector: Vec4, out?: Vec4): Vec4; + /** + !#en Negates the components. If you want to save result to another vector, use neg() instead. + !#zh 向量取反。如果你想结果保存到另一个向量,可使用 neg() 代替。 + */ + negSelf(): Vec4; + /** + !#en Negates the components, and returns the new result. + !#zh 返回取反后的新向量。 + @param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created + */ + neg(out?: Vec4): Vec4; + /** + !#zh 获得指定向量的拷贝 + !#en Obtaining copy vectors designated + */ + static clone (a: Out): Vec4; + /** + !#zh 复制目标向量 + !#en Copy the target vector + */ + static copy (out: Out, a: Out): Out; + /** + !#zh 设置向量值 + !#en Set to value + */ + static set (out: Out, x: number, y: number, z: number, w: number): Out; + /** + !#zh 逐元素向量加法 + !#en Element-wise vector addition + */ + static add (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量减法 + !#en Element-wise vector subtraction + */ + static subtract (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量乘法 + !#en Element-wise vector multiplication + */ + static multiply (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量除法 + !#en Element-wise vector division + */ + static divide (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量向上取整 + !#en Rounding up by elements of the vector + */ + static ceil (out: Out, a: Out): Out; + /** + !#zh 逐元素向量向下取整 + !#en Element vector by rounding down + */ + static floor (out: Out, a: Out): Out; + /** + !#zh 逐元素向量最小值 + !#en The minimum by-element vector + */ + static min (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量最大值 + !#en The maximum value of the element-wise vector + */ + static max (out: Out, a: Out, b: Out): Out; + /** + !#zh 逐元素向量四舍五入取整 + !#en Element-wise vector of rounding to whole + */ + static round (out: Out, a: Out): Out; + /** + !#zh 向量标量乘法 + !#en Vector scalar multiplication + */ + static multiplyScalar (out: Out, a: Out, b: number): Out; + /** + !#zh 逐元素向量乘加: A + B * scale + !#en Element-wise vector multiply add: A + B * scale + */ + static scaleAndAdd (out: Out, a: Out, b: Out, scale: number): Out; + /** + !#zh 求两向量的欧氏距离 + !#en Seeking two vectors Euclidean distance + */ + static distance (a: Out, b: Out): number; + /** + !#zh 求两向量的欧氏距离平方 + !#en Euclidean distance squared seeking two vectors + */ + static squaredDistance (a: Out, b: Out): number; + /** + !#zh 求向量长度 + !#en Seeking vector length + */ + static len (a: Out): number; + /** + !#zh 求向量长度平方 + !#en Seeking squared vector length + */ + static lengthSqr (a: Out): number; + /** + !#zh 逐元素向量取负 + !#en By taking the negative elements of the vector + */ + static negate (out: Out, a: Out): Out; + /** + !#zh 逐元素向量取倒数,接近 0 时返回 Infinity + !#en Element vector by taking the inverse, return near 0 Infinity + */ + static inverse (out: Out, a: Out): Out; + /** + !#zh 逐元素向量取倒数,接近 0 时返回 0 + !#en Element vector by taking the inverse, return near 0 0 + */ + static inverseSafe (out: Out, a: Out): Out; + /** + !#zh 归一化向量 + !#en Normalized vector + */ + static normalize (out: Out, a: Out): Out; + /** + !#zh 向量点积(数量积) + !#en Vector dot product (scalar product) + */ + static dot (a: Out, b: Out): number; + /** + !#zh 逐元素向量线性插值: A + t * (B - A) + !#en Vector element by element linear interpolation: A + t * (B - A) + */ + static lerp (out: Out, a: Out, b: Out, t: number): Out; + /** + !#zh 生成一个在单位球体上均匀分布的随机向量 + !#en Generates a uniformly distributed random vectors on the unit sphere + @param scale 生成的向量长度 + */ + static random (out: Out, scale?: number): Out; + /** + !#zh 向量矩阵乘法 + !#en Vector matrix multiplication + */ + static transformMat4 (out: Out, a: Out, mat: MatLike): Out; + /** + !#zh 向量仿射变换 + !#en Affine transformation vector + */ + static transformAffine(out: Out, v: VecLike, mat: MatLike): Out; + /** + !#zh 向量四元数乘法 + !#en Vector quaternion multiplication + */ + static transformQuat (out: Out, a: Out, q: QuatLike): Out; + /** + !#zh 向量等价判断 + !#en Equivalent vectors Analyzing + */ + static strictEquals (a: Out, b: Out): boolean; + /** + !#zh 排除浮点数误差的向量近似等价判断 + !#en Negative error vector floating point approximately equivalent Analyzing + */ + static equals (a: Out, b: Out, epsilon?: number): boolean; + /** + !#zh 向量转数组 + !#en Vector transfer array + @param ofs 数组起始偏移量 + */ + static toArray > (out: Out, v: IVec4Like, ofs?: number): Out; + /** + !#zh 数组转向量 + !#en Array steering amount + @param ofs 数组起始偏移量 + */ + static fromArray (out: Out, arr: IWritableArrayLike, ofs?: number): Out; + x: number; + y: number; + z: number; + w: number; + /** + !#en + Constructor + see {{#crossLink "cc/vec4:method"}}cc.v4{{/crossLink}} + !#zh + 构造函数,可查看 {{#crossLink "cc/vec4:method"}}cc.v4{{/crossLink}} + @param x x + @param y y + @param z z + @param w w + */ + constructor(x?: number, y?: number, z?: number, w?: number); + /** + !#en clone a Vec4 value + !#zh 克隆一个 Vec4 值 + */ + clone(): Vec4; + /** + !#en Set the current vector value with the given vector. + !#zh 用另一个向量设置当前的向量对象值。 + @param newValue !#en new value to set. !#zh 要设置的新值 + */ + set(newValue: Vec4): Vec4; + /** + !#en Check whether the vector equals another one + !#zh 当前的向量是否与指定的向量相等。 + @param other other + @param epsilon epsilon + */ + equals(other: Vec4, epsilon?: number): boolean; + /** + !#en Check whether the vector equals another one + !#zh 判断当前向量是否在误差范围内与指定分量的向量相等。 + @param x 相比较的向量的 x 分量。 + @param y 相比较的向量的 y 分量。 + @param z 相比较的向量的 z 分量。 + @param w 相比较的向量的 w 分量。 + @param epsilon 允许的误差,应为非负数。 + */ + equals4f(x: number, y: number, z: number, w: number, epsilon?: number): boolean; + /** + !#en Check whether strict equals other Vec4 + !#zh 判断当前向量是否与指定向量相等。两向量的各分量都分别相等时返回 `true`;否则返回 `false`。 + @param other 相比较的向量。 + */ + strictEquals(other: Vec4): boolean; + /** + !#en Check whether strict equals other Vec4 + !#zh 判断当前向量是否与指定分量的向量相等。两向量的各分量都分别相等时返回 `true`;否则返回 `false`。 + @param x 指定向量的 x 分量。 + @param y 指定向量的 y 分量。 + @param z 指定向量的 z 分量。 + @param w 指定向量的 w 分量。 + */ + strictEquals4f(x: number, y: number, z: number, w: number): boolean; + /** + !#en Calculate linear interpolation result between this vector and another one with given ratio + !#zh 根据指定的插值比率,从当前向量到目标向量之间做插值。 + @param to 目标向量。 + @param ratio 插值比率,范围为 [0,1]。 + */ + lerp(to: Vec4, ratio: number): Vec4; + /** + !#en Transform to string with vector informations + !#zh 返回当前向量的字符串表示。 + */ + toString(): string; + /** + !#en Clamp the vector between minInclusive and maxInclusive. + !#zh 设置当前向量的值,使其各个分量都处于指定的范围内。 + @param minInclusive 每个分量都代表了对应分量允许的最小值。 + @param maxInclusive 每个分量都代表了对应分量允许的最大值。 + */ + clampf(minInclusive: Vec4, maxInclusive: Vec4): Vec4; + /** + !#en Adds this vector. If you want to save result to another vector, use add() instead. + !#zh 向量加法。如果你想保存结果到另一个向量,使用 add() 代替。 + @param vector vector + */ + addSelf(vector: Vec4): Vec4; + /** + !#en Adds two vectors, and returns the new result. + !#zh 向量加法,并返回新结果。 + @param vector vector + @param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created + */ + add(vector: Vec4, out?: Vec4): Vec4; + /** + !#en Subtracts one vector from this, and returns the new result. + !#zh 向量减法,并返回新结果。 + @param vector vector + @param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created + */ + subtract(vector: Vec4, out?: Vec4): Vec4; + /** + !#en Multiplies this by a number. + !#zh 缩放当前向量。 + @param num num + */ + multiplyScalar(num: number): Vec4; + /** + !#en Multiplies two vectors. + !#zh 分量相乘。 + @param vector vector + */ + multiply(vector: Vec4): Vec4; + /** + !#en Divides by a number. + !#zh 向量除法。 + @param num num + */ + divide(num: number): Vec4; + /** + !#en Negates the components. + !#zh 向量取反 + */ + negate(): Vec4; + /** + !#en Dot product + !#zh 当前向量与指定向量进行点乘。 + @param vector vector + */ + dot(vector?: Vec4): number; + /** + !#en Cross product + !#zh 当前向量与指定向量进行叉乘。 + @param vector vector + @param out out + */ + cross(vector: Vec4, out?: Vec4): Vec4; + /** + !#en Returns the length of this vector. + !#zh 返回该向量的长度。 + + @example + ```js + var v = cc.v4(10, 10); + v.len(); // return 14.142135623730951; + ``` + */ + len(): number; + /** + !#en Returns the squared length of this vector. + !#zh 返回该向量的长度平方。 + */ + lengthSqr(): number; + /** + !#en Make the length of this vector to 1. + !#zh 向量归一化,让这个向量的长度为 1。 + */ + normalizeSelf(): Vec4; + /** + !#en + Returns this vector with a magnitude of 1.
+
+ Note that the current vector is unchanged and a new normalized vector is returned. If you want to normalize the current vector, use normalizeSelf function. + !#zh + 返回归一化后的向量。
+
+ 注意,当前向量不变,并返回一个新的归一化向量。如果你想来归一化当前向量,可使用 normalizeSelf 函数。 + @param out optional, the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created + */ + normalize(out?: Vec4): Vec4; + /** + Transforms the vec4 with a mat4. 4th vector component is implicitly '1' + @param m matrix to transform with + @param out the receiving vector, you can pass the same vec4 to save result to itself, if not provided, a new vec4 will be created + */ + transformMat4(m: Mat4, out?: Vec4): Vec4; + /** + Returns the maximum value in x, y, z, w. + */ + maxAxis(): number; + } + /** !#en The module provides utilities for working with file and directory paths + !#zh 用于处理文件与目录的路径的模块 */ + export class path { + /** + !#en Join strings to be a path. + !#zh 拼接字符串为 Path + + @example + ```js + ------------------------------ + cc.path.join("a", "b.png"); //-->"a/b.png" + cc.path.join("a", "b", "c.png"); //-->"a/b/c.png" + cc.path.join("a", "b"); //-->"a/b" + cc.path.join("a", "b", "/"); //-->"a/b/" + cc.path.join("a", "b/", "/"); //-->"a/b/" + + ``` + */ + static join(): string; + /** + !#en Get the ext name of a path including '.', like '.png'. + !#zh 返回 Path 的扩展名,包括 '.',例如 '.png'。 + @param pathStr pathStr + + @example + ```js + --------------------------- + cc.path.extname("a/b.png"); //-->".png" + cc.path.extname("a/b.png?a=1&b=2"); //-->".png" + cc.path.extname("a/b"); //-->null + cc.path.extname("a/b?a=1&b=2"); //-->null + + ``` + */ + static extname(pathStr: string): any; + /** + !#en Get the main name of a file name + !#zh 获取文件名的主名称 + @param fileName fileName + */ + static mainFileName(fileName: string): string; + /** + !#en Get the file name of a file path. + !#zh 获取文件路径的文件名。 + @param pathStr pathStr + @param extname extname + + @example + ```js + --------------------------------- + cc.path.basename("a/b.png"); //-->"b.png" + cc.path.basename("a/b.png?a=1&b=2"); //-->"b.png" + cc.path.basename("a/b.png", ".png"); //-->"b" + cc.path.basename("a/b.png?a=1&b=2", ".png"); //-->"b" + cc.path.basename("a/b.png", ".txt"); //-->"b.png" + + ``` + */ + static basename(pathStr: string, extname?: string): any; + /** + !#en Get dirname of a file path. + !#zh 获取文件路径的目录名。 + @param pathStr pathStr + + @example + ```js + --------------------------------- + * unix + cc.path.driname("a/b/c.png"); //-->"a/b" + cc.path.driname("a/b/c.png?a=1&b=2"); //-->"a/b" + cc.path.dirname("a/b/"); //-->"a/b" + cc.path.dirname("c.png"); //-->"" + * windows + cc.path.driname("a\\b\\c.png"); //-->"a\b" + cc.path.driname("a\\b\\c.png?a=1&b=2"); //-->"a\b" + + ``` + */ + static dirname(pathStr: string): any; + /** + !#en Change extname of a file path. + !#zh 更改文件路径的扩展名。 + @param pathStr pathStr + @param extname extname + + @example + ```js + --------------------------------- + cc.path.changeExtname("a/b.png", ".plist"); //-->"a/b.plist" + cc.path.changeExtname("a/b.png?a=1&b=2", ".plist"); //-->"a/b.plist?a=1&b=2" + + ``` + */ + static changeExtname(pathStr: string, extname?: string): string; + } + /** !#en + AffineTransform class represent an affine transform matrix. It's composed basically by translation, rotation, scale transformations.
+ !#zh + AffineTransform 类代表一个仿射变换矩阵。它基本上是由平移旋转,缩放转变所组成。
*/ + export class AffineTransform { + /** + !#en Create a AffineTransform object with all contents in the matrix. + !#zh 用在矩阵中的所有内容创建一个 AffineTransform 对象。 + @param a a + @param b b + @param c c + @param d d + @param tx tx + @param ty ty + */ + static create(a: number, b: number, c: number, d: number, tx: number, ty: number): AffineTransform; + /** + !#en + Create a identity transformation matrix:
+ [ 1, 0, 0,
+ 0, 1, 0 ] + !#zh + 单位矩阵:
+ [ 1, 0, 0,
+ 0, 1, 0 ] + */ + static identity(): AffineTransform; + /** + !#en Clone a AffineTransform object from the specified transform. + !#zh 克隆指定的 AffineTransform 对象。 + @param t t + */ + static clone(t: AffineTransform): AffineTransform; + /** + !#en + Concatenate a transform matrix to another + The results are reflected in the out affine transform + out = t1 * t2 + This function is memory free, you should create the output affine transform by yourself and manage its memory. + !#zh + 拼接两个矩阵,将结果保存到 out 矩阵。这个函数不创建任何内存,你需要先创建 AffineTransform 对象用来存储结果,并作为第一个参数传入函数。 + out = t1 * t2 + @param out Out object to store the concat result + @param t1 The first transform object. + @param t2 The transform object to concatenate. + */ + static concat(out: AffineTransform, t1: AffineTransform, t2: AffineTransform): AffineTransform; + /** + !#en Get the invert transform of an AffineTransform object. + This function is memory free, you should create the output affine transform by yourself and manage its memory. + !#zh 求逆矩阵。这个函数不创建任何内存,你需要先创建 AffineTransform 对象用来存储结果,并作为第一个参数传入函数。 + @param out out + @param t t + */ + static invert(out: AffineTransform, t: AffineTransform): AffineTransform; + /** + !#en Get an AffineTransform object from a given matrix 4x4. + This function is memory free, you should create the output affine transform by yourself and manage its memory. + !#zh 从一个 4x4 Matrix 获取 AffineTransform 对象。这个函数不创建任何内存,你需要先创建 AffineTransform 对象用来存储结果,并作为第一个参数传入函数。 + @param out out + @param mat mat + */ + static invert(out: AffineTransform, mat: Mat4): AffineTransform; + /** + !#en Apply the affine transformation on a point. + This function is memory free, you should create the output Vec2 by yourself and manage its memory. + !#zh 对一个点应用矩阵变换。这个函数不创建任何内存,你需要先创建一个 Vec2 对象用来存储结果,并作为第一个参数传入函数。 + @param out The output point to store the result + @param point Point to apply transform or x. + @param transOrY transform matrix or y. + @param t transform matrix. + */ + static transformVec2(out: Vec2, point: Vec2|number, transOrY: AffineTransform|number, t?: AffineTransform): Vec2; + /** + !#en Apply the affine transformation on a size. + This function is memory free, you should create the output Size by yourself and manage its memory. + !#zh 应用仿射变换矩阵到 Size 上。这个函数不创建任何内存,你需要先创建一个 Size 对象用来存储结果,并作为第一个参数传入函数。 + @param out The output point to store the result + @param size size + @param t t + */ + static transformSize(out: Size, size: Size, t: AffineTransform): Size; + /** + !#en Apply the affine transformation on a rect. + This function is memory free, you should create the output Rect by yourself and manage its memory. + !#zh 应用仿射变换矩阵到 Rect 上。这个函数不创建任何内存,你需要先创建一个 Rect 对象用来存储结果,并作为第一个参数传入函数。 + @param out out + @param rect rect + @param anAffineTransform anAffineTransform + */ + static transformRect(out: Rect, rect: Rect, anAffineTransform: AffineTransform): Rect; + /** + !#en Apply the affine transformation on a rect, and truns to an Oriented Bounding Box. + This function is memory free, you should create the output vectors by yourself and manage their memory. + !#zh 应用仿射变换矩阵到 Rect 上, 并转换为有向包围盒。这个函数不创建任何内存,你需要先创建包围盒的四个 Vector 对象用来存储结果,并作为前四个参数传入函数。 + @param out_bl out_bl + @param out_tl out_tl + @param out_tr out_tr + @param out_br out_br + @param rect rect + @param anAffineTransform anAffineTransform + */ + static transformObb(out_bl: Vec2, out_tl: Vec2, out_tr: Vec2, out_br: Vec2, rect: Rect, anAffineTransform: AffineTransform): void; + } + /** A base node for CCNode, it will: + - maintain scene hierarchy and active logic + - notifications if some properties changed + - define some interfaces shares between CCNode + - define machanisms for Enity Component Systems + - define prefab and serialize functions */ + export class _BaseNode extends Object implements EventTarget { + /** !#en Name of node. + !#zh 该节点名称。 */ + name: string; + /** !#en The uuid for editor, will be stripped before building project. + !#zh 主要用于编辑器的 uuid,在编辑器下可用于持久化存储,在项目构建之后将变成自增的 id。 */ + uuid: string; + /** !#en All children nodes. + !#zh 节点的所有子节点。 */ + children: Node[]; + /** !#en All children nodes. + !#zh 节点的子节点数量。 */ + childrenCount: number; + /** !#en + The local active state of this node.
+ Note that a Node may be inactive because a parent is not active, even if this returns true.
+ Use {{#crossLink "Node/activeInHierarchy:property"}}{{/crossLink}} if you want to check if the Node is actually treated as active in the scene. + !#zh + 当前节点的自身激活状态。
+ 值得注意的是,一个节点的父节点如果不被激活,那么即使它自身设为激活,它仍然无法激活。
+ 如果你想检查节点在场景中实际的激活状态可以使用 {{#crossLink "Node/activeInHierarchy:property"}}{{/crossLink}}。 */ + active: boolean; + /** !#en Indicates whether this node is active in the scene. + !#zh 表示此节点是否在场景中激活。 */ + activeInHierarchy: boolean; + /** + + @param name name + */ + constructor(name?: string); + /** !#en The parent of the node. + !#zh 该节点的父节点。 */ + parent: Node; + /** + !#en Get parent of the node. + !#zh 获取该节点的父节点。 + + @example + ```js + var parent = this.node.getParent(); + ``` + */ + getParent(): Node; + /** + !#en Set parent of the node. + !#zh 设置该节点的父节点。 + @param value value + + @example + ```js + node.setParent(newNode); + ``` + */ + setParent(value: Node): void; + /** + !#en + Properties configuration function
+ All properties in attrs will be set to the node,
+ when the setter of the node is available,
+ the property will be set via setter function.
+ !#zh 属性配置函数。在 attrs 的所有属性将被设置为节点属性。 + @param attrs Properties to be set to node + + @example + ```js + var attrs = { key: 0, num: 100 }; + node.attr(attrs); + ``` + */ + attr(attrs: any): void; + /** + !#en Returns a child from the container given its uuid. + !#zh 通过 uuid 获取节点的子节点。 + @param uuid The uuid to find the child node. + + @example + ```js + var child = node.getChildByUuid(uuid); + ``` + */ + getChildByUuid(uuid: string): Node; + /** + !#en Returns a child from the container given its name. + !#zh 通过名称获取节点的子节点。 + @param name A name to find the child node. + + @example + ```js + var child = node.getChildByName("Test Node"); + ``` + */ + getChildByName(name: string): Node; + /** + !#en + Inserts a child to the node at a specified index. + !#zh + 插入子节点到指定位置 + @param child the child node to be inserted + @param siblingIndex the sibling index to place the child in + + @example + ```js + node.insertChild(child, 2); + ``` + */ + insertChild(child: Node, siblingIndex: number): void; + /** + !#en Get the sibling index. + !#zh 获取同级索引。 + + @example + ```js + var index = node.getSiblingIndex(); + ``` + */ + getSiblingIndex(): number; + /** + !#en Set the sibling index of this node. + !#zh 设置节点同级索引。 + @param index index + + @example + ```js + node.setSiblingIndex(1); + ``` + */ + setSiblingIndex(index: number): void; + /** + !#en Walk though the sub children tree of the current node. + Each node, including the current node, in the sub tree will be visited two times, before all children and after all children. + This function call is not recursive, it's based on stack. + Please don't walk any other node inside the walk process. + !#zh 遍历该节点的子树里的所有节点并按规则执行回调函数。 + 对子树中的所有节点,包含当前节点,会执行两次回调,prefunc 会在访问它的子节点之前调用,postfunc 会在访问所有子节点之后调用。 + 这个函数的实现不是基于递归的,而是基于栈展开递归的方式。 + 请不要在 walk 过程中对任何其他的节点嵌套执行 walk。 + @param prefunc The callback to process node when reach the node for the first time + @param postfunc The callback to process node when re-visit the node after walked all children in its sub tree + + @example + ```js + node.walk(function (target) { + console.log('Walked through node ' + target.name + ' for the first time'); + }, function (target) { + console.log('Walked through node ' + target.name + ' after walked all children in its sub tree'); + }); + ``` + */ + walk(prefunc: (target: _BaseNode) => void, postfunc: (target: _BaseNode) => void): void; + /** + !#en + Remove itself from its parent node. If cleanup is `true`, then also remove all events and actions.
+ If the cleanup parameter is not passed, it will force a cleanup, so it is recommended that you always pass in the `false` parameter when calling this API.
+ If the node orphan, then nothing happens. + !#zh + 从父节点中删除该节点。如果不传入 cleanup 参数或者传入 `true`,那么这个节点上所有绑定的事件、action 都会被删除。
+ 因此建议调用这个 API 时总是传入 `false` 参数。
+ 如果这个节点是一个孤节点,那么什么都不会发生。 + @param cleanup true if all actions and callbacks on this node should be removed, false otherwise. + + @example + ```js + node.removeFromParent(); + node.removeFromParent(false); + ``` + */ + removeFromParent(cleanup?: boolean): void; + /** + !#en + Removes a child from the container. It will also cleanup all running actions depending on the cleanup parameter.

+ If the cleanup parameter is not passed, it will force a cleanup.
+ "remove" logic MUST only be on this method
+ If a class wants to extend the 'removeChild' behavior it only needs
+ to override this method. + !#zh + 移除节点中指定的子节点,是否需要清理所有正在运行的行为取决于 cleanup 参数。
+ 如果 cleanup 参数不传入,默认为 true 表示清理。
+ @param child The child node which will be removed. + @param cleanup true if all running actions and callbacks on the child node will be cleanup, false otherwise. + + @example + ```js + node.removeChild(newNode); + node.removeChild(newNode, false); + ``` + */ + removeChild(child: Node, cleanup?: boolean): void; + /** + !#en + Removes all children from the container and do a cleanup all running actions depending on the cleanup parameter.
+ If the cleanup parameter is not passed, it will force a cleanup. + !#zh + 移除节点所有的子节点,是否需要清理所有正在运行的行为取决于 cleanup 参数。
+ 如果 cleanup 参数不传入,默认为 true 表示清理。 + @param cleanup true if all running actions on all children nodes should be cleanup, false otherwise. + + @example + ```js + node.removeAllChildren(); + node.removeAllChildren(false); + ``` + */ + removeAllChildren(cleanup?: boolean): void; + /** + !#en Is this node a child of the given node? + !#zh 是否是指定节点的子节点? + @param parent parent + + @example + ```js + node.isChildOf(newNode); + ``` + */ + isChildOf(parent: Node): boolean; + /** + !#en + Returns the component of supplied type if the node has one attached, null if it doesn't.
+ You can also get component in the node by passing in the name of the script. + !#zh + 获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。
+ 传入参数也可以是脚本的名称。 + @param typeOrClassName typeOrClassName + + @example + ```js + // get sprite component + var sprite = node.getComponent(cc.Sprite); + // get custom test class + var test = node.getComponent("Test"); + ``` + */ + getComponent(type: {prototype: T}): T; + getComponent(className: string): any; + /** + !#en Returns all components of supplied type in the node. + !#zh 返回节点上指定类型的所有组件。 + @param typeOrClassName typeOrClassName + + @example + ```js + var sprites = node.getComponents(cc.Sprite); + var tests = node.getComponents("Test"); + ``` + */ + getComponents(type: {prototype: T}): T[]; + getComponents(className: string): any[]; + /** + !#en Returns the component of supplied type in any of its children using depth first search. + !#zh 递归查找所有子节点中第一个匹配指定类型的组件。 + @param typeOrClassName typeOrClassName + + @example + ```js + var sprite = node.getComponentInChildren(cc.Sprite); + var Test = node.getComponentInChildren("Test"); + ``` + */ + getComponentInChildren(type: {prototype: T}): T; + getComponentInChildren(className: string): any; + /** + !#en Returns all components of supplied type in self or any of its children. + !#zh 递归查找自身或所有子节点中指定类型的组件 + @param typeOrClassName typeOrClassName + + @example + ```js + var sprites = node.getComponentsInChildren(cc.Sprite); + var tests = node.getComponentsInChildren("Test"); + ``` + */ + getComponentsInChildren(type: {prototype: T}): T[]; + getComponentsInChildren(className: string): any[]; + /** + !#en Adds a component class to the node. You can also add component to node by passing in the name of the script. + !#zh 向节点添加一个指定类型的组件类,你还可以通过传入脚本的名称来添加组件。 + @param typeOrClassName The constructor or the class name of the component to add + + @example + ```js + var sprite = node.addComponent(cc.Sprite); + var test = node.addComponent("Test"); + ``` + */ + addComponent(type: {new(): T}): T; + addComponent(className: string): any; + /** + !#en + Removes a component identified by the given name or removes the component object given. + You can also use component.destroy() if you already have the reference. + !#zh + 删除节点上的指定组件,传入参数可以是一个组件构造函数或组件名,也可以是已经获得的组件引用。 + 如果你已经获得组件引用,你也可以直接调用 component.destroy() + @param component The need remove component. + + @example + ```js + node.removeComponent(cc.Sprite); + var Test = require("Test"); + node.removeComponent(Test); + ``` + */ + removeComponent(component: string|Function|Component): void; + /** + !#en + Destroy all children from the node, and release all their own references to other objects.
+ Actual destruct operation will delayed until before rendering. + !#zh + 销毁所有子节点,并释放所有它们对其它对象的引用。
+ 实际销毁操作会延迟到当前帧渲染前执行。 + + @example + ```js + node.destroyAllChildren(); + ``` + */ + destroyAllChildren(): void; + /** + !#en Checks whether the EventTarget object has any callback registered for a specific type of event. + !#zh 检查事件目标对象是否有为特定类型的事件注册的回调。 + @param type The type of event. + */ + hasEventListener(type: string): boolean; + /** + !#en + Register an callback of a specific event type on the EventTarget. + This type of event should be triggered via `emit`. + !#zh + 注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, node); + ``` + */ + on(type: string, callback: T, target?: any, useCapture?: boolean): T; + /** + !#en + Removes the listeners previously registered with the same type, callback, target and or useCapture, + if only type is passed as parameter, all listeners registered with that type will be removed. + !#zh + 删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。 + @param type A string representing the event type being removed. + @param callback The callback to remove. + @param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed + + @example + ```js + // register fire eventListener + var callback = eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, target); + // remove fire event listener + eventTarget.off('fire', callback, target); + // remove all fire event listeners + eventTarget.off('fire'); + ``` + */ + off(type: string, callback?: Function, target?: any): void; + /** + !#en Removes all callbacks previously registered with the same target (passed as parameter). + This is not for removing all listeners in the current event target, + and this is not for removing all listeners the target parameter have registered. + It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter. + !#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。 + 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。 + 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。 + @param target The target to be searched for all related listeners + */ + targetOff(target: any): void; + /** + !#en + Register an callback of a specific event type on the EventTarget, + the callback will remove itself after the first time it is triggered. + !#zh + 注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。 + @param type A string representing the event type to listen for. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null + + @example + ```js + eventTarget.once('fire', function () { + cc.log("this is the callback and will be invoked only once"); + }, node); + ``` + */ + once(type: string, callback: (arg1?: any, arg2?: any, arg3?: any, arg4?: any, arg5?: any) => void, target?: any): void; + /** + !#en + Send an event with the event object. + !#zh + 通过事件对象派发事件 + @param event event + */ + dispatchEvent(event: Event): void; + /** + !#en + Destroy all callbackInfos. + !#zh + 销毁记录的事件 + */ + clear(): void; + } + /** !#en + Helper class for setting material blend function. + !#zh + 设置材质混合模式的辅助类。 */ + export class BlendFunc { + /** !#en specify the source Blend Factor, this will generate a custom material object, please pay attention to the memory cost. + !#zh 指定原图的混合模式,这会克隆一个新的材质对象,注意这带来的开销 */ + srcBlendFactor: macro.BlendFactor; + /** !#en specify the destination Blend Factor. + !#zh 指定目标的混合模式 */ + dstBlendFactor: macro.BlendFactor; + } + /** An internal helper class for switching render component's material between normal sprite material and gray sprite material. */ + export class GraySpriteState { + /** !#en The normal material. + !#zh 正常状态的材质。 */ + normalMaterial: Material; + /** !#en The gray material. + !#zh 置灰状态的材质。 */ + grayMaterial: Material; + } + /** misc utilities */ + export class misc { + /** + !#en Clamp a value between from and to. + !#zh + 限定浮点数的最大最小值。
+ 数值大于 max_inclusive 则返回 max_inclusive。
+ 数值小于 min_inclusive 则返回 min_inclusive。
+ 否则返回自身。 + @param value value + @param min_inclusive min_inclusive + @param max_inclusive max_inclusive + + @example + ```js + var v1 = cc.misc.clampf(20, 0, 20); // 20; + var v2 = cc.misc.clampf(-1, 0, 20); // 0; + var v3 = cc.misc.clampf(10, 0, 20); // 10; + ``` + */ + static clampf(value: number, min_inclusive: number, max_inclusive: number): number; + /** + !#en Clamp a value between 0 and 1. + !#zh 限定浮点数的取值范围为 0 ~ 1 之间。 + @param value value + + @example + ```js + var v1 = cc.misc.clamp01(20); // 1; + var v2 = cc.misc.clamp01(-1); // 0; + var v3 = cc.misc.clamp01(0.5); // 0.5; + ``` + */ + static clamp01(value: number): number; + /** + Linear interpolation between 2 numbers, the ratio sets how much it is biased to each end + @param a number A + @param b number B + @param r ratio between 0 and 1 + + @example + ```js + ---- + lerp + cc.misc.lerp(2,10,0.5)//returns 6 + cc.misc.lerp(2,10,0.2)//returns 3.6 + + ``` + */ + static lerp(a: number, b: number, r: number): number; + /** + converts degrees to radians + @param angle angle + */ + static degreesToRadians(angle: number): number; + /** + converts radians to degrees + @param angle angle + */ + static radiansToDegrees(angle: number): number; + } + /** !#en The renderer object which provide access to render system APIs, + detailed APIs will be available progressively. + !#zh 提供基础渲染接口的渲染器对象,渲染层的基础接口将逐步开放给用户 */ + export class renderer { + /** !#en The render engine is available only after cc.game.EVENT_ENGINE_INITED event.
+ Normally it will be inited as the webgl render engine, but in wechat open context domain, + it will be inited as the canvas render engine. Canvas render engine is no longer available for other use case since v2.0. + !#zh 基础渲染引擎对象只在 cc.game.EVENT_ENGINE_INITED 事件触发后才可获取。
+ 大多数情况下,它都会是 WebGL 渲染引擎实例,但是在微信开放数据域当中,它会是 Canvas 渲染引擎实例。请注意,从 2.0 开始,我们在其他平台和环境下都废弃了 Canvas 渲染器。 */ + static renderEngine: any; + /** !#en The total draw call count in last rendered frame. + !#zh 上一次渲染帧所提交的渲染批次总数。 */ + static drawCalls: number; + } + /** !#en The burst of 3d particle. + !#zh 3D 粒子发射时的爆发个数 */ + export class Burst { + /** !#en Time between the start of the particle system and the trigger of this Brust + !#zh 粒子系统开始运行到触发此次 Brust 的时间 */ + time: number; + /** !#en Minimum number of emitted particles + !#zh 发射粒子的最小数量 */ + minCount: number; + /** !#en Maximum number of emitted particles + !#zh 发射粒子的最大数量 */ + maxCount: number; + /** !#en The number of times Burst was triggered. + !#zh Burst 的触发次数 */ + repeatCount: number; + /** !#en Interval of each trigger + !#zh 每次触发的间隔时间 */ + repeatInterval: number; + /** !#en Number of particles emitted + !#zh 发射的粒子的数量 */ + count: CurveRange; + } + /** !#en The animation curve of 3d particle. + !#zh 3D 粒子动画曲线 */ + export class AnimationCurve { + /** !#en Array of key value. + !#zh 关键值列表。 */ + keyFrames: Keyframe[]; + /** !#en Pre-wrap mode. + !#zh 前置循环模式。 */ + preWrapMode: WrapMode; + /** !#en Post-wrap mode. + !#zh 后置循环模式。 */ + postWrapMode: WrapMode; + } + /** !#en The ParticleSystem3D Component. + !#zh 3D 粒子组件 */ + export class ParticleSystem3D extends RenderComponent { + /** !#en The run time of particle. + !#zh 粒子系统运行时间 */ + duration: number; + /** !#en The maximum number of particles that a particle system can generate. + !#zh 粒子系统能生成的最大粒子数量 */ + capacity: number; + /** !#en Whether the particle system loops. + !#zh 粒子系统是否循环播放 */ + loop: boolean; + /** !#en Whether the particles start playing automatically after loaded. + !#zh 粒子系统加载后是否自动开始播放 */ + playOnAwake: boolean; + /** !#en When selected, the particle system will start playing after one round has been played (only effective when loop is enabled). + !#zh 选中之后,粒子系统会以已播放完一轮之后的状态开始播放(仅当循环播放启用时有效) */ + prewarm: boolean; + /** !#en The coordinate system in which the particle system is located.
+ World coordinates (does not change when the position of other objects changes)
+ Local coordinates (moving as the position of the parent node changes)
+ Custom coordinates (moving with the position of a custom node) + !#zh 选择粒子系统所在的坐标系
+ 世界坐标(不随其他物体位置改变而变换)
+ 局部坐标(跟随父节点位置改变而移动)
+ 自定坐标(跟随自定义节点的位置改变而移动) */ + simulationSpace: ParticleSystem3DAssembler.Space; + /** !#en Controlling the update speed of the entire particle system. + !#zh 控制整个粒子系统的更新速度。 */ + simulationSpeed: number; + /** !#en Delay particle emission time after particle system starts running. + !#zh 粒子系统开始运行后,延迟粒子发射的时间。 */ + startDelay: CurveRange; + /** !#en Particle life cycle。 + !#zh 粒子生命周期。 */ + startLifetime: CurveRange; + /** !#en Particle initial color + !#zh 粒子初始颜色 */ + startColor: GradientRange; + /** !#en Particle scale space + !#zh 缩放空间 */ + scaleSpace: ParticleSystem3DAssembler.Space; + /** !#en Initial particle size + !#zh 粒子初始大小 */ + startSize: CurveRange; + /** !#en Initial particle speed + !#zh 粒子初始速度 */ + startSpeed: CurveRange; + /** !#en Particle initial rotation angle + !#zh 粒子初始旋转角度 */ + startRotation: CurveRange; + /** !#en Gravity coefficient of particles affected by gravity + !#zh 粒子受重力影响的重力系数 */ + gravityModifier: CurveRange; + /** !#en Particles emitted per second + !#zh 每秒发射的粒子数 */ + rateOverTime: CurveRange; + /** !#en Number of particles emitted per unit distance moved + !#zh 每移动单位距离发射的粒子数 */ + rateOverDistance: CurveRange; + /** !#en The number of Brusts that emit a specified number of particles at a specified time + !#zh 设定在指定时间发射指定数量的粒子的 Brust 的数量 */ + bursts: Burst[]; + /** !#en Particle emitter module + !#zh 粒子发射器模块 */ + shapeModule: ShapeModule; + /** !#en Color control module + !#zh 颜色控制模块 */ + colorOverLifetimeModule: ColorOverLifetimeModule; + /** !#en Particle size module + !#zh 粒子大小模块 */ + sizeOvertimeModule: SizeOvertimeModule; + /** !#en Particle speed module + !#zh 粒子速度模块 */ + velocityOvertimeModule: VelocityOvertimeModule; + /** !#en Particle acceleration module + !#zh 粒子加速度模块 */ + forceOvertimeModule: ForceOvertimeModule; + /** !#en Particle limit speed module (only CPU particles are supported) + !#zh 粒子限制速度模块(只支持 CPU 粒子) */ + limitVelocityOvertimeModule: LimitVelocityOvertimeModule; + /** !#en Particle rotation module + !#zh 粒子旋转模块 */ + rotationOvertimeModule: RotationOvertimeModule; + /** !#en Texture Animation Module + !#zh 贴图动画模块 */ + textureAnimationModule: TextureAnimationModule; + /** !#en Particle Trajectory Module + !#zh 粒子轨迹模块 */ + trailModule: TrailModule; + /** !#en Particle generation mode + !#zh 设定粒子生成模式 */ + renderMode: ParticleSystem3DAssembler.RenderMode; + /** !#en When the particle generation mode is StrecthedBillboard, in the direction of movement of the particles is stretched by velocity magnitude + !#zh 在粒子生成方式为 StrecthedBillboard 时,对粒子在运动方向上按速度大小进行拉伸 */ + velocityScale: number; + /** !#en When the particle generation method is StrecthedBillboard, the particles are stretched according to the particle size in the direction of motion + !#zh 在粒子生成方式为 StrecthedBillboard 时,对粒子在运动方向上按粒子大小进行拉伸 */ + lengthScale: number; + /** !#en Particle model + !#zh 粒子模型 */ + mesh: Mesh; + /** !#en Particle material + !#zh 粒子材质 */ + particleMaterial: Material; + /** !#en Particle trail material + !#zh 粒子轨迹材质 */ + trailMaterial: Material; + /** + !#en Playing particle effects + !#zh 播放粒子效果 + */ + play(): void; + /** + !#en Pause particle effect + !#zh 暂停播放粒子效果 + */ + pause(): void; + /** + !#en Stop particle effect + !#zh 停止播放粒子效果 + */ + stop(): void; + /** + !#en Remove all particle effect + !#zh 将所有粒子从粒子系统中清除 + */ + clear(): void; + } + /** !#en + Helper class for ES5 Map. + !#zh + ES5 Map 辅助类。 */ + export class MapUtils { + } + /** !#en . + !#zh 。 */ + export class SkeletonAnimation extends Animation { + } + /** !#en + Skinned Mesh Renderer + !#zh + 蒙皮渲染组件 */ + export class SkinnedMeshRenderer extends MeshRenderer { + /** !#en + Skeleton Asset + !#zh + 骨骼资源 */ + skeleton: sp.Skeleton; + /** !#en + Root Bone + !#zh + 骨骼根节点 */ + rootBone: Node; + } + /** !#en SkeletonAnimationClip Asset. + !#zh 骨骼动画剪辑。 */ + export class SkeletonAnimationClip extends AnimationClip { + } + /** !#en Effect Asset. + !#zh Effect 资源类型。 */ + export class EffectAsset extends Asset { + } + /** !#en Material Asset. + !#zh 材质资源类。 */ + export class Material extends Asset { + /** + !#en Get built-in materials + !#zh 获取内置材质 + @param name name + */ + static getBuiltinMaterial(name: string): Material; + /** + !#en Creates a Material with builtin Effect. + !#zh 使用内建 Effect 创建一个材质。 + @param effectName effectName + @param techniqueIndex techniqueIndex + */ + static createWithBuiltin(effectName: string, techniqueIndex?: number): Material; + /** + !#en Creates a Material. + !#zh 创建一个材质。 + @param effectAsset effectAsset + @param techniqueIndex techniqueIndex + */ + static create(effectAsset: EffectAsset, techniqueIndex?: number): Material; + /** + !#en Sets the Material property + !#zh 设置材质的属性 + @param name name + @param val val + @param passIdx passIdx + @param directly directly + */ + setProperty(name: string, val: any, passIdx?: number, directly?: boolean): void; + /** + !#en Gets the Material property. + !#zh 获取材质的属性。 + @param name name + @param passIdx passIdx + */ + getProperty(name: string, passIdx: number): any; + /** + !#en Sets the Material define. + !#zh 设置材质的宏定义。 + @param name name + @param val val + @param passIdx passIdx + @param force force + */ + define(name: string, val: boolean|number, passIdx?: number, force?: boolean): void; + /** + !#en Gets the Material define. + !#zh 获取材质的宏定义。 + @param name name + @param passIdx passIdx + */ + getDefine(name: string, passIdx?: number): boolean; + /** + !#en Sets the Material cull mode. + !#zh 设置材质的裁减模式。 + @param cullMode cullMode + @param passIdx passIdx + */ + setCullMode(cullMode: number, passIdx: number): void; + /** + !#en Sets the Material depth states. + !#zh 设置材质的深度渲染状态。 + @param depthTest depthTest + @param depthWrite depthWrite + @param depthFunc depthFunc + @param passIdx passIdx + */ + setDepth(depthTest: boolean, depthWrite: boolean, depthFunc: number, passIdx: number): void; + /** + !#en Sets the Material blend states. + !#zh 设置材质的混合渲染状态。 + @param enabled enabled + @param blendEq blendEq + @param blendSrc blendSrc + @param blendDst blendDst + @param blendAlphaEq blendAlphaEq + @param blendSrcAlpha blendSrcAlpha + @param blendDstAlpha blendDstAlpha + @param blendColor blendColor + @param passIdx passIdx + */ + setBlend(enabled: boolean, blendEq: number, blendSrc: number, blendDst: number, blendAlphaEq: number, blendSrcAlpha: number, blendDstAlpha: number, blendColor: number, passIdx: number): void; + /** + !#en Sets whether enable the stencil test. + !#zh 设置是否开启模板测试。 + @param stencilTest stencilTest + @param passIdx passIdx + */ + setStencilEnabled(stencilTest: number, passIdx: number): void; + /** + !#en Sets the Material stencil render states. + !#zh 设置材质的模板测试渲染参数。 + @param stencilTest stencilTest + @param stencilFunc stencilFunc + @param stencilRef stencilRef + @param stencilMask stencilMask + @param stencilFailOp stencilFailOp + @param stencilZFailOp stencilZFailOp + @param stencilZPassOp stencilZPassOp + @param stencilWriteMask stencilWriteMask + @param passIdx passIdx + */ + setStencil(stencilTest: number, stencilFunc: number, stencilRef: number, stencilMask: number, stencilFailOp: number, stencilZFailOp: number, stencilZPassOp: number, stencilWriteMask: number, passIdx: number): void; + } + /** !#en + Material Variant is an extension of the Material Asset. + Changes to Material Variant do not affect other Material Variant or Material Asset, + and changes to Material Asset are synchronized to the Material Variant. + However, when a Material Variant had already modifies a state, the Material Asset state is not synchronized to the Material Variant. + !#zh + 材质变体是材质资源的一个延伸。 + 材质变体的修改不会影响到其他的材质变体或者材质资源,而材质资源的修改会同步体现到材质变体上, + 但是当材质变体对一个状态修改后,材质资源再对这个状态修改是不会同步到材质变体上的。 */ + export class MaterialVariant extends Material { + /** + + @param materialName materialName + @param owner owner + */ + static createWithBuiltin (materialName: string, owner: cc.RenderComponent): MaterialVariant | null; + /** + + @param material material + @param owner owner + */ + static create (material: Material, owner: cc.RenderComponent): MaterialVariant | null; + } + /** !#en cc.EditBox is a component for inputing text, you can use it to gather small amounts of text from users. + !#zh EditBox 组件,用于获取用户的输入文本。 */ + export class EditBox extends Component { + /** !#en Input string of EditBox. + !#zh 输入框的初始输入内容,如果为空则会显示占位符的文本。 */ + string: string; + /** !#en The Label component attached to the node for EditBox's input text label + !#zh 输入框输入文本节点上挂载的 Label 组件对象 */ + textLabel: Label; + /** !#en The Label component attached to the node for EditBox's placeholder text label + !#zh 输入框占位符节点上挂载的 Label 组件对象 */ + placeholderLabel: Label; + /** !#en The Sprite component attached to the node for EditBox's background + !#zh 输入框背景节点上挂载的 Sprite 组件对象 */ + background: Sprite; + /** !#en The background image of EditBox. This property will be removed in the future, use editBox.background instead please. + !#zh 输入框的背景图片。 该属性会在将来的版本中移除,请用 editBox.background */ + backgroundImage: SpriteFrame; + /** !#en + The return key type of EditBox. + Note: it is meaningless for web platforms and desktop platforms. + !#zh + 指定移动设备上面回车按钮的样式。 + 注意:这个选项对 web 平台与 desktop 平台无效。 */ + returnType: EditBox.KeyboardReturnType; + /** !#en Set the input flags that are to be applied to the EditBox. + !#zh 指定输入标志位,可以指定输入方式为密码或者单词首字母大写。 */ + inputFlag: EditBox.InputFlag; + /** !#en + Set the input mode of the edit box. + If you pass ANY, it will create a multiline EditBox. + !#zh + 指定输入模式: ANY表示多行输入,其它都是单行输入,移动平台上还可以指定键盘样式。 */ + inputMode: EditBox.InputMode; + /** !#en Font size of the input text. This property will be removed in the future, use editBox.textLabel.fontSize instead please. + !#zh 输入框文本的字体大小。 该属性会在将来的版本中移除,请使用 editBox.textLabel.fontSize。 */ + fontSize: number; + /** !#en Change the lineHeight of displayed text. This property will be removed in the future, use editBox.textLabel.lineHeight instead. + !#zh 输入框文本的行高。该属性会在将来的版本中移除,请使用 editBox.textLabel.lineHeight */ + lineHeight: number; + /** !#en Font color of the input text. This property will be removed in the future, use editBox.textLabel.node.color instead. + !#zh 输入框文本的颜色。该属性会在将来的版本中移除,请使用 editBox.textLabel.node.color */ + fontColor: Color; + /** !#en The display text of placeholder. + !#zh 输入框占位符的文本内容。 */ + placeholder: string; + /** !#en The font size of placeholder. This property will be removed in the future, use editBox.placeholderLabel.fontSize instead. + !#zh 输入框占位符的字体大小。该属性会在将来的版本中移除,请使用 editBox.placeholderLabel.fontSize */ + placeholderFontSize: number; + /** !#en The font color of placeholder. This property will be removed in the future, use editBox.placeholderLabel.node.color instead. + !#zh 输入框占位符的字体颜色。该属性会在将来的版本中移除,请使用 editBox.placeholderLabel.node.color */ + placeholderFontColor: Color; + /** !#en The maximize input length of EditBox. + - If pass a value less than 0, it won't limit the input number of characters. + - If pass 0, it doesn't allow input any characters. + !#zh 输入框最大允许输入的字符个数。 + - 如果值为小于 0 的值,则不会限制输入字符个数。 + - 如果值为 0,则不允许用户进行任何输入。 */ + maxLength: number; + /** !#en The input is always visible and be on top of the game view (only useful on Web), this property will be removed on v2.1 + !zh 输入框总是可见,并且永远在游戏视图的上面(这个属性只有在 Web 上面修改有意义),该属性会在 v2.1 中移除 + Note: only available on Web at the moment. */ + stayOnTop: boolean; + /** !#en Set the tabIndex of the DOM input element (only useful on Web). + !#zh 修改 DOM 输入元素的 tabIndex(这个属性只有在 Web 上面修改有意义)。 */ + tabIndex: number; + /** !#en The event handler to be called when EditBox began to edit text. + !#zh 开始编辑文本输入框触发的事件回调。 */ + editingDidBegan: Component.EventHandler[]; + /** !#en The event handler to be called when EditBox text changes. + !#zh 编辑文本输入框时触发的事件回调。 */ + textChanged: Component.EventHandler[]; + /** !#en The event handler to be called when EditBox edit ends. + !#zh 结束编辑文本输入框时触发的事件回调。 */ + editingDidEnded: Component.EventHandler[]; + /** !#en The event handler to be called when return key is pressed. Windows is not supported. + !#zh 当用户按下回车按键时的事件回调,目前不支持 windows 平台 */ + editingReturn: Component.EventHandler[]; + /** + !#en Let the EditBox get focus, this method will be removed on v2.1 + !#zh 让当前 EditBox 获得焦点, 这个方法会在 v2.1 中移除 + */ + setFocus(): void; + /** + !#en Let the EditBox get focus + !#zh 让当前 EditBox 获得焦点 + */ + focus(): void; + /** + !#en Let the EditBox lose focus + !#zh 让当前 EditBox 失去焦点 + */ + blur(): void; + /** + !#en Determine whether EditBox is getting focus or not. + !#zh 判断 EditBox 是否获得了焦点 + */ + isFocused(): void; + /** + !#en if you don't need the EditBox and it isn't in any running Scene, you should + call the destroy method on this component or the associated node explicitly. + Otherwise, the created DOM element won't be removed from web page. + !#zh + 如果你不再使用 EditBox,并且组件未添加到场景中,那么你必须手动对组件或所在节点调用 destroy。 + 这样才能移除网页上的 DOM 节点,避免 Web 平台内存泄露。 + + @example + ```js + editbox.node.parent = null; // or editbox.node.removeFromParent(false); + // when you don't need editbox anymore + editbox.node.destroy(); + ``` + */ + destroy(): boolean; + } + /** undefined */ + export class PhysicsBoxCollider extends PhysicsCollider implements Collider.Box { + /** !#en Position offset + !#zh 位置偏移量 */ + offset: Vec2; + /** !#en Box size + !#zh 包围盒大小 */ + size: Size; + } + /** undefined */ + export class PhysicsChainCollider extends PolygonCollider { + /** !#en Whether the chain is loop + !#zh 链条是否首尾相连 */ + loop: boolean; + /** !#en Chain points + !#zh 链条顶点数组 */ + points: Vec2[]; + } + /** undefined */ + export class PhysicsCircleCollider extends PhysicsCollider implements Collider.Circle { + /** !#en Position offset + !#zh 位置偏移量 */ + offset: Vec2; + /** !#en Circle radius + !#zh 圆形半径 */ + radius: number; + } + /** undefined */ + export class PhysicsCollider extends Collider { + /** !#en + The density. + !#zh + 密度 */ + density: number; + /** !#en + A sensor collider collects contact information but never generates a collision response + !#zh + 一个传感器类型的碰撞体会产生碰撞回调,但是不会发生物理碰撞效果。 */ + sensor: boolean; + /** !#en + The friction coefficient, usually in the range [0,1]. + !#zh + 摩擦系数,取值一般在 [0, 1] 之间 */ + friction: number; + /** !#en + The restitution (elasticity) usually in the range [0,1]. + !#zh + 弹性系数,取值一般在 [0, 1]之间 */ + restitution: number; + /** !#en + Physics collider will find the rigidbody component on the node and set to this property. + !#zh + 碰撞体会在初始化时查找节点上是否存在刚体,如果查找成功则赋值到这个属性上。 */ + body: RigidBody; + /** + !#en + Apply current changes to collider, this will regenerate inner box2d fixtures. + !#zh + 应用当前 collider 中的修改,调用此函数会重新生成内部 box2d 的夹具。 + */ + apply(): void; + /** + !#en + Get the world aabb of the collider + !#zh + 获取碰撞体的世界坐标系下的包围盒 + */ + getAABB(): void; + } + /** undefined */ + export class PhysicsPolygonCollider extends PhysicsCollider implements Collider.Polygon { + /** !#en Position offset + !#zh 位置偏移量 */ + offset: Vec2; + /** !#en Polygon points + !#zh 多边形顶点数组 */ + points: Vec2[]; + } + /** !#en + A distance joint constrains two points on two bodies + to remain at a fixed distance from each other. You can view + this as a massless, rigid rod. + !#zh + 距离关节通过一个固定的长度来约束关节链接的两个刚体。你可以将它想象成一个无质量,坚固的木棍。 */ + export class DistanceJoint extends Joint { + /** !#en + The distance separating the two ends of the joint. + !#zh + 关节两端的距离 */ + distance: number; + /** !#en + The spring frequency. + !#zh + 弹性系数。 */ + frequency: number; + /** !#en + The damping ratio. + !#zh + 阻尼,表示关节变形后,恢复到初始状态受到的阻力。 */ + dampingRatio: number; + } + /** !#en + Base class for joints to connect rigidbody. + !#zh + 关节类的基类 */ + export class Joint extends Component { + /** !#en + The anchor of the rigidbody. + !#zh + 刚体的锚点。 */ + anchor: Vec2; + /** !#en + The anchor of the connected rigidbody. + !#zh + 关节另一端刚体的锚点。 */ + connectedAnchor: Vec2; + /** !#en + The rigidbody to which the other end of the joint is attached. + !#zh + 关节另一端链接的刚体 */ + connectedBody: RigidBody; + /** !#en + Should the two rigid bodies connected with this joint collide with each other? + !#zh + 链接到关节上的两个刚体是否应该相互碰撞? */ + collideConnected: boolean; + /** + !#en + Apply current changes to joint, this will regenerate inner box2d joint. + !#zh + 应用当前关节中的修改,调用此函数会重新生成内部 box2d 的关节。 + */ + apply(): void; + /** + !#en + Get the anchor point on rigidbody in world coordinates. + !#zh + 获取刚体世界坐标系下的锚点。 + */ + getWorldAnchor(): Vec2; + /** + !#en + Get the anchor point on connected rigidbody in world coordinates. + !#zh + 获取链接刚体世界坐标系下的锚点。 + */ + getWorldConnectedAnchor(): Vec2; + /** + !#en + Gets the reaction force of the joint. + !#zh + 获取关节的反作用力。 + @param timeStep The time to calculate the reaction force for. + */ + getReactionForce(timeStep: number): Vec2; + /** + !#en + Gets the reaction torque of the joint. + !#zh + 获取关节的反扭矩。 + @param timeStep The time to calculate the reaction torque for. + */ + getReactionTorque(timeStep: number): number; + } + /** !#en + A motor joint is used to control the relative motion + between two bodies. A typical usage is to control the movement + of a dynamic body with respect to the ground. + !#zh + 马达关节被用来控制两个刚体间的相对运动。 + 一个典型的例子是用来控制一个动态刚体相对于地面的运动。 */ + export class MotorJoint extends Joint { + /** !#en + The anchor of the rigidbody. + !#zh + 刚体的锚点。 */ + anchor: Vec2; + /** !#en + The anchor of the connected rigidbody. + !#zh + 关节另一端刚体的锚点。 */ + connectedAnchor: Vec2; + /** !#en + The linear offset from connected rigidbody to rigidbody. + !#zh + 关节另一端的刚体相对于起始端刚体的位置偏移量 */ + linearOffset: Vec2; + /** !#en + The angular offset from connected rigidbody to rigidbody. + !#zh + 关节另一端的刚体相对于起始端刚体的角度偏移量 */ + angularOffset: number; + /** !#en + The maximum force can be applied to rigidbody. + !#zh + 可以应用于刚体的最大的力值 */ + maxForce: number; + /** !#en + The maximum torque can be applied to rigidbody. + !#zh + 可以应用于刚体的最大扭矩值 */ + maxTorque: number; + /** !#en + The position correction factor in the range [0,1]. + !#zh + 位置矫正系数,范围为 [0, 1] */ + correctionFactor: number; + } + /** !#en + A mouse joint is used to make a point on a body track a + specified world point. This a soft constraint with a maximum + force. This allows the constraint to stretch and without + applying huge forces. + Mouse Joint will auto register the touch event with the mouse region node, + and move the choosed rigidbody in touch move event. + Note : generally mouse joint only used in test bed. + !#zh + 鼠标关节用于使刚体上的一个点追踪一个指定的世界坐标系下的位置。 + 鼠标关节可以指定一个最大的力来施加一个柔和的约束。 + 鼠标关节会自动使用 mouse region 节点来注册鼠标事件,并且在触摸移动事件中移动选中的刚体。 + 注意:一般鼠标关节只在测试环境中使用。 */ + export class MouseJoint extends Joint { + /** !#en + The anchor of the rigidbody. + !#zh + 刚体的锚点。 */ + anchor: Vec2; + /** !#en + The anchor of the connected rigidbody. + !#zh + 关节另一端刚体的锚点。 */ + connectedAnchor: Vec2; + /** !#en + The node used to register touch evnet. + If this is null, it will be the joint's node. + !#zh + 用于注册触摸事件的节点。 + 如果没有设置这个值,那么将会使用关节的节点来注册事件。 */ + mouseRegion: Node; + /** !#en + The target point. + The mouse joint will move choosed rigidbody to target point. + !#zh + 目标点,鼠标关节将会移动选中的刚体到指定的目标点 */ + target: Vec2; + /** !#en + The spring frequency. + !#zh + 弹簧系数。 */ + frequency: number; + /** !#en + The damping ratio. + !#zh + 阻尼,表示关节变形后,恢复到初始状态受到的阻力。 */ + 0: number; + /** !#en + The maximum force + !#zh + 最大阻力值 */ + maxForce: number; + } + /** !#en + A prismatic joint. This joint provides one degree of freedom: translation + along an axis fixed in rigidbody. Relative rotation is prevented. You can + use a joint limit to restrict the range of motion and a joint motor to + drive the motion or to model joint friction. + !#zh + 移动关节指定了只能在一个方向上移动刚体。 + 你可以开启关节限制来设置刚体运行移动的间距,也可以开启马达来使用关节马达驱动刚体的运行。 */ + export class PrismaticJoint extends Joint { + /** !#en + The local joint axis relative to rigidbody. + !#zh + 指定刚体可以移动的方向。 */ + localAxisA: Vec2; + /** !#en + The reference angle. + !#zh + 相对角度 */ + referenceAngle: number; + /** !#en + Enable joint distance limit? + !#zh + 是否开启关节的距离限制? */ + enableLimit: boolean; + /** !#en + Enable joint motor? + !#zh + 是否开启关节马达? */ + enableMotor: boolean; + /** !#en + The lower joint limit. + !#zh + 刚体能够移动的最小值 */ + lowerLimit: number; + /** !#en + The upper joint limit. + !#zh + 刚体能够移动的最大值 */ + upperLimit: number; + /** !#en + The maxium force can be applied to rigidbody to rearch the target motor speed. + !#zh + 可以施加到刚体的最大力。 */ + maxMotorForce: number; + /** !#en + The expected motor speed. + !#zh + 期望的马达速度。 */ + motorSpeed: number; + } + /** !#en + A rope joint enforces a maximum distance between two points + on two bodies. It has no other effect. + Warning: if you attempt to change the maximum length during + the simulation you will get some non-physical behavior. + !#zh + 绳子关节只指定两个刚体间的最大距离,没有其他的效果。 + 注意:如果你试图动态修改关节的长度,这有可能会得到一些意外的效果。 */ + export class RopeJoint extends Joint { + /** !#en + The max length. + !#zh + 最大长度。 */ + maxLength: number; + } + /** !#en + A revolute joint constrains two bodies to share a common point while they + are free to rotate about the point. The relative rotation about the shared + point is the joint angle. You can limit the relative rotation with + a joint limit that specifies a lower and upper angle. You can use a motor + to drive the relative rotation about the shared point. A maximum motor torque + is provided so that infinite forces are not generated. + !#zh + 旋转关节可以约束两个刚体围绕一个点来进行旋转。 + 你可以通过开启关节限制来限制旋转的最大角度和最小角度。 + 你可以通过开启马达来施加一个扭矩力来驱动这两个刚体在这一点上的相对速度。 */ + export class RevoluteJoint extends Joint { + /** !#en + The reference angle. + An angle between bodies considered to be zero for the joint angle. + !#zh + 相对角度。 + 两个物体之间角度为零时可以看作相等于关节角度 */ + referenceAngle: number; + /** !#en + The lower angle. + !#zh + 角度的最低限制。 */ + lowerAngle: number; + /** !#en + The upper angle. + !#zh + 角度的最高限制。 */ + upperAngle: number; + /** !#en + The maxium torque can be applied to rigidbody to rearch the target motor speed. + !#zh + 可以施加到刚体的最大扭矩。 */ + maxMotorTorque: number; + /** !#en + The expected motor speed. + !#zh + 期望的马达速度。 */ + motorSpeed: number; + /** !#en + Enable joint limit? + !#zh + 是否开启关节的限制? */ + enableLimit: boolean; + /** !#en + Enable joint motor? + !#zh + 是否开启关节马达? */ + enableMotor: boolean; + /** + !#en + Get the joint angle. + !#zh + 获取关节角度。 + */ + getJointAngle(): number; + } + /** !#en + A weld joint essentially glues two bodies together. A weld joint may + distort somewhat because the island constraint solver is approximate. + !#zh + 熔接关节相当于将两个刚体粘在了一起。 + 熔接关节可能会使某些东西失真,因为约束求解器算出的都是近似值。 */ + export class WeldJoint extends Joint { + /** !#en + The reference angle. + !#zh + 相对角度。 */ + referenceAngle: number; + /** !#en + The frequency. + !#zh + 弹性系数。 */ + frequency: number; + /** !#en + The damping ratio. + !#zh + 阻尼,表示关节变形后,恢复到初始状态受到的阻力。 */ + 0: number; + } + /** !#en + A wheel joint. This joint provides two degrees of freedom: translation + along an axis fixed in bodyA and rotation in the plane. You can use a joint motor to drive + the rotation or to model rotational friction. + This joint is designed for vehicle suspensions. + !#zh + 轮子关节提供两个维度的自由度:旋转和沿着指定方向上位置的移动。 + 你可以通过开启关节马达来使用马达驱动刚体的旋转。 + 轮组关节是专门为机动车类型设计的。 */ + export class WheelJoint extends Joint { + /** !#en + The local joint axis relative to rigidbody. + !#zh + 指定刚体可以移动的方向。 */ + localAxisA: Vec2; + /** !#en + The maxium torque can be applied to rigidbody to rearch the target motor speed. + !#zh + 可以施加到刚体的最大扭矩。 */ + maxMotorTorque: number; + /** !#en + The expected motor speed. + !#zh + 期望的马达速度。 */ + motorSpeed: number; + /** !#en + Enable joint motor? + !#zh + 是否开启关节马达? */ + enableMotor: boolean; + /** !#en + The spring frequency. + !#zh + 弹性系数。 */ + frequency: number; + /** !#en + The damping ratio. + !#zh + 阻尼,表示关节变形后,恢复到初始状态受到的阻力。 */ + dampingRatio: number; + } + /** !#en The color over time module of 3d particle. + !#zh 3D 粒子颜色变化模块 */ + export class ColorOvertimeModule { + /** !#en The enable of ColorOvertimeModule. + !#zh 是否启用 */ + enable: boolean; + } + /** !#en The curve range of target value. + !#zh 目标值的曲线范围 */ + export class CurveRange { + /** !#en Curve type. + !#zh 曲线类型。 */ + mode: debug.DebugMode; + /** !#en The curve to use when mode is Curve. + !#zh 当 mode 为 Curve 时,使用的曲线。 */ + curve: AnimationCurve; + /** !#en The lower limit of the curve to use when mode is TwoCurves + !#zh 当 mode 为 TwoCurves 时,使用的曲线下限。 */ + curveMin: AnimationCurve; + /** !#en The upper limit of the curve to use when mode is TwoCurves + !#zh 当 mode 为 TwoCurves 时,使用的曲线上限。 */ + curveMax: AnimationCurve; + /** !#en When mode is Constant, the value of the curve. + !#zh 当 mode 为 Constant 时,曲线的值。 */ + constant: number; + /** !#en The lower limit of the curve to use when mode is TwoConstants + !#zh 当 mode 为 TwoConstants 时,曲线的下限。 */ + constantMin: number; + /** !#en The upper limit of the curve to use when mode is TwoConstants + !#zh 当 mode 为 TwoConstants 时,曲线的上限。 */ + constantMax: number; + /** !#en Coefficients applied to curve interpolation. + !#zh 应用于曲线插值的系数。 */ + multiplier: number; + } + /** !#en The force over time module of 3d particle. + !#zh 3D 粒子的加速度模块 */ + export class ForceOvertimeModule { + /** !#en The enable of ColorOvertimeModule. + !#zh 是否启用 */ + enable: boolean; + /** !#en Coordinate system used in acceleration calculation. + !#zh 加速度计算时采用的坐标系。 */ + space: ParticleSystem3DAssembler.Space; + /** !#en X-axis acceleration component. + !#zh X 轴方向上的加速度分量。 */ + x: CurveRange; + /** !#en Y-axis acceleration component. + !#zh Y 轴方向上的加速度分量。 */ + y: CurveRange; + /** !#en Z-axis acceleration component. + !#zh Z 轴方向上的加速度分量。 */ + z: CurveRange; + } + /** !#en The gradient range of color. + !#zh 颜色值的渐变范围 */ + export class GradientRange { + /** !#en Gradient type. + !#zh 渐变色类型。 */ + mode: debug.DebugMode; + /** !#en The color when mode is Color. + !#zh 当 mode 为 Color 时的颜色。 */ + color: Color; + /** !#en Lower color limit when mode is TwoColors. + !#zh 当 mode 为 TwoColors 时的颜色下限。 */ + colorMin: Color; + /** !#en Upper color limit when mode is TwoColors. + !#zh 当 mode 为 TwoColors 时的颜色上限。 */ + colorMax: Color; + /** !#en Color gradient when mode is Gradient + !#zh 当 mode 为 Gradient 时的颜色渐变。 */ + gradient: Gradient; + /** !#en Lower color gradient limit when mode is TwoGradients. + !#zh 当 mode 为 TwoGradients 时的颜色渐变下限。 */ + gradientMin: Gradient; + /** !#en Upper color gradient limit when mode is TwoGradients. + !#zh 当 mode 为 TwoGradients 时的颜色渐变上限。 */ + gradientMax: Gradient; + } + /** !#en The color key of gradient. + !#zh color 关键帧 */ + export class ColorKey { + /** !#en Color value. + !#zh 颜色值。 */ + color: Color; + /** !#en Time value. + !#zh 时间值。 */ + time: number; + } + /** !#en The alpha key of gradient. + !#zh alpha 关键帧 */ + export class AlphaKey { + /** !#en Alpha value. + !#zh 透明度。 */ + alpha: number; + /** !#en Time. + !#zh 时间帧。 */ + time: number; + } + /** !#en The gradient data of color. + !#zh 颜色渐变数据 */ + export class Gradient { + /** !#en Array of color key. + !#zh 颜色关键帧列表。 */ + colorKeys: ColorKey[]; + /** !#en Array of alpha key. + !#zh 透明度关键帧列表。 */ + alphaKeys: AlphaKey[]; + /** !#en Blend mode. + !#zh 混合模式。 */ + mode: debug.DebugMode; + } + /** !#en The limit velocity module of 3d particle. + !#zh 3D 粒子的限速模块 */ + export class LimitVelocityOvertimeModule { + /** !#en The enable of LimitVelocityOvertimeModule. + !#zh 是否启用 */ + enable: boolean; + /** !#en The coordinate system used when calculating the lower speed limit. + !#zh 计算速度下限时采用的坐标系。 */ + space: ParticleSystem3DAssembler.Space; + /** !#en Whether to limit the three axes separately. + !#zh 是否三个轴分开限制。 */ + separateAxes: boolean; + /** !#en Lower speed limit + !#zh 速度下限。 */ + limit: CurveRange; + /** !#en Lower speed limit in X direction. + !#zh X 轴方向上的速度下限。 */ + limitX: CurveRange; + /** !#en Lower speed limit in Y direction. + !#zh Y 轴方向上的速度下限。 */ + limitY: CurveRange; + /** !#en Lower speed limit in Z direction. + !#zh Z 轴方向上的速度下限。 */ + limitZ: CurveRange; + /** !#en Interpolation of current speed and lower speed limit. + !#zh 当前速度与速度下限的插值。 */ + dampen: number; + } + /** !#en The optimized curve. + !#zh 优化曲线 */ + export class OptimizedCurve { + } + /** !#en The rotation module of 3d particle. + !#zh 3D 粒子的旋转模块 */ + export class RotationOvertimeModule { + /** !#en The enable of RotationOvertimeModule. + !#zh 是否启用 */ + enable: boolean; + /** !#en Whether to set the rotation of three axes separately (not currently supported) + !#zh 是否三个轴分开设定旋转(暂不支持)。 */ + separateAxes: boolean; + /** !#en Set rotation around X axis. + !#zh 绕 X 轴设定旋转。 */ + x: CurveRange; + /** !#en Set rotation around Y axis. + !#zh 绕 Y 轴设定旋转。 */ + y: CurveRange; + /** !#en Set rotation around Z axis. + !#zh 绕 Z 轴设定旋转。 */ + z: CurveRange; + } + /** !#en The size module of 3d particle. + !#zh 3D 粒子的大小模块 */ + export class SizeOvertimeModule { + /** !#en The enable of SizeOvertimeModule. + !#zh 是否启用 */ + enable: boolean; + /** !#en Decide whether to control particle size independently on each axis. + !#zh 决定是否在每个轴上独立控制粒子大小。 */ + separateAxes: boolean; + /** !#en Define a curve to determine the size change of particles during their life cycle. + !#zh 定义一条曲线来决定粒子在其生命周期中的大小变化。 */ + size: CurveRange; + /** !#en Defines a curve to determine the size change of particles in the X-axis direction during their life cycle. + !#zh 定义一条曲线来决定粒子在其生命周期中 X 轴方向上的大小变化。 */ + x: CurveRange; + /** !#en Defines a curve to determine the size change of particles in the Y-axis direction during their life cycle. + !#zh 定义一条曲线来决定粒子在其生命周期中 Y 轴方向上的大小变化。 */ + y: CurveRange; + /** !#en Defines a curve to determine the size change of particles in the Z-axis direction during their life cycle. + !#zh 定义一条曲线来决定粒子在其生命周期中 Z 轴方向上的大小变化。 */ + z: CurveRange; + } + /** !#en The texture animation module of 3d particle. + !#zh 3D 粒子的贴图动画模块 */ + export class TextureAnimationModule { + /** !#en The enable of TextureAnimationModule. + !#zh 是否启用 */ + enable: boolean; + /** !#en Set the type of particle map animation (only supports Grid mode for the time being) + !#zh 设定粒子贴图动画的类型(暂只支持 Grid 模式。 */ + mode: debug.DebugMode; + /** !#en Animation frames in X direction. + !#zh X 方向动画帧数。 */ + numTilesX: number; + /** !#en Animation frames in Y direction. + !#zh Y 方向动画帧数。 */ + numTilesY: number; + /** !#en The way of the animation plays. + !#zh 动画播放方式。 */ + animation: Animation; + /** !#en Randomly select a line from the animated map to generate the animation.
+ This option only takes effect when the animation playback mode is SingleRow. + !#zh 随机从动画贴图中选择一行以生成动画。
+ 此选项仅在动画播放方式为 SingleRow 时生效。 */ + randomRow: boolean; + /** !#en Select specific lines from the animation map to generate the animation.
+ This option is only available when the animation playback mode is SingleRow and randomRow is disabled. + !#zh 从动画贴图中选择特定行以生成动画。
+ 此选项仅在动画播放方式为 SingleRow 时且禁用 randomRow 时可用。 */ + rowIndex: number; + /** !#en Frame and time curve of animation playback in one cycle. + !#zh 一个周期内动画播放的帧与时间变化曲线。 */ + frameOverTime: CurveRange; + /** !#en Play from which frames, the time is the life cycle of the entire particle system. + !#zh 从第几帧开始播放,时间为整个粒子系统的生命周期。 */ + startFrame: CurveRange; + /** !#en Number of playback loops in a life cycle. + !#zh 一个生命周期内播放循环的次数。 */ + cycleCount: number; + } + /** !#en The velocity module of 3d particle. + !#zh 3D 粒子的速度模块 */ + export class VelocityOvertimeModule { + /** !#en The enable of VelocityOvertimeModule. + !#zh 是否启用 */ + enable: boolean; + /** !#en Coordinate system used in speed calculation. + !#zh 速度计算时采用的坐标系。 */ + space: ParticleSystem3DAssembler.Space; + /** !#en Velocity component in X axis direction + !#zh X 轴方向上的速度分量。 */ + x: CurveRange; + /** !#en Velocity component in Y axis direction + !#zh Y 轴方向上的速度分量。 */ + y: CurveRange; + /** !#en Velocity component in Z axis direction + !#zh Z 轴方向上的速度分量。 */ + z: CurveRange; + /** !#en Speed correction factor (only supports CPU particles). + !#zh 速度修正系数(只支持 CPU 粒子)。 */ + speedModifier: CurveRange; + } + /** !#en The shape module of 3d particle. + !#zh 3D 粒子的发射形状模块 */ + export class ShapeModule { + /** !#en The enable of shapeModule. + !#zh 是否启用 */ + enable: boolean; + /** !#en Particle emitter type. + !#zh 粒子发射器类型。 */ + shapeType: shapeModule.ShapeType; + /** !#en The emission site of the particle. + !#zh 粒子从发射器哪个部位发射。 */ + emitFrom: shapeModule.EmitLocation; + /** !#en Particle emitter radius. + !#zh 粒子发射器半径。 */ + radius: number; + /** !#en Particle emitter emission position (not valid for Box type emitters): + - 0 means emitted from the surface; + - 1 means launch from the center; + - 0 ~ 1 indicates emission from the center to the surface. + !#zh 粒子发射器发射位置(对 Box 类型的发射器无效): + - 0 表示从表面发射; + - 1 表示从中心发射; + - 0 ~ 1 之间表示在中心到表面之间发射。 */ + radiusThickness: number; + /** !#en The angle between the axis of the cone and the generatrix + Determines the opening and closing of the cone launcher + !#zh 圆锥的轴与母线的夹角。 + 决定圆锥发射器的开合程度。 */ + angle: number; + /** !#en Particle emitters emit in a fan-shaped range. + !#zh 粒子发射器在一个扇形范围内发射。 */ + arc: number; + /** !#en How particles are emitted in the sector range. + !#zh 粒子在扇形范围内的发射方式。 */ + arcMode: shapeModule.ArcMode; + /** !#en Controls the discrete intervals around the arcs where particles might be generated. + !#zh 控制可能产生粒子的弧周围的离散间隔。 */ + arcSpread: number; + /** !#en The speed at which particles are emitted around the circumference. + !#zh 粒子沿圆周发射的速度。 */ + arcSpeed: CurveRange; + /** !#en Axis length from top of cone to bottom of cone . + Determines the height of the cone emitter. + !#zh 圆锥顶部截面距离底部的轴长。 + 决定圆锥发射器的高度。 */ + length: number; + /** !#en Particle emitter emission location (for box-type particle emitters). + !#zh 粒子发射器发射位置(针对 Box 类型的粒子发射器。 */ + boxThickness: Vec3; + /** !#en Particle Emitter Position + !#zh 粒子发射器位置。 */ + position: Vec3; + /** !#en Particle emitter rotation angle. + !#zh 粒子发射器旋转角度。 */ + rotation: Vec3; + /** !#en Particle emitter scaling + !#zh 粒子发射器缩放比例。 */ + scale: Vec3; + /** !#en The direction of particle movement is determined based on the initial direction of the particles. + !#zh 根据粒子的初始方向决定粒子的移动方向。 */ + alignToDirection: boolean; + /** !#en Set particle generation direction randomly. + !#zh 粒子生成方向随机设定。 */ + randomDirectionAmount: number; + /** !#en Interpolation between the current emission direction and the direction from the current position to the center of the node. + !#zh 表示当前发射方向与当前位置到结点中心连线方向的插值。 */ + sphericalDirectionAmount: number; + } + /** !#en The trail module of 3d particle. + !#zh 3D 粒子拖尾模块 */ + export class TrailModule { + /** !#en The enable of trailModule. + !#zh 是否启用 */ + enable: boolean; + /** !#en Sets how particles generate trajectories. + !#zh 设定粒子生成轨迹的方式。 */ + mode: trailModule.TrailMode; + /** !#en Life cycle of trajectory. + !#zh 轨迹存在的生命周期。 */ + lifeTime: CurveRange; + /** !#en Minimum spacing between each track particle + !#zh 每个轨迹粒子之间的最小间距。 */ + minParticleDistance: number; + /** !#en The coordinate system of trajectories. + !#zh 轨迹设定时的坐标系。 */ + space: ParticleSystem3DAssembler.Space; + /** !#en Whether the particle itself exists. + !#zh 粒子本身是否存在。 */ + existWithParticles: boolean; + /** !#en Set the texture fill method + !#zh 设定纹理填充方式。 */ + textureMode: trailModule.TextureMode; + /** !#en Whether to use particle width + !#zh 是否使用粒子的宽度。 */ + widthFromParticle: boolean; + /** !#en Curves that control track length + !#zh 控制轨迹长度的曲线。 */ + widthRatio: CurveRange; + /** !#en Whether to use particle color + !#zh 是否使用粒子的颜色。 */ + colorFromParticle: boolean; + /** !#en The color of trajectories. + !#zh 轨迹的颜色。 */ + colorOverTrail: GradientRange; + /** !#en Trajectories color over time. + !#zh 轨迹随时间变化的颜色。 */ + colorOvertime: GradientRange; + } + /** !#en + Trigger event + !#zh + 触发事件。 */ + export class ITriggerEvent { + /** !#en + The type of event fired + !#zh + 触发的事件类型 */ + type: string; + /** !#en + Triggers its own collider in the event + !#zh + 触发事件中的自己的碰撞器 */ + selfCollider: Collider3D; + /** !#en + Triggers another collider in the event + !#zh + 触发事件中的另一个碰撞器 */ + otherCollider: Collider3D; + } + /** !#en + Collision information for collision events. + !#zh + 碰撞事件的碰撞信息。 */ + export class IContactEquation { + /** !#en + The collision point A in the collision information. + !#zh + 碰撞信息中的碰撞点 A。 */ + contactA: Vec3; + /** !#en + Collision point B in collision information. + !#zh + 碰撞信息中的碰撞点 B。 */ + contactB: Vec3; + /** !#en + Normals in collision information. + !#zh + 碰撞信息中的法线。 */ + normal: Vec3; + } + /** !#en + Collision events. + !#zh + 碰撞事件。 */ + export class ICollisionEvent { + /** !#en + Event type of collision. + !#zh + 碰撞的事件类型。 */ + type: string; + /** !#en + Collider of its own in collision. + !#zh + 碰撞中的自己的碰撞器。 */ + selfCollider: Collider3D; + /** !#en + Another collider in the collision. + !#zh + 碰撞中的另一个碰撞器。 */ + otherCollider: Collider3D; + /** !#en + Information about all the points of impact in the collision. + !#zh + 碰撞中的所有碰撞点的信息。 */ + contacts: IContactEquation[]; + } + /** !#en The rigid body type + !#zh 刚体类型 */ + export enum ERigidBodyType { + DYNAMIC = 0, + STATIC = 0, + KINEMATIC = 0, + } + /** !#en + Physical systems manager. + !#zh + 物理系统管理器。 */ + export class Physics3DManager { + /** !#en + Whether to enable the physics system, default is false. + !#zh + 是否启用物理系统,默认不启用。 */ + enabled: boolean; + /** !#en + Whether to allow the physics system to automatically hibernate, default is true. + !#zh + 物理系统是否允许自动休眠,默认为 true。 */ + allowSleep: boolean; + /** !#en + The maximum number of sub-steps a full step is permitted to be broken into, default is 2. + !#zh + 物理每帧模拟的最大子步数,默认为 2。 */ + maxSubStep: number; + /** !#en + Time spent in each simulation of physics, default is 1/60s. + !#zh + 物理每步模拟消耗的固定时间,默认为 1/60 秒。 */ + deltaTime: number; + /** !#en + Whether to use a fixed time step. + !#zh + 是否使用固定的时间步长。 */ + useFixedTime: boolean; + /** !#en + Gravity value of the physics simulation, default is (0, -10, 0). + !#zh + 物理世界的重力数值,默认为 (0, -10, 0)。 */ + gravity: Vec3; + /** !#en + Gets the global default physical material. Note that builtin is null. + !#zh + 获取全局的默认物理材质,注意:builtin 时为 null。 */ + defaultMaterial: PhysicsMaterial|void; + /** + !#en + A physical system simulation is performed once and will now be performed automatically once per frame. + !#zh + 执行一次物理系统的模拟,目前将在每帧自动执行一次。 + @param deltaTime The time difference from the last execution is currently elapsed per frame + */ + update(deltaTime: number): void; + /** + !#en Detect all collision boxes and return all detected results, or null if none is detected. Note that the return value is taken from the object pool, so do not save the result reference or modify the result. + !#zh 检测所有的碰撞盒,并返回所有被检测到的结果,若没有检测到,则返回空值。注意返回值是从对象池中取的,所以请不要保存结果引用或者修改结果。 + @param worldRay A ray in world space + @param groupIndexOrName Collision group index or group name + @param maxDistance Maximum detection distance + @param queryTrigger Detect trigger or not + */ + raycast(worldRay: geomUtils.Ray, groupIndexOrName: number|string, maxDistance: number, queryTrigger: boolean): PhysicsRayResult[]; + /** + !#en Detect all collision boxes and return the detection result with the shortest ray distance. If not, return null value. Note that the return value is taken from the object pool, so do not save the result reference or modify the result. + !#zh 检测所有的碰撞盒,并返回射线距离最短的检测结果,若没有,则返回空值。注意返回值是从对象池中取的,所以请不要保存结果引用或者修改结果。 + @param worldRay A ray in world space + @param groupIndexOrName Collision group index or group name + @param maxDistance Maximum detection distance + @param queryTrigger Detect trigger or not + */ + raycastClosest(worldRay: geomUtils.Ray, groupIndexOrName: number|string, maxDistance: number, queryTrigger: boolean): PhysicsRayResult; + } + /** !#en + Used to store physical ray detection results + !#zh + 用于保存物理射线检测结果 */ + export class PhysicsRayResult { + /** !#en + Hit the point + !#zh + 击中点 */ + hitPoint: Vec3; + /** !#en + Distance + !#zh + 距离 */ + distance: number; + /** !#en + Hit the collision box + !#zh + 击中的碰撞盒 */ + collider: Collider3D; + /** + !#en + Set up ray. This method is used internally by the engine. Do not call it from an external script + !#zh + 设置射线,此方法由引擎内部使用,请勿在外部脚本调用 + @param hitPoint hitPoint + @param distance distance + @param collider collider + */ + _assign(hitPoint: Vec3, distance: number, collider: Collider3D): void; + /** + !#en + Clone + !#zh + 克隆 + */ + clone(): void; + } + /** Rigid body interface */ + export class IRigidBody { + rigidBody: RigidBody3D; + mass: number; + linearDamping: number; + angularDamping: number; + isKinematic: boolean; + useGravity: boolean; + fixedRotation: boolean; + linearFactor: IVec3Like; + angularFactor: IVec3Like; + allowSleep: boolean; + isAwake: boolean; + isSleepy: boolean; + isSleeping: boolean; + wakeUp(): void; + sleep(): void; + /** + + @param out out + */ + getLinearVelocity(out: IVec3Like): void; + /** + + @param out out + */ + setLinearVelocity(out: IVec3Like): void; + /** + + @param out out + */ + getAngularVelocity(out: IVec3Like): void; + /** + + @param out out + */ + setAngularVelocity(out: IVec3Like): void; + /** + + @param force force + @param relativePoint relativePoint + */ + applyForce(force: IVec3Like, relativePoint: IVec3Like): void; + /** + + @param force force + @param relativePoint relativePoint + */ + applyLocalForce(force: IVec3Like, relativePoint: IVec3Like): void; + /** + + @param force force + @param relativePoint relativePoint + */ + applyImpulse(force: IVec3Like, relativePoint: IVec3Like): void; + /** + + @param force force + @param relativePoint relativePoint + */ + applyLocalImpulse(force: IVec3Like, relativePoint: IVec3Like): void; + /** + + @param torque torque + */ + applyTorque(torque: IVec3Like): void; + /** + + @param torque torque + */ + applyLocalTorque(torque: IVec3Like): void; + } + /** Class has x y z properties */ + export class IVec3Like { + x: number; + y: number; + z: number; + } + /** Class has x y z w properties */ + export class IQuatLike { + x: number; + y: number; + z: number; + w: number; + } + /** !#en Base shape interface. */ + export class IBaseShape { + collider: Collider3D; + attachedRigidBody: RigidBody3D|void; + material: any; + isTrigger: boolean; + center: IVec3Like; + } + /** !#en box shape interface */ + export class IBoxShape { + size: IVec3Like; + } + /** !#en Sphere shape interface */ + export class ISphereShape { + radius: number; + } + /** Ray cast options */ + export class IRaycastOptions { + groupIndex: number; + queryTrigger: boolean; + maxDistance: number; + } + /** Collision detect */ + export class ICollisionDetect { + /** + Ray cast, and return information of the closest hit. + @param worldRay worldRay + @param options options + @param out out + */ + raycastClosest(worldRay: geomUtils.Ray, options: IRaycastOptions, out: PhysicsRayResult): boolean; + /** + Ray cast against all bodies. The provided callback will be executed for each hit with a RaycastResult as single argument. + @param worldRay worldRay + @param options options + @param pool pool + @param resultes resultes + */ + raycast(worldRay: geomUtils.Ray, options: IRaycastOptions, pool: RecyclePool, resultes: PhysicsRayResult[]): boolean; + } + /** Physics world interface */ + export class IPhysicsWorld { + } + /** !#en Manage Dynamic Atlas Manager. Dynamic Atlas Manager is used for merging textures at runtime, see [Dynamic Atlas](https://docs.cocos.com/creator/manual/en/advanced-topics/dynamic-atlas.html) for details. + !#zh 管理动态图集。动态图集用于在运行时对贴图进行合并,详见 [动态合图](https://docs.cocos.com/creator/manual/zh/advanced-topics/dynamic-atlas.html)。 */ + export class DynamicAtlasManager { + /** !#en Enable or disable the dynamic atlas, see [Dynamic Atlas](https://docs.cocos.com/creator/manual/en/advanced-topics/dynamic-atlas.html) for details. + !#zh 开启或者关闭动态图集,详见 [动态合图](https://docs.cocos.com/creator/manual/zh/advanced-topics/dynamic-atlas.html)。 */ + enabled: boolean; + /** !#en The maximum number of atlas that can be created. + !#zh 可以创建的最大图集数量。 */ + maxAtlasCount: number; + /** !#en Get the current created atlas count. + !#zh 获取当前已经创建的图集数量。 */ + atlasCount: number; + /** !#en Is enable textureBleeding. + !#zh 是否开启 textureBleeding */ + textureBleeding: boolean; + /** !#en The size of the atlas that was created + !#zh 创建的图集的宽高 */ + textureSize: number; + /** !#en The maximum size of the picture that can be added to the atlas. + !#zh 可以添加进图集的图片的最大尺寸。 */ + maxFrameSize: number; + /** !#en The minimum size of the picture that can be added to the atlas. + !#zh 可以添加进图集的图片的最小尺寸。 */ + minFrameSize: number; + /** + !#en Append a sprite frame into the dynamic atlas. + !#zh 添加碎图进入动态图集。 + @param spriteFrame spriteFrame + */ + insertSpriteFrame(spriteFrame: SpriteFrame): void; + /** + !#en Resets all dynamic atlas, and the existing ones will be destroyed. + !#zh 重置所有动态图集,已有的动态图集会被销毁。 + */ + reset(): void; + /** + !#en Displays all the dynamic atlas in the current scene, which you can use to view the current atlas state. + !#zh 在当前场景中显示所有动态图集,可以用来查看当前的合图状态。 + @param show show + */ + showDebug(show: boolean): Node; + } + /** !#en + Each frame applies a constant force to a rigid body, depending on the RigidBody3D + !#zh + 在每帧对一个刚体施加持续的力,依赖 RigidBody3D 组件 */ + export class ConstantForce extends Component { + /** !#en + Set the force used in the world coordinate system, use `this.force = otherVec3`. + !#zh + 设置世界坐标系中使用的力,设置时请用 `this.force = otherVec3` 的方式。 */ + force: Vec3; + /** !#en + Set the force used in the local coordinate system, using `this.localforce = otherVec3`. + !#zh + 获取和设置本地坐标系中使用的力,设置时请用 `this.localForce = otherVec3` 的方式。 */ + localForce: Vec3; + /** !#en + Torque applied to the world orientation + !#zh + 对世界朝向施加的扭矩 */ + torque: Vec3; + /** !#en + Torque applied to local orientation, using `this.localtorque = otherVec3`. + !#zh + 对本地朝向施加的扭矩,设置时请用 `this.localTorque = otherVec3` 的方式。 */ + localTorque: Vec3; + } + /** !#en + RigidBody is the basic object that make up the physical world, and it can make a node physically affected and react. + !#zh + 刚体是组成物理世界的基本对象,可以让一个节点受到物理影响并产生反应。该组件在使用 Builtin 物理引擎时无效。 */ + export class RigidBody3D extends Component { + /** !#en + Whether sleep is allowed. + !#zh + 是否允许休眠。 */ + allowSleep: boolean; + /** !#en + The mass of the rigidbody. + !#zh + 刚体的质量。 */ + mass: number; + /** !#en + Used to reduce the linear rate of rigidbody. The larger the value, the slower the rigidbody moves. + !#zh + 线性阻尼,用于减小刚体的线性速率,值越大物体移动越慢。 */ + linearDamping: number; + /** !#en + Used to reduce the rotation rate of rigidbody. The larger the value, the slower the rigidbody rotates. + !#zh + 角阻尼,用于减小刚体的旋转速率,值越大刚体旋转越慢。 */ + angularDamping: number; + /** !#en + If enabled, the developer controls the displacement and rotation of the rigidbody, not the physics engine. + !#zh + 是否由开发者来控制刚体的位移和旋转,而不是受物理引擎的影响。 */ + isKinematic: boolean; + /** !#en + If enabled, the rigidbody is affected by gravity. + !#zh + 如果开启,刚体会受到重力影响。 */ + useGravity: boolean; + /** !#en + If enabled, the rigidbody will be fixed without rotation during a collision. + !#zh + 如果开启,发生碰撞时会固定刚体不产生旋转。 */ + fixedRotation: boolean; + /** !#en + It can affect the linear velocity change of the rigidbody in each axis. The larger the value, the faster the rigidbody moves. + !#zh + 线性因子,可影响刚体在每个轴向的线性速度变化,值越大刚体移动越快。 */ + linearFactor: Vec3; + /** !#en + It can affect the rotation speed change of the rigidbody in each axis. The larger the value, the faster the rigidbody rotates. + !#zh + 旋转因子,可影响刚体在每个轴向的旋转速度变化,值越大刚体旋转越快。 */ + angularFactor: Vec3; + /** !#en + The rigidbody is awake. + !#zh + 刚体是否为唤醒的状态。 */ + isAwake: boolean; + /** !#en + The rigidbody can enter hibernation. + !#zh + 刚体是否为可进入休眠的状态。 */ + isSleepy: boolean; + /** !#en + The rigidbody is sleeping. + !#zh + 刚体是否为正在休眠的状态。 */ + isSleeping: boolean; + /** !#en + Get the rigidbody object inside the physics engine. + !#zh + 获得物理引擎内部刚体对象。 */ + rigidBody: IRigidBody; + /** + !#en + A force is applied to a rigid body at a point in world space. + !#zh + 在世界空间中的某点上对刚体施加一个作用力。 + @param force force + @param relativePoint The point of action, relative to the center of the rigid body. + */ + applyForce(force: Vec3, relativePoint: Vec3): void; + /** + !#en + Apply a force on the rigid body at a point in local space. + !#zh + 在本地空间中的某点上对刚体施加一个作用力。 + @param force force + @param localPoint Point of application + */ + applyLocalForce(force: Vec3, localPoint: Vec3): void; + /** + !#en + Apply an impulse to a rigid body at a point in world space. + !#zh + 在世界空间的某点上对刚体施加一个冲量。 + @param impulse impulse + @param relativePoint The point of action, relative to the center of the rigid body. + */ + applyImpulse(impulse: Vec3, relativePoint: Vec3): void; + /** + !#en + Apply an impulse to the rigid body at a point in local space. + !#zh + 在本地空间的某点上对刚体施加一个冲量。 + @param impulse impulse + @param localPoint Point of application + */ + applyLocalImpulse(impulse: Vec3, localPoint: Vec3): void; + /** + !#en + Apply a torque to the rigid body. + !#zh + 对刚体施加扭转力。 + @param torque torque + */ + applyTorque(torque: Vec3): void; + /** + !#en + Apply a local torque to the rigid body. + !#zh + 对刚体施加本地扭转力。 + @param torque torque + */ + applyLocalTorque(torque: Vec3): void; + /** + !#en + Awaken the rigid body. + !#zh + 唤醒刚体。 + */ + wakeUp(): void; + /** + !#en + Dormant rigid body. + !#zh + 休眠刚体。 + */ + sleep(): void; + /** + !#en + Get linear velocity. + !#zh + 获取线性速度。 + @param out out + */ + getLinearVelocity(out: Vec3): void; + /** + !#en + Set linear speed. + !#zh + 设置线性速度。 + @param value value + */ + setLinearVelocity(value: Vec3): void; + /** + !#en + Gets the rotation speed. + !#zh + 获取旋转速度。 + @param out out + */ + getAngularVelocity(out: Vec3): void; + /** + !#en + Set rotation speed. + !#zh + 设置旋转速度。 + @param value value + */ + setAngularVelocity(value: Vec3): void; + } + /** !#en + Physics material. + !#zh + 物理材质。 */ + export class PhysicsMaterial extends Asset { + /** !#en + Friction for this material. + !#zh + 物理材质的摩擦力。 */ + friction: number; + /** !#en + Restitution for this material. + !#zh + 物理材质的弹力。 */ + restitution: number; + } + /** !#en + Physics box collider + !#zh + 物理盒子碰撞器 */ + export class BoxCollider3D extends Collider3D { + /** !#en + Get or set the size of the box, in local space. + !#zh + 获取或设置盒的大小。 */ + size: Vec3; + boxShape: IBoxShape; + } + /** !#en + The base class of the collider. + !#zh + 碰撞器的基类。 */ + export class Collider3D extends Component implements EventTarget { + sharedMaterial: PhysicsMaterial; + /** !#en + get or set the collider is trigger, this will be always trigger if using builtin. + !#zh + 获取或设置碰撞器是否为触发器。 */ + isTrigger: boolean; + /** !#en + get or set the center of the collider, in local space. + !#zh + 获取或设置碰撞器的中心点。 */ + center: Vec3; + /** !#en + get the collider attached rigidbody, this may be null. + !#zh + 获取碰撞器所绑定的刚体组件,可能为 null。 */ + attachedRigidbody: RigidBody3D|void; + /** !#en + get collider shape. + !#zh + 获取碰撞器形状。 */ + shape: IBaseShape; + /** + !#en + Register an callback of a specific event type on the EventTarget. + This type of event should be triggered via `emit`. + !#zh + 注册事件目标的特定事件类型回调。这种类型的事件应该被 `emit` 触发。 + @param type The type of collider event can be `trigger-enter`, `trigger-stay`, `trigger-exit` or `collision-enter`, `collision-stay`, `collision-exit`. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null. + + @example + ```js + eventTarget.on('fire', function (event) { + // event is ITriggerEvent or ICollisionEvent + }, node); + ``` + */ + on(type: string, callback: T, target?: any, useCapture?: boolean): T; + /** + !#en + Removes the listeners previously registered with the same type, callback, target and or useCapture, + if only type is passed as parameter, all listeners registered with that type will be removed. + !#zh + 删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。 + @param type The type of collider event can be `trigger-enter`, `trigger-stay`, `trigger-exit` or `collision-enter`, `collision-stay`, `collision-exit`. + @param callback The callback to remove. + @param target The target (this object) to invoke the callback, if it's not given, only callback without target will be removed. + + @example + ```js + // register fire eventListener + var callback = eventTarget.on('fire', function () { + cc.log("fire in the hole"); + }, target); + // remove fire event listener + eventTarget.off('fire', callback, target); + // remove all fire event listeners + eventTarget.off('fire'); + ``` + */ + off(type: string, callback?: Function, target?: any): void; + /** + !#en + Register an callback of a specific event type on the EventTarget, + the callback will remove itself after the first time it is triggered. + !#zh + 注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。 + @param type The type of collider event can be `trigger-enter`, `trigger-stay`, `trigger-exit` or `collision-enter`, `collision-stay`, `collision-exit`. + @param callback The callback that will be invoked when the event is dispatched. + The callback is ignored if it is a duplicate (the callbacks are unique). + @param target The target (this object) to invoke the callback, can be null. + + @example + ```js + eventTarget.once('fire', function (event) { + // event is ITriggerEvent or ICollisionEvent + }, node); + ``` + */ + once(type: string, callback: (event: ITriggerEvent|ICollisionEvent) => void, target?: any): void; + /** + !#en Checks whether the EventTarget object has any callback registered for a specific type of event. + !#zh 检查事件目标对象是否有为特定类型的事件注册的回调。 + @param type The type of event. + */ + hasEventListener(type: string): boolean; + /** + !#en Removes all callbacks previously registered with the same target (passed as parameter). + This is not for removing all listeners in the current event target, + and this is not for removing all listeners the target parameter have registered. + It's only for removing all listeners (callback and target couple) registered on the current event target by the target parameter. + !#zh 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。 + 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。 + 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。 + @param target The target to be searched for all related listeners + */ + targetOff(target: any): void; + /** + !#en + Send an event with the event object. + !#zh + 通过事件对象派发事件 + @param event event + */ + dispatchEvent(event: Event): void; + /** + !#en + Destroy all callbackInfos. + !#zh + 销毁记录的事件 + */ + clear(): void; + } + /** !#en + Physics sphere collider + !#zh + 物理球碰撞器 */ + export class SphereCollider3D extends Collider3D { + /** !#en + Get or set the radius of the sphere. + !#zh + 获取或设置球的半径。 */ + radius: number; + sphereShape: ISphereShape; + } + /**************************************************** + * audioEngine + *****************************************************/ + + export namespace audioEngine { + /** !#en Audio state. + !#zh 声音播放状态 */ + export enum AudioState { + ERROR = 0, + INITIALZING = 0, + PLAYING = 0, + PAUSED = 0, + STOPPED = 0, + } + } + + /**************************************************** + * debug + *****************************************************/ + + export namespace debug { + /** !#en Enum for debug modes. + !#zh 调试模式 */ + export enum DebugMode { + NONE = 0, + INFO = 0, + WARN = 0, + ERROR = 0, + INFO_FOR_WEB_PAGE = 0, + WARN_FOR_WEB_PAGE = 0, + ERROR_FOR_WEB_PAGE = 0, + } + } + + /**************************************************** + * Node + *****************************************************/ + + export namespace Node { + /** !#en Node's local dirty properties flag + !#zh Node 的本地属性 dirty 状态位 */ + export enum _LocalDirtyFlag { + POSITION = 0, + SCALE = 0, + ROTATION = 0, + SKEW = 0, + TRS = 0, + RS = 0, + TRS = 0, + PHYSICS_POSITION = 0, + PHYSICS_SCALE = 0, + PHYSICS_ROTATION = 0, + PHYSICS_TRS = 0, + PHYSICS_RS = 0, + ALL_POSITION = 0, + ALL_SCALE = 0, + ALL_ROTATION = 0, + ALL_TRS = 0, + ALL = 0, + } + } + + /**************************************************** + * Node + *****************************************************/ + + export namespace Node { + /** !#en The event type supported by Node + !#zh Node 支持的事件类型 */ + export class EventType { + /** !#en The event type for touch start event, you can use its value directly: 'touchstart' + !#zh 当手指触摸到屏幕时。 */ + static TOUCH_START: string; + /** !#en The event type for touch move event, you can use its value directly: 'touchmove' + !#zh 当手指在屏幕上移动时。 */ + static TOUCH_MOVE: string; + /** !#en The event type for touch end event, you can use its value directly: 'touchend' + !#zh 当手指在目标节点区域内离开屏幕时。 */ + static TOUCH_END: string; + /** !#en The event type for touch end event, you can use its value directly: 'touchcancel' + !#zh 当手指在目标节点区域外离开屏幕时。 */ + static TOUCH_CANCEL: string; + /** !#en The event type for mouse down events, you can use its value directly: 'mousedown' + !#zh 当鼠标按下时触发一次。 */ + static MOUSE_DOWN: string; + /** !#en The event type for mouse move events, you can use its value directly: 'mousemove' + !#zh 当鼠标在目标节点在目标节点区域中移动时,不论是否按下。 */ + static MOUSE_MOVE: string; + /** !#en The event type for mouse enter target events, you can use its value directly: 'mouseenter' + !#zh 当鼠标移入目标节点区域时,不论是否按下。 */ + static MOUSE_ENTER: string; + /** !#en The event type for mouse leave target events, you can use its value directly: 'mouseleave' + !#zh 当鼠标移出目标节点区域时,不论是否按下。 */ + static MOUSE_LEAVE: string; + /** !#en The event type for mouse up events, you can use its value directly: 'mouseup' + !#zh 当鼠标从按下状态松开时触发一次。 */ + static MOUSE_UP: string; + /** !#en The event type for mouse wheel events, you can use its value directly: 'mousewheel' + !#zh 当鼠标滚轮滚动时。 */ + static MOUSE_WHEEL: string; + /** !#en The event type for position change events. + Performance note, this event will be triggered every time corresponding properties being changed, + if the event callback have heavy logic it may have great performance impact, try to avoid such scenario. + !#zh 当节点位置改变时触发的事件。 + 性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。 */ + static POSITION_CHANGED: string; + /** !#en The event type for rotation change events. + Performance note, this event will be triggered every time corresponding properties being changed, + if the event callback have heavy logic it may have great performance impact, try to avoid such scenario. + !#zh 当节点旋转改变时触发的事件。 + 性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。 */ + static ROTATION_CHANGED: string; + /** !#en The event type for scale change events. + Performance note, this event will be triggered every time corresponding properties being changed, + if the event callback have heavy logic it may have great performance impact, try to avoid such scenario. + !#zh 当节点缩放改变时触发的事件。 + 性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。 */ + static SCALE_CHANGED: string; + /** !#en The event type for size change events. + Performance note, this event will be triggered every time corresponding properties being changed, + if the event callback have heavy logic it may have great performance impact, try to avoid such scenario. + !#zh 当节点尺寸改变时触发的事件。 + 性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。 */ + static SIZE_CHANGED: string; + /** !#en The event type for anchor point change events. + Performance note, this event will be triggered every time corresponding properties being changed, + if the event callback have heavy logic it may have great performance impact, try to avoid such scenario. + !#zh 当节点锚点改变时触发的事件。 + 性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。 */ + static ANCHOR_CHANGED: string; + /** !#en The event type for color change events. + Performance note, this event will be triggered every time corresponding properties being changed, + if the event callback have heavy logic it may have great performance impact, try to avoid such scenario. + !#zh 当节点颜色改变时触发的事件。 + 性能警告:这个事件会在每次对应的属性被修改时触发,如果事件回调损耗较高,有可能对性能有很大的负面影响,请尽量避免这种情况。 */ + static COLOR_CHANGED: string; + /** !#en The event type for new child added events. + !#zh 当新的子节点被添加时触发的事件。 */ + static CHILD_ADDED: string; + /** !#en The event type for child removed events. + !#zh 当子节点被移除时触发的事件。 */ + static CHILD_REMOVED: string; + /** !#en The event type for children reorder events. + !#zh 当子节点顺序改变时触发的事件。 */ + static CHILD_REORDER: string; + /** !#en The event type for node group changed events. + !#zh 当节点归属群组发生变化时触发的事件。 */ + static GROUP_CHANGED: string; + /** !#en The event type for node's sibling order changed. + !#zh 当节点在兄弟节点中的顺序发生变化时触发的事件。 */ + static SIBLING_ORDER_CHANGED: string; + } + } + + /**************************************************** + * ParticleSystem + *****************************************************/ + + export namespace ParticleSystem { + /** !#en Enum for emitter modes + !#zh 发射模式 */ + export enum EmitterMode { + GRAVITY = 0, + RADIUS = 0, + } + } + + /**************************************************** + * ParticleSystem + *****************************************************/ + + export namespace ParticleSystem { + /** !#en Enum for particles movement type. + !#zh 粒子位置类型 */ + export enum PositionType { + FREE = 0, + RELATIVE = 0, + GROUPED = 0, + } + } + + /**************************************************** + * WebView + *****************************************************/ + + export namespace WebView { + /** !#en WebView event type + !#zh 网页视图事件类型 */ + export enum EventType { + LOADED = 0, + LOADING = 0, + ERROR = 0, + } + } + + /**************************************************** + * TiledMap + *****************************************************/ + + export namespace TiledMap { + /** !#en The orientation of tiled map. + !#zh Tiled Map 地图方向。 */ + export enum Orientation { + ORTHO = 0, + HEX = 0, + ISO = 0, + } + } + + /**************************************************** + * TiledMap + *****************************************************/ + + export namespace TiledMap { + /** The property type of tiled map. */ + export enum Property { + NONE = 0, + MAP = 0, + LAYER = 0, + OBJECTGROUP = 0, + OBJECT = 0, + TILE = 0, + } + } + + /**************************************************** + * TiledMap + *****************************************************/ + + export namespace TiledMap { + /** The tile flags of tiled map. */ + export enum TileFlag { + HORIZONTAL = 0, + VERTICAL = 0, + DIAGONAL = 0, + FLIPPED_ALL = 0, + FLIPPED_MASK = 0, + } + } + + /**************************************************** + * TiledMap + *****************************************************/ + + export namespace TiledMap { + /** !#en The stagger axis of Hex tiled map. + !#zh 六边形地图的 stagger axis 值 */ + export enum StaggerAxis { + STAGGERAXIS_X = 0, + STAGGERAXIS_Y = 0, + } + } + + /**************************************************** + * TiledMap + *****************************************************/ + + export namespace TiledMap { + /** !#en The render order of tiled map. + !#zh 地图的渲染顺序 */ + export enum RenderOrder { + STAGGERINDEX_ODD = 0, + STAGGERINDEX_EVEN = 0, + RightDown = 0, + RightUp = 0, + LeftDown = 0, + LeftUp = 0, + } + } + + /**************************************************** + * TiledMap + *****************************************************/ + + export namespace TiledMap { + /** !#en TiledMap Object Type + !#zh 地图物体类型 */ + export enum TMXObjectType { + RECT = 0, + ELLIPSE = 0, + POLYGON = 0, + POLYLINE = 0, + IMAGE = 0, + TEXT = 0, + } + } + + /**************************************************** + * VideoPlayer + *****************************************************/ + + export namespace VideoPlayer { + /** !#en Video event type + !#zh 视频事件类型 */ + export enum EventType { + PLAYING = 0, + PAUSED = 0, + STOPPED = 0, + COMPLETED = 0, + META_LOADED = 0, + CLICKED = 0, + READY_TO_PLAY = 0, + } + } + + /**************************************************** + * VideoPlayer + *****************************************************/ + + export namespace VideoPlayer { + /** !#en Enum for video resouce type type. + !#zh 视频来源 */ + export enum ResourceType { + REMOTE = 0, + LOCAL = 0, + } + } + + /**************************************************** + * Collider + *****************************************************/ + + export namespace Collider { + /** !#en Defines a Box Collider . + !#zh 用来定义包围盒碰撞体 */ + export class Box { + /** !#en Position offset + !#zh 位置偏移量 */ + offset: Vec2; + /** !#en Box size + !#zh 包围盒大小 */ + size: Size; + } + } + + /**************************************************** + * Collider + *****************************************************/ + + export namespace Collider { + /** !#en Defines a Circle Collider . + !#zh 用来定义圆形碰撞体 */ + export class Circle { + /** !#en Position offset + !#zh 位置偏移量 */ + offset: Vec2; + /** !#en Circle radius + !#zh 圆形半径 */ + radius: number; + } + } + + /**************************************************** + * Collider + *****************************************************/ + + export namespace Collider { + /** !#en Defines a Polygon Collider . + !#zh 用来定义多边形碰撞体 */ + export class Polygon { + /** !#en Position offset + !#zh 位置偏移量 */ + offset: Vec2; + /** !#en Polygon points + !#zh 多边形顶点数组 */ + points: Vec2[]; + } + } + + /**************************************************** + * Light + *****************************************************/ + + export namespace Light { + /** !#en The light source type + + !#zh 光源类型 */ + export enum Type { + DIRECTIONAL = 0, + POINT = 0, + SPOT = 0, + AMBIENT = 0, + } + } + + /**************************************************** + * Light + *****************************************************/ + + export namespace Light { + /** !#en The shadow type + + !#zh 阴影类型 */ + export enum ShadowType { + NONE = 0, + HARD = 0, + SOFT_PCF3X3 = 0, + SOFT_PCF5X5 = 0, + } + } + + /**************************************************** + * Prefab + *****************************************************/ + + export namespace Prefab { + /** !#zh + Prefab 创建实例所用的优化策略,配合 {{#crossLink "Prefab.optimizationPolicy"}}cc.Prefab#optimizationPolicy{{/crossLink}} 使用。 + !#en + An enumeration used with the {{#crossLink "Prefab.optimizationPolicy"}}cc.Prefab#optimizationPolicy{{/crossLink}} + to specify how to optimize the instantiate operation. */ + export enum OptimizationPolicy { + AUTO = 0, + SINGLE_INSTANCE = 0, + MULTI_INSTANCE = 0, + } + } + + /**************************************************** + * RenderTexture + *****************************************************/ + + export namespace RenderTexture { + /** !#en The depth buffer and stencil buffer format for RenderTexture. + !#zh RenderTexture 的深度缓冲以及模板缓冲格式。 */ + export enum DepthStencilFormat { + RB_FMT_D24S8 = 0, + RB_FMT_S8 = 0, + RB_FMT_D16 = 0, + } + } + + /**************************************************** + * Texture2D + *****************************************************/ + + export namespace Texture2D { + /** The texture pixel format, default value is RGBA8888, + you should note that textures loaded by normal image files (png, jpg) can only support RGBA8888 format, + other formats are supported by compressed file types or raw data. */ + export enum PixelFormat { + RGB565 = 0, + RGB5A1 = 0, + RGBA4444 = 0, + RGB888 = 0, + RGBA8888 = 0, + RGBA32F = 0, + A8 = 0, + I8 = 0, + AI88 = 0, + RGB_PVRTC_2BPPV1 = 0, + RGBA_PVRTC_2BPPV1 = 0, + RGB_A_PVRTC_2BPPV1 = 0, + RGB_PVRTC_4BPPV1 = 0, + RGBA_PVRTC_4BPPV1 = 0, + RGB_A_PVRTC_4BPPV1 = 0, + RGB_ETC1 = 0, + RGBA_ETC1 = 0, + RGB_ETC2 = 0, + RGBA_ETC2 = 0, + } + } + + /**************************************************** + * Texture2D + *****************************************************/ + + export namespace Texture2D { + /** The texture wrap mode */ + export enum WrapMode { + REPEAT = 0, + CLAMP_TO_EDGE = 0, + MIRRORED_REPEAT = 0, + } + } + + /**************************************************** + * Texture2D + *****************************************************/ + + export namespace Texture2D { + /** The texture filter mode */ + export enum Filter { + LINEAR = 0, + NEAREST = 0, + } + } + + /**************************************************** + * Event + *****************************************************/ + + export namespace Event { + /** !#en The Custom event + !#zh 自定义事件 */ + export class EventCustom extends Event { + /** + + @param type The name of the event (case-sensitive), e.g. "click", "fire", or "submit" + @param bubbles A boolean indicating whether the event bubbles up through the tree or not + */ + constructor(type: string, bubbles: boolean); + /** !#en A reference to the detailed data of the event + !#zh 事件的详细数据 */ + detail: any; + /** + !#en Sets user data + !#zh 设置用户数据 + @param data data + */ + setUserData(data: any): void; + /** + !#en Gets user data + !#zh 获取用户数据 + */ + getUserData(): any; + /** + !#en Gets event name + !#zh 获取事件名称 + */ + getEventName(): string; + } + } + + /**************************************************** + * SystemEvent + *****************************************************/ + + export namespace SystemEvent { + /** !#en The event type supported by SystemEvent + !#zh SystemEvent 支持的事件类型 */ + export class EventType { + /** !#en The event type for press the key down event, you can use its value directly: 'keydown' + !#zh 当按下按键时触发的事件 */ + static KEY_DOWN: string; + /** !#en The event type for press the key up event, you can use its value directly: 'keyup' + !#zh 当松开按键时触发的事件 */ + static KEY_UP: string; + /** !#en The event type for press the devicemotion event, you can use its value directly: 'devicemotion' + !#zh 重力感应 */ + static DEVICEMOTION: string; + } + } + + /**************************************************** + * Animation + *****************************************************/ + + export namespace Animation { + /** !#en The event type supported by Animation + !#zh Animation 支持的事件类型 */ + export class EventType { + /** !#en Emit when begin playing animation + !#zh 开始播放时触发 */ + static PLAY: string; + /** !#en Emit when stop playing animation + !#zh 停止播放时触发 */ + static STOP: string; + /** !#en Emit when pause animation + !#zh 暂停播放时触发 */ + static PAUSE: string; + /** !#en Emit when resume animation + !#zh 恢复播放时触发 */ + static RESUME: string; + /** !#en If animation repeat count is larger than 1, emit when animation play to the last frame + !#zh 假如动画循环次数大于 1,当动画播放到最后一帧时触发 */ + static LASTFRAME: string; + /** !#en Emit when finish playing animation + !#zh 动画播放完成时触发 */ + static FINISHED: string; + } + } + + /**************************************************** + * Button + *****************************************************/ + + export namespace Button { + /** !#en Enum for transition type. + !#zh 过渡类型 */ + export enum Transition { + NONE = 0, + COLOR = 0, + SPRITE = 0, + SCALE = 0, + } + } + + /**************************************************** + * Component + *****************************************************/ + + export namespace Component { + /** !#en + Component will register a event to target component's handler. + And it will trigger the handler when a certain event occurs. + + !@zh + “EventHandler” 类用来设置场景中的事件回调, + 该类允许用户设置回调目标节点,目标组件名,组件方法名, + 并可通过 emit 方法调用目标函数。 */ + export class EventHandler { + /** !#en the node that contains target callback, such as the node example script belongs to + !#zh 事件响应函数所在节点 ,比如例子中脚本归属的节点本身 */ + target: Node; + /** !#en name of the component(script) that contains target callback, such as the name 'MainMenu' of script in example + !#zh 事件响应函数所在组件名(脚本名), 比如例子中的脚本名 'MainMenu' */ + component: string; + /** !#en Event handler, such as function's name 'onClick' in example + !#zh 响应事件函数名,比如例子中的 'onClick' */ + handler: string; + /** !#en Custom Event Data, such as 'eventType' in example + !#zh 自定义事件数据,比如例子中的 eventType */ + customEventData: string; + /** + + @param events events + @param params params + */ + static emitEvents(events: EventHandler[], ...params: any[]): void; + /** + !#en Emit event with params + !#zh 触发目标组件上的指定 handler 函数,该参数是回调函数的参数值(可不填)。 + @param params params + + @example + ```js + // Call Function + var eventHandler = new cc.Component.EventHandler(); + eventHandler.target = newTarget; + eventHandler.component = "MainMenu"; + eventHandler.handler = "OnClick" + eventHandler.emit(["param1", "param2", ....]); + ``` + */ + emit(params: any[]): void; + } + } + + /**************************************************** + * Label + *****************************************************/ + + export namespace Label { + /** !#en Enum for text alignment. + !#zh 文本横向对齐类型 */ + export enum HorizontalAlign { + LEFT = 0, + CENTER = 0, + RIGHT = 0, + } + } + + /**************************************************** + * Label + *****************************************************/ + + export namespace Label { + /** !#en Enum for vertical text alignment. + !#zh 文本垂直对齐类型 */ + export enum VerticalAlign { + TOP = 0, + CENTER = 0, + BOTTOM = 0, + } + } + + /**************************************************** + * Label + *****************************************************/ + + export namespace Label { + /** !#en Enum for Overflow. + !#zh Overflow 类型 */ + export enum Overflow { + NONE = 0, + CLAMP = 0, + SHRINK = 0, + RESIZE_HEIGHT = 0, + } + } + + /**************************************************** + * Label + *****************************************************/ + + export namespace Label { + /** !#en Enum for font type. + !#zh Type 类型 */ + export enum Type { + TTF = 0, + BMFont = 0, + SystemFont = 0, + } + } + + /**************************************************** + * Label + *****************************************************/ + + export namespace Label { + /** !#en Enum for cache mode. + !#zh CacheMode 类型 */ + export enum CacheMode { + NONE = 0, + BITMAP = 0, + CHAR = 0, + } + } + + /**************************************************** + * Layout + *****************************************************/ + + export namespace Layout { + /** !#en Enum for Layout type + !#zh 布局类型 */ + export enum Type { + NONE = 0, + HORIZONTAL = 0, + VERTICAL = 0, + GRID = 0, + } + } + + /**************************************************** + * Layout + *****************************************************/ + + export namespace Layout { + /** !#en Enum for Layout Resize Mode + !#zh 缩放模式 */ + export enum ResizeMode { + NONE = 0, + CONTAINER = 0, + CHILDREN = 0, + } + } + + /**************************************************** + * Layout + *****************************************************/ + + export namespace Layout { + /** !#en Enum for Grid Layout start axis direction. + The items in grid layout will be arranged in each axis at first.; + !#zh 布局轴向,只用于 GRID 布局。 */ + export enum AxisDirection { + HORIZONTAL = 0, + VERTICAL = 0, + } + } + + /**************************************************** + * Layout + *****************************************************/ + + export namespace Layout { + /** !#en Enum for vertical layout direction. + Used in Grid Layout together with AxisDirection is VERTICAL + !#zh 垂直方向布局方式 */ + export enum VerticalDirection { + BOTTOM_TO_TOP = 0, + TOP_TO_BOTTOM = 0, + } + } + + /**************************************************** + * Layout + *****************************************************/ + + export namespace Layout { + /** !#en Enum for horizontal layout direction. + Used in Grid Layout together with AxisDirection is HORIZONTAL + !#zh 水平方向布局方式 */ + export enum HorizontalDirection { + LEFT_TO_RIGHT = 0, + RIGHT_TO_LEFT = 0, + } + } + + /**************************************************** + * Mask + *****************************************************/ + + export namespace Mask { + /** !#en the type for mask. + !#zh 遮罩组件类型 */ + export enum Type { + RECT = 0, + ELLIPSE = 0, + IMAGE_STENCIL = 0, + } + } + + /**************************************************** + * PageView + *****************************************************/ + + export namespace PageView { + /** !#en The Page View Size Mode + !#zh 页面视图每个页面统一的大小类型 */ + export enum SizeMode { + Unified = 0, + Free = 0, + } + } + + /**************************************************** + * PageView + *****************************************************/ + + export namespace PageView { + /** !#en The Page View Direction + !#zh 页面视图滚动类型 */ + export enum Direction { + Horizontal = 0, + Vertical = 0, + } + } + + /**************************************************** + * PageView + *****************************************************/ + + export namespace PageView { + /** !#en Enum for ScrollView event type. + !#zh 滚动视图事件类型 */ + export enum EventType { + PAGE_TURNING = 0, + } + } + + /**************************************************** + * ProgressBar + *****************************************************/ + + export namespace ProgressBar { + /** !#en Enum for ProgressBar mode + !#zh 进度条模式 */ + export enum Mode { + HORIZONTAL = 0, + VERTICAL = 0, + FILLED = 0, + } + } + + /**************************************************** + * PageViewIndicator + *****************************************************/ + + export namespace PageViewIndicator { + /** !#en Enum for PageView Indicator direction + !#zh 页面视图指示器的摆放方向 */ + export enum Direction { + HORIZONTAL = 0, + VERTICAL = 0, + } + } + + /**************************************************** + * Scrollbar + *****************************************************/ + + export namespace Scrollbar { + /** Enum for Scrollbar direction */ + export enum Direction { + HORIZONTAL = 0, + VERTICAL = 0, + } + } + + /**************************************************** + * ScrollView + *****************************************************/ + + export namespace ScrollView { + /** !#en Enum for ScrollView event type. + !#zh 滚动视图事件类型 */ + export enum EventType { + SCROLL_TO_TOP = 0, + SCROLL_TO_BOTTOM = 0, + SCROLL_TO_LEFT = 0, + SCROLL_TO_RIGHT = 0, + SCROLLING = 0, + BOUNCE_TOP = 0, + BOUNCE_BOTTOM = 0, + BOUNCE_LEFT = 0, + BOUNCE_RIGHT = 0, + SCROLL_ENDED = 0, + TOUCH_UP = 0, + AUTOSCROLL_ENDED_WITH_THRESHOLD = 0, + SCROLL_BEGAN = 0, + } + } + + /**************************************************** + * Slider + *****************************************************/ + + export namespace Slider { + /** !#en The Slider Direction + !#zh 滑动器方向 */ + export enum Direction { + Horizontal = 0, + Vertical = 0, + } + } + + /**************************************************** + * Sprite + *****************************************************/ + + export namespace Sprite { + /** !#en Enum for sprite type. + !#zh Sprite 类型 */ + export enum Type { + SIMPLE = 0, + SLICED = 0, + TILED = 0, + FILLED = 0, + MESH = 0, + } + } + + /**************************************************** + * Sprite + *****************************************************/ + + export namespace Sprite { + /** !#en Enum for fill type. + !#zh 填充类型 */ + export enum FillType { + HORIZONTAL = 0, + VERTICAL = 0, + RADIAL = 0, + } + } + + /**************************************************** + * Sprite + *****************************************************/ + + export namespace Sprite { + /** !#en Sprite Size can track trimmed size, raw size or none. + !#zh 精灵尺寸调整模式 */ + export enum SizeMode { + CUSTOM = 0, + TRIMMED = 0, + RAW = 0, + } + } + + /**************************************************** + * Sprite + *****************************************************/ + + export namespace Sprite { + /** !#en Sprite state can choice the normal or grayscale. + !#zh 精灵颜色通道模式。 */ + export enum State { + NORMAL = 0, + GRAY = 0, + } + } + + /**************************************************** + * Widget + *****************************************************/ + + export namespace Widget { + /** !#en Enum for Widget's alignment mode, indicating when the widget should refresh. + !#zh Widget 的对齐模式,表示 Widget 应该何时刷新。 */ + export enum AlignMode { + ONCE = 0, + ON_WINDOW_RESIZE = 0, + ALWAYS = 0, + } + } + + /**************************************************** + * Event + *****************************************************/ + + export namespace Event { + /** !#en The mouse event + !#zh 鼠标事件类型 */ + export class EventMouse extends Event { + /** + !#en Sets scroll data. + !#zh 设置鼠标的滚动数据。 + @param scrollX scrollX + @param scrollY scrollY + */ + setScrollData(scrollX: number, scrollY: number): void; + /** + !#en Returns the x axis scroll value. + !#zh 获取鼠标滚动的X轴距离,只有滚动时才有效。 + */ + getScrollX(): number; + /** + !#en Returns the y axis scroll value. + !#zh 获取滚轮滚动的 Y 轴距离,只有滚动时才有效。 + */ + getScrollY(): number; + /** + !#en Sets cursor location. + !#zh 设置当前鼠标位置。 + @param x x + @param y y + */ + setLocation(x: number, y: number): void; + /** + !#en Returns cursor location. + !#zh 获取鼠标位置对象,对象包含 x 和 y 属性。 + */ + getLocation(): Vec2; + /** + !#en Returns the current cursor location in screen coordinates. + !#zh 获取当前事件在游戏窗口内的坐标位置对象,对象包含 x 和 y 属性。 + */ + getLocationInView(): Vec2; + /** + !#en Returns the previous touch location. + !#zh 获取鼠标点击在上一次事件时的位置对象,对象包含 x 和 y 属性。 + */ + getPreviousLocation(): Vec2; + /** + !#en Returns the delta distance from the previous location to current location. + !#zh 获取鼠标距离上一次事件移动的距离对象,对象包含 x 和 y 属性。 + */ + getDelta(): Vec2; + /** + !#en Returns the X axis delta distance from the previous location to current location. + !#zh 获取鼠标距离上一次事件移动的 X 轴距离。 + */ + getDeltaX(): number; + /** + !#en Returns the Y axis delta distance from the previous location to current location. + !#zh 获取鼠标距离上一次事件移动的 Y 轴距离。 + */ + getDeltaY(): number; + /** + !#en Sets mouse button. + !#zh 设置鼠标按键。 + @param button button + */ + setButton(button: number): void; + /** + !#en Returns mouse button. + !#zh 获取鼠标按键。 + */ + getButton(): number; + /** + !#en Returns location X axis data. + !#zh 获取鼠标当前位置 X 轴。 + */ + getLocationX(): number; + /** + !#en Returns location Y axis data. + !#zh 获取鼠标当前位置 Y 轴。 + */ + getLocationY(): number; + /** !#en The none event code of mouse event. + !#zh 无。 */ + static NONE: number; + /** !#en The event type code of mouse down event. + !#zh 鼠标按下事件。 */ + static DOWN: number; + /** !#en The event type code of mouse up event. + !#zh 鼠标按下后释放事件。 */ + static UP: number; + /** !#en The event type code of mouse move event. + !#zh 鼠标移动事件。 */ + static MOVE: number; + /** !#en The event type code of mouse scroll event. + !#zh 鼠标滚轮事件。 */ + static SCROLL: number; + /** !#en The tag of Mouse left button. + !#zh 鼠标左键的标签。 */ + static BUTTON_LEFT: number; + /** !#en The tag of Mouse right button (The right button number is 2 on browser). + !#zh 鼠标右键的标签。 */ + static BUTTON_RIGHT: number; + /** !#en The tag of Mouse middle button (The right button number is 1 on browser). + !#zh 鼠标中键的标签。 */ + static BUTTON_MIDDLE: number; + /** !#en The tag of Mouse button 4. + !#zh 鼠标按键 4 的标签。 */ + static BUTTON_4: number; + /** !#en The tag of Mouse button 5. + !#zh 鼠标按键 5 的标签。 */ + static BUTTON_5: number; + /** !#en The tag of Mouse button 6. + !#zh 鼠标按键 6 的标签。 */ + static BUTTON_6: number; + /** !#en The tag of Mouse button 7. + !#zh 鼠标按键 7 的标签。 */ + static BUTTON_7: number; + /** !#en The tag of Mouse button 8. + !#zh 鼠标按键 8 的标签。 */ + static BUTTON_8: number; + } + } + + /**************************************************** + * Event + *****************************************************/ + + export namespace Event { + /** !#en The touch event + !#zh 触摸事件 */ + export class EventTouch extends Event { + /** + + @param touchArr The array of the touches + @param bubbles A boolean indicating whether the event bubbles up through the tree or not + */ + constructor(touchArr: any[], bubbles: boolean); + /** !#en The current touch object + !#zh 当前触点对象 */ + touch: Touch; + /** + !#en Returns event code. + !#zh 获取事件类型。 + */ + getEventCode(): number; + /** + !#en Returns touches of event. + !#zh 获取触摸点的列表。 + */ + getTouches(): any[]; + /** + !#en Sets touch location. + !#zh 设置当前触点位置 + @param x x + @param y y + */ + setLocation(x: number, y: number): void; + /** + !#en Returns touch location. + !#zh 获取触点位置。 + */ + getLocation(): Vec2; + /** + !#en Returns the current touch location in screen coordinates. + !#zh 获取当前触点在游戏窗口中的位置。 + */ + getLocationInView(): Vec2; + /** + !#en Returns the previous touch location. + !#zh 获取触点在上一次事件时的位置对象,对象包含 x 和 y 属性。 + */ + getPreviousLocation(): Vec2; + /** + !#en Returns the start touch location. + !#zh 获取触点落下时的位置对象,对象包含 x 和 y 属性。 + */ + getStartLocation(): Vec2; + /** + !#en Returns the id of cc.Touch. + !#zh 触点的标识 ID,可以用来在多点触摸中跟踪触点。 + */ + getID(): number; + /** + !#en Returns the delta distance from the previous location to current location. + !#zh 获取触点距离上一次事件移动的距离对象,对象包含 x 和 y 属性。 + */ + getDelta(): Vec2; + /** + !#en Returns the X axis delta distance from the previous location to current location. + !#zh 获取触点距离上一次事件移动的 x 轴距离。 + */ + getDeltaX(): number; + /** + !#en Returns the Y axis delta distance from the previous location to current location. + !#zh 获取触点距离上一次事件移动的 y 轴距离。 + */ + getDeltaY(): number; + /** + !#en Returns location X axis data. + !#zh 获取当前触点 X 轴位置。 + */ + getLocationX(): number; + /** + !#en Returns location Y axis data. + !#zh 获取当前触点 Y 轴位置。 + */ + getLocationY(): number; + } + } + + /**************************************************** + * Event + *****************************************************/ + + export namespace Event { + /** !#en The acceleration event + !#zh 加速度事件 */ + export class EventAcceleration extends Event { + } + } + + /**************************************************** + * Event + *****************************************************/ + + export namespace Event { + /** !#en The keyboard event + !#zh 键盘事件 */ + export class EventKeyboard extends Event { + /** !#en + The keyCode read-only property represents a system and implementation dependent numerical code identifying the unmodified value of the pressed key. + This is usually the decimal ASCII (RFC 20) or Windows 1252 code corresponding to the key. + If the key can't be identified, this value is 0. + + !#zh + keyCode 是只读属性它表示一个系统和依赖于实现的数字代码,可以识别按键的未修改值。 + 这通常是十进制 ASCII (RFC20) 或者 Windows 1252 代码,所对应的密钥。 + 如果无法识别该键,则该值为 0。 */ + keyCode: number; + } + } + + /**************************************************** + * Graphics + *****************************************************/ + + export namespace Graphics { + /** !#en Enum for LineCap. + !#zh 线段末端属性 */ + export enum LineCap { + BUTT = 0, + ROUND = 0, + SQUARE = 0, + } + } + + /**************************************************** + * Graphics + *****************************************************/ + + export namespace Graphics { + /** !#en Enum for LineJoin. + !#zh 线段拐角属性 */ + export enum LineJoin { + BEVEL = 0, + ROUND = 0, + MITER = 0, + } + } + + /**************************************************** + * geomUtils + *****************************************************/ + + export namespace geomUtils { + /** Aabb */ + export class Aabb { + /** + create a new aabb + @param px X coordinates for aabb's original point + @param py Y coordinates for aabb's original point + @param pz Z coordinates for aabb's original point + @param w the half of aabb width + @param h the half of aabb height + @param l the half of aabb length + */ + create(px: number, py: number, pz: number, w: number, h: number, l: number): Aabb; + /** + clone a new aabb + @param a the source aabb + */ + clone(a: Aabb): Aabb; + /** + copy the values from one aabb to another + @param out the receiving aabb + @param a the source aabb + */ + copy(out: Aabb, a: Aabb): Aabb; + /** + create a new aabb from two corner points + @param out the receiving aabb + @param minPos lower corner position of the aabb + @param maxPos upper corner position of the aabb + */ + fromPoints(out: Aabb, minPos: Vec3, maxPos: Vec3): Aabb; + /** + Set the components of a aabb to the given values + @param out the receiving aabb + @param px X coordinates for aabb's original point + @param py Y coordinates for aabb's original point + @param pz Z coordinates for aabb's original point + @param w the half of aabb width + @param h the half of aabb height + @param l the half of aabb length + */ + set(out: Aabb, px: number, py: number, pz: number, w: number, h: number, l: number): Aabb; + center: Vec3; + halfExtents: Vec3; + _type: number; + /** + Get the bounding points of this shape + @param minPos minPos + @param maxPos maxPos + */ + getBoundary(minPos: Vec3, maxPos: Vec3): void; + /** + Transform this shape + @param m the transform matrix + @param pos the position part of the transform + @param rot the rotation part of the transform + @param scale the scale part of the transform + @param out the target shape + */ + transform(m: Mat4, pos: Vec3, rot: Quat, scale: Vec3, out?: Aabb): void; + } + } + + /**************************************************** + * geomUtils + *****************************************************/ + + export namespace geomUtils { + /** !#en Shape type. */ + export enum enums { + SHAPE_RAY = 0, + SHAPE_LINE = 0, + SHAPE_SPHERE = 0, + SHAPE_AABB = 0, + SHAPE_OBB = 0, + SHAPE_PLANE = 0, + SHAPE_TRIANGLE = 0, + SHAPE_FRUSTUM = 0, + SHAPE_FRUSTUM_ACCURATE = 0, + } + } + + /**************************************************** + * geomUtils + *****************************************************/ + + export namespace geomUtils { + /** !#en frustum + !#zh 平截头体 */ + export class Frustum { + /** Set whether to use accurate intersection testing function on this frustum */ + accurate: boolean; + /** + create a new frustum + */ + static create(): Frustum; + /** + Clone a frustum + @param f f + */ + static clone(f: Frustum): Frustum; + /** + Copy the values from one frustum to another + @param out out + @param f f + */ + copy(out: Frustum, f: Frustum): Frustum; + planes: geomUtils.Plane[]; + planes: Vec3[]; + /** + !#en Update the frustum information according to the given transform matrix. + Note that the resulting planes are not normalized under normal mode. + @param m the view-projection matrix + @param inv the inverse view-projection matrix + */ + update(m: Mat4, inv: Mat4): void; + /** + !#en transform by matrix + @param mat mat + */ + transform(mat: Mat4): void; + } + } + + /**************************************************** + * geomUtils + *****************************************************/ + + export namespace geomUtils { + /** undefined */ + export class intersect { + /** + !#en + Check whether ray intersect with nodes + !#zh + 检测射线是否与物体有交集 + @param root If root is null, then traversal nodes from scene node + @param worldRay worldRay + @param handler handler + @param filter filter + */ + static ray_cast(root: Node, worldRay: geomUtils.Ray, handler: Function, filter: Function): any[]; + /** + !#en ray-plane intersect
+ !#zh 射线与平面的相交性检测。 + @param ray ray + @param plane plane + */ + static ray_plane(ray: geomUtils.Ray, plane: geomUtils.Plane): number; + /** + !#en line-plane intersect
+ !#zh 线段与平面的相交性检测。 + @param line line + @param plane plane + */ + static line_plane(line: geomUtils.Line, plane: geomUtils.Plane): number; + /** + !#en ray-triangle intersect
+ !#zh 射线与三角形的相交性检测。 + @param ray ray + @param triangle triangle + @param doubleSided doubleSided + */ + static ray_triangle(ray: geomUtils.Ray, triangle: geomUtils.Triangle, doubleSided: boolean): number; + /** + !#en line-triangle intersect
+ !#zh 线段与三角形的相交性检测。 + @param line line + @param triangle triangle + @param outPt optional, The intersection point + */ + static line_triangle(line: geomUtils.Line, triangle: geomUtils.Triangle, outPt: Vec3): number; + /** + !#en line-quad intersect
+ !#zh 线段与四边形的相交性检测。 + @param p A point on a line segment + @param q Another point on the line segment + @param a Quadrilateral point a + @param b Quadrilateral point b + @param c Quadrilateral point c + @param d Quadrilateral point d + @param outPt optional, The intersection point + */ + static line_quad(p: Vec3, q: Vec3, a: Vec3, b: Vec3, c: Vec3, d: Vec3, outPt: Vec3): number; + /** + !#en ray-sphere intersect
+ !#zh 射线和球的相交性检测。 + @param ray ray + @param sphere sphere + */ + static ray_sphere(ray: geomUtils.Ray, sphere: geomUtils.Sphere): number; + /** + !#en ray-aabb intersect
+ !#zh 射线和轴对齐包围盒的相交性检测。 + @param ray ray + @param aabb Align the axis around the box + */ + static ray_aabb(ray: geomUtils.Ray, aabb: Aabb): number; + /** + !#en ray-obb intersect
+ !#zh 射线和方向包围盒的相交性检测。 + @param ray ray + @param obb Direction box + */ + static ray_obb(ray: geomUtils.Ray, obb: geomUtils.Obb): number; + /** + !#en aabb-aabb intersect
+ !#zh 轴对齐包围盒和轴对齐包围盒的相交性检测。 + @param aabb1 Axis alignment surrounds box 1 + @param aabb2 Axis alignment surrounds box 2 + */ + static aabb_aabb(aabb1: Aabb, aabb2: Aabb): number; + /** + !#en aabb-obb intersect
+ !#zh 轴对齐包围盒和方向包围盒的相交性检测。 + @param aabb Align the axis around the box + @param obb Direction box + */ + static aabb_obb(aabb: Aabb, obb: geomUtils.Obb): number; + /** + !#en aabb-plane intersect
+ !#zh 轴对齐包围盒和平面的相交性检测。 + @param aabb Align the axis around the box + @param plane plane + */ + static aabb_plane(aabb: Aabb, plane: geomUtils.Plane): number; + /** + !#en aabb-frustum intersect, faster but has false positive corner cases
+ !#zh 轴对齐包围盒和锥台相交性检测,速度快,但有错误情况。 + @param aabb Align the axis around the box + @param frustum frustum + */ + static aabb_frustum(aabb: Aabb, frustum: Frustum): number; + /** + !#en aabb-frustum intersect, handles most of the false positives correctly
+ !#zh 轴对齐包围盒和锥台相交性检测,正确处理大多数错误情况。 + @param aabb Align the axis around the box + @param frustum frustum + */ + static aabb_frustum_accurate(aabb: Aabb, frustum: Frustum): number; + /** + !#en obb-point intersect
+ !#zh 方向包围盒和点的相交性检测。 + @param obb Direction box + @param point point + */ + static obb_point(obb: geomUtils.Obb, point: geomUtils.Vec3): boolean; + /** + !#en obb-plane intersect
+ !#zh 方向包围盒和平面的相交性检测。 + @param obb Direction box + @param plane plane + */ + static obb_plane(obb: geomUtils.Obb, plane: geomUtils.Plane): number; + /** + !#en obb-frustum intersect, faster but has false positive corner cases
+ !#zh 方向包围盒和锥台相交性检测,速度快,但有错误情况。 + @param obb Direction box + @param frustum frustum + */ + static obb_frustum(obb: geomUtils.Obb, frustum: Frustum): number; + /** + !#en obb-frustum intersect, handles most of the false positives correctly
+ !#zh 方向包围盒和锥台相交性检测,正确处理大多数错误情况。 + @param obb Direction box + @param frustum frustum + */ + static obb_frustum_accurate(obb: geomUtils.Obb, frustum: Frustum): number; + /** + !#en obb-obb intersect
+ !#zh 方向包围盒和方向包围盒的相交性检测。 + @param obb1 Direction box1 + @param obb2 Direction box2 + */ + static obb_obb(obb1: geomUtils.Obb, obb2: geomUtils.Obb): number; + /** + !#en phere-plane intersect, not necessarily faster than obb-plane
+ due to the length calculation of the plane normal to factor out
+ the unnomalized plane distance
+ !#zh 球与平面的相交性检测。 + @param sphere sphere + @param plane plane + */ + static sphere_plane(sphere: geomUtils.Sphere, plane: geomUtils.Plane): number; + /** + !#en sphere-frustum intersect, faster but has false positive corner cases
+ !#zh 球和锥台的相交性检测,速度快,但有错误情况。 + @param sphere sphere + @param frustum frustum + */ + static sphere_frustum(sphere: geomUtils.Sphere, frustum: Frustum): number; + /** + !#en sphere-frustum intersect, handles the false positives correctly
+ !#zh 球和锥台的相交性检测,正确处理大多数错误情况。 + @param sphere sphere + @param frustum frustum + */ + static sphere_frustum_accurate(sphere: geomUtils.Sphere, frustum: Frustum): number; + /** + !#en sphere-sphere intersect
+ !#zh 球和球的相交性检测。 + @param sphere0 sphere0 + @param sphere1 sphere1 + */ + static sphere_sphere(sphere0: geomUtils.Sphere, sphere1: geomUtils.Sphere): boolean; + /** + !#en sphere-aabb intersect
+ !#zh 球和轴对齐包围盒的相交性检测。 + @param sphere sphere + @param aabb aabb + */ + static sphere_aabb(sphere: geomUtils.Sphere, aabb: Aabb): boolean; + /** + !#en sphere-obb intersect
+ !#zh 球和方向包围盒的相交性检测。 + @param sphere sphere + @param obb obb + */ + static sphere_obb(sphere: geomUtils.Sphere, obb: geomUtils.Obb): boolean; + /** + !#en + The intersection detection of g1 and g2 can fill in the shape in the basic geometry. + !#zh + g1 和 g2 的相交性检测,可填入基础几何中的形状。 + @param g1 Geometry 1 + @param g2 Geometry 2 + @param outPt optional, Intersection point. (note: only partial shape detection with this return value) + */ + static resolve(g1: any, g2: any, outPt: any): void; + } + } + + /**************************************************** + * geomUtils + *****************************************************/ + + export namespace geomUtils { + /** !#en + line + !#zh + 直线 */ + export class Line { + /** + !#en + create a new line + !#zh + 创建一个新的 line。 + @param sx The x part of the starting point. + @param sy The y part of the starting point. + @param sz The z part of the starting point. + @param ex The x part of the end point. + @param ey The y part of the end point. + @param ez The z part of the end point. + */ + create(sx: number, sy: number, sz: number, ex: number, ey: number, ez: number): Line; + /** + !#en + Creates a new line initialized with values from an existing line + !#zh + 克隆一个新的 line。 + @param a The source of cloning. + */ + clone(a: Line): Line; + /** + !#en + Copy the values from one line to another + !#zh + 复制一个线的值到另一个。 + @param out The object that accepts the action. + @param a The source of the copy. + */ + copy(out: Line, a: Line): Line; + /** + !#en + create a line from two points + !#zh + 用两个点创建一个线。 + @param out The object that accepts the action. + @param start The starting point. + @param end At the end. + */ + fromPoints(out: Line, start: Vec3, end: Vec3): Line; + /** + !#en + Set the components of a Vec3 to the given values + !#zh + 将给定线的属性设置为给定值。 + @param out The object that accepts the action. + @param sx The x part of the starting point. + @param sy The y part of the starting point. + @param sz The z part of the starting point. + @param ex The x part of the end point. + @param ey The y part of the end point. + @param ez The z part of the end point. + */ + set(out: Line, sx: number, sy: number, sz: number, ex: number, ey: number, ez: number): Line; + /** + !#en + Calculate the length of the line. + !#zh + 计算线的长度。 + @param a The line to calculate. + */ + len(a: Line): number; + /** !#en + Start points. + !#zh + 起点。 */ + s: Vec3; + /** !#en + End points. + !#zh + 终点。 */ + e: Vec3; + /** + !#en + Calculate the length of the line. + !#zh + 计算线的长度。 + */ + length(): number; + } + } + + /**************************************************** + * geomUtils + *****************************************************/ + + export namespace geomUtils { + /** !#en obb + !#zh + 基础几何 方向包围盒。 */ + export class Obb { + /** !#zh + 获取形状的类型。 */ + type: number; + /** + !#en + create a new obb + !#zh + 创建一个新的 obb 实例。 + @param cx X coordinates of the shape relative to the origin. + @param cy Y coordinates of the shape relative to the origin. + @param cz Z coordinates of the shape relative to the origin. + @param hw Obb is half the width. + @param hh Obb is half the height. + @param hl Obb is half the Length. + @param ox_1 Direction matrix parameter. + @param ox_2 Direction matrix parameter. + @param ox_3 Direction matrix parameter. + @param oy_1 Direction matrix parameter. + @param oy_2 Direction matrix parameter. + @param oy_3 Direction matrix parameter. + @param oz_1 Direction matrix parameter. + @param oz_2 Direction matrix parameter. + @param oz_3 Direction matrix parameter. + */ + create(cx: number, cy: number, cz: number, hw: number, hh: number, hl: number, ox_1: number, ox_2: number, ox_3: number, oy_1: number, oy_2: number, oy_3: number, oz_1: number, oz_2: number, oz_3: number): Obb; + /** + !#en + clone a new obb + !#zh + 克隆一个 obb。 + @param a The target of cloning. + */ + clone(a: Obb): Obb; + /** + !#en + copy the values from one obb to another + !#zh + 将从一个 obb 的值复制到另一个 obb。 + @param out Obb that accepts the operation. + @param a Obb being copied. + */ + copy(out: Obb, a: Obb): Obb; + /** + !#en + create a new obb from two corner points + !#zh + 用两个点创建一个新的 obb。 + @param out Obb that accepts the operation. + @param minPos The smallest point of obb. + @param maxPos Obb's maximum point. + */ + fromPoints(out: Obb, minPos: Vec3, maxPos: Vec3): Obb; + /** + !#en + Set the components of a obb to the given values + !#zh + 将给定 obb 的属性设置为给定的值。 + @param cx X coordinates of the shape relative to the origin. + @param cy Y coordinates of the shape relative to the origin. + @param cz Z coordinates of the shape relative to the origin. + @param hw Obb is half the width. + @param hh Obb is half the height. + @param hl Obb is half the Length. + @param ox_1 Direction matrix parameter. + @param ox_2 Direction matrix parameter. + @param ox_3 Direction matrix parameter. + @param oy_1 Direction matrix parameter. + @param oy_2 Direction matrix parameter. + @param oy_3 Direction matrix parameter. + @param oz_1 Direction matrix parameter. + @param oz_2 Direction matrix parameter. + @param oz_3 Direction matrix parameter. + */ + set(cx: number, cy: number, cz: number, hw: number, hh: number, hl: number, ox_1: number, ox_2: number, ox_3: number, oy_1: number, oy_2: number, oy_3: number, oz_1: number, oz_2: number, oz_3: number): Obb; + /** !#en + The center of the local coordinate. + !#zh + 本地坐标的中心点。 */ + center: Vec3; + /** !#en + Half the length, width, and height. + !#zh + 长宽高的一半。 */ + halfExtents: Vec3; + /** !#en + Direction matrix. + !#zh + 方向矩阵。 */ + orientation: Mat3; + /** + !#en + Get the bounding points of this shape + !#zh + 获取 obb 的最小点和最大点。 + @param minPos minPos + @param maxPos maxPos + */ + getBoundary(minPos: Vec3, maxPos: Vec3): void; + /** + !#en Transform this shape + !#zh + 将 out 根据这个 obb 的数据进行变换。 + @param m The transformation matrix. + @param pos The position part of the transformation. + @param rot The rotating part of the transformation. + @param scale The scaling part of the transformation. + @param out Target of transformation. + */ + transform(m: Mat4, pos: Vec3, rot: Quat, scale: Vec3, out: Obb): void; + /** + !#en + Transform out based on this obb data. + !#zh + 将 out 根据这个 obb 的数据进行变换。 + @param m The transformation matrix. + @param rot The rotating part of the transformation. + @param out Target of transformation. + */ + translateAndRotate(m: Mat4, rot: Quat, out: Obb): void; + /** + !#en + Scale out based on this obb data. + !#zh + 将 out 根据这个 obb 的数据进行缩放。 + @param scale Scale value. + @param out Scaled target. + */ + setScale(scale: Vec3, out: Obb): void; + } + } + + /**************************************************** + * geomUtils + *****************************************************/ + + export namespace geomUtils { + /** !#en + plane。 + !#zh + 平面。 */ + export class Plane { + /** + !#en + create a new plane + !#zh + 创建一个新的 plane。 + @param nx The x part of the normal component. + @param ny The y part of the normal component. + @param nz The z part of the normal component. + @param d Distance from the origin. + */ + create(nx: number, ny: number, nz: number, d: number): Plane; + /** + !#en + clone a new plane + !#zh + 克隆一个新的 plane。 + @param p The source of cloning. + */ + clone(p: Plane): Plane; + /** + !#en + copy the values from one plane to another + !#zh + 复制一个平面的值到另一个。 + @param out The object that accepts the action. + @param p The source of the copy. + */ + copy(out: Plane, p: Plane): Plane; + /** + !#en + create a plane from three points + !#zh + 用三个点创建一个平面。 + @param out The object that accepts the action. + @param a Point a。 + @param b Point b。 + @param c Point c。 + */ + fromPoints(out: Plane, a: Vec3, b: Vec3, c: Vec3): Plane; + /** + !#en + Set the components of a plane to the given values + !#zh + 将给定平面的属性设置为给定值。 + @param out The object that accepts the action. + @param nx The x part of the normal component. + @param ny The y part of the normal component. + @param nz The z part of the normal component. + @param d Distance from the origin. + */ + set(out: Plane, nx: number, ny: number, nz: number, d: number): Plane; + /** + !#en + create plane from normal and point + !#zh + 用一条法线和一个点创建平面。 + @param out The object that accepts the action. + @param normal The normal of a plane. + @param point A point on the plane. + */ + fromNormalAndPoint(out: Plane, normal: Vec3, point: Vec3): Plane; + /** + !#en + normalize a plane + !#zh + 归一化一个平面。 + @param out The object that accepts the action. + @param a Source data for operations. + */ + normalize(out: Plane, a: Plane): Plane; + /** !#en + A normal vector. + !#zh + 法线向量。 */ + n: Vec3; + /** !#en + The distance from the origin to the plane. + !#zh + 原点到平面的距离。 */ + d: number; + /** + !#en + Transform a plane. + !#zh + 变换一个平面。 + @param mat mat + */ + transform(mat: Mat4): void; + } + } + + /**************************************************** + * geomUtils + *****************************************************/ + + export namespace geomUtils { + /** !#en + ray + !#zh + 射线。 */ + export class Ray { + /** + !#en + create a new ray + !#zh + 创建一条射线。 + @param ox The x part of the starting point. + @param oy The y part of the starting point. + @param oz The z part of the starting point. + @param dx X in the direction. + @param dy Y in the direction. + @param dz Z in the direction. + */ + create(ox: number, oy: number, oz: number, dx: number, dy: number, dz: number): Ray; + /** + !#en + Creates a new ray initialized with values from an existing ray + !#zh + 从一条射线克隆出一条新的射线。 + @param a Clone target + */ + clone(a: Ray): Ray; + /** + !#en + Copy the values from one ray to another + !#zh + 将从一个 ray 的值复制到另一个 ray。 + @param out Accept the ray of the operation. + @param a Copied ray. + */ + copy(out: Ray, a: Ray): Ray; + /** + !#en + create a ray from two points + !#zh + 用两个点创建一条射线。 + @param out Receive the operating ray. + @param origin Origin of ray + @param target A point on a ray. + */ + fromPoints(out: Ray, origin: Vec3, target: Vec3): Ray; + /** + !#en + Set the components of a ray to the given values + !#zh + 将给定射线的属性设置为给定的值。 + @param out Receive the operating ray. + @param ox The x part of the starting point. + @param oy The y part of the starting point. + @param oz The z part of the starting point. + @param dx X in the direction. + @param dy Y in the direction. + @param dz Z in the direction. + */ + set(out: Ray, ox: number, oy: number, oz: number, dx: number, dy: number, dz: number): Ray; + /** !#en + Start point. + !#zh + 起点。 */ + o: Vec3; + /** !#e + Direction + !#zh + 方向。 */ + d: Vec3; + /** + !#en Compute hit. + @param out out + @param distance distance + */ + computeHit(out: IVec3Like, distance: number): void; + } + } + + /**************************************************** + * geomUtils + *****************************************************/ + + export namespace geomUtils { + /** !#en + Sphere. + !#zh + 轴对齐球。 */ + export class Sphere { + /** + !#en + create a new sphere + !#zh + 创建一个新的 sphere 实例。 + @param cx X coordinates of the shape relative to the origin. + @param cy Y coordinates of the shape relative to the origin. + @param cz Z coordinates of the shape relative to the origin. + @param r Radius of sphere + */ + create(cx: any, cy: any, cz: any, r: any): Sphere; + /** + !#en + clone a new sphere + !#zh + 克隆一个新的 sphere 实例。 + @param p The target of cloning. + */ + clone(p: Sphere): Sphere; + /** + !#en + copy the values from one sphere to another + !#zh + 将从一个 sphere 的值复制到另一个 sphere。 + @param out Accept the sphere of operations. + @param a Sphere being copied. + */ + copy(out: Sphere, a: Sphere): Sphere; + /** + !#en + create a new bounding sphere from two corner points + !#zh + 从两个点创建一个新的 sphere。 + @param out Accept the sphere of operations. + @param minPos The smallest point of sphere. + @param maxPos The maximum point of sphere. + */ + fromPoints(out: any, minPos: any, maxPos: any): Sphere; + /** + !#en Set the components of a sphere to the given values + !#zh 将球体的属性设置为给定的值。 + @param out Accept the sphere of operations. + @param cx X coordinates of the shape relative to the origin. + @param cy Y coordinates of the shape relative to the origin. + @param cz Z coordinates of the shape relative to the origin. + @param r Radius. + */ + set(out: Sphere, cx: any, cy: any, cz: any, r: number): Sphere; + /** !#en + The center of the local coordinate. + !#zh + 本地坐标的中心点。 */ + center: Vec3; + /** !#zh + 半径。 */ + radius: number; + /** + !#en + Clone. + !#zh + 获得克隆。 + */ + clone(): void; + /** + !#en + Copy sphere + !#zh + 拷贝对象。 + @param a Copy target. + */ + copy(a: any): void; + /** + !#en + Get the bounding points of this shape + !#zh + 获取此形状的边界点。 + @param minPos minPos + @param maxPos maxPos + */ + getBoundary(minPos: Vec3, maxPos: Vec3): void; + /** + !#en + Transform this shape + !#zh + 将 out 根据这个 sphere 的数据进行变换。 + @param m The transformation matrix. + @param pos The position part of the transformation. + @param rot The rotating part of the transformation. + @param scale The scaling part of the transformation. + @param out The target of the transformation. + */ + transform(m: any, pos: any, rot: any, scale: any, out: any): void; + /** + !#en + Scale out based on the sphere data. + !#zh + 将 out 根据这个 sphere 的数据进行缩放。 + @param scale Scale value + @param out Scale target + */ + setScale(scale: any, out: any): void; + } + } + + /**************************************************** + * geomUtils + *****************************************************/ + + export namespace geomUtils { + /** Triangle */ + export class Triangle { + /** + create a new triangle + @param ax ax + @param ay ay + @param az az + @param bx bx + @param by by + @param bz bz + @param cx cx + @param cy cy + @param cz cz + */ + create(ax: number, ay: number, az: number, bx: number, by: number, bz: number, cx: number, cy: number, cz: number): Triangle; + /** + clone a new triangle + @param t the source plane + */ + clone(t: Triangle): Triangle; + /** + copy the values from one triangle to another + @param out the receiving triangle + @param t the source triangle + */ + copy(out: Triangle, t: Triangle): Triangle; + /** + Create a triangle from three points + @param out the receiving triangle + @param a a + @param b b + @param c c + */ + fromPoints(out: Triangle, a: Vec3, b: Vec3, c: Vec3): Triangle; + /** + Set the components of a triangle to the given values + @param out the receiving plane + @param ax X component of a + @param ay Y component of a + @param az Z component of a + @param bx X component of b + @param by Y component of b + @param bz Z component of b + @param cx X component of c + @param cy Y component of c + @param cz Z component of c + */ + set(out: Triangle, ax: number, ay: number, az: number, bx: number, by: number, bz: number, cx: number, cy: number, cz: number): Plane; + a: Vec3; + b: Vec3; + c: Vec3; + } + } + + /**************************************************** + * Camera + *****************************************************/ + + export namespace Camera { + /** !#en Values for Camera.clearFlags, determining what to clear when rendering a Camera. + !#zh 摄像机清除标记位,决定摄像机渲染时会清除哪些状态 */ + export enum ClearFlags { + COLOR = 0, + DEPTH = 0, + STENCIL = 0, + } + } + + /**************************************************** + * MeshRenderer + *****************************************************/ + + export namespace MeshRenderer { + /** !#en Shadow projection mode + + !#ch 阴影投射方式 */ + export enum ShadowCastingMode { + OFF = 0, + ON = 0, + } + } + + /**************************************************** + * PhysicsManager + *****************************************************/ + + export namespace PhysicsManager { + /** !#en + The draw bits for drawing physics debug information.
+ example:
+ ```js + cc.director.getPhysicsManager().debugDrawFlags = + // cc.PhysicsManager.DrawBits.e_aabbBit | + // cc.PhysicsManager.DrawBits.e_pairBit | + // cc.PhysicsManager.DrawBits.e_centerOfMassBit | + cc.PhysicsManager.DrawBits.e_jointBit | + cc.PhysicsManager.DrawBits.e_shapeBit; + ``` + !#zh + 指定物理系统需要绘制哪些调试信息。
+ example:
+ ```js + cc.director.getPhysicsManager().debugDrawFlags = + // cc.PhysicsManager.DrawBits.e_aabbBit | + // cc.PhysicsManager.DrawBits.e_pairBit | + // cc.PhysicsManager.DrawBits.e_centerOfMassBit | + cc.PhysicsManager.DrawBits.e_jointBit | + cc.PhysicsManager.DrawBits.e_shapeBit; + ``` */ + export enum DrawBits { + e_aabbBit = 0, + e_jointBit = 0, + e_shapeBit = 0, + } + } + + /**************************************************** + * macro + *****************************************************/ + + export namespace macro { + /** !#en Key map for keyboard event + !#zh 键盘事件的按键值 */ + export enum KEY { + none = 0, + back = 0, + menu = 0, + backspace = 0, + tab = 0, + enter = 0, + shift = 0, + ctrl = 0, + alt = 0, + pause = 0, + capslock = 0, + escape = 0, + space = 0, + pageup = 0, + pagedown = 0, + end = 0, + home = 0, + left = 0, + up = 0, + right = 0, + down = 0, + select = 0, + insert = 0, + Delete = 0, + a = 0, + b = 0, + c = 0, + d = 0, + e = 0, + f = 0, + g = 0, + h = 0, + i = 0, + j = 0, + k = 0, + l = 0, + m = 0, + n = 0, + o = 0, + p = 0, + q = 0, + r = 0, + s = 0, + t = 0, + u = 0, + v = 0, + w = 0, + x = 0, + y = 0, + z = 0, + num0 = 0, + num1 = 0, + num2 = 0, + num3 = 0, + num4 = 0, + num5 = 0, + num6 = 0, + num7 = 0, + num8 = 0, + num9 = 0, + '*' = 0, + '+' = 0, + '-' = 0, + numdel = 0, + '/' = 0, + f1 = 0, + f2 = 0, + f3 = 0, + f4 = 0, + f5 = 0, + f6 = 0, + f7 = 0, + f8 = 0, + f9 = 0, + f10 = 0, + f11 = 0, + f12 = 0, + numlock = 0, + scrolllock = 0, + ';' = 0, + semicolon = 0, + equal = 0, + '=' = 0, + ',' = 0, + comma = 0, + dash = 0, + '.' = 0, + period = 0, + forwardslash = 0, + grave = 0, + '[' = 0, + openbracket = 0, + backslash = 0, + ']' = 0, + closebracket = 0, + quote = 0, + dpadLeft = 0, + dpadRight = 0, + dpadUp = 0, + dpadDown = 0, + dpadCenter = 0, + } + } + + /**************************************************** + * macro + *****************************************************/ + + export namespace macro { + /** Image formats */ + export enum ImageFormat { + JPG = 0, + PNG = 0, + TIFF = 0, + WEBP = 0, + PVR = 0, + ETC = 0, + S3TC = 0, + ATITC = 0, + TGA = 0, + RAWDATA = 0, + UNKNOWN = 0, + } + } + + /**************************************************** + * macro + *****************************************************/ + + export namespace macro { + /** !#en + Enum for blend factor + Refer to: http://www.andersriggelsen.dk/glblendfunc.php + !#zh + 混合因子 + 可参考: http://www.andersriggelsen.dk/glblendfunc.php */ + export enum BlendFactor { + ONE = 0, + ZERO = 0, + SRC_ALPHA = 0, + SRC_COLOR = 0, + DST_ALPHA = 0, + DST_COLOR = 0, + ONE_MINUS_SRC_ALPHA = 0, + ONE_MINUS_SRC_COLOR = 0, + ONE_MINUS_DST_ALPHA = 0, + ONE_MINUS_DST_COLOR = 0, + } + } + + /**************************************************** + * macro + *****************************************************/ + + export namespace macro { + /** undefined */ + export enum TextAlignment { + LEFT = 0, + CENTER = 0, + RIGHT = 0, + } + } + + /**************************************************** + * sys + *****************************************************/ + + export namespace sys { + /** !#en + Network type enumeration + !#zh + 网络类型枚举 */ + export enum NetworkType { + NONE = 0, + LAN = 0, + WWAN = 0, + } + } + + /**************************************************** + * AnimationCurve + *****************************************************/ + + export namespace AnimationCurve { + /** !#en The wrap mode + !#zh 循环模式 */ + export enum WrapMode { + Default = 0, + Once = 0, + Loop = 0, + PingPong = 0, + ClampForever = 0, + time = 0, + value = 0, + inTangent = 0, + outTangent = 0, + } + } + + /**************************************************** + * ParticleSystem3DAssembler + *****************************************************/ + + export namespace ParticleSystem3DAssembler { + /** undefined */ + export enum Space { + } + } + + /**************************************************** + * ParticleSystem3DAssembler + *****************************************************/ + + export namespace ParticleSystem3DAssembler { + /** 粒子的生成模式 */ + export enum RenderMode { + } + } + + /**************************************************** + * shapeModule + *****************************************************/ + + export namespace shapeModule { + /** 粒子发射器类型 */ + export enum ShapeType { + Box = 0, + Circle = 0, + Cone = 0, + Sphere = 0, + Hemisphere = 0, + } + } + + /**************************************************** + * shapeModule + *****************************************************/ + + export namespace shapeModule { + /** 粒子从发射器的哪个部位发射 */ + export enum EmitLocation { + Base = 0, + Edge = 0, + Shell = 0, + Volume = 0, + } + } + + /**************************************************** + * shapeModule + *****************************************************/ + + export namespace shapeModule { + /** 粒子在扇形区域的发射方式 */ + export enum ArcMode { + Random = 0, + Loop = 0, + PingPong = 0, + } + } + + /**************************************************** + * trailModule + *****************************************************/ + + export namespace trailModule { + /** 选择如何为粒子系统生成轨迹 */ + export enum TrailMode { + } + } + + /**************************************************** + * trailModule + *****************************************************/ + + export namespace trailModule { + /** 纹理填充模式 */ + export enum TextureMode { + } + } + + /**************************************************** + * primitive + *****************************************************/ + + export namespace primitive { + /** undefined */ + export enum PolyhedronType { + Tetrahedron = 0, + Octahedron = 0, + Dodecahedron = 0, + Icosahedron = 0, + Rhombicuboctahedron = 0, + TriangularPrism = 0, + PentagonalPrism = 0, + HexagonalPrism = 0, + SquarePyramid = 0, + PentagonalPyramid = 0, + TriangularDipyramid = 0, + PentagonalDipyramid = 0, + ElongatedSquareDipyramid = 0, + ElongatedPentagonalDipyramid = 0, + ElongatedPentagonalCupola = 0, + } + } + + /**************************************************** + * primitive + *****************************************************/ + + export namespace primitive { + /** undefined */ + export class VertexData { + positions: number[]; + normals: number[]; + uvs: number[]; + indices: number[]; + minPos: Vec3; + maxPos: Vec3; + boundingRadius: number; + } + } + + /**************************************************** + * Material + *****************************************************/ + + export namespace Material { + /** !#en Material builtin name + !#zh 内置材质名字 */ + export enum BUILTIN_NAME { + SPRITE = 0, + GRAY_SPRITE = 0, + UNLIT = 0, + } + } + + /**************************************************** + * EditBox + *****************************************************/ + + export namespace EditBox { + /** !#en Enum for keyboard return types + !#zh 键盘的返回键类型 */ + export enum KeyboardReturnType { + DEFAULT = 0, + DONE = 0, + SEND = 0, + SEARCH = 0, + GO = 0, + NEXT = 0, + } + } + + /**************************************************** + * EditBox + *****************************************************/ + + export namespace EditBox { + /** !#en The EditBox's InputMode defines the type of text that the user is allowed to enter. + !#zh 输入模式 */ + export enum InputMode { + ANY = 0, + EMAIL_ADDR = 0, + NUMERIC = 0, + PHONE_NUMBER = 0, + URL = 0, + DECIMAL = 0, + SINGLE_LINE = 0, + } + } + + /**************************************************** + * EditBox + *****************************************************/ + + export namespace EditBox { + /** !#en Enum for the EditBox's input flags + !#zh 定义了一些用于设置文本显示和文本格式化的标志位。 */ + export enum InputFlag { + PASSWORD = 0, + SENSITIVE = 0, + INITIAL_CAPS_WORD = 0, + INITIAL_CAPS_SENTENCE = 0, + INITIAL_CAPS_ALL_CHARACTERS = 0, + DEFAULT = 0, + } + } + + /**************************************************** + * textureAnimationModule + *****************************************************/ + + export namespace textureAnimationModule { + /** 粒子贴图动画类型 */ + export enum Mode { + } + } + + /**************************************************** + * textureAnimationModule + *****************************************************/ + + export namespace textureAnimationModule { + /** 贴图动画的播放方式 */ + export enum Animation { + } + } + +} + +/** !#en +The global main namespace of DragonBones, all classes, functions, +properties and constants of DragonBones are defined in this namespace +!#zh +DragonBones 的全局的命名空间, +与 DragonBones 相关的所有的类,函数,属性,常量都在这个命名空间中定义。 */ +declare namespace dragonBones { + /** !#en + The Armature Display of DragonBones
+
+ Armature Display has a reference to a DragonBonesAsset and stores the state for ArmatureDisplay instance, + which consists of the current pose's bone SRT, slot colors, and which slot attachments are visible.
+ Multiple Armature Display can use the same DragonBonesAsset which includes all animations, skins, and attachments.
+ !#zh + DragonBones 骨骼动画
+
+ Armature Display 具有对骨骼数据的引用并且存储了骨骼实例的状态, + 它由当前的骨骼动作,slot 颜色,和可见的 slot attachments 组成。
+ 多个 Armature Display 可以使用相同的骨骼数据,其中包括所有的动画,皮肤和 attachments。
*/ + export class ArmatureDisplay extends cc.RenderComponent { + /** !#en + The DragonBones data contains the armatures information (bind pose bones, slots, draw order, + attachments, skins, etc) and animations but does not hold any state.
+ Multiple ArmatureDisplay can share the same DragonBones data. + !#zh + 骨骼数据包含了骨骼信息(绑定骨骼动作,slots,渲染顺序, + attachments,皮肤等等)和动画但不持有任何状态。
+ 多个 ArmatureDisplay 可以共用相同的骨骼数据。 */ + dragonAsset: DragonBonesAsset; + /** !#en + The atlas asset for the DragonBones. + !#zh + 骨骼数据所需的 Atlas Texture 数据。 */ + dragonAtlasAsset: DragonBonesAtlasAsset; + /** !#en The name of current armature. + !#zh 当前的 Armature 名称。 */ + armatureName: string; + /** !#en The name of current playing animation. + !#zh 当前播放的动画名称。 */ + animationName: string; + _defaultArmatureIndex: number; + /** !#en The time scale of this armature. + !#zh 当前骨骼中所有动画的时间缩放率。 */ + timeScale: number; + /** !#en The play times of the default animation. + -1 means using the value of config file; + 0 means repeat for ever + >0 means repeat times + !#zh 播放默认动画的循环次数 + -1 表示使用配置文件中的默认值; + 0 表示无限循环 + >0 表示循环次数 */ + playTimes: number; + /** !#en Indicates whether to enable premultiplied alpha. + You should disable this option when image's transparent area appears to have opaque pixels, + or enable this option when image's half transparent area appears to be darken. + !#zh 是否启用贴图预乘。 + 当图片的透明区域出现色块时需要关闭该选项,当图片的半透明区域颜色变黑时需要启用该选项。 */ + premultipliedAlpha: boolean; + /** !#en Indicates whether open debug bones. + !#zh 是否显示 bone 的 debug 信息。 */ + debugBones: boolean; + /** !#en Enabled batch model, if skeleton is complex, do not enable batch, or will lower performance. + !#zh 开启合批,如果渲染大量相同纹理,且结构简单的骨骼动画,开启合批可以降低drawcall,否则请不要开启,cpu消耗会上升。 */ + enableBatch: boolean; + /** + !#en + The key of dragonbones cache data, which is regard as 'dragonbonesName', when you want to change dragonbones cloth. + !#zh + 缓存龙骨数据的key值,换装的时会使用到该值,作为dragonbonesName使用 + + @example + ```js + let factory = dragonBones.CCFactory.getInstance(); + let needChangeSlot = needChangeArmature.armature().getSlot("changeSlotName"); + factory.replaceSlotDisplay(toChangeArmature.getArmatureKey(), "armatureName", "slotName", "displayName", needChangeSlot); + ``` + */ + getArmatureKey(): string; + /** + !#en + It's best to set cache mode before set property 'dragonAsset', or will waste some cpu time. + If set the mode in editor, then no need to worry about order problem. + !#zh + 若想切换渲染模式,最好在设置'dragonAsset'之前,先设置好渲染模式,否则有运行时开销。 + 若在编辑中设置渲染模式,则无需担心设置次序的问题。 + @param cacheMode cacheMode + + @example + ```js + armatureDisplay.setAnimationCacheMode(dragonBones.ArmatureDisplay.AnimationCacheMode.SHARED_CACHE); + ``` + */ + setAnimationCacheMode(cacheMode: ArmatureDisplay.AnimationCacheMode): void; + /** + !#en Whether in cached mode. + !#zh 当前是否处于缓存模式。 + */ + isAnimationCached(): boolean; + /** + !#en + Play the specified animation. + Parameter animName specify the animation name. + Parameter playTimes specify the repeat times of the animation. + -1 means use the value of the config file. + 0 means play the animation for ever. + >0 means repeat times. + !#zh + 播放指定的动画. + animName 指定播放动画的名称。 + playTimes 指定播放动画的次数。 + -1 为使用配置文件中的次数。 + 0 为无限循环播放。 + >0 为动画的重复次数。 + @param animName animName + @param playTimes playTimes + */ + playAnimation(animName: string, playTimes: number): dragonBones.AnimationState; + /** + !#en + Updating an animation cache to calculate all frame data in the animation is a cost in + performance due to calculating all data in a single frame. + To update the cache, use the invalidAnimationCache method with high performance. + !#zh + 更新某个动画缓存, 预计算动画中所有帧数据,由于在单帧计算所有数据,所以较消耗性能。 + 若想更新缓存,可使用 invalidAnimationCache 方法,具有较高性能。 + @param animName animName + */ + updateAnimationCache(animName: string): void; + /** + !#en + Invalidates the animation cache, which is then recomputed on each frame.. + !#zh + 使动画缓存失效,之后会在每帧重新计算。 + */ + invalidAnimationCache(): void; + /** + !#en + Get the all armature names in the DragonBones Data. + !#zh + 获取 DragonBones 数据中所有的 armature 名称 + */ + getArmatureNames(): any[]; + /** + !#en + Get the all animation names of specified armature. + !#zh + 获取指定的 armature 的所有动画名称。 + @param armatureName armatureName + */ + getAnimationNames(armatureName: string): any[]; + /** + !#en + Add event listener for the DragonBones Event, the same to addEventListener. + !#zh + 添加 DragonBones 事件监听器,与 addEventListener 作用相同。 + @param type A string representing the event type to listen for. + @param listener The callback that will be invoked when the event is dispatched. + @param target The target (this object) to invoke the callback, can be null + */ + on(type: string, listener: (event: cc.Event) => void, target?: any): void; + /** + !#en + Remove the event listener for the DragonBones Event, the same to removeEventListener. + !#zh + 移除 DragonBones 事件监听器,与 removeEventListener 作用相同。 + @param type A string representing the event type to listen for. + @param listener listener + @param target target + */ + off(type: string, listener?: Function, target?: any): void; + /** + !#en + Add DragonBones one-time event listener, the callback will remove itself after the first time it is triggered. + !#zh + 添加 DragonBones 一次性事件监听器,回调会在第一时间被触发后删除自身。 + @param type A string representing the event type to listen for. + @param listener The callback that will be invoked when the event is dispatched. + @param target The target (this object) to invoke the callback, can be null + */ + once(type: string, listener: (event: cc.Event) => void, target?: any): void; + /** + !#en + Add event listener for the DragonBones Event. + !#zh + 添加 DragonBones 事件监听器。 + @param type A string representing the event type to listen for. + @param listener The callback that will be invoked when the event is dispatched. + @param target The target (this object) to invoke the callback, can be null + */ + addEventListener(type: string, listener: (event: cc.Event) => void, target?: any): void; + /** + !#en + Remove the event listener for the DragonBones Event. + !#zh + 移除 DragonBones 事件监听器。 + @param type A string representing the event type to listen for. + @param listener listener + @param target target + */ + removeEventListener(type: string, listener?: Function, target?: any): void; + /** + !#en + Build the armature for specified name. + !#zh + 构建指定名称的 armature 对象 + @param armatureName armatureName + @param node node + */ + buildArmature(armatureName: string, node: cc.Node): ArmatureDisplay; + /** + !#en + Get the current armature object of the ArmatureDisplay. + !#zh + 获取 ArmatureDisplay 当前使用的 Armature 对象 + */ + armature(): any; + } + /** DragonBones factory */ + export class CCFactory extends BaseFactory { + /** + + + @example + ```js + let factory = dragonBones.CCFactory.getInstance(); + ``` + */ + static getInstance(): CCFactory; + } + /** !#en The skeleton data of dragonBones. + !#zh dragonBones 的 骨骼数据。 */ + export class DragonBonesAsset extends cc.Asset { + /** !#en See http://developer.egret.com/cn/github/egret-docs/DB/dbLibs/dataFormat/index.html + !#zh 可查看 DragonBones 官方文档 http://developer.egret.com/cn/github/egret-docs/DB/dbLibs/dataFormat/index.html */ + dragonBonesJson: string; + } + /** !#en The skeleton atlas data of dragonBones. + !#zh dragonBones 的骨骼纹理数据。 */ + export class DragonBonesAtlasAsset extends cc.Asset { + atlasJson: string; + texture: cc.Texture2D; + } + /**************************************************** + * ArmatureDisplay + *****************************************************/ + + export namespace ArmatureDisplay { + /** !#en Enum for cache mode type. + !#zh Dragonbones渲染类型 */ + export enum AnimationCacheMode { + REALTIME = 0, + SHARED_CACHE = 0, + PRIVATE_CACHE = 0, + } + } + + /**************************************************** + * dragonBones + *****************************************************/ + + export namespace dragonBones { + /** !#en Attach node tool + !#zh 挂点工具类 */ + export class AttachUtil { + /** + !#en Gets attached root node. + !#zh 获取挂接节点树的根节点 + */ + getAttachedRootNode(): cc.Node; + /** + !#en Gets attached node which you want. + !#zh 获得对应的挂点 + @param boneName boneName + */ + getAttachedNodes(boneName: string): cc.Node[]; + /** + !#en Destroy attached node which you want. + !#zh 销毁对应的挂点 + @param boneName boneName + */ + destroyAttachedNodes(boneName: string): void; + /** + !#en Traverse all bones to generate the minimum node tree containing the given bone names, NOTE that make sure the skeleton has initialized before calling this interface. + !#zh 遍历所有插槽,生成包含所有给定插槽名称的最小节点树,注意,调用该接口前请确保骨骼动画已经初始化好。 + @param boneName boneName + */ + generateAttachedNodes(boneName: string): cc.Node[]; + /** + !#en Destroy all attached node. + !#zh 销毁所有挂点 + */ + destroyAllAttachedNodes(): void; + /** + !#en Traverse all bones to generate a tree containing all bones nodes, NOTE that make sure the skeleton has initialized before calling this interface. + !#zh 遍历所有插槽,生成包含所有插槽的节点树,注意,调用该接口前请确保骨骼动画已经初始化好。 + */ + generateAllAttachedNodes(): cc.Node; + } + } + +} + +/** !#en +The global main namespace of Spine, all classes, functions, +properties and constants of Spine are defined in this namespace +!#zh +Spine 的全局的命名空间, +与 Spine 相关的所有的类,函数,属性,常量都在这个命名空间中定义。 */ +declare namespace sp { + /** !#en + The skeleton of Spine
+
+ (Skeleton has a reference to a SkeletonData and stores the state for skeleton instance, + which consists of the current pose's bone SRT, slot colors, and which slot attachments are visible.
+ Multiple skeletons can use the same SkeletonData which includes all animations, skins, and attachments.)
+ !#zh + Spine 骨骼动画
+
+ (Skeleton 具有对骨骼数据的引用并且存储了骨骼实例的状态, + 它由当前的骨骼动作,slot 颜色,和可见的 slot attachments 组成。
+ 多个 Skeleton 可以使用相同的骨骼数据,其中包括所有的动画,皮肤和 attachments。 */ + export class Skeleton extends cc.RenderComponent { + /** !#en The skeletal animation is paused? + !#zh 该骨骼动画是否暂停。 */ + paused: boolean; + /** !#en + The skeleton data contains the skeleton information (bind pose bones, slots, draw order, + attachments, skins, etc) and animations but does not hold any state.
+ Multiple skeletons can share the same skeleton data. + !#zh + 骨骼数据包含了骨骼信息(绑定骨骼动作,slots,渲染顺序, + attachments,皮肤等等)和动画但不持有任何状态。
+ 多个 Skeleton 可以共用相同的骨骼数据。 */ + skeletonData: SkeletonData; + /** !#en The name of default skin. + !#zh 默认的皮肤名称。 */ + defaultSkin: string; + /** !#en The name of default animation. + !#zh 默认的动画名称。 */ + defaultAnimation: string; + /** !#en The name of current playing animation. + !#zh 当前播放的动画名称。 */ + animation: string; + _defaultSkinIndex: number; + /** !#en TODO + !#zh 是否循环播放当前骨骼动画。 */ + loop: boolean; + /** !#en Indicates whether to enable premultiplied alpha. + You should disable this option when image's transparent area appears to have opaque pixels, + or enable this option when image's half transparent area appears to be darken. + !#zh 是否启用贴图预乘。 + 当图片的透明区域出现色块时需要关闭该选项,当图片的半透明区域颜色变黑时需要启用该选项。 */ + premultipliedAlpha: boolean; + /** !#en The time scale of this skeleton. + !#zh 当前骨骼中所有动画的时间缩放率。 */ + timeScale: number; + /** !#en Indicates whether open debug slots. + !#zh 是否显示 slot 的 debug 信息。 */ + debugSlots: boolean; + /** !#en Indicates whether open debug bones. + !#zh 是否显示 bone 的 debug 信息。 */ + debugBones: boolean; + /** !#en Indicates whether open debug mesh. + !#zh 是否显示 mesh 的 debug 信息。 */ + debugMesh: boolean; + /** !#en Enabled two color tint. + !#zh 是否启用染色效果。 */ + useTint: boolean; + /** !#en Enabled batch model, if skeleton is complex, do not enable batch, or will lower performance. + !#zh 开启合批,如果渲染大量相同纹理,且结构简单的骨骼动画,开启合批可以降低drawcall,否则请不要开启,cpu消耗会上升。 */ + enableBatch: boolean; + /** + !#en + Sets runtime skeleton data to sp.Skeleton.
+ This method is different from the `skeletonData` property. This method is passed in the raw data provided by the Spine runtime, and the skeletonData type is the asset type provided by Creator. + !#zh + 设置底层运行时用到的 SkeletonData。
+ 这个接口有别于 `skeletonData` 属性,这个接口传入的是 Spine runtime 提供的原始数据,而 skeletonData 的类型是 Creator 提供的资源类型。 + @param skeletonData skeletonData + */ + setSkeletonData(skeletonData: sp.spine.SkeletonData): void; + /** + !#en Sets slots visible range. + !#zh 设置骨骼插槽可视范围。 + @param startSlotIndex startSlotIndex + @param endSlotIndex endSlotIndex + */ + setSlotsRange(startSlotIndex: number, endSlotIndex: number): void; + /** + !#en Sets animation state data.
+ The parameter type is {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.AnimationStateData. + !#zh 设置动画状态数据。
+ 参数是 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.AnimationStateData。 + @param stateData stateData + */ + setAnimationStateData(stateData: sp.spine.AnimationStateData): void; + /** + !#en + It's best to set cache mode before set property 'dragonAsset', or will waste some cpu time. + If set the mode in editor, then no need to worry about order problem. + !#zh + 若想切换渲染模式,最好在设置'dragonAsset'之前,先设置好渲染模式,否则有运行时开销。 + 若在编辑中设置渲染模式,则无需担心设置次序的问题。 + @param cacheMode cacheMode + + @example + ```js + skeleton.setAnimationCacheMode(sp.Skeleton.AnimationCacheMode.SHARED_CACHE); + ``` + */ + setAnimationCacheMode(cacheMode: Skeleton.AnimationCacheMode): void; + /** + !#en Whether in cached mode. + !#zh 当前是否处于缓存模式。 + */ + isAnimationCached(): boolean; + /** + !#en Sets vertex effect delegate. + !#zh 设置顶点动画代理 + @param effectDelegate effectDelegate + */ + setVertexEffectDelegate(effectDelegate: VertexEffectDelegate): void; + /** + !#en Computes the world SRT from the local SRT for each bone. + !#zh 重新更新所有骨骼的世界 Transform, + 当获取 bone 的数值未更新时,即可使用该函数进行更新数值。 + + @example + ```js + var bone = spine.findBone('head'); + cc.log(bone.worldX); // return 0; + spine.updateWorldTransform(); + bone = spine.findBone('head'); + cc.log(bone.worldX); // return -23.12; + ``` + */ + updateWorldTransform(): void; + /** + !#en Sets the bones and slots to the setup pose. + !#zh 还原到起始动作 + */ + setToSetupPose(): void; + /** + !#en + Sets the bones to the setup pose, + using the values from the `BoneData` list in the `SkeletonData`. + !#zh + 设置 bone 到起始动作 + 使用 SkeletonData 中的 BoneData 列表中的值。 + */ + setBonesToSetupPose(): void; + /** + !#en + Sets the slots to the setup pose, + using the values from the `SlotData` list in the `SkeletonData`. + !#zh + 设置 slot 到起始动作。 + 使用 SkeletonData 中的 SlotData 列表中的值。 + */ + setSlotsToSetupPose(): void; + /** + !#en + Updating an animation cache to calculate all frame data in the animation is a cost in + performance due to calculating all data in a single frame. + To update the cache, use the invalidAnimationCache method with high performance. + !#zh + 更新某个动画缓存, 预计算动画中所有帧数据,由于在单帧计算所有数据,所以较消耗性能。 + 若想更新缓存,可使用 invalidAnimationCache 方法,具有较高性能。 + @param animName animName + */ + updateAnimationCache(animName: string): void; + /** + !#en + Invalidates the animation cache, which is then recomputed on each frame.. + !#zh + 使动画缓存失效,之后会在每帧重新计算。 + */ + invalidAnimationCache(): void; + /** + !#en + Finds a bone by name. + This does a string comparison for every bone.
+ Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Bone object. + !#zh + 通过名称查找 bone。 + 这里对每个 bone 的名称进行了对比。
+ 返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Bone 对象。 + @param boneName boneName + */ + findBone(boneName: string): sp.spine.Bone; + /** + !#en + Finds a slot by name. This does a string comparison for every slot.
+ Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Slot object. + !#zh + 通过名称查找 slot。这里对每个 slot 的名称进行了比较。
+ 返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Slot 对象。 + @param slotName slotName + */ + findSlot(slotName: string): sp.spine.Slot; + /** + !#en + Finds a skin by name and makes it the active skin. + This does a string comparison for every skin.
+ Note that setting the skin does not change which attachments are visible.
+ Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Skin object. + !#zh + 按名称查找皮肤,激活该皮肤。这里对每个皮肤的名称进行了比较。
+ 注意:设置皮肤不会改变 attachment 的可见性。
+ 返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Skin 对象。 + @param skinName skinName + */ + setSkin(skinName: string): void; + /** + !#en + Returns the attachment for the slot and attachment name. + The skeleton looks first in its skin, then in the skeleton data’s default skin.
+ Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Attachment object. + !#zh + 通过 slot 和 attachment 的名称获取 attachment。Skeleton 优先查找它的皮肤,然后才是 Skeleton Data 中默认的皮肤。
+ 返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.Attachment 对象。 + @param slotName slotName + @param attachmentName attachmentName + */ + getAttachment(slotName: string, attachmentName: string): sp.spine.Attachment; + /** + !#en + Sets the attachment for the slot and attachment name. + The skeleton looks first in its skin, then in the skeleton data’s default skin. + !#zh + 通过 slot 和 attachment 的名字来设置 attachment。 + Skeleton 优先查找它的皮肤,然后才是 Skeleton Data 中默认的皮肤。 + @param slotName slotName + @param attachmentName attachmentName + */ + setAttachment(slotName: string, attachmentName: string): void; + /** + Return the renderer of attachment. + @param regionAttachment regionAttachment + */ + getTextureAtlas(regionAttachment: sp.spine.RegionAttachment|spine.BoundingBoxAttachment): sp.spine.TextureAtlasRegion; + /** + !#en + Mix applies all keyframe values, + interpolated for the specified time and mixed with the current values. + !#zh 为所有关键帧设定混合及混合时间(从当前值开始差值)。 + @param fromAnimation fromAnimation + @param toAnimation toAnimation + @param duration duration + */ + setMix(fromAnimation: string, toAnimation: string, duration: number): void; + /** + !#en Set the current animation. Any queued animations are cleared.
+ Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.TrackEntry object. + !#zh 设置当前动画。队列中的任何的动画将被清除。
+ 返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.TrackEntry 对象。 + @param trackIndex trackIndex + @param name name + @param loop loop + */ + setAnimation(trackIndex: number, name: string, loop: boolean): sp.spine.TrackEntry; + /** + !#en Adds an animation to be played delay seconds after the current or last queued animation.
+ Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.TrackEntry object. + !#zh 添加一个动画到动画队列尾部,还可以延迟指定的秒数。
+ 返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.TrackEntry 对象。 + @param trackIndex trackIndex + @param name name + @param loop loop + @param delay delay + */ + addAnimation(trackIndex: number, name: string, loop: boolean, delay?: number): sp.spine.TrackEntry; + /** + !#en Find animation with specified name. + !#zh 查找指定名称的动画 + @param name name + */ + findAnimation(name: string): sp.spine.Animation; + /** + !#en Returns track entry by trackIndex.
+ Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.TrackEntry object. + !#zh 通过 track 索引获取 TrackEntry。
+ 返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.TrackEntry 对象。 + @param trackIndex trackIndex + */ + getCurrent(trackIndex: any): sp.spine.TrackEntry; + /** + !#en Clears all tracks of animation state. + !#zh 清除所有 track 的动画状态。 + */ + clearTracks(): void; + /** + !#en Clears track of animation state by trackIndex. + !#zh 清除出指定 track 的动画状态。 + @param trackIndex trackIndex + */ + clearTrack(trackIndex: number): void; + /** + !#en Set the start event listener. + !#zh 用来设置开始播放动画的事件监听。 + @param listener listener + */ + setStartListener(listener: Function): void; + /** + !#en Set the interrupt event listener. + !#zh 用来设置动画被打断的事件监听。 + @param listener listener + */ + setInterruptListener(listener: Function): void; + /** + !#en Set the end event listener. + !#zh 用来设置动画播放完后的事件监听。 + @param listener listener + */ + setEndListener(listener: Function): void; + /** + !#en Set the dispose event listener. + !#zh 用来设置动画将被销毁的事件监听。 + @param listener listener + */ + setDisposeListener(listener: Function): void; + /** + !#en Set the complete event listener. + !#zh 用来设置动画播放一次循环结束后的事件监听。 + @param listener listener + */ + setCompleteListener(listener: Function): void; + /** + !#en Set the animation event listener. + !#zh 用来设置动画播放过程中帧事件的监听。 + @param listener listener + */ + setEventListener(listener: Function): void; + /** + !#en Set the start event listener for specified TrackEntry. + !#zh 用来为指定的 TrackEntry 设置动画开始播放的事件监听。 + @param entry entry + @param listener listener + */ + setTrackStartListener(entry: sp.spine.TrackEntry, listener: Function): void; + /** + !#en Set the interrupt event listener for specified TrackEntry. + !#zh 用来为指定的 TrackEntry 设置动画被打断的事件监听。 + @param entry entry + @param listener listener + */ + setTrackInterruptListener(entry: sp.spine.TrackEntry, listener: Function): void; + /** + !#en Set the end event listener for specified TrackEntry. + !#zh 用来为指定的 TrackEntry 设置动画播放结束的事件监听。 + @param entry entry + @param listener listener + */ + setTrackEndListener(entry: sp.spine.TrackEntry, listener: Function): void; + /** + !#en Set the dispose event listener for specified TrackEntry. + !#zh 用来为指定的 TrackEntry 设置动画即将被销毁的事件监听。 + @param entry entry + @param listener listener + */ + setTrackDisposeListener(entry: sp.spine.TrackEntry, listener: Function): void; + /** + !#en Set the complete event listener for specified TrackEntry. + !#zh 用来为指定的 TrackEntry 设置动画一次循环播放结束的事件监听。 + @param entry entry + @param listener listener + */ + setTrackCompleteListener(entry: sp.spine.TrackEntry, listener: (entry: sp.spine.TrackEntry, loopCount: number) => void): void; + /** + !#en Set the event listener for specified TrackEntry. + !#zh 用来为指定的 TrackEntry 设置动画帧事件的监听。 + @param entry entry + @param listener listener + */ + setTrackEventListener(entry: sp.spine.TrackEntry, listener: Function): void; + /** + !#en Get the animation state object + !#zh 获取动画状态 + */ + getState(): sp.spine.AnimationState; + } + /** !#en The event type of spine skeleton animation. + !#zh 骨骼动画事件类型。 */ + export enum AnimationEventType { + START = 0, + END = 0, + COMPLETE = 0, + EVENT = 0, + } + /** !#en The skeleton data of spine. + !#zh Spine 的 骨骼数据。 */ + export class SkeletonData extends cc.Asset { + /** !#en See http://en.esotericsoftware.com/spine-json-format + !#zh 可查看 Spine 官方文档 http://zh.esotericsoftware.com/spine-json-format */ + skeletonJson: any; + atlasText: string; + textures: cc.Texture2D[]; + /** !#en + A scale can be specified on the JSON or binary loader which will scale the bone positions, + image sizes, and animation translations. + This can be useful when using different sized images than were used when designing the skeleton + in Spine. For example, if using images that are half the size than were used in Spine, + a scale of 0.5 can be used. This is commonly used for games that can run with either low or high + resolution texture atlases. + see http://en.esotericsoftware.com/spine-using-runtimes#Scaling + !#zh 可查看 Spine 官方文档: http://zh.esotericsoftware.com/spine-using-runtimes#Scaling */ + scale: number; + /** + !#en Get the included SkeletonData used in spine runtime.
+ Returns a {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.SkeletonData object. + !#zh 获取 Spine Runtime 使用的 SkeletonData。
+ 返回一个 {{#crossLinkModule "sp.spine"}}sp.spine{{/crossLinkModule}}.SkeletonData 对象。 + @param quiet quiet + */ + getRuntimeData(quiet?: boolean): sp.spine.SkeletonData; + } + /** !#en + The delegate of spine vertex effect + !#zh + Spine 顶点动画代理 */ + export class VertexEffectDelegate { + /** + !#en Clears vertex effect. + !#zh 清空顶点效果 + */ + clear(): void; + /** + !#en Inits delegate with jitter effect + !#zh 设置顶点抖动效果 + @param jitterX jitterX + @param jitterY jitterY + */ + initJitter(jitterX: number, jitterY: number): void; + /** + !#en Inits delegate with swirl effect + !#zh 设置顶点漩涡效果 + @param radius radius + @param power power + */ + initSwirlWithPow(radius: number, power: number): sp.spine.JitterEffect; + /** + !#en Inits delegate with swirl effect + !#zh 设置顶点漩涡效果 + @param radius radius + @param power power + */ + initSwirlWithPowOut(radius: number, power: number): sp.spine.SwirlEffect; + /** + !#en Gets jitter vertex effect + !#zh 获取顶点抖动效果 + */ + getJitterVertexEffect(): sp.spine.JitterEffect; + /** + !#en Gets swirl vertex effect + !#zh 获取顶点漩涡效果 + */ + getSwirlVertexEffect(): sp.spine.SwirlEffect; + /** + !#en Gets vertex effect + !#zh 获取顶点效果 + */ + getVertexEffect(): sp.spine.JitterEffect; + /** + !#en Gets effect type + !#zh 获取效果类型 + */ + getEffectType(): string; + } + /**************************************************** + * sp + *****************************************************/ + + export namespace sp { + /** !#en Attach node tool + !#zh 挂点工具类 */ + export class AttachUtil { + /** + !#en Gets attached root node. + !#zh 获取挂接节点树的根节点 + */ + getAttachedRootNode(): cc.Node; + /** + !#en Gets attached node which you want. + !#zh 获得对应的挂点 + @param boneName boneName + */ + getAttachedNodes(boneName: string): cc.Node[]; + /** + !#en Destroy attached node which you want. + !#zh 销毁对应的挂点 + @param boneName boneName + */ + destroyAttachedNodes(boneName: string): void; + /** + !#en Traverse all bones to generate the minimum node tree containing the given bone names, NOTE that make sure the skeleton has initialized before calling this interface. + !#zh 遍历所有插槽,生成包含所有给定插槽名称的最小节点树,注意,调用该接口前请确保骨骼动画已经初始化好。 + @param boneName boneName + */ + generateAttachedNodes(boneName: string): cc.Node[]; + /** + !#en Destroy all attached node. + !#zh 销毁所有挂点 + */ + destroyAllAttachedNodes(): void; + /** + !#en Traverse all bones to generate a tree containing all bones nodes, NOTE that make sure the skeleton has initialized before calling this interface. + !#zh 遍历所有插槽,生成包含所有插槽的节点树,注意,调用该接口前请确保骨骼动画已经初始化好。 + */ + generateAllAttachedNodes(): cc.Node; + } + } + + /**************************************************** + * Skeleton + *****************************************************/ + + export namespace Skeleton { + /** !#en Enum for animation cache mode type. + !#zh Spine动画缓存类型 */ + export enum AnimationCacheMode { + REALTIME = 0, + SHARED_CACHE = 0, + PRIVATE_CACHE = 0, + } + } + +} + +/** !#en +`sp.spine` is the namespace for official Spine Runtime, which officially implemented and maintained by Spine.
+Please refer to the official documentation for its detailed usage: [http://en.esotericsoftware.com/spine-using-runtimes](http://en.esotericsoftware.com/spine-using-runtimes) +!#zh +sp.spine 模块是 Spine 官方运行库的 API 入口,由 Spine 官方统一实现和维护,具体用法请参考:[http://zh.esotericsoftware.com/spine-using-runtimes](http://zh.esotericsoftware.com/spine-using-runtimes) */ +declare namespace sp.spine { +} + +/** !#en +This module controls asset's behaviors and information, include loading, releasing etc. +All member can be accessed with `cc.assetManager`. All class or enum can be accessed with `cc.AssetManager` + +!#zh +此模块管理资源的行为和信息,包括加载,释放等,所有成员能够通过 `cc.assetManager` 调用. 所有类型或枚举能通过 `cc.AssetManager` 访问 */ +declare namespace cc.AssetManager { + /** !#en + This module contains the builtin asset, it's a singleton, all member can be accessed with `cc.assetManager.builtins` + + !#zh + 此模块包含内建资源,这是一个单例,所有成员能通过 `cc.assetManager.builtins` 访问 */ + export class Builtins { + /** + !#en + Initialize + + !#zh + 初始化 + @param cb Callback when finish loading built-in assets + */ + init (cb: () => void): void; + /** + !#en + Get the built-in asset using specific type and name. + + !#zh + 通过特定的类型和名称获取内建资源 + @param type The type of asset, such as `effect` + @param name The name of asset, such as `phong` + + @example + ```js + cc.assetManaer.builtins.getBuiltin('effect', 'phone'); + ``` + */ + getBuiltin(type?: string, name?: string): cc.Asset | Cache; + /** + !#en + Clear all builtin assets + + !#zh + 清空所有内置资源 + */ + clear(): void; + } + /** !#en + A bundle contains an amount of assets(includes scene), you can load, preload, release asset which is in this bundle + + !#zh + 一个包含一定数量资源(包括场景)的包,你可以加载,预加载,释放此包内的资源 */ + export class Bundle { + /** + !#en + Create a bundle + + !#zh + 创建一个 bundle + */ + constructor(); + /** !#en + The name of this bundle + + !#zh + 此 bundle 的名称 */ + name: string; + /** !#en + The dependency of this bundle + + !#zh + 此 bundle 的依赖 */ + deps: string[]; + /** !#en + The root path of this bundle, such like 'http://example.com/bundle1' + + !#zh + 此 bundle 的根路径, 例如 'http://example.com/bundle1' */ + base: string; + /** + !#en + Get asset's info using path, only valid when asset is in bundle folder. + + !#zh + 使用 path 获取资源的配置信息 + @param path The relative path of asset, such as 'images/a' + @param type The constructor of asset, such as `cc.Texture2D` + + @example + ```js + var info = bundle.getInfoWithPath('image/a', cc.Texture2D); + ``` + */ + getInfoWithPath (path: string, type?: typeof cc.Asset): Record; + /** + !#en + Get all asset's info within specific folder + + !#zh + 获取在某个指定文件夹下的所有资源信息 + @param path The relative path of folder, such as 'images' + @param type The constructor should be used to filter paths + @param out The output array + + @example + ```js + var infos = []; + bundle.getDirWithPath('images', cc.Texture2D, infos); + ``` + */ + getDirWithPath (path: string, type: typeof cc.Asset, out: Array>): Array>; + getDirWithPath (path: string, type: typeof cc.Asset): Array>; + getDirWithPath (path: string): Array>; + /** + !#en + Get asset's info with uuid + + !#zh + 通过 uuid 获取资源信息 + @param uuid The asset's uuid + + @example + ```js + var info = bundle.getAssetInfo('fcmR3XADNLgJ1ByKhqcC5Z'); + ``` + */ + getAssetInfo (uuid: string): Record; + /** + !#en + Get scene'info with name + + !#zh + 通过场景名获取场景信息 + @param name The name of scene + + @example + ```js + var info = bundle.getSceneInfo('first.fire'); + ``` + */ + getSceneInfo(name: string): Record; + /** + !#en + Initialize this bundle with options + + !#zh + 初始化此 bundle + @param options options + */ + init(options: Record): void; + /** + !#en + Load the asset within this bundle by the path which is relative to bundle's path + + !#zh + 通过相对路径加载分包中的资源。路径是相对分包文件夹路径的相对路径 + @param paths Paths of the target assets.The path is relative to the bundle's folder, extensions must be omitted. + @param type Only asset of type will be loaded if this argument is supplied. + @param onProgress Callback invoked when progression change. + @param onComplete Callback invoked when all assets loaded. + + @example + ```js + // load the texture (${project}/assets/resources/textures/background.jpg) from resources + cc.resources.load('textures/background', cc.Texture2D, (err, texture) => console.log(err)); + + // load the audio (${project}/assets/resources/music/hit.mp3) from resources + cc.resources.load('music/hit', cc.AudioClip, (err, audio) => console.log(err)); + + // load the prefab (${project}/assets/bundle1/misc/character/cocos) from bundle1 folder + bundle1.load('misc/character/cocos', cc.Prefab, (err, prefab) => console.log(err)); + + // load the sprite frame (${project}/assets/some/xxx/bundle2/imgs/cocos.png) from bundle2 folder + bundle2.load('imgs/cocos', cc.SpriteFrame, null, (err, spriteFrame) => console.log(err)); + ``` + */ + load(paths: string, type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: T) => void): void; + load(paths: string[], type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: Array) => void): void; + load(paths: string, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: T) => void): void; + load(paths: string[], onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: Array) => void): void; + load(paths: string, type: typeof cc.Asset, onComplete?: (error: Error, assets: T) => void): void; + load(paths: string[], type: typeof cc.Asset, onComplete?: (error: Error, assets: Array) => void): void; + load(paths: string, onComplete?: (error: Error, assets: T) => void): void; + load(paths: string[], onComplete?: (error: Error, assets: Array) => void): void; + /** + !#en + Preload the asset within this bundle by the path which is relative to bundle's path. + After calling this method, you still need to finish loading by calling `Bundle.load`. + It will be totally fine to call `Bundle.load` at any time even if the preloading is not + yet finished + + !#zh + 通过相对路径预加载分包中的资源。路径是相对分包文件夹路径的相对路径。调用完后,你仍然需要通过 `Bundle.load` 来完成加载。 + 就算预加载还没完成,你也可以直接调用 `Bundle.load`。 + @param paths Paths of the target asset.The path is relative to bundle folder, extensions must be omitted. + @param type Only asset of type will be loaded if this argument is supplied. + @param onProgress Callback invoked when progression change. + @param onComplete Callback invoked when the resource loaded. + + @example + ```js + // preload the texture (${project}/assets/resources/textures/background.jpg) from resources + cc.resources.preload('textures/background', cc.Texture2D); + + // preload the audio (${project}/assets/resources/music/hit.mp3) from resources + cc.resources.preload('music/hit', cc.AudioClip); + // wait for while + cc.resources.load('music/hit', cc.AudioClip, (err, audioClip) => {}); + + * // preload the prefab (${project}/assets/bundle1/misc/character/cocos) from bundle1 folder + bundle1.preload('misc/character/cocos', cc.Prefab); + + // load the sprite frame of (${project}/assets/bundle2/imgs/cocos.png) from bundle2 folder + bundle2.preload('imgs/cocos', cc.SpriteFrame); + // wait for while + bundle2.load('imgs/cocos', cc.SpriteFrame, (err, spriteFrame) => {}); + ``` + */ + preload(paths: string|string[], type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, items: RequestItem[]) => void): void; + preload(paths: string|string[], onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, items: RequestItem[]) => void): void; + preload(paths: string|string[], type: typeof cc.Asset, onComplete: (error: Error, items: RequestItem[]) => void): void; + preload(paths: string|string[], type: typeof cc.Asset): void; + preload(paths: string|string[], onComplete: (error: Error, items: RequestItem[]) => void): void; + preload(paths: string|string[]): void; + /** + !#en + Load all assets under a folder inside the bundle folder.
+
+ Note: All asset paths in Creator use forward slashes, paths using backslashes will not work. + + !#zh + 加载目标文件夹中的所有资源, 注意:路径中只能使用斜杠,反斜杠将停止工作 + @param dir path of the target folder.The path is relative to the bundle folder, extensions must be omitted. + @param type Only asset of type will be loaded if this argument is supplied. + @param onProgress Callback invoked when progression change. + @param onComplete A callback which is called when all assets have been loaded, or an error occurs. + + @example + ```js + // load all audios (resources/audios/) + cc.resources.loadDir('audios', cc.AudioClip, (err, audios) => {}); + + // load all textures in "resources/imgs/" + cc.resources.loadDir('imgs', cc.Texture2D, null, function (err, textures) { + var texture1 = textures[0]; + var texture2 = textures[1]; + }); + + // load all prefabs (${project}/assets/bundle1/misc/characters/) from bundle1 folder + bundle1.loadDir('misc/characters', cc.Prefab, (err, prefabs) => console.log(err)); + + // load all sprite frame (${project}/assets/some/xxx/bundle2/skills/) from bundle2 folder + bundle2.loadDir('skills', cc.SpriteFrame, null, (err, spriteFrames) => console.log(err)); + ``` + */ + loadDir(dir: string, type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: Array) => void): void; + loadDir(dir: string, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, assets: Array) => void): void; + loadDir(dir: string, type: typeof cc.Asset, onComplete: (error: Error, assets: Array) => void): void; + loadDir(dir: string, type: typeof cc.Asset): void; + loadDir(dir: string, onComplete: (error: Error, assets: Array) => void): void; + loadDir(dir: string): void; + /** + !#en + Preload all assets under a folder inside the bundle folder.
After calling this method, you still need to finish loading by calling `Bundle.loadDir`. + It will be totally fine to call `Bundle.loadDir` at any time even if the preloading is not yet finished + + !#zh + 预加载目标文件夹中的所有资源。调用完后,你仍然需要通过 `Bundle.loadDir` 来完成加载。 + 就算预加载还没完成,你也可以直接调用 `Bundle.loadDir`。 + @param dir path of the target folder.The path is relative to the bundle folder, extensions must be omitted. + @param type Only asset of type will be preloaded if this argument is supplied. + @param onProgress Callback invoked when progression change. + @param onComplete A callback which is called when all assets have been loaded, or an error occurs. + + @example + ```js + // preload all audios (resources/audios/) + cc.resources.preloadDir('audios', cc.AudioClip); + + // preload all textures in "resources/imgs/" + cc.resources.preloadDir('imgs', cc.Texture2D); + // wait for while + cc.resources.loadDir('imgs', cc.Texture2D, (err, textures) => {}); + + // preload all prefabs (${project}/assets/bundle1/misc/characters/) from bundle1 folder + bundle1.preloadDir('misc/characters', cc.Prefab); + + // preload all sprite frame (${project}/assets/some/xxx/bundle2/skills/) from bundle2 folder + bundle2.preloadDir('skills', cc.SpriteFrame); + // wait for while + bundle2.loadDir('skills', cc.SpriteFrame, (err, spriteFrames) => {}); + ``` + */ + preloadDir(dir: string, type: typeof cc.Asset, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, items: RequestItem[]) => void): void; + preloadDir(dir: string, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, items: RequestItem[]) => void): void; + preloadDir(dir: string, type: typeof cc.Asset, onComplete: (error: Error, items: RequestItem[]) => void): void; + preloadDir(dir: string, type: typeof cc.Asset): void; + preloadDir(dir: string, onComplete: (error: Error, items: RequestItem[]) => void): void; + preloadDir(dir: string): void; + /** + !#en + Loads the scene within this bundle by its name. + + !#zh + 通过场景名称加载分包中的场景。 + @param sceneName The name of the scene to load. + @param options Some optional parameters + @param onProgress Callback invoked when progression change. + @param onComplete callback, will be called after scene launched. + + @example + ```js + bundle1.loadScene('first', (err, sceneAsset) => cc.director.runScene(sceneAsset)); + ``` + */ + loadScene(sceneName: string, options: Record, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, sceneAsset: cc.SceneAsset) => void): void; + loadScene(sceneName: string, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error, sceneAsset: cc.SceneAsset) => void): void; + loadScene(sceneName: string, options: Record, onComplete: (error: Error, sceneAsset: cc.SceneAsset) => void): void; + loadScene(sceneName: string, onComplete: (error: Error, sceneAsset: cc.SceneAsset) => void): void; + loadScene(sceneName: string, options: Record): void; + loadScene(sceneName: string): void; + /** + !#en + Preloads the scene within this bundle by its name. After calling this method, you still need to finish loading by calling `Bundle.loadScene` or `cc.director.loadScene`. + It will be totally fine to call `Bundle.loadDir` at any time even if the preloading is not yet finished + + !#zh + 通过场景名称预加载分包中的场景.调用完后,你仍然需要通过 `Bundle.loadScene` 或 `cc.director.loadScene` 来完成加载。 + 就算预加载还没完成,你也可以直接调用 `Bundle.loadScene` 或 `cc.director.loadScene`。 + @param sceneName The name of the scene to preload. + @param options Some optional parameters + @param onProgress callback, will be called when the load progression change. + @param onComplete callback, will be called after scene loaded. + + @example + ```js + bundle1.preloadScene('first'); + // wait for a while + bundle1.loadScene('first', (err, scene) => cc.director.runScene(scene)); + ``` + */ + preloadScene(sceneName: string, options: Record, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error) => void): void; + preloadScene(sceneName: string, onProgress: (finish: number, total: number, item: RequestItem) => void, onComplete: (error: Error) => void): void; + preloadScene(sceneName: string, options: Record, onComplete: (error: Error) => void): void; + preloadScene(sceneName: string, onComplete: (error: Error) => void): void; + preloadScene(sceneName: string, options: Record): void; + preloadScene(sceneName: string): void; + /** + !#en + Get asset within this bundle by path and type.
+ After you load asset with {{#crossLink "Bundle/load:method"}}{{/crossLink}} or {{#crossLink "Bundle/loadDir:method"}}{{/crossLink}}, + you can acquire them by passing the path to this API. + + !#zh + 通过路径与类型获取资源。在你使用 {{#crossLink "Bundle/load:method"}}{{/crossLink}} 或者 {{#crossLink "Bundle/loadDir:method"}}{{/crossLink}} 之后, + 你能通过传路径通过这个 API 获取到这些资源。 + @param path The path of asset + @param type Only asset of type will be returned if this argument is supplied. + + @example + ```js + bundle1.get('music/hit', cc.AudioClip); + ``` + */ + get (path: string, type?: typeof cc.Asset): T; + /** + !#en + Release the asset loaded by {{#crossLink "Bundle/load:method"}}{{/crossLink}} or {{#crossLink "Bundle/loadDir:method"}}{{/crossLink}} and it's dependencies. + Refer to {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}} for detailed informations. + + !#zh + 释放通过 {{#crossLink "Bundle/load:method"}}{{/crossLink}} 或者 {{#crossLink "Bundle/loadDir:method"}}{{/crossLink}} 加载的资源。详细信息请参考 {{#crossLink "AssetManager/releaseAsset:method"}}{{/crossLink}} + @param path The path of asset + @param type Only asset of type will be released if this argument is supplied. + + @example + ```js + // release a texture which is no longer need + bundle1.release('misc/character/cocos'); + ``` + */ + release(path: string, type: typeof cc.Asset): void; + release(path: string): void; + /** + !#en + Release all assets within this bundle. Refer to {{#crossLink "AssetManager/releaseAll:method"}}{{/crossLink}} for detailed informations. + + !#zh + 释放此包中的所有资源。详细信息请参考 {{#crossLink "AssetManager/releaseAll:method"}}{{/crossLink}} + + @example + ```js + // release all asset within bundle1 + bundle1.releaseAll(); + ``` + */ + releaseAll(): void; + } + /** !#en + Cache manager is a module which controls all caches downloaded from server in non-web platform, it is a singleton + All member can be accessed with `cc.assetManager.cacheManager`. + + !#zh + 缓存管理器是一个模块,在非 WEB 平台上,用于管理所有从服务器上下载下来的缓存,这是一个单例,所有成员能通过 `cc.assetManager.cacheManager` 访问。 */ + export class CacheManager { + /** !#en + The name of cacheDir + + !#zh + 缓存目录的名称 */ + cacheDir: string; + /** !#en + Whether or not cache asset into user's storage space, this property only works on mini-game platforms + + !#zh + 是否缓存资源到用户存储空间,此属性只在小游戏平台有效 */ + cacheEnabled: boolean; + /** !#en + Whether or not auto clear cache when storage ran out, this property only works on mini-game platforms + + !#zh + 是否在存储空间满了后自动清理缓存,此属性只在小游戏平台有效 */ + autoClear: boolean; + /** !#en + The interval between caching resources, this property only works on mini-game platforms, unit: ms + + !#zh + 缓存资源的间隔时间,此属性只在小游戏平台有效,单位:ms */ + cacheInterval: number; + /** !#en + The interval between deleting resources, when you use `cleanLRU`, the resources will be deleted as this interval, unit: ms + + !#zh + 清理资源的间隔时间,当你使用 `cleanLRU` 时,资源将以此间隔被删除,单位:ms */ + deleteInterval: number; + /** !#en + List of all cached files + + !#zh + 所有缓存文件列表 */ + cachedFiles: Cache<{ bundle: string, url: string, lastTime: number }>; + /** + !#en + Get cached path with origin url + + !#zh + 通过原始 url 获取缓存后的路径 + @param originUrl originUrl + */ + getCache(originUrl: string): string; + /** + !#en + Get temporary path with origin url, this method only works on mini-game platforms + + !#zh + 通过原始 url 获取临时文件的路径,此方法只在小游戏平台有效 + @param originUrl originUrl + */ + getTemp(originUrl: string): string; + /** + !#en + Clear all caches, please use with caution, If necessary, we recommend using it before the game is launched + + !#zh + 清空所有缓存,请谨慎使用,如果必要的话,我们建议在游戏启动之前使用 + */ + clearCache(): void; + /** + !#en + Clear part of caches with LRU strategy + + !#zh + 使用 LRU 策略清空部分缓存 + */ + clearLRU(): void; + /** + !#en + Remove cache with origin url + + !#zh + 通过原始 url 移除缓存 + */ + removeCache(): void; + } + /** !#en + use to cache something + + !#zh + 用于缓存某些内容 */ + export class Cache { + /** + !#en + Create a cache + + !#zh + 创建一个 cache + @param map An object used to initialize + */ + constructor(map?: Record); + /** + !#en + Add Key-Value to cache + + !#zh + 增加键值对到缓存中 + @param key The key + @param val The value + + @example + ```js + var cache = new Cache(); + cache.add('test', null); + ``` + */ + add(key: string, val: T): T; + /** + !#en + Get the cached content by key + + !#zh + 通过 key 获取对应的 value + @param key The key + + @example + ```js + var cache = new Cache(); + var test = cache.get('test'); + ``` + */ + get(key: string): T; + /** + !#en + Check whether or not content exists by key + + !#zh + 通过 Key 判断是否存在对应的内容 + @param key The key + + @example + ```js + var cache = new Cache(); + var exist = cache.has('test'); + ``` + */ + has(key: string): boolean; + /** + !#en + Remove the cached content by key + + !#zh + 通过 Key 移除对应的内容 + @param key The key + + @example + ```js + var cache = new Cache(); + var content = cache.remove('test'); + ``` + */ + remove(key: string): T; + /** + !#en + Clear all content + + !#zh + 清除所有内容 + + @example + ```js + var cache = new Cache(); + cache.clear(); + ``` + */ + clear():void; + /** + !#en + Enumerate all content and invoke function + + !#zh + 枚举所有内容并执行方法 + @param func Function to be invoked + + @example + ```js + var cache = new Cache(); + cache.forEach((val, key) => console.log(key)); + ``` + */ + forEach(func: (val: T, key: string) => void): void; + /** + !#en + Enumerate all content to find one element which can fulfill condition + + !#zh + 枚举所有内容,找到一个可以满足条件的元素 + @param predicate The condition + + @example + ```js + var cache = new Cache(); + var val = cache.find((val, key) => key === 'test'); + ``` + */ + find(predicate: (val: T, key: string) => boolean): T; + /** !#en + The count of cached content + + !#zh + 缓存数量 */ + count: number; + /** + !#en + Destroy this cache + + !#zh + 销毁这个 cache + */ + destroy(): void; + } + /** !#en + Control asset's dependency list, it is a singleton. All member can be accessed with `cc.assetManager.dependUtil` + + !#zh + 控制资源的依赖列表,这是一个单例, 所有成员能通过 `cc.assetManager.dependUtil` 访问 */ + export class DependUtil { + /** + !#en + Get asset's native dependency. For example, Texture's native dependency is image. + + !#zh + 获取资源的原生依赖,例如 Texture 的原生依赖是图片 + @param uuid asset's uuid + + @example + ```js + var dep = dependUtil.getNativeDep('fcmR3XADNLgJ1ByKhqcC5Z'); + ``` + */ + getNativeDep(uuid: string): Record; + /** + !#en + Get asset's direct referencing non-native dependency list. For example, Material's non-native dependencies are Texture. + + !#zh + 获取资源直接引用的非原生依赖列表,例如,材质的非原生依赖是 Texture + @param uuid asset's uuid + + @example + ```js + var deps = dependUtil.getDeps('fcmR3XADNLgJ1ByKhqcC5Z'); + ``` + */ + getDeps(uuid: string): string[]; + /** + !#en + Get non-native dependency list of the loaded asset, include indirect reference. + The returned array stores the dependencies with their uuid, after retrieve dependencies, + + !#zh + 获取某个已经加载好的资源的所有非原生依赖资源列表,包括间接引用的资源,并保存在数组中返回。 + 返回的数组将仅保存依赖资源的 uuid。 + @param uuid The asset's uuid + + @example + ```js + var deps = dependUtil.getDepsRecursively('fcmR3XADNLgJ1ByKhqcC5Z'); + ``` + */ + getDepsRecursively(uuid: string): string[]; + } + /** !#en + Control all download process, it is a singleton. All member can be accessed with `cc.assetManager.downloader` , it can download several types of files: + 1. Text + 2. Image + 3. Audio + 4. Assets + 5. Scripts + + !#zh + 管理所有下载过程,downloader 是个单例,所有成员能通过 `cc.assetManager.downloader` 访问,它能下载以下几种类型的文件: + 1. 文本 + 2. 图片 + 3. 音频 + 4. 资源 + 5. 脚本 */ + export class Downloader { + /** !#en + The address of remote server + + !#zh + 远程服务器地址 */ + remoteServerAddress: string; + /** !#en + The maximum number of concurrent when downloading + + !#zh + 下载时的最大并发数 */ + maxConcurrency: number; + /** !#en + The maximum number of request can be launched per frame when downloading + + !#zh + 下载时每帧可以启动的最大请求数 */ + maxRequestsPerFrame: number; + /** !#en + The max number of retries when fail + + !#zh + 失败重试次数 */ + maxRetryCount: number; + /** !#en + Wait for while before another retry, unit: ms + + !#zh + 重试的间隔时间 */ + retryInterval: number; + /** + !#en + Register custom handler if you want to change default behavior or extend downloader to download other format file + + !#zh + 当你想修改默认行为或者拓展 downloader 来下载其他格式文件时可以注册自定义的 handler + @param type Extension likes '.jpg' or map likes {'.jpg': jpgHandler, '.png': pngHandler} + @param handler handler + + @example + ```js + downloader.register('.tga', (url, options, onComplete) => onComplete(null, null)); + downloader.register({'.tga': (url, options, onComplete) => onComplete(null, null), '.ext': (url, options, onComplete) => onComplete(null, null)}); + ``` + */ + register(type: string, handler: (url: string, options: Record, onComplete: (err: Error, content: any) => void) => void): void; + register(map: Record, onComplete: (err: Error, content: any) => void) => void>): void; + /** + !#en + Use corresponding handler to download file under limitation + + !#zh + 在限制下使用对应的 handler 来下载文件 + @param url The url should be downloaded + @param type The type indicates that which handler should be used to download, such as '.jpg' + @param options some optional paramters will be transferred to the corresponding handler. + @param onComplete callback when finishing downloading + + @example + ```js + download('http://example.com/test.tga', '.tga', {onFileProgress: (loaded, total) => console.lgo(loaded/total)}, onComplete: (err) => console.log(err)); + ``` + */ + download(id: string, url: string, type: string, options: Record, onComplete: (err: Error, content: any) => void): void; + } + /** !#en + Provide some helpful function, it is a singleton. All member can be accessed with `cc.assetManager.utils` + + !#zh + 提供一些辅助方法,helper 是一个单例, 所有成员能通过 `cc.assetManager.utils` 访问 */ + export class Helper { + /** + !#en + Decode uuid, returns the original uuid + + !#zh + 解码 uuid,返回原始 uuid + @param base64 the encoded uuid + + @example + ```js + var uuid = 'fcmR3XADNLgJ1ByKhqcC5Z'; + var originalUuid = decodeUuid(uuid); // fc991dd7-0033-4b80-9d41-c8a86a702e59 + ``` + */ + decodeUuid(base64: string): string; + /** + !#en + Extract uuid from url + + !#zh + 从 url 中提取 uuid + @param url url + + @example + ```js + var url = 'assets/main/import/fc/fc991dd7-0033-4b80-9d41-c8a86a702e59.json'; + var uuid = getUuidFromURL(url); // fc991dd7-0033-4b80-9d41-c8a86a702e59 + ``` + */ + getUuidFromURL(url: string): string; + /** + !#en + Transform uuid to url + + !#zh + 转换 uuid 为 url + @param uuid The uuid of asset + @param options Some optional parameters + + @example + ```js + // json path, 'assets/main/import/fc/fc991dd7-0033-4b80-9d41-c8a86a702e59.json'; + var url = getUrlWithUuid('fcmR3XADNLgJ1ByKhqcC5Z', {isNative: false}); + + // png path, 'assets/main/native/fc/fc991dd7-0033-4b80-9d41-c8a86a702e59.png'; + var url = getUrlWithUuid('fcmR3XADNLgJ1ByKhqcC5Z', {isNative: true, nativeExt: '.png'}); + ``` + */ + getUrlWithUuid(uuid: string, options?: Record): string; + /** + !#en + Check if the type of asset is scene + + !#zh + 检查资源类型是否是场景 + @param asset asset + */ + isScene(asset: any): boolean; + /** + !#en + Normalize url, strip './' and '/' + + !#zh + 标准化 url ,去除 './' 和 '/' + @param url url + */ + normalize(url: string): string; + } + /** !#en + Handle the packed asset, include unpacking, loading, cache and so on. It is a singleton. All member can be accessed with `cc.assetManager.packManager` + + !#zh + 处理打包资源,包括拆包,加载,缓存等等,这是一个单例, 所有成员能通过 `cc.assetManager.packManager` 访问 */ + export class PackManager { + /** + !#en + Unpack the json, revert to what it was before packing + + !#zh + 拆解 json 包,恢复为打包之前的内容 + @param pack The pack + @param json The content of pack + @param options Some optional parameters + @param onComplete Callback when finish unpacking + + @example + ```js + downloader.downloadFile('pack.json', {responseType: 'json'}, null, (err, file) => { + packManager.unpackJson(['a', 'b'], file, null, (err, data) => console.log(err)); + }); + ``` + */ + unpackJson(pack: string[], json: any, options: Record, onComplete?: (err: Error, content: any) => void): void; + /** + !#en + Register custom handler if you want to change default behavior or extend packManager to unpack other format pack + + !#zh + 当你想修改默认行为或者拓展 packManager 来拆分其他格式的包时可以注册自定义的 handler + @param type Extension likes '.bin' or map likes {'.bin': binHandler, '.ab': abHandler} + @param handler handler + + @example + ```js + packManager.register('.bin', (packUuid, file, options, onComplete) => onComplete(null, null)); + packManager.register({'.bin': (packUuid, file, options, onComplete) => onComplete(null, null), '.ab': (packUuid, file, options, onComplete) => onComplete(null, null)}); + ``` + */ + register(type: string, handler: (packUuid: string, data: any, options: Record, onComplete: (err: Error, content: any) => void) => void): void; + register(map: Record, onComplete: (err: Error, content: any) => void) => void>): void; + /** + !#en + Use corresponding handler to unpack package + + !#zh + 用对应的 handler 来进行解包 + @param pack The uuid of packed assets + @param data The packed data + @param type The type indicates that which handler should be used to download, such as '.jpg' + @param options Some optional parameter + @param onComplete callback when finishing unpacking + + @example + ```js + downloader.downloadFile('pack.json', {responseType: 'json'}, null, (err, file) => { + packManager.unpack(['2fawq123d', '1zsweq23f'], file, '.json', null, (err, data) => console.log(err)); + }); + ``` + */ + unpack(pack: string[], data: any, type: string, options: Record, onComplete?: (err: Error, data: any) => void): void; + /** + !#en + Download request item, If item is not in any package, download as usual. Otherwise, download the corresponding package and unpack it. + And then retrieve the corresponding content form it. + + !#zh + 下载请求对象,如果请求对象不在任何包内,则正常下载,否则下载对应的 package 并进行拆解,并取回包内对应的内容 + @param item Some item you want to download + @param options Some optional parameters + @param onComplete Callback when finished + + @example + ```js + var requestItem = cc.AssetManager.RequestItem.create(); + requestItem.uuid = 'fcmR3XADNLgJ1ByKhqcC5Z'; + requestItem.info = config.getAssetInfo('fcmR3XADNLgJ1ByKhqcC5Z'); + packManager.load(requestItem, null, (err, data) => console.log(err)); + ``` + */ + load(item: RequestItem, options: Record, onComplete: (err: Error, data: any) => void): void; + } + /** !#en + Parse the downloaded file, it's a singleton, all member can be accessed with `cc.assetManager.parser` + + !#zh + 解析已下载的文件,parser 是一个单例, 所有成员能通过 `cc.assetManaager.parser` 访问 */ + export class Parser { + /** + !#en + Register custom handler if you want to change default behavior or extend parser to parse other format file + + !#zh + 当你想修改默认行为或者拓展 parser 来解析其他格式文件时可以注册自定义的handler + @param type Extension likes '.jpg' or map likes {'.jpg': jpgHandler, '.png': pngHandler} + @param handler The corresponding handler + + @example + ```js + parser.register('.tga', (file, options, onComplete) => onComplete(null, null)); + parser.register({'.tga': (file, options, onComplete) => onComplete(null, null), '.ext': (file, options, onComplete) => onComplete(null, null)}); + ``` + */ + register(type: string, handler: (file: any, options: Record, onComplete: (err: Error, data: any) => void) => void): void; + register(map: Record, onComplete: (err: Error, data: any) => void) => void>): void; + /** + !#en + Use corresponding handler to parse file + + !#zh + 使用对应的handler来解析文件 + @param id The id of file + @param file File + @param type The corresponding type of file, likes '.jpg'. + @param options Some optional paramters will be transferred to the corresponding handler. + @param onComplete callback when finishing downloading + + @example + ```js + downloader.downloadFile('test.jpg', {responseType: 'blob'}, null, (err, file) => { + parser.parse('test.jpg', file, '.jpg', null, (err, img) => console.log(err)); + }); + ``` + */ + parse(id: string, file: any, type: string, options: Record, onComplete: (err: Error, content: any) => void): void; + } + /** !#en + Pipeline can execute the task for some effect. + + !#zh + 管线能执行任务达到某个效果 */ + export class Pipeline { + /** !#en + The id of pipeline + + !#zh + 管线的 id */ + id: number; + /** !#en + The name of pipeline + + !#zh + 管线的名字 */ + name: string; + /** !#en + All pipes of pipeline + + !#zh + 所有的管道 */ + pipes: Function[]; + /** + !#en + Create a new pipeline + + !#zh + 创建一个管线 + @param name The name of pipeline + @param funcs The array of pipe, every pipe must be function which take two parameters, the first is a `Task` flowed in pipeline, the second is complete callback + + @example + ```js + var pipeline = new Pipeline('download', [ + (task, done) => { + var url = task.input; + cc.assetManager.downloader.downloadFile(url, null, null, (err, result) => { + task.output = result; + done(err); + }); + }, + (task, done) => { + var text = task.input; + var json = JSON.stringify(text); + task.output = json; + done(); + } + ]); + ``` + */ + constructor(name: string, funcs: Array<(task: Task, done?: (err: Error) => void) => void>); + /** + !#en + At specific point insert a new pipe to pipeline + + !#zh + 在某个特定的点为管线插入一个新的 pipe + @param func The new pipe + @param index The specific point you want to insert at. + + @example + ```js + var pipeline = new Pipeline('test', []); + pipeline.insert((task, done) => { + // do something + done(); + }, 0); + ``` + */ + insert(func: (task: Task, callback?: (err: Error) => void) => void, index: number): Pipeline; + /** + !#en + Append a new pipe to the pipeline + + !#zh + 添加一个管道到管线中 + @param func The new pipe + + @example + ```js + var pipeline = new Pipeline('test', []); + pipeline.append((task, done) => { + // do something + done(); + }); + ``` + */ + append(func: (task: Task, callback?: (err: Error) => void) => void): Pipeline; + /** + !#en + Remove pipe which at specific point + + !#zh + 移除特定位置的管道 + @param index The specific point + + @example + ```js + var pipeline = new Pipeline('test', (task, done) => { + // do something + done(); + }); + pipeline.remove(0); + ``` + */ + remove(index: number): Pipeline; + /** + !#en + Execute task synchronously + + !#zh + 同步执行任务 + @param task The task will be executed + + @example + ```js + var pipeline = new Pipeline('sync', [(task) => { + let input = task.input; + task.output = doSomething(task.input); + }]); + + var task = new Task({input: 'test'}); + console.log(pipeline.sync(task)); + ``` + */ + sync(task: Task): any; + /** + !#en + Execute task asynchronously + + !#zh + 异步执行任务 + @param task The task will be executed + + @example + ```js + var pipeline = new Pipeline('sync', [(task, done) => { + let input = task.input; + task.output = doSomething(task.input); + done(); + }]); + var task = new Task({input: 'test', onComplete: (err, result) => console.log(result)}); + pipeline.async(task); + ``` + */ + async(task: Task): void; + } + /** !#en + A collection of information about a request + + !#zh + 请求的相关信息集合 */ + export class RequestItem { + /** !#en + The uuid of request + + !#zh + 请求资源的uuid */ + uuid: string; + /** !#en + The final url of request + + !#zh + 请求的最终url */ + url: string; + /** !#en + The extension name of asset + + !#zh + 资源的扩展名 */ + ext: string; + /** !#en + The content of asset + + !#zh + 资源的内容 */ + content: any; + /** !#en + The file of asset + + !#zh + 资源的文件 */ + file: any; + /** !#en + The information of asset + + !#zh + 资源的相关信息 */ + info: any; + /** !#en + Whether or not it is native asset + + !#zh + 资源是否是原生资源 */ + isNative: boolean; + /** !#en + Custom options + + !#zh + 自定义参数 */ + options: any; + /** + !#en + Create a request item + + !#zh + 创建一个 request item + */ + constructor(); + /** !#en + The id of request, combined from uuid and isNative + + !#zh + 请求的 id, 由 uuid 和 isNative 组合而成 */ + id: string; + /** + !#en + Recycle this for reuse + + !#zh + 回收 requestItem 用于复用 + */ + recycle(): void; + /** + !#en + Create a new request item from pool + + !#zh + 从对象池中创建 requestItem + */ + static create(): RequestItem; + } + /** !#en + Task is used to run in the pipeline for some effect + + !#zh + 任务用于在管线中运行以达成某种效果 */ + export class Task { + /** !#en + The id of task + + !#zh + 任务id */ + id: number; + /** !#en + The callback when task is completed + + !#zh + 完成回调 */ + onComplete: Function; + /** !#en + The callback of progression + + !#zh + 进度回调 */ + onProgress: Function; + /** !#en + The callback when something goes wrong + + !#zh + 错误回调 */ + onError: Function; + /** !#en + The source of task + + !#zh + 任务的源 */ + source: any; + /** !#en + The output of task + + !#zh + 任务的输出 */ + output: any; + /** !#en + The input of task + + !#zh + 任务的输入 */ + input: any; + /** !#en + The progression of task + + !#zh + 任务的进度 */ + progress: any; + /** !#en + Custom options + + !#zh + 自定义参数 */ + options: any; + /** + !#en + Create a new Task + + !#zh + 创建一个任务 + @param options Some optional paramters + */ + constructor(options?: {onComplete?: (err: Error, result: any) => void, onError?: () => void, onProgress?: Function, input: any, progress?: any, options?: Record}); + /** + !#en + Set paramters of this task + + !#zh + 设置任务的参数 + @param options Some optional paramters + + @example + ```js + var task = new Task(); + task.set({input: ['test'], onComplete: (err, result) => console.log(err), onProgress: (finish, total) => console.log(finish / total)}); + ``` + */ + set(options?: {onComplete?: (err: Error, result: any) => void, onError?: () => void, onProgress?: Function, input: any, progress?: any, options?: Record}): void; + /** + !#en + Dispatch event + + !#zh + 发布事件 + @param event The event name + @param param1 Parameter 1 + @param param2 Parameter 2 + @param param3 Parameter 3 + @param param4 Parameter 4 + + @example + ```js + var task = Task.create(); + Task.onComplete = (msg) => console.log(msg); + Task.dispatch('complete', 'hello world'); + ``` + */ + dispatch(event: string, param1?: any, param2?: any, param3?: any, param4?: any): void; + /** + !#en + Recycle this for reuse + + !#zh + 回收 task 用于复用 + */ + recycle(): void; + /** !#en + Whether or not this task is completed + + !#zh + 此任务是否已经完成 */ + isFinish: boolean; + /** + !#en + Create a new task from pool + + !#zh + 从对象池中创建 task + @param options Some optional paramters + */ + static create(options?: {onComplete?: (err: Error, result: any) => void, onError?: () => void, onProgress?: Function, input: any, progress?: any, options?: Record}): Task; + } + /** !#en + The builtin bundles + + !#zh + 内置 bundle */ + export enum BuiltinBundleName { + RESOURCES = 0, + INTERNAL = 0, + MAIN = 0, + START_SCENE = 0, + } +} + +/** Some helpful utilities */ +declare namespace cc.geomUtils { + /** + !#en + the distance between a point and a plane + !#zh + 计算点和平面之间的距离。 + @param point point + @param plane plane + */ + export function point_plane(point: cc.Vec3, plane: cc.Plane): number; + /** + !#en + the closest point on plane to a given point + !#zh + 计算平面上最接近给定点的点。 + @param out Closest point + @param point Given point + @param plane plane + */ + export function pt_point_plane(out: cc.Vec3, point: cc.Vec3, plane: cc.Plane): cc.Vec3; + /** + !#en + the closest point on aabb to a given point + !#zh + 计算 aabb 上最接近给定点的点。 + @param out Closest point. + @param point Given point. + @param aabb Align the axis around the box. + */ + export function pt_point_aabb(out: cc.Vec3, point: cc.Vec3, aabb: cc.Aabb): cc.Vec3; + /** + !#en + the closest point on obb to a given point + !#zh + 计算 obb 上最接近给定点的点。 + @param out Closest point + @param point Given point + @param obb Direction box + */ + export function pt_point_obb(out: cc.Vec3, point: cc.Vec3, obb: cc.Obb): cc.Vec3; +} + +/** !#en Some JavaScript decorators which can be accessed with "cc._decorator". +!#zh 一些 JavaScript 装饰器,目前可以通过 "cc._decorator" 来访问。 +(这些 API 仍不完全稳定,有可能随着 JavaScript 装饰器的标准实现而调整) */ +declare namespace cc._decorator { + /** + !#en + Declare the standard [ES6 Class](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes) + as CCClass, please see [Class](../../../manual/en/scripting/class.html) for details. + !#zh + 将标准写法的 [ES6 Class](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes) 声明为 CCClass,具体用法请参阅[类型定义](../../../manual/zh/scripting/class.html)。 + @param name The class name used for serialization. + + @example + ```js + const {ccclass} = cc._decorator; + + // define a CCClass, omit the name + @ccclass + class NewScript extends cc.Component { + // ... + } + + // define a CCClass with a name + @ccclass('LoginData') + class LoginData { + // ... + } + ``` + */ + export function ccclass(name?: string): Function; + export function ccclass(_class?: Function): void; + /** + !#en + Declare property for [CCClass](../../../manual/en/scripting/reference/attributes.html). + !#zh + 定义 [CCClass](../../../manual/zh/scripting/reference/attributes.html) 所用的属性。 + @param options an object with some property attributes + + @example + ```js + const {ccclass, property} = cc._decorator; + + @ccclass + class NewScript extends cc.Component { + @property({ + type: cc.Node + }) + targetNode1 = null; + + @property(cc.Node) + targetNode2 = null; + + @property(cc.Button) + targetButton = null; + + @property + _width = 100; + + @property + get width () { + return this._width; + } + + @property + set width (value) { + this._width = value; + } + + @property + offset = new cc.Vec2(100, 100); + + @property(cc.Vec2) + offsets = []; + + @property(cc.SpriteFrame) + frame = null; + } + + // above is equivalent to (上面的代码相当于): + + var NewScript = cc.Class({ + properties: { + targetNode1: { + default: null, + type: cc.Node + }, + + targetNode2: { + default: null, + type: cc.Node + }, + + targetButton: { + default: null, + type: cc.Button + }, + + _width: 100, + + width: { + get () { + return this._width; + }, + set (value) { + this._width = value; + } + }, + + offset: new cc.Vec2(100, 100) + + offsets: { + default: [], + type: cc.Vec2 + } + + frame: { + default: null, + type: cc.SpriteFrame + }, + } + }); + ``` + */ + export function property(options?: {type?: any; visible?: boolean|(() => boolean); displayName?: string; tooltip?: string; multiline?: boolean; readonly?: boolean; min?: number; max?: number; step?: number; range?: number[]; slide?: boolean; serializable?: boolean; formerlySerializedAs?: string; editorOnly?: boolean; override?: boolean; animatable?: boolean} | any[]|Function|cc.ValueType|number|string|boolean): Function; + export function property(_target: Object, _key: any, _desc?: any): void; + /** + !#en + Makes a CCClass that inherit from component execute in edit mode.
+ By default, all components are only executed in play mode, + which means they will not have their callback functions executed while the Editor is in edit mode. + !#zh + 允许继承自 Component 的 CCClass 在编辑器里执行。
+ 默认情况下,所有 Component 都只会在运行时才会执行,也就是说它们的生命周期回调不会在编辑器里触发。 + + @example + ```js + const {ccclass, executeInEditMode} = cc._decorator; + + @ccclass + @executeInEditMode + class NewScript extends cc.Component { + // ... + } + ``` + */ + export function executeInEditMode(): Function; + export function executeInEditMode(_class: Function): void; + /** + !#en + Automatically add required component as a dependency for the CCClass that inherit from component. + !#zh + 为声明为 CCClass 的组件添加依赖的其它组件。当组件添加到节点上时,如果依赖的组件不存在,引擎将会自动将依赖组件添加到同一个节点,防止脚本出错。该设置在运行时同样有效。 + @param requiredComponent requiredComponent + + @example + ```js + const {ccclass, requireComponent} = cc._decorator; + + @ccclass + @requireComponent(cc.Sprite) + class SpriteCtrl extends cc.Component { + // ... + } + ``` + */ + export function requireComponent(requiredComponent: typeof cc.Component): Function; + /** + !#en + The menu path to register a component to the editors "Component" menu. Eg. "Rendering/CameraCtrl". + !#zh + 将当前组件添加到组件菜单中,方便用户查找。例如 "Rendering/CameraCtrl"。 + @param path The path is the menu represented like a pathname. + For example the menu could be "Rendering/CameraCtrl". + + @example + ```js + const {ccclass, menu} = cc._decorator; + + @ccclass + @menu("Rendering/CameraCtrl") + class NewScript extends cc.Component { + // ... + } + ``` + */ + export function menu(path: string): Function; + /** + !#en + The execution order of lifecycle methods for Component. + Those less than 0 will execute before while those greater than 0 will execute after. + The order will only affect onLoad, onEnable, start, update and lateUpdate while onDisable and onDestroy will not be affected. + !#zh + 设置脚本生命周期方法调用的优先级。优先级小于 0 的组件将会优先执行,优先级大于 0 的组件将会延后执行。优先级仅会影响 onLoad, onEnable, start, update 和 lateUpdate,而 onDisable 和 onDestroy 不受影响。 + @param order The execution order of lifecycle methods for Component. Those less than 0 will execute before while those greater than 0 will execute after. + + @example + ```js + const {ccclass, executionOrder} = cc._decorator; + + @ccclass + @executionOrder(1) + class CameraCtrl extends cc.Component { + // ... + } + ``` + */ + export function executionOrder(order: number): Function; + /** + !#en + Prevents Component of the same type (or subtype) to be added more than once to a Node. + !#zh + 防止多个相同类型(或子类型)的组件被添加到同一个节点。 + + @example + ```js + const {ccclass, disallowMultiple} = cc._decorator; + + @ccclass + @disallowMultiple + class CameraCtrl extends cc.Component { + // ... + } + ``` + */ + export function disallowMultiple(): Function; + export function disallowMultiple(_class: Function): void; + /** + !#en + If specified, the editor's scene view will keep updating this node in 60 fps when it is selected, otherwise, it will update only if necessary.
+ This property is only available if executeInEditMode is true. + !#zh + 当指定了 "executeInEditMode" 以后,playOnFocus 可以在选中当前组件所在的节点时,提高编辑器的场景刷新频率到 60 FPS,否则场景就只会在必要的时候进行重绘。 + + @example + ```js + const {ccclass, playOnFocus, executeInEditMode} = cc._decorator; + + @ccclass + @executeInEditMode + @playOnFocus + class CameraCtrl extends cc.Component { + // ... + } + ``` + */ + export function playOnFocus(): Function; + export function playOnFocus(_class: Function): void; + /** + !#en + Specifying the url of the custom html to draw the component in **Properties**. + !#zh + 自定义当前组件在 **属性检查器** 中渲染时所用的网页 url。 + @param url url + + @example + ```js + const {ccclass, inspector} = cc._decorator; + + @ccclass + @inspector("packages://inspector/inspectors/comps/camera-ctrl.js") + class NewScript extends cc.Component { + // ... + } + ``` + */ + export function inspector(path: string): Function; + /** + !#en + The custom documentation URL. + !#zh + 指定当前组件的帮助文档的 url,设置过后,在 **属性检查器** 中就会出现一个帮助图标,用户点击将打开指定的网页。 + @param url url + + @example + ```js + const {ccclass, help} = cc._decorator; + + @ccclass + @help("app://docs/html/components/spine.html") + class NewScript extends cc.Component { + // ... + } + ``` + */ + export function help(path: string): Function; + /** + NOTE:
+ The old mixins implemented in cc.Class(ES5) behaves exact the same as multiple inheritance. + But since ES6, class constructor can't be function-called and class methods become non-enumerable, + so we can not mix in ES6 Classes.
+ See:
+ [https://esdiscuss.org/topic/traits-are-now-impossible-in-es6-until-es7-since-rev32](https://esdiscuss.org/topic/traits-are-now-impossible-in-es6-until-es7-since-rev32)
+ One possible solution (but IDE unfriendly):
+ [http://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes](http://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/)
+
+ NOTE:
+ You must manually call mixins constructor, this is different from cc.Class(ES5). + @param ctor constructors to mix, only support ES5 constructors or classes defined by using `cc.Class`, + not support ES6 Classes. + + @example + ```js + const {ccclass, mixins} = cc._decorator; + + class Animal { ... } + + const Fly = cc.Class({ + constructor () { ... } + }); + + @ccclass + @mixins(cc.EventTarget, Fly) + class Bird extends Animal { + constructor () { + super(); + + // You must manually call mixins constructor, this is different from cc.Class(ES5) + cc.EventTarget.call(this); + Fly.call(this); + } + // ... + } + ``` + */ + export function mixins(ctor: Function, ...rest: Function[]): Function; +} + +/** !#en This module provides some JavaScript utilities. All members can be accessed with `cc.js`. +!#zh 这个模块封装了 JavaScript 相关的一些实用函数,你可以通过 `cc.js` 来访问这个模块。 */ +declare namespace cc.js { + /** + Check the obj whether is number or not + If a number is created by using 'new Number(10086)', the typeof it will be "object"... + Then you can use this function if you care about this case. + @param obj obj + */ + export function isNumber(obj: any): boolean; + /** + Check the obj whether is string or not. + If a string is created by using 'new String("blabla")', the typeof it will be "object"... + Then you can use this function if you care about this case. + @param obj obj + */ + export function isString(obj: any): boolean; + /** + Copy all properties not defined in obj from arguments[1...n] + @param obj object to extend its properties + @param sourceObj source object to copy properties from + */ + export function addon(obj: any, ...sourceObj: any[]): any; + /** + copy all properties from arguments[1...n] to obj + @param obj obj + @param sourceObj sourceObj + */ + export function mixin(obj: any, ...sourceObj: any[]): any; + /** + Derive the class from the supplied base class. + Both classes are just native javascript constructors, not created by cc.Class, so + usually you will want to inherit using {{#crossLink "cc/Class:method"}}cc.Class {{/crossLink}} instead. + @param cls cls + @param base the baseclass to inherit + */ + export function extend(cls: Function, base: Function): Function; + /** + Get super class + @param ctor the constructor of subclass + */ + export function getSuper(ctor: Function): Function; + /** + Checks whether subclass is child of superclass or equals to superclass + @param subclass subclass + @param superclass superclass + */ + export function isChildClassOf(subclass: Function, superclass: Function): boolean; + /** + Removes all enumerable properties from object + @param obj obj + */ + export function clear(obj: any): void; + /** + Checks whether obj is an empty object + @param obj obj + */ + export function isEmptyObject(obj: any): boolean; + /** + Get property descriptor in object and all its ancestors + @param obj obj + @param name name + */ + export function getPropertyDescriptor(obj: any, name: string): any; + /** + Define value, just help to call Object.defineProperty.
+ The configurable will be true. + @param obj obj + @param prop prop + @param value value + @param writable writable + @param enumerable enumerable + */ + export function value(obj: any, prop: string, value: any, writable?: boolean, enumerable?: boolean): void; + /** + Define get set accessor, just help to call Object.defineProperty(...) + @param obj obj + @param prop prop + @param getter getter + @param setter setter + @param enumerable enumerable + @param configurable configurable + */ + export function getset(obj: any, prop: string, getter: Function, setter?: Function, enumerable?: boolean, configurable?: boolean): void; + /** + Define get accessor, just help to call Object.defineProperty(...) + @param obj obj + @param prop prop + @param getter getter + @param enumerable enumerable + @param configurable configurable + */ + export function get(obj: any, prop: string, getter: Function, enumerable?: boolean, configurable?: boolean): void; + /** + Define set accessor, just help to call Object.defineProperty(...) + @param obj obj + @param prop prop + @param setter setter + @param enumerable enumerable + @param configurable configurable + */ + export function set(obj: any, prop: string, setter: Function, enumerable?: boolean, configurable?: boolean): void; + /** + Get class name of the object, if object is just a {} (and which class named 'Object'), it will return "". + (modified from
the code from this stackoverflow post) + @param objOrCtor instance or constructor + */ + export function getClassName(objOrCtor: any|Function): string; + /** !#en All classes registered in the engine, indexed by ID. + !#zh 引擎中已注册的所有类型,通过 ID 进行索引。 */ + export var _registeredClassIds: any; + /** !#en All classes registered in the engine, indexed by name. + !#zh 引擎中已注册的所有类型,通过名称进行索引。 */ + export var _registeredClassNames: any; + /** + Register the class by specified name manually + @param className className + @param constructor constructor + */ + export function setClassName(className: string, constructor: Function): void; + /** + Unregister a class from fireball. + + If you dont need a registered class anymore, you should unregister the class so that Fireball will not keep its reference anymore. + Please note that its still your responsibility to free other references to the class. + @param constructor the class you will want to unregister, any number of classes can be added + */ + export function unregisterClass(...constructor: Function[]): void; + /** + Get the registered class by name + @param classname classname + */ + export function getClassByName(classname: string): Function; + /** + Defines a polyfill field for deprecated codes. + @param obj YourObject or YourClass.prototype + @param obsoleted "OldParam" or "YourClass.OldParam" + @param newExpr "NewParam" or "YourClass.NewParam" + @param writable writable + */ + export function obsolete(obj: any, obsoleted: string, newExpr: string, writable?: boolean): void; + /** + Defines all polyfill fields for obsoleted codes corresponding to the enumerable properties of props. + @param obj YourObject or YourClass.prototype + @param objName "YourObject" or "YourClass" + @param props props + @param writable writable + */ + export function obsoletes(obj: any, objName: any, props: any, writable?: boolean): void; + /** + A string tool to construct a string with format string. + @param msg A JavaScript string containing zero or more substitution strings (%s). + @param subst JavaScript objects with which to replace substitution strings within msg. This gives you additional control over the format of the output. + + @example + ```js + cc.js.formatStr("a: %s, b: %s", a, b); + cc.js.formatStr(a, b, c); + ``` + */ + export function formatStr(msg: string|any, ...subst: any[]): string; + /** + !#en + A simple wrapper of `Object.create(null)` which ensures the return object have no prototype (and thus no inherited members). So we can skip `hasOwnProperty` calls on property lookups. It is a worthwhile optimization than the `{}` literal when `hasOwnProperty` calls are necessary. + !#zh + 该方法是对 `Object.create(null)` 的简单封装。`Object.create(null)` 用于创建无 prototype (也就无继承)的空对象。这样我们在该对象上查找属性时,就不用进行 `hasOwnProperty` 判断。在需要频繁判断 `hasOwnProperty` 时,使用这个方法性能会比 `{}` 更高。 + @param forceDictMode Apply the delete operator to newly created map object. This causes V8 to put the object in "dictionary mode" and disables creation of hidden classes which are very expensive for objects that are constantly changing shape. + */ + export function createMap(forceDictMode?: boolean): any; + /** undefined */ + export class array { + /** + Removes the array item at the specified index. + @param array array + @param index index + */ + static removeAt(array: any[], index: number): void; + /** + Removes the array item at the specified index. + It's faster but the order of the array will be changed. + @param array array + @param index index + */ + static fastRemoveAt(array: any[], index: number): void; + /** + Removes the first occurrence of a specific object from the array. + @param array array + @param value value + */ + static remove(array: any[], value: any): boolean; + /** + Removes the first occurrence of a specific object from the array. + It's faster but the order of the array will be changed. + @param array array + @param value value + */ + static fastRemove(array: any[], value: number): void; + /** + Verify array's Type + @param array array + @param type type + */ + static verifyType(array: any[], type: Function): boolean; + /** + Removes from array all values in minusArr. For each Value in minusArr, the first matching instance in array will be removed. + @param array Source Array + @param minusArr minus Array + */ + static removeArray(array: any[], minusArr: any[]): void; + /** + Inserts some objects at index + @param array array + @param addObjs addObjs + @param index index + */ + static appendObjectsAt(array: any[], addObjs: any[], index: number): any[]; + /** + Determines whether the array contains a specific value. + @param array array + @param value value + */ + static contains(array: any[], value: any): boolean; + /** + Copy an array's item to a new array (its performance is better than Array.slice) + @param array array + */ + static copy(array: any[]): any[]; + } + /** !#en + A fixed-length object pool designed for general type.
+ The implementation of this object pool is very simple, + it can helps you to improve your game performance for objects which need frequent release and recreate operations
+ !#zh + 长度固定的对象缓存池,可以用来缓存各种对象类型。
+ 这个对象池的实现非常精简,它可以帮助您提高游戏性能,适用于优化对象的反复创建和销毁。 */ + export class Pool { + /** + !#en + Constructor for creating an object pool for the specific object type. + You can pass a callback argument for process the cleanup logic when the object is recycled. + !#zh + 使用构造函数来创建一个指定对象类型的对象池,您可以传递一个回调函数,用于处理对象回收时的清理逻辑。 + @param cleanupFunc the callback method used to process the cleanup logic when the object is recycled. + @param size initializes the length of the array + */ + constructor(cleanupFunc: (obj: any) => void, size: number); + constructor(size: number); + /** + !#en + Get and initialize an object from pool. This method defaults to null and requires the user to implement it. + !#zh + 获取并初始化对象池中的对象。这个方法默认为空,需要用户自己实现。 + @param params parameters to used to initialize the object + */ + get(...params: any[]): any; + /** !#en + The current number of available objects, the default is 0, it will gradually increase with the recycle of the object, + the maximum will not exceed the size specified when the constructor is called. + !#zh + 当前可用对象数量,一开始默认是 0,随着对象的回收会逐渐增大,最大不会超过调用构造函数时指定的 size。 */ + count: number; + /** + !#en + Get an object from pool, if no available object in the pool, null will be returned. + !#zh + 获取对象池中的对象,如果对象池没有可用对象,则返回空。 + */ + _get(): any; + /** + !#en Put an object into the pool. + !#zh 向对象池返还一个不再需要的对象。 + */ + put(): void; + /** + !#en Resize the pool. + !#zh 设置对象池容量。 + */ + resize(): void; + } +} + +/** !#en A basic module for creating vertex data for 3D objects. You can access this module by `cc.primitive`. +!#zh 一个创建 3D 物体顶点数据的基础模块,你可以通过 `cc.primitive` 来访问这个模块。 */ +declare namespace cc.primitive { + /** + !#en Create box vertex data + !#zh 创建长方体顶点数据 + @param width width + @param height height + @param length length + @param opts opts + */ + export function box(width: number, height: number, length: number, opts: {widthSegments: number; heightSegments: number; lengthSegments: number; }): cc.VertexData; + /** + !#en Create cone vertex data + !#zh 创建圆锥体顶点数据 + @param radius radius + @param height height + @param opts opts + */ + export function cone(radius: number, height: number, opts: {radialSegments: number; heightSegments: number; capped: boolean; arc: number; }): cc.VertexData; + /** + !#en Create cylinder vertex data + !#zh 创建圆柱体顶点数据 + @param radiusTop radiusTop + @param radiusBottom radiusBottom + @param height height + @param opts opts + */ + export function cylinder(radiusTop: number, radiusBottom: number, height: number, opts: {radialSegments: number; heightSegments: number; capped: boolean; arc: number; }): cc.VertexData; + /** + !#en Create plane vertex data + !#zh 创建平台顶点数据 + @param width width + @param length length + @param opts opts + */ + export function plane(width: number, length: number, opts: {widthSegments: number; lengthSegments: number; }): cc.VertexData; + /** + !#en Create quad vertex data + !#zh 创建面片顶点数据 + */ + export function quad(): cc.VertexData; + /** + !#en Create sphere vertex data + !#zh 创建球体顶点数据 + @param radius radius + @param opts opts + */ + export function sphere(radius: number, opts: {segments: number; }): cc.VertexData; + /** + !#en Create torus vertex data + !#zh 创建圆环顶点数据 + @param radius radius + @param tube tube + @param opts opts + */ + export function torus(radius: number, tube: number, opts: {radialSegments: number; tubularSegments: number; arc: number; }): cc.VertexData; + /** + !#en Create capsule vertex data + !#zh 创建胶囊体顶点数据 + @param radiusTop radiusTop + @param radiusBottom radiusBottom + @param height height + @param opts opts + */ + export function capsule(radiusTop: number, radiusBottom: number, height: number, opts: {sides: number; heightSegments: number; capped: boolean; arc: number; }): cc.VertexData; + /** + !#en Create polyhedron vertex data + !#zh 创建多面体顶点数据 + @param type type + @param Size Size + @param opts opts + */ + export function polyhedron(type: cc.primitive.PolyhedronType, Size: number, opts: {sizeX: number; sizeY: number; sizeZ: number; }): cc.VertexData; +} + +declare let CC_JSB: boolean +declare let CC_NATIVERENDERER: boolean +declare let CC_EDITOR: boolean +declare let CC_PREVIEW: boolean +declare let CC_TEST: boolean +declare let CC_DEBUG: boolean + +declare let cc: { + // polyfills: { + // destroyObject? (object: any): void; + // }; + [x: string]: any; +} + +declare let Editor: any; + +// https://medium.com/dailyjs/typescript-create-a-condition-based-subset-types-9d902cea5b8c +type FlagExcludedType = { [Key in keyof Base]: Base[Key] extends Type ? never : Key }; +type AllowedNames = FlagExcludedType[keyof Base]; +type KeyPartial = { [P in K]?: T[P] }; +type OmitType = KeyPartial>; +type ConstructorType = OmitType; + +declare interface IWritableArrayLike { + readonly length: number; + [index: number]: T; +} + +declare let module: { + exports: object +} + + +declare interface Math { + sign(v: number); +} + +declare interface Object { + assign(target: {}, source: {}); +} + + +type FloatArray = Float64Array | Float32Array; + +interface IColorLike { + r: number; + g: number; + b: number; + a: number; + _val: number; + +} + +interface IMat3Like { + m: FloatArray +} + +interface IMat4Like { + m: FloatArray +} + +interface IQuatLike { + x: number; + y: number; + z: number; + w: number; +} + +interface IRectLike { + x: number; + y: number; + width: number; + height: number; +} + +interface ISizeLike { + width: number; + height: number; +} + +interface IVec2Like { + x: number; + y: number; +} + +interface IVec3Like { + x: number; + y: number; + z: number; +} + +interface IVec4Like { + x: number; + y: number; + z: number; + w: number; +} +declare namespace dragonBones { + /** + * @internal + * @private + */ + const webAssemblyModule: { + HEAP16: Int16Array; + _malloc(byteSize: number): number; + _free(pointer: number): void; + setDataBinary(data: DragonBonesData, binaryPointer: number, intBytesLength: number, floatBytesLength: number, frameIntBytesLength: number, frameFloatBytesLength: number, frameBytesLength: number, timelineBytesLength: number): void; + }; +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * @internal + * @private + */ + const enum BinaryOffset { + WeigthBoneCount = 0, + WeigthFloatOffset = 1, + WeigthBoneIndices = 2, + MeshVertexCount = 0, + MeshTriangleCount = 1, + MeshFloatOffset = 2, + MeshWeightOffset = 3, + MeshVertexIndices = 4, + TimelineScale = 0, + TimelineOffset = 1, + TimelineKeyFrameCount = 2, + TimelineFrameValueCount = 3, + TimelineFrameValueOffset = 4, + TimelineFrameOffset = 5, + FramePosition = 0, + FrameTweenType = 1, + FrameTweenEasingOrCurveSampleCount = 2, + FrameCurveSamples = 3, + DeformMeshOffset = 0, + DeformCount = 1, + DeformValueCount = 2, + DeformValueOffset = 3, + DeformFloatOffset = 4, + } + /** + * @internal + * @private + */ + const enum ArmatureType { + Armature = 0, + MovieClip = 1, + Stage = 2, + } + /** + * @internal + * @private + */ + const enum BoneType { + Bone = 0, + Surface = 1, + } + /** + * @private + */ + const enum DisplayType { + Image = 0, + Armature = 1, + Mesh = 2, + BoundingBox = 3, + } + /** + * - Bounding box type. + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 边界框类型。 + * @version DragonBones 5.0 + * @language zh_CN + */ + const enum BoundingBoxType { + Rectangle = 0, + Ellipse = 1, + Polygon = 2, + } + /** + * @internal + * @private + */ + const enum ActionType { + Play = 0, + Frame = 10, + Sound = 11, + } + /** + * @internal + * @private + */ + const enum BlendMode { + Normal = 0, + Add = 1, + Alpha = 2, + Darken = 3, + Difference = 4, + Erase = 5, + HardLight = 6, + Invert = 7, + Layer = 8, + Lighten = 9, + Multiply = 10, + Overlay = 11, + Screen = 12, + Subtract = 13, + } + /** + * @internal + * @private + */ + const enum TweenType { + None = 0, + Line = 1, + Curve = 2, + QuadIn = 3, + QuadOut = 4, + QuadInOut = 5, + } + /** + * @internal + * @private + */ + const enum TimelineType { + Action = 0, + ZOrder = 1, + BoneAll = 10, + BoneTranslate = 11, + BoneRotate = 12, + BoneScale = 13, + Surface = 50, + SlotDisplay = 20, + SlotColor = 21, + SlotFFD = 22, + IKConstraint = 30, + AnimationTime = 40, + AnimationWeight = 41, + } + /** + * - Offset mode. + * @version DragonBones 5.5 + * @language en_US + */ + /** + * - 偏移模式。 + * @version DragonBones 5.5 + * @language zh_CN + */ + const enum OffsetMode { + None = 0, + Additive = 1, + Override = 2, + } + /** + * - Animation fade out mode. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 动画淡出模式。 + * @version DragonBones 4.5 + * @language zh_CN + */ + const enum AnimationFadeOutMode { + /** + * - Do not fade out of any animation states. + * @language en_US + */ + /** + * - 不淡出任何的动画状态。 + * @language zh_CN + */ + None = 0, + /** + * - Fade out the animation states of the same layer. + * @language en_US + */ + /** + * - 淡出同层的动画状态。 + * @language zh_CN + */ + SameLayer = 1, + /** + * - Fade out the animation states of the same group. + * @language en_US + */ + /** + * - 淡出同组的动画状态。 + * @language zh_CN + */ + SameGroup = 2, + /** + * - Fade out the animation states of the same layer and group. + * @language en_US + */ + /** + * - 淡出同层并且同组的动画状态。 + * @language zh_CN + */ + SameLayerAndGroup = 3, + /** + * - Fade out of all animation states. + * @language en_US + */ + /** + * - 淡出所有的动画状态。 + * @language zh_CN + */ + All = 4, + /** + * - Does not replace the animation state with the same name. + * @language en_US + */ + /** + * - 不替换同名的动画状态。 + * @language zh_CN + */ + Single = 5, + } + /** + * @private + */ + interface Map { + [key: string]: T; + } + /** + * @private + */ + class DragonBones { + static readonly VERSION: string; + static yDown: boolean; + static debug: boolean; + static debugDraw: boolean; + static webAssembly: boolean; + private readonly _clock; + private readonly _events; + private readonly _objects; + private _eventManager; + constructor(eventManager: IEventDispatcher); + advanceTime(passedTime: number): void; + bufferEvent(value: EventObject): void; + bufferObject(object: BaseObject): void; + readonly clock: WorldClock; + readonly eventManager: IEventDispatcher; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The BaseObject is the base class for all objects in the DragonBones framework. + * All BaseObject instances are cached to the object pool to reduce the performance consumption of frequent requests for memory or memory recovery. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 基础对象,通常 DragonBones 的对象都继承自该类。 + * 所有基础对象的实例都会缓存到对象池,以减少频繁申请内存或内存回收的性能消耗。 + * @version DragonBones 4.5 + * @language zh_CN + */ + abstract class BaseObject { + private static _hashCode; + private static _defaultMaxCount; + private static readonly _maxCountMap; + private static readonly _poolsMap; + private static _returnObject(object); + static toString(): string; + /** + * - Set the maximum cache count of the specify object pool. + * @param objectConstructor - The specify class. (Set all object pools max cache count if not set) + * @param maxCount - Max count. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 设置特定对象池的最大缓存数量。 + * @param objectConstructor - 特定的类。 (不设置则设置所有对象池的最大缓存数量) + * @param maxCount - 最大缓存数量。 + * @version DragonBones 4.5 + * @language zh_CN + */ + static setMaxCount(objectConstructor: (typeof BaseObject) | null, maxCount: number): void; + /** + * - Clear the cached instances of a specify object pool. + * @param objectConstructor - Specify class. (Clear all cached instances if not set) + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 清除特定对象池的缓存实例。 + * @param objectConstructor - 特定的类。 (不设置则清除所有缓存的实例) + * @version DragonBones 4.5 + * @language zh_CN + */ + static clearPool(objectConstructor?: (typeof BaseObject) | null): void; + /** + * - Get an instance of the specify class from object pool. + * @param objectConstructor - The specify class. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 从对象池中获取特定类的实例。 + * @param objectConstructor - 特定的类。 + * @version DragonBones 4.5 + * @language zh_CN + */ + static borrowObject(objectConstructor: { + new (): T; + }): T; + /** + * - A unique identification number assigned to the object. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 分配给此实例的唯一标识号。 + * @version DragonBones 4.5 + * @language zh_CN + */ + readonly hashCode: number; + private _isInPool; + /** + * @private + */ + protected abstract _onClear(): void; + /** + * - Clear the object and return it back to object pool。 + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 清除该实例的所有数据并将其返还对象池。 + * @version DragonBones 4.5 + * @language zh_CN + */ + returnToPool(): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - 2D Transform matrix. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 2D 转换矩阵。 + * @version DragonBones 3.0 + * @language zh_CN + */ + class Matrix { + /** + * - The value that affects the positioning of pixels along the x axis when scaling or rotating an image. + * @default 1.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 缩放或旋转图像时影响像素沿 x 轴定位的值。 + * @default 1.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + a: number; + /** + * - The value that affects the positioning of pixels along the y axis when rotating or skewing an image. + * @default 0.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 旋转或倾斜图像时影响像素沿 y 轴定位的值。 + * @default 0.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + b: number; + /** + * - The value that affects the positioning of pixels along the x axis when rotating or skewing an image. + * @default 0.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 旋转或倾斜图像时影响像素沿 x 轴定位的值。 + * @default 0.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + c: number; + /** + * - The value that affects the positioning of pixels along the y axis when scaling or rotating an image. + * @default 1.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 缩放或旋转图像时影响像素沿 y 轴定位的值。 + * @default 1.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + d: number; + /** + * - The distance by which to translate each point along the x axis. + * @default 0.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 沿 x 轴平移每个点的距离。 + * @default 0.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + tx: number; + /** + * - The distance by which to translate each point along the y axis. + * @default 0.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 沿 y 轴平移每个点的距离。 + * @default 0.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + ty: number; + /** + * @private + */ + constructor(a?: number, b?: number, c?: number, d?: number, tx?: number, ty?: number); + toString(): string; + /** + * @private + */ + copyFrom(value: Matrix): Matrix; + /** + * @private + */ + copyFromArray(value: Array, offset?: number): Matrix; + /** + * - Convert to unit matrix. + * The resulting matrix has the following properties: a=1, b=0, c=0, d=1, tx=0, ty=0. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 转换为单位矩阵。 + * 该矩阵具有以下属性:a=1、b=0、c=0、d=1、tx=0、ty=0。 + * @version DragonBones 3.0 + * @language zh_CN + */ + identity(): Matrix; + /** + * - Multiplies the current matrix with another matrix. + * @param value - The matrix that needs to be multiplied. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 将当前矩阵与另一个矩阵相乘。 + * @param value - 需要相乘的矩阵。 + * @version DragonBones 3.0 + * @language zh_CN + */ + concat(value: Matrix): Matrix; + /** + * - Convert to inverse matrix. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 转换为逆矩阵。 + * @version DragonBones 3.0 + * @language zh_CN + */ + invert(): Matrix; + /** + * - Apply a matrix transformation to a specific point. + * @param x - X coordinate. + * @param y - Y coordinate. + * @param result - The point after the transformation is applied. + * @param delta - Whether to ignore tx, ty's conversion to point. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 将矩阵转换应用于特定点。 + * @param x - 横坐标。 + * @param y - 纵坐标。 + * @param result - 应用转换之后的点。 + * @param delta - 是否忽略 tx,ty 对点的转换。 + * @version DragonBones 3.0 + * @language zh_CN + */ + transformPoint(x: number, y: number, result: { + x: number; + y: number; + }, delta?: boolean): void; + /** + * @private + */ + transformRectangle(rectangle: { + x: number; + y: number; + width: number; + height: number; + }, delta?: boolean): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - 2D Transform. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 2D 变换。 + * @version DragonBones 3.0 + * @language zh_CN + */ + class Transform { + /** + * @private + */ + static readonly PI: number; + /** + * @private + */ + static readonly PI_D: number; + /** + * @private + */ + static readonly PI_H: number; + /** + * @private + */ + static readonly PI_Q: number; + /** + * @private + */ + static readonly RAD_DEG: number; + /** + * @private + */ + static readonly DEG_RAD: number; + /** + * @private + */ + static normalizeRadian(value: number): number; + /** + * - Horizontal translate. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 水平位移。 + * @version DragonBones 3.0 + * @language zh_CN + */ + x: number; + /** + * - Vertical translate. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 垂直位移。 + * @version DragonBones 3.0 + * @language zh_CN + */ + y: number; + /** + * - Skew. (In radians) + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 倾斜。 (以弧度为单位) + * @version DragonBones 3.0 + * @language zh_CN + */ + skew: number; + /** + * - rotation. (In radians) + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 旋转。 (以弧度为单位) + * @version DragonBones 3.0 + * @language zh_CN + */ + rotation: number; + /** + * - Horizontal Scaling. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 水平缩放。 + * @version DragonBones 3.0 + * @language zh_CN + */ + scaleX: number; + /** + * - Vertical scaling. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 垂直缩放。 + * @version DragonBones 3.0 + * @language zh_CN + */ + scaleY: number; + /** + * @private + */ + constructor(x?: number, y?: number, skew?: number, rotation?: number, scaleX?: number, scaleY?: number); + toString(): string; + /** + * @private + */ + copyFrom(value: Transform): Transform; + /** + * @private + */ + identity(): Transform; + /** + * @private + */ + add(value: Transform): Transform; + /** + * @private + */ + minus(value: Transform): Transform; + /** + * @private + */ + fromMatrix(matrix: Matrix): Transform; + /** + * @private + */ + toMatrix(matrix: Matrix): Transform; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * @internal + * @private + */ + class ColorTransform { + alphaMultiplier: number; + redMultiplier: number; + greenMultiplier: number; + blueMultiplier: number; + alphaOffset: number; + redOffset: number; + greenOffset: number; + blueOffset: number; + constructor(alphaMultiplier?: number, redMultiplier?: number, greenMultiplier?: number, blueMultiplier?: number, alphaOffset?: number, redOffset?: number, greenOffset?: number, blueOffset?: number); + copyFrom(value: ColorTransform): void; + identity(): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The Point object represents a location in a two-dimensional coordinate system. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - Point 对象表示二维坐标系统中的某个位置。 + * @version DragonBones 3.0 + * @language zh_CN + */ + class Point { + /** + * - The horizontal coordinate. + * @default 0.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 该点的水平坐标。 + * @default 0.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + x: number; + /** + * - The vertical coordinate. + * @default 0.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 该点的垂直坐标。 + * @default 0.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + y: number; + /** + * - Creates a new point. If you pass no parameters to this method, a point is created at (0,0). + * @param x - The horizontal coordinate. + * @param y - The vertical coordinate. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 创建一个 egret.Point 对象.若不传入任何参数,将会创建一个位于(0,0)位置的点。 + * @param x - 该对象的x属性值,默认为 0.0。 + * @param y - 该对象的y属性值,默认为 0.0。 + * @version DragonBones 3.0 + * @language zh_CN + */ + constructor(x?: number, y?: number); + /** + * @private + */ + copyFrom(value: Point): void; + /** + * @private + */ + clear(): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - A Rectangle object is an area defined by its position, as indicated by its top-left corner point (x, y) and by its + * width and its height.
+ * The x, y, width, and height properties of the Rectangle class are independent of each other; changing the value of + * one property has no effect on the others. However, the right and bottom properties are integrally related to those + * four properties. For example, if you change the value of the right property, the value of the width property changes; + * if you change the bottom property, the value of the height property changes. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - Rectangle 对象是按其位置(由它左上角的点 (x, y) 确定)以及宽度和高度定义的区域。
+ * Rectangle 类的 x、y、width 和 height 属性相互独立;更改一个属性的值不会影响其他属性。 + * 但是,right 和 bottom 属性与这四个属性是整体相关的。例如,如果更改 right 属性的值,则 width + * 属性的值将发生变化;如果更改 bottom 属性,则 height 属性的值将发生变化。 + * @version DragonBones 3.0 + * @language zh_CN + */ + class Rectangle { + /** + * - The x coordinate of the top-left corner of the rectangle. + * @default 0.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 矩形左上角的 x 坐标。 + * @default 0.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + x: number; + /** + * - The y coordinate of the top-left corner of the rectangle. + * @default 0.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 矩形左上角的 y 坐标。 + * @default 0.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + y: number; + /** + * - The width of the rectangle, in pixels. + * @default 0.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 矩形的宽度(以像素为单位)。 + * @default 0.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + width: number; + /** + * - 矩形的高度(以像素为单位)。 + * @default 0.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - The height of the rectangle, in pixels. + * @default 0.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + height: number; + /** + * @private + */ + constructor(x?: number, y?: number, width?: number, height?: number); + /** + * @private + */ + copyFrom(value: Rectangle): void; + /** + * @private + */ + clear(): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The user custom data. + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 用户自定义数据。 + * @version DragonBones 5.0 + * @language zh_CN + */ + class UserData extends BaseObject { + static toString(): string; + /** + * - The custom int numbers. + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 自定义整数。 + * @version DragonBones 5.0 + * @language zh_CN + */ + readonly ints: Array; + /** + * - The custom float numbers. + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 自定义浮点数。 + * @version DragonBones 5.0 + * @language zh_CN + */ + readonly floats: Array; + /** + * - The custom strings. + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 自定义字符串。 + * @version DragonBones 5.0 + * @language zh_CN + */ + readonly strings: Array; + /** + * @inheritDoc + */ + protected _onClear(): void; + /** + * @internal + * @private + */ + addInt(value: number): void; + /** + * @internal + * @private + */ + addFloat(value: number): void; + /** + * @internal + * @private + */ + addString(value: string): void; + /** + * - Get the custom int number. + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 获取自定义整数。 + * @version DragonBones 5.0 + * @language zh_CN + */ + getInt(index?: number): number; + /** + * - Get the custom float number. + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 获取自定义浮点数。 + * @version DragonBones 5.0 + * @language zh_CN + */ + getFloat(index?: number): number; + /** + * - Get the custom string. + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 获取自定义字符串。 + * @version DragonBones 5.0 + * @language zh_CN + */ + getString(index?: number): string; + } + /** + * @internal + * @private + */ + class ActionData extends BaseObject { + static toString(): string; + type: ActionType; + name: string; + bone: BoneData | null; + slot: SlotData | null; + data: UserData | null; + protected _onClear(): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The DragonBones data. + * A DragonBones data contains multiple armature data. + * @see dragonBones.ArmatureData + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 龙骨数据。 + * 一个龙骨数据包含多个骨架数据。 + * @see dragonBones.ArmatureData + * @version DragonBones 3.0 + * @language zh_CN + */ + class DragonBonesData extends BaseObject { + static toString(): string; + /** + * @private + */ + autoSearch: boolean; + /** + * - The animation frame rate. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 动画帧频。 + * @version DragonBones 3.0 + * @language zh_CN + */ + frameRate: number; + /** + * - The data version. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 数据版本。 + * @version DragonBones 3.0 + * @language zh_CN + */ + version: string; + /** + * - The DragonBones data name. + * The name is consistent with the DragonBones project name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 龙骨数据名称。 + * 该名称与龙骨项目名保持一致。 + * @version DragonBones 3.0 + * @language zh_CN + */ + name: string; + /** + * @private + */ + stage: ArmatureData | null; + /** + * @internal + * @private + */ + readonly frameIndices: Array; + /** + * @internal + * @private + */ + readonly cachedFrames: Array; + /** + * - All armature data names. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 所有的骨架数据名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly armatureNames: Array; + /** + * @private + */ + readonly armatures: Map; + /** + * @internal + * @private + */ + binary: ArrayBuffer; + /** + * @internal + * @private + */ + intArray: Int16Array; + /** + * @internal + * @private + */ + floatArray: Float32Array; + /** + * @internal + * @private + */ + frameIntArray: Int16Array; + /** + * @internal + * @private + */ + frameFloatArray: Float32Array; + /** + * @internal + * @private + */ + frameArray: Int16Array; + /** + * @internal + * @private + */ + timelineArray: Uint16Array; + /** + * @private + */ + userData: UserData | null; + /** + * @inheritDoc + */ + protected _onClear(): void; + /** + * @internal + * @private + */ + addArmature(value: ArmatureData): void; + /** + * - Get a specific armature data. + * @param name - The armature data name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 获取特定的骨架数据。 + * @param name - 骨架数据名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + getArmature(name: string): ArmatureData | null; + /** + * - Deprecated, please refer to {@link #dragonBones.BaseFactory#removeDragonBonesData()}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #dragonBones.BaseFactory#removeDragonBonesData()}。 + * @deprecated + * @language zh_CN + */ + dispose(): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The armature data. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 骨架数据。 + * @version DragonBones 3.0 + * @language zh_CN + */ + class ArmatureData extends BaseObject { + static toString(): string; + /** + * @private + */ + type: ArmatureType; + /** + * - The animation frame rate. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 动画帧率。 + * @version DragonBones 3.0 + * @language zh_CN + */ + frameRate: number; + /** + * @private + */ + cacheFrameRate: number; + /** + * @private + */ + scale: number; + /** + * - The armature name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 骨架名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + name: string; + /** + * @private + */ + readonly aabb: Rectangle; + /** + * - The names of all the animation data. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 所有的动画数据名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly animationNames: Array; + /** + * @private + */ + readonly sortedBones: Array; + /** + * @private + */ + readonly sortedSlots: Array; + /** + * @private + */ + readonly defaultActions: Array; + /** + * @private + */ + readonly actions: Array; + /** + * @private + */ + readonly bones: Map; + /** + * @private + */ + readonly slots: Map; + /** + * @private + */ + readonly constraints: Map; + /** + * @private + */ + readonly skins: Map; + /** + * @private + */ + readonly animations: Map; + /** + * - The default skin data. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 默认插槽数据。 + * @version DragonBones 4.5 + * @language zh_CN + */ + defaultSkin: SkinData | null; + /** + * - The default animation data. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 默认动画数据。 + * @version DragonBones 4.5 + * @language zh_CN + */ + defaultAnimation: AnimationData | null; + /** + * @private + */ + canvas: CanvasData | null; + /** + * @private + */ + userData: UserData | null; + /** + * @private + */ + parent: DragonBonesData; + /** + * @inheritDoc + */ + protected _onClear(): void; + /** + * @internal + * @private + */ + sortBones(): void; + /** + * @internal + * @private + */ + cacheFrames(frameRate: number): void; + /** + * @internal + * @private + */ + setCacheFrame(globalTransformMatrix: Matrix, transform: Transform): number; + /** + * @internal + * @private + */ + getCacheFrame(globalTransformMatrix: Matrix, transform: Transform, arrayOffset: number): void; + /** + * @internal + * @private + */ + addBone(value: BoneData): void; + /** + * @internal + * @private + */ + addSlot(value: SlotData): void; + /** + * @internal + * @private + */ + addConstraint(value: ConstraintData): void; + /** + * @internal + * @private + */ + addSkin(value: SkinData): void; + /** + * @internal + * @private + */ + addAnimation(value: AnimationData): void; + /** + * @internal + * @private + */ + addAction(value: ActionData, isDefault: boolean): void; + /** + * - Get a specific done data. + * @param name - The bone name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 获取特定的骨骼数据。 + * @param name - 骨骼名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + getBone(name: string): BoneData | null; + /** + * - Get a specific slot data. + * @param name - The slot name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 获取特定的插槽数据。 + * @param name - 插槽名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + getSlot(name: string): SlotData | null; + /** + * @private + */ + getConstraint(name: string): ConstraintData | null; + /** + * - Get a specific skin data. + * @param name - The skin name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 获取特定皮肤数据。 + * @param name - 皮肤名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + getSkin(name: string): SkinData | null; + /** + * @internal + * @private + */ + getMesh(skinName: string, slotName: string, meshName: string): MeshDisplayData | null; + /** + * - Get a specific animation data. + * @param name - The animation name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 获取特定的动画数据。 + * @param name - 动画名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + getAnimation(name: string): AnimationData | null; + } + /** + * - The bone data. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 骨骼数据。 + * @version DragonBones 3.0 + * @language zh_CN + */ + class BoneData extends BaseObject { + static toString(): string; + /** + * @private + */ + inheritTranslation: boolean; + /** + * @private + */ + inheritRotation: boolean; + /** + * @private + */ + inheritScale: boolean; + /** + * @private + */ + inheritReflection: boolean; + /** + * @private + */ + type: BoneType; + /** + * - The bone length. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 骨骼长度。 + * @version DragonBones 3.0 + * @language zh_CN + */ + length: number; + /** + * - The bone name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 骨骼名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + name: string; + /** + * @private + */ + readonly transform: Transform; + /** + * @private + */ + userData: UserData | null; + /** + * - The parent bone data. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 父骨骼数据。 + * @version DragonBones 3.0 + * @language zh_CN + */ + parent: BoneData | null; + /** + * @inheritDoc + */ + protected _onClear(): void; + } + /** + * @internal + * @private + */ + class SurfaceData extends BoneData { + static toString(): string; + segmentX: number; + segmentY: number; + readonly vertices: Array; + /** + * @inheritDoc + */ + protected _onClear(): void; + } + /** + * - The slot data. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 插槽数据。 + * @version DragonBones 3.0 + * @language zh_CN + */ + class SlotData extends BaseObject { + /** + * @internal + * @private + */ + static readonly DEFAULT_COLOR: ColorTransform; + /** + * @internal + * @private + */ + static createColor(): ColorTransform; + static toString(): string; + /** + * @private + */ + blendMode: BlendMode; + /** + * @private + */ + displayIndex: number; + /** + * @private + */ + zOrder: number; + /** + * - The slot name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 插槽名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + name: string; + /** + * @private + */ + color: ColorTransform; + /** + * @private + */ + userData: UserData | null; + /** + * - The parent bone data. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 父骨骼数据。 + * @version DragonBones 3.0 + * @language zh_CN + */ + parent: BoneData; + /** + * @inheritDoc + */ + protected _onClear(): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * @internal + * @private + */ + abstract class ConstraintData extends BaseObject { + order: number; + name: string; + target: BoneData; + root: BoneData; + bone: BoneData | null; + protected _onClear(): void; + } + /** + * @internal + * @private + */ + class IKConstraintData extends ConstraintData { + static toString(): string; + scaleEnabled: boolean; + bendPositive: boolean; + weight: number; + protected _onClear(): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * @internal + * @private + */ + class CanvasData extends BaseObject { + static toString(): string; + hasBackground: boolean; + color: number; + x: number; + y: number; + width: number; + height: number; + protected _onClear(): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The skin data, typically a armature data instance contains at least one skinData. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 皮肤数据,通常一个骨架数据至少包含一个皮肤数据。 + * @version DragonBones 3.0 + * @language zh_CN + */ + class SkinData extends BaseObject { + static toString(): string; + /** + * - The skin name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 皮肤名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + name: string; + /** + * @private + */ + readonly displays: Map>; + /** + * @private + */ + parent: ArmatureData; + /** + * @inheritDoc + */ + protected _onClear(): void; + /** + * @internal + * @private + */ + addDisplay(slotName: string, value: DisplayData | null): void; + /** + * @private + */ + getDisplay(slotName: string, displayName: string): DisplayData | null; + /** + * @private + */ + getDisplays(slotName: string): Array | null; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * @internal + * @private + */ + abstract class DisplayData extends BaseObject { + type: DisplayType; + name: string; + path: string; + parent: SkinData; + readonly transform: Transform; + protected _onClear(): void; + } + /** + * @internal + * @private + */ + class ImageDisplayData extends DisplayData { + static toString(): string; + readonly pivot: Point; + texture: TextureData | null; + protected _onClear(): void; + } + /** + * @internal + * @private + */ + class ArmatureDisplayData extends DisplayData { + static toString(): string; + inheritAnimation: boolean; + readonly actions: Array; + armature: ArmatureData | null; + protected _onClear(): void; + /** + * @private + */ + addAction(value: ActionData): void; + } + /** + * @internal + * @private + */ + class MeshDisplayData extends DisplayData { + static toString(): string; + inheritDeform: boolean; + offset: number; + weight: WeightData | null; + glue: GlueData | null; + texture: TextureData | null; + protected _onClear(): void; + } + /** + * @internal + * @private + */ + class BoundingBoxDisplayData extends DisplayData { + static toString(): string; + boundingBox: BoundingBoxData | null; + protected _onClear(): void; + } + /** + * @internal + * @private + */ + class WeightData extends BaseObject { + static toString(): string; + count: number; + offset: number; + readonly bones: Array; + protected _onClear(): void; + addBone(value: BoneData): void; + } + /** + * @internal + * @private + */ + class GlueData extends BaseObject { + static toString(): string; + readonly weights: Array; + readonly meshes: Array; + protected _onClear(): void; + addMesh(value: MeshDisplayData | null): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The base class of bounding box data. + * @see dragonBones.RectangleData + * @see dragonBones.EllipseData + * @see dragonBones.PolygonData + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 边界框数据基类。 + * @see dragonBones.RectangleData + * @see dragonBones.EllipseData + * @see dragonBones.PolygonData + * @version DragonBones 5.0 + * @language zh_CN + */ + abstract class BoundingBoxData extends BaseObject { + /** + * - The bounding box type. + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 边界框类型。 + * @version DragonBones 5.0 + * @language zh_CN + */ + type: BoundingBoxType; + /** + * @private + */ + color: number; + /** + * @private + */ + width: number; + /** + * @private + */ + height: number; + /** + * @private + */ + protected _onClear(): void; + /** + * - Check whether the bounding box contains a specific point. (Local coordinate system) + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 检查边界框是否包含特定点。(本地坐标系) + * @version DragonBones 5.0 + * @language zh_CN + */ + abstract containsPoint(pX: number, pY: number): boolean; + /** + * - Check whether the bounding box intersects a specific segment. (Local coordinate system) + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 检查边界框是否与特定线段相交。(本地坐标系) + * @version DragonBones 5.0 + * @language zh_CN + */ + abstract intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA: { + x: number; + y: number; + } | null, intersectionPointB: { + x: number; + y: number; + } | null, normalRadians: { + x: number; + y: number; + } | null): number; + } + /** + * - The rectangle bounding box data. + * @version DragonBones 5.1 + * @language en_US + */ + /** + * - 矩形边界框数据。 + * @version DragonBones 5.1 + * @language zh_CN + */ + class RectangleBoundingBoxData extends BoundingBoxData { + static toString(): string; + /** + * - Compute the bit code for a point (x, y) using the clip rectangle + */ + private static _computeOutCode(x, y, xMin, yMin, xMax, yMax); + /** + * @private + */ + static rectangleIntersectsSegment(xA: number, yA: number, xB: number, yB: number, xMin: number, yMin: number, xMax: number, yMax: number, intersectionPointA?: { + x: number; + y: number; + } | null, intersectionPointB?: { + x: number; + y: number; + } | null, normalRadians?: { + x: number; + y: number; + } | null): number; + /** + * @inheritDoc + * @private + */ + protected _onClear(): void; + /** + * @inheritDoc + */ + containsPoint(pX: number, pY: number): boolean; + /** + * @inheritDoc + */ + intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: { + x: number; + y: number; + } | null, intersectionPointB?: { + x: number; + y: number; + } | null, normalRadians?: { + x: number; + y: number; + } | null): number; + } + /** + * - The ellipse bounding box data. + * @version DragonBones 5.1 + * @language en_US + */ + /** + * - 椭圆边界框数据。 + * @version DragonBones 5.1 + * @language zh_CN + */ + class EllipseBoundingBoxData extends BoundingBoxData { + static toString(): string; + /** + * @private + */ + static ellipseIntersectsSegment(xA: number, yA: number, xB: number, yB: number, xC: number, yC: number, widthH: number, heightH: number, intersectionPointA?: { + x: number; + y: number; + } | null, intersectionPointB?: { + x: number; + y: number; + } | null, normalRadians?: { + x: number; + y: number; + } | null): number; + /** + * @inheritDoc + * @private + */ + protected _onClear(): void; + /** + * @inheritDoc + */ + containsPoint(pX: number, pY: number): boolean; + /** + * @inheritDoc + */ + intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: { + x: number; + y: number; + } | null, intersectionPointB?: { + x: number; + y: number; + } | null, normalRadians?: { + x: number; + y: number; + } | null): number; + } + /** + * - The polygon bounding box data. + * @version DragonBones 5.1 + * @language en_US + */ + /** + * - 多边形边界框数据。 + * @version DragonBones 5.1 + * @language zh_CN + */ + class PolygonBoundingBoxData extends BoundingBoxData { + static toString(): string; + /** + * @private + */ + static polygonIntersectsSegment(xA: number, yA: number, xB: number, yB: number, vertices: Array, intersectionPointA?: { + x: number; + y: number; + } | null, intersectionPointB?: { + x: number; + y: number; + } | null, normalRadians?: { + x: number; + y: number; + } | null): number; + /** + * @private + */ + x: number; + /** + * @private + */ + y: number; + /** + * - The polygon vertices. + * @version DragonBones 5.1 + * @language en_US + */ + /** + * - 多边形顶点。 + * @version DragonBones 5.1 + * @language zh_CN + */ + readonly vertices: Array; + /** + * @private + */ + weight: WeightData | null; + /** + * @inheritDoc + * @private + */ + protected _onClear(): void; + /** + * @inheritDoc + */ + containsPoint(pX: number, pY: number): boolean; + /** + * @inheritDoc + */ + intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: { + x: number; + y: number; + } | null, intersectionPointB?: { + x: number; + y: number; + } | null, normalRadians?: { + x: number; + y: number; + } | null): number; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The animation data. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 动画数据。 + * @version DragonBones 3.0 + * @language zh_CN + */ + class AnimationData extends BaseObject { + static toString(): string; + /** + * - FrameIntArray. + * @internal + * @private + */ + frameIntOffset: number; + /** + * - FrameFloatArray. + * @internal + * @private + */ + frameFloatOffset: number; + /** + * - FrameArray. + * @internal + * @private + */ + frameOffset: number; + /** + * - The frame count of the animation. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 动画的帧数。 + * @version DragonBones 3.0 + * @language zh_CN + */ + frameCount: number; + /** + * - The play times of the animation. [0: Loop play, [1~N]: Play N times] + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 动画的播放次数。 [0: 无限循环播放, [1~N]: 循环播放 N 次] + * @version DragonBones 3.0 + * @language zh_CN + */ + playTimes: number; + /** + * - The duration of the animation. (In seconds) + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 动画的持续时间。 (以秒为单位) + * @version DragonBones 3.0 + * @language zh_CN + */ + duration: number; + /** + * @private + */ + scale: number; + /** + * - The fade in time of the animation. (In seconds) + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 动画的淡入时间。 (以秒为单位) + * @version DragonBones 3.0 + * @language zh_CN + */ + fadeInTime: number; + /** + * @private + */ + cacheFrameRate: number; + /** + * - The animation name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 动画名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + name: string; + /** + * @private + */ + readonly cachedFrames: Array; + /** + * @private + */ + readonly boneTimelines: Map>; + /** + * @private + */ + readonly surfaceTimelines: Map>; + /** + * @private + */ + readonly slotTimelines: Map>; + /** + * @private + */ + readonly constraintTimelines: Map>; + /** + * @private + */ + readonly animationTimelines: Map>; + /** + * @private + */ + readonly boneCachedFrameIndices: Map>; + /** + * @private + */ + readonly slotCachedFrameIndices: Map>; + /** + * @private + */ + actionTimeline: TimelineData | null; + /** + * @private + */ + zOrderTimeline: TimelineData | null; + /** + * @private + */ + parent: ArmatureData; + /** + * @inheritDoc + */ + protected _onClear(): void; + /** + * @internal + * @private + */ + cacheFrames(frameRate: number): void; + /** + * @private + */ + addBoneTimeline(bone: BoneData, timeline: TimelineData): void; + /** + * @private + */ + addSurfaceTimeline(surface: SurfaceData, timeline: TimelineData): void; + /** + * @private + */ + addSlotTimeline(slot: SlotData, timeline: TimelineData): void; + /** + * @private + */ + addConstraintTimeline(constraint: ConstraintData, timeline: TimelineData): void; + /** + * @private + */ + addAnimationTimeline(name: string, timeline: TimelineData): void; + /** + * @private + */ + getBoneTimelines(name: string): Array | null; + /** + * @private + */ + getSurfaceTimelines(name: string): Array | null; + /** + * @private + */ + getSlotTimelines(name: string): Array | null; + /** + * @private + */ + getConstraintTimelines(name: string): Array | null; + /** + * @private + */ + getAnimationTimelines(name: string): Array | null; + /** + * @private + */ + getBoneCachedFrameIndices(name: string): Array | null; + /** + * @private + */ + getSlotCachedFrameIndices(name: string): Array | null; + } + /** + * @internal + * @private + */ + class TimelineData extends BaseObject { + static toString(): string; + type: TimelineType; + offset: number; + frameIndicesOffset: number; + protected _onClear(): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The animation config is used to describe all the information needed to play an animation state. + * The API is still in the experimental phase and may encounter bugs or stability or compatibility issues when used. + * @see dragonBones.AnimationState + * @beta + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 动画配置用来描述播放一个动画状态所需要的全部信息。 + * 该 API 仍在实验阶段,使用时可能遭遇 bug 或稳定性或兼容性问题。 + * @see dragonBones.AnimationState + * @beta + * @version DragonBones 5.0 + * @language zh_CN + */ + class AnimationConfig extends BaseObject { + static toString(): string; + /** + * @private + */ + pauseFadeOut: boolean; + /** + * - Fade out the pattern of other animation states when the animation state is fade in. + * This property is typically used to specify the substitution of multiple animation states blend. + * @default dragonBones.AnimationFadeOutMode.All + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 淡入动画状态时淡出其他动画状态的模式。 + * 该属性通常用来指定多个动画状态混合时的相互替换关系。 + * @default dragonBones.AnimationFadeOutMode.All + * @version DragonBones 5.0 + * @language zh_CN + */ + fadeOutMode: AnimationFadeOutMode; + /** + * @private + */ + fadeOutTweenType: TweenType; + /** + * @private + */ + fadeOutTime: number; + /** + * @private + */ + pauseFadeIn: boolean; + /** + * @private + */ + actionEnabled: boolean; + /** + * @private + */ + additiveBlending: boolean; + /** + * - Whether the animation state has control over the display property of the slots. + * Sometimes blend a animation state does not want it to control the display properties of the slots, + * especially if other animation state are controlling the display properties of the slots. + * @default true + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 动画状态是否对插槽的显示对象属性有控制权。 + * 有时混合一个动画状态并不希望其控制插槽的显示对象属性, + * 尤其是其他动画状态正在控制这些插槽的显示对象属性时。 + * @default true + * @version DragonBones 5.0 + * @language zh_CN + */ + displayControl: boolean; + /** + * - Whether to reset the objects without animation to the armature pose when the animation state is start to play. + * This property should usually be set to false when blend multiple animation states. + * @default true + * @version DragonBones 5.1 + * @language en_US + */ + /** + * - 开始播放动画状态时是否将没有动画的对象重置为骨架初始值。 + * 通常在混合多个动画状态时应该将该属性设置为 false。 + * @default true + * @version DragonBones 5.1 + * @language zh_CN + */ + resetToPose: boolean; + /** + * @private + */ + fadeInTweenType: TweenType; + /** + * - The play times. [0: Loop play, [1~N]: Play N times] + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 播放次数。 [0: 无限循环播放, [1~N]: 循环播放 N 次] + * @version DragonBones 3.0 + * @language zh_CN + */ + playTimes: number; + /** + * - The blend layer. + * High layer animation state will get the blend weight first. + * When the blend weight is assigned more than 1, the remaining animation states will no longer get the weight assigned. + * @readonly + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 混合图层。 + * 图层高的动画状态会优先获取混合权重。 + * 当混合权重分配超过 1 时,剩余的动画状态将不再获得权重分配。 + * @readonly + * @version DragonBones 5.0 + * @language zh_CN + */ + layer: number; + /** + * - The start time of play. (In seconds) + * @default 0.0 + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 播放的开始时间。 (以秒为单位) + * @default 0.0 + * @version DragonBones 5.0 + * @language zh_CN + */ + position: number; + /** + * - The duration of play. + * [-1: Use the default value of the animation data, 0: Stop play, (0~N]: The duration] (In seconds) + * @default -1.0 + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 播放的持续时间。 + * [-1: 使用动画数据默认值, 0: 动画停止, (0~N]: 持续时间] (以秒为单位) + * @default -1.0 + * @version DragonBones 5.0 + * @language zh_CN + */ + duration: number; + /** + * - The play speed. + * The value is an overlay relationship with {@link dragonBones.Animation#timeScale}. + * [(-N~0): Reverse play, 0: Stop play, (0~1): Slow play, 1: Normal play, (1~N): Fast play] + * @default 1.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 播放速度。 + * 该值与 {@link dragonBones.Animation#timeScale} 是叠加关系。 + * [(-N~0): 倒转播放, 0: 停止播放, (0~1): 慢速播放, 1: 正常播放, (1~N): 快速播放] + * @default 1.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + timeScale: number; + /** + * - The blend weight. + * @default 1.0 + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 混合权重。 + * @default 1.0 + * @version DragonBones 5.0 + * @language zh_CN + */ + weight: number; + /** + * - The fade in time. + * [-1: Use the default value of the animation data, [0~N]: The fade in time] (In seconds) + * @default -1.0 + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 淡入时间。 + * [-1: 使用动画数据默认值, [0~N]: 淡入时间] (以秒为单位) + * @default -1.0 + * @version DragonBones 5.0 + * @language zh_CN + */ + fadeInTime: number; + /** + * - The auto fade out time when the animation state play completed. + * [-1: Do not fade out automatically, [0~N]: The fade out time] (In seconds) + * @default -1.0 + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 动画状态播放完成后的自动淡出时间。 + * [-1: 不自动淡出, [0~N]: 淡出时间] (以秒为单位) + * @default -1.0 + * @version DragonBones 5.0 + * @language zh_CN + */ + autoFadeOutTime: number; + /** + * - The name of the animation state. (Can be different from the name of the animation data) + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 动画状态名称。 (可以不同于动画数据) + * @version DragonBones 5.0 + * @language zh_CN + */ + name: string; + /** + * - The animation data name. + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 动画数据名称。 + * @version DragonBones 5.0 + * @language zh_CN + */ + animation: string; + /** + * - The blend group name of the animation state. + * This property is typically used to specify the substitution of multiple animation states blend. + * @readonly + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 混合组名称。 + * 该属性通常用来指定多个动画状态混合时的相互替换关系。 + * @readonly + * @version DragonBones 5.0 + * @language zh_CN + */ + group: string; + /** + * @private + */ + readonly boneMask: Array; + /** + * @private + */ + protected _onClear(): void; + /** + * @private + */ + clear(): void; + /** + * @private + */ + copyFrom(value: AnimationConfig): void; + /** + * @private + */ + containsBoneMask(name: string): boolean; + /** + * @private + */ + addBoneMask(armature: Armature, name: string, recursive?: boolean): void; + /** + * @private + */ + removeBoneMask(armature: Armature, name: string, recursive?: boolean): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The texture atlas data. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 贴图集数据。 + * @version DragonBones 3.0 + * @language zh_CN + */ + abstract class TextureAtlasData extends BaseObject { + /** + * @private + */ + autoSearch: boolean; + /** + * @private + */ + width: number; + /** + * @private + */ + height: number; + /** + * @private + */ + scale: number; + /** + * - The texture atlas name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 贴图集名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + name: string; + /** + * - The image path of the texture atlas. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 贴图集图片路径。 + * @version DragonBones 3.0 + * @language zh_CN + */ + imagePath: string; + /** + * @private + */ + readonly textures: Map; + /** + * @inheritDoc + */ + protected _onClear(): void; + /** + * @private + */ + copyFrom(value: TextureAtlasData): void; + /** + * @internal + * @private + */ + abstract createTexture(): TextureData; + /** + * @internal + * @private + */ + addTexture(value: TextureData): void; + /** + * @private + */ + getTexture(name: string): TextureData | null; + } + /** + * @internal + * @private + */ + abstract class TextureData extends BaseObject { + static createRectangle(): Rectangle; + rotated: boolean; + name: string; + readonly region: Rectangle; + parent: TextureAtlasData; + frame: Rectangle | null; + protected _onClear(): void; + copyFrom(value: TextureData): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The armature proxy interface, the docking engine needs to implement it concretely. + * @see dragonBones.Armature + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 骨架代理接口,对接的引擎需要对其进行具体实现。 + * @see dragonBones.Armature + * @version DragonBones 5.0 + * @language zh_CN + */ + interface IArmatureProxy extends IEventDispatcher { + /** + * @internal + * @private + */ + dbInit(armature: Armature): void; + /** + * @internal + * @private + */ + dbClear(): void; + /** + * @internal + * @private + */ + dbUpdate(): void; + /** + * - Dispose the instance and the Armature instance. (The Armature instance will return to the object pool) + * @example + *
+         *     removeChild(armatureDisplay);
+         *     armatureDisplay.dispose();
+         * 
+ * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 释放该实例和骨架。 (骨架会回收到对象池) + * @example + *
+         *     removeChild(armatureDisplay);
+         *     armatureDisplay.dispose();
+         * 
+ * @version DragonBones 4.5 + * @language zh_CN + */ + dispose(disposeProxy: boolean): void; + /** + * - The armature. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 骨架。 + * @version DragonBones 4.5 + * @language zh_CN + */ + readonly armature: Armature; + /** + * - The animation player. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 动画播放器。 + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly animation: Animation; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - Armature is the core of the skeleton animation system. + * @see dragonBones.ArmatureData + * @see dragonBones.Bone + * @see dragonBones.Slot + * @see dragonBones.Animation + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 骨架是骨骼动画系统的核心。 + * @see dragonBones.ArmatureData + * @see dragonBones.Bone + * @see dragonBones.Slot + * @see dragonBones.Animation + * @version DragonBones 3.0 + * @language zh_CN + */ + class Armature extends BaseObject implements IAnimatable { + static toString(): string; + private static _onSortSlots(a, b); + /** + * - Whether to inherit the animation control of the parent armature. + * True to try to have the child armature play an animation with the same name when the parent armature play the animation. + * @default true + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 是否继承父骨架的动画控制。 + * 如果该值为 true,当父骨架播放动画时,会尝试让子骨架播放同名动画。 + * @default true + * @version DragonBones 4.5 + * @language zh_CN + */ + inheritAnimation: boolean; + /** + * @private + */ + userData: any; + private _lockUpdate; + private _bonesDirty; + private _slotsDirty; + private _zOrderDirty; + private _flipX; + private _flipY; + /** + * @internal + * @private + */ + _cacheFrameIndex: number; + private readonly _bones; + private readonly _slots; + /** + * @internal + * @private + */ + readonly _glueSlots: Array; + /** + * @internal + * @private + */ + readonly _constraints: Array; + private readonly _actions; + /** + * @internal + * @private + */ + _armatureData: ArmatureData; + private _animation; + private _proxy; + private _display; + /** + * @internal + * @private + */ + _replaceTextureAtlasData: TextureAtlasData | null; + private _replacedTexture; + /** + * @internal + * @private + */ + _dragonBones: DragonBones; + private _clock; + /** + * @internal + * @private + */ + _parent: Slot | null; + /** + * @private + */ + protected _onClear(): void; + private _sortBones(); + private _sortSlots(); + /** + * @internal + * @private + */ + _sortZOrder(slotIndices: Array | Int16Array | null, offset: number): void; + /** + * @internal + * @private + */ + _addBoneToBoneList(value: Bone): void; + /** + * @internal + * @private + */ + _removeBoneFromBoneList(value: Bone): void; + /** + * @internal + * @private + */ + _addSlotToSlotList(value: Slot): void; + /** + * @internal + * @private + */ + _removeSlotFromSlotList(value: Slot): void; + /** + * @internal + * @private + */ + _bufferAction(action: ActionData, append: boolean): void; + /** + * - Dispose the armature. (Return to the object pool) + * @example + *
+         *     removeChild(armature.display);
+         *     armature.dispose();
+         * 
+ * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 释放骨架。 (回收到对象池) + * @example + *
+         *     removeChild(armature.display);
+         *     armature.dispose();
+         * 
+ * @version DragonBones 3.0 + * @language zh_CN + */ + dispose(): void; + /** + * @internal + * @private + */ + init(armatureData: ArmatureData, proxy: IArmatureProxy, display: any, dragonBones: DragonBones): void; + /** + * @inheritDoc + */ + advanceTime(passedTime: number): void; + /** + * - Forces a specific bone or its owning slot to update the transform or display property in the next frame. + * @param boneName - The bone name. (If not set, all bones will be update) + * @param updateSlot - Whether to update the bone's slots. (Default: false) + * @see dragonBones.Bone#invalidUpdate() + * @see dragonBones.Slot#invalidUpdate() + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 强制特定骨骼或其拥有的插槽在下一帧更新变换或显示属性。 + * @param boneName - 骨骼名称。 (如果未设置,将更新所有骨骼) + * @param updateSlot - 是否更新骨骼的插槽。 (默认: false) + * @see dragonBones.Bone#invalidUpdate() + * @see dragonBones.Slot#invalidUpdate() + * @version DragonBones 3.0 + * @language zh_CN + */ + invalidUpdate(boneName?: string | null, updateSlot?: boolean): void; + /** + * - Check whether a specific point is inside a custom bounding box in a slot. + * The coordinate system of the point is the inner coordinate system of the armature. + * Custom bounding boxes need to be customized in Dragonbones Pro. + * @param x - The horizontal coordinate of the point. + * @param y - The vertical coordinate of the point. + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 检查特定点是否在某个插槽的自定义边界框内。 + * 点的坐标系为骨架内坐标系。 + * 自定义边界框需要在 DragonBones Pro 中自定义。 + * @param x - 点的水平坐标。 + * @param y - 点的垂直坐标。 + * @version DragonBones 5.0 + * @language zh_CN + */ + containsPoint(x: number, y: number): Slot | null; + /** + * - Check whether a specific segment intersects a custom bounding box for a slot in the armature. + * The coordinate system of the segment and intersection is the inner coordinate system of the armature. + * Custom bounding boxes need to be customized in Dragonbones Pro. + * @param xA - The horizontal coordinate of the beginning of the segment. + * @param yA - The vertical coordinate of the beginning of the segment. + * @param xB - The horizontal coordinate of the end point of the segment. + * @param yB - The vertical coordinate of the end point of the segment. + * @param intersectionPointA - The first intersection at which a line segment intersects the bounding box from the beginning to the end. (If not set, the intersection point will not calculated) + * @param intersectionPointB - The first intersection at which a line segment intersects the bounding box from the end to the beginning. (If not set, the intersection point will not calculated) + * @param normalRadians - The normal radians of the tangent of the intersection boundary box. [x: Normal radian of the first intersection tangent, y: Normal radian of the second intersection tangent] (If not set, the normal will not calculated) + * @returns The slot of the first custom bounding box where the segment intersects from the start point to the end point. + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 检查特定线段是否与骨架的某个插槽的自定义边界框相交。 + * 线段和交点的坐标系均为骨架内坐标系。 + * 自定义边界框需要在 DragonBones Pro 中自定义。 + * @param xA - 线段起点的水平坐标。 + * @param yA - 线段起点的垂直坐标。 + * @param xB - 线段终点的水平坐标。 + * @param yB - 线段终点的垂直坐标。 + * @param intersectionPointA - 线段从起点到终点与边界框相交的第一个交点。 (如果未设置,则不计算交点) + * @param intersectionPointB - 线段从终点到起点与边界框相交的第一个交点。 (如果未设置,则不计算交点) + * @param normalRadians - 交点边界框切线的法线弧度。 [x: 第一个交点切线的法线弧度, y: 第二个交点切线的法线弧度] (如果未设置,则不计算法线) + * @returns 线段从起点到终点相交的第一个自定义边界框的插槽。 + * @version DragonBones 5.0 + * @language zh_CN + */ + intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: { + x: number; + y: number; + } | null, intersectionPointB?: { + x: number; + y: number; + } | null, normalRadians?: { + x: number; + y: number; + } | null): Slot | null; + /** + * - Get a specific bone. + * @param name - The bone name. + * @see dragonBones.Bone + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 获取特定的骨骼。 + * @param name - 骨骼名称。 + * @see dragonBones.Bone + * @version DragonBones 3.0 + * @language zh_CN + */ + getBone(name: string): Bone | null; + /** + * - Get a specific bone by the display. + * @param display - The display object. + * @see dragonBones.Bone + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 通过显示对象获取特定的骨骼。 + * @param display - 显示对象。 + * @see dragonBones.Bone + * @version DragonBones 3.0 + * @language zh_CN + */ + getBoneByDisplay(display: any): Bone | null; + /** + * - Get a specific slot. + * @param name - The slot name. + * @see dragonBones.Slot + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 获取特定的插槽。 + * @param name - 插槽名称。 + * @see dragonBones.Slot + * @version DragonBones 3.0 + * @language zh_CN + */ + getSlot(name: string): Slot | null; + /** + * - Get a specific slot by the display. + * @param display - The display object. + * @see dragonBones.Slot + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 通过显示对象获取特定的插槽。 + * @param display - 显示对象。 + * @see dragonBones.Slot + * @version DragonBones 3.0 + * @language zh_CN + */ + getSlotByDisplay(display: any): Slot | null; + /** + * @deprecated + */ + addBone(value: Bone, parentName: string): void; + /** + * @deprecated + */ + addSlot(value: Slot, parentName: string): void; + /** + * @private + */ + addConstraint(value: Constraint): void; + /** + * @deprecated + */ + removeBone(value: Bone): void; + /** + * @deprecated + */ + removeSlot(value: Slot): void; + /** + * - Get all bones. + * @see dragonBones.Bone + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 获取所有的骨骼。 + * @see dragonBones.Bone + * @version DragonBones 3.0 + * @language zh_CN + */ + getBones(): Array; + /** + * - Get all slots. + * @see dragonBones.Slot + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 获取所有的插槽。 + * @see dragonBones.Slot + * @version DragonBones 3.0 + * @language zh_CN + */ + getSlots(): Array; + /** + * - Whether to flip the armature horizontally. + * @version DragonBones 5.5 + * @language en_US + */ + /** + * - 是否将骨架水平翻转。 + * @version DragonBones 5.5 + * @language zh_CN + */ + flipX: boolean; + /** + * - Whether to flip the armature vertically. + * @version DragonBones 5.5 + * @language en_US + */ + /** + * - 是否将骨架垂直翻转。 + * @version DragonBones 5.5 + * @language zh_CN + */ + flipY: boolean; + /** + * - The animation cache frame rate, which turns on the animation cache when the set value is greater than 0. + * There is a certain amount of memory overhead to improve performance by caching animation data in memory. + * The frame rate should not be set too high, usually with the frame rate of the animation is similar and lower than the program running frame rate. + * When the animation cache is turned on, some features will fail, such as the offset property of bone. + * @example + *
+         *     armature.cacheFrameRate = 24;
+         * 
+ * @see dragonBones.DragonBonesData#frameRate + * @see dragonBones.ArmatureData#frameRate + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 动画缓存帧率,当设置的值大于 0 的时,将会开启动画缓存。 + * 通过将动画数据缓存在内存中来提高运行性能,会有一定的内存开销。 + * 帧率不宜设置的过高,通常跟动画的帧率相当且低于程序运行的帧率。 + * 开启动画缓存后,某些功能将会失效,比如骨骼的 offset 属性等。 + * @example + *
+         *     armature.cacheFrameRate = 24;
+         * 
+ * @see dragonBones.DragonBonesData#frameRate + * @see dragonBones.ArmatureData#frameRate + * @version DragonBones 4.5 + * @language zh_CN + */ + cacheFrameRate: number; + /** + * - The armature name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 骨架名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly name: string; + /** + * - The armature data. + * @see dragonBones.ArmatureData + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 骨架数据。 + * @see dragonBones.ArmatureData + * @version DragonBones 4.5 + * @language zh_CN + */ + readonly armatureData: ArmatureData; + /** + * - The animation player. + * @see dragonBones.Animation + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 动画播放器。 + * @see dragonBones.Animation + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly animation: Animation; + /** + * @pivate + */ + readonly proxy: IArmatureProxy; + /** + * - The EventDispatcher instance of the armature. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 该骨架的 EventDispatcher 实例。 + * @version DragonBones 4.5 + * @language zh_CN + */ + readonly eventDispatcher: IEventDispatcher; + /** + * - The display container. + * The display of the slot is displayed as the parent. + * Depending on the rendering engine, the type will be different, usually the DisplayObjectContainer type. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 显示容器实例。 + * 插槽的显示对象都会以此显示容器为父级。 + * 根据渲染引擎的不同,类型会不同,通常是 DisplayObjectContainer 类型。 + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly display: any; + /** + * @private + */ + replacedTexture: any; + /** + * @inheritDoc + */ + clock: WorldClock | null; + /** + * - Get the parent slot which the armature belongs to. + * @see dragonBones.Slot + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 该骨架所属的父插槽。 + * @see dragonBones.Slot + * @version DragonBones 4.5 + * @language zh_CN + */ + readonly parent: Slot | null; + /** + * @deprecated + * @private + */ + replaceTexture(texture: any): void; + /** + * - Deprecated, please refer to {@link #eventDispatcher}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #eventDispatcher}。 + * @deprecated + * @language zh_CN + */ + hasEventListener(type: EventStringType): boolean; + /** + * - Deprecated, please refer to {@link #eventDispatcher}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #eventDispatcher}。 + * @deprecated + * @language zh_CN + */ + addEventListener(type: EventStringType, listener: Function, target: any): void; + /** + * - Deprecated, please refer to {@link #eventDispatcher}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #eventDispatcher}。 + * @deprecated + * @language zh_CN + */ + removeEventListener(type: EventStringType, listener: Function, target: any): void; + /** + * - Deprecated, please refer to {@link #cacheFrameRate}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #cacheFrameRate}。 + * @deprecated + * @language zh_CN + */ + enableAnimationCache(frameRate: number): void; + /** + * - Deprecated, please refer to {@link #display}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #display}。 + * @deprecated + * @language zh_CN + */ + getDisplay(): any; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The base class of the transform object. + * @see dragonBones.Transform + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 变换对象的基类。 + * @see dragonBones.Transform + * @version DragonBones 4.5 + * @language zh_CN + */ + abstract class TransformObject extends BaseObject { + /** + * @private + */ + protected static readonly _helpMatrix: Matrix; + /** + * @private + */ + protected static readonly _helpTransform: Transform; + /** + * @private + */ + protected static readonly _helpPoint: Point; + /** + * - A matrix relative to the armature coordinate system. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 相对于骨架坐标系的矩阵。 + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly globalTransformMatrix: Matrix; + /** + * - A transform relative to the armature coordinate system. + * @see #updateGlobalTransform() + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 相对于骨架坐标系的变换。 + * @see #updateGlobalTransform() + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly global: Transform; + /** + * - The offset transform relative to the armature or the parent bone coordinate system. + * @see #dragonBones.Bone#invalidUpdate() + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 相对于骨架或父骨骼坐标系的偏移变换。 + * @see #dragonBones.Bone#invalidUpdate() + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly offset: Transform; + /** + * @private + */ + origin: Transform | null; + /** + * @private + */ + userData: any; + /** + * @private + */ + protected _globalDirty: boolean; + /** + * @internal + * @private + */ + _armature: Armature; + /** + * @internal + * @private + */ + _parent: Bone; + /** + * @private + */ + protected _onClear(): void; + /** + * @internal + * @private + */ + _setArmature(value: Armature | null): void; + /** + * @internal + * @private + */ + _setParent(value: Bone | null): void; + /** + * - For performance considerations, rotation or scale in the {@link #global} attribute of the bone or slot is not always properly accessible, + * some engines do not rely on these attributes to update rendering, such as Egret. + * The use of this method ensures that the access to the {@link #global} property is correctly rotation or scale. + * @example + *
+         *     bone.updateGlobalTransform();
+         *     let rotation = bone.global.rotation;
+         * 
+ * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 出于性能的考虑,骨骼或插槽的 {@link #global} 属性中的旋转或缩放并不总是正确可访问的,有些引擎并不依赖这些属性更新渲染,比如 Egret。 + * 使用此方法可以保证访问到 {@link #global} 属性中正确的旋转或缩放。 + * @example + *
+         *     bone.updateGlobalTransform();
+         *     let rotation = bone.global.rotation;
+         * 
+ * @version DragonBones 3.0 + * @language zh_CN + */ + updateGlobalTransform(): void; + /** + * - The armature to which it belongs. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 所属的骨架。 + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly armature: Armature; + /** + * - The parent bone to which it belongs. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 所属的父骨骼。 + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly parent: Bone; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - Bone is one of the most important logical units in the armature animation system, + * and is responsible for the realization of translate, rotation, scaling in the animations. + * A armature can contain multiple bones. + * @see dragonBones.BoneData + * @see dragonBones.Armature + * @see dragonBones.Slot + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 骨骼在骨骼动画体系中是最重要的逻辑单元之一,负责动画中的平移、旋转、缩放的实现。 + * 一个骨架中可以包含多个骨骼。 + * @see dragonBones.BoneData + * @see dragonBones.Armature + * @see dragonBones.Slot + * @version DragonBones 3.0 + * @language zh_CN + */ + class Bone extends TransformObject { + static toString(): string; + /** + * - The offset mode. + * @see #offset + * @version DragonBones 5.5 + * @language en_US + */ + /** + * - 偏移模式。 + * @see #offset + * @version DragonBones 5.5 + * @language zh_CN + */ + offsetMode: OffsetMode; + /** + * @internal + * @private + */ + readonly animationPose: Transform; + /** + * @internal + * @private + */ + _transformDirty: boolean; + /** + * @internal + * @private + */ + _childrenTransformDirty: boolean; + protected _localDirty: boolean; + /** + * @internal + * @private + */ + _hasConstraint: boolean; + private _visible; + protected _cachedFrameIndex: number; + /** + * @internal + * @private + */ + readonly _blendState: BlendState; + /** + * @internal + * @private + */ + _boneData: BoneData; + /** + * @internal + * @private + */ + _cachedFrameIndices: Array | null; + /** + * @inheritDoc + */ + protected _onClear(): void; + /** + * @private + */ + protected _updateGlobalTransformMatrix(isCache: boolean): void; + /** + * @inheritDoc + */ + _setArmature(value: Armature | null): void; + /** + * @internal + * @private + */ + init(boneData: BoneData): void; + /** + * @internal + * @private + */ + update(cacheFrameIndex: number): void; + /** + * @internal + * @private + */ + updateByConstraint(): void; + /** + * - Forces the bone to update the transform in the next frame. + * When the bone is not animated or its animation state is finished, the bone will not continue to update, + * and when the skeleton must be updated for some reason, the method needs to be called explicitly. + * @example + *
+         *     let bone = armature.getBone("arm");
+         *     bone.offset.scaleX = 2.0;
+         *     bone.invalidUpdate();
+         * 
+ * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 强制骨骼在下一帧更新变换。 + * 当该骨骼没有动画状态或其动画状态播放完成时,骨骼将不在继续更新,而此时由于某些原因必须更新骨骼时,则需要显式调用该方法。 + * @example + *
+         *     let bone = armature.getBone("arm");
+         *     bone.offset.scaleX = 2.0;
+         *     bone.invalidUpdate();
+         * 
+ * @version DragonBones 3.0 + * @language zh_CN + */ + invalidUpdate(): void; + /** + * - Check whether the bone contains a specific bone or slot. + * @see dragonBones.Bone + * @see dragonBones.Slot + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 检查该骨骼是否包含特定的骨骼或插槽。 + * @see dragonBones.Bone + * @see dragonBones.Slot + * @version DragonBones 3.0 + * @language zh_CN + */ + contains(value: TransformObject): boolean; + /** + * - The bone data. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 骨骼数据。 + * @version DragonBones 4.5 + * @language zh_CN + */ + readonly boneData: BoneData; + /** + * - The visible of all slots in the bone. + * @default true + * @see dragonBones.Slot#visible + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 此骨骼所有插槽的可见。 + * @default true + * @see dragonBones.Slot#visible + * @version DragonBones 3.0 + * @language zh_CN + */ + visible: boolean; + /** + * - The bone name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 骨骼名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly name: string; + /** + * - Deprecated, please refer to {@link dragonBones.Armature#getBones()}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link dragonBones.Armature#getBones()}。 + * @deprecated + * @language zh_CN + */ + getBones(): Array; + /** + * - Deprecated, please refer to {@link dragonBones.Armature#getSlots()}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link dragonBones.Armature#getSlots()}。 + * @deprecated + * @language zh_CN + */ + getSlots(): Array; + /** + * - Deprecated, please refer to {@link dragonBones.Armature#getSlot()}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link dragonBones.Armature#getSlot()}。 + * @deprecated + * @language zh_CN + */ + readonly slot: Slot | null; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * @internal + * @private + */ + class Surface extends Bone { + static toString(): string; + private _dX; + private _dY; + private _k; + private _kX; + private _kY; + /** + * For debug draw. + * @internal + * @private + */ + readonly _vertices: Array; + /** + * For timeline state. + * @internal + * @private + */ + readonly _deformVertices: Array; + /** + * x1, y1, x2, y2, x3, y3, x4, y4, d1X, d1Y, d2X, d2Y + */ + private readonly _hullCache; + /** + * Inside [flag, a, b, c, d, tx, ty], Outside [flag, a, b, c, d, tx, ty] + */ + private readonly _matrixCahce; + /** + * @inheritDoc + */ + protected _onClear(): void; + private _getAffineTransform(x, y, lX, lY, aX, aY, bX, bY, cX, cY, transform, matrix, isDown); + private _updateVertices(); + /** + * @private + */ + protected _updateGlobalTransformMatrix(isCache: boolean): void; + _getGlobalTransformMatrix(x: number, y: number): Matrix; + init(surfaceData: SurfaceData): void; + /** + * @internal + * @private + */ + update(cacheFrameIndex: number): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The slot attached to the armature, controls the display status and properties of the display object. + * A bone can contain multiple slots. + * A slot can contain multiple display objects, displaying only one of the display objects at a time, + * but you can toggle the display object into frame animation while the animation is playing. + * The display object can be a normal texture, or it can be a display of a child armature, a grid display object, + * and a custom other display object. + * @see dragonBones.Armature + * @see dragonBones.Bone + * @see dragonBones.SlotData + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 插槽附着在骨骼上,控制显示对象的显示状态和属性。 + * 一个骨骼上可以包含多个插槽。 + * 一个插槽中可以包含多个显示对象,同一时间只能显示其中的一个显示对象,但可以在动画播放的过程中切换显示对象实现帧动画。 + * 显示对象可以是普通的图片纹理,也可以是子骨架的显示容器,网格显示对象,还可以是自定义的其他显示对象。 + * @see dragonBones.Armature + * @see dragonBones.Bone + * @see dragonBones.SlotData + * @version DragonBones 3.0 + * @language zh_CN + */ + abstract class Slot extends TransformObject { + /** + * - Displays the animated state or mixed group name controlled by the object, set to null to be controlled by all animation states. + * @default null + * @see dragonBones.AnimationState#displayControl + * @see dragonBones.AnimationState#name + * @see dragonBones.AnimationState#group + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 显示对象受到控制的动画状态或混合组名称,设置为 null 则表示受所有的动画状态控制。 + * @default null + * @see dragonBones.AnimationState#displayControl + * @see dragonBones.AnimationState#name + * @see dragonBones.AnimationState#group + * @version DragonBones 4.5 + * @language zh_CN + */ + displayController: string | null; + /** + * @private + */ + protected _displayDirty: boolean; + /** + * @private + */ + protected _zOrderDirty: boolean; + /** + * @private + */ + protected _visibleDirty: boolean; + /** + * @private + */ + protected _blendModeDirty: boolean; + /** + * @internal + * @private + */ + _colorDirty: boolean; + /** + * @internal + * @private + */ + _meshDirty: boolean; + /** + * @private + */ + protected _transformDirty: boolean; + /** + * @private + */ + protected _visible: boolean; + /** + * @private + */ + protected _blendMode: BlendMode; + /** + * @private + */ + protected _displayIndex: number; + /** + * @private + */ + protected _animationDisplayIndex: number; + /** + * @internal + * @private + */ + _zOrder: number; + /** + * @private + */ + protected _cachedFrameIndex: number; + /** + * @internal + * @private + */ + _pivotX: number; + /** + * @internal + * @private + */ + _pivotY: number; + /** + * @private + */ + protected readonly _localMatrix: Matrix; + /** + * @internal + * @private + */ + readonly _colorTransform: ColorTransform; + /** + * @internal + * @private + */ + readonly _deformVertices: Array; + /** + * @private + */ + readonly _displayDatas: Array; + /** + * @private + */ + protected readonly _displayList: Array; + /** + * @private + */ + protected readonly _meshBones: Array; + /** + * @private + */ + protected readonly _meshSlots: Array; + /** + * @internal + * @private + */ + _slotData: SlotData; + /** + * @private + */ + protected _rawDisplayDatas: Array | null; + /** + * @private + */ + protected _displayData: DisplayData | null; + /** + * @private + */ + protected _textureData: TextureData | null; + /** + * @internal + * @private + */ + _meshData: MeshDisplayData | null; + /** + * @private + */ + protected _boundingBoxData: BoundingBoxData | null; + /** + * @private + */ + protected _rawDisplay: any; + /** + * @private + */ + protected _meshDisplay: any; + /** + * @private + */ + protected _display: any; + /** + * @private + */ + protected _childArmature: Armature | null; + /** + * @internal + * @private + */ + _cachedFrameIndices: Array | null; + /** + * @inheritDoc + */ + protected _onClear(): void; + /** + * @private + */ + protected abstract _initDisplay(value: any, isRetain: boolean): void; + /** + * @private + */ + protected abstract _disposeDisplay(value: any, isRelease: boolean): void; + /** + * @private + */ + protected abstract _onUpdateDisplay(): void; + /** + * @private + */ + protected abstract _addDisplay(): void; + /** + * @private + */ + protected abstract _replaceDisplay(value: any): void; + /** + * @private + */ + protected abstract _removeDisplay(): void; + /** + * @private + */ + protected abstract _updateZOrder(): void; + /** + * @private + */ + abstract _updateVisible(): void; + /** + * @private + */ + protected abstract _updateBlendMode(): void; + /** + * @private + */ + protected abstract _updateColor(): void; + /** + * @private + */ + protected abstract _updateFrame(): void; + /** + * @private + */ + protected abstract _updateMesh(): void; + /** + * @internal + * @private + */ + abstract _updateGlueMesh(): void; + /** + * @private + */ + protected abstract _updateTransform(): void; + /** + * @private + */ + protected abstract _identityTransform(): void; + /** + * @private + */ + protected _getDefaultRawDisplayData(): DisplayData | null; + /** + * @private + */ + protected _updateDisplayData(): void; + /** + * @private + */ + protected _updateDisplay(): void; + /** + * @private + */ + protected _updateGlobalTransformMatrix(isCache: boolean): void; + /** + * @private + */ + protected _isMeshBonesUpdate(): boolean; + /** + * @inheritDoc + */ + _setArmature(value: Armature | null): void; + /** + * @internal + * @private + */ + _setDisplayIndex(value: number, isAnimation?: boolean): boolean; + /** + * @internal + * @private + */ + _setZorder(value: number): boolean; + /** + * @internal + * @private + */ + _setColor(value: ColorTransform): boolean; + /** + * @internal + * @private + */ + _setDisplayList(value: Array | null): boolean; + /** + * @internal + * @private + */ + init(slotData: SlotData, displayDatas: Array | null, rawDisplay: any, meshDisplay: any): void; + /** + * @internal + * @private + */ + update(cacheFrameIndex: number): void; + /** + * @private + */ + updateTransformAndMatrix(): void; + /** + * @private + */ + replaceDisplayData(value: DisplayData | null, displayIndex?: number): void; + /** + * - Check whether a specific point is inside a custom bounding box in the slot. + * The coordinate system of the point is the inner coordinate system of the armature. + * Custom bounding boxes need to be customized in Dragonbones Pro. + * @param x - The horizontal coordinate of the point. + * @param y - The vertical coordinate of the point. + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 检查特定点是否在插槽的自定义边界框内。 + * 点的坐标系为骨架内坐标系。 + * 自定义边界框需要在 DragonBones Pro 中自定义。 + * @param x - 点的水平坐标。 + * @param y - 点的垂直坐标。 + * @version DragonBones 5.0 + * @language zh_CN + */ + containsPoint(x: number, y: number): boolean; + /** + * - Check whether a specific segment intersects a custom bounding box for the slot. + * The coordinate system of the segment and intersection is the inner coordinate system of the armature. + * Custom bounding boxes need to be customized in Dragonbones Pro. + * @param xA - The horizontal coordinate of the beginning of the segment. + * @param yA - The vertical coordinate of the beginning of the segment. + * @param xB - The horizontal coordinate of the end point of the segment. + * @param yB - The vertical coordinate of the end point of the segment. + * @param intersectionPointA - The first intersection at which a line segment intersects the bounding box from the beginning to the end. (If not set, the intersection point will not calculated) + * @param intersectionPointB - The first intersection at which a line segment intersects the bounding box from the end to the beginning. (If not set, the intersection point will not calculated) + * @param normalRadians - The normal radians of the tangent of the intersection boundary box. [x: Normal radian of the first intersection tangent, y: Normal radian of the second intersection tangent] (If not set, the normal will not calculated) + * @returns Intersection situation. [1: Disjoint and segments within the bounding box, 0: Disjoint, 1: Intersecting and having a nodal point and ending in the bounding box, 2: Intersecting and having a nodal point and starting at the bounding box, 3: Intersecting and having two intersections, N: Intersecting and having N intersections] + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 检查特定线段是否与插槽的自定义边界框相交。 + * 线段和交点的坐标系均为骨架内坐标系。 + * 自定义边界框需要在 DragonBones Pro 中自定义。 + * @param xA - 线段起点的水平坐标。 + * @param yA - 线段起点的垂直坐标。 + * @param xB - 线段终点的水平坐标。 + * @param yB - 线段终点的垂直坐标。 + * @param intersectionPointA - 线段从起点到终点与边界框相交的第一个交点。 (如果未设置,则不计算交点) + * @param intersectionPointB - 线段从终点到起点与边界框相交的第一个交点。 (如果未设置,则不计算交点) + * @param normalRadians - 交点边界框切线的法线弧度。 [x: 第一个交点切线的法线弧度, y: 第二个交点切线的法线弧度] (如果未设置,则不计算法线) + * @returns 相交的情况。 [-1: 不相交且线段在包围盒内, 0: 不相交, 1: 相交且有一个交点且终点在包围盒内, 2: 相交且有一个交点且起点在包围盒内, 3: 相交且有两个交点, N: 相交且有 N 个交点] + * @version DragonBones 5.0 + * @language zh_CN + */ + intersectsSegment(xA: number, yA: number, xB: number, yB: number, intersectionPointA?: { + x: number; + y: number; + } | null, intersectionPointB?: { + x: number; + y: number; + } | null, normalRadians?: { + x: number; + y: number; + } | null): number; + /** + * - Forces the slot to update the state of the display object in the next frame. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 强制插槽在下一帧更新显示对象的状态。 + * @version DragonBones 4.5 + * @language zh_CN + */ + invalidUpdate(): void; + /** + * - The visible of slot's display object. + * @default true + * @version DragonBones 5.6 + * @language en_US + */ + /** + * - 插槽的显示对象的可见。 + * @default true + * @version DragonBones 5.6 + * @language zh_CN + */ + visible: boolean; + /** + * - The index of the display object displayed in the display list. + * @example + *
+         *     let slot = armature.getSlot("weapon");
+         *     slot.displayIndex = 3;
+         *     slot.displayController = "none";
+         * 
+ * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 此时显示的显示对象在显示列表中的索引。 + * @example + *
+         *     let slot = armature.getSlot("weapon");
+         *     slot.displayIndex = 3;
+         *     slot.displayController = "none";
+         * 
+ * @version DragonBones 4.5 + * @language zh_CN + */ + displayIndex: number; + /** + * - The slot name. + * @see dragonBones.SlotData#name + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 插槽名称。 + * @see dragonBones.SlotData#name + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly name: string; + /** + * - Contains a display list of display objects or child armatures. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 包含显示对象或子骨架的显示列表。 + * @version DragonBones 3.0 + * @language zh_CN + */ + displayList: Array; + /** + * - The slot data. + * @see dragonBones.SlotData + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 插槽数据。 + * @see dragonBones.SlotData + * @version DragonBones 4.5 + * @language zh_CN + */ + readonly slotData: SlotData; + /** + * @private + */ + rawDisplayDatas: Array | null; + /** + * - The custom bounding box data for the slot at current time. + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 插槽此时的自定义包围盒数据。 + * @version DragonBones 5.0 + * @language zh_CN + */ + readonly boundingBoxData: BoundingBoxData | null; + /** + * @private + */ + readonly rawDisplay: any; + /** + * @private + */ + readonly meshDisplay: any; + /** + * - The display object that the slot displays at this time. + * @example + *
+         *     let slot = armature.getSlot("text");
+         *     slot.display = new yourEngine.TextField();
+         * 
+ * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 插槽此时显示的显示对象。 + * @example + *
+         *     let slot = armature.getSlot("text");
+         *     slot.display = new yourEngine.TextField();
+         * 
+ * @version DragonBones 3.0 + * @language zh_CN + */ + display: any; + /** + * - The child armature that the slot displayed at current time. + * @example + *
+         *     let slot = armature.getSlot("weapon");
+         *     slot.childArmature = factory.buildArmature("weapon_blabla", "weapon_blabla_project");
+         * 
+ * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 插槽此时显示的子骨架。 + * @example + *
+         *     let slot = armature.getSlot("weapon");
+         *     slot.childArmature = factory.buildArmature("weapon_blabla", "weapon_blabla_project");
+         * 
+ * @version DragonBones 3.0 + * @language zh_CN + */ + childArmature: Armature | null; + /** + * - Deprecated, please refer to {@link #display}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #display}。 + * @deprecated + * @language zh_CN + */ + getDisplay(): any; + /** + * - Deprecated, please refer to {@link #display}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #display}。 + * @deprecated + * @language zh_CN + */ + setDisplay(value: any): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * @internal + * @private + */ + abstract class Constraint extends BaseObject { + protected static readonly _helpMatrix: Matrix; + protected static readonly _helpTransform: Transform; + protected static readonly _helpPoint: Point; + /** + * - For timeline state. + * @internal + */ + _constraintData: ConstraintData; + protected _armature: Armature; + /** + * - For sort bones. + * @internal + */ + _target: Bone; + /** + * - For sort bones. + * @internal + */ + _root: Bone; + protected _bone: Bone | null; + protected _onClear(): void; + abstract init(constraintData: ConstraintData, armature: Armature): void; + abstract update(): void; + abstract invalidUpdate(): void; + readonly name: string; + } + /** + * @internal + * @private + */ + class IKConstraint extends Constraint { + static toString(): string; + private _scaleEnabled; + /** + * - For timeline state. + * @internal + */ + _bendPositive: boolean; + /** + * - For timeline state. + * @internal + */ + _weight: number; + protected _onClear(): void; + private _computeA(); + private _computeB(); + init(constraintData: ConstraintData, armature: Armature): void; + update(): void; + invalidUpdate(): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - Play animation interface. (Both Armature and Wordclock implement the interface) + * Any instance that implements the interface can be added to the Worldclock instance and advance time by Worldclock instance uniformly. + * @see dragonBones.WorldClock + * @see dragonBones.Armature + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 播放动画接口。 (Armature 和 WordClock 都实现了该接口) + * 任何实现了此接口的实例都可以添加到 WorldClock 实例中,由 WorldClock 实例统一更新时间。 + * @see dragonBones.WorldClock + * @see dragonBones.Armature + * @version DragonBones 3.0 + * @language zh_CN + */ + interface IAnimatable { + /** + * - Advance time. + * @param passedTime - Passed time. (In seconds) + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 更新时间。 + * @param passedTime - 前进的时间。 (以秒为单位) + * @version DragonBones 3.0 + * @language zh_CN + */ + advanceTime(passedTime: number): void; + /** + * - The Wordclock instance to which the current belongs. + * @example + *
+         *     armature.clock = factory.clock; // Add armature to clock.
+         *     armature.clock = null; // Remove armature from clock.
+         * 
+ * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 当前所属的 WordClock 实例。 + * @example + *
+         *     armature.clock = factory.clock; // 将骨架添加到时钟。
+         *     armature.clock = null; // 将骨架从时钟移除。
+         * 
+ * @version DragonBones 5.0 + * @language zh_CN + */ + clock: WorldClock | null; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - Worldclock provides clock support for animations, advance time for each IAnimatable object added to the instance. + * @see dragonBones.IAnimateble + * @see dragonBones.Armature + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - WorldClock 对动画提供时钟支持,为每个加入到该实例的 IAnimatable 对象更新时间。 + * @see dragonBones.IAnimateble + * @see dragonBones.Armature + * @version DragonBones 3.0 + * @language zh_CN + */ + class WorldClock implements IAnimatable { + /** + * - Current time. (In seconds) + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 当前的时间。 (以秒为单位) + * @version DragonBones 3.0 + * @language zh_CN + */ + time: number; + /** + * - The play speed, used to control animation speed-shift play. + * [0: Stop play, (0~1): Slow play, 1: Normal play, (1~N): Fast play] + * @default 1.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 播放速度,用于控制动画变速播放。 + * [0: 停止播放, (0~1): 慢速播放, 1: 正常播放, (1~N): 快速播放] + * @default 1.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + timeScale: number; + private readonly _animatebles; + private _clock; + /** + * - Creating a Worldclock instance. Typically, you do not need to create Worldclock instance. + * When multiple Worldclock instances are running at different speeds, can achieving some specific animation effects, such as bullet time. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 创建一个 WorldClock 实例。通常并不需要创建 WorldClock 实例。 + * 当多个 WorldClock 实例使用不同的速度运行时,可以实现一些特殊的动画效果,比如子弹时间等。 + * @version DragonBones 3.0 + * @language zh_CN + */ + constructor(time?: number); + /** + * - Advance time for all IAnimatable instances. + * @param passedTime - Passed time. [-1: Automatically calculates the time difference between the current frame and the previous frame, [0~N): Passed time] (In seconds) + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 为所有的 IAnimatable 实例更新时间。 + * @param passedTime - 前进的时间。 [-1: 自动计算当前帧与上一帧的时间差, [0~N): 前进的时间] (以秒为单位) + * @version DragonBones 3.0 + * @language zh_CN + */ + advanceTime(passedTime: number): void; + /** + * - Check whether contains a specific instance of IAnimatable. + * @param value - The IAnimatable instance. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 检查是否包含特定的 IAnimatable 实例。 + * @param value - IAnimatable 实例。 + * @version DragonBones 3.0 + * @language zh_CN + */ + contains(value: IAnimatable): boolean; + /** + * - Add IAnimatable instance. + * @param value - The IAnimatable instance. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 添加 IAnimatable 实例。 + * @param value - IAnimatable 实例。 + * @version DragonBones 3.0 + * @language zh_CN + */ + add(value: IAnimatable): void; + /** + * - Removes a specified IAnimatable instance. + * @param value - The IAnimatable instance. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 移除特定的 IAnimatable 实例。 + * @param value - IAnimatable 实例。 + * @version DragonBones 3.0 + * @language zh_CN + */ + remove(value: IAnimatable): void; + /** + * - Clear all IAnimatable instances. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 清除所有的 IAnimatable 实例。 + * @version DragonBones 3.0 + * @language zh_CN + */ + clear(): void; + /** + * @inheritDoc + */ + clock: WorldClock | null; + /** + * - Deprecated, please refer to {@link dragonBones.BaseFactory#clock}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link dragonBones.BaseFactory#clock}。 + * @deprecated + * @language zh_CN + */ + static readonly clock: WorldClock; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The animation player is used to play the animation data and manage the animation states. + * @see dragonBones.AnimationData + * @see dragonBones.AnimationState + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 动画播放器用来播放动画数据和管理动画状态。 + * @see dragonBones.AnimationData + * @see dragonBones.AnimationState + * @version DragonBones 3.0 + * @language zh_CN + */ + class Animation extends BaseObject { + static toString(): string; + /** + * - The play speed of all animations. [0: Stop, (0~1): Slow, 1: Normal, (1~N): Fast] + * @default 1.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 所有动画的播放速度。 [0: 停止播放, (0~1): 慢速播放, 1: 正常播放, (1~N): 快速播放] + * @default 1.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + timeScale: number; + private _lockUpdate; + private _animationDirty; + private _inheritTimeScale; + private readonly _animationNames; + private readonly _animationStates; + private readonly _animations; + private _armature; + private _animationConfig; + private _lastAnimationState; + /** + * @private + */ + protected _onClear(): void; + private _fadeOut(animationConfig); + /** + * @internal + * @private + */ + init(armature: Armature): void; + /** + * @internal + * @private + */ + advanceTime(passedTime: number): void; + /** + * - Clear all animations states. + * @see dragonBones.AnimationState + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 清除所有的动画状态。 + * @see dragonBones.AnimationState + * @version DragonBones 4.5 + * @language zh_CN + */ + reset(): void; + /** + * - Pause a specific animation state. + * @param animationName - The name of animation state. (If not set, it will pause all animations) + * @see dragonBones.AnimationState + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 暂停指定动画状态的播放。 + * @param animationName - 动画状态名称。 (如果未设置,则暂停所有动画) + * @see dragonBones.AnimationState + * @version DragonBones 3.0 + * @language zh_CN + */ + stop(animationName?: string | null): void; + /** + * - Play animation with a specific animation config. + * The API is still in the experimental phase and may encounter bugs or stability or compatibility issues when used. + * @param animationConfig - The animation config. + * @returns The playing animation state. + * @see dragonBones.AnimationConfig + * @beta + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 通过指定的动画配置来播放动画。 + * 该 API 仍在实验阶段,使用时可能遭遇 bug 或稳定性或兼容性问题。 + * @param animationConfig - 动画配置。 + * @returns 播放的动画状态。 + * @see dragonBones.AnimationConfig + * @beta + * @version DragonBones 5.0 + * @language zh_CN + */ + playConfig(animationConfig: AnimationConfig): AnimationState | null; + /** + * - Play a specific animation. + * @param animationName - The name of animation data. (If not set, The default animation will be played, or resume the animation playing from pause status, or replay the last playing animation) + * @param playTimes - Playing repeat times. [-1: Use default value of the animation data, 0: No end loop playing, [1~N]: Repeat N times] (default: -1) + * @returns The playing animation state. + * @example + *
+         *     armature.animation.play("walk");
+         * 
+ * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 播放指定动画。 + * @param animationName - 动画数据名称。 (如果未设置,则播放默认动画,或将暂停状态切换为播放状态,或重新播放之前播放的动画) + * @param playTimes - 循环播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] (默认: -1) + * @returns 播放的动画状态。 + * @example + *
+         *     armature.animation.play("walk");
+         * 
+ * @version DragonBones 3.0 + * @language zh_CN + */ + play(animationName?: string | null, playTimes?: number): AnimationState | null; + /** + * - Fade in a specific animation. + * @param animationName - The name of animation data. + * @param fadeInTime - The fade in time. [-1: Use the default value of animation data, [0~N]: The fade in time (In seconds)] (Default: -1) + * @param playTimes - playing repeat times. [-1: Use the default value of animation data, 0: No end loop playing, [1~N]: Repeat N times] (Default: -1) + * @param layer - The blending layer, the animation states in high level layer will get the blending weights with high priority, when the total blending weights are more than 1.0, there will be no more weights can be allocated to the other animation states. (Default: 0) + * @param group - The blending group name, it is typically used to specify the substitution of multiple animation states blending. (Default: null) + * @param fadeOutMode - The fade out mode, which is typically used to specify alternate mode of multiple animation states blending. (Default: AnimationFadeOutMode.SameLayerAndGroup) + * @returns The playing animation state. + * @example + *
+         *     armature.animation.fadeIn("walk", 0.3, 0, 0, "normalGroup").resetToPose = false;
+         *     armature.animation.fadeIn("attack", 0.3, 1, 0, "attackGroup").resetToPose = false;
+         * 
+ * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 淡入播放指定的动画。 + * @param animationName - 动画数据名称。 + * @param fadeInTime - 淡入时间。 [-1: 使用动画数据默认值, [0~N]: 淡入时间 (以秒为单位)] (默认: -1) + * @param playTimes - 播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] (默认: -1) + * @param layer - 混合图层,图层高的动画状态会优先获取混合权重,当混合权重分配总和超过 1.0 时,剩余的动画状态将不能再获得权重分配。 (默认: 0) + * @param group - 混合组名称,该属性通常用来指定多个动画状态混合时的相互替换关系。 (默认: null) + * @param fadeOutMode - 淡出模式,该属性通常用来指定多个动画状态混合时的相互替换模式。 (默认: AnimationFadeOutMode.SameLayerAndGroup) + * @returns 播放的动画状态。 + * @example + *
+         *     armature.animation.fadeIn("walk", 0.3, 0, 0, "normalGroup").resetToPose = false;
+         *     armature.animation.fadeIn("attack", 0.3, 1, 0, "attackGroup").resetToPose = false;
+         * 
+ * @version DragonBones 4.5 + * @language zh_CN + */ + fadeIn(animationName: string, fadeInTime?: number, playTimes?: number, layer?: number, group?: string | null, fadeOutMode?: AnimationFadeOutMode): AnimationState | null; + /** + * - Play a specific animation from the specific time. + * @param animationName - The name of animation data. + * @param time - The start time point of playing. (In seconds) + * @param playTimes - Playing repeat times. [-1: Use the default value of animation data, 0: No end loop playing, [1~N]: Repeat N times] (Default: -1) + * @returns The played animation state. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 从指定时间开始播放指定的动画。 + * @param animationName - 动画数据名称。 + * @param time - 播放开始的时间。 (以秒为单位) + * @param playTimes - 循环播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] (默认: -1) + * @returns 播放的动画状态。 + * @version DragonBones 4.5 + * @language zh_CN + */ + gotoAndPlayByTime(animationName: string, time?: number, playTimes?: number): AnimationState | null; + /** + * - Play a specific animation from the specific frame. + * @param animationName - The name of animation data. + * @param frame - The start frame of playing. + * @param playTimes - Playing repeat times. [-1: Use the default value of animation data, 0: No end loop playing, [1~N]: Repeat N times] (Default: -1) + * @returns The played animation state. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 从指定帧开始播放指定的动画。 + * @param animationName - 动画数据名称。 + * @param frame - 播放开始的帧数。 + * @param playTimes - 播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] (默认: -1) + * @returns 播放的动画状态。 + * @version DragonBones 4.5 + * @language zh_CN + */ + gotoAndPlayByFrame(animationName: string, frame?: number, playTimes?: number): AnimationState | null; + /** + * - Play a specific animation from the specific progress. + * @param animationName - The name of animation data. + * @param progress - The start progress value of playing. + * @param playTimes - Playing repeat times. [-1: Use the default value of animation data, 0: No end loop playing, [1~N]: Repeat N times] (Default: -1) + * @returns The played animation state. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 从指定进度开始播放指定的动画。 + * @param animationName - 动画数据名称。 + * @param progress - 开始播放的进度。 + * @param playTimes - 播放次数。 [-1: 使用动画数据默认值, 0: 无限循环播放, [1~N]: 循环播放 N 次] (默认: -1) + * @returns 播放的动画状态。 + * @version DragonBones 4.5 + * @language zh_CN + */ + gotoAndPlayByProgress(animationName: string, progress?: number, playTimes?: number): AnimationState | null; + /** + * - Stop a specific animation at the specific time. + * @param animationName - The name of animation data. + * @param time - The stop time. (In seconds) + * @returns The played animation state. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 在指定时间停止指定动画播放 + * @param animationName - 动画数据名称。 + * @param time - 停止的时间。 (以秒为单位) + * @returns 播放的动画状态。 + * @version DragonBones 4.5 + * @language zh_CN + */ + gotoAndStopByTime(animationName: string, time?: number): AnimationState | null; + /** + * - Stop a specific animation at the specific frame. + * @param animationName - The name of animation data. + * @param frame - The stop frame. + * @returns The played animation state. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 在指定帧停止指定动画的播放 + * @param animationName - 动画数据名称。 + * @param frame - 停止的帧数。 + * @returns 播放的动画状态。 + * @version DragonBones 4.5 + * @language zh_CN + */ + gotoAndStopByFrame(animationName: string, frame?: number): AnimationState | null; + /** + * - Stop a specific animation at the specific progress. + * @param animationName - The name of animation data. + * @param progress - The stop progress value. + * @returns The played animation state. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 在指定的进度停止指定的动画播放。 + * @param animationName - 动画数据名称。 + * @param progress - 停止进度。 + * @returns 播放的动画状态。 + * @version DragonBones 4.5 + * @language zh_CN + */ + gotoAndStopByProgress(animationName: string, progress?: number): AnimationState | null; + /** + * - Get a specific animation state. + * @param animationName - The name of animation state. + * @example + *
+         *     armature.animation.play("walk");
+         *     let walkState = armature.animation.getState("walk");
+         *     walkState.timeScale = 0.5;
+         * 
+ * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 获取指定的动画状态 + * @param animationName - 动画状态名称。 + * @example + *
+         *     armature.animation.play("walk");
+         *     let walkState = armature.animation.getState("walk");
+         *     walkState.timeScale = 0.5;
+         * 
+ * @version DragonBones 3.0 + * @language zh_CN + */ + getState(animationName: string): AnimationState | null; + /** + * - Check whether a specific animation data is included. + * @param animationName - The name of animation data. + * @see dragonBones.AnimationData + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 检查是否包含指定的动画数据 + * @param animationName - 动画数据名称。 + * @see dragonBones.AnimationData + * @version DragonBones 3.0 + * @language zh_CN + */ + hasAnimation(animationName: string): boolean; + /** + * - Get all the animation states. + * @version DragonBones 5.1 + * @language en_US + */ + /** + * - 获取所有的动画状态 + * @version DragonBones 5.1 + * @language zh_CN + */ + getStates(): Array; + /** + * - Check whether there is an animation state is playing + * @see dragonBones.AnimationState + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 检查是否有动画状态正在播放 + * @see dragonBones.AnimationState + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly isPlaying: boolean; + /** + * - Check whether all the animation states' playing were finished. + * @see dragonBones.AnimationState + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 检查是否所有的动画状态均已播放完毕。 + * @see dragonBones.AnimationState + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly isCompleted: boolean; + /** + * - The name of the last playing animation state. + * @see #lastAnimationState + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 上一个播放的动画状态名称 + * @see #lastAnimationState + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly lastAnimationName: string; + /** + * - The name of all animation data + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 所有动画数据的名称 + * @version DragonBones 4.5 + * @language zh_CN + */ + readonly animationNames: Array; + /** + * - All animation data. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 所有的动画数据。 + * @version DragonBones 4.5 + * @language zh_CN + */ + animations: Map; + /** + * - An AnimationConfig instance that can be used quickly. + * @see dragonBones.AnimationConfig + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 一个可以快速使用的动画配置实例。 + * @see dragonBones.AnimationConfig + * @version DragonBones 5.0 + * @language zh_CN + */ + readonly animationConfig: AnimationConfig; + /** + * - The last playing animation state + * @see dragonBones.AnimationState + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 上一个播放的动画状态 + * @see dragonBones.AnimationState + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly lastAnimationState: AnimationState | null; + /** + * - Deprecated, please refer to {@link #play()} {@link #fadeIn()}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #play()} {@link #fadeIn()}。 + * @deprecated + * @language zh_CN + */ + gotoAndPlay(animationName: string, fadeInTime?: number, duration?: number, playTimes?: number, layer?: number, group?: string | null, fadeOutMode?: AnimationFadeOutMode, pauseFadeOut?: boolean, pauseFadeIn?: boolean): AnimationState | null; + /** + * - Deprecated, please refer to {@link #gotoAndStopByTime()}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #gotoAndStopByTime()}。 + * @deprecated + * @language zh_CN + */ + gotoAndStop(animationName: string, time?: number): AnimationState | null; + /** + * - Deprecated, please refer to {@link #animationNames}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #animationNames}。 + * @deprecated + * @language zh_CN + */ + readonly animationList: Array; + /** + * - Deprecated, please refer to {@link #animationNames}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #animationNames}。 + * @deprecated + * @language zh_CN + */ + readonly animationDataList: Array; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The animation state is generated when the animation data is played. + * @see dragonBones.Animation + * @see dragonBones.AnimationData + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 动画状态由播放动画数据时产生。 + * @see dragonBones.Animation + * @see dragonBones.AnimationData + * @version DragonBones 3.0 + * @language zh_CN + */ + class AnimationState extends BaseObject { + static toString(): string; + /** + * @private + */ + actionEnabled: boolean; + /** + * @private + */ + additiveBlending: boolean; + /** + * - Whether the animation state has control over the display object properties of the slots. + * Sometimes blend a animation state does not want it to control the display object properties of the slots, + * especially if other animation state are controlling the display object properties of the slots. + * @default true + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 动画状态是否对插槽的显示对象属性有控制权。 + * 有时混合一个动画状态并不希望其控制插槽的显示对象属性, + * 尤其是其他动画状态正在控制这些插槽的显示对象属性时。 + * @default true + * @version DragonBones 5.0 + * @language zh_CN + */ + displayControl: boolean; + /** + * - Whether to reset the objects without animation to the armature pose when the animation state is start to play. + * This property should usually be set to false when blend multiple animation states. + * @default true + * @version DragonBones 5.1 + * @language en_US + */ + /** + * - 开始播放动画状态时是否将没有动画的对象重置为骨架初始值。 + * 通常在混合多个动画状态时应该将该属性设置为 false。 + * @default true + * @version DragonBones 5.1 + * @language zh_CN + */ + resetToPose: boolean; + /** + * - The play times. [0: Loop play, [1~N]: Play N times] + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 播放次数。 [0: 无限循环播放, [1~N]: 循环播放 N 次] + * @version DragonBones 3.0 + * @language zh_CN + */ + playTimes: number; + /** + * - The blend layer. + * High layer animation state will get the blend weight first. + * When the blend weight is assigned more than 1, the remaining animation states will no longer get the weight assigned. + * @readonly + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 混合图层。 + * 图层高的动画状态会优先获取混合权重。 + * 当混合权重分配超过 1 时,剩余的动画状态将不再获得权重分配。 + * @readonly + * @version DragonBones 5.0 + * @language zh_CN + */ + layer: number; + /** + * - The play speed. + * The value is an overlay relationship with {@link dragonBones.Animation#timeScale}. + * [(-N~0): Reverse play, 0: Stop play, (0~1): Slow play, 1: Normal play, (1~N): Fast play] + * @default 1.0 + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 播放速度。 + * 该值与 {@link dragonBones.Animation#timeScale} 是叠加关系。 + * [(-N~0): 倒转播放, 0: 停止播放, (0~1): 慢速播放, 1: 正常播放, (1~N): 快速播放] + * @default 1.0 + * @version DragonBones 3.0 + * @language zh_CN + */ + timeScale: number; + /** + * - The blend weight. + * @default 1.0 + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 混合权重。 + * @default 1.0 + * @version DragonBones 5.0 + * @language zh_CN + */ + weight: number; + /** + * - The auto fade out time when the animation state play completed. + * [-1: Do not fade out automatically, [0~N]: The fade out time] (In seconds) + * @default -1.0 + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 动画状态播放完成后的自动淡出时间。 + * [-1: 不自动淡出, [0~N]: 淡出时间] (以秒为单位) + * @default -1.0 + * @version DragonBones 5.0 + * @language zh_CN + */ + autoFadeOutTime: number; + /** + * @private + */ + fadeTotalTime: number; + /** + * - The name of the animation state. (Can be different from the name of the animation data) + * @readonly + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 动画状态名称。 (可以不同于动画数据) + * @readonly + * @version DragonBones 5.0 + * @language zh_CN + */ + name: string; + /** + * - The blend group name of the animation state. + * This property is typically used to specify the substitution of multiple animation states blend. + * @readonly + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 混合组名称。 + * 该属性通常用来指定多个动画状态混合时的相互替换关系。 + * @readonly + * @version DragonBones 5.0 + * @language zh_CN + */ + group: string; + private _timelineDirty; + /** + * - xx: Play Enabled, Fade Play Enabled + * @internal + * @private + */ + _playheadState: number; + /** + * -1: Fade in, 0: Fade complete, 1: Fade out; + * @internal + * @private + */ + _fadeState: number; + /** + * -1: Fade start, 0: Fading, 1: Fade complete; + * @internal + * @private + */ + _subFadeState: number; + /** + * @internal + * @private + */ + _position: number; + /** + * @internal + * @private + */ + _duration: number; + private _fadeTime; + private _time; + /** + * @internal + * @private + */ + _fadeProgress: number; + /** + * @internal + * @private + */ + _weightResult: number; + /** + * @internal + * @private + */ + readonly _blendState: BlendState; + private readonly _boneMask; + private readonly _boneTimelines; + private readonly _surfaceTimelines; + private readonly _slotTimelines; + private readonly _constraintTimelines; + private readonly _animationTimelines; + private readonly _poseTimelines; + private readonly _bonePoses; + /** + * @internal + * @private + */ + _animationData: AnimationData; + private _armature; + /** + * @internal + * @private + */ + _actionTimeline: ActionTimelineState; + private _zOrderTimeline; + /** + * @internal + * @private + */ + _parent: AnimationState; + /** + * @private + */ + protected _onClear(): void; + private _updateTimelines(); + private _updateBoneAndSlotTimelines(); + private _advanceFadeTime(passedTime); + /** + * @internal + * @private + */ + init(armature: Armature, animationData: AnimationData, animationConfig: AnimationConfig): void; + /** + * @internal + * @private + */ + advanceTime(passedTime: number, cacheFrameRate: number): void; + /** + * - Continue play. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 继续播放。 + * @version DragonBones 3.0 + * @language zh_CN + */ + play(): void; + /** + * - Stop play. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 暂停播放。 + * @version DragonBones 3.0 + * @language zh_CN + */ + stop(): void; + /** + * - Fade out the animation state. + * @param fadeOutTime - The fade out time. (In seconds) + * @param pausePlayhead - Whether to pause the animation playing when fade out. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 淡出动画状态。 + * @param fadeOutTime - 淡出时间。 (以秒为单位) + * @param pausePlayhead - 淡出时是否暂停播放。 + * @version DragonBones 3.0 + * @language zh_CN + */ + fadeOut(fadeOutTime: number, pausePlayhead?: boolean): void; + /** + * - Check if a specific bone mask is included. + * @param name - The bone name. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 检查是否包含特定骨骼遮罩。 + * @param name - 骨骼名称。 + * @version DragonBones 3.0 + * @language zh_CN + */ + containsBoneMask(name: string): boolean; + /** + * - Add a specific bone mask. + * @param name - The bone name. + * @param recursive - Whether or not to add a mask to the bone's sub-bone. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 添加特定的骨骼遮罩。 + * @param name - 骨骼名称。 + * @param recursive - 是否为该骨骼的子骨骼添加遮罩。 + * @version DragonBones 3.0 + * @language zh_CN + */ + addBoneMask(name: string, recursive?: boolean): void; + /** + * - Remove the mask of a specific bone. + * @param name - The bone name. + * @param recursive - Whether to remove the bone's sub-bone mask. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 删除特定骨骼的遮罩。 + * @param name - 骨骼名称。 + * @param recursive - 是否删除该骨骼的子骨骼遮罩。 + * @version DragonBones 3.0 + * @language zh_CN + */ + removeBoneMask(name: string, recursive?: boolean): void; + /** + * - Remove all bone masks. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 删除所有骨骼遮罩。 + * @version DragonBones 3.0 + * @language zh_CN + */ + removeAllBoneMask(): void; + /** + * - Whether the animation state is fading in. + * @version DragonBones 5.1 + * @language en_US + */ + /** + * - 是否正在淡入。 + * @version DragonBones 5.1 + * @language zh_CN + */ + readonly isFadeIn: boolean; + /** + * - Whether the animation state is fading out. + * @version DragonBones 5.1 + * @language en_US + */ + /** + * - 是否正在淡出。 + * @version DragonBones 5.1 + * @language zh_CN + */ + readonly isFadeOut: boolean; + /** + * - Whether the animation state is fade completed. + * @version DragonBones 5.1 + * @language en_US + */ + /** + * - 是否淡入或淡出完毕。 + * @version DragonBones 5.1 + * @language zh_CN + */ + readonly isFadeComplete: boolean; + /** + * - Whether the animation state is playing. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 是否正在播放。 + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly isPlaying: boolean; + /** + * - Whether the animation state is play completed. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 是否播放完毕。 + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly isCompleted: boolean; + /** + * - The times has been played. + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 已经循环播放的次数。 + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly currentPlayTimes: number; + /** + * - The total time. (In seconds) + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 总播放时间。 (以秒为单位) + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly totalTime: number; + /** + * - The time is currently playing. (In seconds) + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 当前播放的时间。 (以秒为单位) + * @version DragonBones 3.0 + * @language zh_CN + */ + currentTime: number; + /** + * - The animation data. + * @see dragonBones.AnimationData + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 动画数据。 + * @see dragonBones.AnimationData + * @version DragonBones 3.0 + * @language zh_CN + */ + readonly animationData: AnimationData; + } + /** + * @internal + * @private + */ + class BonePose extends BaseObject { + static toString(): string; + readonly current: Transform; + readonly delta: Transform; + readonly result: Transform; + protected _onClear(): void; + } + /** + * @internal + * @private + */ + class BlendState { + dirty: boolean; + layer: number; + leftWeight: number; + layerWeight: number; + blendWeight: number; + update(weight: number, layer: number): number; + clear(): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * @internal + * @private + */ + const enum TweenState { + None = 0, + Once = 1, + Always = 2, + } + /** + * @internal + * @private + */ + abstract class TimelineState extends BaseObject { + playState: number; + currentPlayTimes: number; + currentTime: number; + protected _tweenState: TweenState; + protected _frameRate: number; + protected _frameValueOffset: number; + protected _frameCount: number; + protected _frameOffset: number; + protected _frameIndex: number; + protected _frameRateR: number; + protected _position: number; + protected _duration: number; + protected _timeScale: number; + protected _timeOffset: number; + protected _dragonBonesData: DragonBonesData; + protected _animationData: AnimationData; + protected _timelineData: TimelineData | null; + protected _armature: Armature; + protected _animationState: AnimationState; + protected _actionTimeline: TimelineState; + protected _frameArray: Array | Int16Array; + protected _frameIntArray: Array | Int16Array; + protected _frameFloatArray: Array | Int16Array; + protected _timelineArray: Array | Uint16Array; + protected _frameIndices: Array; + protected _onClear(): void; + protected abstract _onArriveAtFrame(): void; + protected abstract _onUpdateFrame(): void; + protected _setCurrentTime(passedTime: number): boolean; + init(armature: Armature, animationState: AnimationState, timelineData: TimelineData | null): void; + fadeOut(): void; + update(passedTime: number): void; + } + /** + * @internal + * @private + */ + abstract class TweenTimelineState extends TimelineState { + private static _getEasingValue(tweenType, progress, easing); + private static _getEasingCurveValue(progress, samples, count, offset); + protected _tweenType: TweenType; + protected _curveCount: number; + protected _framePosition: number; + protected _frameDurationR: number; + protected _tweenProgress: number; + protected _tweenEasing: number; + protected _onClear(): void; + protected _onArriveAtFrame(): void; + protected _onUpdateFrame(): void; + } + /** + * @internal + * @private + */ + abstract class BoneTimelineState extends TweenTimelineState { + bone: Bone; + bonePose: BonePose; + protected _onClear(): void; + blend(state: number): void; + } + /** + * @internal + * @private + */ + abstract class SlotTimelineState extends TweenTimelineState { + slot: Slot; + protected _onClear(): void; + } + /** + * @internal + * @private + */ + abstract class ConstraintTimelineState extends TweenTimelineState { + constraint: Constraint; + protected _onClear(): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * @internal + * @private + */ + class ActionTimelineState extends TimelineState { + static toString(): string; + private _onCrossFrame(frameIndex); + protected _onArriveAtFrame(): void; + protected _onUpdateFrame(): void; + update(passedTime: number): void; + setCurrentTime(value: number): void; + } + /** + * @internal + * @private + */ + class ZOrderTimelineState extends TimelineState { + static toString(): string; + protected _onArriveAtFrame(): void; + protected _onUpdateFrame(): void; + } + /** + * @internal + * @private + */ + class BoneAllTimelineState extends BoneTimelineState { + static toString(): string; + protected _onArriveAtFrame(): void; + protected _onUpdateFrame(): void; + fadeOut(): void; + } + /** + * @internal + * @private + */ + class BoneTranslateTimelineState extends BoneTimelineState { + static toString(): string; + protected _onArriveAtFrame(): void; + protected _onUpdateFrame(): void; + } + /** + * @internal + * @private + */ + class BoneRotateTimelineState extends BoneTimelineState { + static toString(): string; + protected _onArriveAtFrame(): void; + protected _onUpdateFrame(): void; + fadeOut(): void; + } + /** + * @internal + * @private + */ + class BoneScaleTimelineState extends BoneTimelineState { + static toString(): string; + protected _onArriveAtFrame(): void; + protected _onUpdateFrame(): void; + } + /** + * @internal + * @private + */ + class SurfaceTimelineState extends TweenTimelineState { + static toString(): string; + surface: Surface; + private _frameFloatOffset; + private _valueCount; + private _deformCount; + private _valueOffset; + private readonly _current; + private readonly _delta; + private readonly _result; + protected _onClear(): void; + protected _onArriveAtFrame(): void; + protected _onUpdateFrame(): void; + init(armature: Armature, animationState: AnimationState, timelineData: TimelineData | null): void; + blend(state: number): void; + } + /** + * @internal + * @private + */ + class SlotDislayTimelineState extends SlotTimelineState { + static toString(): string; + protected _onArriveAtFrame(): void; + } + /** + * @internal + * @private + */ + class SlotColorTimelineState extends SlotTimelineState { + static toString(): string; + private _dirty; + private readonly _current; + private readonly _delta; + private readonly _result; + protected _onClear(): void; + protected _onArriveAtFrame(): void; + protected _onUpdateFrame(): void; + fadeOut(): void; + update(passedTime: number): void; + } + /** + * @internal + * @private + */ + class SlotFFDTimelineState extends SlotTimelineState { + static toString(): string; + meshOffset: number; + private _dirty; + private _frameFloatOffset; + private _valueCount; + private _deformCount; + private _valueOffset; + private readonly _current; + private readonly _delta; + private readonly _result; + protected _onClear(): void; + protected _onArriveAtFrame(): void; + protected _onUpdateFrame(): void; + init(armature: Armature, animationState: AnimationState, timelineData: TimelineData | null): void; + fadeOut(): void; + update(passedTime: number): void; + } + /** + * @internal + * @private + */ + class IKConstraintTimelineState extends ConstraintTimelineState { + static toString(): string; + private _current; + private _delta; + protected _onClear(): void; + protected _onArriveAtFrame(): void; + protected _onUpdateFrame(): void; + } + /** + * @internal + * @private + */ + class AnimationTimelineState extends TweenTimelineState { + static toString(): string; + animationState: AnimationState; + private readonly _floats; + protected _onClear(): void; + protected _onArriveAtFrame(): void; + protected _onUpdateFrame(): void; + blend(state: number): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - The properties of the object carry basic information about an event, + * which are passed as parameter or parameter's parameter to event listeners when an event occurs. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 事件对象,包含有关事件的基本信息,当发生事件时,该实例将作为参数或参数的参数传递给事件侦听器。 + * @version DragonBones 4.5 + * @language zh_CN + */ + class EventObject extends BaseObject { + /** + * - Animation start play. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 动画开始播放。 + * @version DragonBones 4.5 + * @language zh_CN + */ + static readonly START: string; + /** + * - Animation loop play complete once. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 动画循环播放完成一次。 + * @version DragonBones 4.5 + * @language zh_CN + */ + static readonly LOOP_COMPLETE: string; + /** + * - Animation play complete. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 动画播放完成。 + * @version DragonBones 4.5 + * @language zh_CN + */ + static readonly COMPLETE: string; + /** + * - Animation fade in start. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 动画淡入开始。 + * @version DragonBones 4.5 + * @language zh_CN + */ + static readonly FADE_IN: string; + /** + * - Animation fade in complete. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 动画淡入完成。 + * @version DragonBones 4.5 + * @language zh_CN + */ + static readonly FADE_IN_COMPLETE: string; + /** + * - Animation fade out start. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 动画淡出开始。 + * @version DragonBones 4.5 + * @language zh_CN + */ + static readonly FADE_OUT: string; + /** + * - Animation fade out complete. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 动画淡出完成。 + * @version DragonBones 4.5 + * @language zh_CN + */ + static readonly FADE_OUT_COMPLETE: string; + /** + * - Animation frame event. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 动画帧事件。 + * @version DragonBones 4.5 + * @language zh_CN + */ + static readonly FRAME_EVENT: string; + /** + * - Animation frame sound event. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 动画帧声音事件。 + * @version DragonBones 4.5 + * @language zh_CN + */ + static readonly SOUND_EVENT: string; + static toString(): string; + /** + * - If is a frame event, the value is used to describe the time that the event was in the animation timeline. (In seconds) + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 如果是帧事件,此值用来描述该事件在动画时间轴中所处的时间。(以秒为单位) + * @version DragonBones 4.5 + * @language zh_CN + */ + time: number; + /** + * - The event type。 + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 事件类型。 + * @version DragonBones 4.5 + * @language zh_CN + */ + type: EventStringType; + /** + * - The event name. (The frame event name or the frame sound name) + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 事件名称。 (帧事件的名称或帧声音的名称) + * @version DragonBones 4.5 + * @language zh_CN + */ + name: string; + /** + * - The armature that dispatch the event. + * @see dragonBones.Armature + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 发出该事件的骨架。 + * @see dragonBones.Armature + * @version DragonBones 4.5 + * @language zh_CN + */ + armature: Armature; + /** + * - The bone that dispatch the event. + * @see dragonBones.Bone + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 发出该事件的骨骼。 + * @see dragonBones.Bone + * @version DragonBones 4.5 + * @language zh_CN + */ + bone: Bone | null; + /** + * - The slot that dispatch the event. + * @see dragonBones.Slot + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 发出该事件的插槽。 + * @see dragonBones.Slot + * @version DragonBones 4.5 + * @language zh_CN + */ + slot: Slot | null; + /** + * - The animation state that dispatch the event. + * @see dragonBones.AnimationState + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 发出该事件的动画状态。 + * @see dragonBones.AnimationState + * @version DragonBones 4.5 + * @language zh_CN + */ + animationState: AnimationState; + /** + * - The custom data. + * @see dragonBones.CustomData + * @version DragonBones 5.0 + * @language en_US + */ + /** + * - 自定义数据。 + * @see dragonBones.CustomData + * @version DragonBones 5.0 + * @language zh_CN + */ + data: UserData | null; + /** + * @private + */ + protected _onClear(): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * @private + */ + type EventStringType = string | "start" | "loopComplete" | "complete" | "fadeIn" | "fadeInComplete" | "fadeOut" | "fadeOutComplete" | "frameEvent" | "soundEvent"; + /** + * - The event dispatcher interface. + * Dragonbones event dispatch usually relies on docking engine to implement, which defines the event method to be implemented when docking the engine. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 事件派发接口。 + * DragonBones 的事件派发通常依赖于对接的引擎来实现,该接口定义了对接引擎时需要实现的事件方法。 + * @version DragonBones 4.5 + * @language zh_CN + */ + interface IEventDispatcher { + /** + * - Checks whether the object has any listeners registered for a specific type of event。 + * @param type - Event type. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 检查是否为特定的事件类型注册了任何侦听器。 + * @param type - 事件类型。 + * @version DragonBones 4.5 + * @language zh_CN + */ + hasDBEventListener(type: EventStringType): boolean; + /** + * - Dispatches an event into the event flow. + * @param type - Event type. + * @param eventObject - Event object. + * @see dragonBones.EventObject + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 分派特定的事件到事件流中。 + * @param type - 事件类型。 + * @param eventObject - 事件数据。 + * @see dragonBones.EventObject + * @version DragonBones 4.5 + * @language zh_CN + */ + dispatchDBEvent(type: EventStringType, eventObject: EventObject): void; + /** + * - Add an event listener object so that the listener receives notification of an event. + * @param type - Event type. + * @param listener - Event listener. + * @param thisObject - The listener function's "this". + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 添加特定事件类型的事件侦听器,以使侦听器能够接收事件通知。 + * @param type - 事件类型。 + * @param listener - 事件侦听器。 + * @param thisObject - 侦听函数绑定的 this 对象。 + * @version DragonBones 4.5 + * @language zh_CN + */ + addDBEventListener(type: EventStringType, listener: Function, thisObject: any): void; + /** + * - Removes a listener from the object. + * @param type - Event type. + * @param listener - Event listener. + * @param thisObject - The listener function's "this". + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 删除特定事件类型的侦听器。 + * @param type - 事件类型。 + * @param listener - 事件侦听器。 + * @param thisObject - 侦听函数绑定的 this 对象。 + * @version DragonBones 4.5 + * @language zh_CN + */ + removeDBEventListener(type: EventStringType, listener: Function, thisObject: any): void; + /** + * - Deprecated, please refer to {@link #hasDBEventListener()}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #hasDBEventListener()}。 + * @deprecated + * @language zh_CN + */ + hasEvent(type: EventStringType): boolean; + /** + * - Deprecated, please refer to {@link #addDBEventListener()}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #addDBEventListener()}。 + * @deprecated + * @language zh_CN + */ + addEvent(type: EventStringType, listener: Function, thisObject: any): void; + /** + * - Deprecated, please refer to {@link #removeDBEventListener()}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #removeDBEventListener()}。 + * @deprecated + * @language zh_CN + */ + removeEvent(type: EventStringType, listener: Function, thisObject: any): void; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * @internal + * @private + */ + abstract class DataParser { + protected static readonly DATA_VERSION_2_3: string; + protected static readonly DATA_VERSION_3_0: string; + protected static readonly DATA_VERSION_4_0: string; + protected static readonly DATA_VERSION_4_5: string; + protected static readonly DATA_VERSION_5_0: string; + protected static readonly DATA_VERSION_5_5: string; + protected static readonly DATA_VERSION: string; + protected static readonly DATA_VERSIONS: Array; + protected static readonly TEXTURE_ATLAS: string; + protected static readonly SUB_TEXTURE: string; + protected static readonly FORMAT: string; + protected static readonly IMAGE_PATH: string; + protected static readonly WIDTH: string; + protected static readonly HEIGHT: string; + protected static readonly ROTATED: string; + protected static readonly FRAME_X: string; + protected static readonly FRAME_Y: string; + protected static readonly FRAME_WIDTH: string; + protected static readonly FRAME_HEIGHT: string; + protected static readonly DRADON_BONES: string; + protected static readonly USER_DATA: string; + protected static readonly ARMATURE: string; + protected static readonly BONE: string; + protected static readonly SURFACE: string; + protected static readonly SLOT: string; + protected static readonly CONSTRAINT: string; + protected static readonly IK: string; + protected static readonly SKIN: string; + protected static readonly DISPLAY: string; + protected static readonly ANIMATION: string; + protected static readonly Z_ORDER: string; + protected static readonly FFD: string; + protected static readonly FRAME: string; + protected static readonly TRANSLATE_FRAME: string; + protected static readonly ROTATE_FRAME: string; + protected static readonly SCALE_FRAME: string; + protected static readonly DISPLAY_FRAME: string; + protected static readonly COLOR_FRAME: string; + protected static readonly DEFAULT_ACTIONS: string; + protected static readonly ACTIONS: string; + protected static readonly EVENTS: string; + protected static readonly INTS: string; + protected static readonly FLOATS: string; + protected static readonly STRINGS: string; + protected static readonly CANVAS: string; + protected static readonly TRANSFORM: string; + protected static readonly PIVOT: string; + protected static readonly AABB: string; + protected static readonly COLOR: string; + protected static readonly VERSION: string; + protected static readonly COMPATIBLE_VERSION: string; + protected static readonly FRAME_RATE: string; + protected static readonly TYPE: string; + protected static readonly SUB_TYPE: string; + protected static readonly NAME: string; + protected static readonly PARENT: string; + protected static readonly TARGET: string; + protected static readonly STAGE: string; + protected static readonly SHARE: string; + protected static readonly PATH: string; + protected static readonly LENGTH: string; + protected static readonly DISPLAY_INDEX: string; + protected static readonly BLEND_MODE: string; + protected static readonly INHERIT_TRANSLATION: string; + protected static readonly INHERIT_ROTATION: string; + protected static readonly INHERIT_SCALE: string; + protected static readonly INHERIT_REFLECTION: string; + protected static readonly INHERIT_ANIMATION: string; + protected static readonly INHERIT_DEFORM: string; + protected static readonly SEGMENT_X: string; + protected static readonly SEGMENT_Y: string; + protected static readonly BEND_POSITIVE: string; + protected static readonly CHAIN: string; + protected static readonly WEIGHT: string; + protected static readonly FADE_IN_TIME: string; + protected static readonly PLAY_TIMES: string; + protected static readonly SCALE: string; + protected static readonly OFFSET: string; + protected static readonly POSITION: string; + protected static readonly DURATION: string; + protected static readonly TWEEN_EASING: string; + protected static readonly TWEEN_ROTATE: string; + protected static readonly TWEEN_SCALE: string; + protected static readonly CLOCK_WISE: string; + protected static readonly CURVE: string; + protected static readonly SOUND: string; + protected static readonly EVENT: string; + protected static readonly ACTION: string; + protected static readonly X: string; + protected static readonly Y: string; + protected static readonly SKEW_X: string; + protected static readonly SKEW_Y: string; + protected static readonly SCALE_X: string; + protected static readonly SCALE_Y: string; + protected static readonly VALUE: string; + protected static readonly ROTATE: string; + protected static readonly SKEW: string; + protected static readonly ALPHA_OFFSET: string; + protected static readonly RED_OFFSET: string; + protected static readonly GREEN_OFFSET: string; + protected static readonly BLUE_OFFSET: string; + protected static readonly ALPHA_MULTIPLIER: string; + protected static readonly RED_MULTIPLIER: string; + protected static readonly GREEN_MULTIPLIER: string; + protected static readonly BLUE_MULTIPLIER: string; + protected static readonly UVS: string; + protected static readonly VERTICES: string; + protected static readonly TRIANGLES: string; + protected static readonly WEIGHTS: string; + protected static readonly SLOT_POSE: string; + protected static readonly BONE_POSE: string; + protected static readonly GLUE_WEIGHTS: string; + protected static readonly GLUE_MESHES: string; + protected static readonly GOTO_AND_PLAY: string; + protected static readonly DEFAULT_NAME: string; + protected static _getArmatureType(value: string): ArmatureType; + protected static _getBoneType(value: string): BoneType; + protected static _getDisplayType(value: string): DisplayType; + protected static _getBoundingBoxType(value: string): BoundingBoxType; + protected static _getActionType(value: string): ActionType; + protected static _getBlendMode(value: string): BlendMode; + abstract parseDragonBonesData(rawData: any, scale: number): DragonBonesData | null; + abstract parseTextureAtlasData(rawData: any, textureAtlasData: TextureAtlasData, scale: number): boolean; + /** + * - Deprecated, please refer to {@link dragonBones.BaseFactory#parsetTextureAtlasData()}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link dragonBones.BaseFactory#parsetTextureAtlasData()}。 + * @deprecated + * @language zh_CN + */ + static parseDragonBonesData(rawData: any): DragonBonesData | null; + /** + * - Deprecated, please refer to {@link dragonBones.BaseFactory#parsetTextureAtlasData()}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link dragonBones.BaseFactory#parsetTextureAtlasData()}。 + * @deprecated + * @language zh_CN + */ + static parseTextureAtlasData(rawData: any, scale?: number): any; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * @internal + * @private + */ + class ObjectDataParser extends DataParser { + protected static _getBoolean(rawData: any, key: string, defaultValue: boolean): boolean; + protected static _getNumber(rawData: any, key: string, defaultValue: number): number; + protected static _getString(rawData: any, key: string, defaultValue: string): string; + protected _rawTextureAtlasIndex: number; + protected readonly _rawBones: Array; + protected _data: DragonBonesData; + protected _armature: ArmatureData; + protected _bone: BoneData; + protected _surface: SurfaceData; + protected _slot: SlotData; + protected _skin: SkinData; + protected _mesh: MeshDisplayData; + protected _animation: AnimationData; + protected _timeline: TimelineData; + protected _rawTextureAtlases: Array | null; + private _defaultColorOffset; + private _prevClockwise; + private _prevRotation; + private readonly _helpMatrixA; + private readonly _helpMatrixB; + private readonly _helpTransform; + private readonly _helpColorTransform; + private readonly _helpPoint; + private readonly _helpArray; + private readonly _intArray; + private readonly _floatArray; + private readonly _frameIntArray; + private readonly _frameFloatArray; + private readonly _frameArray; + private readonly _timelineArray; + private readonly _cacheRawMeshes; + private readonly _cacheMeshes; + private readonly _actionFrames; + private readonly _weightSlotPose; + private readonly _weightBonePoses; + private readonly _cacheBones; + private readonly _slotChildActions; + private _getCurvePoint(x1, y1, x2, y2, x3, y3, x4, y4, t, result); + private _samplingEasingCurve(curve, samples); + private _parseActionDataInFrame(rawData, frameStart, bone, slot); + private _mergeActionFrame(rawData, frameStart, type, bone, slot); + protected _parseArmature(rawData: any, scale: number): ArmatureData; + protected _parseBone(rawData: any): BoneData; + protected _parseIKConstraint(rawData: any): ConstraintData | null; + protected _parseSlot(rawData: any, zOrder: number): SlotData; + protected _parseSkin(rawData: any): SkinData; + protected _parseDisplay(rawData: any): DisplayData | null; + protected _parsePivot(rawData: any, display: ImageDisplayData): void; + protected _parseMesh(rawData: any, mesh: MeshDisplayData): void; + protected _parseMeshGlue(rawData: any, mesh: MeshDisplayData): void; + protected _parseBoundingBox(rawData: any): BoundingBoxData | null; + protected _parsePolygonBoundingBox(rawData: any): PolygonBoundingBoxData; + protected _parseAnimation(rawData: any): AnimationData; + protected _parseTimeline(rawData: any, rawFrames: Array | null, framesKey: string, type: TimelineType, addIntOffset: boolean, addFloatOffset: boolean, frameValueCount: number, frameParser: (rawData: any, frameStart: number, frameCount: number) => number): TimelineData | null; + protected _parseBoneTimeline(rawData: any): void; + protected _parseSlotTimeline(rawData: any): void; + protected _parseFrame(rawData: any, frameStart: number, frameCount: number): number; + protected _parseTweenFrame(rawData: any, frameStart: number, frameCount: number): number; + protected _parseActionFrame(frame: ActionFrame, frameStart: number, frameCount: number): number; + protected _parseZOrderFrame(rawData: any, frameStart: number, frameCount: number): number; + protected _parseBoneAllFrame(rawData: any, frameStart: number, frameCount: number): number; + protected _parseBoneTranslateFrame(rawData: any, frameStart: number, frameCount: number): number; + protected _parseBoneRotateFrame(rawData: any, frameStart: number, frameCount: number): number; + protected _parseBoneScaleFrame(rawData: any, frameStart: number, frameCount: number): number; + protected _parseSurfaceFrame(rawData: any, frameStart: number, frameCount: number): number; + protected _parseSlotDisplayFrame(rawData: any, frameStart: number, frameCount: number): number; + protected _parseSlotColorFrame(rawData: any, frameStart: number, frameCount: number): number; + protected _parseSlotFFDFrame(rawData: any, frameStart: number, frameCount: number): number; + protected _parseIKConstraintFrame(rawData: any, frameStart: number, frameCount: number): number; + protected _parseAnimationFrame(rawData: any, frameStart: number, frameCount: number): number; + protected _parseActionData(rawData: any, type: ActionType, bone: BoneData | null, slot: SlotData | null): Array; + protected _parseTransform(rawData: any, transform: Transform, scale: number): void; + protected _parseColorTransform(rawData: any, color: ColorTransform): void; + protected _parseArray(rawData: any): void; + protected _modifyArray(): void; + parseDragonBonesData(rawData: any, scale?: number): DragonBonesData | null; + parseTextureAtlasData(rawData: any, textureAtlasData: TextureAtlasData, scale?: number): boolean; + private static _objectDataParserInstance; + /** + * - Deprecated, please refer to {@link dragonBones.BaseFactory#parseDragonBonesData()}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link dragonBones.BaseFactory#parseDragonBonesData()}。 + * @deprecated + * @language zh_CN + */ + static getInstance(): ObjectDataParser; + } + /** + * @internal + * @private + */ + class ActionFrame { + frameStart: number; + readonly actions: Array; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * @internal + * @private + */ + class BinaryDataParser extends ObjectDataParser { + private _binaryOffset; + private _binary; + private _intArrayBuffer; + private _floatArrayBuffer; + private _frameIntArrayBuffer; + private _frameFloatArrayBuffer; + private _frameArrayBuffer; + private _timelineArrayBuffer; + private _inRange(a, min, max); + private _decodeUTF8(data); + private _getUTF16Key(value); + private _parseBinaryTimeline(type, offset, timelineData?); + protected _parseMesh(rawData: any, mesh: MeshDisplayData): void; + protected _parseAnimation(rawData: any): AnimationData; + protected _parseArray(rawData: any): void; + parseDragonBonesData(rawData: any, scale?: number): DragonBonesData | null; + private static _binaryDataParserInstance; + /** + * - Deprecated, please refer to {@link dragonBones.BaseFactory#parseDragonBonesData()}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link dragonBones.BaseFactory#parseDragonBonesData()}。 + * @deprecated + * @language zh_CN + */ + static getInstance(): BinaryDataParser; + } +} +/** + * The MIT License (MIT) + * + * Copyright (c) 2012-2017 DragonBones team and other contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +declare namespace dragonBones { + /** + * - Base class for the factory that create the armatures. (Typically only one global factory instance is required) + * The factory instance create armatures by parsed and added DragonBonesData instances and TextureAtlasData instances. + * Once the data has been parsed, it has been cached in the factory instance and does not need to be parsed again until it is cleared by the factory instance. + * @see dragonBones.DragonBonesData + * @see dragonBones.TextureAtlasData + * @see dragonBones.ArmatureData + * @see dragonBones.Armature + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 创建骨架的工厂基类。 (通常只需要一个全局工厂实例) + * 工厂通过解析并添加的 DragonBonesData 实例和 TextureAtlasData 实例来创建骨架。 + * 当数据被解析过之后,已经添加到工厂中,在没有被工厂清理之前,不需要再次解析。 + * @see dragonBones.DragonBonesData + * @see dragonBones.TextureAtlasData + * @see dragonBones.ArmatureData + * @see dragonBones.Armature + * @version DragonBones 3.0 + * @language zh_CN + */ + abstract class BaseFactory { + /** + * @private + */ + protected static _objectParser: ObjectDataParser; + /** + * @private + */ + protected static _binaryParser: BinaryDataParser; + /** + * @private + */ + autoSearch: boolean; + /** + * @private + */ + protected readonly _dragonBonesDataMap: Map; + /** + * @private + */ + protected readonly _textureAtlasDataMap: Map>; + /** + * @private + */ + protected _dragonBones: DragonBones; + /** + * @private + */ + protected _dataParser: DataParser; + /** + * - Create a factory instance. (typically only one global factory instance is required) + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 创建一个工厂实例。 (通常只需要一个全局工厂实例) + * @version DragonBones 3.0 + * @language zh_CN + */ + constructor(dataParser?: DataParser | null); + /** + * @private + */ + protected _isSupportMesh(): boolean; + /** + * @private + */ + protected _getTextureData(textureAtlasName: string, textureName: string): TextureData | null; + /** + * @private + */ + protected _fillBuildArmaturePackage(dataPackage: BuildArmaturePackage, dragonBonesName: string, armatureName: string, skinName: string, textureAtlasName: string): boolean; + /** + * @private + */ + protected _buildBones(dataPackage: BuildArmaturePackage, armature: Armature): void; + /** + * @private + */ + protected _buildSlots(dataPackage: BuildArmaturePackage, armature: Armature): void; + /** + * @private + */ + protected _buildChildArmature(dataPackage: BuildArmaturePackage | null, slot: Slot, displayData: DisplayData): Armature | null; + /** + * @private + */ + protected _getSlotDisplay(dataPackage: BuildArmaturePackage | null, displayData: DisplayData, rawDisplayData: DisplayData | null, slot: Slot): any; + /** + * @private + */ + protected abstract _buildTextureAtlasData(textureAtlasData: TextureAtlasData | null, textureAtlas: any): TextureAtlasData; + /** + * @private + */ + protected abstract _buildArmature(dataPackage: BuildArmaturePackage): Armature; + /** + * @private + */ + protected abstract _buildSlot(dataPackage: BuildArmaturePackage, slotData: SlotData, displays: Array | null, armature: Armature): Slot; + /** + * - Parse the raw data to a DragonBonesData instance and cache it to the factory. + * @param rawData - The raw data. + * @param name - Specify a cache name for the instance so that the instance can be obtained through this name. (If not set, use the instance name instead) + * @param scale - Specify a scaling value for all armatures. (Default: 1.0) + * @returns DragonBonesData instance + * @see #getDragonBonesData() + * @see #addDragonBonesData() + * @see #removeDragonBonesData() + * @see dragonBones.DragonBonesData + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 将原始数据解析为 DragonBonesData 实例,并缓存到工厂中。 + * @param rawData - 原始数据。 + * @param name - 为该实例指定一个缓存名称,以便可以通过此名称获取该实例。 (如果未设置,则使用该实例中的名称) + * @param scale - 为所有的骨架指定一个缩放值。 (默认: 1.0) + * @returns DragonBonesData 实例 + * @see #getDragonBonesData() + * @see #addDragonBonesData() + * @see #removeDragonBonesData() + * @see dragonBones.DragonBonesData + * @version DragonBones 4.5 + * @language zh_CN + */ + parseDragonBonesData(rawData: any, name?: string | null, scale?: number): DragonBonesData | null; + /** + * - Parse the raw texture atlas data and the texture atlas object to a TextureAtlasData instance and cache it to the factory. + * @param rawData - The raw texture atlas data. + * @param textureAtlas - The texture atlas object. + * @param name - Specify a cache name for the instance so that the instance can be obtained through this name. (If not set, use the instance name instead) + * @param scale - Specify a scaling value for the map set. (Default: 1.0) + * @returns TextureAtlasData instance + * @see #getTextureAtlasData() + * @see #addTextureAtlasData() + * @see #removeTextureAtlasData() + * @see dragonBones.TextureAtlasData + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 将原始贴图集数据和贴图集对象解析为 TextureAtlasData 实例,并缓存到工厂中。 + * @param rawData - 原始贴图集数据。 + * @param textureAtlas - 贴图集对象。 + * @param name - 为该实例指定一个缓存名称,以便可以通过此名称获取该实例。 (如果未设置,则使用该实例中的名称) + * @param scale - 为贴图集指定一个缩放值。 (默认: 1.0) + * @returns TextureAtlasData 实例 + * @see #getTextureAtlasData() + * @see #addTextureAtlasData() + * @see #removeTextureAtlasData() + * @see dragonBones.TextureAtlasData + * @version DragonBones 4.5 + * @language zh_CN + */ + parseTextureAtlasData(rawData: any, textureAtlas: any, name?: string | null, scale?: number): TextureAtlasData; + /** + * @private + */ + updateTextureAtlasData(name: string, textureAtlases: Array): void; + /** + * - Get a specific DragonBonesData instance. + * @param name - The DragonBonesData instance cache name. + * @returns DragonBonesData instance + * @see #parseDragonBonesData() + * @see #addDragonBonesData() + * @see #removeDragonBonesData() + * @see dragonBones.DragonBonesData + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 获取特定的 DragonBonesData 实例。 + * @param name - DragonBonesData 实例的缓存名称。 + * @returns DragonBonesData 实例 + * @see #parseDragonBonesData() + * @see #addDragonBonesData() + * @see #removeDragonBonesData() + * @see dragonBones.DragonBonesData + * @version DragonBones 3.0 + * @language zh_CN + */ + getDragonBonesData(name: string): DragonBonesData | null; + /** + * - Cache a DragonBonesData instance to the factory. + * @param data - The DragonBonesData instance. + * @param name - Specify a cache name for the instance so that the instance can be obtained through this name. (if not set, use the instance name instead) + * @see #parseDragonBonesData() + * @see #getDragonBonesData() + * @see #removeDragonBonesData() + * @see dragonBones.DragonBonesData + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 将 DragonBonesData 实例缓存到工厂中。 + * @param data - DragonBonesData 实例。 + * @param name - 为该实例指定一个缓存名称,以便可以通过此名称获取该实例。 (如果未设置,则使用该实例中的名称) + * @see #parseDragonBonesData() + * @see #getDragonBonesData() + * @see #removeDragonBonesData() + * @see dragonBones.DragonBonesData + * @version DragonBones 3.0 + * @language zh_CN + */ + addDragonBonesData(data: DragonBonesData, name?: string | null): void; + /** + * - Remove a DragonBonesData instance. + * @param name - The DragonBonesData instance cache name. + * @param disposeData - Whether to dispose data. (Default: true) + * @see #parseDragonBonesData() + * @see #getDragonBonesData() + * @see #addDragonBonesData() + * @see dragonBones.DragonBonesData + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 移除 DragonBonesData 实例。 + * @param name - DragonBonesData 实例缓存名称。 + * @param disposeData - 是否释放数据。 (默认: true) + * @see #parseDragonBonesData() + * @see #getDragonBonesData() + * @see #addDragonBonesData() + * @see dragonBones.DragonBonesData + * @version DragonBones 3.0 + * @language zh_CN + */ + removeDragonBonesData(name: string, disposeData?: boolean): void; + /** + * - Get a list of specific TextureAtlasData instances. + * @param name - The TextureAtlasData cahce name. + * @see #parseTextureAtlasData() + * @see #addTextureAtlasData() + * @see #removeTextureAtlasData() + * @see dragonBones.TextureAtlasData + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 获取特定的 TextureAtlasData 实例列表。 + * @param name - TextureAtlasData 实例缓存名称。 + * @see #parseTextureAtlasData() + * @see #addTextureAtlasData() + * @see #removeTextureAtlasData() + * @see dragonBones.TextureAtlasData + * @version DragonBones 3.0 + * @language zh_CN + */ + getTextureAtlasData(name: string): Array | null; + /** + * - Cache a TextureAtlasData instance to the factory. + * @param data - The TextureAtlasData instance. + * @param name - Specify a cache name for the instance so that the instance can be obtained through this name. (if not set, use the instance name instead) + * @see #parseTextureAtlasData() + * @see #getTextureAtlasData() + * @see #removeTextureAtlasData() + * @see dragonBones.TextureAtlasData + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 将 TextureAtlasData 实例缓存到工厂中。 + * @param data - TextureAtlasData 实例。 + * @param name - 为该实例指定一个缓存名称,以便可以通过此名称获取该实例。 (如果未设置,则使用该实例中的名称) + * @see #parseTextureAtlasData() + * @see #getTextureAtlasData() + * @see #removeTextureAtlasData() + * @see dragonBones.TextureAtlasData + * @version DragonBones 3.0 + * @language zh_CN + */ + addTextureAtlasData(data: TextureAtlasData, name?: string | null): void; + /** + * - Remove a TextureAtlasData instance. + * @param name - The TextureAtlasData instance cache name. + * @param disposeData - Whether to dispose data. + * @see #parseTextureAtlasData() + * @see #getTextureAtlasData() + * @see #addTextureAtlasData() + * @see dragonBones.TextureAtlasData + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 移除 TextureAtlasData 实例。 + * @param name - TextureAtlasData 实例的缓存名称。 + * @param disposeData - 是否释放数据。 + * @see #parseTextureAtlasData() + * @see #getTextureAtlasData() + * @see #addTextureAtlasData() + * @see dragonBones.TextureAtlasData + * @version DragonBones 3.0 + * @language zh_CN + */ + removeTextureAtlasData(name: string, disposeData?: boolean): void; + /** + * - Get a specific armature data. + * @param name - The armature data name. + * @param dragonBonesName - The cached name for DragonbonesData instance. + * @see dragonBones.ArmatureData + * @version DragonBones 5.1 + * @language en_US + */ + /** + * - 获取特定的骨架数据。 + * @param name - 骨架数据名称。 + * @param dragonBonesName - DragonBonesData 实例的缓存名称。 + * @see dragonBones.ArmatureData + * @version DragonBones 5.1 + * @language zh_CN + */ + getArmatureData(name: string, dragonBonesName?: string): ArmatureData | null; + /** + * - Clear all cached DragonBonesData instances and TextureAtlasData instances. + * @param disposeData - Whether to dispose data. + * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 清除缓存的所有 DragonBonesData 实例和 TextureAtlasData 实例。 + * @param disposeData - 是否释放数据。 + * @version DragonBones 4.5 + * @language zh_CN + */ + clear(disposeData?: boolean): void; + /** + * - Create a armature from cached DragonBonesData instances and TextureAtlasData instances. + * @param armatureName - The armature data name. + * @param dragonBonesName - The cached name of the DragonBonesData instance. (If not set, all DragonBonesData instances are retrieved, and when multiple DragonBonesData instances contain a the same name armature data, it may not be possible to accurately create a specific armature) + * @param skinName - The skin name, you can set a different ArmatureData name to share it's skin data. (If not set, use the default skin data) + * @returns The armature. + * @example + *
+         *     let armature = factory.buildArmature("armatureName", "dragonBonesName");
+         *     armature.clock = factory.clock;
+         * 
+ * @see dragonBones.DragonBonesData + * @see dragonBones.ArmatureData + * @see dragonBones.Armature + * @version DragonBones 3.0 + * @language en_US + */ + /** + * - 通过缓存的 DragonBonesData 实例和 TextureAtlasData 实例创建一个骨架。 + * @param armatureName - 骨架数据名称。 + * @param dragonBonesName - DragonBonesData 实例的缓存名称。 (如果未设置,将检索所有的 DragonBonesData 实例,当多个 DragonBonesData 实例中包含同名的骨架数据时,可能无法准确的创建出特定的骨架) + * @param skinName - 皮肤名称,可以设置一个其他骨架数据名称来共享其皮肤数据(如果未设置,则使用默认的皮肤数据)。 + * @returns 骨架。 + * @example + *
+         *     let armature = factory.buildArmature("armatureName", "dragonBonesName");
+         *     armature.clock = factory.clock;
+         * 
+ * @see dragonBones.DragonBonesData + * @see dragonBones.ArmatureData + * @see dragonBones.Armature + * @version DragonBones 3.0 + * @language zh_CN + */ + buildArmature(armatureName: string, dragonBonesName?: string, skinName?: string, textureAtlasName?: string): Armature | null; + /** + * @private + */ + replaceDisplay(slot: Slot, displayData: DisplayData, displayIndex?: number): void; + /** + * - Replaces the current display data for a particular slot with a specific display data. + * Specify display data with "dragonBonesName/armatureName/slotName/displayName". + * @param dragonBonesName - The DragonBonesData instance cache name. + * @param armatureName - The armature data name. + * @param slotName - The slot data name. + * @param displayName - The display data name. + * @param slot - The slot. + * @param displayIndex - The index of the display data that is replaced. (If it is not set, replaces the current display data) + * @example + *
+         *     let slot = armature.getSlot("weapon");
+         *     factory.replaceSlotDisplay("dragonBonesName", "armatureName", "slotName", "displayName", slot);
+         * 
+ * @version DragonBones 4.5 + * @language en_US + */ + /** + * - 用特定的显示对象数据替换特定插槽当前的显示对象数据。 + * 用 "dragonBonesName/armatureName/slotName/displayName" 指定显示对象数据。 + * @param dragonBonesName - DragonBonesData 实例的缓存名称。 + * @param armatureName - 骨架数据名称。 + * @param slotName - 插槽数据名称。 + * @param displayName - 显示对象数据名称。 + * @param slot - 插槽。 + * @param displayIndex - 被替换的显示对象数据的索引。 (如果未设置,则替换当前的显示对象数据) + * @example + *
+         *     let slot = armature.getSlot("weapon");
+         *     factory.replaceSlotDisplay("dragonBonesName", "armatureName", "slotName", "displayName", slot);
+         * 
+ * @version DragonBones 4.5 + * @language zh_CN + */ + replaceSlotDisplay(dragonBonesName: string, armatureName: string, slotName: string, displayName: string, slot: Slot, displayIndex?: number): boolean; + /** + * @private + */ + replaceSlotDisplayList(dragonBonesName: string | null, armatureName: string, slotName: string, slot: Slot): boolean; + /** + * - Share specific skin data with specific armature. + * @param armature - The armature. + * @param skin - The skin data. + * @param isOverride - Whether it completely override the original skin. (Default: false) + * @param exclude - A list of slot names that do not need to be replace. + * @example + *
+         *     let armatureA = factory.buildArmature("armatureA", "dragonBonesA");
+         *     let armatureDataB = factory.getArmatureData("armatureB", "dragonBonesB");
+         *     if (armatureDataB && armatureDataB.defaultSkin) {
+         *     factory.replaceSkin(armatureA, armatureDataB.defaultSkin, false, ["arm_l", "weapon_l"]);
+         *     }
+         * 
+ * @see dragonBones.Armature + * @see dragonBones.SkinData + * @version DragonBones 5.6 + * @language en_US + */ + /** + * - 将特定的皮肤数据共享给特定的骨架使用。 + * @param armature - 骨架。 + * @param skin - 皮肤数据。 + * @param isOverride - 是否完全覆盖原来的皮肤。 (默认: false) + * @param exclude - 不需要被替换的插槽名称列表。 + * @example + *
+         *     let armatureA = factory.buildArmature("armatureA", "dragonBonesA");
+         *     let armatureDataB = factory.getArmatureData("armatureB", "dragonBonesB");
+         *     if (armatureDataB && armatureDataB.defaultSkin) {
+         *     factory.replaceSkin(armatureA, armatureDataB.defaultSkin, false, ["arm_l", "weapon_l"]);
+         *     }
+         * 
+ * @see dragonBones.Armature + * @see dragonBones.SkinData + * @version DragonBones 5.6 + * @language zh_CN + */ + replaceSkin(armature: Armature, skin: SkinData, isOverride?: boolean, exclude?: Array | null): boolean; + /** + * - Replaces the existing animation data for a specific armature with the animation data for the specific armature data. + * This enables you to make a armature template so that other armature without animations can share it's animations. + * @param armature - The armtaure. + * @param armatureData - The armature data. + * @param isOverride - Whether to completely overwrite the original animation. (Default: false) + * @example + *
+         *     let armatureA = factory.buildArmature("armatureA", "dragonBonesA");
+         *     let armatureDataB = factory.getArmatureData("armatureB", "dragonBonesB");
+         *     if (armatureDataB) {
+         *     factory.replaceAnimation(armatureA, armatureDataB);
+         *     }
+         * 
+ * @see dragonBones.Armature + * @see dragonBones.ArmatureData + * @version DragonBones 5.6 + * @language en_US + */ + /** + * - 用特定骨架数据的动画数据替换特定骨架现有的动画数据。 + * 这样就能实现制作一个骨架动画模板,让其他没有制作动画的骨架共享该动画。 + * @param armature - 骨架。 + * @param armatureData - 骨架数据。 + * @param isOverride - 是否完全覆盖原来的动画。(默认: false)。 + * @example + *
+         *     let armatureA = factory.buildArmature("armatureA", "dragonBonesA");
+         *     let armatureDataB = factory.getArmatureData("armatureB", "dragonBonesB");
+         *     if (armatureDataB) {
+         *     factory.replaceAnimation(armatureA, armatureDataB);
+         *     }
+         * 
+ * @see dragonBones.Armature + * @see dragonBones.ArmatureData + * @version DragonBones 5.6 + * @language zh_CN + */ + replaceAnimation(armature: Armature, armatureData: ArmatureData, isOverride?: boolean): boolean; + /** + * @private + */ + getAllDragonBonesData(): Map; + /** + * @private + */ + getAllTextureAtlasData(): Map>; + /** + * - An Worldclock instance updated by engine. + * @version DragonBones 5.7 + * @language en_US + */ + /** + * - 由引擎驱动的 WorldClock 实例。 + * @version DragonBones 5.7 + * @language zh_CN + */ + readonly clock: WorldClock; + /** + * @private + */ + readonly dragonBones: DragonBones; + /** + * - Deprecated, please refer to {@link #replaceSkin}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #replaceSkin}。 + * @deprecated + * @language zh_CN + */ + changeSkin(armature: Armature, skin: SkinData, exclude?: Array | null): boolean; + /** + * - Deprecated, please refer to {@link #replaceAnimation}. + * @deprecated + * @language en_US + */ + /** + * - 已废弃,请参考 {@link #replaceAnimation}。 + * @deprecated + * @language zh_CN + */ + copyAnimationsToArmature(toArmature: Armature, fromArmatreName: string, fromSkinName?: string, fromDragonBonesDataName?: string, replaceOriginalAnimation?: boolean): boolean; + } + /** + * @internal + * @private + */ + class BuildArmaturePackage { + dataName: string; + textureAtlasName: string; + data: DragonBonesData; + armature: ArmatureData; + skin: SkinData | null; + } +} + +declare namespace sp.spine { + class Animation { + name: string; + timelines: Array; + timelineIds: Array; + duration: number; + constructor(name: string, timelines: Array, duration: number); + hasTimeline(id: number): boolean; + apply(skeleton: Skeleton, lastTime: number, time: number, loop: boolean, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + static binarySearch(values: ArrayLike, target: number, step?: number): number; + static linearSearch(values: ArrayLike, target: number, step: number): number; + } + interface Timeline { + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + getPropertyId(): number; + } + enum MixBlend { + setup = 0, + first = 1, + replace = 2, + add = 3 + } + enum MixDirection { + mixIn = 0, + mixOut = 1 + } + enum TimelineType { + rotate = 0, + translate = 1, + scale = 2, + shear = 3, + attachment = 4, + color = 5, + deform = 6, + event = 7, + drawOrder = 8, + ikConstraint = 9, + transformConstraint = 10, + pathConstraintPosition = 11, + pathConstraintSpacing = 12, + pathConstraintMix = 13, + twoColor = 14 + } + abstract class CurveTimeline implements Timeline { + static LINEAR: number; + static STEPPED: number; + static BEZIER: number; + static BEZIER_SIZE: number; + private curves; + abstract getPropertyId(): number; + constructor(frameCount: number); + getFrameCount(): number; + setLinear(frameIndex: number): void; + setStepped(frameIndex: number): void; + getCurveType(frameIndex: number): number; + setCurve(frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + getCurvePercent(frameIndex: number, percent: number): number; + abstract apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class RotateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATION: number; + static ROTATION: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, degrees: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class TranslateTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_X: number; + static PREV_Y: number; + static X: number; + static Y: number; + boneIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, x: number, y: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class ScaleTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class ShearTimeline extends TranslateTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class ColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static R: number; + static G: number; + static B: number; + static A: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class TwoColorTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_R: number; + static PREV_G: number; + static PREV_B: number; + static PREV_A: number; + static PREV_R2: number; + static PREV_G2: number; + static PREV_B2: number; + static R: number; + static G: number; + static B: number; + static A: number; + static R2: number; + static G2: number; + static B2: number; + slotIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, r: number, g: number, b: number, a: number, r2: number, g2: number, b2: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class AttachmentTimeline implements Timeline { + slotIndex: number; + frames: ArrayLike; + attachmentNames: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, attachmentName: string): void; + apply(skeleton: Skeleton, lastTime: number, time: number, events: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class DeformTimeline extends CurveTimeline { + slotIndex: number; + attachment: VertexAttachment; + frames: ArrayLike; + frameVertices: Array>; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, vertices: ArrayLike): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class EventTimeline implements Timeline { + frames: ArrayLike; + events: Array; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, event: Event): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class DrawOrderTimeline implements Timeline { + frames: ArrayLike; + drawOrders: Array>; + constructor(frameCount: number); + getPropertyId(): number; + getFrameCount(): number; + setFrame(frameIndex: number, time: number, drawOrder: Array): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class IkConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_MIX: number; + static PREV_SOFTNESS: number; + static PREV_BEND_DIRECTION: number; + static PREV_COMPRESS: number; + static PREV_STRETCH: number; + static MIX: number; + static SOFTNESS: number; + static BEND_DIRECTION: number; + static COMPRESS: number; + static STRETCH: number; + ikConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, mix: number, softness: number, bendDirection: number, compress: boolean, stretch: boolean): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class TransformConstraintTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static PREV_SCALE: number; + static PREV_SHEAR: number; + static ROTATE: number; + static TRANSLATE: number; + static SCALE: number; + static SHEAR: number; + transformConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number, scaleMix: number, shearMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class PathConstraintPositionTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_VALUE: number; + static VALUE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, value: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class PathConstraintSpacingTimeline extends PathConstraintPositionTimeline { + constructor(frameCount: number); + getPropertyId(): number; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } + class PathConstraintMixTimeline extends CurveTimeline { + static ENTRIES: number; + static PREV_TIME: number; + static PREV_ROTATE: number; + static PREV_TRANSLATE: number; + static ROTATE: number; + static TRANSLATE: number; + pathConstraintIndex: number; + frames: ArrayLike; + constructor(frameCount: number); + getPropertyId(): number; + setFrame(frameIndex: number, time: number, rotateMix: number, translateMix: number): void; + apply(skeleton: Skeleton, lastTime: number, time: number, firedEvents: Array, alpha: number, blend: MixBlend, direction: MixDirection): void; + } +} +declare namespace sp.spine { + class AnimationState { + static emptyAnimation: Animation; + static SUBSEQUENT: number; + static FIRST: number; + static HOLD: number; + static HOLD_MIX: number; + static NOT_LAST: number; + data: AnimationStateData; + tracks: TrackEntry[]; + timeScale: number; + events: Event[]; + listeners: AnimationStateListener[]; + queue: EventQueue; + propertyIDs: IntSet; + animationsChanged: boolean; + trackEntryPool: Pool; + constructor(data: AnimationStateData); + update(delta: number): void; + updateMixingFrom(to: TrackEntry, delta: number): boolean; + apply(skeleton: Skeleton): boolean; + applyMixingFrom(to: TrackEntry, skeleton: Skeleton, blend: MixBlend): number; + applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, blend: MixBlend, timelinesRotation: Array, i: number, firstFrame: boolean): void; + queueEvents(entry: TrackEntry, animationTime: number): void; + clearTracks(): void; + clearTrack(trackIndex: number): void; + setCurrent(index: number, current: TrackEntry, interrupt: boolean): void; + setAnimation(trackIndex: number, animationName: string, loop: boolean): TrackEntry; + setAnimationWith(trackIndex: number, animation: Animation, loop: boolean): TrackEntry; + addAnimation(trackIndex: number, animationName: string, loop: boolean, delay: number): TrackEntry; + addAnimationWith(trackIndex: number, animation: Animation, loop: boolean, delay: number): TrackEntry; + setEmptyAnimation(trackIndex: number, mixDuration: number): TrackEntry; + addEmptyAnimation(trackIndex: number, mixDuration: number, delay: number): TrackEntry; + setEmptyAnimations(mixDuration: number): void; + expandToIndex(index: number): TrackEntry; + trackEntry(trackIndex: number, animation: Animation, loop: boolean, last: TrackEntry): TrackEntry; + disposeNext(entry: TrackEntry): void; + _animationsChanged(): void; + computeHold(entry: TrackEntry): void; + computeNotLast(entry: TrackEntry): void; + getCurrent(trackIndex: number): TrackEntry; + addListener(listener: AnimationStateListener): void; + removeListener(listener: AnimationStateListener): void; + clearListeners(): void; + clearListenerNotifications(): void; + } + class TrackEntry { + animation: Animation; + next: TrackEntry; + mixingFrom: TrackEntry; + mixingTo: TrackEntry; + listener: AnimationStateListener; + trackIndex: number; + loop: boolean; + holdPrevious: boolean; + eventThreshold: number; + attachmentThreshold: number; + drawOrderThreshold: number; + animationStart: number; + animationEnd: number; + animationLast: number; + nextAnimationLast: number; + delay: number; + trackTime: number; + trackLast: number; + nextTrackLast: number; + trackEnd: number; + timeScale: number; + alpha: number; + mixTime: number; + mixDuration: number; + interruptAlpha: number; + totalAlpha: number; + mixBlend: MixBlend; + timelineMode: number[]; + timelineHoldMix: TrackEntry[]; + timelinesRotation: number[]; + reset(): void; + getAnimationTime(): number; + setAnimationLast(animationLast: number): void; + isComplete(): boolean; + resetRotationDirections(): void; + } + class EventQueue { + objects: Array; + drainDisabled: boolean; + animState: AnimationState; + constructor(animState: AnimationState); + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + drain(): void; + clear(): void; + } + enum EventType { + start = 0, + interrupt = 1, + end = 2, + dispose = 3, + complete = 4, + event = 5 + } + interface AnimationStateListener { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } + abstract class AnimationStateAdapter implements AnimationStateListener { + start(entry: TrackEntry): void; + interrupt(entry: TrackEntry): void; + end(entry: TrackEntry): void; + dispose(entry: TrackEntry): void; + complete(entry: TrackEntry): void; + event(entry: TrackEntry, event: Event): void; + } +} +declare namespace sp.spine { + class AnimationStateData { + skeletonData: SkeletonData; + animationToMixTime: Map; + defaultMix: number; + constructor(skeletonData: SkeletonData); + setMix(fromName: string, toName: string, duration: number): void; + setMixWith(from: Animation, to: Animation, duration: number): void; + getMix(from: Animation, to: Animation): number; + } +} +declare namespace sp.spine { + class AssetManager implements Disposable { + private pathPrefix; + private textureLoader; + private assets; + private errors; + private toLoad; + private loaded; + constructor(textureLoader: (image: HTMLImageElement) => any, pathPrefix?: string); + private static downloadText; + private static downloadBinary; + loadBinary(path: string, success?: (path: string, binary: Uint8Array) => void, error?: (path: string, error: string) => void): void; + loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, error: string) => void): void; + loadTexture(path: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureData(path: string, data: string, success?: (path: string, image: HTMLImageElement) => void, error?: (path: string, error: string) => void): void; + loadTextureAtlas(path: string, success?: (path: string, atlas: TextureAtlas) => void, error?: (path: string, error: string) => void): void; + get(path: string): any; + remove(path: string): void; + removeAll(): void; + isLoadingComplete(): boolean; + getToLoad(): number; + getLoaded(): number; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } +} +declare namespace sp.spine { + class AtlasAttachmentLoader implements AttachmentLoader { + atlas: TextureAtlas; + constructor(atlas: TextureAtlas); + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } +} +declare namespace sp.spine { + enum BlendMode { + Normal = 0, + Additive = 1, + Multiply = 2, + Screen = 3 + } +} +declare namespace sp.spine { + class Bone implements Updatable { + data: BoneData; + skeleton: Skeleton; + parent: Bone; + children: Bone[]; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + ax: number; + ay: number; + arotation: number; + ascaleX: number; + ascaleY: number; + ashearX: number; + ashearY: number; + appliedValid: boolean; + a: number; + b: number; + c: number; + d: number; + worldY: number; + worldX: number; + sorted: boolean; + active: boolean; + constructor(data: BoneData, skeleton: Skeleton, parent: Bone); + isActive(): boolean; + update(): void; + updateWorldTransform(): void; + updateWorldTransformWith(x: number, y: number, rotation: number, scaleX: number, scaleY: number, shearX: number, shearY: number): void; + setToSetupPose(): void; + getWorldRotationX(): number; + getWorldRotationY(): number; + getWorldScaleX(): number; + getWorldScaleY(): number; + updateAppliedTransform(): void; + worldToLocal(world: Vector2): Vector2; + localToWorld(local: Vector2): Vector2; + worldToLocalRotation(worldRotation: number): number; + localToWorldRotation(localRotation: number): number; + rotateWorld(degrees: number): void; + } +} +declare namespace sp.spine { + class BoneData { + index: number; + name: string; + parent: BoneData; + length: number; + x: number; + y: number; + rotation: number; + scaleX: number; + scaleY: number; + shearX: number; + shearY: number; + transformMode: TransformMode; + skinRequired: boolean; + color: Color; + constructor(index: number, name: string, parent: BoneData); + } + enum TransformMode { + Normal = 0, + OnlyTranslation = 1, + NoRotationOrReflection = 2, + NoScale = 3, + NoScaleOrReflection = 4 + } +} +declare namespace sp.spine { + abstract class ConstraintData { + name: string; + order: number; + skinRequired: boolean; + constructor(name: string, order: number, skinRequired: boolean); + } +} +declare namespace sp.spine { + class Event { + data: EventData; + intValue: number; + floatValue: number; + stringValue: string; + time: number; + volume: number; + balance: number; + constructor(time: number, data: EventData); + } +} +declare namespace sp.spine { + class EventData { + name: string; + intValue: number; + floatValue: number; + stringValue: string; + audioPath: string; + volume: number; + balance: number; + constructor(name: string); + } +} +declare namespace sp.spine { + class IkConstraint implements Updatable { + data: IkConstraintData; + bones: Array; + target: Bone; + bendDirection: number; + compress: boolean; + stretch: boolean; + mix: number; + softness: number; + active: boolean; + constructor(data: IkConstraintData, skeleton: Skeleton); + isActive(): boolean; + apply(): void; + update(): void; + apply1(bone: Bone, targetX: number, targetY: number, compress: boolean, stretch: boolean, uniform: boolean, alpha: number): void; + apply2(parent: Bone, child: Bone, targetX: number, targetY: number, bendDir: number, stretch: boolean, softness: number, alpha: number): void; + } +} +declare namespace sp.spine { + class IkConstraintData extends ConstraintData { + bones: BoneData[]; + target: BoneData; + bendDirection: number; + compress: boolean; + stretch: boolean; + uniform: boolean; + mix: number; + softness: number; + constructor(name: string); + } +} +declare namespace sp.spine { + class PathConstraint implements Updatable { + static NONE: number; + static BEFORE: number; + static AFTER: number; + static epsilon: number; + data: PathConstraintData; + bones: Array; + target: Slot; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + spaces: number[]; + positions: number[]; + world: number[]; + curves: number[]; + lengths: number[]; + segments: number[]; + active: boolean; + constructor(data: PathConstraintData, skeleton: Skeleton); + isActive(): boolean; + apply(): void; + update(): void; + computeWorldPositions(path: PathAttachment, spacesCount: number, tangents: boolean, percentPosition: boolean, percentSpacing: boolean): number[]; + addBeforePosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addAfterPosition(p: number, temp: Array, i: number, out: Array, o: number): void; + addCurvePosition(p: number, x1: number, y1: number, cx1: number, cy1: number, cx2: number, cy2: number, x2: number, y2: number, out: Array, o: number, tangents: boolean): void; + } +} +declare namespace sp.spine { + class PathConstraintData extends ConstraintData { + bones: BoneData[]; + target: SlotData; + positionMode: PositionMode; + spacingMode: SpacingMode; + rotateMode: RotateMode; + offsetRotation: number; + position: number; + spacing: number; + rotateMix: number; + translateMix: number; + constructor(name: string); + } + enum PositionMode { + Fixed = 0, + Percent = 1 + } + enum SpacingMode { + Length = 0, + Fixed = 1, + Percent = 2 + } + enum RotateMode { + Tangent = 0, + Chain = 1, + ChainScale = 2 + } +} +declare namespace sp.spine { + class SharedAssetManager implements Disposable { + private pathPrefix; + private clientAssets; + private queuedAssets; + private rawAssets; + private errors; + constructor(pathPrefix?: string); + private queueAsset; + loadText(clientId: string, path: string): void; + loadJson(clientId: string, path: string): void; + loadTexture(clientId: string, textureLoader: (image: HTMLImageElement) => any, path: string): void; + get(clientId: string, path: string): any; + private updateClientAssets; + isLoadingComplete(clientId: string): boolean; + dispose(): void; + hasErrors(): boolean; + getErrors(): Map; + } +} +declare namespace sp.spine { + class Skeleton { + data: SkeletonData; + bones: Array; + slots: Array; + drawOrder: Array; + ikConstraints: Array; + transformConstraints: Array; + pathConstraints: Array; + _updateCache: Updatable[]; + updateCacheReset: Updatable[]; + skin: Skin; + color: Color; + time: number; + scaleX: number; + scaleY: number; + x: number; + y: number; + constructor(data: SkeletonData); + updateCache(): void; + sortIkConstraint(constraint: IkConstraint): void; + sortPathConstraint(constraint: PathConstraint): void; + sortTransformConstraint(constraint: TransformConstraint): void; + sortPathConstraintAttachment(skin: Skin, slotIndex: number, slotBone: Bone): void; + sortPathConstraintAttachmentWith(attachment: Attachment, slotBone: Bone): void; + sortBone(bone: Bone): void; + sortReset(bones: Array): void; + updateWorldTransform(): void; + setToSetupPose(): void; + setBonesToSetupPose(): void; + setSlotsToSetupPose(): void; + getRootBone(): Bone; + findBone(boneName: string): Bone; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): Slot; + findSlotIndex(slotName: string): number; + setSkinByName(skinName: string): void; + setSkin(newSkin: Skin): void; + getAttachmentByName(slotName: string, attachmentName: string): Attachment; + getAttachment(slotIndex: number, attachmentName: string): Attachment; + setAttachment(slotName: string, attachmentName: string): void; + findIkConstraint(constraintName: string): IkConstraint; + findTransformConstraint(constraintName: string): TransformConstraint; + findPathConstraint(constraintName: string): PathConstraint; + getBounds(offset: Vector2, size: Vector2, temp?: Array): void; + update(delta: number): void; + } +} +declare namespace sp.spine { + class SkeletonBinary { + static AttachmentTypeValues: number[]; + static TransformModeValues: TransformMode[]; + static PositionModeValues: PositionMode[]; + static SpacingModeValues: SpacingMode[]; + static RotateModeValues: RotateMode[]; + static BlendModeValues: BlendMode[]; + static BONE_ROTATE: number; + static BONE_TRANSLATE: number; + static BONE_SCALE: number; + static BONE_SHEAR: number; + static SLOT_ATTACHMENT: number; + static SLOT_COLOR: number; + static SLOT_TWO_COLOR: number; + static PATH_POSITION: number; + static PATH_SPACING: number; + static PATH_MIX: number; + static CURVE_LINEAR: number; + static CURVE_STEPPED: number; + static CURVE_BEZIER: number; + scale: number; + attachmentLoader: AttachmentLoader; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(binary: Uint8Array): SkeletonData; + private readSkin; + private readAttachment; + private readVertices; + private readFloatArray; + private readShortArray; + private readAnimation; + private readCurve; + setCurve(timeline: CurveTimeline, frameIndex: number, cx1: number, cy1: number, cx2: number, cy2: number): void; + } +} +declare namespace sp.spine { + class SkeletonBounds { + minX: number; + minY: number; + maxX: number; + maxY: number; + boundingBoxes: BoundingBoxAttachment[]; + polygons: ArrayLike[]; + private polygonPool; + update(skeleton: Skeleton, updateAabb: boolean): void; + aabbCompute(): void; + aabbContainsPoint(x: number, y: number): boolean; + aabbIntersectsSegment(x1: number, y1: number, x2: number, y2: number): boolean; + aabbIntersectsSkeleton(bounds: SkeletonBounds): boolean; + containsPoint(x: number, y: number): BoundingBoxAttachment; + containsPointPolygon(polygon: ArrayLike, x: number, y: number): boolean; + intersectsSegment(x1: number, y1: number, x2: number, y2: number): BoundingBoxAttachment; + intersectsSegmentPolygon(polygon: ArrayLike, x1: number, y1: number, x2: number, y2: number): boolean; + getPolygon(boundingBox: BoundingBoxAttachment): ArrayLike; + getWidth(): number; + getHeight(): number; + } +} +declare namespace sp.spine { + class SkeletonClipping { + private triangulator; + private clippingPolygon; + private clipOutput; + clippedVertices: number[]; + clippedTriangles: number[]; + private scratch; + private clipAttachment; + private clippingPolygons; + clipStart(slot: Slot, clip: ClippingAttachment): number; + clipEndWithSlot(slot: Slot): void; + clipEnd(): void; + isClipping(): boolean; + clipTriangles(vertices: ArrayLike, verticesLength: number, triangles: ArrayLike, trianglesLength: number, uvs: ArrayLike, light: Color, dark: Color, twoColor: boolean): void; + clip(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, clippingArea: Array, output: Array): boolean; + static makeClockwise(polygon: ArrayLike): void; + } +} +declare namespace sp.spine { + class SkeletonData { + name: string; + bones: BoneData[]; + slots: SlotData[]; + skins: Skin[]; + defaultSkin: Skin; + events: EventData[]; + animations: Animation[]; + ikConstraints: IkConstraintData[]; + transformConstraints: TransformConstraintData[]; + pathConstraints: PathConstraintData[]; + x: number; + y: number; + width: number; + height: number; + version: string; + hash: string; + fps: number; + imagesPath: string; + audioPath: string; + findBone(boneName: string): BoneData; + findBoneIndex(boneName: string): number; + findSlot(slotName: string): SlotData; + findSlotIndex(slotName: string): number; + findSkin(skinName: string): Skin; + findEvent(eventDataName: string): EventData; + findAnimation(animationName: string): Animation; + findIkConstraint(constraintName: string): IkConstraintData; + findTransformConstraint(constraintName: string): TransformConstraintData; + findPathConstraint(constraintName: string): PathConstraintData; + findPathConstraintIndex(pathConstraintName: string): number; + } +} +declare namespace sp.spine { + class SkeletonJson { + attachmentLoader: AttachmentLoader; + scale: number; + private linkedMeshes; + constructor(attachmentLoader: AttachmentLoader); + readSkeletonData(json: string | any): SkeletonData; + readAttachment(map: any, skin: Skin, slotIndex: number, name: string, skeletonData: SkeletonData): Attachment; + readVertices(map: any, attachment: VertexAttachment, verticesLength: number): void; + readAnimation(map: any, name: string, skeletonData: SkeletonData): void; + readCurve(map: any, timeline: CurveTimeline, frameIndex: number): void; + getValue(map: any, prop: string, defaultValue: any): any; + static blendModeFromString(str: string): BlendMode; + static positionModeFromString(str: string): PositionMode; + static spacingModeFromString(str: string): SpacingMode; + static rotateModeFromString(str: string): RotateMode; + static transformModeFromString(str: string): TransformMode; + } +} +declare namespace sp.spine { + class SkinEntry { + slotIndex: number; + name: string; + attachment: Attachment; + constructor(slotIndex: number, name: string, attachment: Attachment); + } + class Skin { + name: string; + attachments: Map[]; + bones: BoneData[]; + constraints: ConstraintData[]; + constructor(name: string); + setAttachment(slotIndex: number, name: string, attachment: Attachment): void; + addSkin(skin: Skin): void; + copySkin(skin: Skin): void; + getAttachment(slotIndex: number, name: string): Attachment; + removeAttachment(slotIndex: number, name: string): void; + getAttachments(): Array; + getAttachmentsForSlot(slotIndex: number, attachments: Array): void; + clear(): void; + attachAll(skeleton: Skeleton, oldSkin: Skin): void; + } +} +declare namespace sp.spine { + class Slot { + data: SlotData; + bone: Bone; + color: Color; + darkColor: Color; + private attachment; + private attachmentTime; + deform: number[]; + constructor(data: SlotData, bone: Bone); + getSkeleton(): Skeleton; + getAttachment(): Attachment; + setAttachment(attachment: Attachment): void; + setAttachmentTime(time: number): void; + getAttachmentTime(): number; + setToSetupPose(): void; + } +} +declare namespace sp.spine { + class SlotData { + index: number; + name: string; + boneData: BoneData; + color: Color; + darkColor: Color; + attachmentName: string; + blendMode: BlendMode; + constructor(index: number, name: string, boneData: BoneData); + } +} +declare namespace sp.spine { + abstract class Texture { + protected _image: HTMLImageElement; + constructor(image: HTMLImageElement); + getImage(): HTMLImageElement; + abstract setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + abstract setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + abstract dispose(): void; + static filterFromString(text: string): TextureFilter; + static wrapFromString(text: string): TextureWrap; + } + enum TextureFilter { + Nearest = 9728, + Linear = 9729, + MipMap = 9987, + MipMapNearestNearest = 9984, + MipMapLinearNearest = 9985, + MipMapNearestLinear = 9986, + MipMapLinearLinear = 9987 + } + enum TextureWrap { + MirroredRepeat = 33648, + ClampToEdge = 33071, + Repeat = 10497 + } + class TextureRegion { + renderObject: any; + u: number; + v: number; + u2: number; + v2: number; + width: number; + height: number; + rotate: boolean; + offsetX: number; + offsetY: number; + originalWidth: number; + originalHeight: number; + } + class FakeTexture extends Texture { + setFilters(minFilter: TextureFilter, magFilter: TextureFilter): void; + setWraps(uWrap: TextureWrap, vWrap: TextureWrap): void; + dispose(): void; + } +} +declare namespace sp.spine { + class TextureAtlas implements Disposable { + pages: TextureAtlasPage[]; + regions: TextureAtlasRegion[]; + constructor(atlasText: string, textureLoader: (path: string) => any); + private load; + findRegion(name: string): TextureAtlasRegion; + dispose(): void; + } + class TextureAtlasPage { + name: string; + minFilter: TextureFilter; + magFilter: TextureFilter; + uWrap: TextureWrap; + vWrap: TextureWrap; + texture: Texture; + width: number; + height: number; + } + class TextureAtlasRegion extends TextureRegion { + page: TextureAtlasPage; + name: string; + x: number; + y: number; + index: number; + rotate: boolean; + degrees: number; + texture: Texture; + } +} +declare namespace sp.spine { + class TransformConstraint implements Updatable { + data: TransformConstraintData; + bones: Array; + target: Bone; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + temp: Vector2; + active: boolean; + constructor(data: TransformConstraintData, skeleton: Skeleton); + isActive(): boolean; + apply(): void; + update(): void; + applyAbsoluteWorld(): void; + applyRelativeWorld(): void; + applyAbsoluteLocal(): void; + applyRelativeLocal(): void; + } +} +declare namespace sp.spine { + class TransformConstraintData extends ConstraintData { + bones: BoneData[]; + target: BoneData; + rotateMix: number; + translateMix: number; + scaleMix: number; + shearMix: number; + offsetRotation: number; + offsetX: number; + offsetY: number; + offsetScaleX: number; + offsetScaleY: number; + offsetShearY: number; + relative: boolean; + local: boolean; + constructor(name: string); + } +} +declare namespace sp.spine { + class Triangulator { + private convexPolygons; + private convexPolygonsIndices; + private indicesArray; + private isConcaveArray; + private triangles; + private polygonPool; + private polygonIndicesPool; + triangulate(verticesArray: ArrayLike): Array; + decompose(verticesArray: Array, triangles: Array): Array>; + private static isConcave; + private static positiveArea; + private static winding; + } +} +declare namespace sp.spine { + interface Updatable { + update(): void; + isActive(): boolean; + } +} +declare namespace sp.spine { + interface Map { + [key: string]: T; + } + class IntSet { + array: number[]; + add(value: number): boolean; + contains(value: number): boolean; + remove(value: number): void; + clear(): void; + } + interface Disposable { + dispose(): void; + } + interface Restorable { + restore(): void; + } + class Color { + r: number; + g: number; + b: number; + a: number; + static WHITE: Color; + static RED: Color; + static GREEN: Color; + static BLUE: Color; + static MAGENTA: Color; + constructor(r?: number, g?: number, b?: number, a?: number); + set(r: number, g: number, b: number, a: number): this; + setFromColor(c: Color): this; + setFromString(hex: string): this; + add(r: number, g: number, b: number, a: number): this; + clamp(): this; + static rgba8888ToColor(color: Color, value: number): void; + static rgb888ToColor(color: Color, value: number): void; + } + class MathUtils { + static PI: number; + static PI2: number; + static radiansToDegrees: number; + static radDeg: number; + static degreesToRadians: number; + static degRad: number; + static clamp(value: number, min: number, max: number): number; + static cosDeg(degrees: number): number; + static sinDeg(degrees: number): number; + static signum(value: number): number; + static toInt(x: number): number; + static cbrt(x: number): number; + static randomTriangular(min: number, max: number): number; + static randomTriangularWith(min: number, max: number, mode: number): number; + } + abstract class Interpolation { + protected abstract applyInternal(a: number): number; + apply(start: number, end: number, a: number): number; + } + class Pow extends Interpolation { + protected power: number; + constructor(power: number); + applyInternal(a: number): number; + } + class PowOut extends Pow { + constructor(power: number); + applyInternal(a: number): number; + } + class Utils { + static SUPPORTS_TYPED_ARRAYS: boolean; + static arrayCopy(source: ArrayLike, sourceStart: number, dest: ArrayLike, destStart: number, numElements: number): void; + static setArraySize(array: Array, size: number, value?: any): Array; + static ensureArrayCapacity(array: Array, size: number, value?: any): Array; + static newArray(size: number, defaultValue: T): Array; + static newFloatArray(size: number): ArrayLike; + static newShortArray(size: number): ArrayLike; + static toFloatArray(array: Array): number[] | Float32Array; + static toSinglePrecision(value: number): number; + static webkit602BugfixHelper(alpha: number, blend: MixBlend): void; + static contains(array: Array, element: T, identity?: boolean): boolean; + } + class DebugUtils { + static logBones(skeleton: Skeleton): void; + } + class Pool { + private items; + private instantiator; + constructor(instantiator: () => T); + obtain(): T; + free(item: T): void; + freeAll(items: ArrayLike): void; + clear(): void; + } + class Vector2 { + x: number; + y: number; + constructor(x?: number, y?: number); + set(x: number, y: number): Vector2; + length(): number; + normalize(): this; + } + class TimeKeeper { + maxDelta: number; + framesPerSecond: number; + delta: number; + totalTime: number; + private lastTime; + private frameCount; + private frameTime; + update(): void; + } + interface ArrayLike { + length: number; + [n: number]: T; + } + class WindowedMean { + values: Array; + addedValues: number; + lastValue: number; + mean: number; + dirty: boolean; + constructor(windowSize?: number); + hasEnoughData(): boolean; + addValue(value: number): void; + getMean(): number; + } +} +declare namespace sp.spine { + interface VertexEffect { + begin(skeleton: Skeleton): void; + transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; + end(): void; + } +} +interface Math { + fround(n: number): number; +} +declare namespace sp.spine { + abstract class Attachment { + name: string; + constructor(name: string); + abstract copy(): Attachment; + } + abstract class VertexAttachment extends Attachment { + private static nextID; + id: number; + bones: Array; + vertices: ArrayLike; + worldVerticesLength: number; + deformAttachment: VertexAttachment; + constructor(name: string); + computeWorldVertices(slot: Slot, start: number, count: number, worldVertices: ArrayLike, offset: number, stride: number): void; + copyTo(attachment: VertexAttachment): void; + } +} +declare namespace sp.spine { + interface AttachmentLoader { + newRegionAttachment(skin: Skin, name: string, path: string): RegionAttachment; + newMeshAttachment(skin: Skin, name: string, path: string): MeshAttachment; + newBoundingBoxAttachment(skin: Skin, name: string): BoundingBoxAttachment; + newPathAttachment(skin: Skin, name: string): PathAttachment; + newPointAttachment(skin: Skin, name: string): PointAttachment; + newClippingAttachment(skin: Skin, name: string): ClippingAttachment; + } +} +declare namespace sp.spine { + enum AttachmentType { + Region = 0, + BoundingBox = 1, + Mesh = 2, + LinkedMesh = 3, + Path = 4, + Point = 5, + Clipping = 6 + } +} +declare namespace sp.spine { + class BoundingBoxAttachment extends VertexAttachment { + color: Color; + constructor(name: string); + copy(): Attachment; + } +} +declare namespace sp.spine { + class ClippingAttachment extends VertexAttachment { + endSlot: SlotData; + color: Color; + constructor(name: string); + copy(): Attachment; + } +} +declare namespace sp.spine { + class MeshAttachment extends VertexAttachment { + region: TextureRegion; + path: string; + regionUVs: ArrayLike; + uvs: ArrayLike; + triangles: Array; + color: Color; + width: number; + height: number; + hullLength: number; + edges: Array; + private parentMesh; + tempColor: Color; + constructor(name: string); + updateUVs(): void; + getParentMesh(): MeshAttachment; + setParentMesh(parentMesh: MeshAttachment): void; + copy(): Attachment; + newLinkedMesh(): MeshAttachment; + } +} +declare namespace sp.spine { + class PathAttachment extends VertexAttachment { + lengths: Array; + closed: boolean; + constantSpeed: boolean; + color: Color; + constructor(name: string); + copy(): Attachment; + } +} +declare namespace sp.spine { + class PointAttachment extends VertexAttachment { + x: number; + y: number; + rotation: number; + color: Color; + constructor(name: string); + computeWorldPosition(bone: Bone, point: Vector2): Vector2; + computeWorldRotation(bone: Bone): number; + copy(): Attachment; + } +} +declare namespace sp.spine { + class RegionAttachment extends Attachment { + static OX1: number; + static OY1: number; + static OX2: number; + static OY2: number; + static OX3: number; + static OY3: number; + static OX4: number; + static OY4: number; + static X1: number; + static Y1: number; + static C1R: number; + static C1G: number; + static C1B: number; + static C1A: number; + static U1: number; + static V1: number; + static X2: number; + static Y2: number; + static C2R: number; + static C2G: number; + static C2B: number; + static C2A: number; + static U2: number; + static V2: number; + static X3: number; + static Y3: number; + static C3R: number; + static C3G: number; + static C3B: number; + static C3A: number; + static U3: number; + static V3: number; + static X4: number; + static Y4: number; + static C4R: number; + static C4G: number; + static C4B: number; + static C4A: number; + static U4: number; + static V4: number; + x: number; + y: number; + scaleX: number; + scaleY: number; + rotation: number; + width: number; + height: number; + color: Color; + path: string; + rendererObject: any; + region: TextureRegion; + offset: ArrayLike; + uvs: ArrayLike; + tempColor: Color; + constructor(name: string); + updateOffset(): void; + setRegion(region: TextureRegion): void; + computeWorldVertices(bone: Bone, worldVertices: ArrayLike, offset: number, stride: number): void; + copy(): Attachment; + } +} +declare namespace sp.spine { + class JitterEffect implements VertexEffect { + jitterX: number; + jitterY: number; + constructor(jitterX: number, jitterY: number); + begin(skeleton: Skeleton): void; + transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; + end(): void; + } +} +declare namespace sp.spine { + class SwirlEffect implements VertexEffect { + static interpolation: PowOut; + centerX: number; + centerY: number; + radius: number; + angle: number; + private worldX; + private worldY; + constructor(radius: number); + begin(skeleton: Skeleton): void; + transform(position: Vector2, uv: Vector2, light: Color, dark: Color): void; + end(): void; + } +} + +/** + * API for jsb module + * Author: haroel + * Homepage: https://github.com/haroel/creatorexDTS + */ +declare namespace jsb{ + export module reflection{ + /** + * https://docs.cocos.com/creator/manual/zh/advanced-topics/java-reflection.html + * call OBJC/Java static methods + * + * @param className + * @param methodName + * @param methodSignature + * @param parameters + */ + export function callStaticMethod (className: string, methodName: string, methodSignature: string, ...parameters:any): any; + } + /** + * 下载任务对象 + */ + export type DownloaderTask = { requestURL: string, storagePath: string, identifier: string }; + + /** + * Http file downloader for jsb! + */ + export class Downloader{ + /** + * create a download task + * @param requestURL + * @param storagePath + * @param identifier + */ + createDownloadFileTask (requestURL:string, storagePath:string, identifier?:string): DownloaderTask; + + setOnFileTaskSuccess (onSucceed: (task: DownloaderTask) => void): void; + + setOnTaskProgress (onProgress: (task: DownloaderTask, bytesReceived: number, totalBytesReceived: number, totalBytesExpected: number) => void): void; + + setOnTaskError (onError: (task: DownloaderTask, errorCode: number, errorCodeInternal: number, errorStr: string) => void): void; + + } + + export interface ManifestAsset { + md5: string; + path: string; + compressed: boolean; + size: number; + downloadState: number; + } + + export class Manifest { + constructor (manifestUrl: string); + constructor (content: string, manifestRoot: string); + parseFile (manifestUrl: string): void; + parseJSONString (content: string, manifestRoot: string): void; + + getManifestRoot (): string; + getManifestFileUrl (): string; + getVersionFileUrl (): string; + getSearchPaths (): [string]; + getVersion (): string; + getPackageUrl (): boolean; + + setUpdating (isUpdating: boolean): void; + isUpdating (): boolean; + isVersionLoaded (): boolean; + isLoaded (): boolean; + } + + export class EventAssetsManager { + // EventCode + static ERROR_NO_LOCAL_MANIFEST: number; + static ERROR_DOWNLOAD_MANIFEST: number; + static ERROR_PARSE_MANIFEST: number; + static NEW_VERSION_FOUND: number; + static ALREADY_UP_TO_DATE: number; + static UPDATE_PROGRESSION: number; + static ASSET_UPDATED: number; + static ERROR_UPDATING: number; + static UPDATE_FINISHED: number; + static UPDATE_FAILED: number; + static ERROR_DECOMPRESS: number; + + constructor (eventName: string, manager: AssetsManager, eventCode: number, + assetId?: string, message?: string, curleCode?: number, curlmCode?: number); + getAssetsManagerEx (): AssetsManager; + isResuming (): boolean; + + getDownloadedFiles (): number; + getDownloadedBytes (): number; + getTotalFiles (): number; + getTotalBytes (): number; + getPercent (): number; + getPercentByFile (): number; + + getEventCode (): number; + getMessage (): string; + getAssetId (): string; + getCURLECode (): number; + getCURLMCode (): number; + } + + export module AssetsManager { + export enum State { + UNINITED, + UNCHECKED, + PREDOWNLOAD_VERSION, + DOWNLOADING_VERSION, + VERSION_LOADED, + PREDOWNLOAD_MANIFEST, + DOWNLOADING_MANIFEST, + MANIFEST_LOADED, + NEED_UPDATE, + READY_TO_UPDATE, + UPDATING, + UNZIPPING, + UP_TO_DATE, + FAIL_TO_UPDATE, + } + } + + export class AssetsManager { + constructor (manifestUrl: string, storagePath: string, versionCompareHandle?: (versionA: string, versionB: string) => number); + static create (manifestUrl: string, storagePath: string): AssetsManager; + + getState (): AssetsManager.State; + getStoragePath (): string + getMaxConcurrentTask (): number; + // setMaxConcurrentTask (max: number): void; // actually not supported + + checkUpdate (): void; + prepareUpdate (): void; + update (): void; + isResuming (): boolean; + + getDownloadedFiles (): number; + getDownloadedBytes (): number; + getTotalFiles (): number; + getTotalBytes (): number; + downloadFailedAssets (): void; + + getLocalManifest (): Manifest; + loadLocalManifest (manifestUrl: string): boolean; + loadLocalManifest (localManifest: Manifest, storagePath: string): boolean; + getRemoteManifest (): Manifest; + loadRemoteManifest (remoteManifest: Manifest): boolean; + + /** + * Setup your own version compare handler, versionA and B is versions in string. + * if the return value greater than 0, versionA is greater than B, + * if the return value equals 0, versionA equals to B, + * if the return value smaller than 0, versionA is smaller than B. + */ + setVersionCompareHandle (versionCompareHandle?: (versionA: string, versionB: string) => number): void; + /** + * Setup the verification callback, Return true if the verification passed, otherwise return false + */ + setVerifyCallback (verifyCallback: (path: string, asset: ManifestAsset) => boolean): void; + setEventCallback (eventCallback: (event: EventAssetsManager) => void): void; + } + + /** + * FileUtils Helper class to handle file operations. + */ + export module fileUtils{ + /** + * Checks whether the path is an absolute path. + * + * @note On Android, if the parameter passed in is relative to "@assets/", this method will treat it as an absolute path. + * Also on Blackberry, path starts with "app/native/Resources/" is treated as an absolute path. + * + * @param path The path that needs to be checked. + * @return True if it's an absolute path, false if not. + */ + export function isAbsolutePath (path:string):boolean; + /** Returns the fullpath for a given filename. + + First it will try to get a new filename from the "filenameLookup" dictionary. + If a new filename can't be found on the dictionary, it will use the original filename. + Then it will try to obtain the full path of the filename using the FileUtils search rules: resolutions, and search paths. + The file search is based on the array element order of search paths and resolution directories. + + For instance: + + We set two elements("/mnt/sdcard/", "internal_dir/") to search paths vector by setSearchPaths, + and set three elements("resources-ipadhd/", "resources-ipad/", "resources-iphonehd") + to resolutions vector by setSearchResolutionsOrder. The "internal_dir" is relative to "Resources/". + + If we have a file named 'sprite.png', the mapping in fileLookup dictionary contains `key: sprite.png -> value: sprite.pvr.gz`. + Firstly, it will replace 'sprite.png' with 'sprite.pvr.gz', then searching the file sprite.pvr.gz as follows: + + /mnt/sdcard/resources-ipadhd/sprite.pvr.gz (if not found, search next) + /mnt/sdcard/resources-ipad/sprite.pvr.gz (if not found, search next) + /mnt/sdcard/resources-iphonehd/sprite.pvr.gz (if not found, search next) + /mnt/sdcard/sprite.pvr.gz (if not found, search next) + internal_dir/resources-ipadhd/sprite.pvr.gz (if not found, search next) + internal_dir/resources-ipad/sprite.pvr.gz (if not found, search next) + internal_dir/resources-iphonehd/sprite.pvr.gz (if not found, search next) + internal_dir/sprite.pvr.gz (if not found, return "sprite.png") + + If the filename contains relative path like "gamescene/uilayer/sprite.png", + and the mapping in fileLookup dictionary contains `key: gamescene/uilayer/sprite.png -> value: gamescene/uilayer/sprite.pvr.gz`. + The file search order will be: + + /mnt/sdcard/gamescene/uilayer/resources-ipadhd/sprite.pvr.gz (if not found, search next) + /mnt/sdcard/gamescene/uilayer/resources-ipad/sprite.pvr.gz (if not found, search next) + /mnt/sdcard/gamescene/uilayer/resources-iphonehd/sprite.pvr.gz (if not found, search next) + /mnt/sdcard/gamescene/uilayer/sprite.pvr.gz (if not found, search next) + internal_dir/gamescene/uilayer/resources-ipadhd/sprite.pvr.gz (if not found, search next) + internal_dir/gamescene/uilayer/resources-ipad/sprite.pvr.gz (if not found, search next) + internal_dir/gamescene/uilayer/resources-iphonehd/sprite.pvr.gz (if not found, search next) + internal_dir/gamescene/uilayer/sprite.pvr.gz (if not found, return "gamescene/uilayer/sprite.png") + + If the new file can't be found on the file system, it will return the parameter filename directly. + + This method was added to simplify multiplatform support. Whether you are using cocos2d-js or any cross-compilation toolchain like StellaSDK or Apportable, + you might need to load different resources for a given file in the different platforms. + + @since v2.1 + */ + export function fullPathForFilename (filename:string):string; + /** + * Gets string from a file. + */ + export function getStringFromFile (filename:string):string; + /** + * Removes a file. + * + * @param filepath The full path of the file, it must be an absolute path. + * @return True if the file have been removed successfully, false if not. + */ + export function removeFile (filepath:string):boolean; + /** + * Checks whether the path is a directory. + * + * @param dirPath The path of the directory, it could be a relative or an absolute path. + * @return True if the directory exists, false if not. + */ + export function isDirectoryExist (dirPath:string):boolean; + /** + * Normalize: remove . and .. + * @param filepath + */ + export function normalizePath (filepath:string):string; + /** + * Get default resource root path. + */ + export function getDefaultResourceRootPath ():string; + /** + * Loads the filenameLookup dictionary from the contents of a filename. + * + * @note The plist file name should follow the format below: + * + * @code + * + * + * + * + * filenames + * + * sounds/click.wav + * sounds/click.caf + * sounds/endgame.wav + * sounds/endgame.caf + * sounds/gem-0.wav + * sounds/gem-0.caf + * + * metadata + * + * version + * 1 + * + * + * + * @endcode + * @param filename The plist file name. + * + @since v2.1 + * @js loadFilenameLookup + * @lua loadFilenameLookup + */ + export function loadFilenameLookup (filepath:string):void; + /** Checks whether to pop up a message box when failed to load an image. + * @return True if pop up a message box when failed to load an image, false if not. + */ + export function isPopupNotify ():boolean; + /** + * Sets whether to pop-up a message box when failed to load an image. + */ + export function setPopupNotify (notify:boolean):void; + + // Converts the contents of a file to a ValueVector. + // This method is used internally. + export function getValueVectorFromFile (filepath:string):Array; + /** + * Gets the array of search paths. + * + * @return The array of search paths which may contain the prefix of default resource root path. + * @note In best practise, getter function should return the value of setter function passes in. + * But since we should not break the compatibility, we keep using the old logic. + * Therefore, If you want to get the original search paths, please call 'getOriginalSearchPaths()' instead. + * @see fullPathForFilename(const char*). + * @lua NA + */ + export function getSearchPaths ():Array; + /** + * + * @param filepath + */ + export function getFileDir (filepath:string):string; + /** + * write a ValueMap into a plist file + * + *@param dict the ValueMap want to save (key,value) + *@param fullPath The full path to the file you want to save a string + *@return bool + */ + export function writeToFile ( valueMap:any ):boolean; + /** + * Gets the original search path array set by 'setSearchPaths' or 'addSearchPath'. + * @return The array of the original search paths + */ + export function getOriginalSearchPaths ():Array; + /** + * List all files in a directory. + * + * @param dirPath The path of the directory, it could be a relative or an absolute path. + * @return File paths in a string vector + */ + export function listFiles (filepath:string):Array; + /** + * Converts the contents of a file to a ValueMap. + * @param filename The filename of the file to gets content. + * @return ValueMap of the file contents. + * @note This method is used internally. + */ + export function getValueMapFromFile (filepath:string):any; + /** + * Retrieve the file size. + * + * @note If a relative path was passed in, it will be inserted a default root path at the beginning. + * @param filepath The path of the file, it could be a relative or absolute path. + * @return The file size. + */ + export function getFileSize (filepath:string):number; + + /** Converts the contents of a file to a ValueMap. + * This method is used internally. + */ + export function getValueMapFromData (filedata:string,filesize:number):any; + /** + * Removes a directory. + * + * @param dirPath The full path of the directory, it must be an absolute path. + * @return True if the directory have been removed successfully, false if not. + */ + export function removeDirectory (dirPath:string):boolean; + /** + * Sets the array of search paths. + * + * You can use this array to modify the search path of the resources. + * If you want to use "themes" or search resources in the "cache", you can do it easily by adding new entries in this array. + * + * @note This method could access relative path and absolute path. + * If the relative path was passed to the vector, FileUtils will add the default resource directory before the relative path. + * For instance: + * On Android, the default resource root path is "@assets/". + * If "/mnt/sdcard/" and "resources-large" were set to the search paths vector, + * "resources-large" will be converted to "@assets/resources-large" since it was a relative path. + * + * @param searchPaths The array contains search paths. + * @see fullPathForFilename(const char*) + * @since v2.1 + * In js:var setSearchPaths(var jsval); + * @lua NA + */ + export function setSearchPaths ( searchPath:Array):void; + /** + * write a string into a file + * + * @param dataStr the string want to save + * @param fullPath The full path to the file you want to save a string + * @return bool True if write success + */ + export function writeStringToFile (dataStr:string,fullPath:string):boolean; + /** + * Sets the array that contains the search order of the resources. + * + * @param searchResolutionsOrder The source array that contains the search order of the resources. + * @see getSearchResolutionsOrder(), fullPathForFilename(const char*). + * @since v2.1 + * In js:var setSearchResolutionsOrder(var jsval) + * @lua NA + */ + export function setSearchResolutionsOrder (searchResolutionsOrder:Array):void; + /** + * Append search order of the resources. + * + * @see setSearchResolutionsOrder(), fullPathForFilename(). + * @since v2.1 + */ + export function addSearchResolutionsOrder (order:string,front:boolean):void; + /** + * Add search path. + * + * @since v2.1 + */ + export function addSearchPath (path:string,front:boolean):void; + /** + * write ValueVector into a plist file + * + *@param vecData the ValueVector want to save + *@param fullPath The full path to the file you want to save a string + *@return bool + */ + export function writeValueVectorToFile (vecData:Array,fullPath:string):boolean; + /** + * Checks whether a file exists. + * + * @note If a relative path was passed in, it will be inserted a default root path at the beginning. + * @param filename The path of the file, it could be a relative or absolute path. + * @return True if the file exists, false if not. + */ + export function isFileExist (filename:string):boolean; + /**©∫ + * Purges full path caches. + */ + export function purgeCachedEntries ():void; + /** + * Gets full path from a file name and the path of the relative file. + * @param filename The file name. + * @param relativeFile The path of the relative file. + * @return The full path. + * e.g. filename: hello.png, pszRelativeFile: /User/path1/path2/hello.plist + * Return: /User/path1/path2/hello.pvr (If there a a key(hello.png)-value(hello.pvr) in FilenameLookup dictionary. ) + * + */ + export function fullPathFromRelativeFile (filename:string,relativeFile:string):string; + /** + * Windows fopen can't support UTF-8 filename + * Need convert all parameters fopen and other 3rd-party libs + * + * @param filenameUtf8 std::string name file for conversion from utf-8 + * @return std::string ansi filename in current locale + */ + export function getSuitableFOpen (filenameUtf8:string):string; + /** + * write ValueMap into a plist file + * + *@param dict the ValueMap want to save + *@param fullPath The full path to the file you want to save a string + *@return bool + */ + export function writeValueMapToFile (dict:any,fullPath:string):string; + /** + * Gets filename extension is a suffix (separated from the base filename by a dot) in lower case. + * Examples of filename extensions are .png, .jpeg, .exe, .dmg and .txt. + * @param filePath The path of the file, it could be a relative or absolute path. + * @return suffix for filename in lower case or empty if a dot not found. + */ + export function getFileExtension (filePath:string):string; + /** + * Sets writable path. + */ + export function setWritablePath (writablePath:string):void; + /** + * Set default resource root path. + */ + export function setDefaultResourceRootPath (filepath:string):void; + + /** + * Gets the array that contains the search order of the resources. + * + * @see setSearchResolutionsOrder(const std::vector&), fullPathForFilename(const char*). + * @since v2.1 + * @lua NA + */ + export function getSearchResolutionsOrder ():Array; + /** + * Creates a directory. + * + * @param dirPath The path of the directory, it must be an absolute path. + * @return True if the directory have been created successfully, false if not. + */ + export function createDirectory (dirPath:string):string; + /** + * List all files recursively in a directory. + * + * @param dirPath The path of the directory, it could be a relative or an absolute path. + * @return File paths in a string vector + */ + export function listFilesRecursively (dirPath:string, files:Array):void; + /** + * Gets the writable path. + * @return The path that can be write/read a file in + */ + export function getWritablePath ():string; + } +} + +/** Running in the editor. */ +declare const CC_EDITOR: boolean; +/** Preview in browser or simulator. */ +declare const CC_PREVIEW: boolean; +/** Running in the editor or preview. */ +declare const CC_DEV: boolean; +/** Running in the editor or preview, or build in debug mode. */ +declare const CC_DEBUG: boolean; +/** Running in published project. */ +declare const CC_BUILD: boolean; +/** Running in native platforms (mobile app, desktop app, or simulator). */ +declare const CC_JSB: boolean; +/** Running in runtime environments. */ +declare const CC_RUNTIME: boolean; +/** Running in the engine's unit test. */ +declare const CC_TEST: boolean; +/** Running in the WeChat Mini Game. */ +declare const CC_WECHATGAME: boolean; diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000..80c2563 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "es6", + "module": "commonjs", + "experimentalDecorators": true + }, + "exclude": [ + "node_modules", + ".vscode", + "library", + "local", + "settings", + "temp" + ] +} \ No newline at end of file diff --git a/library/imports/00/0004d1cf-a0ad-47d8-ab17-34d3db9d35a3.json b/library/imports/00/0004d1cf-a0ad-47d8-ab17-34d3db9d35a3.json new file mode 100644 index 0000000..ee16172 --- /dev/null +++ b/library/imports/00/0004d1cf-a0ad-47d8-ab17-34d3db9d35a3.json @@ -0,0 +1,409 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "slider", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 1, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "slider", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + } + ], + "_active": true, + "_components": [ + { + "__id__": 9 + } + ], + "_prefab": { + "__id__": 10 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 300, + "height": 20 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 300, + "height": 20 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "31d8962d-babb-4ec7-be19-8e9f54a4ea99" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "0004d1cf-a0ad-47d8-ab17-34d3db9d35a3" + }, + "fileId": "f43c4gNvOtBE41OTztiOT6T", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Handle", + "_objFlags": 512, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 6 + }, + { + "__id__": 7 + } + ], + "_prefab": { + "__id__": 8 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_type": 1, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [], + "_N$interactable": true, + "_N$enableAutoGrayEffect": true, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$normalSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_N$pressedSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "pressedSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_N$hoverSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "hoverSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_N$disabledSprite": { + "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" + }, + "_N$target": { + "__id__": 5 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "0004d1cf-a0ad-47d8-ab17-34d3db9d35a3" + }, + "fileId": "93f4b6UTvtD0Iy5hi3tLIn2", + "sync": false + }, + { + "__type__": "cc.Slider", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "direction": 0, + "slideEvents": [], + "_N$handle": { + "__id__": 7 + }, + "_N$progress": 0.5, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "0004d1cf-a0ad-47d8-ab17-34d3db9d35a3" + }, + "fileId": "8ac42iRpDlK6pemd22ZO6x/", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/01/018d5411-05b3-492b-821b-ba3edf7060f7.json b/library/imports/01/018d5411-05b3-492b-821b-ba3edf7060f7.json new file mode 100644 index 0000000..3941453 --- /dev/null +++ b/library/imports/01/018d5411-05b3-492b-821b-ba3edf7060f7.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "texture12", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 767, + 1281, + 44, + 52 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 114, + 114 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/02/0275e94c-56a7-410f-bd1a-fc7483f7d14a.json b/library/imports/02/0275e94c-56a7-410f-bd1a-fc7483f7d14a.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/02/0275e94c-56a7-410f-bd1a-fc7483f7d14a.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/02/0275e94c-56a7-410f-bd1a-fc7483f7d14a.png b/library/imports/02/0275e94c-56a7-410f-bd1a-fc7483f7d14a.png new file mode 100644 index 0000000000000000000000000000000000000000..fa6376e6316ae9bd38595b550b5fdf78a6fa6d6b GIT binary patch literal 82 zcmeAS@N?(olHy`uVBq!ia0vp^Od!n23?w}&=BEQG<^Z1%*Z=?jFFzuE0?6g^ba4#f bxSkAB$il#=a7i~GD9YgJ>gTe~DWM4fnP3tm literal 0 HcmV?d00001 diff --git a/library/imports/02/0291c134-b3da-4098-b7b5-e397edbe947f.json b/library/imports/02/0291c134-b3da-4098-b7b5-e397edbe947f.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/02/0291c134-b3da-4098-b7b5-e397edbe947f.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/02/0291c134-b3da-4098-b7b5-e397edbe947f.png b/library/imports/02/0291c134-b3da-4098-b7b5-e397edbe947f.png new file mode 100644 index 0000000000000000000000000000000000000000..147354dce28c14b6f1d47373c43fac085b5bafdc GIT binary patch literal 1047 zcmaJ=OK1~O6detyR7(p*!4GAeLaWfsC*Njh+9sK#4VY5XVB@AZnR#ud>C78vUd^Acy7j{Vc#D7-+DHE2TzAlG>rz~2+E5FAVMT>BK2sf+{WA7}`>G%qED=Zc7)X96)3Sj4E1?`t*F6A{9AE4S5r6LXUu~ z(l=#*!Kwa~G?kMAGS%Hhc3M0ZPyrH2OC8rt-U?DBT^_IPV}>G25R?m2+osZq0Wty& zKzeDfQ(`#}=?~DHm-BRR?WBw4+zjhxIJc8?@oa$Sykz;Ka5O_6;gdqF91HJ)R2Ctf zXPA6GPv_kVQcC6HXWszPOPVJCx2x z3?L$Cq#zuxRB<2+5j3+IbunJd@!;;qSLuo=d_*T3$$a)g`5URJvnZ>oI{G~Db4?&{kQ1|Q)UQHTqn zl=VLItN3xh+u@jNYTP8aHi!DMfqZe`)z5U#eAmUT*5c;dd;Nt%!L#(eSS)^cy1xE( z^~$y1;_e@}n&)SUH#gw&rJ3*=A#-iP_UPkda$D01F?0HQud{h+Ve!!P-h<%FqsFnd z{LR-xPc}Bby<0KTXY1u*Sy;S_W)|j#mzsJm?;>(zp8Kt5J|DH8YCPI6JPe4uo< zXFfCb6rVEc1f?$jzQutdeJ#tLg}_||B!#SVME4GuWsgfrg* ST3m3&jc= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MiniGameManager = void 0; +var MiniGameSdk_1 = require("./MiniGameSdk"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var EWechatAD; +(function (EWechatAD) { + EWechatAD["CUMSTOM_01"] = "adunit-f7c2417eb2c2e473"; +})(EWechatAD || (EWechatAD = {})); +var MiniGameManager = /** @class */ (function (_super) { + __extends(MiniGameManager, _super); + function MiniGameManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.entranceView = null; + return _this; + } + MiniGameManager_1 = MiniGameManager; + Object.defineProperty(MiniGameManager, "instance", { + get: function () { + if (!MiniGameManager_1._instance) { + MiniGameManager_1._instance = new MiniGameManager_1(); + } + return MiniGameManager_1._instance; + }, + enumerable: false, + configurable: true + }); + MiniGameManager.prototype.start = function () { + // 禁用游戏入口视图 + // this.entranceView.active = false; + // MiniGameSdk.API.getUserProfile(this.setUserId); + // cc.fx.GameTool.setUserInfo(""); + this.onGetLoginCode(); + // 尝试获取游戏入口按钮,如果存在则直接返回,不进行后续操作 + // let buttonEntrance = this.node.getChildByName('Btns')?.getChildByName('Button_EntranceView'); + // if (buttonEntrance) { + // return; + // } + // 如果是字节跳动小游戏环境,检查侧边栏是否存在 + if (MiniGameSdk_1.MiniGameSdk.isBytedance()) { + //抖音环境,检测侧边栏存在 + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.checkSideBar(function (success) { + // 根据侧边栏存在性激活或禁用游戏入口按钮 + // buttonEntrance.active = success; + }); + } + else { + // 非抖音小游戏环境,直接激活游戏入口按钮 + // 非抖音环境,正常显示按钮 + // buttonEntrance.active = true; + } + // 设置监听器,以处理来自侧边栏的交互事件 + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.listenFromSidebar(function (success) { + // 如果交互成功,显示奖励提示 + if (success) { + MiniGameSdk_1.MiniGameSdk.API.showToast('侧边栏奖励', 5); + } + }); + }; + MiniGameManager.prototype.update = function (deltaTime) { + }; + /** + * 弹出广告横幅。 + * 此方法用于加载并显示广告横幅。它首先加载指定广告位的横幅广告,然后显示广告。 + * 加载广告和显示广告是通过MiniGameSdk.AdvertManager的实例方法来实现的。 + * + * @remarks + * 此方法提供了两种显示横幅广告的方式: + * 1. 默认方式:调用showBanner方法显示广告,系统会自动选择显示位置。 + * 2. 指定位置方式:可以通过传入额外的参数来指定广告显示在屏幕的顶部或底部,或者通过坐标指定显示位置。 + * + * 示例代码中注释掉了两种显示广告的具体方法,可以根据实际需求选择使用。 + */ + MiniGameManager.prototype.onShowBanner = function () { + // 加载指定广告位的横幅广告。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadBanner('adunit-4e7ef467e3eaab51'); + // 默认方式显示横幅广告。 + // 方法1:默认调用 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showBanner(); + // 示例:指定屏幕底部正中显示横幅广告。 + // 方法2:指定屏幕顶部或底部正中 + // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', MiniGameSdk.EAdBannerLocation.BOTTOM); + // 示例:通过坐标指定位置显示横幅广告。 + // 方法2:指定坐标 + // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', { top: 10, left: 10 }); + }; + /** + * 隐藏广告横幅的函数。 + * + * 该函数调用MiniGameSdk.AdvertManager实例的方法,用于隐藏广告横幅。 + * 当需要暂时停止展示广告或用户主动请求隐藏广告时,可以调用此函数。 + * + * @remarks + * 此函数不接受任何参数,也不返回任何值。 + * 它单纯地触发广告横幅的隐藏操作,具体实现依赖于AdvertManager的实现。 + */ + MiniGameManager.prototype.onHideBanner = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideBanner(); + }; + /** + * 显示插屏广告的函数。 + * + * 此函数调用MiniGameSdk.AdvertManager实例的方法,以显示一个指定的插屏广告。 + * 它使用了硬编码的广告单元标识符,这意味着它专为特定的广告位设计。 + * 在实际应用中,可能需要根据应用的配置或用户的特定条件来动态选择广告单元标识符。 + */ + MiniGameManager.prototype.onShowInterstitial = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showInterstitial('adunit-eadd67851d3050ad'); + }; + /** + * 调用广告管理器加载并展示自定义广告。 + * 此方法首先通过广告管理器的实例加载指定的自定义广告单元,然后展示这个自定义广告。 + * 加载和展示广告是广告管理系统中的常见操作,这里通过两步分别完成加载和展示的过程, + * 以确保广告在展示前正确且充分地被加载。 + */ + MiniGameManager.prototype.onShowCustom = function () { + // 加载指定的自定义广告单元。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadCustom(EWechatAD.CUMSTOM_01); + // 展示已加载的自定义广告。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showCustom(EWechatAD.CUMSTOM_01); + }; + /** + * 隐藏自定义广告。 + * + * 本函数调用MiniGameSdk.AdvertManager.instance.hideCustom()来隐藏自定义广告。 + * 这是对接广告管理系统的一部分,用于控制广告的显示与隐藏。 + * 在需要隐藏自定义广告的场景下,调用此函数即可实现相应功能。 + */ + MiniGameManager.prototype.onHideCustom = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideCustom(EWechatAD.CUMSTOM_01); + }; + /** + * 触发显示视频广告的函数。 + * 通过调用MiniGameSdk.AdvertManager.instance.showVideo方法,显示一个视频广告,并根据用户观看广告的情况执行相应的逻辑。 + * + * @remarks + * 此函数首先传入一个广告单元ID,用于标识要显示的视频广告。然后传入一个回调函数,该回调函数在用户观看广告后被调用,无论用户是完成了观看、拒绝了观看还是观看过程中发生了错误。 + * 回调函数接收两个参数:一个是用户观看广告的结果,另一个是用户观看的广告数量。根据观看结果的不同,显示不同的提示信息。 + */ + MiniGameManager.prototype.onShowVideo = function () { + // 广告单元ID,用于标识要显示的视频广告 + // 广告单元ID的样例 + //抖音形如: 1re3nfqkmy81m4m8ge + //微信形如: adunit-a7718f6e195e42fe + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showVideo('1re3nfqkmy81m4m8ge', function (res, count) { + // 输出用户观看的广告数量 + console.log('用户看的视频广告个数是:', count); + // 根据用户观看广告的结果,执行不同的逻辑 + switch (res) { + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ACCEPT: + // 用户完成了广告观看,显示奖励提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('用户看完广告,可以奖励'); + break; + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.REJECT: + // 用户拒绝了广告观看,显示不奖励提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('用户拒绝掉广告,不奖励'); + break; + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ERROR: + // 广告播放发生错误,显示错误提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('播放广告发生错误,不奖励'); + break; + default: + // 其他情况,不作处理 + break; + } + }); + }; + /** + * 引导用户分享应用给朋友。 + * + * 通过调用MiniGameSdk的API分享功能,向用户的朋友圈发送邀请,邀请他们一起玩游戏。 + * 这是一个重要的推广手段,可以增加应用的曝光度和用户量。 + * + * @remarks + * 此方法中调用的API依赖于特定的小游戏平台,因此在不同的平台上可能需要不同的实现。 + */ + MiniGameManager.prototype.onShare = function () { + MiniGameSdk_1.MiniGameSdk.API.shareAppToFriends('来玩游戏吧'); + }; + /** + * 显示一个toast提示。 + * + * 通过调用MiniGameSdk的API方法来显示一个简短的提示信息。toast是一种轻量级的提示方式,用于在界面上短暂地展示一些信息,不影响用户操作。 + * 这里使用了固定的提示文本 '这是一个toast',在实际应用中,可以根据需要动态设置提示文本。 + */ + MiniGameManager.prototype.onShowToast = function () { + MiniGameSdk_1.MiniGameSdk.API.showToast('这是一个toast'); + }; + /** + * 触发设备振动功能。 + * + * 该方法用于调用MiniGameSdk提供的API,以实现设备的振动功能。当需要提醒用户或提供触觉反馈时,可以调用此方法。 + * 例如,在游戏或应用中,当用户完成特定操作或发生特定事件时,可以通过振动给予用户反馈。 + * + * @remarks + * 此方法无参数,也不返回任何值。 + */ + MiniGameManager.prototype.onVirbrate = function () { + MiniGameSdk_1.MiniGameSdk.API.vibrate(); + }; + /** + * 重新启动游戏实例。 + * + * 此函数调用MiniGameSdk中的API重新启动游戏。重新启动操作可能是为了初始化游戏环境、重置游戏状态或处理其他需要重启的场景。 + * 调用此函数后,游戏将会重新开始,当前的游戏状态将会被清除。 + * + * @remarks + * 此函数不接受任何参数。 + * + * @returns 无返回值。 + */ + MiniGameManager.prototype.onReboot = function () { + MiniGameSdk_1.MiniGameSdk.API.reboot(); + }; + /** + * 当前函数用于在迷你游戏中实现退出功能。 + * 它调用了MiniGameSdk提供的API方法来触发退出操作。 + * 该方法通常在需要结束当前迷你游戏或返回到上一级菜单时被调用。 + */ + MiniGameManager.prototype.onExit = function () { + MiniGameSdk_1.MiniGameSdk.API.exit(); + }; + /** + * 显示分享菜单。 + * + * 通过调用MiniGameSdk的API方法,触发显示分享菜单的操作。此函数旨在提供一个统一的入口, + * 以便在需要时轻松调用分享功能,而无需直接与具体的SDK接口交互。 + * + * @remarks + * 此方法不接受任何参数,也不返回任何值。 + */ + MiniGameManager.prototype.onShowShareMenu = function () { + MiniGameSdk_1.MiniGameSdk.API.showShareMenu(); + }; + /** + * 导航到指定的小游戏。 + * + * 本函数用于触发导航到一个特定的小游戏。这需要提供目标小游戏的ID, + * 以便系统能够正确地将用户重定向到目标小游戏。 + * + * 注意:这里的'xxx'是占位符,实际使用时需要替换为具体的小游戏ID。 + */ + MiniGameManager.prototype.onNavigate = function () { + MiniGameSdk_1.MiniGameSdk.API.navigateTo('xxx'); // xxx替换为你的小游戏id + }; + /** + * 激活字节跳动入口视图。 + * + * 此方法用于将字节跳动入口视图设置为活跃状态。当需要在用户界面中显示字节跳动的入口时, + * 可以调用此方法来激活相应的视图元素,使其对用户可见。 + */ + MiniGameManager.prototype.onBytedanceEntranceView = function () { + // this.entranceView.active = true; + }; + /** + * 请求登录代码 + * + * 本函数用于触发小程序的登录流程,获取微信或头条等第三方平台的登录代码。 + * 这些代码可以用于后续的用户身份验证和数据同步流程。 + */ + MiniGameManager.prototype.onGetLoginCode = function () { + var _this = this; + // 调用MiniGameSdk的API登录方法,传入一个回调函数处理登录结果 + MiniGameSdk_1.MiniGameSdk.API.login(function (code, anonymousCode) { + // 打印微信或头条的登录代码 + console.log('Wechat Or Bytedance Code:', code); + // 打印头条的匿名登录代码 + // console.log('Bytedance Anonymous Code:', anonymousCode); + if (code) { + cc.fx.GameTool.getUserId(code, function (data) { return _this.setUserId(data); }); + } + }); + }; + MiniGameManager.prototype.setUserId = function (data) { + cc.fx.GameConfig.GM_INFO.userId = data.data.userId; + MiniGameSdk_1.MiniGameSdk.API.getUserInfo(this.setUserInfo); + }; + MiniGameManager.prototype.setUserInfo = function (data) { + console.log("获取到的用户信息", data.userInfo); + var useData = { + "gameId": cc.fx.GameConfig.GM_INFO.gameId, + "userId": cc.fx.GameConfig.GM_INFO.userId, + "nickName": data.userInfo.nickName, + "pic": data.userInfo.avatarUrl + }; + console.log("即将上传的用户信息:", cc.fx.GameConfig.GM_INFO.userId, data.userInfo.nickName, data.userInfo.avatarUrl); + console.log("Post数据:", useData); + cc.fx.HttpUtil.setUserInfo(useData, function (res) { + console.log("上传成功:", res); + }); + }; + /** + * 创建并显示游戏圈按钮 + * + * 本函数通过调用MiniGameSdk的GameClub实例方法,实现游戏俱乐部的创建和显示。 + * 它首先配置俱乐部的图标类型和位置大小,然后创建俱乐部,最后显示俱乐部。 + * 这样做是为了在小游戏内创建并展示一个游戏俱乐部的图标,供玩家加入或互动。 + */ + MiniGameManager.prototype.onCreateClub = function () { + // 配置俱乐部图标为绿色,设置图标的位置为顶部200像素,左侧0像素 + MiniGameSdk_1.MiniGameSdk.GameClub.instance.create(MiniGameSdk_1.MiniGameSdk.EGameClubIcon.GREEN, { top: 200, left: 0 }, { width: 50, height: 50 }); + // 显示游戏俱乐部图标 + MiniGameSdk_1.MiniGameSdk.GameClub.instance.show(); + }; + var MiniGameManager_1; + __decorate([ + property(cc.Node) + ], MiniGameManager.prototype, "entranceView", void 0); + MiniGameManager = MiniGameManager_1 = __decorate([ + ccclass + ], MiniGameManager); + return MiniGameManager; +}(cc.Component)); +exports.MiniGameManager = MiniGameManager; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/0d/0d272a57-5428-450e-a8b9-1574c3d89951.js.map b/library/imports/0d/0d272a57-5428-450e-a8b9-1574c3d89951.js.map new file mode 100644 index 0000000..26ac13c --- /dev/null +++ b/library/imports/0d/0d272a57-5428-450e-a8b9-1574c3d89951.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\Sdk\\MiniGameManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\r\nimport { MiniGameSdk } from \"./MiniGameSdk\";\r\nconst { ccclass, property } = cc._decorator;\r\nenum EWechatAD {\r\n CUMSTOM_01 = 'adunit-f7c2417eb2c2e473'\r\n}\r\n\r\n@ccclass\r\nexport class MiniGameManager extends cc.Component {\r\n\r\n @property(cc.Node)\r\n entranceView: cc.Node = null;\r\n /**\r\n * 开始游戏前的初始化操作。\r\n * 主要负责检查并处理游戏入口按钮的激活状态,以及在特定环境下设置侧边栏的监听器。\r\n * \r\n * @remarks\r\n * 此方法首先将游戏入口视图设为非激活状态,以准备进行后续的检查和设置。\r\n * 如果当前环境是抖音小游戏,会检查是否存在侧边栏,并根据检查结果激活或禁用游戏入口按钮。\r\n * 对于非抖音小游戏环境,直接激活游戏入口按钮。\r\n * 此外,无论环境如何,都会设置一个监听器,以处理来自侧边栏的事件,如成功触发时显示奖励提示。\r\n */\r\n private _id:any;\r\n private _userData:any;\r\n\r\n private static _instance: MiniGameManager;\r\n static get instance(): MiniGameManager {\r\n if (!MiniGameManager._instance) {\r\n MiniGameManager._instance = new MiniGameManager();\r\n }\r\n return MiniGameManager._instance;\r\n }\r\n\r\n start() {\r\n // 禁用游戏入口视图\r\n // this.entranceView.active = false;\r\n // MiniGameSdk.API.getUserProfile(this.setUserId);\r\n // cc.fx.GameTool.setUserInfo(\"\");\r\n this.onGetLoginCode();\r\n // 尝试获取游戏入口按钮,如果存在则直接返回,不进行后续操作\r\n // let buttonEntrance = this.node.getChildByName('Btns')?.getChildByName('Button_EntranceView');\r\n // if (buttonEntrance) {\r\n // return;\r\n // }\r\n\r\n // 如果是字节跳动小游戏环境,检查侧边栏是否存在\r\n\r\n if (MiniGameSdk.isBytedance()) {\r\n //抖音环境,检测侧边栏存在\r\n MiniGameSdk.BytedanceSidebar.checkSideBar((success: boolean) => {\r\n // 根据侧边栏存在性激活或禁用游戏入口按钮\r\n // buttonEntrance.active = success;\r\n });\r\n } else {\r\n // 非抖音小游戏环境,直接激活游戏入口按钮\r\n // 非抖音环境,正常显示按钮\r\n // buttonEntrance.active = true;\r\n }\r\n\r\n // 设置监听器,以处理来自侧边栏的交互事件\r\n MiniGameSdk.BytedanceSidebar.listenFromSidebar((success: boolean) => {\r\n // 如果交互成功,显示奖励提示\r\n if (success) {\r\n MiniGameSdk.API.showToast('侧边栏奖励', 5);\r\n }\r\n });\r\n }\r\n\r\n update(deltaTime: number) {\r\n\r\n }\r\n\r\n /**\r\n * 弹出广告横幅。\r\n * 此方法用于加载并显示广告横幅。它首先加载指定广告位的横幅广告,然后显示广告。\r\n * 加载广告和显示广告是通过MiniGameSdk.AdvertManager的实例方法来实现的。\r\n * \r\n * @remarks\r\n * 此方法提供了两种显示横幅广告的方式:\r\n * 1. 默认方式:调用showBanner方法显示广告,系统会自动选择显示位置。\r\n * 2. 指定位置方式:可以通过传入额外的参数来指定广告显示在屏幕的顶部或底部,或者通过坐标指定显示位置。\r\n * \r\n * 示例代码中注释掉了两种显示广告的具体方法,可以根据实际需求选择使用。\r\n */\r\n onShowBanner() {\r\n // 加载指定广告位的横幅广告。\r\n MiniGameSdk.AdvertManager.instance.loadBanner('adunit-4e7ef467e3eaab51');\r\n\r\n // 默认方式显示横幅广告。\r\n // 方法1:默认调用\r\n MiniGameSdk.AdvertManager.instance.showBanner();\r\n\r\n // 示例:指定屏幕底部正中显示横幅广告。\r\n // 方法2:指定屏幕顶部或底部正中\r\n // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', MiniGameSdk.EAdBannerLocation.BOTTOM); \r\n\r\n // 示例:通过坐标指定位置显示横幅广告。\r\n // 方法2:指定坐标\r\n // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', { top: 10, left: 10 }); \r\n }\r\n\r\n /**\r\n * 隐藏广告横幅的函数。\r\n * \r\n * 该函数调用MiniGameSdk.AdvertManager实例的方法,用于隐藏广告横幅。\r\n * 当需要暂时停止展示广告或用户主动请求隐藏广告时,可以调用此函数。\r\n * \r\n * @remarks\r\n * 此函数不接受任何参数,也不返回任何值。\r\n * 它单纯地触发广告横幅的隐藏操作,具体实现依赖于AdvertManager的实现。\r\n */\r\n onHideBanner() {\r\n MiniGameSdk.AdvertManager.instance.hideBanner();\r\n }\r\n\r\n /**\r\n * 显示插屏广告的函数。\r\n * \r\n * 此函数调用MiniGameSdk.AdvertManager实例的方法,以显示一个指定的插屏广告。\r\n * 它使用了硬编码的广告单元标识符,这意味着它专为特定的广告位设计。\r\n * 在实际应用中,可能需要根据应用的配置或用户的特定条件来动态选择广告单元标识符。\r\n */\r\n onShowInterstitial() {\r\n MiniGameSdk.AdvertManager.instance.showInterstitial('adunit-eadd67851d3050ad');\r\n }\r\n\r\n /**\r\n * 调用广告管理器加载并展示自定义广告。\r\n * 此方法首先通过广告管理器的实例加载指定的自定义广告单元,然后展示这个自定义广告。\r\n * 加载和展示广告是广告管理系统中的常见操作,这里通过两步分别完成加载和展示的过程,\r\n * 以确保广告在展示前正确且充分地被加载。\r\n */\r\n onShowCustom() {\r\n // 加载指定的自定义广告单元。\r\n MiniGameSdk.AdvertManager.instance.loadCustom(EWechatAD.CUMSTOM_01);\r\n // 展示已加载的自定义广告。\r\n MiniGameSdk.AdvertManager.instance.showCustom(EWechatAD.CUMSTOM_01);\r\n }\r\n\r\n /**\r\n * 隐藏自定义广告。\r\n * \r\n * 本函数调用MiniGameSdk.AdvertManager.instance.hideCustom()来隐藏自定义广告。\r\n * 这是对接广告管理系统的一部分,用于控制广告的显示与隐藏。\r\n * 在需要隐藏自定义广告的场景下,调用此函数即可实现相应功能。\r\n */\r\n onHideCustom() {\r\n MiniGameSdk.AdvertManager.instance.hideCustom(EWechatAD.CUMSTOM_01);\r\n }\r\n\r\n /**\r\n * 触发显示视频广告的函数。\r\n * 通过调用MiniGameSdk.AdvertManager.instance.showVideo方法,显示一个视频广告,并根据用户观看广告的情况执行相应的逻辑。\r\n * \r\n * @remarks\r\n * 此函数首先传入一个广告单元ID,用于标识要显示的视频广告。然后传入一个回调函数,该回调函数在用户观看广告后被调用,无论用户是完成了观看、拒绝了观看还是观看过程中发生了错误。\r\n * 回调函数接收两个参数:一个是用户观看广告的结果,另一个是用户观看的广告数量。根据观看结果的不同,显示不同的提示信息。\r\n */\r\n onShowVideo() {\r\n // 广告单元ID,用于标识要显示的视频广告\r\n // 广告单元ID的样例\r\n //抖音形如: 1re3nfqkmy81m4m8ge\r\n //微信形如: adunit-a7718f6e195e42fe\r\n MiniGameSdk.AdvertManager.instance.showVideo('1re3nfqkmy81m4m8ge', (res: MiniGameSdk.EAdVideoResult, count: number) => {\r\n // 输出用户观看的广告数量\r\n console.log('用户看的视频广告个数是:', count);\r\n\r\n // 根据用户观看广告的结果,执行不同的逻辑\r\n switch (res) {\r\n case MiniGameSdk.EAdVideoResult.ACCEPT:\r\n // 用户完成了广告观看,显示奖励提示\r\n MiniGameSdk.API.showToast('用户看完广告,可以奖励');\r\n break;\r\n case MiniGameSdk.EAdVideoResult.REJECT:\r\n // 用户拒绝了广告观看,显示不奖励提示\r\n MiniGameSdk.API.showToast('用户拒绝掉广告,不奖励');\r\n break;\r\n case MiniGameSdk.EAdVideoResult.ERROR:\r\n // 广告播放发生错误,显示错误提示\r\n MiniGameSdk.API.showToast('播放广告发生错误,不奖励');\r\n break;\r\n default:\r\n // 其他情况,不作处理\r\n break;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 引导用户分享应用给朋友。\r\n * \r\n * 通过调用MiniGameSdk的API分享功能,向用户的朋友圈发送邀请,邀请他们一起玩游戏。\r\n * 这是一个重要的推广手段,可以增加应用的曝光度和用户量。\r\n * \r\n * @remarks\r\n * 此方法中调用的API依赖于特定的小游戏平台,因此在不同的平台上可能需要不同的实现。\r\n */\r\n onShare() {\r\n MiniGameSdk.API.shareAppToFriends('来玩游戏吧');\r\n }\r\n\r\n /**\r\n * 显示一个toast提示。\r\n * \r\n * 通过调用MiniGameSdk的API方法来显示一个简短的提示信息。toast是一种轻量级的提示方式,用于在界面上短暂地展示一些信息,不影响用户操作。\r\n * 这里使用了固定的提示文本 '这是一个toast',在实际应用中,可以根据需要动态设置提示文本。\r\n */\r\n onShowToast() {\r\n MiniGameSdk.API.showToast('这是一个toast');\r\n }\r\n\r\n /**\r\n * 触发设备振动功能。\r\n * \r\n * 该方法用于调用MiniGameSdk提供的API,以实现设备的振动功能。当需要提醒用户或提供触觉反馈时,可以调用此方法。\r\n * 例如,在游戏或应用中,当用户完成特定操作或发生特定事件时,可以通过振动给予用户反馈。\r\n * \r\n * @remarks\r\n * 此方法无参数,也不返回任何值。\r\n */\r\n onVirbrate() {\r\n MiniGameSdk.API.vibrate();\r\n }\r\n\r\n /**\r\n * 重新启动游戏实例。\r\n * \r\n * 此函数调用MiniGameSdk中的API重新启动游戏。重新启动操作可能是为了初始化游戏环境、重置游戏状态或处理其他需要重启的场景。\r\n * 调用此函数后,游戏将会重新开始,当前的游戏状态将会被清除。\r\n * \r\n * @remarks\r\n * 此函数不接受任何参数。\r\n * \r\n * @returns 无返回值。\r\n */\r\n onReboot() {\r\n MiniGameSdk.API.reboot();\r\n }\r\n\r\n /**\r\n * 当前函数用于在迷你游戏中实现退出功能。\r\n * 它调用了MiniGameSdk提供的API方法来触发退出操作。\r\n * 该方法通常在需要结束当前迷你游戏或返回到上一级菜单时被调用。\r\n */\r\n onExit() {\r\n MiniGameSdk.API.exit();\r\n }\r\n\r\n /**\r\n * 显示分享菜单。\r\n * \r\n * 通过调用MiniGameSdk的API方法,触发显示分享菜单的操作。此函数旨在提供一个统一的入口,\r\n * 以便在需要时轻松调用分享功能,而无需直接与具体的SDK接口交互。\r\n * \r\n * @remarks\r\n * 此方法不接受任何参数,也不返回任何值。\r\n */\r\n onShowShareMenu() {\r\n MiniGameSdk.API.showShareMenu();\r\n }\r\n\r\n /**\r\n * 导航到指定的小游戏。\r\n * \r\n * 本函数用于触发导航到一个特定的小游戏。这需要提供目标小游戏的ID,\r\n * 以便系统能够正确地将用户重定向到目标小游戏。\r\n * \r\n * 注意:这里的'xxx'是占位符,实际使用时需要替换为具体的小游戏ID。\r\n */\r\n onNavigate() {\r\n MiniGameSdk.API.navigateTo('xxx'); // xxx替换为你的小游戏id\r\n }\r\n\r\n /**\r\n * 激活字节跳动入口视图。\r\n * \r\n * 此方法用于将字节跳动入口视图设置为活跃状态。当需要在用户界面中显示字节跳动的入口时,\r\n * 可以调用此方法来激活相应的视图元素,使其对用户可见。\r\n */\r\n onBytedanceEntranceView() {\r\n // this.entranceView.active = true;\r\n }\r\n\r\n /**\r\n * 请求登录代码\r\n * \r\n * 本函数用于触发小程序的登录流程,获取微信或头条等第三方平台的登录代码。\r\n * 这些代码可以用于后续的用户身份验证和数据同步流程。\r\n */\r\n onGetLoginCode() {\r\n // 调用MiniGameSdk的API登录方法,传入一个回调函数处理登录结果\r\n MiniGameSdk.API.login((code: string, anonymousCode: string) => {\r\n // 打印微信或头条的登录代码\r\n console.log('Wechat Or Bytedance Code:', code);\r\n // 打印头条的匿名登录代码\r\n // console.log('Bytedance Anonymous Code:', anonymousCode);\r\n if(code){\r\n cc.fx.GameTool.getUserId(code, data => this.setUserId(data)); \r\n }\r\n });\r\n }\r\n\r\n setUserId(data){\r\n cc.fx.GameConfig.GM_INFO.userId = data.data.userId;\r\n MiniGameSdk.API.getUserInfo(this.setUserInfo);\r\n }\r\n\r\n setUserInfo(data){\r\n console.log(\"获取到的用户信息\",data.userInfo);\r\n var useData = {\r\n \"gameId\": cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\": cc.fx.GameConfig.GM_INFO.userId,\r\n \"nickName\":data.userInfo.nickName,\r\n \"pic\": data.userInfo.avatarUrl\r\n \r\n }\r\n console.log(\"即将上传的用户信息:\",cc.fx.GameConfig.GM_INFO.userId,data.userInfo.nickName,data.userInfo.avatarUrl);\r\n console.log(\"Post数据:\",useData);\r\n cc.fx.HttpUtil.setUserInfo(useData,(res)=>{\r\n console.log(\"上传成功:\",res);\r\n });\r\n }\r\n\r\n /**\r\n * 创建并显示游戏圈按钮\r\n * \r\n * 本函数通过调用MiniGameSdk的GameClub实例方法,实现游戏俱乐部的创建和显示。\r\n * 它首先配置俱乐部的图标类型和位置大小,然后创建俱乐部,最后显示俱乐部。\r\n * 这样做是为了在小游戏内创建并展示一个游戏俱乐部的图标,供玩家加入或互动。\r\n */\r\n onCreateClub() {\r\n // 配置俱乐部图标为绿色,设置图标的位置为顶部200像素,左侧0像素\r\n MiniGameSdk.GameClub.instance.create(\r\n MiniGameSdk.EGameClubIcon.GREEN,\r\n { top: 200, left: 0 },\r\n { width: 50, height: 50 });\r\n // 显示游戏俱乐部图标\r\n MiniGameSdk.GameClub.instance.show();\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/0d/0d784963-d024-4ea6-a7db-03be0ad63010.json b/library/imports/0d/0d784963-d024-4ea6-a7db-03be0ad63010.json new file mode 100644 index 0000000..732cefd --- /dev/null +++ b/library/imports/0d/0d784963-d024-4ea6-a7db-03be0ad63010.json @@ -0,0 +1,384 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "toggle", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 1, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "toggle", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + } + ], + "_active": true, + "_components": [ + { + "__id__": 8 + } + ], + "_prefab": { + "__id__": 9 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 28, + "height": 28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 28, + "height": 28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "6827ca32-0107-4552-bab2-dfb31799bb44" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "0d784963-d024-4ea6-a7db-03be0ad63010" + }, + "fileId": "238bacn/jZGGYuFN7ndSzkO", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "checkmark", + "_objFlags": 512, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 6 + } + ], + "_prefab": { + "__id__": 7 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 28, + "height": 28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "90004ad6-2f6d-40e1-93ef-b714375c6f06" + }, + "_type": 0, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "0d784963-d024-4ea6-a7db-03be0ad63010" + }, + "fileId": "0d447hRg/9AuLVwR7+lDw/1", + "sync": false + }, + { + "__type__": "cc.Toggle", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 214, + "g": 214, + "b": 214, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": { + "__id__": 2 + }, + "_N$isChecked": true, + "toggleGroup": null, + "checkMark": { + "__id__": 6 + }, + "checkEvents": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "0d784963-d024-4ea6-a7db-03be0ad63010" + }, + "fileId": "3d81aISgHdGFblE/PZD2Cp3", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/0e/0e42ba95-1fa1-46aa-b2cf-143cd1bcee2c.json b/library/imports/0e/0e42ba95-1fa1-46aa-b2cf-143cd1bcee2c.json new file mode 100644 index 0000000..95d88cf --- /dev/null +++ b/library/imports/0e/0e42ba95-1fa1-46aa-b2cf-143cd1bcee2c.json @@ -0,0 +1,101 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "tiledtile", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "New TiledTile", + "_objFlags": 0, + "_parent": null, + "_children": [], + "_active": true, + "_level": 1, + "_components": [ + { + "__id__": 2 + } + ], + "_prefab": { + "__id__": 3 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_skewX": 0, + "_skewY": 0, + "_localZOrder": 45, + "groupIndex": 0, + "_id": "", + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1 + ] + } + }, + { + "__type__": "cc.TiledTile", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_x": 0, + "_y": 0, + "_gid": 6, + "_layer": null, + "_id": "39h1tJvWtC8oLyzYKulleV" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "0e42ba95-1fa1-46aa-b2cf-143cd1bcee2c" + }, + "fileId": "fb1JS09SVFapQy1+PoRN4F", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/0e/0e93aeaa-0b53-4e40-b8e0-6268b4e07bd7.json b/library/imports/0e/0e93aeaa-0b53-4e40-b8e0-6268b4e07bd7.json new file mode 100644 index 0000000..f4d3619 --- /dev/null +++ b/library/imports/0e/0e93aeaa-0b53-4e40-b8e0-6268b4e07bd7.json @@ -0,0 +1,125 @@ +{ + "__type__": "cc.EffectAsset", + "_name": "builtin-2d-spine", + "_objFlags": 0, + "_native": "", + "properties": null, + "techniques": [ + { + "passes": [ + { + "blendState": { + "targets": [ + { + "blend": true + } + ] + }, + "rasterizerState": { + "cullMode": 0 + }, + "properties": { + "texture": { + "value": "white", + "type": 29 + }, + "alphaThreshold": { + "value": [ + 0.5 + ], + "type": 13 + } + }, + "program": "builtin-2d-spine|vs|fs" + } + ] + } + ], + "shaders": [ + { + "hash": 3550530479, + "glsl3": { + "vert": "\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\n#if USE_TINT\n in vec4 a_color0;\n#endif\nin vec2 a_uv0;\nout vec2 v_uv0;\nout vec4 v_light;\n#if USE_TINT\n out vec4 v_dark;\n#endif\nvoid main () {\n mat4 mvp;\n #if CC_USE_MODEL\n mvp = cc_matViewProj * cc_matWorld;\n #else\n mvp = cc_matViewProj;\n #endif\n v_uv0 = a_uv0;\n v_light = a_color;\n #if USE_TINT\n v_dark = a_color0;\n #endif\n gl_Position = mvp * vec4(a_position, 1);\n}", + "frag": "\nprecision highp float;\nuniform sampler2D texture;\nin vec2 v_uv0;\nin vec4 v_light;\n#if USE_TINT\n in vec4 v_dark;\n#endif\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvoid main () {\n vec4 texColor = vec4(1.0);\n vec4 texture_tmp = texture(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n texColor.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n texColor.a *= texture_tmp.a;\n #else\n texColor *= texture_tmp;\n #endif\n vec4 finalColor;\n #if USE_TINT\n finalColor.a = v_light.a * texColor.a;\n finalColor.rgb = ((texColor.a - 1.0) * v_dark.a + 1.0 - texColor.rgb) * v_dark.rgb + texColor.rgb * v_light.rgb;\n #else\n finalColor = texColor * v_light;\n #endif\n ALPHA_TEST(finalColor);\n gl_FragColor = finalColor;\n}" + }, + "glsl1": { + "vert": "\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\n#if USE_TINT\n attribute vec4 a_color0;\n#endif\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\nvarying vec4 v_light;\n#if USE_TINT\n varying vec4 v_dark;\n#endif\nvoid main () {\n mat4 mvp;\n #if CC_USE_MODEL\n mvp = cc_matViewProj * cc_matWorld;\n #else\n mvp = cc_matViewProj;\n #endif\n v_uv0 = a_uv0;\n v_light = a_color;\n #if USE_TINT\n v_dark = a_color0;\n #endif\n gl_Position = mvp * vec4(a_position, 1);\n}", + "frag": "\nprecision highp float;\nuniform sampler2D texture;\nvarying vec2 v_uv0;\nvarying vec4 v_light;\n#if USE_TINT\n varying vec4 v_dark;\n#endif\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvoid main () {\n vec4 texColor = vec4(1.0);\n vec4 texture_tmp = texture2D(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n texColor.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n texColor.a *= texture_tmp.a;\n #else\n texColor *= texture_tmp;\n #endif\n vec4 finalColor;\n #if USE_TINT\n finalColor.a = v_light.a * texColor.a;\n finalColor.rgb = ((texColor.a - 1.0) * v_dark.a + 1.0 - texColor.rgb) * v_dark.rgb + texColor.rgb * v_light.rgb;\n #else\n finalColor = texColor * v_light;\n #endif\n ALPHA_TEST(finalColor);\n gl_FragColor = finalColor;\n}" + }, + "builtins": { + "globals": { + "blocks": [ + { + "name": "CCGlobal", + "defines": [] + } + ], + "samplers": [] + }, + "locals": { + "blocks": [ + { + "name": "CCLocal", + "defines": [] + } + ], + "samplers": [] + } + }, + "defines": [ + { + "name": "USE_TINT", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_MODEL", + "type": "boolean", + "defines": [] + }, + { + "name": "USE_ALPHA_TEST", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ALPHA_ATLAS_texture", + "type": "boolean", + "defines": [] + }, + { + "name": "INPUT_IS_GAMMA", + "type": "boolean", + "defines": [] + } + ], + "blocks": [ + { + "name": "ALPHA_TEST", + "members": [ + { + "name": "alphaThreshold", + "type": 13, + "count": 1 + } + ], + "defines": [ + "USE_ALPHA_TEST" + ], + "binding": 0 + } + ], + "samplers": [ + { + "name": "texture", + "type": 29, + "count": 1, + "defines": [], + "binding": 30 + } + ], + "record": null, + "name": "builtin-2d-spine|vs|fs" + } + ] +} \ No newline at end of file diff --git a/library/imports/10/10029dfc-5454-4977-bd11-8809e8f48cac.js b/library/imports/10/10029dfc-5454-4977-bd11-8809e8f48cac.js new file mode 100644 index 0000000..7aab291 --- /dev/null +++ b/library/imports/10/10029dfc-5454-4977-bd11-8809e8f48cac.js @@ -0,0 +1,34 @@ +"use strict"; +cc._RF.push(module, '1002938VFRJd70RiAno9Iys', 'Storage'); +// Script/module/Storage/Storage.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StorageMessage = void 0; +//缓存浏览器数据 +var StorageMessage = { + getStorage: function (key) { + var result = null; + if (cc.sys.localStorage.getItem(key)) { + var result = cc.sys.localStorage.getItem(key); + } + if (result) { + result = JSON.parse(result); + } + return result; + }, + setStorage: function (key, value) { + //主动拉起分享接口 + var temp = JSON.stringify(value); + cc.sys.localStorage.setItem(key, temp); + }, + removeStorage: function (key) { + //主动删除消息接口 + if (cc.sys.localStorage.getItem(key)) { + cc.sys.localStorage.removeItem(key); + } + }, +}; +exports.StorageMessage = StorageMessage; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/10/10029dfc-5454-4977-bd11-8809e8f48cac.js.map b/library/imports/10/10029dfc-5454-4977-bd11-8809e8f48cac.js.map new file mode 100644 index 0000000..0aa3e8a --- /dev/null +++ b/library/imports/10/10029dfc-5454-4977-bd11-8809e8f48cac.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Storage\\Storage.ts"],"names":[],"mappings":";;;;;;;AAAA,SAAS;AACT,IAAI,cAAc,GAAG;IACjB,UAAU,EAAG,UAAS,GAAG;QACrB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;YAClC,IAAI,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC/C;QAED,IAAG,MAAM,EAAC;YACR,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC7B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,EAAG,UAAS,GAAG,EAAC,KAAK;QAC3B,UAAU;QACV,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;IACD,aAAa,EAAG,UAAS,GAAG;QAC1B,UAAU;QACV,IAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;YAClC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;SACpC;IACH,CAAC;CACJ,CAAC;AAEO,wCAAc","file":"","sourceRoot":"/","sourcesContent":["//缓存浏览器数据\nvar StorageMessage = {\n getStorage : function(key){\n var result = null;\n if(cc.sys.localStorage.getItem(key)){\n var result = cc.sys.localStorage.getItem(key);\n }\n \n if(result){\n result = JSON.parse(result);\n }\n return result;\n },\n setStorage : function(key,value){\n //主动拉起分享接口\n var temp = JSON.stringify(value);\n cc.sys.localStorage.setItem(key, temp)\n },\n removeStorage : function(key){\n //主动删除消息接口\n if(cc.sys.localStorage.getItem(key)){\n cc.sys.localStorage.removeItem(key)\n }\n },\n};\n\nexport { StorageMessage };"]} \ No newline at end of file diff --git a/library/imports/11/115286d1-2e10-49ee-aab4-341583f607e8.json b/library/imports/11/115286d1-2e10-49ee-aab4-341583f607e8.json new file mode 100644 index 0000000..d0941d4 --- /dev/null +++ b/library/imports/11/115286d1-2e10-49ee-aab4-341583f607e8.json @@ -0,0 +1,106 @@ +{ + "__type__": "cc.EffectAsset", + "_name": "__builtin-editor-gizmo", + "_objFlags": 0, + "_native": "", + "properties": null, + "techniques": [ + { + "passes": [ + { + "stage": "transparent", + "blendState": { + "targets": [ + { + "blend": true, + "blendEq": 32774, + "blendAlphaEq": 32774, + "blendSrcAlpha": 1, + "blendDstAlpha": 771 + } + ] + }, + "rasterizerState": { + "cullMode": 0 + }, + "depthStencilState": { + "depthTest": false, + "depthWrite": false + }, + "properties": { + "diffuseColor": { + "value": [ + 1, + 1, + 1, + 1 + ], + "editor": { + "type": "color" + }, + "type": 16 + } + }, + "program": "__builtin-editor-gizmo|vs|fs" + } + ] + } + ], + "shaders": [ + { + "hash": 2992916359, + "glsl3": { + "vert": "\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nvarying vec3 v_worldNormal;\nvarying vec3 v_worldPosition;\nvarying vec3 v_localPosition;\nvarying vec3 v_right;\nvarying vec3 v_up;\nvarying vec3 v_forward;\nattribute vec3 a_position;\nattribute vec3 a_normal;\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n v_localPosition = a_position;\n v_worldPosition = (cc_matWorld * pos).xyz;\n v_worldNormal = (cc_matWorldIT * vec4(a_normal, 0)).xyz;\n v_right = vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]);\n v_up = vec3(cc_matView[0][1], cc_matView[1][1], cc_matView[2][1]);\n v_forward = vec3(cc_matView[0][2], cc_matView[1][2], cc_matView[2][2]);\n gl_Position = cc_matViewProj * cc_matWorld * pos;\n}", + "frag": "\nprecision highp float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nmat3 transpose(mat3 v) {\n mat3 tmp;\n tmp[0] = vec3(v[0].x, v[1].x, v[2].x);\n tmp[1] = vec3(v[0].y, v[1].y, v[2].y);\n tmp[2] = vec3(v[0].z, v[1].z, v[2].z);\n return tmp;\n}\nvoid ClipQuadToHorizon(inout vec3 L[5], out int n) {\n int config = 0;\n if (L[0].z > 0.0) config += 1;\n if (L[1].z > 0.0) config += 2;\n if (L[2].z > 0.0) config += 4;\n if (L[3].z > 0.0) config += 8;\n config = 15;\n n = 0;\n if (config == 0)\n {\n }\n else if (config == 1)\n {\n n = 3;\n L[1] = -L[1].z * L[0] + L[0].z * L[1];\n L[2] = -L[3].z * L[0] + L[0].z * L[3];\n }\n else if (config == 2)\n {\n n = 3;\n L[0] = -L[0].z * L[1] + L[1].z * L[0];\n L[2] = -L[2].z * L[1] + L[1].z * L[2];\n }\n else if (config == 3)\n {\n n = 4;\n L[2] = -L[2].z * L[1] + L[1].z * L[2];\n L[3] = -L[3].z * L[0] + L[0].z * L[3];\n }\n else if (config == 4)\n {\n n = 3;\n L[0] = -L[3].z * L[2] + L[2].z * L[3];\n L[1] = -L[1].z * L[2] + L[2].z * L[1];\n }\n else if (config == 5)\n {\n n = 0;\n }\n else if (config == 6)\n {\n n = 4;\n L[0] = -L[0].z * L[1] + L[1].z * L[0];\n L[3] = -L[3].z * L[2] + L[2].z * L[3];\n }\n else if (config == 7)\n {\n n = 5;\n L[4] = -L[3].z * L[0] + L[0].z * L[3];\n L[3] = -L[3].z * L[2] + L[2].z * L[3];\n }\n else if (config == 8)\n {\n n = 3;\n L[0] = -L[0].z * L[3] + L[3].z * L[0];\n L[1] = -L[2].z * L[3] + L[3].z * L[2];\n L[2] = L[3];\n }\n else if (config == 9)\n {\n n = 4;\n L[1] = -L[1].z * L[0] + L[0].z * L[1];\n L[2] = -L[2].z * L[3] + L[3].z * L[2];\n }\n else if (config == 10)\n {\n n = 0;\n }\n else if (config == 11)\n {\n n = 5;\n L[4] = L[3];\n L[3] = -L[2].z * L[3] + L[3].z * L[2];\n L[2] = -L[2].z * L[1] + L[1].z * L[2];\n }\n else if (config == 12)\n {\n n = 4;\n L[1] = -L[1].z * L[2] + L[2].z * L[1];\n L[0] = -L[0].z * L[3] + L[3].z * L[0];\n }\n else if (config == 13)\n {\n n = 5;\n L[4] = L[3];\n L[3] = L[2];\n L[2] = -L[1].z * L[2] + L[2].z * L[1];\n L[1] = -L[1].z * L[0] + L[0].z * L[1];\n }\n else if (config == 14)\n {\n n = 5;\n L[4] = -L[0].z * L[3] + L[3].z * L[0];\n L[0] = -L[0].z * L[1] + L[1].z * L[0];\n }\n else if (config == 15)\n {\n n = 4;\n }\n if (n == 3)\n L[3] = L[0];\n if (n == 4)\n L[4] = L[0];\n}\nfloat IntegrateEdge(vec3 v1, vec3 v2) {\n float cosTheta = dot(v1, v2);\n float theta = acos(cosTheta);\n return cross(v1, v2).z * ((theta > 0.001) ? theta/sin(theta) : 4.0);\n}\nvec3 LTC_Evaluate(vec3 N, vec3 V, vec3 P, mat3 Minv, vec3 points[4]) {\n vec3 T1, T2;\n T1 = normalize(V - N*dot(V, N));\n T2 = cross(N, T1);\n Minv = Minv * transpose(mat3(T1, T2, N));\n vec3 L[5];\n L[0] = Minv * (points[0] - P);\n L[1] = Minv * (points[1] - P);\n L[2] = Minv * (points[2] - P);\n L[3] = Minv * (points[3] - P);\n int n;\n ClipQuadToHorizon(L, n);\n if (n == 0)\n return vec3(0, 0, 0);\n L[0] = normalize(L[0]);\n L[1] = normalize(L[1]);\n L[2] = normalize(L[2]);\n L[3] = normalize(L[3]);\n L[4] = normalize(L[4]);\n float sum = 0.0;\n sum += IntegrateEdge(L[0], L[1]);\n sum += IntegrateEdge(L[1], L[2]);\n sum += IntegrateEdge(L[2], L[3]);\n if (n >= 4)\n sum += IntegrateEdge(L[3], L[4]);\n if (n == 5)\n sum += IntegrateEdge(L[4], L[0]);\n sum = max(0.0, sum);\n vec3 Lo_i = vec3(sum, sum, sum);\n return Lo_i;\n}\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform DIFFUSE_COLOR {\n vec4 diffuseColor;\n};\nvarying vec3 v_worldNormal;\nvarying vec3 v_worldPosition;\nvarying vec3 v_localPosition;\nvarying vec3 v_right;\nvarying vec3 v_up;\nvarying vec3 v_forward;\nvoid main () {\n vec3 N = normalize(v_worldNormal);\n vec3 V = normalize(cc_cameraPos.xyz - v_worldPosition);\n vec3 points[4];\n vec3 up = vec3(0, 1, 0);\n points[0] = (v_forward * 3.0 + v_right + up) * 40.0;\n points[1] = (v_forward * 3.0 - v_right + up) * 40.0;\n points[2] = (v_forward * 3.0 - v_right - up) * 40.0;\n points[3] = (v_forward * 3.0 + v_right - up) * 40.0;\n vec3 diffuse = diffuseColor.rgb * (0.2 + LTC_Evaluate(N, V, v_localPosition, mat3(1), points) * 0.8);\n gl_FragColor = CCFragOutput(vec4(diffuse, diffuseColor.a));\n}" + }, + "glsl1": { + "vert": "\nprecision highp float;\nuniform mat4 cc_matView;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nuniform mat4 cc_matWorldIT;\nvarying vec3 v_worldNormal;\nvarying vec3 v_worldPosition;\nvarying vec3 v_localPosition;\nvarying vec3 v_right;\nvarying vec3 v_up;\nvarying vec3 v_forward;\nattribute vec3 a_position;\nattribute vec3 a_normal;\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n v_localPosition = a_position;\n v_worldPosition = (cc_matWorld * pos).xyz;\n v_worldNormal = (cc_matWorldIT * vec4(a_normal, 0)).xyz;\n v_right = vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]);\n v_up = vec3(cc_matView[0][1], cc_matView[1][1], cc_matView[2][1]);\n v_forward = vec3(cc_matView[0][2], cc_matView[1][2], cc_matView[2][2]);\n gl_Position = cc_matViewProj * cc_matWorld * pos;\n}", + "frag": "\nprecision highp float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nmat3 transpose(mat3 v) {\n mat3 tmp;\n tmp[0] = vec3(v[0].x, v[1].x, v[2].x);\n tmp[1] = vec3(v[0].y, v[1].y, v[2].y);\n tmp[2] = vec3(v[0].z, v[1].z, v[2].z);\n return tmp;\n}\nvoid ClipQuadToHorizon(inout vec3 L[5], out int n) {\n int config = 0;\n if (L[0].z > 0.0) config += 1;\n if (L[1].z > 0.0) config += 2;\n if (L[2].z > 0.0) config += 4;\n if (L[3].z > 0.0) config += 8;\n config = 15;\n n = 0;\n if (config == 0)\n {\n }\n else if (config == 1)\n {\n n = 3;\n L[1] = -L[1].z * L[0] + L[0].z * L[1];\n L[2] = -L[3].z * L[0] + L[0].z * L[3];\n }\n else if (config == 2)\n {\n n = 3;\n L[0] = -L[0].z * L[1] + L[1].z * L[0];\n L[2] = -L[2].z * L[1] + L[1].z * L[2];\n }\n else if (config == 3)\n {\n n = 4;\n L[2] = -L[2].z * L[1] + L[1].z * L[2];\n L[3] = -L[3].z * L[0] + L[0].z * L[3];\n }\n else if (config == 4)\n {\n n = 3;\n L[0] = -L[3].z * L[2] + L[2].z * L[3];\n L[1] = -L[1].z * L[2] + L[2].z * L[1];\n }\n else if (config == 5)\n {\n n = 0;\n }\n else if (config == 6)\n {\n n = 4;\n L[0] = -L[0].z * L[1] + L[1].z * L[0];\n L[3] = -L[3].z * L[2] + L[2].z * L[3];\n }\n else if (config == 7)\n {\n n = 5;\n L[4] = -L[3].z * L[0] + L[0].z * L[3];\n L[3] = -L[3].z * L[2] + L[2].z * L[3];\n }\n else if (config == 8)\n {\n n = 3;\n L[0] = -L[0].z * L[3] + L[3].z * L[0];\n L[1] = -L[2].z * L[3] + L[3].z * L[2];\n L[2] = L[3];\n }\n else if (config == 9)\n {\n n = 4;\n L[1] = -L[1].z * L[0] + L[0].z * L[1];\n L[2] = -L[2].z * L[3] + L[3].z * L[2];\n }\n else if (config == 10)\n {\n n = 0;\n }\n else if (config == 11)\n {\n n = 5;\n L[4] = L[3];\n L[3] = -L[2].z * L[3] + L[3].z * L[2];\n L[2] = -L[2].z * L[1] + L[1].z * L[2];\n }\n else if (config == 12)\n {\n n = 4;\n L[1] = -L[1].z * L[2] + L[2].z * L[1];\n L[0] = -L[0].z * L[3] + L[3].z * L[0];\n }\n else if (config == 13)\n {\n n = 5;\n L[4] = L[3];\n L[3] = L[2];\n L[2] = -L[1].z * L[2] + L[2].z * L[1];\n L[1] = -L[1].z * L[0] + L[0].z * L[1];\n }\n else if (config == 14)\n {\n n = 5;\n L[4] = -L[0].z * L[3] + L[3].z * L[0];\n L[0] = -L[0].z * L[1] + L[1].z * L[0];\n }\n else if (config == 15)\n {\n n = 4;\n }\n if (n == 3)\n L[3] = L[0];\n if (n == 4)\n L[4] = L[0];\n}\nfloat IntegrateEdge(vec3 v1, vec3 v2) {\n float cosTheta = dot(v1, v2);\n float theta = acos(cosTheta);\n return cross(v1, v2).z * ((theta > 0.001) ? theta/sin(theta) : 4.0);\n}\nvec3 LTC_Evaluate(vec3 N, vec3 V, vec3 P, mat3 Minv, vec3 points[4]) {\n vec3 T1, T2;\n T1 = normalize(V - N*dot(V, N));\n T2 = cross(N, T1);\n Minv = Minv * transpose(mat3(T1, T2, N));\n vec3 L[5];\n L[0] = Minv * (points[0] - P);\n L[1] = Minv * (points[1] - P);\n L[2] = Minv * (points[2] - P);\n L[3] = Minv * (points[3] - P);\n int n;\n ClipQuadToHorizon(L, n);\n if (n == 0)\n return vec3(0, 0, 0);\n L[0] = normalize(L[0]);\n L[1] = normalize(L[1]);\n L[2] = normalize(L[2]);\n L[3] = normalize(L[3]);\n L[4] = normalize(L[4]);\n float sum = 0.0;\n sum += IntegrateEdge(L[0], L[1]);\n sum += IntegrateEdge(L[1], L[2]);\n sum += IntegrateEdge(L[2], L[3]);\n if (n >= 4)\n sum += IntegrateEdge(L[3], L[4]);\n if (n == 5)\n sum += IntegrateEdge(L[4], L[0]);\n sum = max(0.0, sum);\n vec3 Lo_i = vec3(sum, sum, sum);\n return Lo_i;\n}\nuniform vec4 cc_cameraPos;\nuniform vec4 diffuseColor;\nvarying vec3 v_worldNormal;\nvarying vec3 v_worldPosition;\nvarying vec3 v_localPosition;\nvarying vec3 v_right;\nvarying vec3 v_up;\nvarying vec3 v_forward;\nvoid main () {\n vec3 N = normalize(v_worldNormal);\n vec3 V = normalize(cc_cameraPos.xyz - v_worldPosition);\n vec3 points[4];\n vec3 up = vec3(0, 1, 0);\n points[0] = (v_forward * 3.0 + v_right + up) * 40.0;\n points[1] = (v_forward * 3.0 - v_right + up) * 40.0;\n points[2] = (v_forward * 3.0 - v_right - up) * 40.0;\n points[3] = (v_forward * 3.0 + v_right - up) * 40.0;\n vec3 diffuse = diffuseColor.rgb * (0.2 + LTC_Evaluate(N, V, v_localPosition, mat3(1), points) * 0.8);\n gl_FragColor = CCFragOutput(vec4(diffuse, diffuseColor.a));\n}" + }, + "builtins": { + "globals": { + "blocks": [ + { + "name": "CCGlobal", + "defines": [] + } + ], + "samplers": [] + }, + "locals": { + "blocks": [ + { + "name": "CCLocal", + "defines": [] + } + ], + "samplers": [] + } + }, + "defines": [ + { + "name": "OUTPUT_TO_GAMMA", + "type": "boolean", + "defines": [] + } + ], + "blocks": [ + { + "name": "DIFFUSE_COLOR", + "members": [ + { + "name": "diffuseColor", + "type": 16, + "count": 1 + } + ], + "defines": [], + "binding": 0 + } + ], + "samplers": [], + "record": null, + "name": "__builtin-editor-gizmo|vs|fs" + } + ] +} \ No newline at end of file diff --git a/library/imports/14/144c3297-af63-49e8-b8ef-1cfa29b3be28.json b/library/imports/14/144c3297-af63-49e8-b8ef-1cfa29b3be28.json new file mode 100644 index 0000000..49bba4a --- /dev/null +++ b/library/imports/14/144c3297-af63-49e8-b8ef-1cfa29b3be28.json @@ -0,0 +1,84 @@ +{ + "__type__": "cc.EffectAsset", + "_name": "builtin-2d-gray-sprite", + "_objFlags": 0, + "_native": "", + "properties": null, + "techniques": [ + { + "passes": [ + { + "blendState": { + "targets": [ + { + "blend": true + } + ] + }, + "rasterizerState": { + "cullMode": 0 + }, + "properties": { + "texture": { + "value": "white", + "type": 29 + } + }, + "program": "builtin-2d-gray-sprite|vs|fs" + } + ] + } + ], + "shaders": [ + { + "hash": 4278481454, + "glsl3": { + "vert": "\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nin vec3 a_position;\nin mediump vec2 a_uv0;\nout mediump vec2 v_uv0;\nin vec4 a_color;\nout vec4 v_color;\nvoid main () {\n gl_Position = cc_matViewProj * vec4(a_position, 1);\n v_uv0 = a_uv0;\n v_color = a_color;\n}", + "frag": "\nprecision highp float;\nuniform sampler2D texture;\nin mediump vec2 v_uv0;\nin vec4 v_color;\nvoid main () {\n vec4 color = v_color;\n vec4 texture_tmp = texture(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n color.a *= texture_tmp.a;\n #else\n color *= texture_tmp;\n #endif\n float gray = 0.2126*color.r + 0.7152*color.g + 0.0722*color.b;\n gl_FragColor = vec4(gray, gray, gray, color.a);\n}" + }, + "glsl1": { + "vert": "\nprecision highp float;\nuniform mat4 cc_matViewProj;\nattribute vec3 a_position;\nattribute mediump vec2 a_uv0;\nvarying mediump vec2 v_uv0;\nattribute vec4 a_color;\nvarying vec4 v_color;\nvoid main () {\n gl_Position = cc_matViewProj * vec4(a_position, 1);\n v_uv0 = a_uv0;\n v_color = a_color;\n}", + "frag": "\nprecision highp float;\nuniform sampler2D texture;\nvarying mediump vec2 v_uv0;\nvarying vec4 v_color;\nvoid main () {\n vec4 color = v_color;\n vec4 texture_tmp = texture2D(texture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_texture\n texture_tmp.a *= texture2D(texture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (texture_tmp.rgb * texture_tmp.rgb);\n color.a *= texture_tmp.a;\n #else\n color *= texture_tmp;\n #endif\n float gray = 0.2126*color.r + 0.7152*color.g + 0.0722*color.b;\n gl_FragColor = vec4(gray, gray, gray, color.a);\n}" + }, + "builtins": { + "globals": { + "blocks": [ + { + "name": "CCGlobal", + "defines": [] + } + ], + "samplers": [] + }, + "locals": { + "blocks": [], + "samplers": [] + } + }, + "defines": [ + { + "name": "CC_USE_ALPHA_ATLAS_texture", + "type": "boolean", + "defines": [] + }, + { + "name": "INPUT_IS_GAMMA", + "type": "boolean", + "defines": [] + } + ], + "blocks": [], + "samplers": [ + { + "name": "texture", + "type": 29, + "count": 1, + "defines": [], + "binding": 30 + } + ], + "record": null, + "name": "builtin-2d-gray-sprite|vs|fs" + } + ] +} \ No newline at end of file diff --git a/library/imports/14/14c74869-bdb4-4f57-86d8-a7875de2be30.bin b/library/imports/14/14c74869-bdb4-4f57-86d8-a7875de2be30.bin new file mode 100644 index 0000000000000000000000000000000000000000..1f0d8b8efb4ccdd7fb87a83a397dad9275b1807a GIT binary patch literal 47136 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%0A_h+2@;d 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

6FL*8~NC?8O~r2taRR)fSQzH1qy~LOp(y^ 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 jI>Q*Jv2l!> length) { + name = name.substring(0, length) + "..."; + } + return name; + }, + //设置头像 + setPic: function (node, pic) { + node.active = false; + var url = pic; + setTimeout(function () { + fetch(url) + .then(function (response) { + return response.headers.get('Content-Length'); + }) + .then(function (errNo) { + if (errNo == "5093") { + node.active = true; + } + }) + .catch(function (error) { + // console.error('Error fetching X-Info:', error); + }); + }, 100); + cc.assetManager.loadRemote(url, { ext: '.png' }, function (err, texture) { + if (texture) { + node.active = true; + node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); + } + else { + console.log(err, texture); + } + }); + }, + //第一个参数把目标带进来处理,第二个参数为名字长度,不同场景不同需求 + //名字4短,小排行,名字6长,大排行 + getRankData: function (data, target, nameLength) { + target.listData = data.data.list; + target.selfData = data.data.info; + var rankData = []; + var self = false; + cc.fx.GameTool.setPic(target.selfNode.getChildByName("pic").getChildByName("icon"), target.selfData.pic); + for (var i = 0; i <= target.listData.length - 1; i++) { + rankData.push({ rank: (i + 1), name: target.listData[i].nickName, total: target.listData[i].score, time: null, pic: target.listData[i].pic }); + if (cc.fx.GameConfig.GM_INFO.userId == target.listData[i].userId) { + self = true; + target.rankNumber = i; + target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string = (i + 1) + ""; + } + if (i == (target.listData.length - 1) && self == false) { + target.rankNumber = i; + target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string = "99+"; + } + } + cc.fx.GameTool.subName(target.selfData.nickName, nameLength); + target.selfNode.getChildByName("nameLab").getComponent(cc.Label).string = target.selfData.nickName; + target.selfNode.getChildByName("totalLab").getComponent(cc.Label).string = target.selfData.score; + var timeTemp = cc.fx.GameTool.getTimeShenNong(target.selfData.totleTimes); + // target.selfNode.getChildByName("timeLab").getComponent(cc.Label).string = timeTemp + ""; + switch (target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string) { + case "1": + target.selfNode.getChildByName("rank").getChildByName("one").active = true; + break; + case "2": + target.selfNode.getChildByName("rank").getChildByName("two").active = true; + break; + case "3": + target.selfNode.getChildByName("rank").getChildByName("three").active = true; + break; + } + // 大排行 + if (nameLength == 6) { + target.rankList.setData(rankData); + target.selfNode.opacity = 255; + if (target.selfData.totalSunCount == 0) + target.selfNode.opacity = 0; + } + }, + getSeedRandom: function (min, max) { + // console.log("随机数:",cc.fx.GameConfig.GM_INFO.currSeed); + max = max || 1; + min = min || 0; + cc.fx.GameConfig.GM_INFO.currSeed = (cc.fx.GameConfig.GM_INFO.currSeed * 9301 + 49297) % 233280; + var rnd = cc.fx.GameConfig.GM_INFO.currSeed / 233280.0; + var tmp = min + rnd * (max - min); + return parseInt(tmp); + }, + //获取关卡配置的那个关卡数 + getCustom: function (type) { + var custom = cc.fx.StorageMessage.getStorage(cc.fx.storageType.storageTypeCustom); + if (custom == "undifend" || custom == null || custom == "") { + this.setCustom(); + } + else { + cc.fx.GameConfig.GM_INFO_SET("custom", custom[0]); + if (custom[0] != 0 || type == true) { + custom.shift(); + if (custom.length == 0) { + this.setCustom(); + } + else + cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom, custom); + } + } + }, + //本地没有存储到配置,或者配置用完,重新创建配置 + setCustom: function () { + var arrayLength = cc.fx.GameConfig.LEVEL_INFO.length; + var arrayList = []; + for (var i = 1; i < arrayLength; i++) { + arrayList.push(i); + } + arrayList.sort(function () { return Math.random() - 0.5; }); + arrayList.unshift(0); + cc.fx.GameConfig.GM_INFO_SET("custom", arrayList[0]); + cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom, arrayList); + }, + getSetScreenResolutionFlag: function () { + var size = cc.winSize; + var width = size.width; + var height = size.height; + if ((height / width) > (16.2 / 9)) + return false; + return true; + }, + //判断全面屏适配 + setFit: function (canvas) { + var flag = cc.fx.GameTool.getSetScreenResolutionFlag(); + if (flag) { + // console.log("不是全面屏"); + } + else { + // console.log("是全面屏"); + } + return flag; + }, + //获取游戏信息 + getGameInfo: function (node) { + var jg = false; + return jg; + }, + //设置游戏信息 + setGameInfo: function (pd) { + }, + //打乱数组 + shuffleArray: function (arr) { + return arr.sort(function () { return Math.random() - 0.5; }); + }, + //打字机效果 + typingAni: function (label, text, cb, target) { + var self = target; + var html = ''; + var arr = text.split(''); + var len = arr.length; + var step = 0; + self.func = function () { + html += arr[step]; + label.string = html; + if (++step == len) { + self.unschedule(self.func); + cb && cb(); + } + }; + self.schedule(self.func, 0.1, cc.macro.REPEAT_FOREVER, 0); + }, + //输入秒,返回需要展示时间格式 + getTimeMargin: function (second) { + var total = 0; + total = second; + var hour = 0; + hour = parseInt((total / 3600) + ""); //计算整数小时数 + var afterHour = total - hour * 60 * 60; //取得算出小时数后剩余的秒数 + var min = parseInt((afterHour / 60) + ""); //计算整数分 + var m = "" + min; + if (min < 10) + m = "0" + min; + var afterMin = total - hour * 60 * 60 - min * 60; //取得算出分后剩余的秒数 + var miao = afterMin + ""; + if (afterMin < 10) + miao = "0" + afterMin; + return m + ':' + miao; + }, + //输入秒,返回需要展示时间格式 + getTimeShenNong: function (second) { + second = parseInt(second / 1000 + ""); + var total = 0; + total = second; + var min = 0; + if (total > 60) { + min = parseInt((total / 60) + ""); //计算整数分 + } + var m = min + "'"; + var afterMin = total - min * 60; //取得算出分后剩余的秒数 + var miao = afterMin + "''"; + return m + miao; + }, + //输入秒,返回需要展示时间格式 + getTimeLondon: function (second) { + var total = 0; + total = second; + var min = 0; + if (total >= 60) { + min = parseInt((total / 60) + ""); //计算整数分 + } + var m = min + " 分"; + var afterMin = total - min * 60; //取得算出分后剩余的秒数 + var miao = afterMin + " 秒"; + return m + " " + miao; + }, + //获取时间戳 + getTime: function () { + var timestamp = (new Date().getTime()); + return timestamp; + }, + pushLister: function () { + }, + removeAllLister: function () { + }, +}; +exports.GameTool = GameTool; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/43/43bfc27a-ff6e-45b3-87c7-504d0f781397.js.map b/library/imports/43/43bfc27a-ff6e-45b3-87c7-504d0f781397.js.map new file mode 100644 index 0000000..84fd6e0 --- /dev/null +++ b/library/imports/43/43bfc27a-ff6e-45b3-87c7-504d0f781397.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Tool\\GameTool.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\r\n//最大工具类 各种公共方法,以及处理上传,获取后端接口数据\r\nvar GameTool = {\r\n _startTime: 0,\r\n _endTime: 0,\r\n _totalTime: 0,\r\n //获取userId\r\n Authentication(){\r\n let name = \"user_\" + cc.fx.GameConfig.GM_INFO.gameId;\r\n var data = JSON.parse(localStorage.getItem(name));\r\n if(data == \"undifend\" || data==null || data == \"\"){\r\n let url = \"https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=\"+\r\n encodeURIComponent(location.href);\r\n console.log(\"链接没ID准备跳转\",url);\r\n window.location.href = url;\r\n \r\n }\r\n else{\r\n if(!this.isNumber(data.userId)){\r\n let url = \"https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=\"+\r\n encodeURIComponent(location.href);\r\n console.log(\"链接不合法\",url);\r\n window.location.href = url;\r\n }\r\n else{\r\n cc.fx.StorageMessage.setStorage(name,data);\r\n cc.fx.GameConfig.GM_INFO.userId = parseInt(data.userId);\r\n }\r\n }\r\n },\r\n\r\n isNumber(value) {\r\n var result = false;\r\n result = typeof value === 'number';\r\n if(result) if(value < 200000) result = false;\r\n return result;\r\n },\r\n\r\n containsTrain(str) {\r\n return /from=train/i.test(str);\r\n },\r\n\r\n\r\n //埋点上传\r\n setGameData(){\r\n //GAME_DATA 初始化 每次清零\r\n cc.fx.GameConfig.GAME_DATA = [];\r\n cc.fx.GameConfig.GAME_DATA.push(cc.fx.GameConfig.CLICK_DATA);\r\n cc.fx.GameConfig.CLICK_init();\r\n let data = cc.fx.GameConfig.GAME_DATA;\r\n let matchId = this.getMatchId();\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"matchId\":matchId,\r\n \"data\": data\r\n };\r\n\r\n console.log(\"上传数据:\",data);\r\n cc.fx.HttpUtil.uploadUserLogData(postData,function(){})\r\n },\r\n //上传排行榜 type为1\r\n setRank(data){\r\n //GAME_DATA 初始化 每次清零\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"type\":1,\r\n \"score\": data.score,\r\n \"accuracy\": data.date,\r\n \"success\": cc.fx.GameConfig.GM_INFO.success\r\n };\r\n cc.fx.HttpUtil.rankData(1,function(){},postData);\r\n },\r\n //获取排行榜 type为2\r\n getRank(data,callback){\r\n let rankLength = data.length;\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"page\":1,\r\n \"pageSize\":rankLength\r\n }; \r\n //回调进getRankData\r\n cc.fx.HttpUtil.rankData(2,data =>{callback(data)},postData);\r\n \r\n },\r\n //获取matchId 用于上传每次点击数据里面记录id方便查询\r\n getMatchId (){\r\n let matchId = cc.sys.localStorage.getItem(\"matchId\");\r\n let tempId = matchId;\r\n if(matchId == \"undifend\" || matchId==null){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n if(this.containsNanana(matchId) == true){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n let char = parseInt(tempId.substring(10,tempId.length));\r\n if(cc.fx.GameConfig.GM_INFO.level == 1){\r\n char += 1;\r\n matchId = tempId.slice(0, 10) + char + \"\";\r\n if(this.containsNanana(matchId)) matchId = this.setMatchId();\r\n cc.fx.GameConfig.GM_INFO.matchId = matchId;\r\n cc.sys.localStorage.setItem(\"matchId\",matchId);\r\n }\r\n }\r\n }\r\n\r\n if(this.containsNanana(matchId) == true){\r\n matchId = this.setMatchId();\r\n }\r\n return matchId;\r\n },\r\n //检测matchId 如果有缓存以前的nanana数据清除\r\n containsNanana(str) {\r\n return /na/i.test(str);\r\n },\r\n //重新设置MatchId\r\n setMatchId (){\r\n // 定义包含可用字符的字符集\r\n const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\r\n // 创建一个数组以保存随机字符\r\n const uuidArray = [];\r\n // 循环10次 生成10位的UUID\r\n for (let i = 0; i < 10; i++) {\r\n // 生成随机索引,范围是字符集的长度\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n // 从字符集中获取随机字符\r\n const randomChar = characters.charAt(randomIndex);\r\n // 将字符添加到数组中\r\n uuidArray.push(randomChar);\r\n }\r\n let data = uuidArray.join('') + 1 + \"\";\r\n cc.sys.localStorage.setItem(\"matchNumber\",1);\r\n cc.sys.localStorage.setItem(\"matchId\",data);\r\n cc.fx.GameConfig.GM_INFO.matchId = data;\r\n return data;\r\n },\r\n //截取名字\r\n subName(name,length){\r\n if(name.length > length){\r\n name = name.substring(0,length) + \"...\"\r\n }\r\n return name;\r\n },\r\n //设置头像\r\n setPic(node,pic){\r\n node.active = false;\r\n let url = pic;\r\n setTimeout(() => {\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n node.active = true;\r\n }\r\n })\r\n .catch(error => {\r\n // console.error('Error fetching X-Info:', error);\r\n });\r\n }, 100);\r\n cc.assetManager.loadRemote(url, {ext:'.png'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n node.active = true;\r\n node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n else{\r\n console.log(err,texture)\r\n }\r\n })\r\n },\r\n //第一个参数把目标带进来处理,第二个参数为名字长度,不同场景不同需求\r\n //名字4短,小排行,名字6长,大排行\r\n getRankData(data,target,nameLength){\r\n target.listData = data.data.list;\r\n target.selfData = data.data.info;\r\n let rankData = [];\r\n let self = false;\r\n cc.fx.GameTool.setPic(target.selfNode.getChildByName(\"pic\").getChildByName(\"icon\"),target.selfData.pic);\r\n for(let i=0;i<=target.listData.length-1;i++){\r\n rankData.push({rank:(i+1), name:target.listData[i].nickName, total:target.listData[i].score,time:null, pic:target.listData[i].pic});\r\n if(cc.fx.GameConfig.GM_INFO.userId == target.listData[i].userId){\r\n self = true;\r\n target.rankNumber = i;\r\n target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string =(i+1) + \"\"; \r\n }\r\n if(i == (target.listData.length-1) && self == false){\r\n target.rankNumber = i;\r\n target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string = \"99+\"; \r\n }\r\n }\r\n cc.fx.GameTool.subName(target.selfData.nickName,nameLength);\r\n target.selfNode.getChildByName(\"nameLab\").getComponent(cc.Label).string = target.selfData.nickName;\r\n target.selfNode.getChildByName(\"totalLab\").getComponent(cc.Label).string = target.selfData.score;\r\n let timeTemp = cc.fx.GameTool.getTimeShenNong(target.selfData.totleTimes);\r\n // target.selfNode.getChildByName(\"timeLab\").getComponent(cc.Label).string = timeTemp + \"\";\r\n switch(target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string){\r\n case \"1\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"one\").active = true;\r\n break;\r\n case \"2\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"two\").active = true;\r\n break;\r\n case \"3\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"three\").active = true;\r\n break;\r\n }\r\n // 大排行\r\n if(nameLength == 6){\r\n target.rankList.setData(rankData);\r\n target.selfNode.opacity = 255;\r\n if(target.selfData.totalSunCount == 0) target.selfNode.opacity = 0;\r\n }\r\n },\r\n\r\n getSeedRandom: function (min, max) {//包含min 不包含max\r\n // console.log(\"随机数:\",cc.fx.GameConfig.GM_INFO.currSeed);\r\n max = max || 1;\r\n min = min || 0;\r\n cc.fx.GameConfig.GM_INFO.currSeed = (cc.fx.GameConfig.GM_INFO.currSeed * 9301 + 49297) % 233280;\r\n let rnd = cc.fx.GameConfig.GM_INFO.currSeed / 233280.0;\r\n let tmp = min + rnd * (max - min);\r\n return parseInt(tmp);\r\n },\r\n //获取关卡配置的那个关卡数\r\n getCustom(type){\r\n let custom = cc.fx.StorageMessage.getStorage(cc.fx.storageType.storageTypeCustom);\r\n if(custom == \"undifend\" || custom==null || custom == \"\"){\r\n this.setCustom();\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO_SET(\"custom\",custom[0]);\r\n if(custom[0] != 0 || type == true){\r\n custom.shift();\r\n if(custom.length == 0){\r\n this.setCustom();\r\n }\r\n else cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,custom);\r\n }\r\n }\r\n },\r\n //本地没有存储到配置,或者配置用完,重新创建配置\r\n setCustom(){\r\n let arrayLength = cc.fx.GameConfig.LEVEL_INFO.length;\r\n let arrayList = [];\r\n for(let i=1; i Math.random() - 0.5);\r\n arrayList.unshift(0)\r\n cc.fx.GameConfig.GM_INFO_SET(\"custom\",arrayList[0]);\r\n cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,arrayList);\r\n },\r\n\r\n\r\n getSetScreenResolutionFlag: function () {\r\n let size = cc.winSize;\r\n let width = size.width;\r\n let height = size.height;\r\n if ((height / width) > (16.2 / 9)) return false;\r\n return true;\r\n },\r\n //判断全面屏适配\r\n setFit: function (canvas) {\r\n let flag = cc.fx.GameTool.getSetScreenResolutionFlag();\r\n if (flag) {\r\n \t// console.log(\"不是全面屏\");\r\n } else {\r\n \t// console.log(\"是全面屏\");\r\n }\r\n return flag;\r\n },\r\n //获取游戏信息\r\n getGameInfo: function(node){\r\n var jg = false;\r\n return jg;\r\n },\r\n //设置游戏信息\r\n setGameInfo: function(pd){\r\n \r\n },\r\n\r\n //打乱数组\r\n shuffleArray(arr) {\r\n return arr.sort(() => Math.random() - 0.5);\r\n },\r\n\r\n //打字机效果\r\n typingAni(label,text,cb,target){\r\n var self = target;\r\n var html = '';\r\n var arr = text.split('');\r\n var len = arr.length;\r\n var step = 0;\r\n self.func = ()=>{\r\n html += arr[step];\r\n label.string = html;\r\n if (++step == len) {\r\n self.unschedule(self.func);\r\n cb && cb();\r\n }\r\n }\r\n self.schedule(self.func,0.1, cc.macro.REPEAT_FOREVER, 0)\r\n },\r\n\r\n //输入秒,返回需要展示时间格式\r\n getTimeMargin:(second) => {\r\n let total = 0;\r\n total = second;\r\n let hour = 0;\r\n hour = parseInt((total / 3600) + \"\");//计算整数小时数\r\n let afterHour = total - hour * 60 * 60;//取得算出小时数后剩余的秒数\r\n let min = parseInt((afterHour / 60)+\"\");//计算整数分\r\n let m = \"\" + min; \r\n if(min < 10) m = \"0\"+min;\r\n let afterMin = total - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"\";\r\n if(afterMin < 10) miao = \"0\" + afterMin;\r\n return m + ':' + miao\r\n },\r\n\r\n //输入秒,返回需要展示时间格式\r\n getTimeShenNong:(second) => {\r\n second = parseInt(second/1000+\"\");\r\n let total = 0;\r\n total = second;\r\n let min = 0;\r\n if(total > 60){\r\n min = parseInt((total / 60)+\"\");//计算整数分\r\n }\r\n let m = min + \"'\"; \r\n\r\n let afterMin = total - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"''\";\r\n return m + miao\r\n },\r\n\r\n //输入秒,返回需要展示时间格式\r\n getTimeLondon:(second) => {\r\n let total = 0;\r\n total = second;\r\n let min = 0;\r\n if(total >= 60){\r\n min = parseInt((total / 60)+\"\");//计算整数分\r\n }\r\n let m = min + \" 分\"; \r\n\r\n let afterMin = total - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \" 秒\";\r\n return m + \" \" + miao\r\n },\r\n\r\n //获取时间戳\r\n getTime(){\r\n var timestamp = (new Date().getTime())\r\n return timestamp;\r\n },\r\n pushLister:function () {\r\n \r\n },\r\n removeAllLister:function () {\r\n \r\n },\r\n\r\n};\r\nexport { GameTool };"]} \ No newline at end of file diff --git a/library/imports/43/43dea732-290b-4a7e-9d64-70a5f9812381.json b/library/imports/43/43dea732-290b-4a7e-9d64-70a5f9812381.json new file mode 100644 index 0000000..24dc33d --- /dev/null +++ b/library/imports/43/43dea732-290b-4a7e-9d64-70a5f9812381.json @@ -0,0 +1,29 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "texture19", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 739, + 841, + 80, + 70 + ], + "offset": [ + 0, + 1 + ], + "originalSize": [ + 114, + 114 + ], + "rotated": 1, + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js b/library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js new file mode 100644 index 0000000..39abbfb --- /dev/null +++ b/library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js @@ -0,0 +1,85 @@ +"use strict"; +cc._RF.push(module, '454adgphRpA6oq5lB6Cg1fK', 'Load'); +// Script/Load.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.localTest = false; + _this.clientTestVersion = "1.0.1"; + _this.testVersion = null; + return _this; + } + NewClass.prototype.start = function () { + cc.macro.ENABLE_MULTI_TOUCH = false; + window.initMgr(); + cc.fx.GameConfig.init(this.localTest); + // cc.fx.AudioManager.Instance.init(); + // this.testVersion.string = this.clientTestVersion; + }; + //开始游戏,跳转至引导页面 + NewClass.prototype.startGame = function () { + cc.fx.GameConfig.GM_INFO.isCustom = false; + cc.director.loadScene("GameScene"); + // cc.director.loadScene("GuideScene"); + }; + //备用,用来测试跳转 指定关卡 + NewClass.prototype.clickBtn = function (event, data) { + cc.fx.GameConfig.GM_INFO.level = parseInt(data); + cc.fx.GameConfig.GM_INFO.isCustom = true; + cc.director.loadScene("GameScene"); + }; + //打开排行榜 + NewClass.prototype.openRank = function () { + cc.director.loadScene("RankScene"); + }; + NewClass.prototype.showCustom = function () { + if (this.node.getChildByName("Custom").active) { + this.node.getChildByName("Custom").active = false; + } + else { + this.node.getChildByName("Custom").active = true; + } + }; + NewClass.prototype.update = function (dt) { + }; + __decorate([ + property(false) + ], NewClass.prototype, "localTest", void 0); + __decorate([ + property("") + ], NewClass.prototype, "clientTestVersion", void 0); + __decorate([ + property(cc.Label) + ], NewClass.prototype, "testVersion", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js.map b/library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js.map new file mode 100644 index 0000000..57ff77d --- /dev/null +++ b/library/imports/45/454ad829-851a-40ea-8ab9-941e828357ca.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\Load.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACM,IAAA,KAAwC,EAAE,CAAC,UAAU,EAApD,OAAO,aAAA,EAAE,QAAQ,cAAA,EAAE,gBAAgB,sBAAiB,CAAC;AAG5D;IAAsC,4BAAY;IAAlD;QAAA,qEAgDC;QA7CG,eAAS,GAAY,KAAK,CAAC;QAG3B,uBAAiB,GAAW,OAAO,CAAC;QAGpC,iBAAW,GAAa,IAAI,CAAC;;IAuCjC,CAAC;IArCG,wBAAK,GAAL;QACI,EAAE,CAAC,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC;QACpC,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEtC,sCAAsC;QACtC,oDAAoD;IACxD,CAAC;IAED,cAAc;IACd,4BAAS,GAAT;QACI,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC1C,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACnC,uCAAuC;IAC3C,CAAC;IACD,gBAAgB;IAChB,2BAAQ,GAAR,UAAS,KAAK,EAAC,IAAI;QACf,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChD,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IACD,OAAO;IACP,2BAAQ,GAAR;QACI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,6BAAU,GAAV;QACI,IAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAC;YACzC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;SACrD;aACG;YACA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;SACpD;IACL,CAAC;IAES,yBAAM,GAAhB,UAAiB,EAAU;IAC3B,CAAC;IA5CD;QADC,QAAQ,CAAC,KAAK,CAAC;+CACW;IAG3B;QADC,QAAQ,CAAC,EAAE,CAAC;uDACuB;IAGpC;QADC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;iDACU;IATZ,QAAQ;QAD5B,OAAO;OACa,QAAQ,CAgD5B;IAAD,eAAC;CAhDD,AAgDC,CAhDqC,EAAE,CAAC,SAAS,GAgDjD;kBAhDoB,QAAQ","file":"","sourceRoot":"/","sourcesContent":["\r\nconst {ccclass, property, requireComponent} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class NewClass extends cc.Component {\r\n\r\n @property(false)\r\n localTest: boolean = false;\r\n\r\n @property(\"\")\r\n clientTestVersion: string = \"1.0.1\";\r\n\r\n @property(cc.Label)\r\n testVersion: cc.Label = null;\r\n\r\n start () {\r\n cc.macro.ENABLE_MULTI_TOUCH = false;\r\n window.initMgr();\r\n cc.fx.GameConfig.init(this.localTest);\r\n \r\n // cc.fx.AudioManager.Instance.init();\r\n // this.testVersion.string = this.clientTestVersion;\r\n }\r\n\r\n //开始游戏,跳转至引导页面\r\n startGame(){\r\n cc.fx.GameConfig.GM_INFO.isCustom = false;\r\n cc.director.loadScene(\"GameScene\");\r\n // cc.director.loadScene(\"GuideScene\");\r\n }\r\n //备用,用来测试跳转 指定关卡\r\n clickBtn(event,data){\r\n cc.fx.GameConfig.GM_INFO.level = parseInt(data);\r\n cc.fx.GameConfig.GM_INFO.isCustom = true;\r\n cc.director.loadScene(\"GameScene\");\r\n } \r\n //打开排行榜\r\n openRank(){\r\n cc.director.loadScene(\"RankScene\");\r\n }\r\n\r\n showCustom(){\r\n if(this.node.getChildByName(\"Custom\").active){\r\n this.node.getChildByName(\"Custom\").active = false;\r\n }\r\n else{\r\n this.node.getChildByName(\"Custom\").active = true;\r\n }\r\n }\r\n \r\n protected update(dt: number): void {\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/46/4648a734-e59a-4d14-a07b-ce9ca5d5c62b.json b/library/imports/46/4648a734-e59a-4d14-a07b-ce9ca5d5c62b.json new file mode 100644 index 0000000..dbe1532 --- /dev/null +++ b/library/imports/46/4648a734-e59a-4d14-a07b-ce9ca5d5c62b.json @@ -0,0 +1,29 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "texture7", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 705, + 1003, + 92, + 44 + ], + "offset": [ + 0, + 1 + ], + "originalSize": [ + 114, + 114 + ], + "rotated": 1, + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/46/4660cc1d-1e61-43fe-89e0-40e0323c1096.json b/library/imports/46/4660cc1d-1e61-43fe-89e0-40e0323c1096.json new file mode 100644 index 0000000..10350e4 --- /dev/null +++ b/library/imports/46/4660cc1d-1e61-43fe-89e0-40e0323c1096.json @@ -0,0 +1,29 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "texture10", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 671, + 1197, + 86, + 62 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 114, + 114 + ], + "rotated": 1, + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/46/466d4f9b-e5f4-4ea8-85d5-3c6e9a65658a.json b/library/imports/46/466d4f9b-e5f4-4ea8-85d5-3c6e9a65658a.json new file mode 100644 index 0000000..e2f3cfe --- /dev/null +++ b/library/imports/46/466d4f9b-e5f4-4ea8-85d5-3c6e9a65658a.json @@ -0,0 +1,18 @@ +{ + "__type__": "cc.Material", + "_name": "builtin-3d-trail", + "_objFlags": 0, + "_native": "", + "_effectAsset": { + "__uuid__": "2a7c0036-e0b3-4fe1-8998-89a54b8a2bec" + }, + "_techniqueData": { + "0": { + "props": { + "mainTexture": { + "__uuid__": "0275e94c-56a7-410f-bd1a-fc7483f7d14a" + } + } + } + } +} \ No newline at end of file diff --git a/library/imports/47/472df5d3-35e7-4184-9e6c-7f41bee65ee3.json b/library/imports/47/472df5d3-35e7-4184-9e6c-7f41bee65ee3.json new file mode 100644 index 0000000..aa87208 --- /dev/null +++ b/library/imports/47/472df5d3-35e7-4184-9e6c-7f41bee65ee3.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "atom", + "texture": "d0a82d39-bede-46c4-b698-c81ff0dedfff", + "atlas": "", + "rect": [ + 0, + 0, + 31, + 31 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 31, + 31 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/48/48f0add1-7741-4b9a-b25e-186ad457e4ac.json b/library/imports/48/48f0add1-7741-4b9a-b25e-186ad457e4ac.json new file mode 100644 index 0000000..70cdb8d --- /dev/null +++ b/library/imports/48/48f0add1-7741-4b9a-b25e-186ad457e4ac.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "daan", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 719, + 1285, + 46, + 74 + ], + "offset": [ + 0, + 1 + ], + "originalSize": [ + 114, + 114 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/4a/4a37dd57-78cd-4cec-aad4-f11a73d12b63.json b/library/imports/4a/4a37dd57-78cd-4cec-aad4-f11a73d12b63.json new file mode 100644 index 0000000..383aa8b --- /dev/null +++ b/library/imports/4a/4a37dd57-78cd-4cec-aad4-f11a73d12b63.json @@ -0,0 +1,104 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "richtext", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 1, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "richText", + "_objFlags": 0, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_cascadeOpacityEnabled": true, + "_parent": null, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 153.38, + "height": 50 + }, + "_children": [], + "_skewX": 0, + "_skewY": 0, + "_localZOrder": 0, + "_globalZOrder": 0, + "_tag": -1, + "_opacityModifyRGB": false, + "_id": "", + "_active": true, + "_components": [ + { + "__id__": 2 + } + ], + "_prefab": { + "__id__": 3 + }, + "groupIndex": 0, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1 + ] + } + }, + { + "__type__": "cc.RichText", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_useOriginalSize": true, + "_N$string": "RichText", + "_N$horizontalAlign": 0, + "_N$fontSize": 40, + "_N$maxWidth": 0, + "_N$lineHeight": 50 + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "4a37dd57-78cd-4cec-aad4-f11a73d12b63" + }, + "fileId": "fd4fe1WoCpJK6rVCZ13Z14R" + } +] \ No newline at end of file diff --git a/library/imports/4b/4b9c5a7e-c645-48a4-9aca-5df381ce4ef5.json b/library/imports/4b/4b9c5a7e-c645-48a4-9aca-5df381ce4ef5.json new file mode 100644 index 0000000..b2f7f9f --- /dev/null +++ b/library/imports/4b/4b9c5a7e-c645-48a4-9aca-5df381ce4ef5.json @@ -0,0 +1,275 @@ +[ + { + "__type__": "cc.SceneAsset", + "_name": "OverScene", + "_objFlags": 0, + "_native": "", + "scene": { + "__id__": 1 + }, + "asyncLoadAssets": false + }, + { + "__type__": "cc.Scene", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": false, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "autoReleaseAssets": true, + "_id": "4b9c5a7e-c645-48a4-9aca-5df381ce4ef5" + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + } + ], + "_active": true, + "_components": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 375, + 667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a5esZu+45LA5mBpvttspPD" + }, + { + "__type__": "cc.Node", + "_name": "Main Camera", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 960, + "height": 640 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e1WoFrQ79G7r4ZuQE3HlNb" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "_cullingMask": 4294967295, + "_clearFlags": 7, + "_backgroundColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": -1, + "_zoomRatio": 1, + "_targetTexture": null, + "_fov": 60, + "_orthoSize": 10, + "_nearClip": 1, + "_farClip": 4096, + "_ortho": true, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_renderStages": 1, + "_alignWithScreen": true, + "_id": "81GN3uXINKVLeW4+iKSlim" + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_designResolution": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_fitWidth": true, + "_fitHeight": false, + "_id": "59Cd0ovbdF4byw5sbjJDx7" + }, + { + "__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": 0, + "_originalHeight": 0, + "_id": "29zXboiXFBKoIV4PQ2liTe" + } +] \ No newline at end of file diff --git a/library/imports/4b/4bab67cb-18e6-4099-b840-355f0473f890.json b/library/imports/4b/4bab67cb-18e6-4099-b840-355f0473f890.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/4b/4bab67cb-18e6-4099-b840-355f0473f890.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/4b/4bab67cb-18e6-4099-b840-355f0473f890.png b/library/imports/4b/4bab67cb-18e6-4099-b840-355f0473f890.png new file mode 100644 index 0000000000000000000000000000000000000000..388f6f03f385c221cc298b66e950d6a00c1d7b54 GIT binary patch literal 1178 zcmeAS@N?(olHy`uVBq!ia0vp^azM<_!3HEh@2Z~zq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1FfglShD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Keo~drKfuV_lxuu?= zsiBF5p^k!)fuXU!fw8`!v96(!m4T&|p{W8CC;@FNN=dT{a&d#&1?1T(Wt5Z@Sn2DR zmzV368|&p4rRy77T3YHG80i}s=>k>g7FXt#Bv$C=6)VF`a7isrF3Kz@$;{7F0GXJW zlwVq6s|0i@#0$9vzP@mS^NOJX1q?F%io^naLp=li++2{qz^aQ&f>IIAz^b}9q_QAY zKPa_0zqBYB7$0fMFwMZQ!*3BtA<#8eF8Rr&xv6<2o-VdZKoPx^%oHm(CsQ*wXJaFC z6E{;sLsttY7c&Dl14m~|3o|okb8|PCUeCPZlEl2^RG8jOgkD3udaay`QWHz^i$e1A zb6~L-kda@KU!0L&py2EbiY*fbjquF8l>G8yO;GScU7K2zS(cjOR+OKs01h9kOe}7& zG5y(w7y4%O>|Q?EYIG5Vm$MT%^g z5HJOSnDC?vdVz^AkgaTv%s=R&hgE@ z3vkQ<&}p#WG?j{NaeIJYx zB0tC`ES?&*;KY&uQRffLG0_$?x>hM=cvv_pIy~&{nQ>6>3hVn^(|xK2TW8ljU6my6 z^Sb(g-khY+jklxLtv$H<>AX|hD~>c2`oFZ!eDR_3RQz}Slpi*t^3`@citB{a1$Mmt zz3+0A^ghEQA;lUI35%{?U7hKrlW@heITMXsdg=&t>&)v`(HJ89}^G5m(_m+ Tespxc2bC6{u6{1-oD!Mk literal 0 HcmV?d00001 diff --git a/library/imports/4c/4c7c1f0b-ebe7-4025-8148-ac61cb2a2d8f.json b/library/imports/4c/4c7c1f0b-ebe7-4025-8148-ac61cb2a2d8f.json new file mode 100644 index 0000000..45e9398 --- /dev/null +++ b/library/imports/4c/4c7c1f0b-ebe7-4025-8148-ac61cb2a2d8f.json @@ -0,0 +1,29 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "top", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 685, + 1, + 750, + 127 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 750, + 127 + ], + "rotated": 1, + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/4d/4dd594fe-a599-468b-a82e-4a36f5133ec1.json b/library/imports/4d/4dd594fe-a599-468b-a82e-4a36f5133ec1.json new file mode 100644 index 0000000..3c6a58c --- /dev/null +++ b/library/imports/4d/4dd594fe-a599-468b-a82e-4a36f5133ec1.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "err", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 715, + 1361, + 57, + 49 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 57, + 49 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/4e/4eaf518b-35ec-4262-928d-4d497c3f2830.json b/library/imports/4e/4eaf518b-35ec-4262-928d-4d497c3f2830.json new file mode 100644 index 0000000..3f5d363 --- /dev/null +++ b/library/imports/4e/4eaf518b-35ec-4262-928d-4d497c3f2830.json @@ -0,0 +1,3211 @@ +[ + { + "__type__": "cc.SceneAsset", + "_name": "GameScene", + "_objFlags": 0, + "_native": "", + "scene": { + "__id__": 1 + }, + "asyncLoadAssets": false + }, + { + "__type__": "cc.Scene", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": false, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "autoReleaseAssets": true, + "_id": "4eaf518b-35ec-4262-928d-4d497c3f2830" + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + }, + { + "__id__": 5 + } + ], + "_active": true, + "_components": [ + { + "__id__": 67 + }, + { + "__id__": 68 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 375, + 667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a5esZu+45LA5mBpvttspPD" + }, + { + "__type__": "cc.Node", + "_name": "Main Camera", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 960, + "height": 640 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e1WoFrQ79G7r4ZuQE3HlNb" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "_cullingMask": 4294967295, + "_clearFlags": 7, + "_backgroundColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": -1, + "_zoomRatio": 1, + "_targetTexture": null, + "_fov": 60, + "_orthoSize": 10, + "_nearClip": 1, + "_farClip": 4096, + "_ortho": true, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_renderStages": 1, + "_alignWithScreen": true, + "_id": "81GN3uXINKVLeW4+iKSlim" + }, + { + "__type__": "cc.Node", + "_name": "GameNode", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 6 + }, + { + "__id__": 8 + }, + { + "__id__": 10 + }, + { + "__id__": 13 + }, + { + "__id__": 39 + }, + { + "__id__": 41 + }, + { + "__id__": 61 + } + ], + "_active": true, + "_components": [ + { + "__id__": 65 + }, + { + "__id__": 66 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "b0VHqWWqlJ4qVyuwnLGCWw" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1660 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "78Sk802p9L/Ip+ZPEFbJnp" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "36b6bacf-2b42-4105-b5ae-89638029e07b" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "76jLexG/ZCWKRhLE23/DmU" + }, + { + "__type__": "cc.Node", + "_name": "gezi", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 9 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 682, + "height": 682 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "deuN+RqPVOL7aPYkbITraW" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "17af346d-cfbe-4ad2-b2d3-e469d3dcc1a8" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "45bvM0WjFLYKCO0H2jKu8N" + }, + { + "__type__": "cc.Node", + "_name": "Block", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 11 + }, + { + "__id__": 12 + } + ], + "_active": true, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 25, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "94ah0p8lVKAr7i4brV6jPj" + }, + { + "__type__": "cc.Node", + "_name": "inside", + "_objFlags": 0, + "_parent": { + "__id__": 10 + }, + "_children": [], + "_active": true, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e2Jn8DMJNFdo8lTeb2rK4c" + }, + { + "__type__": "cc.Node", + "_name": "outside", + "_objFlags": 0, + "_parent": { + "__id__": 10 + }, + "_children": [], + "_active": true, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "766/905WJME4onjR15oPn+" + }, + { + "__type__": "cc.Node", + "_name": "Top", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 14 + }, + { + "__id__": 16 + }, + { + "__id__": 18 + }, + { + "__id__": 20 + }, + { + "__id__": 22 + }, + { + "__id__": 24 + }, + { + "__id__": 26 + }, + { + "__id__": 28 + }, + { + "__id__": 30 + }, + { + "__id__": 32 + }, + { + "__id__": 34 + }, + { + "__id__": 36 + } + ], + "_active": true, + "_components": [ + { + "__id__": 38 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "ccqfR9VQxGGoGkDkWlHLCr" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 15 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 127 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -64.575, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "f7S28jqDxGba4Tn8zGeYBV" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "4c7c1f0b-ebe7-4025-8148-ac61cb2a2d8f" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "1bf4KPF19MAZvWnc9NQtNq" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 17 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 225.516, + -27.081, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "b2QazzR6xM+rUKHTRlk3uA" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 16 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "5f924dc2-df92-448a-8b30-f4d0cbaae29c" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "a56Q8R7h9FBJHqZYOXZSRh" + }, + { + "__type__": "cc.Node", + "_name": "progress", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 19 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 344, + "height": 88 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -172, + -47.117, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "5aDGuYtC9PPaqll2DZrh+R" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 18 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "da411ff5-9431-4eec-8943-b2e786a28415" + }, + "_type": 3, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "a5oPWevqJEea0zXOVwMrLq" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 21 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 30, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -102.254, + -56.575, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "28QBCXPFJP34lzjTYviLs/" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8425f40b-c669-446a-ab0b-2daf892ef5c2" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "8btj95waFNAZB7aG5+5sPX" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 23 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 30, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0.871, + -84.206, + 0, + 0, + 0, + 0.25881904510252074, + 0.9659258262890683, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 30 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "3660I3fR9HGa8TFc9UHIxK" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 22 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8425f40b-c669-446a-ab0b-2daf892ef5c2" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "04L9zBz5lNZ6CqbO0wEF2i" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 25 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 30, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 102.254, + -57.272, + 0, + 0, + 0, + -0.08715574274765817, + 0.9961946980917455, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": -10 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a5/zgEmxJMhq1QAMBZvViw" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 24 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8425f40b-c669-446a-ab0b-2daf892ef5c2" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "33Kzj2sF5BALfGRsE/283z" + }, + { + "__type__": "cc.Node", + "_name": "time", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 27 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 248, + "g": 234, + "b": 199, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 87.59, + "height": 44.1 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 301.784, + -27.081, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "1cgi/VVFVNTohRzMELqUFC" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 26 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "00:00", + "_N$string": "00:00", + "_fontSize": 35, + "_lineHeight": 35, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "7c/Thczj1DDqZr67azD/vg" + }, + { + "__type__": "cc.Node", + "_name": "lianxi", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 29 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 248, + "g": 234, + "b": 199, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 126.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -262.714, + -26.184, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "cayisXp3RCXIYf9oqnE/Qd" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 28 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "第 轮", + "_N$string": "第 轮", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "5fsyYuhy1AzLCDkhL01Izi" + }, + { + "__type__": "cc.Node", + "_name": "level", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 31 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 248, + "g": 234, + "b": 199, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 22.25, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -262.714, + -26.184, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "46kNYNocVO27MPt+G5C5dk" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 30 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1", + "_N$string": "1", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "024B6uP85IfZ6OiIklg+xR" + }, + { + "__type__": "cc.Node", + "_name": "star1", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 33 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -102.254, + -56.575, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "6eSUtXbbJBk6dDMAP97jBR" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 32 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "a2yzrkWtBGu5n6/lVs3E6F" + }, + { + "__type__": "cc.Node", + "_name": "star2", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 35 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0.871, + -84.206, + 0, + 0, + 0, + 0.25881904510252074, + 0.9659258262890683, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 30 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "0fjQrep25EPoANYqXpQBxY" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 34 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "56zKAo9qJGNYwUiro8TNrT" + }, + { + "__type__": "cc.Node", + "_name": "star3", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 37 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 102.254, + -57.272, + 0, + 0, + 0, + -0.08715574274765817, + 0.9961946980917455, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": -10 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "4fx8ezI8NKRKIShom1u7Mg" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 36 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "1061u5qxxKqp0GcwBsZ/3i" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 13 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 1, + "_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": 0, + "_originalHeight": 0, + "_id": "b8uytztWJHU5DR3wBGgIUY" + }, + { + "__type__": "cc.Node", + "_name": "tip", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 40 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 248, + "g": 234, + "b": 199, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 80, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 381.5, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "df7d+tTuFLIqAht/SwZZOv" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 39 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "练习", + "_N$string": "练习", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "70YS2zSnZKWowRhZaw07yK" + }, + { + "__type__": "cc.Node", + "_name": "Guide", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 42 + }, + { + "__id__": 46 + }, + { + "__id__": 48 + }, + { + "__id__": 50 + }, + { + "__id__": 52 + }, + { + "__id__": 54 + }, + { + "__id__": 56 + } + ], + "_active": false, + "_components": [ + { + "__id__": 60 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "ba8b6ruCtC7q2FfTXpbfir" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite(Splash)", + "_objFlags": 0, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 43 + }, + { + "__id__": 44 + }, + { + "__id__": 45 + } + ], + "_prefab": null, + "_opacity": 30, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "67jAT7pfxK8ITzRPp7F8yd" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 42 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "a8QJoo7HxJzatd2XAmn6dv" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 42 + }, + "_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": 750, + "_originalHeight": 1334, + "_id": "fcBQqrvGpJCrymGl8t7upS" + }, + { + "__type__": "cc.BlockInputEvents", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 42 + }, + "_enabled": true, + "_id": "4cW3HTcrVCD5xw4ESURcK0" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 47 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 728, + "height": 440 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "08kx2QK4NH8L48lGNWGSv1" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 46 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "fcbb8992-3ccc-4495-a18b-7d436796a992" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "45F6qZlUlIwLroErTvZ30O" + }, + { + "__type__": "cc.Node", + "_name": "one", + "_objFlags": 0, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 49 + } + ], + "_prefab": null, + "_opacity": 0, + "_color": { + "__type__": "cc.Color", + "r": 175, + "g": 127, + "b": 79, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 600, + "height": 195.6 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -6.417, + 48.77, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "ba6I+/BUZO9aK0TJd3fUuO" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 48 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "屏幕中央会短暂出现一个零件图样,接下来请找出相同形状的零件并选中它。", + "_N$string": "屏幕中央会短暂出现一个零件图样,接下来请找出相同形状的零件并选中它。", + "_fontSize": 40, + "_lineHeight": 60, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 3, + "_N$cacheMode": 0, + "_id": "2bZKhqTShIQ4zL4DBI+ogY" + }, + { + "__type__": "cc.Node", + "_name": "two", + "_objFlags": 0, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 51 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 175, + "g": 127, + "b": 79, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 600, + "height": 195.6 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -6.417, + 30.651, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e2uU6JJXRPhrTzwzMr46ip" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 50 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "接下来,周围的平台上会出现一个或很多零件,找到独一无二的零件。", + "_N$string": "接下来,周围的平台上会出现一个或很多零件,找到独一无二的零件。", + "_fontSize": 40, + "_lineHeight": 60, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 3, + "_N$cacheMode": 0, + "_id": "c9cneBsDJDt78ba51U8T5g" + }, + { + "__type__": "cc.Node", + "_name": "three", + "_objFlags": 0, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 53 + } + ], + "_prefab": null, + "_opacity": 0, + "_color": { + "__type__": "cc.Color", + "r": 175, + "g": 127, + "b": 79, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 650, + "height": 255.6 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -6.417, + 42.181, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "87GoM/vs9FsKjTOJrdIeGq" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 52 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "最后阶段,周围和中心会同时出现零件,你需要同时应对两种规则,加油!\n提示:中间区域找出相同零件,周边区域找出唯一的零件。", + "_N$string": "最后阶段,周围和中心会同时出现零件,你需要同时应对两种规则,加油!\n提示:中间区域找出相同零件,周边区域找出唯一的零件。", + "_fontSize": 38, + "_lineHeight": 60, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 3, + "_N$cacheMode": 0, + "_id": "15/tKDB9FL855eg+2MDLBu" + }, + { + "__type__": "cc.Node", + "_name": "four", + "_objFlags": 0, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 55 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 175, + "g": 127, + "b": 79, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 600, + "height": 75.6 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -6.417, + 30.651, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "1cDlLWPrRNJ600AzFcaVzP" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 54 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "恭喜你完成练习!", + "_N$string": "恭喜你完成练习!", + "_fontSize": 40, + "_lineHeight": 60, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 3, + "_N$cacheMode": 0, + "_id": "6coPxjcQVETonSgK/9aySZ" + }, + { + "__type__": "cc.Node", + "_name": "btn", + "_objFlags": 0, + "_parent": { + "__id__": 41 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 57 + }, + { + "__id__": 58 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 270, + "height": 72 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -142.46, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "c0xqOlsXtKuaXSp8G3XIla" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 56 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d95bdbfb-bf4f-4a2a-8063-86225e9583e9" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "8fspnMZZJHHotZJH2bxK5o" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 56 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + { + "__id__": 59 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": { + "__id__": 56 + }, + "_id": "b4zgv7XfxIBbRvQbyAIg15" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 5 + }, + "component": "", + "_componentId": "b0432BA295DjIOcuitdGKO1", + "handler": "closeGuide", + "customEventData": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 41 + }, + "_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": 0, + "_originalHeight": 0, + "_id": "a9q+UQqOJO77l3KXdsColU" + }, + { + "__type__": "cc.Node", + "_name": "Mask", + "_objFlags": 0, + "_parent": { + "__id__": 5 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 62 + }, + { + "__id__": 63 + }, + { + "__id__": 64 + } + ], + "_prefab": null, + "_opacity": 0, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "7dOfd/xzxJ8r6o5vJnOmsM" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 61 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "a23235d1-15db-4b95-8439-a2e005bfff91" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "9dZcl/TBBO07vFGUfwYgWH" + }, + { + "__type__": "cc.BlockInputEvents", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 61 + }, + "_enabled": true, + "_id": "22dO7HxEZETrHjiHW4YMwF" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 61 + }, + "_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": 750, + "_originalHeight": 1334, + "_id": "e8OCUlj+hLmLYOXmbttupc" + }, + { + "__type__": "b0432BA295DjIOcuitdGKO1", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "kuang1_Prefab": { + "__uuid__": "5e344685-dbe0-4509-8b66-27ddb72e2d23" + }, + "kuang2_Prefab": { + "__uuid__": "5e344685-dbe0-4509-8b66-27ddb72e2d23" + }, + "Block": { + "__id__": 10 + }, + "TimeLabel": { + "__id__": 27 + }, + "LevelLabel": { + "__id__": 31 + }, + "Guide": { + "__id__": 41 + }, + "progress": { + "__id__": 19 + }, + "Top": { + "__id__": 13 + }, + "_id": "7dXON6+8BHRrnLvjmlXv+P" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_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": 0, + "_originalHeight": 0, + "_id": "dfOLca1KVCyLxvg197AIBc" + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_designResolution": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_fitWidth": true, + "_fitHeight": false, + "_id": "59Cd0ovbdF4byw5sbjJDx7" + }, + { + "__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": 0, + "_originalHeight": 0, + "_id": "29zXboiXFBKoIV4PQ2liTe" + } +] \ No newline at end of file diff --git a/library/imports/55/55403563-1a5a-4f2f-9eb8-82c762641837.js b/library/imports/55/55403563-1a5a-4f2f-9eb8-82c762641837.js new file mode 100644 index 0000000..640d5e7 --- /dev/null +++ b/library/imports/55/55403563-1a5a-4f2f-9eb8-82c762641837.js @@ -0,0 +1,52 @@ +"use strict"; +cc._RF.push(module, '55403VjGlpPL564gsdiZBg3', 'Notification'); +// Script/module/Notification/Notification.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Notifications = void 0; +//全局通知 +var Notifications = { + _eventMap: [], + on: function (masgId, callback, target) { + if (this._eventMap[masgId] === undefined) { + this._eventMap[masgId] = []; + } + this._eventMap[masgId].push({ callback: callback, target: target }); + }, + emit: function (masgId, parameter) { + var array = this._eventMap[masgId]; + if (array === undefined) + return; + for (var i = 0; i < array.length; i++) { + var element = array[i]; + if (element) + element.callback.call(element.target, parameter); + } + }, + off: function (masgId, callback) { + var array = this._eventMap[masgId]; + if (array === undefined) + return; + for (var i = 0; i < array.length; i++) { + var element = array[i]; + if (element && element.callback === callback) { + array[i] = undefined; + break; + } + } + }, + offMasgId: function (masgId) { + this._eventMap[masgId] = undefined; + }, + removeAllMsg: function () { + for (var k in this._eventMap) { + if (this._eventMap[k]) { + this.offMasgId(k); + } + } + } +}; +exports.Notifications = Notifications; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/55/55403563-1a5a-4f2f-9eb8-82c762641837.js.map b/library/imports/55/55403563-1a5a-4f2f-9eb8-82c762641837.js.map new file mode 100644 index 0000000..cf8fb4a --- /dev/null +++ b/library/imports/55/55403563-1a5a-4f2f-9eb8-82c762641837.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Notification\\Notification.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAM;AACN,IAAI,aAAa,GAAG;IAChB,SAAS,EAAE,EAAE;IACb,EAAE,EAAE,UAAU,MAAM,EAAE,QAAQ,EAAE,MAAM;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,EAAE,UAAU,MAAM,EAAE,SAAS;QAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,OAAO;gBAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SACjE;IACL,CAAC;IAED,GAAG,EAAE,UAAU,MAAM,EAAE,QAAQ;QAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBACrB,MAAM;aACT;SACJ;IACL,CAAC;IAED,SAAS,EAAE,UAAU,MAAM;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACvC,CAAC;IAED,YAAY,EAAE;QACV,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;YAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACrB;SACJ;IACL,CAAC;CACJ,CAAC;AACO,sCAAa","file":"","sourceRoot":"/","sourcesContent":["//全局通知\nvar Notifications = {\n _eventMap: [],\n on: function (masgId, callback, target) {\n if (this._eventMap[masgId] === undefined) {\n this._eventMap[masgId] = [];\n }\n this._eventMap[masgId].push({ callback: callback, target: target });\n },\n\n emit: function (masgId, parameter) {\n let array = this._eventMap[masgId];\n if (array === undefined) return;\n\n for (let i = 0; i < array.length; i++) {\n let element = array[i];\n if (element) element.callback.call(element.target, parameter);\n }\n },\n\n off: function (masgId, callback) {\n let array = this._eventMap[masgId];\n if (array === undefined) return;\n for (let i = 0; i < array.length; i++) {\n let element = array[i];\n if (element && element.callback === callback) {\n array[i] = undefined;\n break;\n }\n }\n },\n\n offMasgId: function (masgId) {\n this._eventMap[masgId] = undefined;\n },\n\n removeAllMsg: function () {\n for (let k in this._eventMap) {\n if (this._eventMap[k]) {\n this.offMasgId(k);\n }\n }\n }\n};\nexport { Notifications };"]} \ No newline at end of file diff --git a/library/imports/56/567dcd80-8bf4-4535-8a5a-313f1caf078a.json b/library/imports/56/567dcd80-8bf4-4535-8a5a-313f1caf078a.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/56/567dcd80-8bf4-4535-8a5a-313f1caf078a.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/56/567dcd80-8bf4-4535-8a5a-313f1caf078a.png b/library/imports/56/567dcd80-8bf4-4535-8a5a-313f1caf078a.png new file mode 100644 index 0000000000000000000000000000000000000000..4b9602c1af6ca6f747ca19b6fc4f14b5907b2c12 GIT binary patch literal 1675 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%!-*I5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s0;1ij|p@sjG>Tlc~9hsimQztA(SBo1=@1xw)~i zi=~T^u_;WiOMY@`Zfaf$Om7N8uNh9gpp=kX0JPa9wJ5VJHN~wcKUV?lW2;QuZZXDb z9#n4%Znv1=)TVL91WY_2COp*wIq-C!ng>kmMZi>DD|JK|m{}M+T^vIy zZoLWj&6WxjnQN#ev3Zs0vt}{f+^ZQ*n_rqKiN1=;TH5-j+>65swz;N;XcR{Cx0Upmk|5TQ;QWA_k%hYklyVgF5w+5PE_j5-NjH&%T=5N9IQd$HL@dH$4d z8>_Vhl?4wn3*YEs@_4xF^wX-H`}Xa#)qFea+%_HM159cg4lbO+SoPc{I!ph~7NrY7 zg%1LRKAgzgZk-;xGfIu)HY=Yh>9(q9djs>3C6_d5wo)8KaCaYrxj5X{VpA-x~EchF>tKD1k{@CTr^hm6<+rmzodR zD5X4&WKjG2*LABzr`fA7Z{Fw}<~g=SX~`3g1jfl5)^GjQn4>ni@WS8RMM1x^mV}fz zW|cSJnKx0JNh~I?Ow9Y6nGE0ln>TNAPG*SfR-Cvd=D?}TFHKI^`=*{eHuKWozkemX zR*8AD1<&$OnW1^MZ*$V-8=o33zr6GH_uqTHy}juvr{5Yy-&+;7`o6xNUe{Ew)|;QQ vWA|~ZIORy$``p@9H{(wIoO`Li)ekTP{k>2VDb*zksvbOD{an^LB{Ts5i%E{U literal 0 HcmV?d00001 diff --git a/library/imports/57/573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc.json b/library/imports/57/573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc.json new file mode 100644 index 0000000..3093c85 --- /dev/null +++ b/library/imports/57/573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "xingxing02", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 769, + 1209, + 40, + 40 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 40, + 40 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/58/58403fe7-d7a2-426b-9b19-84d3236731a8.js b/library/imports/58/58403fe7-d7a2-426b-9b19-84d3236731a8.js new file mode 100644 index 0000000..8b62d87 --- /dev/null +++ b/library/imports/58/58403fe7-d7a2-426b-9b19-84d3236731a8.js @@ -0,0 +1,250 @@ +"use strict"; +cc._RF.push(module, '58403/n16JCa5sZhNMjZzGo', 'AudioManager'); +// Script/module/Music/AudioManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var AudioManager = /** @class */ (function (_super) { + __extends(AudioManager, _super); + function AudioManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + //背景音乐 + _this.audioGameBgm0 = null; + _this.chehui = null; + _this.jineng = null; + _this.qingkong = null; + _this.fangxiang = null; + _this.build = null; + _this.win = null; + _this.lose = null; + return _this; + } + AudioManager_1 = AudioManager; + AudioManager.prototype.onLoad = function () { + if (AudioManager_1._instance == null) { + AudioManager_1._instance = this; + cc.game.addPersistRootNode(this.node); + } + else { + return; + } + this.reward = false; + this.finish = false; + this.rewardCount = 0; + this.ctor(); + this.preload(); + }; + AudioManager.prototype.ctor = function () { + this.mAudioMap = {}; + /** + * 默认音量大小 + * @type {number} + */ + this.bgMusicVolume = 0.1; + this.effectMusicVolume = 1; + this.mMusicSwitch = 1; + this.mEffectSwitch = 1; + }; + AudioManager.prototype.play = function (audioSource, loop, callback, isBgMusic) { + // if (isBgMusic && !this.mMusicSwitch) return; + // if (!isBgMusic && !this.mEffectSwitch) return; + var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume; + // if (cc.sys.isBrowser) { + // if(audioSource == this.brickSound){ + // volume = 0.1; + // } + volume = 1; + cc.audioEngine.setEffectsVolume(1); + cc.audioEngine.setMusicVolume(1); + if (audioSource.name == "lose") { + cc.audioEngine.setEffectsVolume(0.5); + } + else { + cc.audioEngine.setEffectsVolume(1); + } + var context = cc.audioEngine.playEffect(audioSource, loop); + if (callback) { + cc.audioEngine.setFinishCallback(context, function () { + callback.call(this); + }.bind(this)); + } + // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src); + this.mAudioMap[audioSource] = context; + return audioSource; + // } else { + // return audioSource; + // } + }; + AudioManager.prototype.save = function () { + // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch); + // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch); + }; + // static get Instance() + // { + // if (this._instance == null) + // { + // this._instance = new AudioManager(); + // } + // return this._instance; + // } + AudioManager.prototype.preload = function () { + if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { + return; + } + var musics = [ + this.audioGameBgm0, + ]; + musics.forEach(function (path) { + }); + }; + AudioManager.prototype.getAudioMusicSwitch = function () { + return this.mMusicSwitch; + }; + AudioManager.prototype.getAudioEffectSwitch = function () { + return this.mEffectSwitch; + }; + AudioManager.prototype.trunAudioSound = function (on) { + this.switchMusic(on); + this.switchEffect(on); + }; + AudioManager.prototype.switchMusic = function (on) { + if (this.mMusicSwitch != (on ? 1 : 0)) { + this.mMusicSwitch = 1 - this.mMusicSwitch; + // this.save(); + } + if (on) { + this.playMusicGame(); + } + else { + this.stopMusic(); + } + }; + AudioManager.prototype.switchEffect = function (on) { + if (this.mEffectSwitch != (on ? 1 : 0)) { + this.mEffectSwitch = 1 - this.mEffectSwitch; + // this.save(); + } + }; + AudioManager.prototype.onHide = function () { + cc.audioEngine.pauseAll(); + }; + AudioManager.prototype.onShow = function () { + cc.audioEngine.resumeAll(); + }; + //播放音效 + AudioManager.prototype.playEffect = function (name, callback) { + if (this[name]) + return this.play(this[name], false, callback, this.mEffectSwitch); + }; + AudioManager.prototype.playMusic = function (key, callback, loop) { + loop = typeof loop == 'undefined' || loop ? true : false; + this.stopMusic(); + this.mMusicKey = this.play(key, loop, callback, true); + }; + /** + * 游戏背景音乐 + */ + AudioManager.prototype.playMusicGame = function () { + this.playMusic(this.audioGameBgm0, {}, true); + }; + /** + * 停止背景音乐播放 + */ + AudioManager.prototype.stopMusic = function () { + // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey); + var context = this.mAudioMap[this.mMusicKey]; + if (typeof (context) != 'undefined') { + if (cc.sys.isBrowser) { + cc.audioEngine.stop(context); + } + else { + context.stop(); + } + cc.audioEngine.stop(context); + } + }; + /* + * 游戏开始音效 + * + */ + AudioManager.prototype.playGameStart = function () { + }; + /* + * 失败的游戏结束 + */ + AudioManager.prototype.playGameOver = function () { + }; + /* + * 成功的游戏结束 + */ + AudioManager.prototype.playGameResultFailed = function () { + }; + /* + * 成功的游戏结束 + */ + AudioManager.prototype.playGameResultSuccess = function () { + }; + /** + * 报警的音效 + */ + /** + * 按钮 + */ + AudioManager.prototype.playAudioButton = function () { + // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch); + }; + var AudioManager_1; + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "audioGameBgm0", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "chehui", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "jineng", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "qingkong", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "fangxiang", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "build", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "win", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "lose", void 0); + AudioManager = AudioManager_1 = __decorate([ + ccclass + ], AudioManager); + return AudioManager; +}(cc.Component)); +exports.default = AudioManager; +; +// export { AudioManager }; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/58/58403fe7-d7a2-426b-9b19-84d3236731a8.js.map b/library/imports/58/58403fe7-d7a2-426b-9b19-84d3236731a8.js.map new file mode 100644 index 0000000..d5c3c5d --- /dev/null +++ b/library/imports/58/58403fe7-d7a2-426b-9b19-84d3236731a8.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Music\\AudioManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\n\nconst {ccclass, property} = cc._decorator;\n@ccclass\nexport default class AudioManager extends cc.Component {\n static _instance: any;\n //背景音乐\n @property(cc.AudioClip)\n audioGameBgm0: cc.AudioClip = null;\n\n @property(cc.AudioClip)\n chehui: cc.AudioClip = null;\n @property(cc.AudioClip)\n jineng: cc.AudioClip = null;\n @property(cc.AudioClip)\n qingkong: cc.AudioClip = null;\n @property(cc.AudioClip)\n fangxiang: cc.AudioClip = null;\n @property(cc.AudioClip)\n build: cc.AudioClip = null;\n @property(cc.AudioClip)\n win: cc.AudioClip = null;\n @property(cc.AudioClip)\n lose: cc.AudioClip = null;\n\n\n\n\n mAudioMap: {};\n bgMusicVolume: number;\n effectMusicVolume: number;\n mMusicSwitch: number;\n mEffectSwitch: number;\n brickSound: any;\n reward: boolean;\n finish: boolean;\n rewardCount: number;\n mMusicKey: any;\n\n onLoad() {\n if (AudioManager._instance == null) {\n AudioManager._instance = this;\n cc.game.addPersistRootNode(this.node);\n }\n else {\n return;\n }\n this.reward = false;\n this.finish = false;\n this.rewardCount = 0;\n this.ctor();\n\n this.preload();\n }\n\n ctor () {\n this.mAudioMap = {};\n /**\n * 默认音量大小\n * @type {number}\n */\n this.bgMusicVolume = 0.1;\n this.effectMusicVolume = 1;\n\n this.mMusicSwitch = 1;\n this.mEffectSwitch = 1;\n }\n play (audioSource, loop, callback, isBgMusic) {\n // if (isBgMusic && !this.mMusicSwitch) return;\n // if (!isBgMusic && !this.mEffectSwitch) return;\n var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume;\n\n // if (cc.sys.isBrowser) {\n // if(audioSource == this.brickSound){\n // volume = 0.1;\n // } \n volume = 1;\n cc.audioEngine.setEffectsVolume(1);\n cc.audioEngine.setMusicVolume(1);\n if(audioSource.name == \"lose\"){\n cc.audioEngine.setEffectsVolume(0.5);\n }\n else{\n cc.audioEngine.setEffectsVolume(1);\n }\n var context = cc.audioEngine.playEffect(audioSource, loop);\n if (callback){\n cc.audioEngine.setFinishCallback(context, function(){\n callback.call(this);\n }.bind(this));\n }\n // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src);\n\n this.mAudioMap[audioSource] = context;\n return audioSource;\n // } else {\n // return audioSource;\n // }\n }\n\n save () {\n // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch);\n // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch);\n }\n\n // static get Instance()\n // {\n // if (this._instance == null)\n // {\n // this._instance = new AudioManager();\n // }\n // return this._instance;\n // }\n\n preload () {\n if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { return; }\n\n var musics = [\n this.audioGameBgm0,\n ];\n musics.forEach(function(path) {\n })\n }\n\n getAudioMusicSwitch()\n {\n return this.mMusicSwitch;\n\n }\n getAudioEffectSwitch()\n {\n return this.mEffectSwitch;\n }\n trunAudioSound(on)\n {\n this.switchMusic(on);\n this.switchEffect(on)\n }\n switchMusic (on) {\n if (this.mMusicSwitch != (on?1:0))\n {\n this.mMusicSwitch = 1-this.mMusicSwitch;\n // this.save();\n }\n if(on)\n {\n this.playMusicGame();\n }\n else\n {\n this.stopMusic();\n }\n }\n switchEffect (on) {\n if (this.mEffectSwitch != (on?1:0)){\n this.mEffectSwitch = 1-this.mEffectSwitch;\n // this.save();\n\n }\n }\n onHide () {\n cc.audioEngine.pauseAll();\n }\n\n onShow () {\n cc.audioEngine.resumeAll();\n }\n\n //播放音效\n playEffect(name,callback){\n if(this[name])\n return this.play(this[name], false,callback,this.mEffectSwitch);\n }\n playMusic (key, callback, loop) {\n loop = typeof loop == 'undefined' || loop ? true : false;\n this.stopMusic();\n this.mMusicKey = this.play(key, loop, callback, true);\n }\n /**\n * 游戏背景音乐\n */\n playMusicGame () {\n this.playMusic(this.audioGameBgm0,{},true);\n }\n /**\n * 停止背景音乐播放\n */\n stopMusic () {\n // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey);\n\n var context = this.mAudioMap[this.mMusicKey];\n\n if (typeof(context) != 'undefined') {\n if (cc.sys.isBrowser) {\n cc.audioEngine.stop(context);\n } else {\n context.stop();\n }\n cc.audioEngine.stop(context);\n\n }\n }\n\n /*\n * 游戏开始音效\n *\n */\n playGameStart()\n {\n \n }\n /*\n * 失败的游戏结束\n */\n playGameOver()\n {\n\n }\n /*\n * 成功的游戏结束\n */\n playGameResultFailed()\n {\n\n }\n /*\n * 成功的游戏结束\n */\n playGameResultSuccess()\n {\n\n }\n /**\n * 报警的音效\n */\n\n /**\n * 按钮\n */\n playAudioButton () {\n // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch);\n }\n};\n\n// export { AudioManager };\n"]} \ No newline at end of file diff --git a/library/imports/59/5965ffac-69da-4b55-bcde-9225d0613c28.json b/library/imports/59/5965ffac-69da-4b55-bcde-9225d0613c28.json new file mode 100644 index 0000000..de04efa --- /dev/null +++ b/library/imports/59/5965ffac-69da-4b55-bcde-9225d0613c28.json @@ -0,0 +1,250 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "progressBar", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 1, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "progressBar", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": true, + "_components": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "_prefab": { + "__id__": 7 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 300, + "height": 15 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "bar", + "_objFlags": 512, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 150, + "height": 15 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -150, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "67e68bc9-dad5-4ad9-a2d8-7e03d458e32f" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "5965ffac-69da-4b55-bcde-9225d0613c28" + }, + "fileId": "38d28QPqAdC1L4aQLAAwhV2", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "88e79fd5-96b4-4a77-a1f4-312467171014" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.ProgressBar", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_N$totalLength": 300, + "_N$barSprite": { + "__id__": 3 + }, + "_N$mode": 0, + "_N$progress": 0.5, + "_N$reverse": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "5965ffac-69da-4b55-bcde-9225d0613c28" + }, + "fileId": "c8bd6EVT6lD4bVMS1d/i0BC", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/5c/5c3bb932-6c3c-468f-88a9-c8c61d458641.json b/library/imports/5c/5c3bb932-6c3c-468f-88a9-c8c61d458641.json new file mode 100644 index 0000000..a6721ed --- /dev/null +++ b/library/imports/5c/5c3bb932-6c3c-468f-88a9-c8c61d458641.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "default_scrollbar_vertical", + "texture": "d6d3ca85-4681-47c1-b5dd-d036a9d39ea2", + "atlas": "", + "rect": [ + 0, + 0, + 15, + 30 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 15, + 30 + ], + "capInsets": [ + 4, + 10, + 4, + 10 + ] + } +} \ No newline at end of file diff --git a/library/imports/5c/5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f.js b/library/imports/5c/5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f.js new file mode 100644 index 0000000..e2f00ab --- /dev/null +++ b/library/imports/5c/5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f.js @@ -0,0 +1,15 @@ +"use strict"; +cc._RF.push(module, '5c9b8FZiaNLMrMDs9T3rByf', 'DynamicAtlasManager'); +// Script/DynamicAtlasManager.js + +"use strict"; + +cc.Class({ + "extends": cc.Component, + properties: {}, + onLoad: function onLoad() { + cc.dynamicAtlasManager.enabled = false; + } +}); + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/5c/5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f.js.map b/library/imports/5c/5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f.js.map new file mode 100644 index 0000000..73cca2f --- /dev/null +++ b/library/imports/5c/5c9b8159-89a3-4b32-b303-b3d4f7ac1c9f.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\DynamicAtlasManager.js"],"names":["cc","Class","Component","properties","onLoad","dynamicAtlasManager","enabled"],"mappings":";;;;;;AAAAA,EAAE,CAACC,KAAH,CAAS;AACL,aAASD,EAAE,CAACE,SADP;AAGLC,EAAAA,UAAU,EAAE,EAHP;AAMLC,EAAAA,MANK,oBAMK;AACNJ,IAAAA,EAAE,CAACK,mBAAH,CAAuBC,OAAvB,GAAiC,KAAjC;AACH;AARI,CAAT","sourceRoot":"/","sourcesContent":["cc.Class({\r\n extends: cc.Component,\r\n\r\n properties: {\r\n },\r\n\r\n onLoad () {\r\n cc.dynamicAtlasManager.enabled = false;\r\n },\r\n});\r\n"]} \ No newline at end of file diff --git a/library/imports/5e/5e344685-dbe0-4509-8b66-27ddb72e2d23.json b/library/imports/5e/5e344685-dbe0-4509-8b66-27ddb72e2d23.json new file mode 100644 index 0000000..032065a --- /dev/null +++ b/library/imports/5e/5e344685-dbe0-4509-8b66-27ddb72e2d23.json @@ -0,0 +1,578 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "kuang2", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "kuang2", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 8 + }, + { + "__id__": 11 + } + ], + "_active": true, + "_components": [ + { + "__id__": 14 + }, + { + "__id__": 15 + } + ], + "_prefab": { + "__id__": 16 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 114, + "height": 114 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "texture", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 100 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "23WEB0XcVFr77K2a8TMpQf", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "lock", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 6 + } + ], + "_prefab": { + "__id__": 7 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 46, + "height": 74 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0.607, + 1.821, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "48f0add1-7741-4b9a-b25e-186ad457e4ac" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "6c4kkHqqBGk7Uzo0NLuWTe", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "yes", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 9 + } + ], + "_prefab": { + "__id__": 10 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 74, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "907b33f0-998c-44e2-b2a3-697e56dc3ebb" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "8fLsGa13pEq5tEAv7CeQA9", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "err", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 12 + } + ], + "_prefab": { + "__id__": 13 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 57, + "height": 49 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 11 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "4dd594fe-a599-468b-a82e-4a36f5133ec1" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "81rn3gLHtJJZCY62CJzWlY", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "d63eeqXqS5GV5T/inM6K0aA", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "UI": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/5f/5f924dc2-df92-448a-8b30-f4d0cbaae29c.json b/library/imports/5f/5f924dc2-df92-448a-8b30-f4d0cbaae29c.json new file mode 100644 index 0000000..7879121 --- /dev/null +++ b/library/imports/5f/5f924dc2-df92-448a-8b30-f4d0cbaae29c.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "time_icon", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 769, + 1167, + 40, + 40 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 40, + 40 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/5f/5fe5dcaa-b513-4dc5-a166-573627b3a159.json b/library/imports/5f/5fe5dcaa-b513-4dc5-a166-573627b3a159.json new file mode 100644 index 0000000..c57e552 --- /dev/null +++ b/library/imports/5f/5fe5dcaa-b513-4dc5-a166-573627b3a159.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "default_scrollbar_vertical_bg", + "texture": "617323dd-11f4-4dd3-8eec-0caf6b3b45b9", + "atlas": "", + "rect": [ + 0, + 0, + 15, + 30 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 15, + 30 + ], + "capInsets": [ + 4, + 10, + 4, + 10 + ] + } +} \ No newline at end of file diff --git a/library/imports/60/600301aa-3357-4a10-b086-84f011fa32ba.json b/library/imports/60/600301aa-3357-4a10-b086-84f011fa32ba.json new file mode 100644 index 0000000..99d8ebb --- /dev/null +++ b/library/imports/60/600301aa-3357-4a10-b086-84f011fa32ba.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,1,0,0" +} \ No newline at end of file diff --git a/library/imports/60/600301aa-3357-4a10-b086-84f011fa32ba.png b/library/imports/60/600301aa-3357-4a10-b086-84f011fa32ba.png new file mode 100644 index 0000000000000000000000000000000000000000..c6adfe901275a23c6aad5d83765e6c6cb14484b7 GIT binary patch literal 7518 zcmV-k9iifhP)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C5_?HRK~#9!12^K+S=HTJ++qdg~YP zqm7?z>H)^v-ke@|QGhWhz|(eCW=bL%JPS&BtFqf}yJs^A5K`VK#m_%3j0l-h3jfV7 z;lKRl<`ZMgUwo-zzJ_eZn7^EwrIf#x0i_gk9Ip-V#pCaPFLL_-zv>>%Yy-X*11@gX zoE`5ly!wJk?toX!47fagH+Fni2Ar(aJY+t;sprD0>G<1k_BVdBz+wFM8bHNsNH{t0T*;XtoU2r zio5^W+}=J_h3A<9Y+$qAP$=b!tJ4+M>AW8ADWtcBpMTa9CLG4s+J;ifp8%kg`6^HK z{r+CKy)`@_+?=k|MqqvT{g$m+vV`pn#uk>#0$X5t5NN}utUs)k>jMbNzbO3Ay~6D| zI47#{r9gZ&0O$ICHwpF9T+nhhW@ZC+{fMx_?AY1G-Wa;h0Hz1i_Py!bdG@xnM*EE{vT#)%mLLA3q{jR|stFj-@O>dV1T^3Sfo- zX&PX_&`k3U0|QNInn{3RfTo!RJqY~>W%ZHF6{p|j3jp*>LHJ@L_(b?$e|;kOhibs= z)fEo#u=EQEFf=W#2Lj{Rm@0NlLkqM(L(??P^nPS)F(wQUfG{vLK-lkTR^X`fTRwa^ zHI#C3U*?&ZygrV!<1kt|J6v0|-Pz z^ac+RjE{h)#7GG~6av~nW*pUoCNm7V>zWJ*`+eSOmzLMp`EXwkWNv`PqWlW{a%w;e zruvFMyBVq~Vz|3I(Eeu{dEp-9ch9^Eez(K3Tzb0B4-6j00Mlwi6Nw%8mXtd1ZSr&p z7M|24pE^?NjG+Ts;>3;+nlLeBWDE?0r|bN3iJw6AfMvRmcRx4s%VcQp?&@L{%Aa?G z&qQ{0JYavn`Q2H5uf z7UADGew+k9u0%bKqmL$dPxN^25;zAgC7g5E4Az3=j93eqY%G>cE*7gfqt=oq6Akl0T%QI;=EN&JVZpNuxLp1Fdu((2U~jmY zjh>?l>MQMO2n0w?U3J$ulS8&N7CclCX22rRd8~jKR1G5aW+RH#OwJkaMX_RBR$uHV;HJn z22ZNOgKM12O}2Cv+r(%Wk+>wXQgnst(&HBjD@f}kvP!T9mUtG3EbzVq7DSe+EHb&X z20c01l5!$$6Iu z#^q4`es1c|v=gMQVLb~6ox%#IOOzF`R9K<9LRblIDX>!KItL4o#S}+$pzRb_H00bs z3NGQHy4i7@Vv;>>#maoFED)w$=|P^)#Q}%azq=Fu_BY{|UuG(u1|9*108Mie=(Iqa zGYe~JrW@`QX(h41(V*HQGW{P1YC#Ou6DUeS4z6zm#zY!ias!SXuvc^_l)c67fjx;H zM^B7B-VY26H1)q19-=bf4&~L61y9`IGp_I4((m_S=(^B=C&mu%D*!2V7}H^GM`VGo ztCmPhhnoRuP-%gHOcC6y0uv!ICIO>DMCnBsfPG2~&anmdz%D~?si34p@7$yo<2Vq? z2+aV*4-l`9@xl`|_>>Bq(#1^M+G}2UZP7lm*4QMy30K%dO zi=0`N!U|ZG!WzS>7_*#yx0F(rBFz8mTs3^HD$R-a3FI8+7z40`V4*qeS*|zd2JksG zkYnU`NN@4-nNYAoPXTT~j*2Bgd6&cMP#XJ83= zg()jwRo_!VFxmo(DzG*<*8oAJ&U;WJYpX#$-kUHScZi$yc`|j93tnU9O`bU^jhSPj zD6llJps>WyptPU?BeqQD zMeE`>_4-Vr$r9YVLA4WQQCMTr%W&VljY835$p*NGaG-5QCX^fQS(+ z5EN~owA7Uk7(9qWq#84G5z49xh@^xSsn@hvEP!)3(ushBVM?}c*6VL9kFTo|_7kEb zqai{{m}5rGqV*=v5VqB_m_jk7*s3z+0GOy6E7cgz>S8Du^xQj<5fuSdbGm=c6?_ty zbn?XjKyS8e&H7vW12({NNoiXO0|Y`PXSI&SS_+mTP^Mj7omeOp7mC3YQ}c2<9Sf)$ zLsl4|WK`8aDTacenalw{i-Lkkaip5v0IaRsT}PrOj_RwSDLt@cS*iqI3BYgX1SkMK zJwww>0>%QAR4-a`p5r+!&XG}SXsZ-6rLN0tfmO4jNsz%59f3hHV-XotNd?V-+9J77 zCX1~F6$Mpr87K;cdSN9|k~^yzLf=m3>++mjp9SE5=VZeB_lH2Wr7g`N$>7zwR2)vH zM22Q^iHJffNs=ODL=X9UQ&AgL7zL@jI$teL+MS=C*L9VYzi~sb~VUqnGIvK#2LNI_=Kyya1sLeK6s~IFZ zm83!zBmyI)3>af6crnsf3abhxQHsHsqDmHF1nHqfi>d5TqKHIQ)Cmb(_3PFqa#pg{ zS=Brg!l6)d&WIP!r-$X)=7jUobRFGZ2bw}S%dli?$+o7jGDrkT2oaqE5!F}>5g3fJ zFNHy12eJdRrI;PCt)HW`~C6WA0Cci z+}(Ww0AqmHujkH;BYl3Ks{>tW8We(puhdLaY092OTM>wYMumt-Z`2&3G-KG3*~uK? znd32McBYhV&g=_iK($w;pLd83HxOg?_+wT$kzEBQdtX<-hthTEhD`yuxjD-7>J^38 zuMfGw=eEPAsV@t-%?7_-AM$`_p<%9N)D=j{rQ|R%W1V_N52A{7HR!=tzgfM55V4GNvBVglSc)md zRF^)2Mir^~0Ht@N0bGyj=*9PtBiNYgemuEJz%YhPc(!C-p6fOGq!+lmgI|w7)@vxR z(XOi&c^KxZY)m+kg9vuCIY+?{sE#7qgWHkP0BMhEk5sxVx&wU#He|MF-Wn|%RI55< z*@|kP(0x*RoZEp8RPQm@07jQm1eap001V+tJ>Ue4U!NL)&m={kr~zQNY{Qb}v@;w7 zn1)L2hD4WLZY{RW)T1h`NKK9?+KAT8jS3dTimIr9P}AayW>m5WgVy@l0Q3rjKo7YG zI{-TpL*kGPnv_3x3?Yp*IZ{D#X)MVJ zt`DWFRlgqr#Q)@Sxlb1#X|E{~yHxhi;75ru{(%Y?(`4 z5wa&{)JE#g&{FG#f)j*<;4~$t;)pnxfEbC%i|@%f=4?l6bDt=K!;PdAiz}n|ejEl; zLzCI>GhLTitrDQz+~||ekv{@pwvLw|z=KkYBYDeKmMl{<&*u>bhUCCOsym)yEhX2Q zSOz~viNRCp4|}8+`bXxV}E>{b$PL-&7sGs1>+z zBn0pTJc)oyo`g@hLv@&p&tR?10@mb=STfjJ9L-Q{&IQ#zE0bT= z0KTm{doTTaKCi(@DXlNq|I*34FqnU`Wu!^X7?7hIRVX%73myM82SB zzmB`RLtoxadZ$19aPY6`k;k;twgxCoGXjI3M)l8bABls*?OjSeDeV(!5A0lG2X5ya zyXmt%xYG=8kN3mq=i+EH0&%ySgx_p3tgGPf-W>(M`?3zwKkgGe?+iWZ4}53gMYRhb zKU%J?ENm?-4}sIbU>l5uU>T7ZYM!qql%fzZcn>jx_k~EQX#=nL!%C)$p1^tK=kN4^ zhkV0L<}HPv&-(_=RQ~v;M#(Q|lC*sIV7b0N7|K0+*U{BVO;e-Fkx{~k)YSU(-QpvZ z06H*eQv;jQ(`&mgnXao~Y&QBq*ZKPTla!xQalmI*|BD+XPbhTRk*VBID|2)`5r~S` z9a+QB_tkm_LQRg$HGb$BhJo5D+5>%I7#N1J(2PBO1V-Jp16?=pNaEwi#Cn~suV-f5 zKN0>lujd>8!*0&D@NgRCRl)BlbLsmp=@tG22xr~m_xH%{EmODndx4+krs=uBTE`Z{61H2+ za=D$F#FrNjNo>jn%9`~V-!1<6=LMcTA8_&hcYz-O%ttU+6NnpN zy_pj5>-FW{U7xDmTj2TU1uzB!p;`x?Zo zA+jdEU$5gu2IskKj>6BEM(+^ieU0$n@0p=vN9ofiLC&8NIe!1{o#DlcPfmHyJr|o8 z-teZp-{bMwlV|*78n*nSxKfHM|NN&frT9`xI2q0P_`l}jdtb`*|MCx4 zO0jj`zsvV}YV5lL@C*>=V4MQ-2jd?{f$hm0-~A!VzXX6U0OO0s-%nQhuX=Lyo4ml+ oUyQG_QD14%zZro4*4O_J0MKsYb+XI<1ONa407*qoM6N<$f?cFVvj6}9 literal 0 HcmV?d00001 diff --git a/library/imports/61/617323dd-11f4-4dd3-8eec-0caf6b3b45b9.json b/library/imports/61/617323dd-11f4-4dd3-8eec-0caf6b3b45b9.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/61/617323dd-11f4-4dd3-8eec-0caf6b3b45b9.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/61/617323dd-11f4-4dd3-8eec-0caf6b3b45b9.png b/library/imports/61/617323dd-11f4-4dd3-8eec-0caf6b3b45b9.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a849a5f29f2d5d315254ef103aafece9752fee GIT binary patch literal 1187 zcmaJ>Z)n_P7*E|O-9fQ*IB^WgGAteR?oBS2`xARBw(L)OR1`*cG+`QCX!#$ZAK+VLL^wYcXmXHH!At3lQmJ895Sb!6_P?T$|6FGsdJ`Bm` z=!0TLPF8b~Q=BPaY>NOCi^V{Z4c zE|`pR5?|w{EElVm25Vg7A(wq5SCky6V&voy8m_t5Q$QHG1!U8b_&)LI*TbVx4H9y(LYgf1%E#=6W z#V6;QPca9VeyYsuojxMpn*Q{gZ=*-DjhFtI-}>@rU;J`vZei1w=DOcTEAP22d)Qki z;BoN!W9Y)JkMm8hPU#J^?|#KA>+FO14NcWed$-Qd`3NQ&HQ-SyleE-=?=656h{dcebe53#N(xxr<7v|85z2}nA#5?Pk8p7$UQW?IioPA^Q&Q;}Z ZQ$I!J|JqZY1a01LBc*i9r+4-r`WLrIoGAbR literal 0 HcmV?d00001 diff --git a/library/imports/61/61906da3-7003-4bda-9abc-5769c76faee4.json b/library/imports/61/61906da3-7003-4bda-9abc-5769c76faee4.json new file mode 100644 index 0000000..e746c9d --- /dev/null +++ b/library/imports/61/61906da3-7003-4bda-9abc-5769c76faee4.json @@ -0,0 +1,117 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "ambient", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "light", + "_objFlags": 0, + "_parent": null, + "_children": [], + "_active": true, + "_level": 1, + "_components": [ + { + "__id__": 2 + } + ], + "_prefab": { + "__id__": 3 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "groupIndex": 0, + "_id": "", + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1 + ] + } + }, + { + "__type__": "cc.Light", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_type": 3, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_intensity": 0.25, + "_range": 1, + "_spotAngle": 60, + "_spotExp": 1, + "_shadowType": 0, + "_shadowResolution": 1024, + "_shadowDarkness": 0.5, + "_shadowMinDepth": 1, + "_shadowMaxDepth": 1000, + "_shadowDepthScale": 250, + "_shadowFrustumSize": 50, + "_shadowBias": 0.0005, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "61906da3-7003-4bda-9abc-5769c76faee4" + }, + "fileId": "33zOkteexCqamZ4PXuwJaW", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/61/61aeb05b-3b32-452b-8eed-2b76deeed554.json b/library/imports/61/61aeb05b-3b32-452b-8eed-2b76deeed554.json new file mode 100644 index 0000000..9f7ffb2 --- /dev/null +++ b/library/imports/61/61aeb05b-3b32-452b-8eed-2b76deeed554.json @@ -0,0 +1,535 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "editbox", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 1, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "editbox", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 6 + }, + { + "__id__": 10 + } + ], + "_active": true, + "_components": [ + { + "__id__": 14 + } + ], + "_prefab": { + "__id__": 15 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 160, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "BACKGROUND_SPRITE", + "_objFlags": 512, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + }, + { + "__id__": 4 + } + ], + "_prefab": { + "__id__": 5 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 160, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "ff0e91c7-55c6-4086-a39f-cb6e457b8c3b" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "alignMode": 0, + "_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": 160, + "_originalHeight": 40, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "61aeb05b-3b32-452b-8eed-2b76deeed554" + }, + "fileId": "fcoT9mL35BlLUlR0xQ5QBI", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "TEXT_LABEL", + "_objFlags": 512, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 7 + }, + { + "__id__": 8 + } + ], + "_prefab": { + "__id__": 9 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 158, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 1 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -78, + 20, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [], + "_useOriginalSize": true, + "_string": "", + "_N$string": "", + "_fontSize": 20, + "_lineHeight": 25, + "_enableWrapText": false, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 0, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 1, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 45, + "_left": 2, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 158, + "_originalHeight": 40, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "61aeb05b-3b32-452b-8eed-2b76deeed554" + }, + "fileId": "0blsIXU11M95uloDvhs/X9", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "PLACEHOLDER_LABEL", + "_objFlags": 512, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 11 + }, + { + "__id__": 12 + } + ], + "_prefab": { + "__id__": 13 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 187, + "g": 187, + "b": 187, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 158, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 1 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -78, + 20, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_useOriginalSize": true, + "_string": "Enter text here...", + "_N$string": "Enter text here...", + "_fontSize": 20, + "_lineHeight": 25, + "_enableWrapText": false, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 0, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 1, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 45, + "_left": 2, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 158, + "_originalHeight": 40, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "61aeb05b-3b32-452b-8eed-2b76deeed554" + }, + "fileId": "d9Sjcz6gxMGYCoLbO/scJL", + "sync": false + }, + { + "__type__": "cc.EditBox", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_useOriginalSize": false, + "_string": "", + "returnType": 0, + "maxLength": 8, + "_tabIndex": 0, + "editingDidBegan": [], + "textChanged": [], + "editingDidEnded": [], + "editingReturn": [], + "_N$textLabel": { + "__id__": 7 + }, + "_N$placeholderLabel": { + "__id__": 11 + }, + "_N$background": { + "__id__": 3 + }, + "_N$inputFlag": 5, + "_N$inputMode": 6, + "_N$stayOnTop": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "61aeb05b-3b32-452b-8eed-2b76deeed554" + }, + "fileId": "590f66n7/1CY5uRJYcGGuJO", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/61/61d4c718-db3b-4b31-8221-f16bea3cf030.js b/library/imports/61/61d4c718-db3b-4b31-8221-f16bea3cf030.js new file mode 100644 index 0000000..b2b21db --- /dev/null +++ b/library/imports/61/61d4c718-db3b-4b31-8221-f16bea3cf030.js @@ -0,0 +1,99 @@ +"use strict"; +cc._RF.push(module, '61d4ccY2ztLMYIh8WvqPPAw', 'GameAppStart'); +// Script/module/GameStart/GameAppStart.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var GameConfig_1 = require("../Config/GameConfig"); +var HttpUtil_1 = require("../Crypto/HttpUtil"); +var AudioManager_1 = require("../Music/AudioManager"); +var Notification_1 = require("../Notification/Notification"); +var Storage_1 = require("../Storage/Storage"); +var GameTool_1 = require("../Tool/GameTool"); +window.initMgr = function () { + if (cc.fx) { + return; + } + cc.fx = {}; + //基础状态信息 + cc.fx.StateInfo = { + debugMode: true, + networkConnected: true, + networkType: 'none', + isOnForeground: true //当前是否是在前台 + }; + //应用系统信息 + //配置文件 + cc.fx.GameConfig = GameConfig_1.GameConfig; + cc.fx.HttpUtil = HttpUtil_1.default; + cc.fx.GameTool = GameTool_1.GameTool; + cc.fx.AudioManager = AudioManager_1.default; + cc.fx.Notifications = Notification_1.Notifications; + cc.fx.StorageMessage = Storage_1.StorageMessage; + cc.fx.ShareInfo = { + queryId: -1 //分享id + }; + cc.fx.Message = { + control: "10001", + startGame: "10002", + next: "10003", + changePath: "10004", + changeMap: "10005", + nextWater: "10006", + addEnd: "10007", + setData: "10008", + guideNext: "10009", + showResult: "10010", + removeTip: "10011" //执行撤回或者后退动作,移除提示 + }; + /* + * 客户端埋点分享类型 + */ + cc.fx.BurialShareType = { + Default: "default", + Invite: "invite", + DailyInviteRoomJoin: 'invite_join_room', + DailyInviteFriend: 'invite_friend', + DailyInviteGroup: 'invate_group', + DailyInviteGroupAlive: 'invate_alive', + DailyInviteGroupReward: 'invate_rewared', + DailyInviteGroupBox: 'invate_box', + DailyInviteGroupBall: 'invate_ball', + MatchResult: 'matchResult', + MatchFix5: 'MatchFix5', + MatchFix20: 'MatchFix20', + MatchFix100: 'MatchFix100', + MatchFix500: 'MatchFix500', + NewerRedEnvelope: 'newerRedEnvelope', + CoinRoomResult: 'coinRoomResult', + HighRate: "highRate", + CoinRoomWinStreak: 'coinRoomWinStreak', + CoinRoomBankruptcy1: 'coinRoomBankruptcy1', + CoinRoomBankruptcy2: 'coinRoomBankruptcy2', + CoinRoomBankruptcy3: 'coinRoomBankruptcy3', + }; + /* + * 分享到哪儿给奖励 group frined all + */ + cc.fx.ShareWhereReward = { + Group: "group", + Friend: "friend", + All: "all", + }; + //用于存储消息的ID + cc.fx.storageType = cc.Enum({ + storageTypeCustom: 1000101, + }); + //用于存储提示语 按照步骤提示 + cc.fx.tipType = cc.Enum({ + tipOne: '神农氏回到家中,开始整理今天收集来的物品。当他第一次拿出或说出一种植物时,请告诉他这是新植物。', + tipTwo: '如果他拿出或说出的植物你今天看到过,请告诉他上次是看到的;如果你听他说过,则请告诉他上次是听到的。', + tipErrNew: '这是这局游戏第一次出现{植物}', + tipErrOld: '{植物}刚才出现过呢', + tipErrHear: '上次遇到{植物}时,似乎不是听到的吧', + tipErrSee: '上次遇到{植物}时,似乎不是看到的吧', + tipErrLast: '之前确实看到过{植物},但最近一次似乎不是看到的呢', + }); +}; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/61/61d4c718-db3b-4b31-8221-f16bea3cf030.js.map b/library/imports/61/61d4c718-db3b-4b31-8221-f16bea3cf030.js.map new file mode 100644 index 0000000..f94170b --- /dev/null +++ b/library/imports/61/61d4c718-db3b-4b31-8221-f16bea3cf030.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\GameStart\\GameAppStart.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import { GameConfig } from \"../Config/GameConfig\";\r\nimport HttpUtil from \"../Crypto/HttpUtil\";\r\nimport AudioManager from \"../Music/AudioManager\";\r\nimport { Notifications } from \"../Notification/Notification\";\r\nimport { StorageMessage } from \"../Storage/Storage\";\r\nimport { GameTool } from \"../Tool/GameTool\";\r\n\r\n\r\nwindow.initMgr = function() {\r\n if(cc.fx)\r\n {\r\n return;\r\n }\r\n cc.fx = {};\r\n\r\n\r\n //基础状态信息\r\n cc.fx.StateInfo = {\r\n debugMode: true,\r\n networkConnected: true, //网络状态\r\n networkType: 'none', //网络类型\r\n isOnForeground: true //当前是否是在前台\r\n };\r\n\r\n //应用系统信息\r\n //配置文件\r\n\r\n cc.fx.GameConfig = GameConfig;\r\n cc.fx.HttpUtil = HttpUtil;\r\n cc.fx.GameTool = GameTool;\r\n cc.fx.AudioManager = AudioManager;\r\n cc.fx.Notifications = Notifications;\r\n cc.fx.StorageMessage = StorageMessage;\r\n\r\n cc.fx.ShareInfo = {\r\n queryId : -1 //分享id\r\n };\r\n\r\n cc.fx.Message = {\r\n control: \"10001\", //传递操作控制\r\n startGame:\"10002\", //传递开始建筑\r\n next: \"10003\" , //传递执行下一个格子洪水流过\r\n changePath: \"10004\", //传递操作控制\r\n changeMap: \"10005\", //改变那地图\r\n nextWater: \"10006\" , //传递执行下一个格子洪水流过\r\n addEnd: \"10007\" , //添加结束点\r\n setData: \"10008\" , //上传分数\r\n guideNext: \"10009\" , //引导进入下一步\r\n showResult: \"10010\", //展示治水结果\r\n removeTip: \"10011\" //执行撤回或者后退动作,移除提示\r\n }\r\n\r\n /*\r\n * 客户端埋点分享类型\r\n */\r\n cc.fx.BurialShareType = {\r\n Default : \"default\", //默认分享类型,分享到群\r\n Invite : \"invite\", // 邀请好友\r\n\r\n DailyInviteRoomJoin:'invite_join_room', //邀请好友加入\r\n DailyInviteFriend : 'invite_friend', // 日常邀请好友\r\n DailyInviteGroup : 'invate_group', // 日常分享群\r\n DailyInviteGroupAlive: 'invate_alive', //日常分享群复活\r\n DailyInviteGroupReward: 'invate_rewared',//分享奖励翻倍\r\n DailyInviteGroupBox: 'invate_box', //宝箱分享奖励\r\n DailyInviteGroupBall: 'invate_ball', //分享领取球球\r\n\r\n MatchResult : 'matchResult', // 比赛结算分享\r\n MatchFix5: 'MatchFix5', // 5元红包赛\r\n MatchFix20: 'MatchFix20', // 20元红包赛\r\n MatchFix100: 'MatchFix100', // 100元红包赛\r\n MatchFix500: 'MatchFix500', // 500元红包赛\r\n NewerRedEnvelope: 'newerRedEnvelope', // 新手红包\r\n CoinRoomResult: 'coinRoomResult', // 金币桌结算\r\n HighRate : \"highRate\",//高倍分享\r\n CoinRoomWinStreak: 'coinRoomWinStreak', // 连胜\r\n CoinRoomBankruptcy1: 'coinRoomBankruptcy1', // 金币桌破产\r\n CoinRoomBankruptcy2: 'coinRoomBankruptcy2', // 金币桌破产\r\n CoinRoomBankruptcy3: 'coinRoomBankruptcy3', // 金币桌破产\r\n };\r\n\r\n /*\r\n * 分享到哪儿给奖励 group frined all\r\n */\r\n cc.fx.ShareWhereReward = {\r\n Group :\"group\", //微信群\r\n Friend : \"friend\",//好友\r\n All : \"all\", //不区分\r\n };\r\n\r\n //用于存储消息的ID\r\n cc.fx.storageType = cc.Enum({\r\n\t storageTypeCustom: 1000101, //用于存储关卡等级\r\n\t});\r\n\r\n //用于存储提示语 按照步骤提示\r\n cc.fx.tipType = cc.Enum({\r\n tipOne: '神农氏回到家中,开始整理今天收集来的物品。当他第一次拿出或说出一种植物时,请告诉他这是新植物。',\r\n tipTwo: '如果他拿出或说出的植物你今天看到过,请告诉他上次是看到的;如果你听他说过,则请告诉他上次是听到的。', //用于存储关卡等级\r\n tipErrNew: '这是这局游戏第一次出现{植物}',\r\n tipErrOld: '{植物}刚才出现过呢',\r\n tipErrHear: '上次遇到{植物}时,似乎不是听到的吧',\r\n tipErrSee: '上次遇到{植物}时,似乎不是看到的吧',\r\n tipErrLast: '之前确实看到过{植物},但最近一次似乎不是看到的呢',\r\n\r\n });\r\n\r\n};"]} \ No newline at end of file diff --git a/library/imports/67/67e68bc9-dad5-4ad9-a2d8-7e03d458e32f.json b/library/imports/67/67e68bc9-dad5-4ad9-a2d8-7e03d458e32f.json new file mode 100644 index 0000000..5f858bc --- /dev/null +++ b/library/imports/67/67e68bc9-dad5-4ad9-a2d8-7e03d458e32f.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "default_progressbar", + "texture": "cfef78f1-c8df-49b7-8ed0-4c953ace2621", + "atlas": "", + "rect": [ + 0, + 0, + 30, + 15 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 30, + 15 + ], + "capInsets": [ + 10, + 4, + 10, + 4 + ] + } +} \ No newline at end of file diff --git a/library/imports/68/6827ca32-0107-4552-bab2-dfb31799bb44.json b/library/imports/68/6827ca32-0107-4552-bab2-dfb31799bb44.json new file mode 100644 index 0000000..661f423 --- /dev/null +++ b/library/imports/68/6827ca32-0107-4552-bab2-dfb31799bb44.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "default_toggle_normal", + "texture": "d29077ba-1627-4a72-9579-7b56a235340c", + "atlas": "", + "rect": [ + 0, + 0, + 28, + 28 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 28, + 28 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/6a/6aa0aa6a-ebee-4155-a088-a687a6aadec4.json b/library/imports/6a/6aa0aa6a-ebee-4155-a088-a687a6aadec4.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/6a/6aa0aa6a-ebee-4155-a088-a687a6aadec4.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/6a/6aa0aa6a-ebee-4155-a088-a687a6aadec4.png b/library/imports/6a/6aa0aa6a-ebee-4155-a088-a687a6aadec4.png new file mode 100644 index 0000000000000000000000000000000000000000..21d4326855d2b03c033a9b774d2f4f133a23833c GIT binary patch literal 37864 zcmV+BKpDS@P)|D^_ww@lRz|vCuzLs)$;-`! zo*{AqUjza0dRV*yaMRE;fKCVhpQKsoe1Yhg01=zBIT!& zC1$=TK@rP|Ibo3vKKm@PqnO#LJhq6%Ij6Hz*<$V$@wQAMN5qJ)hzm2hoGcOF60t^# zFqJFfH{#e-4l@G)6iI9sa9D{VHW4w29}?su;^hF~NC{tY+*d5%WDCTXa!E_i;d2ub z1#}&jF5T4HnnCyEWTkKf0>c0%E1Ah>(_PY1)0w;+02c53Su*0<(nUqKG_|(0G&D0Z z{i;y^b@OjZ+}lNZ8Th$p5Uu}MTtq^NHl z*T1?CO*}7&0ztZsv2j*bmJyf3G7=Z`5B*PvzoDiKdLpOAxi2$L0#SX*@cY_n(^h55xYX z#km%V()bZjV~l{*bt*u9?FT3d5g^g~#a;iSZ@&02Abxq_DwB(I|L-^bXThc7C4-yr zInE_0gw7K3GZ**7&k~>k0Z0NWkO#^@9q0fwx1%qjZ=)yBuQ3=5 z4Wo^*!gyjLF-e%Um=erBOdIALW)L%unZshS@>qSW9o8Sq#0s#5*edK%>{;v(b^`kb zN5rY%%y90wC>#%$kE_5P!JWYk;U;klcqzOl-UjcFXXA75rT9jCH~u<)0>40zCTJ7v z2qAyk54cquI@7b&LHdZ`+zlTss6bJ7%PQ)z$cROu4wBhpu-r)01)S~6}jY?%U? zgEALn#wiFzo#H}aQ8rT=DHkadR18&{>P1bW7E`~Y4p3)hWn`DhhRJ5j*2tcg9i<^O zEt(fCg;q*CP8+7ZTcWhYX$fb^_9d-LhL+6BEtPYWVlfK zTBusSTASKKb%HuWJzl+By+?gkLq)?+BTu761jmyXF)a;mc z^>(B7bo*HQ1NNg1st!zt28YLv>W*y3CdWx9U8f|cqfXDAO`Q48?auQqHZJR2&bcD4 z9Ip>EY~kKEPV6Wm+eXFV)D)_R=tM0@&p?(!V*Qu1PXHG9o^TY0bZ?)4%0 z1p8F`JoeS|<@=<@RE7GY07EYX@lwd>4oW|Yi!o+Su@M`;WuSK8LKk71XR(_ zRKHM1xJ5XYX`fk>`6eqY>qNG6HZQwBM=xi4&Sb88?zd}EYguc1@>KIS<&CX#T35dw zS|7K*XM_5Nf(;WJJvJWRMA($P>8E^?{IdL4o5MGE7bq2MEEwP7v8AO@qL5!WvekBL z-8R%V?zVyL=G&{be=K4bT`e{#t|)$A!YaA?jp;X)-+bB;zhj`(vULAW%ue3U;av{9 z4wp%n<(7@__S@Z2PA@Mif3+uO&y|X06?J#o zSi8M;ejj_^(0<4Lt#wLu#dYrva1Y$6_o(k^&}yhSh&h;f@JVA>W8b%oZ=0JGnu?n~ z9O4}sJsfnnx7n(>`H13?(iXTy*fM=I`sj`CT)*pTHEgYKqqP+u1IL8No_-(u{qS+0 z<2@%BCt82d{Gqm;(q7a7b>wu+b|!X?c13m#p7cK1({0<`{-e>4hfb-UsyQuty7Ua; zOu?B?XLHZaol8GAb3Wnxcu!2v{R_`T4=x`(GvqLI{-*2AOSimkUAw*F_TX^n z@STz9kDQ$NC=!KfXWC z8h`dn#xL(D3Z9UkR7|Q&Hcy#Notk!^zVUSB(}`#4&lYA1f0h2V_PNgUAAWQEt$#LR zcH#y9#i!p(Udq2b^lI6wp1FXzN3T;~FU%Lck$-deE#qz9yYP3D3t8{6?<+s(e(3(_ z^YOu_)K8!O1p}D#{JO;G(*OVf32;bRa{vG?BLDy{BLR4&KXw2B00(qQO+^Ra2M7cP z7X7bEt^fca07*naRCwC#y?2-##hv*5sp_7%yIM)BjD(O7ISC8`Ofty^%z@$T3!KBx zKHIO;VT=!q52v$zoDEJGbGFZ9lWj0Z&RGH^Kqg2a2?Z8~U1@Wg)Lr%d(P4UKx@Tu+ z74g}So@n}Gj&7kS)gASo@o3%iYZ%1PJf{ z`^KomSo>RQ{~C}R%6q~6{M49$J=Xpf+Qbmb5Z2!S#skLKD;sO?*JjiJ2s%JLzCT7K z#@hS2t*enbcv`1UV9ppo?0i^ltc|`&;8beU90?q&^#$(#Pcx=*8f)*PHhBb;p`1#r z24ak9oW|Pwq?vU9Lb)t)_SkD2Ywwq~Icmd8DQg9cTgQa!vG#swKcwiAQPK}T{BR9u zA;fUNPyn_7sWG-`#|VC7ZR@n(M*T2l$`tSww$@tb3kChB+iug}yY*H_mN1N3 zgzJ~asQ4J0v@5pXxtqA6J@?#mn1;cJPCb=<3kB|6wv5RK9fYjTHW|QSH~~ay#_U34 zZ5L{LMG4VopMADgN@=B(e&v-{^qqI!sqcIBRekCYeoza$Ke8be^)u8mnfx9+>t zQIsK(NRZ8D{r~U1_g?arg^a~`Va5!8cKG24DbY#|_na@g6lkoCu}M4ad(^86|b-R8~gf7)raJo9tFb7Rzf>o4S38y#zODDWON_!kWh4sy;p z=OBc$f8+5umSxf1-3_rA@mF8vh)XX;Oqjsik3BXV5}OWu0r=$@K#a)@J45>laCNOG zH#9UbFfdSY{4am`3$|@LyF8z#`-Br%v1Scd9Dh7Q2(;Ewx3qE8uSpj`)Yy`Y0mF_E zly3w+J)#SRK!pg%T5E2*?Ka}^xDODW3l=cc(!vE3Ck`iAD;E$Z0o`K&F(xx?Z$Nkz z_~(&cthHva~NyX`h&u>hReHbeXEhkfwD{O{*K&x_YyTg!Nl z2c9QF%{$h{D8pzF#(pj!=%{xlr9?`}+_`hB-fU=SsOs-$oN-2}TwxfbSFFJN>tFfY zHP>+VfB$zaV}2GmeGJ)+0mIe?gcE@`t5H(JFqk`cE|z7nX3d(aH&jZoapT6w-^Yy` z$Mosb%SjHYRjWuYUCM_qzL?M6a!V~^e*idR3?RmUVQaO20-hM|q%+SvlU1u$g{n=3 z5WZc(Yya~<{}T;;LU7!1$5AL0Dgol1cW7L;jKlunAGq+Tr)nAh{lG`ZmT?RiM%%tZ zF$^=Zedjyh;huZ$0pPy-?yK-ZZE0!Yi(mXAX28wjcfT9nwWxw!aseX!)>|~KSi$UL zj^TT+z2+aU((VKPZfrTn1n7F(1vr-7s_l<|{3GX`cb*RbM;&z(ix)305u)4L+L$_Z zDj)gCM|kqdC$TIm(%ukkT5Fzu`e`~lJHvP_`sdH5f6g2R*RSV4=FW8hqPp;YGVtWs z(vA!m42o*RzqMuoKLWl}jg8S-vvA=;jyU27U-P52uAmAB9dr;&moCL{Z3KrOemH;q z>tC^Lo9^yz#*ZIA?0_n?OWrtao8AQr=$|!<{H9G@y!-C80K`$i%VS6ofuj|)qkzG1 zf1HPtPCflM_JXuK_w%DRiw6iRSFU9C?AgA>7$B3$kWQDrGRv}jK=9gLd+o)VHEX!+ zvdj3^x4t#(pxWEpdG^_7E94FUVOew^e>_7|reJq>bK#UJwE)D|1M~e`Z9_PYjw=KE z-d}VBn1!R8-tBMrWksq^JwWK_=%Bf|xkLs4c<{joIqR&md>^AvfBMs0cinXrzyL6L z@?;tt8(F({?eGKAngAr#V&-5d9p?T!r|%^DK!^YYr4-3zG87O1o__ji9{{et z`s!f?dym~0Db~o zNS(eme+z)%yH`i}2IX=&lF20C#31k?WX zCxmG-ZjU|qkEKh;0HJmYak_K`<}rF20tj9oCY=jcUU?--DR$d!Hx4`Ou(~#SEv>n^ zna0M(YUBnCgQ@r5kBr5by8r&1|M=r$3tF2%Jx$;^piLYDh*ChvX0ya%v0(urh~;~F zdT4HL-lpSIN^$3%cUEY#N?<}t3X><(b=+}KDDcwFH*@pnJ~y_wRnQ2~HRg^H0th`l zJ(#9h6Cik5FOEL?Xc`(Cw#yjz*kh0C=O{(Iy`84z%Mq~{AN=&E`N*Z0jxF#oZ44O7 z0Aby_bu=_IR25W%?X}llLrTe_MT@Fp>#aG?qmDWX%d&<&xABcPh_|<+4TE!k{9_I| z=bW*H9s`CN=%m&xS+a!b)2EMUQ~&B$zvAEi?caQj)Akzc2R`tDVFh(<7_>b8IApU} zzy){T&5VN%8e8ltg2R~10NirREqwgrA1`sS7zst$5p6hCtB>*Wc{ZMR9s+0rzS!JM zuD^dw(^MuiY#m?_!i~=rJKY?04H)~Pi!S1_%Pt!+o0H9Ex%S#?`SO>)T$6mUwOf08 zJI_4x%<#_^0&N(yf9zwRH7OzZyc=gx6_ABM7{*TSz@eSYA)^EAtpE&Cf>MZhlJtS| z5sl+^9&DpE!Z7H6=8>wWoqY1iJYJ{zarNre?78QjJ9L_N-E~(@lt~Lgez)D|KI$lx zZIf+p=Ucn&RuvFp({>}d*ZvMH?2J@I2-H9y+2yaHvKfCrZg*f1hJi>V+2fjfXjpI@ zDwhS@+Gzkmj%()aWA~)6X+!7>5<)O-+O(=6n7cyj>FMFoM<17E;E+U@Txe!J?LEBHhP4{1JLFaRke7@en*iI?6RoJUwM!s6)hqiOiMJJO8%i@+V zeThYp88-w7IB;1vc3*Ez8(bI$s*p#>?d#N_^Lb)3cW1@%`%u`}S`&L*4h(gzgtl$= zesVd5w)Hz5AOK|Fe3h;{t_uYOPaCs&^X6fl>9(~-=*lav+$sQh$|fbA>wfgn>MibW3P`C5Q>PR z9ywvcKmI>dUoXPg$qG^`g^0&l^QqITo_71~w=-_sxE&(&27%$i3oqpI%P$`_Kr}Tq zMY?x~K06*~%A=2>aH3p(=4SZ|b0g7Kfy`fDqW9r@9G<+|eJzWwJ8z)#);}Q3*mjpQ zgkfO!bTRQ?z6e5Y2VhW&3Fm$WZ5Pnpa1;lQ2|6#Q`3l5!{c9k5s}SeNJ(PC1U~VrUscuItUUPuWK*=p&}eEV z_s$B0l(hZwKamYhJ4C}2n>u|vu}Pj_wKFxXvHSaI``LHVg?yyI+}75HQfh~Htu=rC z^Pfw`_>ceikG%8FJEOYq2`8L@ZQCUtx7E5Gi!tS%dz^fki3F#7{p-wLupsgsYulpj zvP(kc0c~3hyz~s(w$Qf4;G(Bc`CMHXdi48&?FkG!7a$mo<5+dtp^@4Stu^=Fdv8tt zJlh9(39i5X`ikTG?6VJ2%DQEUmX?+gyN|0_j0w*_j|TF(IkWC@=JR=uIN}H_%c`A9Sr)PP-a~eFVgsE@@x#{EssOp_%mv6Y18b~h3PZ2H z=p!U;TeSb=KQPh_W5BSzv`2Pt7hC@D3v@o5Ju(b~M<0FEk6POqSfswbzKU^rt*xz% zpZ@fxb&VHb&YU^^b87BFFy+4c9Ck@c8mCO*g!9jjMnJI`8@~M|L^9>CL!oUwc3)2s zK(xl{>7=lEQ@vK{6jX&wY20Z(Zxk5;h$- zTpgm+h|zh&)kUBg1BPv-Q#R?o{aS}2M3D4Ped<$8n>G!@Fwn}uwBDzWsg*7{R(@Xa z_ws8;L=oI;P1EEjKlw??I5%(J%>DP@UqU7J-h1x~cB$GNyib7n^XHG)rCcb5+0{jS z(hO4Lh*J|x&>y}dT!~gstF*C;T#~shcjT`-} z8Jjk3;>|bTbTD_s*g^r-R^+ldCQqJ>ZQCOQTCHh$@Ih=G$G#kJ)-QfhgY&-%ar`#&H1@4ox)T>70$(P*S0NvG2k3I$(Y_}~XWNFtG_xL??~ zOU9)YM<0E3U3LpQoo3P_k2p!R;&DFwjc+i1)~pD2DNo0Bzoz5HtD*r$O4@$)Lu6yq z`x6+1cCZLL0wA;|x9TkhUs;5XP?er>#_7zMF{6Y%iei1rf2)Nulv9%m>>u*K=ahHx z#TWam$J(`P85|t+?ask}k3;T4`sJ+X*OSQ!}go;lxm( zSqOoYk_R4m&fEVD+li^mg}DoM#A0Pj@%@Y!2JDIqkI5h?}ty zKd+F>bJ+Yt9qOPNQP)y3<(_-c?mM-V;^c3CyMFo3jM4YVJz$#eKVZ;GBQ(y7*F~)b zdK&|UH0ZhacDDen4rPySx#bo%Z{Ccp6+6?PM*BrgZoc_uCQO_FlF)OJg09|fve_)X zy}fkxbfH4nvTA<_m_26?l(LKLnsz%OpTXa?!ivXfTC&7RPn}3`_GOom7&or2oKV`f z*mT(?7!6JDN6Mhl-p1GN##Gv|yl*SkNozzR!G>>t$#ED9p$fBS&*l>!|2Xkj480TB z6#Q;03@Q2Ym%q$^{rJb6dFDq!P(|~kkO=zw`q;d=oqzskCw_Tk&$Y>9GEA8|wMZSx z^&i2{^51QnrdMA@>8zBYff9-s1 zJBUc4uMw^$?BIhBX8N@0?sX%3?zE}XSg~Ry0x{xiwHYV<&O7uScmPre66rK+7cQi` zhE)1ttdh>>X!_9U+cqLnJ8XN$^;eDb%1m96ZhJrS2AHN3&mf#=C?P~~;|muEgm4du z(E){0V8(dsi0GKzQ%*UB+i$anF?7W^bd`H3 z<)ygP(f1D-D+ppSle_M^dsOd!^I2z6m^>MP2H?U`tmOf3bfN|awpm!Hwr#L1-adY> zkxIdJM!NYdQc+HDv?dX(lNufCB+_ZxF8>cFU?ieF{Ln)vU$5?IaKgI|`CW&6ujQDI zxL@UUK^CTR9M$fD&mvX3f7o0U*=&wI=gvjhHri#uM%0C1%H4OP+#S=K&-0O={OJ2AV?Dwq*W1EG^5ZuDTU5t=>F4eT@CZQ4!NJM@{FLmGwN9?1s9X?g51 z=YBx9ZS$FjAC45JrD3>vv_fnSufDj`+8pWz1`#m2c~~z<4YmsFq!c=vq37P)L#cw+ znoBRel=t3!w>}mih+!>@EnBuY{P!sDwX^j?F2`Q;<~h`%PJk$+QZ&1&R%sZ_{@@3h zu;-o?)IkWr_{K)|*k_;cqKu|V{}cCvVZ1+p!Q)9wF+Ty!zjatAkxJ2i)n$lSI8{g{ zlU({A|A85c)r85TFsH2)T|GSEctOd7O*Occ)* z&UYtt+AXalG}_mD=u)kd3p|}S|1N?!X}xeQ#lnZoPDJ;w4AU7fJ(9jT4 z%57F~WQQ~%kbn`3p+=D)SvNE={`u$WI^hI_l%!i)n6Y318<#98A~Yd5^5~;E;(!An zm4a-x6xk_7e#5)iz1=SK$X%N<6j`At%pbuzQ9J7-VsW}|`$HsENF8c?DdbFiT24^Yqgto87i; z_TF<(vTwf0>;(%#RmH`S(4C7_s@rRISfN>uhIO(Lu>@^bd^gnEthMHXub)qA>wB&W zapY@j+nUCvaqP42z9rc*THk#S+gA1Nmz}nQVBWmFu$4kN3cklZ)uv$ zI{x^Q^=WKsA`hH;(M1uglFgR?{rOJk$y%q^swY@^{C;s``10}A`t?OG+TGe^qow;k0 z$pmtg?4PhKninrd+qUDiVVZpM(MSDtIri9NQMQd}Xkh*U2Ov|aN&}lx!dVBV-p*HaDfX{mF@5U{_k18VLe*e zbw-`ptXsQ|8*aSOFGJO*Wfl!h{K^I^Ub8SjaatFmCBm6ksdG zhNVk=7U|SePbHJhI-0C!o?*su$Az;>hQYw|kG~IO1~0frsep_SkONRYU-{lQKZA&w zHEW%;ZINqTi`CH{nRDk?zx)+a7})i&47MhfYT(%8jt#x{TPs#zD_!5cclxf`bI*Aw zTaU`uO4y3=Pd)8erIq59Kuq`a>23lqTfzDb9QU2?MA{=dZ~eng#VVQg5e8S?=1~Jj zU4#}m+9eIT;3WO+fBFG3|M)rLv*sd$$)`N6ldn;57D%QV*!0tHJC0ptwgn*shaP$; zxm?ygf8=KUSS-fRes%@1Sd2o5JhFcMdJ^&2PLpG4Yqu#=CZlW%Ax0NlV5gF#)~rF# zoy)o>pTsmxPCDr%lx6u`fK0^M&!r5ytT?;2ZH8WXp_sCAC(z!FicRvVLC|&EW1YNt zOG)e3{tl4>1=r@FZJWM_?us-8^;HFJjmc{9(eS};-@1J8Qlko1lOg{9`NL6)i#hW|4G{C6Yq@ob4OC9$DyuT+b zp={P)a2_HS_d^(?40Z$0Kkk%H3Q?!Fw6w6_e)}V(;lWO6*A$QI%KzhuBwzj7*ZewY z-U0;+jpuSXVzIcRr3$;3uJSxp_FYGu6LsHe=SPh}4fFiKr>!8HE6~z1$xV`=t7zl& zF#jvm&=4!Gxdwo_bLWyuHJ}m2a{%MzmpSN5Uka7~L@Y-4J+~oK>0Q_Y?eqL))F7xW z3iA6}Gw{NbWL{s4&SgVfHJmOR#G@`dM1B`>dI$5_v2lpkbK*jmAb^ z`Tq9-`26QTPbM=|dX8<=@ZNjO|KbF5H0K)8SgDJ-f38TVwZhl7Dw~>lk~WkXq_MFHWp7(mqsGa}s%*O$XA$@f zD&r%{fAhYi(+#wDb~10?JetQflh5VQ?)bgyjln@;K*RLu47r}gK_sa%gIL{N4wc@) znx#>&N%(A12{llT3{kORwexyf|LqfqM6y)&P=I05`|#bN>0g8p9CFAZ^!4|<@w_AJ zwpJ7@iw7Qj&`+*)!wokub?Q{im`OI5<*KW$^4&TXE?S7K?CoX&h$Z5jcKSzo_POV_ zgS9~;4CxdH)Vkz-7Sqq@iubI`j#;+NJ8M>x%jNjWm%lOjeT4Uu4G^Ep`3%CLvdgvkk>7V`yAw{Hs ztP%<0-Q67Wr7wlwM@sr0ysNe{Sv#vXNd*mODgYEgyF-N2*oJTaE9S&$XxjxM+s5kH zjNQ{!u|Pry5{U#K`p}2mbc?m7c+|cI$uJDAxZ(;d%VO`n_Ts_|zX^zvOnUB9Vfrzr<#!>pccr2bs@GqbIBwB0Q+uJcs6FcO*TIW0LIkuuuu$VMy zvg4Xjm(fzuJbpZzHf`eAV~(kw^;-y1t*y*F;e_z5WZU#Uc3;&f#+@7(K;R|FDpjlc ztdr8wYFR01{o1+6WZEGNhDqO(_eEyNTd-h(Q;<+=Kk-WOGpf4@TD0cv6)SuV(qoT5 z#=u}dO50^*9WvPr_uqd%9UUDsG^E|<>5w!nIwEz8uJXSQJ@)pB6=btnf3A1jd1rtf ziMofXm}m63!ZZI(ojN7b!aqEhtXaQ)Jr`ee5kr~Gu!u9++KL7mXV0z-`q3Jl&tdoW z>~PnNQP>%Z?iadTtvXz~7^TR(zJ!5=kD+rJWHL?n9e)U29IZ9qxZnaO?V_KdF8CSM zo!=9Q1Xo;f1-5N-?X}m^wy7-;w_JJ6teG?U`q#hC>eZ{u;)Zp|bvopD)c>mDm?0%! zDD(Tj?6S-JR5#K0&=vEH9#`c!(VB5hO*MzNmUpzKsj<;bK{L!c*fz0^8yNy-9CJ)0 z0A^Ocxoc7eKb$ZiJbUrBz6a`Xe)B@G@dsbU7~g{G>!HxTu>v!AEYe|zeZXOnT=uNw zGpZ{mXvbEH=bn3xefHUx1xGA!QZ7cEuau@xu=szU`3x&ou8e+$D!r!UylUesJ5Oua zvSmxjoU_?1nM^kNUaHDih8sg*tkN*it~RfpUUN*f)`(mVoy)QBr#=<(@F2Q6I|EU1s`RspK3!1xFm=Y?Y{U%VQqGev7)!#i-X_du@e=MQhC!S6m*D$0F`u z?RmP&xvq?7TNW|Hh_K*oWgCi+nAt3|PCG49Zs>pd5#$c8<4`A?6cC!dx&S_F-ZHvROXP^UbtHJ|<5XC1X&(9=>!xFnSISUk?P*ImcopL;I7y}jr#Hwqo@ z@?hIm^zYT&F;s+GNZ=e>DGbx#cfSvh;=AL{J4q&!l>)Ag7`Lweyq2~8w*UYj07*na zR7zJ4n}Ss!-H>+EOS0{{*4XhF=HMW4ATeP=h)cIkZp})xZSBxH4s|-}IRZ3Fx)bw~ zb`_nm#0YZZSRI=qU&2Wzoc<9o*uCZtUvbHW4yC+6&;;jl>n-Tu};E?M$2`|rQMlkL3L=hXU+w3GX)sc9TNJ-ypp#jgyLSX(=TGiESuuf6Da z`Q=cXgVnJanM{H(b}h=F6eXE3yZ|0wmQZ?Rl%~QKBbhmKCRQQuJD826D`m4~OFL(s zbru^pZA5FkuKR4OzHs5fP$2M?2H&^6$=Wu%oqTeH z5G}~ATF#Cvt6X;yF`>L@H%ej>O6(1z!6r&^^2sOD)!iMLa4R}-mQ(9s(V|6Marxz# zra7WSVXDRiU8+j5G8K{N%d^b?@sBr^%=h@?k7wSzc|Jh&_VqE8$+&G2I4(1yY6GtZ0=qGJrbvM991^v*9cP_%0LKoQh1snPR(AN$zH z9OGDstXfrmwjE3pi^bWpr2}Q_a5+*9FCPyhqesfGQ8KSq5HsT}dHLm%x&G$YS8>;$ z{!A*F^lL$XQ^EJt2%C)6<{Jrl@6a87sxn;j=r7*U1 zpn=IB{9pw3vl)EpxgF}kD(i&>T}BNE3euy^t?HJn-FvUSkWy5bl7=(6DHQp9juTEe z-l0-eOjvpt)7WTCZsEV#AasfE)_?uif6?9BLr-rHixw?n;>3v|qSka1D*c^Q0k5bLM(mSy%bgYWQ=@e%DGNhXxQp0x%mIDvKd1 z#n2nC>`))2`YD4}mDHdl3!55t!&m!l=B!yIC7z;krbf97Xssy}3RT&w;qD#9QmJ9` ztX9vTKEyzs&c z2q^+%adKOE8lP=hxJYY_$QRI-MGi>MoLRa4+HuQKnZd|#-<{V2?Uk}pW%*Ns(QFaz z10VQ6RhdF5#Ze0u(A(QrcXiF3wrkDu<;(rKe(PJ`qQAetBp#%*vy0ze{XcyD{PTJG z>8G7MsdYRH4dcd*!!B6#_xH1D!={qzp|)*fcpAWMUB(N6%;qRq7USm4i(G%Jt7FF% z&aBsKRr|HVT#K{60IKM{8umcxkmeu#=tsW4P*^+V)Kg)ErJHtzKdm*dy!xs?&ySyb zZfNDu{(*kZKKpF$zWZ*@`{chkY)&1evz#~q$6focul?1p2C8v0mJ2u2_O^CaHx0;U zDA+cW7A%O|ABBzY?J!eA-P)v*j2HoDJ*@-v8>#@)N6$EeNs}gFL|C2=Jn#UAjK9xP zwrH(cwrm;T6ff`V?+-oCR!#s?Lpsf!x8FfFn;r49Y-N+r=Sd}#Xr+k7Vk}y?2q6Tv zvayw2^d#8E+9X>_ef`{U z-Sy6bl*tR@n#Yka6D}+E{^}A*Yilb2-~QGm#W;|V?l|)q^mg|;2F*I2r)VLuz^!4=tFmu+-+O86#t1>#VrKM!UFJ7`3 zA%)8>ZJ)Aswqann^G>(4L@H*oE0@6zvNhBf1FbYlYNYZ4XajkZ+`QUCM&H`992Ov- z&+{+moyRS=+(N(0E@-Ve;D7@d92~?jjd0fnQ5*3Zkuh_)LT_Qm!iu^LQ%ufd{r2B~ zf2RPt7cU-FFis3JpWzD70ZomK*vj@XpEL|MY}ml`>C-W!B)2`{2!z1s>Oy%L!IKH> zT)s4ylGfzkTeristMv!>1k|YIG0?sdE)p0lpX~Q^_i)n_PHx z*U)P{ul)YQ-9tr;N!9RN&prcu=2M?S+q(1`Rb@PCn0cy*V+!K2IDSz!mpxjxY`I&Q zMTc0_wtm+NjJ^TTjyg9!p`{YGwZ_`gwyW70bXo4CU}{O1brLdCc+O?B2tzt-gA^oF zNxpvm`51YXE)of|)W#22fVHaC3g^70K zJfzTdhh2`e*@Xg$M1pKK>u1B0Lh|<8Z;?)?9hptzxR={DN-Lz;x@lXqQi#kD+SXWw z42g*?(OkHfEMhzJOJ?1a!QDtAP@M-M&_WmemXc}63|3s8%jJ;LD2Wd3>FMR#KU~9U zXPk}@f=j>qU9S1xKR64xm5_wzY_2t=8`2C74AA=Cdu&+0p6>20GMNk@NF?Hn8`sSA z>C>6D`|eDbFo8m$fMr=oAxBlX)mECxlO~hNHl0C-_$Us2bEG-7_+ibrQN|vZQD37KsehKtD2_-ZdzL z&nAgtHAx`?lACt2)fveKEI-RyfHLIs*luu&|BDpl@;QEX#TESfMHjJd-8$Y`{SH&6 zOu;bCtwjn*CX>AR#v3eIvY76!ZsPG6u~^*2gc^_x4h+)O)y?X6-XWLI6OYH)Ywx`| z{D{M8Zf+)<%{tC>bqHHZD~>zscaK9@&GF}ktj^G?WcAy0DJv}lAe(1%E+x4ScU z-P$Ci2M{5_J#MNt+0X<%TPl!BKA)$M&!cQru^$fH{{YT7{R|#|;&HzFz3*|yZMV_i zKQJoHq?IO_PO*I1a-Mqf38aw3Vlf)hjXnT-U?~Ds<_yy$ZJG!nXnprx-hS&XrcRs6 zNhh5|b8|C=LSbaJ-?XFmKk|qLu5Zw`Q%2EqZ}`K2J82Cy_|{t`ORL zr=qBU64D?ZGe9`Xjpv?uhUW3(`M}|aV+dLIGH4+Xg#y?XLMc*JfI$roz~o&-wd%z% zlq{y3V&0J#0IPr;Hvu+?3O*g6kawKu$~V(cCc`%_xPXO=7P4i_78WjC#6J7%Q+E+V ztu?V&j9YKMh2Gv?;_-y9bN9VA17j!_W-J~S0))_{8&V7o3~=WicQ9wpTuwRlRG&)J z+H$!ZbLY+-R^v9BW*7!NJ>A@K+Z`xvyVTF1v#S#!f(gGwaXtO|gsMb^8%rd}W^+98 z*c0rt@4n2LJE!h+{bDHNJj>Q3CQq$S8FqkvbrfE!;e`$TsyCK}(KIn~QbXB{8-H8s ze5{40r>}>b|M*7${`;ptVe*toA-RO29IFFeE3&yP|NFb&lg(r?O%o|)Nf**UN{L~3 z#{`Dq)ZUX)xRpO8AQ4Ek7Nk;XHgDd{_19fTPfrh8=(6!e=S{M;<2qg4@mtsUz0BcU zD`JT_i(Xj7{rBC6VHy~Q2?(S#5kdyK2mrd1=G5uMcT=3RCXtM@cI_Hoet9vbY19>U z=M?U+LE9uIO^n!)(xD8y3@|973mbYV<_iUk=4g#UXJ= z6hc-2NN^7p0mQwJlnf3Gv2fu+OfyzYiV|Xj)L}XoTca$;_1}z4Cn?a`A&|QWFlfr^ zvW2CXw{7J3mdLn<&6~HlA&EL91*7vSo12^Y{&&B}HP>Fl#Fj~=d5TKXJC=6aR#>*h zpYFVqhK6(*<}1ba&c-)NFk+EPNTf7;KrsvhDU0Vih1nCVTDgLS&pn5%NPnqA(opKi zRFl5wsped>_wqP~}>in002-FLh4P?5?xy@&*aFg!820yz}t zQc5MlsEF2(%Vt^q&T52|H5s9`@TiEx3LD92|0A)3T)693t-7`ZEp$NWbXg?fL{y2U z36Zy0|K55yGQeJy8Uy@Kt5D$d(@tZcuOGW$AxxvxAXG+8O~d5zM;{}ZO1r|k_Ju~R zb%_iUEi6aj3sG`EZ=l}2dwP0!VbLNM9C@Tu>?Fu9l+CLKgGlA~vfnitDGlzs?|xFL zlw(Zu44obgS4E>`EM`^+zd>7%rzj}CRN-o-g72q@+%|65z?7*|NY;`GPk0=Ib}2)= zhRN?rb_PQ^HiZ)Fv-=$|n!<%7Ap{#XZon{1mnEu_8%RSgo8z2w&!N4&ok=Z|N~_N3 z(ihp$(N0fKkB`wyH*9gU2fr5=K~yY^BOZv7V;LMuf3|z zYZw)5B=a3O7K_Dr@PP+OCKCjGCWUAJK_I2}x0hjwC=DZANwX63@V=6j=7~xp;Re%HTz`xeggc>vPfGV8m0Ay8oV@ z9un~c*-WlBEUAkN5{6}k5Ug9XmQ*ScU=u_IRxe-ZVB#(S(=>_2Vm>RTaRgM$D!4|e z03^8A${?WN$RIB-d6|<>Ii={0t81hXHDu+}TGP624f$Nod7{U%iBj#3&@NSQ6&&$+ zj6%Ug2BHgX+wzO12PtR~K=d$FM6-VVdrY4(eR!f5NLZcg?yhPZ+V$8Z*V3$gO@!;X zr;8iRXl}vo>#hiW>+9=ti-l|*3}F}sZ@lq3rWp&!0iuizBA{O{$`I*Pn!f%%-feAV z)22=I_4kp_=g~kS9;d0PiRsg)v-|G5(=u@)*=z=7JI-#t93qNn0U(h`@Zt+Eu;8d8 zw|bp6r4;Mdt@ESQJZrK*_=*iLv@@AZqO@ki#tp1ov4Sm~o#e7v=R6@u#uGF)Hqz44 zLd(R72n4x8K2TmwL{Jf3GS^L;HZg7LwCIg2K*i!{%XSn^)SnE>jv_RX7FxoVY9IriUoKaM`?C=!W;>vSlKfDmAtY-Q8l*2bhsleU@-NlJso ziSW!!>i`%(emr~4o5$oy zlgMUsKBaK34|*Ml5&?VD#!XC{HqCY33@3P63fzDS3jMv2cvcw3E(8pIkrG+V@b3!G zTKHZ{=zNygjJf33E(;~0t*!6T($X?&H*Ld^y!F;wCH0+41Y}+0>6KD6G&Ztu(IQ@c z<&}yJq9O{W6xj-!H z(1Ad!R650)HEX!>k2jHZ0d*woM{jR0OJ07NWHQNN^XJpp)Z`dPLjb_r3sP!?Fc};e zAel^uvr7_eGY+<6e9L!sMN$SiZo)3)!tJq0LZQ9*g&@XoStoRX*o--ju_dIfTD6Mt z%DSztQSAch0-{m*|^FJJa?6Dkm zs-3V#iICvOwEp%8IlE zNrTxu!BNc{+cz6`oe2Rb^GOOXWuZlDGWrw_LVlG+CxKU0t2TlW~OMn3|<< zEXPt97)T7^*e2RHZ|2$?uJ<$TZ4KTX;MwP&=Z2eZBAre+_-DcW~Egc>F^k-K%-n9b%*$6O9gLUiH4LcXD z0G)Zf=j>l#NY0Bq_isVxWr{pmgN|RX_oeOqVOk{YC5O z=pd1ZyV%5b663n=1xne)&*1m+bCjaLzu!+*>~9iL{NC5w$9)gnzfE7HColZ$m%kt$ z00=`G7}8+CjmapEJ!GERcHV>cK2))9*|G)GFkPzWcEjMM#fy3D$tSk?+_cs_`uJlc z67doj4sa<164Njk7#Q$5>C&z#q#MwdLKr4P8#hME1hT1_9Z{#D&Me#kpQIpARIpAC zk8Vz#RpEuGwI-9vkQo{(DN&{UjZ!Sbq;+{#I@>>HSp}cc1gU|CLCu)S&9~jUU0$Y# zl`sGK&uK_EI5q(3bi*(lPhDk~&NDP|a`1gPSf#V01H*F?bc1YGu2{iy&p*H2=4RVA zFD_nO5_wqkadN2i(9odIJ(SlGuo}`}7mzWNd{St+SZ78f_!gpB}?ZSF%!vMD4rpZ9{?0V>%J*WkPfm=I-e)8$NrHT zrKNve>SMqW2aBM|W-^$ji6IQf`imnw7}8+vy0r`p4(KT;Z%z$qYT2bu+nKK0uoKZ z&8}At3}(v|KLB@^00!Z0uBhOi5_!VLoHi#^qa=i2+4AKila32TJxP4Cxh%3wU=~sk zkH@+Do_n^6)~Me0+Uu{A&*u?RB3wD9r?+QBa|BHxUnpwGq~x0Gu46|wDJ3gczeCJ4 zO5DG36&RLnyA^?SvHpW?VW$#kWm6a$Lgn)ndqN07eD?VuD+UN zBI)z{xoi%tMa^@}=L(2GFwxN9ke|4?oV^GgbJ$p`jJH;H>Fu}QcJgAmHU`H_*oiCm z)vI1TE3J_Q3)_gH3l>A~z83{$r1m=)oy$f&7;Ra|R0HOONmw15DQsH5)vVQ{2<{1# zvO<^SQmTlHMq*Cdts;6!YfUDbp|7tO+qM{K&O+@5^9U(irG~R8@pznj@4vr(t8duG z2_BEyfaTwTTt3f=l`9>?q`RrLwriZD%}{30=gkwzB)|RN-$#$RJTXDo974ue4^T)c z*|ces8x`p5S)E`Xuj;E`@6%0C7LTEnP0zA7BKK8tpZ(FkXRUUUt_guTaT3I047~6Z ztzZ2o-q<_MJ7*tFa_<9n0@bP?*%oGRC}W*+84~*(Ub$Fqdv)njEX%5^-T_clH@f=n zp~0b%XK;wxI6;+3`G)t753`|ez5O;)sie>Idx^V-@7hURCLO*0mMxpzL}yjTTOrg2 z07V+%08=M*c>RqxFb&gXkDT-Y0^xHAB_W?~1RzS$SytT9-&VFoV&49!To&2Th&f>r zg|-cBx%wx({h@t%>+s!J|L_0Gzza_yOq1Py^lR+?-mNBVk2;AMuJ@zkwdwkk1l*Mn zPCRsC&qEko_=Cqcb`N5lMm7R&|M6? z@U(Mzz&qCg8ppYF!pA?0-Pg6%gzfshR)uzRtqPw_(r$?=Ap$_*?iq8+?8w`-wzksH zn5Mt4p9&A*Dv@5oWj%sX3uY|F;+K~=SZJh_p#;8V2tj9eH!TxeO7kv3$wt>wVvTD;TNY+h6PdQQa1EajynXCE7XVCuEMb8_yIp<_ zc5mlaO&l=lT&unl9KsKlb=}8G(42^;kPYKdL;V#w`3DCF>Fw!7X&s%yFoaqNEqvdm zVnCSot)L?YfO4Tz8l?hgIg6n+D8tVN;sqd;ph$N?yL);_Bon^FoARiMh@PjH168AW z?)m5aRG$7g{Be4~;ASic{#LeTK0sg-h!zSQ9~qTczkWT_rcCkWGo>Y3l$WXzWG7ET z+ZI+XOQE+ndS3-trl>U&i6rCy?jNvwx^@OTLupmdsG88eFpWm%vLyHWV5Hoz=*1UM zwpFcuYU!u@-7p+?2jR*L*-UoifDq)XJqI+ygjme!@wih>CLV`G!s+oq_s%m-7l4e4 z&8W3z<;oRqmI_%pm#}%FF$_sO9^>(+o~UGpgam0i-5X~tUL0R=tp1qe&NySS%CUyM zlVRHC_I4+7&V6q}I7q5wPPR>cLJK;Zqi@;r(Hc6~{mMULb#B>NEYO|}fwIDer8S`) zdxN8O(uFLEeUEf7Xb8Doym*P92Q)m5imFU4qm-W*%<%z|^tpaYBUFvJ3-4mqSPbIs z=JqyxDhbJylUY2OcD|=lrGVi9gyC)uqg04}{Hdq>WL(u!I#G^`(SWrsKjy45N-fZpooxsowG$pr>C`IndMDwoaFp;8TO zERQ`(B#JDDx5*55gZaQrcM&Y5Y#u9 zEvuAiV(z9lV=myvA(;#SM63u5%JBqnfFTdrT!1wSFb5W;!gQ^#5bgV6Y8isS1lXoY zGL>Rz{rdW{B1wbz^qDj)I0n17XPa2o>&(Kf9hVF*23iyY(h0;sdl`F#SI8tgNb-;m zQD|RV`M!kU@h6_(UqAO*-wk0{byDD3&n+NdD2z~O4q#csWjA6jE0GGY7cu9!Fdg@7 zZ7XN<7xIwHxvWtjDU&Bud#X;CwHzEAz%)&#+Gb?#AV&@}O#`JAtKL~vDbz~|hC5bo zjH$HCvctdo@|F~_Fn0shw%1Ny? zYuBwMnM_CKP>t$_G+c9!BoU8~j4H^07RJN=@wfvB$rPm1(Aeadl$ytrKI{WD9CK_>J0e850c`+Ir+uEqe2<*!?F7-;eazaA`G&F%> zkl1Hm8a{XoiM{uAu5V~^=95Y}<4q)rY?hyaS&mqCkU}{5y4~x7(QOLIOq@upv5~ib zb5&6#9=QMH$&)$$_~S?XTj&0k#{nm27Bx}vh6{3X{G&DAj+}%Qm;%11& zitJG;4GoPTC42npXEg4&Z%JOcTxS<+FS-<~y{%XQ$5svowoEWA7t2aVsFae9t}Z6E zOmgL^Dl&uCzRPwdn=P{>2V{j<+y#iFBPr$etA7scjq>Zi>@Ec0$L=5t`MZ7SSOVoB7OMj3_N?gldHdsTt58hBYghz z|LW!%8lJnxoozSr88WWsOf6G60W8z z7Gw9zenjIThhXQ6;+Aq>)YO0ZXHxs@!}=fm094WiTvx6!0^{}GUoa166*k7n#_i0- za^21i(r^)4V*tSJBpCy$_v3T)Iq0bSfN$QXz zNX(vxJ+(Nf^>%ObY#DXOGiW!~8C~kR>dOpeQEy&~Ly(AM6UO+- zkuUuD=by*2tdRWv;oY`vC#FG2nwrLqguIopN&$c{V;B=B5}(vOY+*m!hNh2vxF{=x z8nc{xq|#|e^=l0?FRgr)u@i_NbQKB8IqtJ;#mtK?C?~cdQ#RQBJKu7?dm1SZ5ah_^ zh3V60xX4^!yLBS8QXD$}Fb+HPP!h2O*-VClCpdd{C#6vu%*j)EYtf?ceP+fOck-E- zQ)g_Kv@xUbS|#AJO=*pW2tgY6xXuoeKH}`qmo9|hndhFRp)u{2hN`8^xTauRE?W`v ztJc)#j#2zSb>M;6IaL!(O*r|a()1}6Zqm;CnmTz3Qb_WJ{P6Qq8f7cSH8uqjsFu5q zxblu=A*<9p2#zD(+~n~2VPhSMtRMt)_L%L|jW#3&tKeu4r68NlxZjJ8+`&K47}*R@ z{q!sA1v=7(I`YU77BUZuM-a$VvgSJ&4Goo>)dK?WyHZS?I1y#0=1-9)JfSfyLP9SY%L>vXwYkfvTm1sw-xz(9>XxOZJQHLIH9({9?!8(mw9fw@=xZS)kw3pjWO{0YXMDL zz%^P2=PYPQr!h@QK352zTVQ^fp+Te+9CFCP#rp;4Rhn3-dP?{*V9=ITnt?$D$6UJt zB9%-z#?G9Z%(xir34t<<1V06sjSW2Wr#m76SQqk4`}ZHAM`}dfF>F#;DXZF9C!HN6 zz2NU0wO$ByShIEwv6xvCo8(ox?CMPAQmYlKFZmv_S_x{Y>A3G<$K^O500yrI^4c8x!DF#3+lgyN3_GW6CW9eOn#VO4 zwRE;qAkg=T^2VFXvGIzZAx$?NHxv*QM$Dk&`Wv0=^LZDT+>jy$(HA{gS!7>%AW~3Q%4X`csR$`TwGt&73IRidgG`w^m1HW(vgOO2qUB}2 zGNHjdhAdSt2K4UvjT_l~+n*dR#RR*rm;RStruDxsr|;>fp#rIqEM!LIj^Pz8K?}deSFn^-iEyL? zwHsu>Bh|7HmOdORKP+7I0w*5-AqEBqYn1I3J>5MtHa2qM1>fK+U;Ao=;7rjW zO}Um>DIKaHC1f*r>GiQJNF?dH{dPKU%sCi3nQ&A3WgwSzHdZ#{0z#pJI-GmXIb_|k zQ_5ClHPfQoh7B8;IC&C#@3j{t8Jg_^6ar3$(%m?=4e>aGFTKdXv(GwXkC}*A%sH>G z4>Ci6@#dU4E31O7i=qn6&CN`j(1LASY;N0(UtX*l3u0OHef%GI{etr&E!x^DFzd>j zQGGo=(2L4Slsgw?i0yS;pb}0M%hsPMiH}^T;_*2B{R6!B-g~7k8WrlqG99~L2}c#NrB!e?j#3WLX0z_5axrW!TV#{+ zt~*A-1&Cah|Gw-pY};nT`t=O-_YXS{ujlhQX3w5Yu25jYgz+q0y0jQy?%74ODr)MK zEBEAbMJ!*)LuRlzRu6zZK=5QFJA_pV*|eYj))$+9va7(wPF2wOlffT-<=(}uPVwm zxq`F72M1wb00sw2$J+0XeP95F1_Hp4FZxj_6`laL#0SaXs3VUgo=6an$LZX%#SPqw zWb{x{QV@cU88hho|J!@>cuT7KUi7%A^s;i>P@jpeEu3 zNKBp=@FO?c#vuYX$mGD>3{BJH>F(3rXCC%YwbuIG zKh{vIY7b|heY%@Q&-#4obM~oW)vBuBJU;k9Gt(4;MT@cc9am_bOx5=y$SCNCl{LwT zN@N4|R1PT`g=)00I;psd(phh9C?;9%aOc1N(1b9wp{NlsIy#0p5vWwE`1;qr)`ol~ zQ)`k%h?=4Pl`>E+Yd|U+V4ImX`^u@qMi>N`oSe{N(j2P>Zr!pK zQ5a%ori|;ZyUtjD{Por}m9JGb@|MdQLG60W{#p%ph;wTt)lz|GjGy376^w8GI%VB z^2Nkd3x7i+s}pqaS@GmoHRTQ)pLz;Gpwl_qu`V&j@Z{rPygg2^{hW% zF@n6*NDJ6jAE=a5K(h!^$%{y}lyV#K=h#e92p|@e9|bgs{%j9AU+W{{p|Zm5u;Pl ziIN&h>zi{2#u&c$&;N`t4C-tDH`s_27y};u?XM980WQ4o0=(stOLPKC9wGAN*iv09 z|Hrkgj!-EZ>yZVnT1sK11e5?15`Xx%w_)|_)yAAU+}66AJdKaN5{H+H%CrklXx zBz2rw$D0*VCU-?K0)Enygvrs@ub7 zt;haH9>%2Ul-fuaK=!K3i!=$ep4sPHT~V-|1b#g#AAyYxgef9vnmxC-}ho-j5GoeRUexR@W)SS0rU>augz!v8_(w zbOUdb66;_7a@=_R4G`5B0Sj^e{r4jXf@~=m)#7)9|D}@HxpODtT8w~kh+2a0-|>A= z9E01+e#&ziTI9&AIWb6Jnv&!E0ajjn9ayOc#CW|vndb(LL?@~jotWwzAr4;P$84gLY9u-VDlVh< zwI6P%Y!MNpQutp#{GoXv_3XLPZ_XH=eRdOucJG0d60g1JwfN>uHz5eaG-M+aT<3>9 zs4Spa&XGX^UC|Fh;E&$@9{jiKzJPM23~+{ByLV!2bVL^rP)*jUS{(BnV4O4j{AWK! zp;$m@%Ex-oI#1$g?#zXl~q)7Ycv$YZhi?N=CoOq%nORhk>s=xQxGsYaCn52^?HgbO=x zgfQc8pvL|NV~++g1WQ&S-uf^ot~Px6qhn(@e%0d;_n1#Va6X0)Sy=W(N1&`%70C z*{vzR&IZSrY5D=%cHW#H1OYZZy9uYBej11r5|QAFKYlN!W~TA<#*MDL44QP@Z00|( zT(Vd!;$4?tj&oo6N>nOk6bca@ee_XNX1+!1EpQNL7=G0sVE<2lis4`Xx}|t@+`l{k zIb#aGF+VE7_@;7V7hFG|CO!yasY6&1MsEGaoc#=k4jG7i*IesR4UwR@?i|!M-qloG zdh)4_xZwQrki?>iuZMDfO`+V85sZzEVcqfTFg-nu^=GZeyDqyNV`F33ym_;;r=yVw zMP98Y=tT9to*w+!pZyuWaNTvLnuTsEGCehgpZ(;gh{CYNn(BktEKS%mvqu4hzWH^%gndw@9V>x-uNcG^PTTN z7)5~L!jC-suxY4B&1jr1D@h9bU;P@ygFCVH|NmY~P&oSU{}sHeTW9i71}d_|&*M~$ z_ffV;vyGQi5+mQ9bDOUU127C=>0FSZ@6Df1v${I++Od=(SP!su0^2wn9-{Wlf1vur z&$Zm%V60lT3U7PMTOfsKzc7_S3I^bHZ+HWW#UiAXC=?3l>F&n;4?c*W{rqQm?6Jo% z(WF4`s#U9S_St9St#5e?PCDr%jEszE1R@|TMA)%yJMR6D|3INwnER^%Fg-nkz5DiI z-Eqe?t=7#=1-rMu{hiqO)JE4yG>RewL5L@wd=ig8_84{y?nK-qzj$E93LJmJ33&M# zXJEy^0466jr7lDT3=ZzZwr$%GMN!HzSx!;5)xL$m{@1=1TuMB4-RGNzTd*L+()V10 zrSG~1WUDKq&W%o07hRJWbi^F7;+EeAqy*X zVdD1B=oi<7GF@=q`8e*l;~H2v8Z~)HsR`p8wQ3b7o^%q{pS2!w9J{`9-QC^j>FI$G z0uvJxNK9d}QmKSRixwf^0Vby=k;DnYFm%Au)zyW&@45>+cI-&GORgGuc5OLXfONT> z9XofRtE&sESHGm?^DqFFav6)4EycjV0BW@uoHNs=R-shtLKKFGlLTecVwi}btE-5v zQVAeJxl)0WQuj`X0#wUYY}~jJNfOVRIY*3xNrC;Zdp)8k!o#2bf0`pg7$I77437T) zegri$l_iLo5E%pfnKaZU`KkY}?wYG470Nr8zwztD1u_gwZa zL{XrtL3c1jlHiOp&%`OG>KB+KiF?7;B4!I;+3I~Z)+q=A6pKYX^UTw@|K49BDik{I zF3K6h<}F*mImePEOR%WFb#VjEIW}+E0#XWneSJ9P)Kk&j(~Y%?K_tWLHjlMYEPoNzvBn;(Rl9;x#|kfGYQ{nK}G#e3e1O0ANW zO!Bph8%ZukagCw^_Uzt+ZCkg2h|t^HizQ2zptrBrnKH}e3MMBe@Z?iZAqqnral{e2 zp$HLF%gWykBpvgYGmf2ugVqlTMN<1ElxnbEEn4p0y&F<05BCT`5TRPFVdIk&OUR~SBq_4(tf=aoJnVA{gPRp2=gCK&G)DHUs7{llFh~)ivwP|?`jb=HYH@3iI;shk zW|)|q!1%=Yte=eKnx!~k^Y_h>gUVtNC=9UqmRm8sZClGrmS6K3^k4M0l!$rU zAgctk10p(EG3mMgbo!h*1IOVye1{zXimT}RPoHRc$^MaH{QRz8fCoVu(m-?Hw5eK~ z7Nt}WQb9_BlmsCqq}2PDEnN<&2wS&p$N0nqz&NDsXWhnqq#~3nRg8^~XMAr_RM7J@ zxMpH<5~E||P-^z*SG#5@DUCGA?`t!1mK343XbHw%aV|o}vE{q})DjU`5TO5!@5G|l zy&WWk>)YTvS#6aSB4q1p!4J^O_8d>cdc3(P*Ikx6V-1HdGUQ{O0I;q;l+M1iBZiQvL$)y~P(E@ErcOB-5og$Z>n)gkZc}qa2qSczau$|f{TW^1!sWiJ zw6Y>)y~m9s5^~`?Uaj-hU4;!aq{*8`019IQQ$>SG&BSTZ5G|OV;hz)TZX>AJ{^ADRN~;+KDfQkp+&|->r*$z zIL0R@Ffl%1jBJOdY6LL`9>d$=>YI@R? zwqd3NtS^_CCYY{iBhq9qqYtF92{yGjt3WlX?@Oxl&wcnKLtb=BVsxE-DdhNW$f@C` z4!KRwJqM8_IPaC`A`#*s;R7KELNKn2m)SD%!y}`ZoSMR_m8*0IQ?CuM{dhZe?f}3I z5hL#r2?5i+8wdo>1MJ(sALVk{m_u0`{uFAVxwrCpP|kEJF?`sM3MV69&7G{t_*_T5mvZ67vxJU(-_PWj@i~1cElbVT6 zwK95Mf32>$)WWy0W!pCV;+}h)iL@h;sSQzQ)ykESQfA6&CUJtT+qR)RGvlg!C=<;) zw0EyNH=iBG7=t7orOE&d?ixg;Tu!Bd%ysz;v-&NV6Y_GELk73m5X`$vW`w0Fpqx>1;z7)P~QG2!L) zTd@%70K6o@*6rIMMAG!!1HLf=OKO-oW-TU9KNYA|AZlei^_4GcD^0VM&@e*Kw+Khw z{1d2&F~@~6xh;yadZ5cmplq*?28uNKt(K{YBJEf9W z(9_e0k&#jC-m@ng?RpS5Up*T==aq<;uLLJx`uXRv`CH#=*{pZG)J(t zYrQO`OahK)vdiYSq}-rws}nV_I$7I72jdWia336m&fsqxf*VC4GLPvkUm z?>&1M=%1Af=VrOGL!hj$1eA+>HaQ?;xBrj1LQ^Hgi+wN#N~-98>t`|bqyG*PwWd}k z0NAv7GnS2x;ibnPkKy5A^!N9pzqc1b7-}V$v5qqbi^VSUaT*lJ%I%}3E;yDA?Qd{R zJNuiRlle^q3PX&oKO0mifK_z6tY>fjyQZCV{P*5<+AA>d(HkKr#{kZBmKjpzR_j1y z+L!_0Mrn3Y2F9apt%dDaoou`1rdB8F*jRG-dZ0T{tXZ)K(?9(ZRC%H$Lf8PdQ%*Vs zy*=HC;{=6b0sVb_=qYuZc1(s__#%Se1DGc5Hi&=ZP0YLwo-i;;ixCW{^oi;rIOtr-N7&DfSIkQpA4FWV-J~9>F zxlQLl+U8eEY`N^*IeVaA{G1`9L(HJ}O`k;hm$yO;J=+3r^oQQ~)J7~`ycj1OdmLmU zFgh}dVKt1dE)&z!)n&R?=BhEKg;7_;0$@kPZ70e?m_LTe{TamwDV@o5l7%9t6u_V0>a6oG}!N zMRXOrP%IW*dL)@dbmm!*`ucj?E|z?-kwEnJV*11rA-lW5;uryEs8y!1{rk5=l*_Yo z10En;I)GJw^=(jj+LWQSk;U9N%3OG(-cPBQxDhwd5vSx@0_!;pfl=fkP#X?At4K5R z9e!uSF*?Qw1>UzDeSi1`%>3eSb@=xz>|Y3hCpK=xlEsU0%+YHdko$&@TD691rRtC< zj6xKm0*b{VqA)}lhG1am@9W3p51G?vFuDjp^#xN@)(3b6s)TcwWoi9+Qy%^r5sw(X<)?)9Jyvq%cdvxJKFFGn`6y+ zpgBuBz2y#+J|MI;thRCh)m5uOK>(H{V8sF`NwDw!`!T(Bs}loTP8S3qDY4?Ce}lqN zCxArKR@!Cb@azL1I^`0-nu<=Qb@0|dzVP={Ov)&>wz_v(xsRrX5gmC3qL-Y4@&n(| zT%zT4dcOU`!`QcfKUOSXjw4pTM2AW!mCXsr7)8@qdmXBAuo(aYGx7VPuMgFuRzWOU zWD1@Mgi!%;c@o3--iz|!PN&1P(+DwIb3B%R_zO@oQ&3YA01rR`2jg5@j9lAX4l=zV zn00=c_i#W(CwL~>R-)59>L!IRE`ZNDo&2VJKJY8cmdUd{>k4_@=Usth_fx1n`7>vV zn+++3M@F!Jco>WN`>}e}YIK*nbnu_0P|afGTG63);_dwT{6r_A+gpj=KEx}QBU!vy zbEG6e00P1QQ(LxS?1?9kOii_q1e^m(Ve#8OjN*ywk?h+A7KEl^iADr68|Qwbl)xQh zf&Q)i2Z8o2WZVIVLUj6_(HXo14eM@)%I(V`g6%P#@vIupvWZu5$stJ&^z|WGvIMeQm)K-NAb=JvX7&zY^0`f@4DI!-F>N4$5giLhpN#%Dy%$s~Lyqm$ zKx+V=nau*fa{B|oA_C`7W}nV?w#Ne?3>-p%D^2CeI*;|99tLyj9Xa@Z*on>*;HJf}a@kqLKv4*aLWoi~ zWKR!dPd8+-O9O}y;6b2~u$EwE*Dg#y|2(Su_d9*3PJEnY@Sa8J`-69a_b-JQ-3xAj z-2p$-oIvpaj5Dy@amG1dIfy|P%O!~Eet9eiUGF^3LLlT|JWSsYZ@?@&5uJ!$OvycI zrR5Cp=a7K%`z_!%$Z{eNF&ZIJqy0WYb)E7Ch~aHWc0Pu=dTipjhP{J>*gH4~L_K(!P#QA9I?HQjL4?xFUyZ_%FNLa>p{B+hbte{NxPjsUi0dv(aH0?gc<8tS z@${HR7{ei003HS@R|x{$kIoi=XZFLdx1Y9+ zC9jzXAx-T|DSvjZR98@SG4-kF<^7*j!AgB7o_rC+zAcc$Tjykka3e`j+r10bU4t04 zR5uI}_4Og_??=?zi>R*`yif#>LhvZk)Qxcv2~ed5B?M%x22n0UOidw~o<=e`30bYC zKy2%&&XEH+Kng;19rrRsN1X_Y%McU$!B_wi%!xgWr6Nx%CK&){+$huOG2(#%YGx25 z01Ft1hd{s~h2{h-2n^DMU_1tb&|S*{4&tGn+vhaYM07ITAR{^*ww%EMv)2zGQ%~_LQN0p%&kR@V1*0P^;cFA7)zhQn84|IJgE;L7!(wK2IGO$1b(i{&$qmYL>zB(^Dd0B5xbUN&i!2w+p zV7CBmDZ5fR(MaXypj`R+7F@=k+xwlrCn=?0VqIBt1xgfHsUK0#=}u;W7;94iQUMT1C=~*M1XKDvQXycjL#P~b>F*~&T!E9>$5~6OlTwrm`+gyj zp$-x90N)6>8|Vm1WvG4Qb3LR{p3nn|@JP zqFJE}LH|+&eal>{TveGeR9|Yv)=_#5#LSsV6~H)Dpe;XIL{b`6Bu#RL)_$81U%L40=thu6o3UL%z~8R63s;?W(nd8jts2| z_`7DPHWjHsx}V>S0*%e4O}U4U2*`7f7Tl&GSITpsM2B~D_XDMVP*MfOGoWOC#mWvi z0z^gdQXg1%zn0&LppvSlz*9LlD zp!Wk3Xu0cm-@mf^@k#dcX9}NWIv^7#NcVdZej7$s0TD4lmOxwcbbVIH#!1 zeGU8*?$k!c{A@#v?BV+J$=~NAEDykn{a{4`WC9W~NX9t0F6YKhG8PuWiY2h9q&>s7 zr4^A;KH<#Iuw^@~xJ_jIFn;!%aa_5?9AvZNytc*G#?PE-nAi1@NKM@gAZ`pCEYtoN z%<7d43{s0iw%sjbV8k6kbv?+rN*#8-)oC6L4-YIdnBXnn^`35qLip#@!D)Ivvoyw? zpDT6Z?qjHjSEx3-`R7}OOMe(JWzONg)Crp!?p94IjhB(i+)p{n4C4V9O2$ASK}rBp zxKf7)gnMvfmk&a)pa2#{hC2GOJ;tWbQvZOiaBhCPeazd>GMkGV;!R4#+jq)YE+dT_ znx3BLDxvCl4WvR1(}0Xz7`*?D+&5>gAV3-lrxC|F?ELaEgu_HkaxQ%vHJt(*yjMiV zC7&`#sg*S4HN{Zo^)bJYEKAueH!sY1Gnp~~%9wG`FzEg|N&_@EVcc99N~26H3wI(D z^ZXZN#3u%2LIsT3mZkmj2*FV;)j)A3=f?VHh`l09ze98(smYC^y*00)Pc>t;``>(BOX)%LL=q1!hgF%=1$i#mngoNc98O(4hx_Bv^o)u9504Ea$kh1qE0p9?DWJ^Gu!$ z$C?!M((s;3b%fukh8rfw4YlSPe+&RQptk^OiGT%qq~};Gl0FtVZjl1LJ)T7ZW*uvc zJF5@NBTK*l7Mf$)@4(!-%y^@N3}RUmEi;ZhjYI|!jWf=QVfA6+EY(TW;TVp=n0`n{ zg;gq=5P`8q)}<71$y^5m*gBcSQ*@bkzV%-)?UZvAo_paJB)v)z_2C}Y>Bp!()WdxM zQVq6P#PK42jz*!3T`m!vCAR8AH z7^Dig{%g37b*hp1oyHOQh~OcF4YQ~_mYQ8%KL%r#wTe9Xp67rY#NoztYMpmph=-Mr zY=$9YsiN*gZY?tFuUmijF5^^Jjm%9IWdXx6tNm{j5>ty{{}f9MPMCy zfx9+?5T2DXn-`s$QuATr+L?;O6d5w&6Eh~bzyUj1z=9{UQy!QN7eJ$9lp+r5&9f{A z{Ed%O77@&T#}(iQ(s}1v9Z02BGMLo^h&)Y+knMG9g37%951GCLuv~x{z1>e}NfliJ zbBJK$nXKGx#VE#^qxKGgEaf-i6t_t^%!^QE+{7YjnLl;RG3SZ4I!zkBZA6}c*KrHy z!Op}rrAWY-6|aoIX~bz~C}~tuCRaqj)wF%lMXfrHVRdQB#uoWYM&RIn`4l5AG1nu{h!Z@}Viku&4hE*h5(Jvd__~IZ)eWL~ItEMz zAG`oQvK%F!*I@qVoP&bE9d|l_%ZlS^cOI)ovIgCGlqXF#O75|u6R8(*2)8dYGhcg8Ut-Z;bk1?iq5W6s@!V9+`jpv4rg*`ialEp<1#1vC1D1$^RGx8N>UnX$l|CrC}2W-ew-wq!-A zz&GF8<2oIbJ6{F&ihcS1P(%4KOFstk^Z?}<9Sr4X&L82uXJ2%Bapf}{KqLXnyz|DL z<87v!mE%?Fl%ZVBRG;!IfLqRCK9DX1;dybr{M*z~M4qzj9djw2xvq-V?CO`+XWT;q z8!+yZi)A#o;J^sy8rgz2Z5ioSoOMD+7DV zt60$>?r^q#49um!rFwuz`HB1HX-{o%$vqv1MgFdqiphFM8O!!?$o`v8(=?v)469Y{ zC39HS!i%4Wj~IS9NOs=3pwj#@>MB2QXLw-X#`nQ;4aB+UBS1>^!Ht7jV-<0qYWvnF zq~d9=(V!FO$Zzy$^d#;9qiMvRq1qhIzrwtRBW+d2W0Y~xW<)2I2Iw^woz&bz+~0!TIZbo zmuK*lxso|7<({0SfNQNf#{13`x8^bp{5E!pG3z%qCT^4D?}uVdfyO z0Z8gmcP*j3*0W@D*H!8pf@v<2CP^V}M{7eP6ueG6$Tlu%rr-kaop! zMg`>ovyUt(U=wmk;Q=G^o_y7yyN>da!b6t1w6ap(eoF|F1YjX%9{PDlO%6M&56L*D ze|$YySDy}3UKoc4DHM6!fHKYe9HsQ)`CUUnzv-Xy0LU+|<8u$nBa7E`9Jxm1$mKlb z8e|2ZVpw~!6@^bHpjxh7yR4{1riB@z9rc6*>|^WdO4eLJLg)f&iqFT-RHau z;hNL+0y=Ctx-jN0sNYYl?)tR`|Goo=&q+FTe5;{edy zgF5)an_d_TV*wc!#==-YhJ~>(7LZ|KEQ|$YSQraq0T~v?!ZI%!|36JygGpt&*3Sa!<7jfEYr?m}m zcieFYuD||zC|gX72ycJ;+ws8o#1GCPdl)`U*^Ba8p;~z&H$4HVSGd~gGs;jQT zrI%ic#fulW{VZplb(Tx$;iehLSHJpIoOj-Nvm!lX48z02xb3#v@SX2`ryQddEbB;o)Jt@r`e62xQ0o%iX{n+v}>hhN*jgisAqH)zoXt7{X-(So`;P zn1ae}t`C5knZm?Ret@ytZ>?)U&%y}2y9Y11?rZ2-e=b;bfTI*lByMeR3-*5HI?O!y zzdJ`JbQq5D-uJ#2x7~Idk|b%H>Pac_L#AA;= zhL^qUWtn3aUwkn(Y}hcT`SM&P3_~bCgNreAtveCNeD|jy+Zt;wA3hAhyL<7}`qiK$ z2ICw{-+dJZKKdCQ{W(X773IuIXRA#?t4CsauuS(`67^%AgOT7w||_@Ck2kb^FG9T z2KBswU%T}{ZKe-g7(q=>Va10(iPFhubR;s(Sxk~r;=1du!}Rntq9}6vlQyV{%(3$? ze({T_R;v((vMExKqBYC+@2Ql+XFl^8eCbPHLZMK=#TQ?UTCL{pBc;qz(i0XXOQ-uJ$TAP7(@l~RgqsGw8|4?Xly zLm8bhhA4_~&N=5e*_*tl`ytj{Ba!1nFi0RZQndmfTFK^O)O z&>wyDQN(fFREIfh{aGj!QY0-Fi|+R;&UpotN|V&1D8hpeJ~$_FX=rGu9;t~?-TV~F zkNw)K9W<-bhH&{xM61@g>U15N4r&)ftJVroa?Ycv!Kr_aW2;B%=2!UV!_P2Qb z>t8=7tBvhiZvnfvw-;}H>szs5!-kgES8FxIaSU#%xLM#2f&fy=%zP&vaRkQ4$LI8H ziAW%%aLqgv5iY#&!j{(@ee}_I;)y3ReWLA%lQ^Rf4ej0A_Pc6lY`^*)bH3)}-|T^^ zlr`m-w%d_T(3~ZU4&VXq5fScL3aAzUh0p*6fD#E7hRqdp#=wdtP$IJPrGTQpm5@0;z`#o-utFEW z1IW>REzGa!dmoIoww}2qPkze^PN~fHO`W|OlAZJkl&%Wja$njC| zzD0QHzdsE*HId~kQXbm6Nscox*0z$`bS}#o+5}!H1e6dU&RcQ@*&%hvbB4K?d#(PH zI{Wq=xdx?>kU~I6nF3&kh#-V; zbG3sELP~dEAtjV|jlaKB&R`K;+I6)-9UUTi@5H?;gIsQtFMI(7k|Na=q)Iu1t*W6E zAZ6R)FG(|xlpvu}Dy^XRTLXffw_HWxn3tvn2{^~|?|3DGzQvBRyYo#!fT92P=Mcj~ z+Hz(bgzg#4`Q-gRbjTnDgpiOz>c1U+U}3HoLP92@t%pc~)B>#09|#bMzhBG)LA`ag zi46YvJ_5-O<~!&^NI(cf(S=tDLjj3MDSa&3%Q6!p)irz~WU5wBBGP#cml*iSUxF11 zrg)hK;NAcABVbWcug{#T%4JkHK7#QdelH_t9dW}gki+}ZIqf}!IK-SmDUA?PKuQ7C zLAe+r($_0Jhft!u_ij0ZG*sB#o7{TrIUOMb5u}+%Z?bIy;nw6`Bh6af@x!3Bj+Wz< z5i`6_H$>k4HaP>4p2NS!=QQ?MZcFy=#@cV+m0F&X7*qFbz{~@8r|U}uc<&cSyyglnP2n(b>&Kl0YPeY9{UJ9wNzd1|`#CS^j>JbS@_O zlw7nyW%8UM@nmF~n@b7hf&g1>foi%v||R*RSPRam|0p%(eS-f1;^0Kt7v=k(j0W11A`2P0yA)@J9New1Vkd;oYY3w z70VeE<6ulR!{V7>2mv zhQG$OAG;Q}-+p_`_p<6Q{|-H8zZ!CKZ1zSSq<~nYZ4Gz?F|d@;9%1~jYI@1|oWOJob*}Of@Ae^uVeU} z;f5QoN2yfOYjwwLozUi6lEfGq+Jn!3{_{BDgcF(oBFD;)-GHv+PKF#CF_s}}y;;YY z6d;j+6^cmq4!Un*tw)(Po?>UDMok2I07q9%JLU<(cRsHYPE`5Ek+!--s~JgNK8#m;g)aR z(v-?~pZO}II2wyiB0zCG>!xZo@ZQDParGO$>By7+B~+UfR(aQC?Ecno;priiIoIkB z9IQ~n(s%u7#$sd}=FLcw7)q(8n-l_36lE+>ix)3y zC{_i_Rzg;*DR3kbEGlZ`P}Fo&)e6dw+>fpAJ_llaIHkZU53Fta8ItTZE`&aVT&ejr z{p|rZG4#LX3KWhwCKH-LQew@Q{uyFqe}lP1!?|!s6=;w0Y9~{N)+CRLCT;o|(ohhs zGx#P{;pq%X(y5<8Uu&yLw-t_&(-|7w`^hIa;=NZ~(bgJ1@c#GX$}6vQ(nhn8Z(is! zB7&CJS)qvSSH7nGknUVtB1-Nb9!>-QfEFSjd7fgX`(6hD&@M9MbTpO<{;mT5>v z#~}vfd5lefT^kRf^#bjA7D@KrZokl0s!rlUrBdGf5=or21yj;{j!rFEzON%mgqyRe zwT^5ojtP|(avpU_jZ$x|KSF|HiP^J(36!MQAW<2)KV4swO%hnK2ScBIpUIy#y`2li z%w6{W&9z`G1jVA|eDp$ClZ5AO?Fbo+Z$UUub~etashDK+6=D1vGRGP0TtbSDsxp&_ zO%lc{-j+T@D)Stj`Z#>i!>z$=t&kxjFVCk+ucAz71&O3BJua^gq>WL?AZZI3zZPTS zUvEJ?xFrn>A;Oxk{shrzW@l0W00|OFL_t)lqg=%f76jP+*(<#Uz`1JRey( zWBqZV4SHVI#=~dVpfU~X(_{6UiffRQW0?GLwxY<2KmBXS(Y;vt>Hndn1rus6Cr2@U z$ISo>o6k9qDC*7w^*pOh=N@R0+1lX@(xd!7XMl-y^4A4)9<^#YgJ{>9q(qi0%?l>8 zoS_-9A)rB+!+bcBGG}L54c>rdwQ#a10U>yk{|nuD>en02GAidF7iB9r;p_ zVi2SIF>viyJx(Jrb@%rX@7M&2Me|S(@dD}$N_HBXiq? zjyMAmL~`JC22zya3{49NXl2DIy^zWLdKoCnILF#|y7`W^oYT!)A9-`Luz-DE{=d^X zI0q|sVbTBf5vb~nR^k~0UowE63;!@{VEFncfFJ~kxZ&J%NW~;awdSKU5QOsOV%e5_ zDm|ScLpAGkhEAhaJK+rJv*?iRWS*QswZ$2<&fqDJ$$UA3uM8V1J6m)IF>{TqQ(j3a zP*Sfzt6Gfm!}lN=d@j>?ap2Ft2{|za2=bI+h5m~_fN@zl-&!$yo6zF+!hK$oqpsl1=-+AUo3zI*em-7IQ%ER|$ELBVX_`hfcSRtzvCjx4G z6w5#QHBWyKh_^mv#IP4yftC`9N7Xy^KqncUp*?F-;_?-Yp5fhFcpNKH9fojwb0?~O z4wJr*&bgA$8HCJo&DNG2nTiSXRNOOSN1LLi&4DHd_rc{={p8Xr(S@NYC;j+q5PrLn*Zfnx!G! zM22f<#aSkuDbQp%gX>|8_B_x^2;(Fp$axmcvYf%bj%J*JteB*XKY-6qOkzYjhrx2& zx#Tlg4>a?11_e*C_u^KG(EsMEQG5O|@Ind2lU}Jy*R;~o!NHfT#?lY`cZi`a;C;)X zW~N=^bm!<(hdQ6Zq%!J8?wwOYoidtMv%nl;lNeLR1D;-!2p!9#11UvEj8BsCB1>m? zc>2$xBTj)Jn5O~_<-$s=p`j^z^*_Fxui_5Ro7`SFhV?pIGc0)sNtBvt>qbyOah9mA79xFn~CYO&k+J%K0@>UA=0xLuyL^ zn(7RRa81C8YC2FasdXf_f^49h0D*xC*}B0v5m>QXuR-W*z_Ly^Eys&lIE!d|iCN?o z4G_9>ouQ+zRxX#(-`}4qKT8(l)?04XtbG<7fBf;s@%3+f140N>7gZPl7kKyO@4{u5 zUfMV~j)15TVP7;9C^rG$|9 z&bPmfT9fjUARvrFR4WyStRYY3;Saq3{W$;p^V=6yj3^PCFc8Mj)Kp7x#fV8Z8K;J2 zSAGRb%mEpAfboC)9OU@ERDm{}MvjkQ*+*__37$MGW<(suY`IX~up9@#|1n1k2$cC2 zhXffOdGryy;q`CG?2F^cS;ZWs2>pG1AR;75f{~FCV`63o$jE|4wp@$yAYcG0j1^~y$Ct5xmtMbh8Sft|F zz={Es%jG%M``5vNsf@jU-~NWrp{B!zz`GYgj_=dq-9lu!!7OHC ziCRXMWW@+_Y7`)a>N5|a=hg2^*Vic3jpfLGvqG$_feM$u#!#c$reD=Xn(LT z4YRLFx#C{{uzSxQ)M`~!tJSuj&3VO*_;%AbZ+1vaq*GJdT}O64fha2A`WtU(hBc@> zahDegAzFq%G~UQHv?p8i%Qsifdc9}bO%lxf@^+0(=6%*SJ*e{oColSt7kZ2;pGtWGO+rIl&cOOb!C7sLM=DKVbAv-?)$xotEE+dKxb#;%L zZA3s%Pd9$}qaWe%#~*i;JP1Ok%gkj17`jU(-2Ba(F*-WhRAw*Ve+S~NkAX$qjZ3Gr z+LVqRN|R|!9&{!~sf{@lz@if3Esvn`$WJm{XZo&N5kL29utG1uLx2SbWn)nZs#3<- zE!TG3Hml>#J)CnWrEu~|Ct>yK)egv8U&HX!GtXdfa4^$|gE5A)*00B+MT=(T@KQ-^ z-?0PFKmUBw0=_-nJvjaJ)6m<~+qUQR-|zZGoie@l=%cZA?OH@(H0xWOn3%+)k3EVc zNiu61SUG@~op#2Yd>#zI@aQNWe&k{Io@afxJxdTBaUxiud(I$G-S`U=I?d5_>P2&= zs#Gf@9^443v@li#5u%mH9<=^$a&jNk)JR9-krB8?J4OZ{DJ(#>YqiOLT*g@2AHAKL zrHnCf#-T`cyr#K6n_YkY+)mpzHJh)+Lv#oTEYpJxjL+RaWAEGQ-nLpc!@(J|-TzP^ z!@^h?zXPMQo^A_cVf?O+1!Pzl3&TT(^1^Fa7z+b64&YG$a^YPpjNjuS0X)V4TmazS zh4-;Ae$U5iIDlUQ_z?iH@IDsC@8L)Q{0zW7zB%wV_>4(9VM4(4;e5cjPaUHL`; czqUL74}EyhZFlF#&j0`b07*qoM6N<$f|`k1P5=M^ literal 0 HcmV?d00001 diff --git a/library/imports/6c/6c5cf6e1-b044-4eac-9431-835644d57381.json b/library/imports/6c/6c5cf6e1-b044-4eac-9431-835644d57381.json new file mode 100644 index 0000000..a86f8af --- /dev/null +++ b/library/imports/6c/6c5cf6e1-b044-4eac-9431-835644d57381.json @@ -0,0 +1,103 @@ +{ + "__type__": "cc.EffectAsset", + "_name": "__builtin-editor-gizmo-unlit", + "_objFlags": 0, + "_native": "", + "properties": null, + "techniques": [ + { + "passes": [ + { + "stage": "transparent", + "blendState": { + "targets": [ + { + "blend": true, + "blendEq": 32774 + } + ] + }, + "rasterizerState": { + "cullMode": 0 + }, + "depthStencilState": { + "depthTest": false, + "depthWrite": false + }, + "properties": { + "diffuseColor": { + "value": [ + 1, + 1, + 1, + 1 + ], + "editor": { + "type": "color" + }, + "type": 16 + } + }, + "program": "__builtin-editor-gizmo-unlit|gizmo-unlit-vs|gizmo-unlit-fs:front" + } + ] + } + ], + "shaders": [ + { + "hash": 304964736, + "glsl3": { + "vert": "\nprecision highp float;\nattribute vec3 a_position;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nvoid main () {\n gl_Position = cc_matViewProj * cc_matWorld * vec4(a_position, 1);\n}", + "frag": "\nprecision highp float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nuniform DIFFUSE_COLOR {\n vec4 diffuseColor;\n};\nvec4 front() {\n return CCFragOutput(diffuseColor);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = front(); }" + }, + "glsl1": { + "vert": "\nprecision highp float;\nattribute vec3 a_position;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nvoid main () {\n gl_Position = cc_matViewProj * cc_matWorld * vec4(a_position, 1);\n}", + "frag": "\nprecision highp float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nuniform vec4 diffuseColor;\nvec4 front() {\n return CCFragOutput(diffuseColor);\n}\nvoid main() { gl_FragColor = front(); }" + }, + "builtins": { + "globals": { + "blocks": [ + { + "name": "CCGlobal", + "defines": [] + } + ], + "samplers": [] + }, + "locals": { + "blocks": [ + { + "name": "CCLocal", + "defines": [] + } + ], + "samplers": [] + } + }, + "defines": [ + { + "name": "OUTPUT_TO_GAMMA", + "type": "boolean", + "defines": [] + } + ], + "blocks": [ + { + "name": "DIFFUSE_COLOR", + "members": [ + { + "name": "diffuseColor", + "type": 16, + "count": 1 + } + ], + "defines": [], + "binding": 0 + } + ], + "samplers": [], + "record": null, + "name": "__builtin-editor-gizmo-unlit|gizmo-unlit-vs|gizmo-unlit-fs:front" + } + ] +} \ No newline at end of file diff --git a/library/imports/6c/6c9ef10d-b479-420b-bfe6-39cdda6a8ae0.json b/library/imports/6c/6c9ef10d-b479-420b-bfe6-39cdda6a8ae0.json new file mode 100644 index 0000000..479bf5c --- /dev/null +++ b/library/imports/6c/6c9ef10d-b479-420b-bfe6-39cdda6a8ae0.json @@ -0,0 +1,109 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "quad", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "quad", + "_objFlags": 0, + "_parent": null, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 2 + } + ], + "_prefab": { + "__id__": 3 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.MeshRenderer", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "a5849239-3ad3-41d1-8ab4-ae9fea11f97f" + } + ], + "_mesh": { + "__uuid__": "e93d3fa9-8c21-4375-8a21-14ba84066c77" + }, + "_receiveShadows": false, + "_shadowCastingMode": 0, + "_enableAutoBatch": false, + "textures": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "6c9ef10d-b479-420b-bfe6-39cdda6a8ae0" + }, + "fileId": "9b58ZeS0JLyLtsBZ/OlhCu", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/6d/6d91e591-4ce0-465c-809f-610ec95019c6.json b/library/imports/6d/6d91e591-4ce0-465c-809f-610ec95019c6.json new file mode 100644 index 0000000..f179fed --- /dev/null +++ b/library/imports/6d/6d91e591-4ce0-465c-809f-610ec95019c6.json @@ -0,0 +1,333 @@ +{ + "__type__": "cc.EffectAsset", + "_name": "builtin-unlit", + "_objFlags": 0, + "_native": "", + "properties": null, + "techniques": [ + { + "name": "opaque", + "passes": [ + { + "blendState": { + "targets": [ + { + "blend": true + } + ] + }, + "rasterizerState": { + "cullMode": 0 + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": true + }, + "properties": { + "diffuseTexture": { + "value": "white", + "type": 29 + }, + "diffuseColor": { + "value": [ + 1, + 1, + 1, + 1 + ], + "editor": { + "type": "color" + }, + "type": 16 + }, + "alphaThreshold": { + "value": [ + 0.5 + ], + "type": 13 + }, + "mainTiling": { + "value": [ + 1, + 1 + ], + "type": 14 + }, + "mainOffset": { + "value": [ + 0, + 0 + ], + "type": 14 + } + }, + "program": "builtin-unlit|unlit-vs|unlit-fs" + } + ] + }, + { + "name": "transparent", + "passes": [ + { + "stage": "transparent", + "blendState": { + "targets": [ + { + "blend": true + } + ] + }, + "rasterizerState": { + "cullMode": 0 + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": false + }, + "properties": { + "diffuseTexture": { + "value": "white", + "type": 29 + }, + "diffuseColor": { + "value": [ + 1, + 1, + 1, + 1 + ], + "editor": { + "type": "color" + }, + "type": 16 + }, + "alphaThreshold": { + "value": [ + 0.5 + ], + "type": 13 + }, + "mainTiling": { + "value": [ + 1, + 1 + ], + "type": 14 + }, + "mainOffset": { + "value": [ + 0, + 0 + ], + "type": 14 + } + }, + "program": "builtin-unlit|unlit-vs|unlit-fs" + } + ] + } + ], + "shaders": [ + { + "hash": 922858114, + "glsl3": { + "vert": "\nprecision highp float;\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\n#if CC_USE_SKINNING\n in vec4 a_weights;\n in vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform SKINNING {\n vec2 jointsTextureSize;\n };\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform JOINT_MATRIX {\n mat4 jointMatrices[50];\n };\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nstruct StandardVertInput {\n vec2 uv;\n vec4 position;\n vec3 normal;\n vec4 tangent;\n vec4 color;\n};\nin vec3 a_position;\n#if CC_USE_ATTRIBUTE_UV0\nin vec2 a_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\nin vec4 a_color;\n#endif\n#if CC_USE_ATTRIBUTE_NORMAL\nin vec3 a_normal;\n#endif\n#if CC_USE_ATTRIBUTE_TANGENT\nin vec4 a_tangent;\n#endif\nvoid CCAttribute (out StandardVertInput In) {\n In.position = vec4(a_position, 1.0);\n #if CC_USE_ATTRIBUTE_UV0\n In.uv = a_uv0;\n #else\n In.uv = vec2(0.0);\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n In.color = a_color;\n #else\n In.color = vec4(1.0);\n #endif\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = a_normal;\n #else\n In.normal = vec3(0.0, 1.0, 0.0);\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = a_tangent;\n #else\n In.tangent = vec4(1.0, 0.0, 0.0, 0.0);\n #endif\n}\nvoid CCVertInput(out StandardVertInput In) {\n CCAttribute(In);\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n In.position = m * In.position;\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = (m * vec4(In.normal, 0)).xyz;\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = m * In.tangent;\n #endif\n #endif\n}\nuniform MAIN_TILING {\n vec2 mainTiling;\n vec2 mainOffset;\n};\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n out mediump vec2 v_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n out lowp vec4 v_color;\n#endif\nvoid main () {\n StandardVertInput In;\n CCVertInput(In);\n #if CC_USE_ATTRIBUTE_COLOR\n v_color = In.color;\n #endif\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n v_uv0 = In.uv * mainTiling + mainOffset;\n #endif\n gl_Position = cc_matViewProj * cc_matWorld * In.position;\n}", + "frag": "\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nuniform UNLIT {\n lowp vec4 diffuseColor;\n};\n#if USE_DIFFUSE_TEXTURE\n uniform sampler2D diffuseTexture;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n in lowp vec4 v_color;\n#endif\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n in mediump vec2 v_uv0;\n#endif\nvoid main () {\n vec4 color = diffuseColor;\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n vec4 diffuseTexture_tmp = texture(diffuseTexture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_diffuseTexture\n diffuseTexture_tmp.a *= texture(diffuseTexture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (diffuseTexture_tmp.rgb * diffuseTexture_tmp.rgb);\n color.a *= diffuseTexture_tmp.a;\n #else\n color *= diffuseTexture_tmp;\n #endif\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n color *= v_color;\n #endif\n ALPHA_TEST(color);\n gl_FragColor = CCFragOutput(color);\n}" + }, + "glsl1": { + "vert": "\nprecision highp float;\nuniform mat4 cc_matWorld;\nuniform mat4 cc_matViewProj;\n#if CC_USE_SKINNING\n attribute vec4 a_weights;\n attribute vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform vec2 jointsTextureSize;\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture2D(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture2D(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture2D(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture2D(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture2D(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform mat4 jointMatrices[50];\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nstruct StandardVertInput {\n vec2 uv;\n vec4 position;\n vec3 normal;\n vec4 tangent;\n vec4 color;\n};\nattribute vec3 a_position;\n#if CC_USE_ATTRIBUTE_UV0\nattribute vec2 a_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\nattribute vec4 a_color;\n#endif\n#if CC_USE_ATTRIBUTE_NORMAL\nattribute vec3 a_normal;\n#endif\n#if CC_USE_ATTRIBUTE_TANGENT\nattribute vec4 a_tangent;\n#endif\nvoid CCAttribute (out StandardVertInput In) {\n In.position = vec4(a_position, 1.0);\n #if CC_USE_ATTRIBUTE_UV0\n In.uv = a_uv0;\n #else\n In.uv = vec2(0.0);\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n In.color = a_color;\n #else\n In.color = vec4(1.0);\n #endif\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = a_normal;\n #else\n In.normal = vec3(0.0, 1.0, 0.0);\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = a_tangent;\n #else\n In.tangent = vec4(1.0, 0.0, 0.0, 0.0);\n #endif\n}\nvoid CCVertInput(out StandardVertInput In) {\n CCAttribute(In);\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n In.position = m * In.position;\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = (m * vec4(In.normal, 0)).xyz;\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = m * In.tangent;\n #endif\n #endif\n}\nuniform vec2 mainTiling;\nuniform vec2 mainOffset;\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n varying mediump vec2 v_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n varying lowp vec4 v_color;\n#endif\nvoid main () {\n StandardVertInput In;\n CCVertInput(In);\n #if CC_USE_ATTRIBUTE_COLOR\n v_color = In.color;\n #endif\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n v_uv0 = In.uv * mainTiling + mainOffset;\n #endif\n gl_Position = cc_matViewProj * cc_matWorld * In.position;\n}", + "frag": "\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nuniform lowp vec4 diffuseColor;\n#if USE_DIFFUSE_TEXTURE\n uniform sampler2D diffuseTexture;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n varying lowp vec4 v_color;\n#endif\n#if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n varying mediump vec2 v_uv0;\n#endif\nvoid main () {\n vec4 color = diffuseColor;\n #if CC_USE_ATTRIBUTE_UV0 && USE_DIFFUSE_TEXTURE\n vec4 diffuseTexture_tmp = texture2D(diffuseTexture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_diffuseTexture\n diffuseTexture_tmp.a *= texture2D(diffuseTexture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (diffuseTexture_tmp.rgb * diffuseTexture_tmp.rgb);\n color.a *= diffuseTexture_tmp.a;\n #else\n color *= diffuseTexture_tmp;\n #endif\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n color *= v_color;\n #endif\n ALPHA_TEST(color);\n gl_FragColor = CCFragOutput(color);\n}" + }, + "builtins": { + "globals": { + "blocks": [ + { + "name": "CCGlobal", + "defines": [] + } + ], + "samplers": [] + }, + "locals": { + "blocks": [ + { + "name": "CCLocal", + "defines": [] + } + ], + "samplers": [] + } + }, + "defines": [ + { + "name": "CC_USE_SKINNING", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_JOINTS_TEXTRUE", + "type": "boolean", + "defines": [ + "CC_USE_SKINNING" + ] + }, + { + "name": "CC_JOINTS_TEXTURE_FLOAT32", + "type": "boolean", + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ] + }, + { + "name": "CC_USE_ATTRIBUTE_UV0", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ATTRIBUTE_COLOR", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ATTRIBUTE_NORMAL", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ATTRIBUTE_TANGENT", + "type": "boolean", + "defines": [] + }, + { + "name": "USE_DIFFUSE_TEXTURE", + "type": "boolean", + "defines": [] + }, + { + "name": "USE_ALPHA_TEST", + "type": "boolean", + "defines": [] + }, + { + "name": "OUTPUT_TO_GAMMA", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ALPHA_ATLAS_diffuseTexture", + "type": "boolean", + "defines": [ + "CC_USE_ATTRIBUTE_UV0", + "USE_DIFFUSE_TEXTURE" + ] + }, + { + "name": "INPUT_IS_GAMMA", + "type": "boolean", + "defines": [ + "CC_USE_ATTRIBUTE_UV0", + "USE_DIFFUSE_TEXTURE" + ] + } + ], + "blocks": [ + { + "name": "SKINNING", + "members": [ + { + "name": "jointsTextureSize", + "type": 14, + "count": 1 + } + ], + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ], + "binding": 0 + }, + { + "name": "JOINT_MATRIX", + "members": [ + { + "name": "jointMatrices", + "type": 26, + "count": 50 + } + ], + "defines": [ + "CC_USE_SKINNING" + ], + "binding": 1 + }, + { + "name": "MAIN_TILING", + "members": [ + { + "name": "mainTiling", + "type": 14, + "count": 1 + }, + { + "name": "mainOffset", + "type": 14, + "count": 1 + } + ], + "defines": [], + "binding": 2 + }, + { + "name": "ALPHA_TEST", + "members": [ + { + "name": "alphaThreshold", + "type": 13, + "count": 1 + } + ], + "defines": [ + "USE_ALPHA_TEST" + ], + "binding": 3 + }, + { + "name": "UNLIT", + "members": [ + { + "name": "diffuseColor", + "type": 16, + "count": 1 + } + ], + "defines": [], + "binding": 4 + } + ], + "samplers": [ + { + "name": "jointsTexture", + "type": 29, + "count": 1, + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ], + "binding": 30 + }, + { + "name": "diffuseTexture", + "type": 29, + "count": 1, + "defines": [ + "USE_DIFFUSE_TEXTURE" + ], + "binding": 31 + } + ], + "record": null, + "name": "builtin-unlit|unlit-vs|unlit-fs" + } + ] +} \ No newline at end of file diff --git a/library/imports/6e/6e056173-d285-473c-b206-40a7fff5386e.json b/library/imports/6e/6e056173-d285-473c-b206-40a7fff5386e.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/6e/6e056173-d285-473c-b206-40a7fff5386e.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/6e/6e056173-d285-473c-b206-40a7fff5386e.png b/library/imports/6e/6e056173-d285-473c-b206-40a7fff5386e.png new file mode 100644 index 0000000000000000000000000000000000000000..ffe3879e23d15f33cf6b541953f2fea1f8137863 GIT binary patch literal 1633 zcmaJ>Yfuws6kQNOsi3t&@ln`@4h4~HHX%S(LK^arR1+Yk8mJ&4Ss=n@x4R1j1dG;b z6%b3&$_&AOv|+NT0Du))R8D4HsFaUsK9i|s2bH7 zvOcw~ZPttyQi;^f<=W*)VJ~Mlfsu2o;$Lojw(%!9+CKXcDr9Pc^YXqd~}8 z&sTDkgal17Mr4!d+H93ZpPi}~7+9h(Fw~4N0vJl`Kr@zRq7bu?HK~g*bK5q=0w*DK zs*v>}DXlUJl;9)^^4a_VJqHd1g9U7u4+n<8D?ly>=0O}D1oHx5F2WHYFdv+HSWGn1 zkc6nE@~K$NO2|r~X##C)HN{|2AOpP1hYA|lBR)5<^Mx5>?N9_)#$5y z|5KRKWDzK&Mkzd<)H97s^0tK{5DAIuXq?pGc-r(WMy231PNm=kD3O4^>y0J@o=N#l z!j(!yVWMcANslU|LKY*yHX02GSHKr=d3l`h%gn18T4WshI<-M(iX zg=>!dRqPc!vi1I%K5AGX>dfk-!W^z|a?AO0LFm5U$H(KZ#D9G3;cI0c2MD)Y))J-r z>(6W3EAY_NkXsuo^81H|hThyAJ9N}J+_SaV;~JQHdEiOU?c1`DW%5H&Kr5%TtgN-G zYvCeiSu1|H!08^ZIKm<0)LRy^ksZk@PSERT)z;Rw+Fh}b+PFAu&NI<>mn|(;tF=G( z^OH}7Aqy?TgM%&?4*UIfG8YH)+7fGokvgZ2C;;WgY(CJ^y)wQx=!wx;g^_DKjT+t^%O zRb8#Ck8Mo#k1l^eIb54pGA~&qn0_i-dQ=nC=94}# zI!X@k=GGUsC5nAYj4?IpBj-9gTq`On9BUKGOJR?B7^7QNl~8+YWMt&($3N4E%bEC2 zamF`NRh(XpncJKZDC&pr@^g`Mx|@t~2o!I+>j z%R!Y&6Ge79#r25#bAY-zEtK0$41nxK~D76PmCPTTF@ zzyE>D9?kNjPMXT=r|mXu*pP#E*DXftVgsJ_Tdj4;1)r+;Fx<@VzI5q*ta6Qf(12S* zU7E2?V*hsEw6T2AyJb07o4osnw_Wp_aC-V-o*fYFF5KD!R5aOs`U;s!S{0tK?H{uo Be4PLQ literal 0 HcmV?d00001 diff --git a/library/imports/6f/6f801092-0c37-4f30-89ef-c8d960825b36.json b/library/imports/6f/6f801092-0c37-4f30-89ef-c8d960825b36.json new file mode 100644 index 0000000..003367b --- /dev/null +++ b/library/imports/6f/6f801092-0c37-4f30-89ef-c8d960825b36.json @@ -0,0 +1,10 @@ +{ + "__type__": "cc.Material", + "_name": "builtin-2d-base", + "_objFlags": 0, + "_native": "", + "_effectAsset": { + "__uuid__": "2874f8dd-416c-4440-81b7-555975426e93" + }, + "_techniqueData": {} +} \ No newline at end of file diff --git a/library/imports/70/70bbeb73-6dc2-4ee4-8faf-76b3a0e34ec4.json b/library/imports/70/70bbeb73-6dc2-4ee4-8faf-76b3a0e34ec4.json new file mode 100644 index 0000000..6e22adb --- /dev/null +++ b/library/imports/70/70bbeb73-6dc2-4ee4-8faf-76b3a0e34ec4.json @@ -0,0 +1,2327 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "3d-particle", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "ParticleSystem3D", + "_objFlags": 0, + "_parent": null, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 2 + } + ], + "_prefab": { + "__id__": 154 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.ParticleSystem3D", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "432fa09c-cf03-4cff-a186-982604408a07" + } + ], + "duration": 5, + "_capacity": 100, + "loop": true, + "playOnAwake": true, + "_prewarm": false, + "_simulationSpace": 1, + "simulationSpeed": 1, + "startDelay": { + "__id__": 3 + }, + "startLifetime": { + "__id__": 9 + }, + "startColor": { + "__id__": 13 + }, + "scaleSpace": 1, + "startSize": { + "__id__": 17 + }, + "startSpeed": { + "__id__": 21 + }, + "startRotation": { + "__id__": 25 + }, + "gravityModifier": { + "__id__": 29 + }, + "rateOverTime": { + "__id__": 33 + }, + "rateOverDistance": { + "__id__": 37 + }, + "bursts": [], + "_renderMode": 0, + "_velocityScale": 1, + "_lengthScale": 1, + "_mesh": null, + "_id": "", + "_shapeModule": { + "__id__": 41 + }, + "_colorOverLifetimeModule": { + "__id__": 46 + }, + "_sizeOvertimeModule": { + "__id__": 51 + }, + "_velocityOvertimeModule": { + "__id__": 68 + }, + "_forceOvertimeModule": { + "__id__": 85 + }, + "_limitVelocityOvertimeModule": { + "__id__": 98 + }, + "_rotationOvertimeModule": { + "__id__": 115 + }, + "_textureAnimationModule": { + "__id__": 128 + }, + "_trailModule": { + "__id__": 137 + } + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 4 + }, + "curveMin": { + "__id__": 7 + }, + "curveMax": { + "__id__": 8 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.Keyframe", + "time": 0, + "value": 1, + "inTangent": 0, + "outTangent": 0 + }, + { + "__type__": "cc.Keyframe", + "time": 1, + "value": 1, + "inTangent": 0, + "outTangent": 0 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 10 + }, + "curveMin": { + "__id__": 11 + }, + "curveMax": { + "__id__": 12 + }, + "constant": 5, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.GradientRange", + "_mode": 0, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "colorMin": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "colorMax": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "gradient": { + "__id__": 14 + }, + "gradientMin": { + "__id__": 15 + }, + "gradientMax": { + "__id__": 16 + } + }, + { + "__type__": "cc.Gradient", + "colorKeys": [], + "alphaKeys": [], + "mode": 0 + }, + { + "__type__": "cc.Gradient", + "colorKeys": [], + "alphaKeys": [], + "mode": 0 + }, + { + "__type__": "cc.Gradient", + "colorKeys": [], + "alphaKeys": [], + "mode": 0 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 18 + }, + "curveMin": { + "__id__": 19 + }, + "curveMax": { + "__id__": 20 + }, + "constant": 1, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 22 + }, + "curveMin": { + "__id__": 23 + }, + "curveMax": { + "__id__": 24 + }, + "constant": 5, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 26 + }, + "curveMin": { + "__id__": 27 + }, + "curveMax": { + "__id__": 28 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 30 + }, + "curveMin": { + "__id__": 31 + }, + "curveMax": { + "__id__": 32 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 34 + }, + "curveMin": { + "__id__": 35 + }, + "curveMax": { + "__id__": 36 + }, + "constant": 10, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 38 + }, + "curveMin": { + "__id__": 39 + }, + "curveMax": { + "__id__": 40 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.ShapeModule", + "enable": true, + "_shapeType": 2, + "emitFrom": 0, + "radius": 1, + "radiusThickness": 1, + "_angle": 0.4363323129985824, + "_arc": 6.283185307179586, + "arcMode": 0, + "arcSpread": 0, + "arcSpeed": { + "__id__": 42 + }, + "length": 5, + "boxThickness": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_position": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_rotation": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_scale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "alignToDirection": false, + "randomDirectionAmount": 0, + "sphericalDirectionAmount": 0, + "randomPositionAmount": 0 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 43 + }, + "curveMin": { + "__id__": 44 + }, + "curveMax": { + "__id__": 45 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.ColorOvertimeModule", + "enable": false, + "color": { + "__id__": 47 + } + }, + { + "__type__": "cc.GradientRange", + "_mode": 0, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "color": { + "__type__": "cc.Color", + "r": 253, + "g": 7, + "b": 7, + "a": 255 + }, + "colorMin": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "colorMax": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "gradient": { + "__id__": 48 + }, + "gradientMin": { + "__id__": 49 + }, + "gradientMax": { + "__id__": 50 + } + }, + { + "__type__": "cc.Gradient", + "colorKeys": [], + "alphaKeys": [], + "mode": 0 + }, + { + "__type__": "cc.Gradient", + "colorKeys": [], + "alphaKeys": [], + "mode": 0 + }, + { + "__type__": "cc.Gradient", + "colorKeys": [], + "alphaKeys": [], + "mode": 0 + }, + { + "__type__": "cc.SizeOvertimeModule", + "enable": false, + "separateAxes": false, + "size": { + "__id__": 52 + }, + "x": { + "__id__": 56 + }, + "y": { + "__id__": 60 + }, + "z": { + "__id__": 64 + } + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 53 + }, + "curveMin": { + "__id__": 54 + }, + "curveMax": { + "__id__": 55 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 57 + }, + "curveMin": { + "__id__": 58 + }, + "curveMax": { + "__id__": 59 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 61 + }, + "curveMin": { + "__id__": 62 + }, + "curveMax": { + "__id__": 63 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 65 + }, + "curveMin": { + "__id__": 66 + }, + "curveMax": { + "__id__": 67 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.VelocityOvertimeModule", + "enable": false, + "space": 1, + "x": { + "__id__": 69 + }, + "y": { + "__id__": 73 + }, + "z": { + "__id__": 77 + }, + "speedModifier": { + "__id__": 81 + } + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 70 + }, + "curveMin": { + "__id__": 71 + }, + "curveMax": { + "__id__": 72 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 74 + }, + "curveMin": { + "__id__": 75 + }, + "curveMax": { + "__id__": 76 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 78 + }, + "curveMin": { + "__id__": 79 + }, + "curveMax": { + "__id__": 80 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 82 + }, + "curveMin": { + "__id__": 83 + }, + "curveMax": { + "__id__": 84 + }, + "constant": 1, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.ForceOvertimeModule", + "enable": false, + "space": 1, + "x": { + "__id__": 86 + }, + "y": { + "__id__": 90 + }, + "z": { + "__id__": 94 + } + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 87 + }, + "curveMin": { + "__id__": 88 + }, + "curveMax": { + "__id__": 89 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 91 + }, + "curveMin": { + "__id__": 92 + }, + "curveMax": { + "__id__": 93 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 95 + }, + "curveMin": { + "__id__": 96 + }, + "curveMax": { + "__id__": 97 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.LimitVelocityOvertimeModule", + "enable": false, + "space": 1, + "separateAxes": false, + "limit": { + "__id__": 99 + }, + "limitX": { + "__id__": 103 + }, + "limitY": { + "__id__": 107 + }, + "limitZ": { + "__id__": 111 + }, + "dampen": 3 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 100 + }, + "curveMin": { + "__id__": 101 + }, + "curveMax": { + "__id__": 102 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 104 + }, + "curveMin": { + "__id__": 105 + }, + "curveMax": { + "__id__": 106 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 108 + }, + "curveMin": { + "__id__": 109 + }, + "curveMax": { + "__id__": 110 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 112 + }, + "curveMin": { + "__id__": 113 + }, + "curveMax": { + "__id__": 114 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.RotationOvertimeModule", + "enable": false, + "_separateAxes": false, + "x": { + "__id__": 116 + }, + "y": { + "__id__": 120 + }, + "z": { + "__id__": 124 + } + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 117 + }, + "curveMin": { + "__id__": 118 + }, + "curveMax": { + "__id__": 119 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 121 + }, + "curveMin": { + "__id__": 122 + }, + "curveMax": { + "__id__": 123 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 125 + }, + "curveMin": { + "__id__": 126 + }, + "curveMax": { + "__id__": 127 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.TextureAnimationModule", + "_enable": false, + "_mode": 0, + "animation": 0, + "randomRow": false, + "rowIndex": 0, + "frameOverTime": { + "__id__": 129 + }, + "startFrame": { + "__id__": 133 + }, + "cycleCount": 0, + "_numTilesX": 0, + "_numTilesY": 0 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 130 + }, + "curveMin": { + "__id__": 131 + }, + "curveMax": { + "__id__": 132 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 134 + }, + "curveMin": { + "__id__": 135 + }, + "curveMax": { + "__id__": 136 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.TrailModule", + "_enable": false, + "mode": 0, + "lifeTime": { + "__id__": 138 + }, + "_minParticleDistance": 0.1, + "_space": 0, + "existWithParticles": true, + "textureMode": 0, + "widthFromParticle": true, + "widthRatio": { + "__id__": 142 + }, + "colorFromParticle": false, + "colorOverTrail": { + "__id__": 146 + }, + "colorOvertime": { + "__id__": 150 + } + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 139 + }, + "curveMin": { + "__id__": 140 + }, + "curveMax": { + "__id__": 141 + }, + "constant": 1, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.CurveRange", + "mode": 0, + "curve": { + "__id__": 143 + }, + "curveMin": { + "__id__": 144 + }, + "curveMax": { + "__id__": 145 + }, + "constant": 0, + "constantMin": 0, + "constantMax": 0, + "multiplier": 1 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.AnimationCurve", + "keyFrames": [ + { + "__id__": 5 + }, + { + "__id__": 6 + } + ], + "preWrapMode": 2, + "postWrapMode": 2 + }, + { + "__type__": "cc.GradientRange", + "_mode": 0, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "colorMin": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "colorMax": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "gradient": { + "__id__": 147 + }, + "gradientMin": { + "__id__": 148 + }, + "gradientMax": { + "__id__": 149 + } + }, + { + "__type__": "cc.Gradient", + "colorKeys": [], + "alphaKeys": [], + "mode": 0 + }, + { + "__type__": "cc.Gradient", + "colorKeys": [], + "alphaKeys": [], + "mode": 0 + }, + { + "__type__": "cc.Gradient", + "colorKeys": [], + "alphaKeys": [], + "mode": 0 + }, + { + "__type__": "cc.GradientRange", + "_mode": 0, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "colorMin": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "colorMax": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "gradient": { + "__id__": 151 + }, + "gradientMin": { + "__id__": 152 + }, + "gradientMax": { + "__id__": 153 + } + }, + { + "__type__": "cc.Gradient", + "colorKeys": [], + "alphaKeys": [], + "mode": 0 + }, + { + "__type__": "cc.Gradient", + "colorKeys": [], + "alphaKeys": [], + "mode": 0 + }, + { + "__type__": "cc.Gradient", + "colorKeys": [], + "alphaKeys": [], + "mode": 0 + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "70bbeb73-6dc2-4ee4-8faf-76b3a0e34ec4" + }, + "fileId": "a7grHQWGBCppuqJqizdE84", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/70/70d7cdb0-04cd-41bb-9480-c06a4785f386.json b/library/imports/70/70d7cdb0-04cd-41bb-9480-c06a4785f386.json new file mode 100644 index 0000000..7ea85d0 --- /dev/null +++ b/library/imports/70/70d7cdb0-04cd-41bb-9480-c06a4785f386.json @@ -0,0 +1,123 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "3d-camera", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "3D Camera", + "_objFlags": 0, + "_parent": null, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 2 + } + ], + "_prefab": { + "__id__": 3 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 10, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_cullingMask": 4294967295, + "_clearFlags": 6, + "_backgroundColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": 0, + "_zoomRatio": 1, + "_targetTexture": null, + "_fov": 60, + "_orthoSize": 10, + "_nearClip": 1, + "_farClip": 1024, + "_ortho": false, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_renderStages": 1, + "_alignWithScreen": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "70d7cdb0-04cd-41bb-9480-c06a4785f386" + }, + "fileId": "abdJ5/jGlPzq+iDQghzEti", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/70/70f7f908-1e8d-428d-8838-b74f3929a189.jpg b/library/imports/70/70f7f908-1e8d-428d-8838-b74f3929a189.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7cf61b442489d9ee6c3eca379ce106273219dcc6 GIT binary patch literal 46956 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%0DRn#;e&U%E;C{Emq1`1nL@{Bg7N*`Ewucm{#9 zu6qwrjg|B8)e|~}qaTVJi3aZNN_FOV`$F9+fyE;*rN{PhgDp{Y@bV+bG@;OA^1!21HKa}8a3Pi8}V$$s%yKxJWpz` zEORdPP_k{VFM^V!wZH~58G13n??*maW~pB*seNszfCk7JLqOCKPcbo-uov{G|VdwK~2Gz_RT!J~g zRlihI`^IPYpRS*#lP^=7kmpvIS3$eY-g>4S24YvyEKK}E6&BIdR1ppUPo1{q)X`l6 zPrG}Dbe}ElTH!Bx6wDADmNUH8q_XXk;vAaz9P(in9zl^eAj=;)&UshkmM$2oqv=i3 zq+bR7IreEfN1(bAWYO0qOu`h3EV$VfLB`{0NR4e=$A7L@=5qibEsGo%;3w zHq~nBbT$9uKY}@2!*ag(P64Dj9nT&sS;7^c@IY3&FSzT&*3NSzj=r<0J|U4;fB{n^>#{PG?+S)5dB)Fjdi_bwn)4&wNY1G0%JOHH_%B za65C`2!VSz!O0_a7jF!&MVdc&@Fa{G0HC)!B8I-l zuhl5bI?>>NBzc<{sQHC$eYtQE*ApN98vq0ym}4L8%x+D7i|Teazo5a~S<}+Gl42*DuN&V6dyBKY z98~2gj{!Gtk14jz4C5Y)<1T#Nlg=9m8z?0tmkUWHp=(3UfM-ZR$byt!yag$;69KKC zEoA3As(C#-D7+nGitEI~yQU=cVr=5zN)zS<*wQ4sposHH#a!MlNrLWi5yhmch~nRH zs0%oy_sxpkd4U6~AVK6v|D;$t-Xhmoat^gSNnR8A-d^ti5J3+!c-bqF9tR@KpnekVjIMAd+7 z5GeCHEmFvLrLyWw+3wHfdFKzsh|sd6v_d>Ovz$BqD9{HaGg%HvE{NeGTCR2KdTc+T z7(7I15x@1hJfbzKZEWfok3S;2*6Xdqd7u|vSaNgHNW`NCkN22_8-t;#>3;y5+R3fD_vsj4u&BI)4UbU;#$K5EHyQ8Y20=l#dVs80JIEApKu}% zcXIm-CMo;V8^$jGu`3a@?#t+fyTTVVAMWF5-p?8S;F6F)Q*eGHj{k+}Yt(5u&`xhx z!uFooN7zc?2dDT*(wGh;j8A^d5nDR7Bgx}t!LxL0j%KJeO1p&)sxL=BuvnRA*j^;I zAaoB&Iq~wZNA$&=ov47`T?O@{lv$6d6HVdChWUDsykIudMFi`7MAoZL)oOoxd$m#a zF(gd?aH&ln@PvUG)9rtLnl#73O&Rv+Zf*GlAGS+-O2x_uyt#Km>?RoV2VOb!Vo&P& zan0?Rq>P|Tg2%P2Zg&eBU9X?C8R{L!6`Gul6ul1u9q1UM6g5saa5c8>b)HbJv!;B^z=fv_T^RWL0i)xV=;dOCn>kt-)>4~^d~ z?|?8QB%#aUrJC><7z9F=-CN#UTg@Pm0=Y&4lJ8wukpv7DP`Z36ZzoJ8vPDwLpf=X) z`t@68gx>lJF6@KE6iu&de(t~~359?a+11e~{9p+iwOClFW(|xm7Q=6371r_#>q|Na zWaP^r&~(I|GM;vDBO|Px!u7XH{b^`eB`IQH3kFZFuI@|$E zqbcn<*5k)CevpfGFoteQO>Xv|xVQDT=V(1Q-#@aOFPScw>unR?uNsp;yZz%O|0+mw z+1Z9!twCIzk=BimRsq#cx(>ks%{P`nNy=@s{%{4hVzKbPQ{q=v!dov9?V=ApCv(&xtcFBD>Chg;d zXvSAcvZg8j=~v)3@%4$>ckvL7Y&5OHEReVgvJk+)elPGw?fMr}qjouZM{ZE*XLX+UogSx3)nA3@+FJ38U1q7zSm=Ye_Fo3cd zqKaR(-#DDs_%p4-ERYnuZpnUAxl#XDrTu}CFYuczybA)Bv$B>{8rA>b3bMr(xA&qfz6>wuFC6_Mm;o$OV4Q0C)H%Dz z_vI4vSXe?^`)H6X5_&yM(HNv1TH*GBUXR|K^2fNlff zSK+pU_&SaCesp3q1grwkl{_GS^)sM5N*`&hKVGWcSYJoj6t_5rEt-#8^PfU!k8zy- zkE30Oq?@wLpQeiFkXvQ$2GT8=1M14iDxefON7et^RZzbv<*%0P|H{&_AZ4unp6dTJ zdQcW$Z4PeHMg@egYis5SKx5or(prDK3_P%I<$yYDEQA}~xq{r6sT-mbfEBvG-e~^e z3KhFE;6t7@Ogz$9@3r{a*weVZas?2sqC5qRbDi(+6#p z-RICBP?QM~um6sLeSzik=93I$1OHyUz~o*3-Gjsc@j|M7%L50^ADHXwxHh(x58=tWtQ64vVp&sqvuf)4pnYKuu#~9WK>{A} zFYKI_%s+@Z5WTr~-Qd%1K7V=~2%IE_0r6)cUjHwWN)_vmKT3O0<_|VTMyr4WT0f7l z4R8idfAROjG~n-*yM1F;s;TMHdv05uO~^Vd!-4e&VW$(PCnnzdd=JInxABijE(Ze6 z40mF3iz{ZKbz%*cTUmRkm`o)Q?@ep}@sfW`dW}Fs?^TLj>NovxlX`0^W@tY}p*;E* zVIPcWv-ZpcbNl&s!wK2|6uii>F}2@L(Kj4@-7pIc9{LCbT*}(mO#+||C4lE(ZVs*(nt_K+(%>-~KNYy@ap|T6@s<#_ju> zk^)(d*kA&uxFMi#*!`;px)I<=c|kr96$~l4RaR__bMwiKKqGK^n7TVAb^uEoxar@x zjDVV9N9t@6d8NhI{!+vjAQXHc6 zmHnHg!7+CEW-yx?&Y?E6V{{Ar`ro42EMAdunW?6_Pqneib47H-7pntHW(- zBMaWS^`LydwO!dI+zfawy-mWkHmKU#^Uk*r8|?m7WkxQjp(YfDnGD-WDArhq+OjE4 z0RvhsGINTbcyM}RvLl%W@>lr2ZQqukJ|n*b9`;QF7Qv0F0)?zY0#g;dHdVNy(B**2 zS>bcvqWFgvx}gDJs#yK`rhB&fhdrsZeod3R+kpSRIbSeLohw-VzpxwhJ9VT@Ek7>Z znpaw?g@%|hgjOSbMS}W|@BhbZlLUWYnd!z{az5A^88R^_HmW13s@*@_LvAII-2cs* z^aS{aUfOUJD4oDR-)^O`nf;FK6DXp31J4<^?)=ykU8(y2tLy%OO+U<8peVm55>C$F zt=6&W-nUF2X{9m1U^rGCxoctmT;?{rFY-hGorDm7UP@c*CtSf`E8tPA9*5B8?hvg) z+F*hWTW!kwZ(`+#nKN#4@VC>BRF7h;LBmWdnS+97;DDBvEh>3UPdt79Z-N0U^`bC9 zOEawj74q6pp~Ey@F5K&?aTw1-Px}e-6{yf4qd9RxhTCGTT}RAd#T4 z-jnXodIbdWtXU%wL?ux-`D1^{O6$B&QarvVzh68|Xs^x8k5NqiH~v|<#&LHjEYiMG z8?fIj8imb>KpnbhFdq0jWfWKfBwQhnXb?YMPI-SGMU!8oT1SP$HyxRSJU@@36IhMS z__;dW^zu5lnT37|S?$-3@?^FVGuKZh_qYXpA7g!n*sN@hD7e8DwF9(-I zrokdzlBk9w_YDGijN?o%88H6}AUrFq%zOI7m}!6vK{f5TW`10W?iZePa|>zM6x4wZ zdf`6%sXIT$B>G>3PA;vBehWfxXC3NLGZgX(8s&{rwD145_vTSeC0*ZWKv7hrrD>30 zKpVOR5y23d3D7ozZ#R-gkU=IPKva+^5N5fb zVJ6I@K;H`D(C^#NcfY&Vx7PjR-lHUyI(5#ev#V;?-n(}FcH?$SfKGj!3Z?^qqais< zng>v>TEjs{et1#rT2BPq&hRC)hnE!pA1*xd)jCXpy-(==91$?#ojdaRv7Zt-sT)-b z8wA}=FlwoDwU8aUo1Xgv4GUy&)9L;e$gmXhbIH_^*}JJ7l^V~~Inen-Igu7s%c_(i zYOSkmg=xL}3d?hz$1?9aA3h>j09T*VX4+u=vHL@H$=}Lr<(`1Ju-{#Y=&_s zL(Mi#C}+EA9%(fz*;(?bsaI`FA3f{V2Ny%D$!;gCTQ!=EyW7g$E>7IjWAyjOKfF%G zxjoQJudO`{?sm8Im8wr~jz`0>TDXhg6kT9b-TM>Whlh{K=17TfjdJFHQSAjAgOkOv@NVX)YXN51 zhZdpgs7hwCqPg)cdItN)D}}t9Bq$OE-Z4=#HqoM8egBIP#Q$4u|to?nZ+I=<@UB#E(b;Twh(H&a7zPyI@nSGty02_9WpqKa=L#Gq6W;wCV}lW23(fR%O{Bt8jwBapWYOAG zvi8X@^C5U5gb(T>a`2ePp6@s$j;^rHwWRkyE8w$1n2W0bNhWorPF%)^(^d%_bCw)_wT>WZLmG(q?s&e5(pRTj8kNda_IE$&yis@Z%8;48fGCW>8wY zU6#|(9(wF=h-1ziXB^x{%k1+#d~-G;(rL*L^_6dhWChU2j;!<~=e?8PVd1}+P-gMJua^zL|lH_$I`&@u5hyF`%JKu!z z%k?)`)~kcE*3$@ye?v+-SA7->L&&OxT|bme0Cabjy&bY$h<5PIOI8zEBF z1Yzc_dim*F7wSz-f&L6f1;sulF%d$rzuN6p*K68qLj*JwW93+OP^^OK{7>dI+Z z`vY1yi7TgVA|Ai)wweoG&BLz_))p5_TSCDuGux##tt2@9Pj{;XO za#||8ch?~>XBNoCOVET#n1_yuMO8jL94AeH<0K5@fjtTHu%G~>)gm9*#<3O->IAT$ zI3LlY{=ZuAlN$|s3~XkluLt-KXSp^=6UWh^US;{%D;gY)wx;teMF)auqHXBO=|Wl> z(Kmy~Mz;=O1XE(ckEVU?c7icL+*zRAE{dAnWnA4>JD+BYH#C!i&Wm!?g;y+XDlyBY0%l!wqwFdYexNaWYfq%uF5-Ts zRlKg9D1xbEz|r}-XvJ!h$~)@O>cB}BVTDTtI0er(9f$(H^W;d)T0 ze7b{#85tez1+11y@<%ac&#zxdRcF--gE$0QDy<-x#MrlV#RCwi+Bm}yTWf4zJ=XhB zZ`Da%Dda*GCL+Kv;2axy{>SJ8V7hoM(KmR>(l6eNfXyWo-63on_W8Pu^u-|26FVWo z8GCo0J+e&^YcaU*_ojWqM-|TKZ)a_Nsm|FB-qW?mZuTvrd~1X1t7ZeROIOn2tz1Gk zd)i&Ft9E%5)j}3+pSK>XCRm~j-$WPbjO0YPYRhPKLW}-bOj#}d*}hJdCE+;_+xIt4V>M;Hj7c^954KSU$HE zIkvdpZK)Q92LGH&TNPxV?YiLEp?zFO?j}xp_`37TJ_TQ_vsr%bQ*EpEJH=-m z-+6TYODp()X@#NS2fv=2)Q33t<|Co)Q}CdX91k#QaH6`ZXDwLeuvz@f{nnrdze-t& z3*3-8QX!Lh?~kXp9PH&+iu?GVlx%lmt)k&+7a^$=GO@LQUIQjGntSV zcD!DDray99E(u`pn5-Z~=)Rvz*0KIsqiHVpQ&V79#i1K6J6Es8V6rcCI6W z*>jI#jC)$Nan;U;NwDJJ0eF?NZ5h3ac`KK9SHYC1*pysC^$Ce(EP^z{?udN+ekm9` zu!ojQ-jD213i_ObtlN>LFLta!`TvSP` zaav@U^qc+-q46|;f+ihAtI9J^=y-ynKi>9b?4{GLiDn4w<&2Dvl!tJ&GEV>0ych!! zE}0T}sreihvwcFigqrirz)D6XHb&rQ{q4-HFA-IBDJP`IucWv)GZ;OtQO`G+d}eP8 zXL#vK1gR9CnUnXLUQMM`+FPB&;eMqxRA{^T6uzho@;9lgoh1Xy(Ddu_it1|=d8&+) z$Bz@qO5!|g{cg<>g2b$g>K=E}A1;yp@FXUeQYLM;JULxdWhv!>J2id)fLMenZsP6Z z9rA~(uQhhe3u8{e>Q=pjmyF#&yo^A5UJ+!_@G2`AR>JW`)5gh)rSbLYk^4Ny1{NUQgRn~1sos+wT z_|w)ar7%U?qcFT2o!m=!L-HZ)e-k!bJvke{XMgrVFa37w-hoPnay!A#_ zzA6LDVGk*xln=ak8Xx8SF8sw)zC1yX`xIjV$ptspg{`onJh6HB=Cp1Yx1MGPTqYffJM<0Qvuua-*ti*tEvKe7jZ zEeukv_Ig&>S>wk*nIL+E$&DC?R$R}C1YX!fI1=St?R6HyU*9{^9mhc;6M7Y=>s~9> zyq(8QGb@#jk)y^5&jXeQrtH)F6565u4=w@}4`S3<3Wyf{x(!z62yo44wbf&bYo)_g zQw^3iCA0omz2_rky|?~`JkDGkC$HxWQjzg;mCXCB@g8HhHCv5GzWz7k`dZU8yaDKM zv-JtHrdr}gZ+8xmh*1NyA>#PLY31l9LkU&{oFF2>mNJ$4rOnSv;K@MrTP+(6w@$j-*Ze*I zpsivR6kF~pxd>3_K2$Z+H~3%NgOR+(+3nZ+m-yOJ^{X9?``>yqMJ=V^{m2rys{)NMyN@sf-a=S@IvgdA zd>2cp`xYX@uF$Uwe!}}7!Y8WHW2Nz(K1AwjFS(8l&>bTlzoikAT&4iL;-SS^bO(GI z-LH(h-dTy>0lMf6P%Gn*1_tCnl1X!nluXqq!XfAQ0Q z24FSu>r==>=mARk=P8cc1R^qiHN~OSbpqWw4#xzPuK<)l6{SYEuO=l?DJMk{{`{?e zM|dgs(A;8M#T8lw3_!D!=F5@Ze6b8JeBMQzx4iuR(ReJ8%|vRt)3RL+Jzf{{sQG7- zaplyoPg=;MnF#`Zd4m|oh81_v#ycW~MaEJlQl=B``#ds)Wv%oL;>b=xIsk<8`51lu zGSA_MZvcwhV z+yd=obaX5sC-2Gb1jM&9J$bJSp;Oe-HB7bNt4X^DL0Z0!`I404N+o8{!YeoF(2BS&M=v^T`KsavFY_JbH*&Z~rp&8(Rwnwi}O$7+^H|v}-ewL>wVqlp= zATXSviDLDCZS%pL;&1lMa1B>CE|>oCq{OTdC55>)njh{(N~xdnZps3PupdKKyXiAtpb$9mh$B!)-$)43^OGn`e3{x0moq0yi%4 zG>I=C@wWUe5X;Nr0>68c@8EVW{t`3wSuYSt3Si?o0LQRL<@hNRu8-Tk9vW_BrEDSK zxV`Fzdv`I2RIxu`hAnk7t=gomW|5@{f*ew8pZ`~qiB#YF0srEAlTG=G8@fBfKxqoh zs}ddQ0`mB1E!-Ql-g*?r#k zW6jTMv}=btQN+Jg{CBQpD$S5aAju81boSK0E^kQ7dfQXJpZHO4UH&yCnLwBID8Ql3 zdYH#5s;#}|D;zaO;E8509<>DhNUe#u=*9^od{a%@7?<+W@7FUDLio*PQAYS)=EGecI}ml3qccz$F?Yg z=9_Aos1xuAY)Bo5DY5yDP@VPzxAfNu$%iV(yG1k^#*1hvgl^OgXKI@nA)qyYA&%%2 zmCC#j6P0pHj3bh03@qXuaG7!g#&I~oEacIGW8x<0b+d;?79U)Kh7i^l4k(qsh|pl&LdP4R#SZJ6hks#AAPmD! ztMI+|^!YSCyp(yu_ge<JgRk&7EKE1M8v&j)(6%ZzQ~uNWc2nF)8FdtBoNY(Cm_b_^Dm_ffEfn z>V!*Mct*O0lYzu#l>&dGNY|f(R*CjU09+PnwZZ0_U}pzkUq+YWYa%wdY$FZI5$#Rx zi!ab(q!y?2GuT$%j)cCAwu|goDB|A3mc`ZUj38Z+Cz6__nVMZJ-5W%pu*`ZaiOoS%!-`PMaD zoLhx7&I<52=ow?3B*)QY`DlR-I_ho`zy>qkK$_fTvW0x-lm8^Z@qm~j-QSoKy&ktu zyAviLCLQZ9c62%od^wVuexSFD^S%{N89AP7r0 zHtH^h?yzjW!n%<-!|vO?3;BdB6nskq&fRfS`W^TZB1!n~G7-|gDVH4S<@}CPrQ(I| zgYr&f-IQjT2nC0OJkch+ALMtrhd+TnO2SO*pD^cxX)NSz8we z_GEMxvWFvY7W8h~c&&QM;Rmb$B5QdHHS96Af!aYR3}^xCmHtNh z?PgEoyc`r zEAVz-58Q<5&8Z&M=?PdbH||Lz2j^7AxXO0(UmpvTRGsTY`*^-{eQWzfgn=dBP*Y{K~QR=kT4Me1cX=j8T)98G5rI_XM z+V<|{p$fE)Hk?ZpDa=+F5DJd)0n`Vi25+isFZDE8^p?>j7ud;T5)>~PCqBUpwK>@I zz2tjk*Lwj7S^CWM*b=*iMPW`bh>K)O3JOkZ?F-UE5c1HW+N#-a0;_pQd<({YO%zvY zVl25Nh(tjY8^Wv^#viJdXv~Irt9iG--qywSwcC{Qcnb3y@!tO80dPwRDMyuWO~)S7z_9jk$owl@*wx)D;+C>G!&~M7ryMMT1*Xm`8N8K#G zlt{v4AKm5Utq=Q6kQONqe(|1sAC_~EdXnl11|))9rvn5GH|WOIp&NH&_*$pljCYe? zjIm;iRwr*bw_Tu3qy=TFjJ1a?Vb^l9&%9l|D5Ehuy(3@83xLRcrb3tap2P8ZRxJ*H5T3Jjp(0Qh<4=!{ka#>2f4tqK7I?W6$%=X=p`{C1IM?fFPid*~RuKxQ zDLymk#*uLJNC}ZOth&i1r^L6#yUPYS+$K(UCsi?_q0HDuzLN}XHEf`Xq^nnl6qGxa zE@U`M2z2i(Hc9i2sA9G1ZTJ#!Z@Ji38E%F#e1z^kT$UD6H**CDxyvg~TIalJCUF-} zx#3k?j66daA$Xgs?K;8TTNHB~KB^gZRWoX%@G)U}&*Td!xs-@>@Ur-$YK{XEsFcV6 zM`>57VdJAXw`mo}X3p)!7$Rfugs31*G57~dDZ#&PTw2hzV_dk>iRkM1k$xM%Zd_O%s5xG$8x`C=x)tOeq4ysIez-uwNJ538!<2Hpn(7*3r9j&9WC+L>AL@$QHMSs|^=k(>tC z_rLl8L$;wQ6lir|yq-n0no;TK#6e|UE_Ovn?ujQ5Pj15~gZ;oNsK<3*(}Kray{>cd zilScC`N=8+hy~lnw59Ez77DU@xS!5uK#XkpXCY?k^)eZ}vwZ2XE9+hEV4bah89PHO zGpvqlB0>~~eGR7oU$P5u=}+|ASJ+~7tN}M(SEB~ll5DN~!7DLU&e3@#Hlp5F!!_Hr zPV7!zzf5pjS>?cKoWO}^TG_$gYr8!L5OWLgR(KReBA1YRlM|S!)G4N zzNA>Ht;#O9w{qzun4bTZbvKD7Kh#matm^9!hWtal^6l)M?RO3uR2r#!9;c0&rqm`b zfdznxg%8-Fx`9D^oz`W4vA`>>ICgoy{KV{Nwnw?9{lLl9-jL<0k7jC)H(HFzYZ`_AjP@!f`ugUb5g)i9y%GSw!Dl`5+C%rDTKH386PbHXm6%MTi_k z9uTVaNn2&>)LB@erk4zG&0&t!?0Z!{Z-+37e?$7)gX9!zLQT8*?MQ~!K1@T+wo$;3 z(wkViQm>Q{Yn|vVZ9T0G7!*p=NR zF-jTV-;iuYtt+b*`-dX(Q6(w2GzV?3$>_Ud=EPH0ULN^9jXYCy?ezAl1-8;&Ta^=G zXRTlM?tP_8l4w4LJN}_MfZ`l6&&h7x$N%)M|9Y6KI%R6Iz&`-x`ZJc^WQP|QE}@l3 zJv;)ft`{x0LwA%zhkBBIpQ#r%wV{W!m7hjVjJRm=DBgmF@Um9)FpHNPu#mkTN zWC@Zok*Yniq3*1l)!?~}A{))w_L3#MUpjC*SU^nmJk*i#NiWXOdrvmgjP0jm5^-Iv zB8$5{bK77QX{#n$CksvWu7~u|SJ3Ft0*)^$UanSXCZ;3Ju}nLs{Cm<;T!m&Cw#oz% zkGK^&6$+(>s?I~!mk8F0L>`)b$H?-~v-Phh z7h^mRCMPo|C~S23-C+m#!q#YM4?u7CjGeiiwI>1%3(LKcl1nJhv2-y-2JzL&EreM8 zHXF^r0(e>~rvI7NESa0$GoKM!X+2-Yq>D6x`CTVXrcxnY$1R+-$bT0{Gge>W6ypOQ~r)!%HR+SQ8wiem-Vu zF&I30W_#@sx;#)woY&Ztj!PKCgCI6}BTXKfhE}bn>Y|X%+N~p@P%m>z9 zId>WIloN-JE?rG+Side5cWvqAN&YwYZ|i@DJ;dJIB*E@a1`6B;qF?ZJsbP_krMQhc znh=b=Ps`#`GItgI4LK(PKq0M~w?w$}G6)6?PAW^~afXCHDzJC40Y3E!-N07&&U1b9 zF&i)j3APyC*FYb5u2Ed;N@zKt7C$~Cqg*c}#ogT;E{Z0v1JH*na}z1Ue&em#8uPR) zDeoQ`;E*;~Q{Iywsk=&S)s_hsDJ-%S+$PGNCY=(hN~@dvShTfQlFI~pUY>TB;cgIE zW#ElwBPgjVKnCwJzV^?YVV7wR?&4gWjq6a5>LhtksLs4x7k&0Q z1Y&H^yv43}=ors+N^sO^3`0%SyP5QFL_iDf`mZPeF}tN5VDLFfKp(9a<=MkRBkqz8qHyit!9AMK2&3!C(1*e=r7oPYIsW237@BdML=r@VszIYU=d2`Mq>Z z5;iBfpu(t;^r0#!c;u-CDs|dOIU+YDmZnpKWg@XMc4eg5yoML2HN{$ax|ZgM>S5b8 zfx8MPyUU4GHBW++cV|R;<@W{bh(E(2&LgGFqUto$<(VoP1v5fs=g$tN~?BHS>I=|)w(c0YQwr!4ro@k*>~NNYkk z1VRMyG(Qr2Yrti%298pWtxJo(Q)Nu(Q;*8Z6Ny`+!1LOnQPHAa8@*;1hG>@d`Q zA0(3adtrY}>Botfzp$>^5gq}jRD|})PKjS-E189906=A*p<(!k4m^OZX7ewRLe$2Y zgtmZ@_}WBUA?wJ~Tb*eE%>6s`lsDVy)mN55n2NPv^r&P*$Rpq;$S^Rn#h073k(y`5 zQ<{u}dxJ4ehv!uBKFlop`XKg}DJiC<+PXso+rcm2+wMbbZng1l+*7?4k^MMXk2r?M zD8d;Ugg32DNT0Yi1>egwovg4`eECF^1Rw;Ya_AHuAkBiHhYQV%Pfm_UchoA`hYkjt zulR@V_-kIJ&iPZDKz1JanEccttwHb1uY8<4tH^P|a+S|Qcq8PuClE+<6p=_KlB;%k zB3AB#5t12na*BkRTcLOjsEjBsdrZ_{Y*Y;H93wwzCd@Pm!CAmJpzJ`N2u`9a;NcH@ zQey=W>S{6JAD{Q}(;>2UFZHL^fn0F~usSSxGQFDrM^k(5$De>}LOmF+*!<+N^p^5+ zkpgrQ*&(SXTT6Ed3!rv=3Z^P7h05K4#GI1muwmnQA`FUq(myY02r=N`&(OR4pQ~U= zj1y0x=*q+DwzH0QNMyehJ7~h30k2J^WtmuCiGM0;nz)%K*&HXLv)*i|0f2j*f$vIC z&8`qFO7gHzDwEC;K@ttni_s|y6}r|``at`M@<*f(Zg_sayGdRk*k^JvR_vcE?j7;wL1Kx&*LQX)nu8Tz&qo( z8t$ZaJ1{!+Dha{5FwB(XnDuG{#?_lp)u}Op5G`^=#~jtZy6bVzTDM3$N2Dc5!oSPJ zZ0bh*?%8?T;2>!QZAIzk>s`smHK5MfHzGXjxd;#-v(t&@RtU=(h^x&6qfc0b3q-d& zwV{W5h8s66Ru_Q?a%Wgo2+{~VTvsR;%k2cC$6~~8rgbJ-^yy*E`vNHLvf1}M4#63M z3~9i2ZXEv;bS@Z0RWe@)9S@!%GL=y1M=g{r>w%h>1!8opEzOOWWi1Lm@8E^#XMAcC z6$)?Bj>o!y%3%*wjy{xO{oP)cu7dTv_|&lKcy3Bv4iF$*4elzg8uky?>S*Au#skml zDM=P@nZwt>@AMG}h^BB=>uHt*-sxVr2*MO0lM8}PNS@w)$j7f!&r0~~`@Iy+iu)m}NO+y13cW?x1pE8$)Ss9lEu~p!Py=AiionO{Ar=0_^lnaBWl_AOP=^M22)< z{p3iIL9NSWYFr<^)!u^0?nj2cS$W>oGn`|jEIEv&1}t%=F}lz9f#H`w_)u+}wr6Ub zJT{r&(nPkz*{E*Wu3_v}?XUz~Y=oT~EmB$dW$B+*e64g3C9QYXR;u=C^AE3kx^VKJ z1$!IW47+528LV>N3>tVbY-xZwNqMENx?1FSCC(qAV+|gK^f^)V83F?W`AQ1ha_)g~ z2%2aO&Oy;02ws(ao9;_r`5A4@x}~WMpP2#QaFT0zg}J|?Sy>sp*E|j%rGYc&a5Q5N-nA^g9#|LtJoLJXQyEy3b!@aKzCDdZhkH|}DaM!_ zj|-A(UesXk3vV%WKO4>Jx?*96G7v_z^BpYg(I*+w&p-%@AxN}apF>MwkF*7AHf)4c z<^#2CMx8QYBEber>u@WIxqeGtDX-q2G(o!glWJ2cCP_3|nKW>5gE>tpar3N*mGFxQ z(R3(~ypXtqG&>ZtxTC#Sk1~w*w5V_N$3)ouK`5s`tG{19jEUSs@(oi2>@Hy6Q9TQQ ztBwW&tw^_E^hbsBA0&JFkFm?YVKu`JEdyRr{Atzp7np+E0>$S-6Aq1h7sc*;=drwb z0}bMH^SKt~nHLr8A%}0VUAAkVUkeZz4gBb_N6*<7*{HiX?54(Vf*tCm zR+gR&G@6X0a>jxADd(Y#N9bw4+)Wb%*O45CcSSyuvKSw1bAf4$MHS^SG{r3~?Sm#{@XmZb_y*GZ zZX7pwR<=WTFw8Xf9gkvpqY20J%=vyf1%YVvm-$VQhLmpKRam$>JRH(46flynGd!*% zBX%wBFr`18J58-E`H&@*(^;UYYXfZ%qz2E8E!}=w7!?&mh=O98HV96BAWHqUv8E=a zH-{R~XPT}sdo0=#x?3|SWY@~ZspiXrT31UL({AY=--pm23(3KN zhI2{MLoTQ6LbwRr+wAQ(>f~-+ctnHyy*GDN*o4u z3a>EiXVP}vKMR;YZ>>CeUAd>DMr|Az7V_n}#0lVQE8+p5E`>Juttz_zcxo|;Rt)~Y zesa|^<(5fd%4KqKuBOcwGFRUP^%d^m9HYS+q_0MX94tizYfZ6CfL zQgcb_zuQs^&5ItVyi~1>C=G|W(l!X_*uNnl28TV=e?!)`HQ^5sVsPi>=&CAC`Y^?*=tsyAtF33vng4)CxnBxS;o0T8H zFb}c!hjJ%xfY{5|yBGJp+0+|fyIIOh??$hHs*a0p{gAMy%mT#5E;(la7`_<#6Z3HE zhQn|5ch^0;7x#SpfioB_Zdu%yXp$S>3^l%7wG3+ZKCC!Th-@^zmiQ%kQ!ZhxA%hwc z-@UjC#ojE=)jmuC_i}k%A97F~m*-YRo`qaUx=(doTNf$FdJaxG&*@oqL3O|d#}avO z{6K|tl0~jP4`f;B)#}0OcI!$m zk@2E)xnlDe5I|Jr+Pou=N!Xhuiw6cXjeVb2Vzf`rsj(a6xTyZ#(a8i%`u;i*%g`NU zQ;lZa4UtQ6bq(5n?NF4#ttv~Zi8U*!{;rK5O4xfc{ehdyrbAS#9SD2(o9Sq>>W9R6?=O;L%B}W=^!LZOy(%? z_aT~G`CYCRoN-YNWKUQ&@?V%&c)qtXm?si-=z~0OLYN6xsW4be zWrqCX!mtvJ#F#~6&KCbG(>zuzo0OHvuJMi z-Mgr$)`v3MJ85cG?Fcy1D=q`P!1kg4DFJ~r3I(7kkFE1|z9Fb%I+_MwE1m}m%Ri4D zhUvZWVy?9fn}3R2qQ-?oAX+`sPcDqVxRmd2yYHh;iqBMuAy#quWn?pD>bFrjMW`d3 zsWb$a(^))q8|cvmyagQ%7mZfB9@fDa=ym(uEZmsD!9@q`4PYIrWaS^C1_dAafm$Ch z(q`;F$VGF~SH+5L9CO(EpTxD0auSG0gpdw(tYc z%6x=YT@dQ>uRfptl#uj8eef#idJ~m0nj)4W39|i)!qx>Y-?z}e(D+awCPDvGN#M_X z$eUC;I!co!VVbSFv;6NDsZ5Piwg0jz-?!6%Ze;sXgNCaMnmZ_zKyNLWr#K8ybV*Ly za#fy1#$GhVy0*K4OGeH|8cjkp1AZw-n+qL%zh{gvg9hB}9u6n_z~}Rm1h;1UFEXjI z0lf=%)8NdR(LlY@%b!J+%yrjGWydhuj&pqaRHTK5o{O>1PDbb zN4@KZ&))mXTK{-Im-4_W`(KrS-6F#*vRRRntWp(uW+sJ z_lvqhEl=tB^6Z_TnntThS~0);(Q$+0drJ6BCb~=!-LWw*Hq=+o^pg@5gYzt!cPz6yPkTY2boy-rz?Vo4-;E-!8E8 z(-ZbBvO%cXe6g+_f5Jx6g&cCN+P@ylpNdm#1sk(##F7z1$4P5cF`|iJDaKGDKII1}u>ZeQy3=#va~V7r)h4{uQIu{?gPMDdI^ zwz}xKWWq%tv;X&l6!h*)M`E|aQ3LO?QL8-Ou;L3tD7=84``u@pI3tqwg(rW$ly5+^ zh{f}qAY6`*XRDqQigVSXR`*vc|(CjygF()LyI{#IpeQrKc z{Klw2NkR70))%8^VkSRs7kcW7I3@en>7X0u{@2|E^dHgl`<$Ha{qbbCW(x(s4|efu zvHh!FDv(+_wYbMZL3~e%X}LD-nMfY&&428DA5ZL|6o?xhj@RQ{`J!exGdO}3ZL z-r2G_eI)ExpMH^6S|TU2($aprul)m`hGU~`11%Xc&eD%HCN^n##0XBj>P1#x_EC0sV^#Q~( z8LWwe;qpHYKm3y5{R1grV_x`2Wt0C?i$6UnTww4-OQaoZYB$t^`?_WRedL2ZG2hle zU?bndwoOOB)8)9)W|sundI488|1s!4_n)u()YJYq;gB6EqhD5f!+F)+*?coMLG;@_ zrDE-tYNxicc-dbcQmii748B(EE8#OBn{PnuwAPJp_s&m}-+ERZ9eyxR||1V`Bd|l_B zMDGk2R*6a2qWTfuCy4v@1ME%4zm9n zAT9SRLVr~p!tb4W$Ljk_R<{;f_^U?~9(;Z7U(>ZE&JZz|>9bqn#!fcamcs}2+wrw1 z@zrI3@4b}y>BtTe`;jbQcsu{S-wOQasZ8|MzE*uc1BUS@R>AXoKKERFCqw^#qeE}a zuPS*06-NZZ_s)$bm;(MG_*M1(XL8Fv81Nh-PcGde#UB1AK!NxVhxW4|`Clf%x~-}A z(B2lv=ZWlJiwl=5XZ%v-EGC24AI>YV=fHO&TOI9RO7G#hzevd*f$-N2Wq)WP@CMcY s;_xdTyrIBK{9P{B!aHND+|Ka-_?iMlJK*>a5u{eRKKHhYiszgRy~4`qFk?L+d`8))nj=U11e=Fil?D&?PTR-fY@~ ziXtk?M2`~{(UZ)9;$bj91}doY;6)F@K=B}mZU>J8^`&dO9jt+u_kWMy@Av1>JC3CAILhFHWI}34L1{?GG${)cP*RH1Z(xw3 zc66%A6i&sD3Nq4I$-%I;W)L<-1qWI7IVq;NjdJ4tQLE7u*2>_~^>V5O1cE5fWmw;)|R@Ob%m1;J8Ae zz!p3#GP4{A1Ol9!=Xl;l5H72zW65^uR##O)gqCco23CV%2l?wp1NFT5;TK&7NM!0gi6#z8ePsKu*@*=Lr#G$19>Bswr z%`XO9&wt5IFIv~$ed~sExP7_zCwMg5dH3Ga?^DeSuNxco{W*6qc`9eSR(jN5nf3eo zH%e&zxUhC-atV*SF5vuw-nU-Q<+WGRc;Dpwjqa6;8 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.WeChat = void 0; +var shareConfig = { + gameId: "100019", + shareLine: "zDLsruVI", + EK: "hui231%1" +}; +// 微信操作类 +var WeChat = /** @class */ (function () { + function WeChat() { + } + WeChat.setShare = function (url) { + var urlTemp = this.removeQueryParams(url); + shareConfig.shareLine = urlTemp; + if (cc.sys.platform == cc.sys.WECHAT_GAME) { + WeChat.getSignature(url); + } + }; + WeChat.getResult = function (res) { + if (res) { + var data = res.data; + wx.config({ + debug: false, + appId: data.appId, + timestamp: data.timestamp, + nonceStr: data.nonceStr, + signature: data.signature, + jsApiList: ['onMenuShareTimeline', 'updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareAppMessage'] + }); + wx.checkJsApi({ + jsApiList: ['updateAppMessageShareData'], + success: function (res) { + setTimeout(function () { + WeChat.changeShare(); + }, 100); + setTimeout(function () { + WeChat.changeShare(); + }, 200); + } + }); + } + }; + WeChat.changeShare = function () { + wx.ready(function () { + wx.updateAppMessageShareData({ + title: '逻辑性认知测评', + desc: '你的认知灵活性和选择注意有问题吗', + link: shareConfig.shareLine, + imgUrl: 'https://static.sparkus.cn/public/shennong.jpg', + success: function () { + // 设置成功 + console.log("分享好友成功回调"); + } + }); + setTimeout(function () { + wx.updateTimelineShareData({ + title: '逻辑性认知测评', + link: shareConfig.shareLine, + imgUrl: 'https://static.sparkus.cn/public/shennong.jpg', + success: function () { + // 设置成功 + console.log("分享朋友圈成功回调"); + } + }); + }, 500); + }); + }; + WeChat.getSignature = function (url) { + return new Promise(function (resolve) { + WeChat.getShareInfo((encodeURIComponent(url)), WeChat.getResult); + }); + }; + WeChat.getShareInfo = function (shareUrl, callback) { + return __awaiter(this, void 0, Promise, function () { + var time, url; + return __generator(this, function (_a) { + time = Math.floor((new Date().getTime()) / 1000); + url = cc.fx.HttpUtil.apiSign("/api/share/cfg?gameId=" + shareConfig.gameId + "&time=" + time + "&url=" + shareUrl, {}); + return [2 /*return*/, cc.fx.HttpUtil.get(url, callback, 0)]; + }); + }); + }; + WeChat.containsNanana = function (str) { + return /test/i.test(str); + }; + WeChat.removeQueryParams = function (url) { + return url.replace(/\?.*$/, ''); + }; + return WeChat; +}()); +exports.WeChat = WeChat; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/72/7290c680-dfdc-4c59-9736-a614cc2a8bcf.js.map b/library/imports/72/7290c680-dfdc-4c59-9736-a614cc2a8bcf.js.map new file mode 100644 index 0000000..305e514 --- /dev/null +++ b/library/imports/72/7290c680-dfdc-4c59-9736-a614cc2a8bcf.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Share\\share.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\n\nvar shareConfig = {\n gameId: \"100019\",\n shareLine: \"zDLsruVI\",\n EK:\"hui231%1\"\n };\n\n// 定义微信配置数据的接口\ninterface IWeChatConfig {\n appId: string;\n timestamp: number;\n nonceStr: string;\n signature: string;\n jsApiList: [];\n}\n\n// 微信操作类\nexport class WeChat {\n static setShare(url) {\n var urlTemp = this.removeQueryParams(url);\n shareConfig.shareLine = urlTemp;\n if (cc.sys.platform == cc.sys.WECHAT_GAME) {\n WeChat.getSignature(url);\n }\n \n }\n\n static getResult(res){\n if(res){\n var data = res.data;\n wx.config({\n debug: false,\n appId: data.appId,\n timestamp: data.timestamp,\n nonceStr: data.nonceStr,\n signature: data.signature,\n jsApiList: ['onMenuShareTimeline','updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareAppMessage']\n });\n wx.checkJsApi({\n jsApiList: ['updateAppMessageShareData'], // 需要检测的JS接口列表,所有JS接口列表见附录2,\n success: function(res) {\n setTimeout(() => { \n WeChat.changeShare();\n }, 100);\n setTimeout(() => {\n WeChat.changeShare();\n }, 200);\n }\n });\n }\n }\n\n static changeShare(){\n wx.ready(() => {\n wx.updateAppMessageShareData({ \n title: '逻辑性认知测评', // 分享标题\n desc: '你的认知灵活性和选择注意有问题吗', // 分享描述\n link: shareConfig.shareLine, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致\n imgUrl: 'https://static.sparkus.cn/public/shennong.jpg', // 分享图标\n success: function () {\n // 设置成功\n console.log(\"分享好友成功回调\");\n }\n });\n setTimeout(() => {\n wx.updateTimelineShareData({ \n title: '逻辑性认知测评', // 分享标题\n link: shareConfig.shareLine, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致\n imgUrl: 'https://static.sparkus.cn/public/shennong.jpg', // 分享图标\n success: function () {\n // 设置成功\n console.log(\"分享朋友圈成功回调\");\n }\n })\n }, 500);\n\n }); \n }\n\n static getSignature(url: string): Promise {\n return new Promise((resolve) => {\n WeChat.getShareInfo((encodeURIComponent(url)),WeChat.getResult);\n });\n }\n static async getShareInfo(shareUrl: string, callback:Function): Promise {\n const time = Math.floor((new Date().getTime()) / 1000)\n const url = cc.fx.HttpUtil.apiSign(`/api/share/cfg?gameId=${shareConfig.gameId}&time=${time}&url=${shareUrl}`,{})\n return cc.fx.HttpUtil.get(url,callback,0);\n }\n\n \n static containsNanana(str) {\n return /test/i.test(str);\n }\n\n static removeQueryParams(url) {\n return url.replace(/\\?.*$/, '');\n }\n\n}\n"]} \ No newline at end of file diff --git a/library/imports/73/73a0903d-d80e-4e3c-aa67-f999543c08f5.json b/library/imports/73/73a0903d-d80e-4e3c-aa67-f999543c08f5.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/73/73a0903d-d80e-4e3c-aa67-f999543c08f5.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/73/73a0903d-d80e-4e3c-aa67-f999543c08f5.png b/library/imports/73/73a0903d-d80e-4e3c-aa67-f999543c08f5.png new file mode 100644 index 0000000000000000000000000000000000000000..a0985fcd26610e8697d5bb06bc65a4cc357c6e0f GIT binary patch literal 1422 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=!ZaB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxR5#hc&_u!9QqR!T z(8R(}N5ROz&{*HVSl`fC*U-qyz|zXlQ~?TIxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr7KMf<|~|UP^v> zu_jo#udkJ7UU5lcUUI6Zi>(sS0KLr26f1K#b5lcOH&=5LGebi|R|`u+GZRZU6E_nl zH&-V^7dMz*m;B_?+|;}hnBEkGUN@Y2K`9}(0BEyIYEfocYKmJ?ey#%8$5xrR-QtYX zJgD9j+-`BfsaGH97=2K@BE>UI2$*<4On9mVa^UGcH4m8Bi-4)R{glW)1_mZ(PZ!6K zid#v4{{OdUwq+D%o_labYY4l}6|)H&Lpf5O#VCleJZk%Y_5HbvXPl0eCF;4^-} z)>O>=xc^nXLEX9^T?>Of#AZjG(w(ib=GYIfmv(nHtv_Wisor_xVUYjK)XOeClJ*+= zo1(w5cZheUKD_L_FSXcpZsWe6EZccnwtJsdThh+z3Kxps^U+qhW@uo<@^AlVZk3CyM@$dw`NFQZKg_6Ev7wxc*;wGv zfy?&(|MdT5eB1x%ZE@2{N#zy)RDOkjV2L!vr}Xr$1hP} zdDwr-UP7H?wy><|jaBMuY+Ii?Xf-|jn9tVsb-v`k`hVYNU7VIJ-z*z$(RIk)VXwEH z>Ob#_oeeMkbRBjQR45hgI4ZI4Z*oEf!1+RH0G^sG? zslAyt_t(Dv|BuS6hOE|Yn6{2FD0_pK-Jib?{@=@gc%rj2>ZG=UJcK?1K+wiXV z!2eU**PqlX;askDm7}8T&(cr*h1)VDRF?`*^o%T(wOGAoa>nv4Z&bG(JD+6nulD5s pZ2N4Db;sOhcP= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var CryptoJS = require("./crypto-js.min.js"); //引用AES源码js +var BASE_URL = "https://api.sparkus.cn"; +//只负责网络接口 次类只负责和后端交互,不负责处理数据 数据处理在GameTool +var HttpUtil = /** @class */ (function (_super) { + __extends(HttpUtil, _super); + function HttpUtil() { + return _super !== null && _super.apply(this, arguments) || this; + } + HttpUtil_1 = HttpUtil; + //排行榜 + HttpUtil.rankData = function (type, callback, data) { + return __awaiter(this, void 0, Promise, function () { + var time, url; + return __generator(this, function (_a) { + time = Math.floor((new Date().getTime()) / 1000); + url = HttpUtil_1.apiSign("/api/get/rank/data?gameId=" + config.gameId + "&dataType=" + type + "&time=" + time, data); + this.post(url, data, callback, 0); + return [2 /*return*/]; + }); + }); + }; + HttpUtil.uploadUserLogData = function (data, callback) { + return __awaiter(this, void 0, Promise, function () { + var url; + return __generator(this, function (_a) { + url = '/log/collect/data'; + this.post(url, data, callback, 3); + return [2 /*return*/]; + }); + }); + }; + //暂时用不到 + HttpUtil.getUserRecord = function (data, callback) { + return __awaiter(this, void 0, Promise, function () { + var time, url; + return __generator(this, function (_a) { + time = Math.floor((new Date().getTime()) / 1000); + url = HttpUtil_1.apiSign("/api/get/user/data?gameId=" + config.gameId + "&time=" + time, data); + this.post(url, data, callback, 0); + return [2 /*return*/]; + }); + }); + }; + HttpUtil.get = function (url, callback, count) { + return __awaiter(this, void 0, void 0, function () { + var repeat, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + repeat = count ? count : 0; + return [4 /*yield*/, this.fetchData(url, null, 'GET', repeat)]; + case 1: + response = _a.sent(); + callback && callback(response); + return [2 /*return*/]; + } + }); + }); + }; + HttpUtil.post = function (url, data, callback, count) { + return __awaiter(this, void 0, void 0, function () { + var repeat, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + repeat = count ? count : 0; + return [4 /*yield*/, this.fetchData(url, data, 'POST', repeat)]; + case 1: + response = _a.sent(); + callback && callback(response); + return [2 /*return*/]; + } + }); + }); + }; + HttpUtil.fetchData = function (url, data, method, repeat) { + return __awaiter(this, void 0, void 0, function () { + var fullUrl, headers, options, response, error_1, timeOut; + var _this = this; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + fullUrl = "" + BASE_URL + url; + headers = { 'Content-Type': 'application/json' }; + options = { + method: method, + headers: headers, + body: data ? JSON.stringify(data) : null, + }; + _a.label = 1; + case 1: + _a.trys.push([1, 4, , 5]); + return [4 /*yield*/, this.fetchWithTimeout(fullUrl, options)]; + case 2: + response = _a.sent(); + if (!response.ok) { + throw new Error("HTTP_______________error! status: " + response.status); + } + return [4 /*yield*/, response.json()]; + case 3: return [2 /*return*/, _a.sent()]; + case 4: + error_1 = _a.sent(); + console.error('Fetch_______________error:', error_1); + if (repeat > 0) { + repeat -= 1; + timeOut = (3 - repeat) * 5000; + setTimeout(function () { return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, this.fetchData(url, data, method, repeat)]; + case 1: + response = _a.sent(); + return [2 /*return*/]; + } + }); + }); }, timeOut); + } + else { + return [2 /*return*/, null]; + } + return [3 /*break*/, 5]; + case 5: return [2 /*return*/]; + } + }); + }); + }; + HttpUtil.fetchWithTimeout = function (resource, options) { + if (options === void 0) { options = {}; } + return __awaiter(this, void 0, void 0, function () { + var controller, id, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + controller = new AbortController(); + id = setTimeout(function () { return controller.abort(); }, 5000); + return [4 /*yield*/, fetch(resource, __assign(__assign({}, options), { signal: controller.signal }))]; + case 1: + response = _a.sent(); + clearTimeout(id); + return [2 /*return*/, response]; + } + }); + }); + }; + /** + * + * @param url {string} 接口地址 + * @param params {object} 需要加密的参数对象 + */ + HttpUtil.apiSign = function (url, params) { + if (params === void 0) { params = {}; } + var convertUrl = url.trim(); + if (convertUrl.indexOf('?') === -1) { + convertUrl += '?'; + } + // 传入参数转换拼接字符串 + var postStr = getQueryString(params); + var signedStr = genSignStr(convertUrl, postStr); + var encryptStr = "sign=" + signedStr; + var encryptSignStr = fxCry.encryptByDES(encryptStr, config.secretKey); + encryptSignStr = encodeURIComponent(encryptSignStr); + return urlencode(convertUrl) + "&_p=" + encryptSignStr; + }; + var HttpUtil_1; + HttpUtil = HttpUtil_1 = __decorate([ + ccclass + ], HttpUtil); + return HttpUtil; +}(cc.Component)); +exports.default = HttpUtil; +function responseHandler(response) { + return response.data; +} +// 响应拦截器 +// Rq.interceptors.response.use(responseHandler) +var config = { + gameId: "100019", + secretKey: "15ELeamO", + EK: "hui231%1" +}; +var Crypoto = /** @class */ (function () { + function Crypoto() { + // 加密的向明值,自己根据项目实际情况定,需要跟后端开发保持一致 + this.keyHex = this.getHetKey(); + } + Crypoto.prototype.getHetKey = function () { + return CryptoJS.enc.Utf8.parse(config.EK); + }; + /** DES加密 */ + Crypoto.prototype.encryptByDES = function (message, secret) { + if (!message) { + return message; + } + var key = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var encrypted = CryptoJS.DES.encrypt(message, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return encrypted.toString(); + }; + /** DES解密 */ + Crypoto.prototype.decryptByDES = function (message, secret) { + var key = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var decrypted = CryptoJS.DES.decrypt({ + ciphertext: CryptoJS.enc.Base64.parse(message) + }, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return decrypted.toString(CryptoJS.enc.Utf8); + }; + /** hmacSHA256加密 */ + Crypoto.prototype.hmacSha256 = function (message, secret) { + var keyHex = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var hash = CryptoJS.HmacSHA256(message, keyHex); + return hash.toString(); + }; + /** hmacSHA256验证 */ + Crypoto.prototype.verifyHmacSha256 = function (message, signature) { + var hash = CryptoJS.HmacSHA256(message, this.keyHex); + return hash.toString() === signature; + }; + /** CBC加密 */ + Crypoto.prototype.encryptCBC = function (word) { + if (!word) { + return word; + } + var srcs = CryptoJS.enc.Utf8.parse(word); + var encrypted = CryptoJS.AES.encrypt(srcs, this.keyHex, { + iv: this.keyHex, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.ZeroPadding + }); + return encrypted.toString(); + }; + /** CBC解密 */ + Crypoto.prototype.decryptCBC = function (word) { + if (!word) { + return word; + } + var encryptedHexStr = CryptoJS.enc.Hex.parse(word); + var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr); + var decrypt = CryptoJS.AES.decrypt(srcs, this.keyHex, { + iv: this.keyHex, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.ZeroPadding + }); + var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); + return decryptedStr.toString(); + }; + return Crypoto; +}()); +var fxCry = new Crypoto(); +function isEmpty(data) { + return data === "" || data === null || data === undefined || data.length === 0 || JSON.stringify(data) == "{}"; +} +function getQueryString(obj) { + // 首先对对象的键进行排序并过滤空值 + var sortedKeys = Object.keys(obj).sort(); + var sortedObj = {}; + for (var i = 0; i < sortedKeys.length; i++) { + if (isEmpty(obj[sortedKeys[i]])) { + continue; + } + sortedObj[sortedKeys[i]] = obj[sortedKeys[i]]; + } + // 然后将排序后的对象转换为查询字符串 + var params = []; + for (var key in sortedObj) { + params.push(encodeURIComponent(key) + "=" + encodeURIComponent(sortedObj[key])); + } + return params.join('&'); +} +/** + * 组装签名字符串 + * @param string url: 请求地址 + * @param string postStr: post参数的a=1&b=2 + * @returns + */ +function genSignStr(url, postStr) { + var lessUrl = url.replace('?', ''); + lessUrl = lessUrl + "&" + postStr; + return encodeURIComponent(fxCry.hmacSha256(lessUrl)); +} +// 对参数进行统一urlencode +function urlencode(url) { + var _a = url.split("?", 2), baseUrl = _a[0], queryString = _a[1]; + var params = new URLSearchParams(queryString); + return baseUrl + "?" + params.toString(); +} + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/77/771a3d9a-4013-4654-a777-fbaea0c93280.js.map b/library/imports/77/771a3d9a-4013-4654-a777-fbaea0c93280.js.map new file mode 100644 index 0000000..add2273 --- /dev/null +++ b/library/imports/77/771a3d9a-4013-4654-a777-fbaea0c93280.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Crypto\\HttpUtil.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\r\nconst {ccclass, property} = cc._decorator;\r\nimport CryptoJS = require('./crypto-js.min.js'); //引用AES源码js\r\n\r\nconst BASE_URL = \"https://api.sparkus.cn\";\r\n//只负责网络接口 次类只负责和后端交互,不负责处理数据 数据处理在GameTool\r\n@ccclass\r\nexport default class HttpUtil extends cc.Component {\r\n //排行榜\r\n static async rankData(type,callback,data): Promise {\r\n const time = Math.floor((new Date().getTime()) / 1000)\r\n const url = HttpUtil.apiSign(`/api/get/rank/data?gameId=${config.gameId}&dataType=${type}&time=${time}`, data)\r\n this.post(url,data,callback,0);\r\n }\r\n \r\n static async uploadUserLogData(data,callback): Promise {\r\n const url = '/log/collect/data';\r\n this.post(url,data,callback,3);\r\n }\r\n //暂时用不到\r\n static async getUserRecord(data,callback): Promise {\r\n const time = Math.floor((new Date().getTime()) / 1000)\r\n const url = HttpUtil.apiSign(`/api/get/user/data?gameId=${config.gameId}&time=${time}`, data)\r\n this.post(url,data,callback,0);\r\n }\r\n\r\n static async get(url, callback,count) {\r\n let repeat = count?count:0;\r\n const response = await this.fetchData(url, null, 'GET',repeat);\r\n callback && callback(response);\r\n }\r\n\r\n static async post(url, data, callback,count) {\r\n let repeat = count?count:0;\r\n const response = await this.fetchData(url, data, 'POST',repeat);\r\n callback && callback(response);\r\n }\r\n\r\n static async fetchData(url, data, method,repeat) {\r\n const fullUrl = `${BASE_URL}${url}`;\r\n const headers = { 'Content-Type': 'application/json' };\r\n const options = {\r\n method,\r\n headers,\r\n body: data ? JSON.stringify(data) : null,\r\n };\r\n\r\n try {\r\n var response = await this.fetchWithTimeout(fullUrl,options);\r\n if (!response.ok) {\r\n throw new Error(`HTTP_______________error! status: ${response.status}`);\r\n }\r\n return await response.json();\r\n } catch (error) {\r\n console.error('Fetch_______________error:', error);\r\n if(repeat > 0){\r\n repeat -= 1;\r\n const timeOut = (3-repeat)*5000;\r\n setTimeout(async () => {\r\n response = await this.fetchData(url, data, method,repeat);\r\n }, timeOut);\r\n }\r\n else{\r\n return null;\r\n }\r\n }\r\n } \r\n\r\n static async fetchWithTimeout(resource, options = {}) {\r\n const controller = new AbortController();\r\n const id = setTimeout(() => controller.abort(), 5000);\r\n const response = await fetch(resource, {\r\n ...options,\r\n signal: controller.signal\r\n });\r\n clearTimeout(id);\r\n\r\n return response;\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param url {string} 接口地址\r\n * @param params {object} 需要加密的参数对象\r\n */\r\n static apiSign(url: string, params = {}) {\r\n\r\n let convertUrl = url.trim()\r\n if (convertUrl.indexOf('?') === -1) {\r\n convertUrl += '?'\r\n }\r\n \r\n // 传入参数转换拼接字符串\r\n let postStr = getQueryString(params)\r\n \r\n const signedStr = genSignStr(convertUrl, postStr)\r\n const encryptStr = `sign=${signedStr}`\r\n\r\n let encryptSignStr = fxCry.encryptByDES(encryptStr, config.secretKey)\r\n encryptSignStr = encodeURIComponent(encryptSignStr)\r\n\r\n return `${urlencode(convertUrl)}&_p=${encryptSignStr}`\r\n }\r\n}\r\n\r\nfunction responseHandler(response: { data: any }) {\r\n return response.data\r\n}\r\n// 响应拦截器\r\n// Rq.interceptors.response.use(responseHandler)\r\nconst config = {\r\n gameId: \"100019\",\r\n secretKey: \"15ELeamO\",\r\n EK:\"hui231%1\"\r\n};\r\n\r\ninterface CrypotoType {\r\n encryptByDES: any\r\n decryptByDES: any\r\n hmacSha256: any\r\n}\r\n \r\nclass Crypoto implements CrypotoType {\r\n // 加密的向明值,自己根据项目实际情况定,需要跟后端开发保持一致\r\n private keyHex = this.getHetKey()\r\n private getHetKey() {\r\n return CryptoJS.enc.Utf8.parse(config.EK);\r\n }\r\n\r\n /** DES加密 */\r\n encryptByDES(message: string, secret?: string) {\r\n if(!message) {\r\n return message\r\n }\r\n const key = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex\r\n const encrypted = CryptoJS.DES.encrypt(message, key, {\r\n mode: CryptoJS.mode.ECB,\r\n padding: CryptoJS.pad.Pkcs7\r\n });\r\n return encrypted.toString()\r\n }\r\n\r\n /** DES解密 */\r\n decryptByDES(message: string, secret?: string) {\r\n const key = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex\r\n\r\n const decrypted = CryptoJS.DES.decrypt({\r\n ciphertext: CryptoJS.enc.Base64.parse(message)\r\n }, key, {\r\n mode: CryptoJS.mode.ECB,\r\n padding: CryptoJS.pad.Pkcs7\r\n })\r\n\r\n return decrypted.toString(CryptoJS.enc.Utf8)\r\n }\r\n\r\n /** hmacSHA256加密 */\r\n hmacSha256(message: string, secret?: string) {\r\n const keyHex = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex\r\n \r\n const hash = CryptoJS.HmacSHA256(message, keyHex);\r\n return hash.toString()\r\n }\r\n\r\n /** hmacSHA256验证 */\r\n verifyHmacSha256(message: string, signature: string) {\r\n const hash = CryptoJS.HmacSHA256(message, this.keyHex);\r\n return hash.toString() === signature\r\n }\r\n \r\n /** CBC加密 */\r\n encryptCBC(word: string) {\r\n if (!word) {\r\n return word;\r\n }\r\n const srcs = CryptoJS.enc.Utf8.parse(word);\r\n const encrypted = CryptoJS.AES.encrypt(srcs, this.keyHex, {\r\n iv: this.keyHex,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.ZeroPadding\r\n });\r\n return encrypted.toString(); \r\n }\r\n \r\n /** CBC解密 */\r\n decryptCBC(word: string) {\r\n if (!word) {\r\n return word;\r\n }\r\n const encryptedHexStr = CryptoJS.enc.Hex.parse(word);\r\n const srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);\r\n const decrypt = CryptoJS.AES.decrypt(srcs, this.keyHex, {\r\n iv: this.keyHex,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.ZeroPadding\r\n });\r\n const decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);\r\n return decryptedStr.toString();\r\n }\r\n}\r\nconst fxCry = new Crypoto();\r\n\r\nfunction isEmpty(data) {\r\n return data === \"\" || data === null || data === undefined || data.length === 0 || JSON.stringify(data) == \"{}\"\r\n}\r\n\r\nfunction getQueryString(obj) {\r\n // 首先对对象的键进行排序并过滤空值\r\n const sortedKeys = Object.keys(obj).sort();\r\n const sortedObj = {};\r\n for (let i = 0; i < sortedKeys.length; i++) {\r\n if (isEmpty(obj[sortedKeys[i]])) {\r\n continue;\r\n }\r\n sortedObj[sortedKeys[i]] = obj[sortedKeys[i]];\r\n }\r\n \r\n // 然后将排序后的对象转换为查询字符串\r\n const params = [];\r\n for (const key in sortedObj) {\r\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(sortedObj[key])}`);\r\n }\r\n return params.join('&');\r\n}\r\n\r\n\r\n/**\r\n * 组装签名字符串\r\n * @param string url: 请求地址 \r\n * @param string postStr: post参数的a=1&b=2 \r\n * @returns \r\n */\r\n\r\nfunction genSignStr(url: string, postStr: string): string {\r\n let lessUrl = url.replace('?', '')\r\n lessUrl = lessUrl + \"&\" + postStr\r\n return encodeURIComponent(fxCry.hmacSha256(lessUrl))\r\n}\r\n// 对参数进行统一urlencode\r\nfunction urlencode(url: string): string {\r\n const [baseUrl, queryString] = url.split(\"?\", 2);\r\n const params = new URLSearchParams(queryString);\r\n return `${baseUrl}?${params.toString()}`;\r\n}\r\n\r\n\r\n\r\n"]} \ No newline at end of file diff --git a/library/imports/78/785a442c-3ceb-45be-a46e-7317f625f3b9.json b/library/imports/78/785a442c-3ceb-45be-a46e-7317f625f3b9.json new file mode 100644 index 0000000..552ef35 --- /dev/null +++ b/library/imports/78/785a442c-3ceb-45be-a46e-7317f625f3b9.json @@ -0,0 +1,150 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "layout", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 1, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "layout", + "_objFlags": 0, + "_parent": null, + "_children": [], + "_active": true, + "_level": 1, + "_components": [ + { + "__id__": 2 + }, + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 200, + "height": 150 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_skewX": 0, + "_skewY": 0, + "_localZOrder": 23, + "groupIndex": 0, + "_id": "", + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1 + ] + } + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "9bbda31e-ad49-43c9-aaf2-f7d9896bac69" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_state": 0, + "_atlas": null, + "_id": "2ahobdsPRNsqLW+QOpm+dP" + }, + { + "__type__": "cc.Layout", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_layoutSize": { + "__type__": "cc.Size", + "width": 200, + "height": 150 + }, + "_resize": 0, + "_N$layoutType": 0, + "_N$padding": 0, + "_N$cellSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_N$startAxis": 0, + "_N$paddingLeft": 0, + "_N$paddingRight": 0, + "_N$paddingTop": 0, + "_N$paddingBottom": 0, + "_N$spacingX": 0, + "_N$spacingY": 0, + "_N$verticalDirection": 1, + "_N$horizontalDirection": 0, + "_id": "bfIqKhkQ5DR4a9m9sj/AzV" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "785a442c-3ceb-45be-a46e-7317f625f3b9" + }, + "fileId": "7f8d2O3hcNDT55RjJXZrQyg", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/7a/7a17de6e-227a-46b1-8009-e7157d4d3acf.bin b/library/imports/7a/7a17de6e-227a-46b1-8009-e7157d4d3acf.bin new file mode 100644 index 0000000000000000000000000000000000000000..785c0a925a49b5206ee075a9a5a3c2e537f0dffa GIT binary patch literal 4512 zcmai%ZBSHY6vzL%2q-KpvCI0hprWY>p{S+Q?!6>tCTXOV8DjZHFH~YwnDN#aPSXeb zV)>~_jb{ATj4y+uvYVCiwP_r~96y+rWr|Zem0{8UTy~pt?>rMQcbDDYJ^%Caoclb7 z^l88B2RahFf1f`0Qrh7-fW(MVhvTz%2JIQV(iLB|{i?&~U$2UHMKkOlT4uQTv~#B& zex+h(eA1O{`{VP4F5b)UML){>_LGh0JzD=*aKPbdr+Rxn?D5&#eDhp1>{Z-Z; z`VVej<>KEb^-Is4w)Rs0La52b7bN5Rx?-mlq3_z_^)5b;%>P>2VQVIH|7J^ri&tMS zJM_=spu}ho4%&8CW2=i#WnF}?*?!f!%-Ym_xz)uFoa~JW|2#Ngb=>_zn7% z`rPFEY5JB+*Jmwtg$J%zS!=0X;K_du^A>)V`CVl0b)Nj>d*O3=pD?*c>*rEe;#)^Q zqAfl&k27wuKh8WP_P3dX<~>P%;$&}+@HWr-(bg9GuFiK4NbP`1m;HI#iGT6aN?UJz zP9*!|J^J6p{%G^~|1O!|EUvTUSLErhx@7(GxlWSX&z}AbF@K4V>lY6*|9$K+onLBw zeq*1=+LU^pk5v8p*oRWvPdxqq1><(=$2_EVA20{4U&s7~OP-y~Uvku3m|UMW|8Z!| z`y=h!>_HDFMnY;RwUv7`zuaHN?~$lye*Mf{o}shd2Ya%@mn?sHqiD;IUDk8#0QUse zqSC~Z`W=?&YkM7keol=g@&ASJ9sr=#19xP{Zl}z_(MP(*GVVE?oVqxhcM!q<(kz!I<7(0*qhw7tKxa zd-#9PXDYs8)@Kakzm?l*>GLbV`pfyHxk+DhQ+(}QU#ZXSV4tPWwm+8*M#* z3=Fnga)y>DZqnD>6kpPYZymPVzLK9SML(AEujiK$w{|=EY3{ZkIzKcw#h(%Av_!v% z_0#i5Y5Hf*jH9_pUvpD@<3fFoelyo!&p$^OedWwZnw#`BH^o=P=R(%Mn*E!a4`hDZ zfANen!)b2P*W47J=*sy#k$z0}nw$JU9Ss#giEcX!+=Z{NY^Wp6Ed@J>r`8KtFncN45 zj?W^>a&dJkV#+j;q3MQ z2lD*O{|Bs#CC^t2&rv=9mvR4*`CoIBf6Yz$1?+pN5BIl(p8tK^KV|;c+@!C$DZX;{ zy=Q)R&F2R0>MzYr@c|<+l9vx@7=?6X@HZWq7>zN=LN@%!;d?Fuy!`x}hdYqZE03SX z@XF%rXao_WmDq>)xd35|8n1I^fqH?a+G Mp#`mILpwU~FYiqi0ssI2 literal 0 HcmV?d00001 diff --git a/library/imports/7a/7a17de6e-227a-46b1-8009-e7157d4d3acf.json b/library/imports/7a/7a17de6e-227a-46b1-8009-e7157d4d3acf.json new file mode 100644 index 0000000..aa843a8 --- /dev/null +++ b/library/imports/7a/7a17de6e-227a-46b1-8009-e7157d4d3acf.json @@ -0,0 +1,90 @@ +[ + { + "__type__": "cc.Mesh", + "_name": "", + "_objFlags": 0, + "_native": ".bin", + "_vertexBundles": [ + { + "__id__": 1 + } + ], + "_primitives": [ + { + "__id__": 6 + } + ], + "_minPos": { + "__type__": "cc.Vec3", + "x": -0.5, + "y": -0.5, + "z": -0.499999940395355 + }, + "_maxPos": { + "__type__": "cc.Vec3", + "x": 0.5, + "y": 0.5, + "z": 0.5 + } + }, + { + "__type__": "cc.mesh.VertexBundle", + "data": { + "__id__": 2 + }, + "formats": [ + { + "__id__": 3 + }, + { + "__id__": 4 + }, + { + "__id__": 5 + } + ], + "verticesCount": 129 + }, + { + "__type__": "cc.BufferRange", + "offset": 0, + "length": 4128 + }, + { + "__type__": "cc.mesh.VertexFormat", + "name": "a_normal", + "type": 5126, + "num": 3, + "normalize": false + }, + { + "__type__": "cc.mesh.VertexFormat", + "name": "a_position", + "type": 5126, + "num": 3, + "normalize": false + }, + { + "__type__": "cc.mesh.VertexFormat", + "name": "a_uv0", + "type": 5126, + "num": 2, + "normalize": false + }, + { + "__type__": "cc.mesh.Primitive", + "vertexBundleIndices": [ + 0 + ], + "data": { + "__id__": 7 + }, + "indexUnit": 5123, + "topology": 4 + }, + { + "__type__": "cc.BufferRange", + "offset": 4128, + "length": 384 + } +] \ No newline at end of file diff --git a/library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js b/library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js new file mode 100644 index 0000000..d3b7414 --- /dev/null +++ b/library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js @@ -0,0 +1,24 @@ +"use strict"; +cc._RF.push(module, '7a231Rz0d9LBYYgY3bDYlLB', 'use_v2.1-2.2.1_cc.Toggle_event'); +// migration/use_v2.1-2.2.1_cc.Toggle_event.js + +"use strict"; + +/* + * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version. + * You do not need to manually add this script in any other project. + * If you don't use cc.Toggle in your project, you can delete this script directly. + * If your project is hosted in VCS such as git, submit this script together. + * + * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程, + * 你无需在任何其它项目中手动添加此脚本。 + * 如果你的项目中没用到 Toggle,可直接删除该脚本。 + * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 + */ +if (cc.Toggle) { + // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code + // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 + cc.Toggle._triggerEventInScript_isChecked = true; +} + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js.map b/library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js.map new file mode 100644 index 0000000..8cab03c --- /dev/null +++ b/library/imports/7a/7a231473-d1df-4b05-8620-6376c36252c1.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\migration\\use_v2.1-2.2.1_cc.Toggle_event.js"],"names":["cc","Toggle","_triggerEventInScript_isChecked"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAIA,EAAE,CAACC,MAAP,EAAe;AACX;AACA;AACAD,EAAAA,EAAE,CAACC,MAAH,CAAUC,+BAAV,GAA4C,IAA5C;AACH","sourceRoot":"/","sourcesContent":["/*\r\n * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version.\r\n * You do not need to manually add this script in any other project.\r\n * If you don't use cc.Toggle in your project, you can delete this script directly.\r\n * If your project is hosted in VCS such as git, submit this script together.\r\n *\r\n * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程,\r\n * 你无需在任何其它项目中手动添加此脚本。\r\n * 如果你的项目中没用到 Toggle,可直接删除该脚本。\r\n * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。\r\n */\r\n\r\nif (cc.Toggle) {\r\n // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code\r\n // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件\r\n cc.Toggle._triggerEventInScript_isChecked = true;\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/7a/7afd064b-113f-480e-b793-8817d19f63c3.json b/library/imports/7a/7afd064b-113f-480e-b793-8817d19f63c3.json new file mode 100644 index 0000000..2afdc94 --- /dev/null +++ b/library/imports/7a/7afd064b-113f-480e-b793-8817d19f63c3.json @@ -0,0 +1,10 @@ +{ + "__type__": "cc.Material", + "_name": "builtin-2d-spine", + "_objFlags": 0, + "_native": "", + "_effectAsset": { + "__uuid__": "0e93aeaa-0b53-4e40-b8e0-6268b4e07bd7" + }, + "_techniqueData": {} +} \ No newline at end of file diff --git a/library/imports/7d/7d4ffd94-42d6-4045-9db7-a744229adfc4.json b/library/imports/7d/7d4ffd94-42d6-4045-9db7-a744229adfc4.json new file mode 100644 index 0000000..e8aecc3 --- /dev/null +++ b/library/imports/7d/7d4ffd94-42d6-4045-9db7-a744229adfc4.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "default_toggle_pressed", + "texture": "b181c1e4-0a72-4a91-bfb0-ae6f36ca60bd", + "atlas": "", + "rect": [ + 0, + 0, + 28, + 28 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 28, + 28 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/7d/7de03a80-4457-438d-95a7-3e7cdffd6086.json b/library/imports/7d/7de03a80-4457-438d-95a7-3e7cdffd6086.json new file mode 100644 index 0000000..9ceb3f2 --- /dev/null +++ b/library/imports/7d/7de03a80-4457-438d-95a7-3e7cdffd6086.json @@ -0,0 +1,96 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "tiledmap", + "_objFlags": 0, + "data": { + "__id__": 1 + }, + "optimizationPolicy": 1, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "New TiledMap", + "_objFlags": 0, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_cascadeOpacityEnabled": true, + "_parent": null, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_children": [], + "_skewX": 0, + "_skewY": 0, + "_localZOrder": 0, + "_globalZOrder": 0, + "_tag": -1, + "_opacityModifyRGB": false, + "_reorderChildDirty": false, + "_id": "", + "_active": true, + "_components": [ + { + "__id__": 2 + } + ], + "_prefab": { + "__id__": 3 + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1 + ] + } + }, + { + "__type__": "cc.TiledMap", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_tmxFile": null + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": null, + "fileId": "6d9cbIJlHhJ/4JAwDJiN9SB" + } +] \ No newline at end of file diff --git a/library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js b/library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js new file mode 100644 index 0000000..0f04775 --- /dev/null +++ b/library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js @@ -0,0 +1,141 @@ +"use strict"; +cc._RF.push(module, '805c6nf399HWZeuWnNB9CTH', 'GameOver'); +// Script/GameOver.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.count = null; + _this.time = null; + _this.selfNode = null; + _this.one = null; + _this.two = null; + _this.three = null; + _this.four = null; + _this.five = null; + return _this; + } + // onLoad () {} + NewClass.prototype.start = function () { + this.init(); + }; + //初始化数据 + NewClass.prototype.init = function () { + this.listData = []; + this.selfData = null; + // this.getRank(); + }; + //打开排行榜 + NewClass.prototype.openRank = function () { + // alert("跳转"); + cc.director.loadScene("LoadScene"); + }; + //重新开始玩 + NewClass.prototype.again = function () { + // let levelTemp = cc.fx.GameConfig.GM_INFO.level; + cc.fx.GameConfig.GM_INFO_init(); + // if(cc.fx.GameConfig.GM_INFO.isCustom){ + // cc.fx.GameConfig.GM_INFO.level = levelTemp; + // } + cc.director.loadScene("GameScene"); + }; + //获取排行榜 + NewClass.prototype.getRank = function () { + var _this = this; + //获取排行榜数据 所需数据量 + var dataFile = { + length: 5 + }; + cc.fx.GameTool.getRank(dataFile, function (data) { return _this.getRankData(data); }); + }; + //设置排行信息 + NewClass.prototype.getRankData = function (data) { + if (data) { + cc.fx.GameTool.getRankData(data, this, 4); + cc.fx.GameTool.setPic(this.selfNode.getChildByName("pic").getChildByName("icon"), this.selfData.pic); + for (var i = 0; i <= 4; i++) { + this.setRank(i, this.listData[i]); + } + } + }; + //根据内容填充排行榜 + NewClass.prototype.setRank = function (num, data) { + var hitNode = null; + if (num == 0) { + hitNode = this.one; + } + else if (num == 1) { + hitNode = this.two; + } + else if (num == 2) { + hitNode = this.three; + } + else if (num == 3) { + hitNode = this.four; + } + else if (num == 4) { + hitNode = this.five; + } + if (hitNode) { + hitNode.active = true; + cc.fx.GameTool.subName(data.nickName, 4); + hitNode.getChildByName("name").getComponent(cc.Label).string = data.nickName; + hitNode.getChildByName("total").getComponent(cc.Label).string = data.totalSunCount; + cc.fx.GameTool.setPic(hitNode.getChildByName("pic").getChildByName("icon"), data.pic); + } + }; + __decorate([ + property(cc.Label) + ], NewClass.prototype, "count", void 0); + __decorate([ + property(cc.Label) + ], NewClass.prototype, "time", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "selfNode", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "one", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "two", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "three", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "four", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "five", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js.map b/library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js.map new file mode 100644 index 0000000..0ce8f9a --- /dev/null +++ b/library/imports/80/805c69df-dfdf-4759-97ae-5a7341f424c7.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\GameOver.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class NewClass extends cc.Component {\r\n @property(cc.Label)\r\n count: cc.Label = null;\r\n @property(cc.Label)\r\n time: cc.Label = null;\r\n @property(cc.Node)\r\n selfNode: cc.Node = null;\r\n @property(cc.Node)\r\n one: cc.Node = null;\r\n @property(cc.Node)\r\n two: cc.Node = null;\r\n @property(cc.Node)\r\n three: cc.Node = null;\r\n @property(cc.Node)\r\n four: cc.Node = null;\r\n @property(cc.Node)\r\n five: cc.Node = null;\r\n listData: any;\r\n selfData: any;\r\n efficiency: number;\r\n level: number;\r\n // onLoad () {}\r\n start () {\r\n this.init();\r\n }\r\n\r\n\r\n //初始化数据\r\n init(){\r\n this.listData = [];\r\n this.selfData = null;\r\n // this.getRank();\r\n }\r\n //打开排行榜\r\n openRank(){\r\n // alert(\"跳转\");\r\n cc.director.loadScene(\"LoadScene\");\r\n }\r\n //重新开始玩\r\n again(){\r\n // let levelTemp = cc.fx.GameConfig.GM_INFO.level;\r\n cc.fx.GameConfig.GM_INFO_init();\r\n // if(cc.fx.GameConfig.GM_INFO.isCustom){\r\n // cc.fx.GameConfig.GM_INFO.level = levelTemp;\r\n // }\r\n cc.director.loadScene(\"GameScene\");\r\n\r\n }\r\n //获取排行榜\r\n getRank(){\r\n //获取排行榜数据 所需数据量\r\n let dataFile = {\r\n length:5\r\n }\r\n cc.fx.GameTool.getRank(dataFile,data =>this.getRankData(data));\r\n }\r\n //设置排行信息\r\n getRankData(data){\r\n if(data){\r\n cc.fx.GameTool.getRankData(data,this,4);\r\n cc.fx.GameTool.setPic(this.selfNode.getChildByName(\"pic\").getChildByName(\"icon\"),this.selfData.pic);\r\n for(let i=0;i<=4;i++){\r\n this.setRank(i,this.listData[i]);\r\n }\r\n }\r\n }\r\n //根据内容填充排行榜\r\n setRank(num,data){\r\n var hitNode = null;\r\n if(num == 0){\r\n hitNode = this.one;\r\n }\r\n else if(num == 1){\r\n hitNode = this.two;\r\n }\r\n else if(num == 2){\r\n hitNode = this.three;\r\n }\r\n else if(num == 3){\r\n hitNode = this.four;\r\n }\r\n else if(num == 4){\r\n hitNode = this.five;\r\n }\r\n if(hitNode){\r\n hitNode.active = true;\r\n cc.fx.GameTool.subName(data.nickName,4);\r\n hitNode.getChildByName(\"name\").getComponent(cc.Label).string = data.nickName;\r\n hitNode.getChildByName(\"total\").getComponent(cc.Label).string = data.totalSunCount;\r\n cc.fx.GameTool.setPic(hitNode.getChildByName(\"pic\").getChildByName(\"icon\"),data.pic);\r\n }\r\n } \r\n\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/82/829a282c-b049-4019-bd38-5ace8d8a6417.json b/library/imports/82/829a282c-b049-4019-bd38-5ace8d8a6417.json new file mode 100644 index 0000000..acc059c --- /dev/null +++ b/library/imports/82/829a282c-b049-4019-bd38-5ace8d8a6417.json @@ -0,0 +1,939 @@ +{ + "__type__": "cc.EffectAsset", + "_name": "builtin-3d-particle", + "_objFlags": 0, + "_native": "", + "properties": null, + "techniques": [ + { + "name": "opaque-add", + "passes": [ + { + "stage": "opaque", + "rasterizerState": { + "cullMode": 0 + }, + "blendState": { + "targets": [ + { + "blend": true, + "blendSrc": 770, + "blendDst": 1, + "blendSrcAlpha": 770, + "blendDstAlpha": 1 + } + ] + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": false + }, + "properties": { + "mainTexture": { + "value": "grey", + "type": 29 + }, + "mainTiling_Offset": { + "value": [ + 1, + 1, + 0, + 0 + ], + "type": 16 + }, + "tintColor": { + "value": [ + 0.5, + 0.5, + 0.5, + 0.5 + ], + "inspector": { + "type": "color" + }, + "type": 16 + } + }, + "program": "builtin-3d-particle|particle-vs-legacy:lpvs_main|tinted-fs:add" + } + ] + }, + { + "name": "opaque-alpha-blend", + "passes": [ + { + "stage": "opaque", + "rasterizerState": { + "cullMode": 0 + }, + "blendState": { + "targets": [ + { + "blend": true, + "blendSrc": 770, + "blendDst": 771, + "blendSrcAlpha": 770, + "blendDstAlpha": 771 + } + ] + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": false + }, + "properties": { + "mainTexture": { + "value": "grey", + "type": 29 + }, + "mainTiling_Offset": { + "value": [ + 1, + 1, + 0, + 0 + ], + "type": 16 + }, + "tintColor": { + "value": [ + 0.5, + 0.5, + 0.5, + 0.5 + ], + "inspector": { + "type": "color" + }, + "type": 16 + } + }, + "program": "builtin-3d-particle|particle-vs-legacy:lpvs_main|tinted-fs:add" + } + ] + }, + { + "name": "opaque-add-multiply", + "passes": [ + { + "stage": "opaque", + "rasterizerState": { + "cullMode": 0 + }, + "blendState": { + "targets": [ + { + "blend": true, + "blendSrc": 770, + "blendDst": 771, + "blendSrcAlpha": 770, + "blendDstAlpha": 771 + } + ] + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": false + }, + "properties": { + "mainTexture": { + "value": "grey", + "type": 29 + }, + "mainTiling_Offset": { + "value": [ + 1, + 1, + 0, + 0 + ], + "type": 16 + }, + "tintColor": { + "value": [ + 0.5, + 0.5, + 0.5, + 0.5 + ], + "inspector": { + "type": "color" + }, + "type": 16 + } + }, + "program": "builtin-3d-particle|particle-vs-legacy:lpvs_main|tinted-fs:multiply" + } + ] + }, + { + "name": "opaque-add-smooth", + "passes": [ + { + "stage": "opaque", + "rasterizerState": { + "cullMode": 0 + }, + "blendState": { + "targets": [ + { + "blend": true, + "blendSrc": 770, + "blendDst": 771, + "blendSrcAlpha": 770, + "blendDstAlpha": 771 + } + ] + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": false + }, + "properties": { + "mainTexture": { + "value": "grey", + "type": 29 + }, + "mainTiling_Offset": { + "value": [ + 1, + 1, + 0, + 0 + ], + "type": 16 + } + }, + "program": "builtin-3d-particle|particle-vs-legacy:lpvs_main|no-tint-fs:addSmooth" + } + ] + }, + { + "name": "opaque-premultiply-blend", + "passes": [ + { + "stage": "opaque", + "rasterizerState": { + "cullMode": 0 + }, + "blendState": { + "targets": [ + { + "blend": true, + "blendSrc": 770, + "blendDst": 771, + "blendSrcAlpha": 770, + "blendDstAlpha": 771 + } + ] + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": false + }, + "properties": { + "mainTexture": { + "value": "grey", + "type": 29 + }, + "mainTiling_Offset": { + "value": [ + 1, + 1, + 0, + 0 + ], + "type": 16 + } + }, + "program": "builtin-3d-particle|particle-vs-legacy:lpvs_main|no-tint-fs:premultiplied" + } + ] + }, + { + "name": "transparent-add", + "passes": [ + { + "stage": "transparent", + "rasterizerState": { + "cullMode": 0 + }, + "blendState": { + "targets": [ + { + "blend": true, + "blendSrc": 770, + "blendDst": 1, + "blendSrcAlpha": 770, + "blendDstAlpha": 1 + } + ] + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": false + }, + "properties": { + "mainTexture": { + "value": "grey", + "type": 29 + }, + "mainTiling_Offset": { + "value": [ + 1, + 1, + 0, + 0 + ], + "type": 16 + }, + "tintColor": { + "value": [ + 0.5, + 0.5, + 0.5, + 0.5 + ], + "inspector": { + "type": "color" + }, + "type": 16 + } + }, + "program": "builtin-3d-particle|particle-vs-legacy:lpvs_main|tinted-fs:add" + } + ] + }, + { + "name": "transparent-alpha-blend", + "passes": [ + { + "stage": "transparent", + "rasterizerState": { + "cullMode": 0 + }, + "blendState": { + "targets": [ + { + "blend": true, + "blendSrc": 770, + "blendDst": 771, + "blendSrcAlpha": 770, + "blendDstAlpha": 771 + } + ] + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": false + }, + "properties": { + "mainTexture": { + "value": "grey", + "type": 29 + }, + "mainTiling_Offset": { + "value": [ + 1, + 1, + 0, + 0 + ], + "type": 16 + }, + "tintColor": { + "value": [ + 0.5, + 0.5, + 0.5, + 0.5 + ], + "inspector": { + "type": "color" + }, + "type": 16 + } + }, + "program": "builtin-3d-particle|particle-vs-legacy:lpvs_main|tinted-fs:add" + } + ] + }, + { + "name": "transparent-add-multiply", + "passes": [ + { + "stage": "transparent", + "rasterizerState": { + "cullMode": 0 + }, + "blendState": { + "targets": [ + { + "blend": true, + "blendSrc": 770, + "blendDst": 771, + "blendSrcAlpha": 770, + "blendDstAlpha": 771 + } + ] + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": false + }, + "properties": { + "mainTexture": { + "value": "grey", + "type": 29 + }, + "mainTiling_Offset": { + "value": [ + 1, + 1, + 0, + 0 + ], + "type": 16 + }, + "tintColor": { + "value": [ + 0.5, + 0.5, + 0.5, + 0.5 + ], + "inspector": { + "type": "color" + }, + "type": 16 + } + }, + "program": "builtin-3d-particle|particle-vs-legacy:lpvs_main|tinted-fs:multiply" + } + ] + }, + { + "name": "transparent-add-smooth", + "passes": [ + { + "stage": "transparent", + "rasterizerState": { + "cullMode": 0 + }, + "blendState": { + "targets": [ + { + "blend": true, + "blendSrc": 770, + "blendDst": 771, + "blendSrcAlpha": 770, + "blendDstAlpha": 771 + } + ] + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": false + }, + "properties": { + "mainTexture": { + "value": "grey", + "type": 29 + }, + "mainTiling_Offset": { + "value": [ + 1, + 1, + 0, + 0 + ], + "type": 16 + } + }, + "program": "builtin-3d-particle|particle-vs-legacy:lpvs_main|no-tint-fs:addSmooth" + } + ] + }, + { + "name": "transparent-premultiply-blend", + "passes": [ + { + "stage": "transparent", + "rasterizerState": { + "cullMode": 0 + }, + "blendState": { + "targets": [ + { + "blend": true, + "blendSrc": 770, + "blendDst": 771, + "blendSrcAlpha": 770, + "blendDstAlpha": 771 + } + ] + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": false + }, + "properties": { + "mainTexture": { + "value": "grey", + "type": 29 + }, + "mainTiling_Offset": { + "value": [ + 1, + 1, + 0, + 0 + ], + "type": 16 + } + }, + "program": "builtin-3d-particle|particle-vs-legacy:lpvs_main|no-tint-fs:premultiplied" + } + ] + } + ], + "shaders": [ + { + "hash": 1682193167, + "glsl3": { + "vert": "\nprecision highp float;\nvec4 quaternionFromAxis(vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler(vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT(vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS(vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply(vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat(inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace(vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n float z = pos.z;\n float x = pos.x;\n float y = pos.y;\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nvoid rotateCorner(inout vec2 corner, float angle){\n float xOS = cos(angle) * corner.x - sin(angle) * corner.y;\n float yOS = sin(angle) * corner.x + cos(angle) * corner.y;\n corner.x = xOS;\n corner.y = yOS;\n}\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nvoid computeVertPos(inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , mat4 viewInv\n#endif\n#if CC_USE_STRETCHED_BILLBOARD\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_USE_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_USE_STRETCHED_BILLBOARD\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_USE_HORIZONTAL_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_USE_VERTICAL_BILLBOARD\n vec2 viewSpaceVert = vec2(vertOffset.x * s.x, vertOffset.y * s.y);\n rotateCorner(viewSpaceVert, q.z);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV(float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if !CC_USE_MESH\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nin vec3 a_position;\nin vec3 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_USE_STRETCHED_BILLBOARD\n in vec3 a_color1;\n#endif\n#if CC_USE_MESH\n in vec3 a_texCoord3;\n in vec3 a_normal;\n in vec4 a_color1;\n#endif\nvec4 lpvs_main() {\n vec3 compScale = scale.xyz * a_texCoord1;\n vec4 pos = vec4(a_position, 1);\n#if CC_USE_STRETCHED_BILLBOARD\n vec4 velocity = vec4(a_color1.xyz, 0);\n#endif\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_USE_STRETCHED_BILLBOARD\n velocity = cc_matWorld * velocity;\n #endif\n#endif\n#if !CC_USE_MESH\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_USE_BILLBOARD\n vec3 rotEuler = a_texCoord2;\n #elif CC_USE_STRETCHED_BILLBOARD\n vec3 rotEuler = vec3(0.);\n #else\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n computeVertPos(pos, cornerOffset, quaternionFromEuler(rotEuler), compScale\n #if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , cc_matViewInv\n #endif\n #if CC_USE_STRETCHED_BILLBOARD\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n , a_texCoord.x\n #endif\n );\n color = a_color;\n#else\n mat4 xformNoScale = matrixFromRT(quaternionFromEuler(a_texCoord2), pos.xyz);\n mat4 xform = matFromRTS(quaternionFromEuler(a_texCoord2), pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n#endif\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }", + "frag": "\nprecision highp float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nuniform FragConstants {\n vec4 tintColor;\n};\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * texture(mainTexture, uv);\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = add(); }" + }, + "glsl1": { + "vert": "\nprecision highp float;\nvec4 quaternionFromAxis(vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler(vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT(vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS(vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply(vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat(inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace(vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n float z = pos.z;\n float x = pos.x;\n float y = pos.y;\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nvoid rotateCorner(inout vec2 corner, float angle){\n float xOS = cos(angle) * corner.x - sin(angle) * corner.y;\n float yOS = sin(angle) * corner.x + cos(angle) * corner.y;\n corner.x = xOS;\n corner.y = yOS;\n}\nuniform vec4 mainTiling_Offset;\nuniform vec4 frameTile_velLenScale;\nuniform vec4 scale;\nuniform mat4 cc_matView;\nuniform mat4 cc_matViewInv;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nvoid computeVertPos(inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , mat4 viewInv\n#endif\n#if CC_USE_STRETCHED_BILLBOARD\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_USE_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_USE_STRETCHED_BILLBOARD\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_USE_HORIZONTAL_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_USE_VERTICAL_BILLBOARD\n vec2 viewSpaceVert = vec2(vertOffset.x * s.x, vertOffset.y * s.y);\n rotateCorner(viewSpaceVert, q.z);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV(float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if !CC_USE_MESH\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nattribute vec3 a_position;\nattribute vec3 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_USE_STRETCHED_BILLBOARD\n attribute vec3 a_color1;\n#endif\n#if CC_USE_MESH\n attribute vec3 a_texCoord3;\n attribute vec3 a_normal;\n attribute vec4 a_color1;\n#endif\nvec4 lpvs_main() {\n vec3 compScale = scale.xyz * a_texCoord1;\n vec4 pos = vec4(a_position, 1);\n#if CC_USE_STRETCHED_BILLBOARD\n vec4 velocity = vec4(a_color1.xyz, 0);\n#endif\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_USE_STRETCHED_BILLBOARD\n velocity = cc_matWorld * velocity;\n #endif\n#endif\n#if !CC_USE_MESH\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_USE_BILLBOARD\n vec3 rotEuler = a_texCoord2;\n #elif CC_USE_STRETCHED_BILLBOARD\n vec3 rotEuler = vec3(0.);\n #else\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n computeVertPos(pos, cornerOffset, quaternionFromEuler(rotEuler), compScale\n #if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , cc_matViewInv\n #endif\n #if CC_USE_STRETCHED_BILLBOARD\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n , a_texCoord.x\n #endif\n );\n color = a_color;\n#else\n mat4 xformNoScale = matrixFromRT(quaternionFromEuler(a_texCoord2), pos.xyz);\n mat4 xform = matFromRTS(quaternionFromEuler(a_texCoord2), pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n#endif\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }", + "frag": "\nprecision highp float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\nuniform vec4 tintColor;\nvec4 add () {\n vec4 col = 2.0 * color * tintColor * texture2D(mainTexture, uv);\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = add(); }" + }, + "builtins": { + "globals": { + "blocks": [ + { + "name": "CCGlobal", + "defines": [] + } + ], + "samplers": [] + }, + "locals": { + "blocks": [ + { + "name": "CCLocal", + "defines": [] + } + ], + "samplers": [] + } + }, + "defines": [ + { + "name": "CC_USE_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_STRETCHED_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_HORIZONTAL_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_VERTICAL_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_MESH", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_WORLD_SPACE", + "type": "boolean", + "defines": [] + }, + { + "name": "OUTPUT_TO_GAMMA", + "type": "boolean", + "defines": [] + } + ], + "blocks": [ + { + "name": "Constants", + "members": [ + { + "name": "mainTiling_Offset", + "type": 16, + "count": 1 + }, + { + "name": "frameTile_velLenScale", + "type": 16, + "count": 1 + }, + { + "name": "scale", + "type": 16, + "count": 1 + } + ], + "defines": [], + "binding": 0 + }, + { + "name": "FragConstants", + "members": [ + { + "name": "tintColor", + "type": 16, + "count": 1 + } + ], + "defines": [], + "binding": 1 + } + ], + "samplers": [ + { + "name": "mainTexture", + "type": 29, + "count": 1, + "defines": [], + "binding": 30 + } + ], + "record": null, + "name": "builtin-3d-particle|particle-vs-legacy:lpvs_main|tinted-fs:add" + }, + { + "hash": 1933642753, + "glsl3": { + "vert": "\nprecision highp float;\nvec4 quaternionFromAxis(vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler(vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT(vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS(vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply(vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat(inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace(vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n float z = pos.z;\n float x = pos.x;\n float y = pos.y;\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nvoid rotateCorner(inout vec2 corner, float angle){\n float xOS = cos(angle) * corner.x - sin(angle) * corner.y;\n float yOS = sin(angle) * corner.x + cos(angle) * corner.y;\n corner.x = xOS;\n corner.y = yOS;\n}\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nvoid computeVertPos(inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , mat4 viewInv\n#endif\n#if CC_USE_STRETCHED_BILLBOARD\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_USE_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_USE_STRETCHED_BILLBOARD\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_USE_HORIZONTAL_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_USE_VERTICAL_BILLBOARD\n vec2 viewSpaceVert = vec2(vertOffset.x * s.x, vertOffset.y * s.y);\n rotateCorner(viewSpaceVert, q.z);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV(float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if !CC_USE_MESH\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nin vec3 a_position;\nin vec3 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_USE_STRETCHED_BILLBOARD\n in vec3 a_color1;\n#endif\n#if CC_USE_MESH\n in vec3 a_texCoord3;\n in vec3 a_normal;\n in vec4 a_color1;\n#endif\nvec4 lpvs_main() {\n vec3 compScale = scale.xyz * a_texCoord1;\n vec4 pos = vec4(a_position, 1);\n#if CC_USE_STRETCHED_BILLBOARD\n vec4 velocity = vec4(a_color1.xyz, 0);\n#endif\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_USE_STRETCHED_BILLBOARD\n velocity = cc_matWorld * velocity;\n #endif\n#endif\n#if !CC_USE_MESH\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_USE_BILLBOARD\n vec3 rotEuler = a_texCoord2;\n #elif CC_USE_STRETCHED_BILLBOARD\n vec3 rotEuler = vec3(0.);\n #else\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n computeVertPos(pos, cornerOffset, quaternionFromEuler(rotEuler), compScale\n #if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , cc_matViewInv\n #endif\n #if CC_USE_STRETCHED_BILLBOARD\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n , a_texCoord.x\n #endif\n );\n color = a_color;\n#else\n mat4 xformNoScale = matrixFromRT(quaternionFromEuler(a_texCoord2), pos.xyz);\n mat4 xform = matFromRTS(quaternionFromEuler(a_texCoord2), pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n#endif\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }", + "frag": "\nprecision highp float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nuniform FragConstants {\n vec4 tintColor;\n};\nvec4 multiply () {\n vec4 col;\n vec4 texColor = texture(mainTexture, uv);\n col.rgb = tintColor.rgb * texColor.rgb * color.rgb * vec3(2.0);\n col.a = (1.0 - texColor.a) * (tintColor.a * color.a * 2.0);\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = multiply(); }" + }, + "glsl1": { + "vert": "\nprecision highp float;\nvec4 quaternionFromAxis(vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler(vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT(vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS(vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply(vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat(inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace(vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n float z = pos.z;\n float x = pos.x;\n float y = pos.y;\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nvoid rotateCorner(inout vec2 corner, float angle){\n float xOS = cos(angle) * corner.x - sin(angle) * corner.y;\n float yOS = sin(angle) * corner.x + cos(angle) * corner.y;\n corner.x = xOS;\n corner.y = yOS;\n}\nuniform vec4 mainTiling_Offset;\nuniform vec4 frameTile_velLenScale;\nuniform vec4 scale;\nuniform mat4 cc_matView;\nuniform mat4 cc_matViewInv;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nvoid computeVertPos(inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , mat4 viewInv\n#endif\n#if CC_USE_STRETCHED_BILLBOARD\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_USE_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_USE_STRETCHED_BILLBOARD\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_USE_HORIZONTAL_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_USE_VERTICAL_BILLBOARD\n vec2 viewSpaceVert = vec2(vertOffset.x * s.x, vertOffset.y * s.y);\n rotateCorner(viewSpaceVert, q.z);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV(float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if !CC_USE_MESH\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nattribute vec3 a_position;\nattribute vec3 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_USE_STRETCHED_BILLBOARD\n attribute vec3 a_color1;\n#endif\n#if CC_USE_MESH\n attribute vec3 a_texCoord3;\n attribute vec3 a_normal;\n attribute vec4 a_color1;\n#endif\nvec4 lpvs_main() {\n vec3 compScale = scale.xyz * a_texCoord1;\n vec4 pos = vec4(a_position, 1);\n#if CC_USE_STRETCHED_BILLBOARD\n vec4 velocity = vec4(a_color1.xyz, 0);\n#endif\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_USE_STRETCHED_BILLBOARD\n velocity = cc_matWorld * velocity;\n #endif\n#endif\n#if !CC_USE_MESH\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_USE_BILLBOARD\n vec3 rotEuler = a_texCoord2;\n #elif CC_USE_STRETCHED_BILLBOARD\n vec3 rotEuler = vec3(0.);\n #else\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n computeVertPos(pos, cornerOffset, quaternionFromEuler(rotEuler), compScale\n #if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , cc_matViewInv\n #endif\n #if CC_USE_STRETCHED_BILLBOARD\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n , a_texCoord.x\n #endif\n );\n color = a_color;\n#else\n mat4 xformNoScale = matrixFromRT(quaternionFromEuler(a_texCoord2), pos.xyz);\n mat4 xform = matFromRTS(quaternionFromEuler(a_texCoord2), pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n#endif\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }", + "frag": "\nprecision highp float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\nuniform vec4 tintColor;\nvec4 multiply () {\n vec4 col;\n vec4 texColor = texture2D(mainTexture, uv);\n col.rgb = tintColor.rgb * texColor.rgb * color.rgb * vec3(2.0);\n col.a = (1.0 - texColor.a) * (tintColor.a * color.a * 2.0);\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = multiply(); }" + }, + "builtins": { + "globals": { + "blocks": [ + { + "name": "CCGlobal", + "defines": [] + } + ], + "samplers": [] + }, + "locals": { + "blocks": [ + { + "name": "CCLocal", + "defines": [] + } + ], + "samplers": [] + } + }, + "defines": [ + { + "name": "CC_USE_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_STRETCHED_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_HORIZONTAL_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_VERTICAL_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_MESH", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_WORLD_SPACE", + "type": "boolean", + "defines": [] + }, + { + "name": "OUTPUT_TO_GAMMA", + "type": "boolean", + "defines": [] + } + ], + "blocks": [ + { + "name": "Constants", + "members": [ + { + "name": "mainTiling_Offset", + "type": 16, + "count": 1 + }, + { + "name": "frameTile_velLenScale", + "type": 16, + "count": 1 + }, + { + "name": "scale", + "type": 16, + "count": 1 + } + ], + "defines": [], + "binding": 0 + }, + { + "name": "FragConstants", + "members": [ + { + "name": "tintColor", + "type": 16, + "count": 1 + } + ], + "defines": [], + "binding": 1 + } + ], + "samplers": [ + { + "name": "mainTexture", + "type": 29, + "count": 1, + "defines": [], + "binding": 30 + } + ], + "record": null, + "name": "builtin-3d-particle|particle-vs-legacy:lpvs_main|tinted-fs:multiply" + }, + { + "hash": 1851787849, + "glsl3": { + "vert": "\nprecision highp float;\nvec4 quaternionFromAxis(vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler(vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT(vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS(vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply(vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat(inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace(vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n float z = pos.z;\n float x = pos.x;\n float y = pos.y;\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nvoid rotateCorner(inout vec2 corner, float angle){\n float xOS = cos(angle) * corner.x - sin(angle) * corner.y;\n float yOS = sin(angle) * corner.x + cos(angle) * corner.y;\n corner.x = xOS;\n corner.y = yOS;\n}\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nvoid computeVertPos(inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , mat4 viewInv\n#endif\n#if CC_USE_STRETCHED_BILLBOARD\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_USE_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_USE_STRETCHED_BILLBOARD\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_USE_HORIZONTAL_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_USE_VERTICAL_BILLBOARD\n vec2 viewSpaceVert = vec2(vertOffset.x * s.x, vertOffset.y * s.y);\n rotateCorner(viewSpaceVert, q.z);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV(float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if !CC_USE_MESH\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nin vec3 a_position;\nin vec3 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_USE_STRETCHED_BILLBOARD\n in vec3 a_color1;\n#endif\n#if CC_USE_MESH\n in vec3 a_texCoord3;\n in vec3 a_normal;\n in vec4 a_color1;\n#endif\nvec4 lpvs_main() {\n vec3 compScale = scale.xyz * a_texCoord1;\n vec4 pos = vec4(a_position, 1);\n#if CC_USE_STRETCHED_BILLBOARD\n vec4 velocity = vec4(a_color1.xyz, 0);\n#endif\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_USE_STRETCHED_BILLBOARD\n velocity = cc_matWorld * velocity;\n #endif\n#endif\n#if !CC_USE_MESH\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_USE_BILLBOARD\n vec3 rotEuler = a_texCoord2;\n #elif CC_USE_STRETCHED_BILLBOARD\n vec3 rotEuler = vec3(0.);\n #else\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n computeVertPos(pos, cornerOffset, quaternionFromEuler(rotEuler), compScale\n #if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , cc_matViewInv\n #endif\n #if CC_USE_STRETCHED_BILLBOARD\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n , a_texCoord.x\n #endif\n );\n color = a_color;\n#else\n mat4 xformNoScale = matrixFromRT(quaternionFromEuler(a_texCoord2), pos.xyz);\n mat4 xform = matFromRTS(quaternionFromEuler(a_texCoord2), pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n#endif\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }", + "frag": "\nprecision highp float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nvec4 addSmooth () {\n vec4 col = color * texture(mainTexture, uv);\n col.rgb *= col.a;\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = addSmooth(); }" + }, + "glsl1": { + "vert": "\nprecision highp float;\nvec4 quaternionFromAxis(vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler(vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT(vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS(vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply(vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat(inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace(vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n float z = pos.z;\n float x = pos.x;\n float y = pos.y;\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nvoid rotateCorner(inout vec2 corner, float angle){\n float xOS = cos(angle) * corner.x - sin(angle) * corner.y;\n float yOS = sin(angle) * corner.x + cos(angle) * corner.y;\n corner.x = xOS;\n corner.y = yOS;\n}\nuniform vec4 mainTiling_Offset;\nuniform vec4 frameTile_velLenScale;\nuniform vec4 scale;\nuniform mat4 cc_matView;\nuniform mat4 cc_matViewInv;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nvoid computeVertPos(inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , mat4 viewInv\n#endif\n#if CC_USE_STRETCHED_BILLBOARD\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_USE_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_USE_STRETCHED_BILLBOARD\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_USE_HORIZONTAL_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_USE_VERTICAL_BILLBOARD\n vec2 viewSpaceVert = vec2(vertOffset.x * s.x, vertOffset.y * s.y);\n rotateCorner(viewSpaceVert, q.z);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV(float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if !CC_USE_MESH\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nattribute vec3 a_position;\nattribute vec3 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_USE_STRETCHED_BILLBOARD\n attribute vec3 a_color1;\n#endif\n#if CC_USE_MESH\n attribute vec3 a_texCoord3;\n attribute vec3 a_normal;\n attribute vec4 a_color1;\n#endif\nvec4 lpvs_main() {\n vec3 compScale = scale.xyz * a_texCoord1;\n vec4 pos = vec4(a_position, 1);\n#if CC_USE_STRETCHED_BILLBOARD\n vec4 velocity = vec4(a_color1.xyz, 0);\n#endif\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_USE_STRETCHED_BILLBOARD\n velocity = cc_matWorld * velocity;\n #endif\n#endif\n#if !CC_USE_MESH\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_USE_BILLBOARD\n vec3 rotEuler = a_texCoord2;\n #elif CC_USE_STRETCHED_BILLBOARD\n vec3 rotEuler = vec3(0.);\n #else\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n computeVertPos(pos, cornerOffset, quaternionFromEuler(rotEuler), compScale\n #if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , cc_matViewInv\n #endif\n #if CC_USE_STRETCHED_BILLBOARD\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n , a_texCoord.x\n #endif\n );\n color = a_color;\n#else\n mat4 xformNoScale = matrixFromRT(quaternionFromEuler(a_texCoord2), pos.xyz);\n mat4 xform = matFromRTS(quaternionFromEuler(a_texCoord2), pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n#endif\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }", + "frag": "\nprecision highp float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\nvec4 addSmooth () {\n vec4 col = color * texture2D(mainTexture, uv);\n col.rgb *= col.a;\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = addSmooth(); }" + }, + "builtins": { + "globals": { + "blocks": [ + { + "name": "CCGlobal", + "defines": [] + } + ], + "samplers": [] + }, + "locals": { + "blocks": [ + { + "name": "CCLocal", + "defines": [] + } + ], + "samplers": [] + } + }, + "defines": [ + { + "name": "CC_USE_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_STRETCHED_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_HORIZONTAL_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_VERTICAL_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_MESH", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_WORLD_SPACE", + "type": "boolean", + "defines": [] + }, + { + "name": "OUTPUT_TO_GAMMA", + "type": "boolean", + "defines": [] + } + ], + "blocks": [ + { + "name": "Constants", + "members": [ + { + "name": "mainTiling_Offset", + "type": 16, + "count": 1 + }, + { + "name": "frameTile_velLenScale", + "type": 16, + "count": 1 + }, + { + "name": "scale", + "type": 16, + "count": 1 + } + ], + "defines": [], + "binding": 0 + } + ], + "samplers": [ + { + "name": "mainTexture", + "type": 29, + "count": 1, + "defines": [], + "binding": 30 + } + ], + "record": null, + "name": "builtin-3d-particle|particle-vs-legacy:lpvs_main|no-tint-fs:addSmooth" + }, + { + "hash": 145387972, + "glsl3": { + "vert": "\nprecision highp float;\nvec4 quaternionFromAxis(vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler(vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT(vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS(vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply(vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat(inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace(vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n float z = pos.z;\n float x = pos.x;\n float y = pos.y;\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nvoid rotateCorner(inout vec2 corner, float angle){\n float xOS = cos(angle) * corner.x - sin(angle) * corner.y;\n float yOS = sin(angle) * corner.x + cos(angle) * corner.y;\n corner.x = xOS;\n corner.y = yOS;\n}\nuniform Constants{\n vec4 mainTiling_Offset;\n vec4 frameTile_velLenScale;\n vec4 scale;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nout vec2 uv;\nout vec4 color;\nvoid computeVertPos(inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , mat4 viewInv\n#endif\n#if CC_USE_STRETCHED_BILLBOARD\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_USE_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_USE_STRETCHED_BILLBOARD\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_USE_HORIZONTAL_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_USE_VERTICAL_BILLBOARD\n vec2 viewSpaceVert = vec2(vertOffset.x * s.x, vertOffset.y * s.y);\n rotateCorner(viewSpaceVert, q.z);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV(float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if !CC_USE_MESH\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nin vec3 a_position;\nin vec3 a_texCoord;\nin vec3 a_texCoord1;\nin vec3 a_texCoord2;\nin vec4 a_color;\n#if CC_USE_STRETCHED_BILLBOARD\n in vec3 a_color1;\n#endif\n#if CC_USE_MESH\n in vec3 a_texCoord3;\n in vec3 a_normal;\n in vec4 a_color1;\n#endif\nvec4 lpvs_main() {\n vec3 compScale = scale.xyz * a_texCoord1;\n vec4 pos = vec4(a_position, 1);\n#if CC_USE_STRETCHED_BILLBOARD\n vec4 velocity = vec4(a_color1.xyz, 0);\n#endif\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_USE_STRETCHED_BILLBOARD\n velocity = cc_matWorld * velocity;\n #endif\n#endif\n#if !CC_USE_MESH\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_USE_BILLBOARD\n vec3 rotEuler = a_texCoord2;\n #elif CC_USE_STRETCHED_BILLBOARD\n vec3 rotEuler = vec3(0.);\n #else\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n computeVertPos(pos, cornerOffset, quaternionFromEuler(rotEuler), compScale\n #if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , cc_matViewInv\n #endif\n #if CC_USE_STRETCHED_BILLBOARD\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n , a_texCoord.x\n #endif\n );\n color = a_color;\n#else\n mat4 xformNoScale = matrixFromRT(quaternionFromEuler(a_texCoord2), pos.xyz);\n mat4 xform = matFromRTS(quaternionFromEuler(a_texCoord2), pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n#endif\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }", + "frag": "\nprecision highp float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec2 uv;\nin vec4 color;\nuniform sampler2D mainTexture;\nvec4 premultiplied () {\n vec4 col = color * texture(mainTexture, uv) * color.a;\n return CCFragOutput(col);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = premultiplied(); }" + }, + "glsl1": { + "vert": "\nprecision highp float;\nvec4 quaternionFromAxis(vec3 xAxis,vec3 yAxis,vec3 zAxis){\n mat3 m = mat3(xAxis,yAxis,zAxis);\n float trace = m[0][0] + m[1][1] + m[2][2];\n vec4 quat;\n if (trace > 0.) {\n float s = 0.5 / sqrt(trace + 1.0);\n quat.w = 0.25 / s;\n quat.x = (m[2][1] - m[1][2]) * s;\n quat.y = (m[0][2] - m[2][0]) * s;\n quat.z = (m[1][0] - m[0][1]) * s;\n } else if ((m[0][0] > m[1][1]) && (m[0][0] > m[2][2])) {\n float s = 2.0 * sqrt(1.0 + m[0][0] - m[1][1] - m[2][2]);\n quat.w = (m[2][1] - m[1][2]) / s;\n quat.x = 0.25 * s;\n quat.y = (m[0][1] + m[1][0]) / s;\n quat.z = (m[0][2] + m[2][0]) / s;\n } else if (m[1][1] > m[2][2]) {\n float s = 2.0 * sqrt(1.0 + m[1][1] - m[0][0] - m[2][2]);\n quat.w = (m[0][2] - m[2][0]) / s;\n quat.x = (m[0][1] + m[1][0]) / s;\n quat.y = 0.25 * s;\n quat.z = (m[1][2] + m[2][1]) / s;\n } else {\n float s = 2.0 * sqrt(1.0 + m[2][2] - m[0][0] - m[1][1]);\n quat.w = (m[1][0] - m[0][1]) / s;\n quat.x = (m[0][2] + m[2][0]) / s;\n quat.y = (m[1][2] + m[2][1]) / s;\n quat.z = 0.25 * s;\n }\n float len = quat.x * quat.x + quat.y * quat.y + quat.z * quat.z + quat.w * quat.w;\n if (len > 0.) {\n len = 1. / sqrt(len);\n quat.x = quat.x * len;\n quat.y = quat.y * len;\n quat.z = quat.z * len;\n quat.w = quat.w * len;\n }\n return quat;\n}\nvec4 quaternionFromEuler(vec3 angle){\n float x = angle.x / 2.;\n float y = angle.y / 2.;\n float z = angle.z / 2.;\n float sx = sin(x);\n float cx = cos(x);\n float sy = sin(y);\n float cy = cos(y);\n float sz = sin(z);\n float cz = cos(z);\n vec4 quat = vec4(0);\n quat.x = sx * cy * cz + cx * sy * sz;\n quat.y = cx * sy * cz + sx * cy * sz;\n quat.z = cx * cy * sz - sx * sy * cz;\n quat.w = cx * cy * cz - sx * sy * sz;\n return quat;\n}\nmat4 matrixFromRT(vec4 q, vec3 p){\n float x2 = q.x + q.x;\n float y2 = q.y + q.y;\n float z2 = q.z + q.z;\n float xx = q.x * x2;\n float xy = q.x * y2;\n float xz = q.x * z2;\n float yy = q.y * y2;\n float yz = q.y * z2;\n float zz = q.z * z2;\n float wx = q.w * x2;\n float wy = q.w * y2;\n float wz = q.w * z2;\n return mat4(\n 1. - (yy + zz), xy + wz, xz - wy, 0,\n xy - wz, 1. - (xx + zz), yz + wx, 0,\n xz + wy, yz - wx, 1. - (xx + yy), 0,\n p.x, p.y, p.z, 1\n );\n}\nmat4 matFromRTS(vec4 q, vec3 t, vec3 s){\n float x = q.x, y = q.y, z = q.z, w = q.w;\n float x2 = x + x;\n float y2 = y + y;\n float z2 = z + z;\n float xx = x * x2;\n float xy = x * y2;\n float xz = x * z2;\n float yy = y * y2;\n float yz = y * z2;\n float zz = z * z2;\n float wx = w * x2;\n float wy = w * y2;\n float wz = w * z2;\n float sx = s.x;\n float sy = s.y;\n float sz = s.z;\n return mat4((1. - (yy + zz)) * sx, (xy + wz) * sx, (xz - wy) * sx, 0,\n (xy - wz) * sy, (1. - (xx + zz)) * sy, (yz + wx) * sy, 0,\n (xz + wy) * sz, (yz - wx) * sz, (1. - (xx + yy)) * sz, 0,\n t.x, t.y, t.z, 1);\n}\nvec4 quatMultiply(vec4 a, vec4 b){\n vec4 quat;\n quat.x = a.x * b.w + a.w * b.x + a.y * b.z - a.z * b.y;\n quat.y = a.y * b.w + a.w * b.y + a.z * b.x - a.x * b.z;\n quat.z = a.z * b.w + a.w * b.z + a.x * b.y - a.y * b.x;\n quat.w = a.w * b.w - a.x * b.x - a.y * b.y - a.z * b.z;\n return quat;\n}\nvoid rotateVecFromQuat(inout vec3 v, vec4 q){\n float ix = q.w * v.x + q.y * v.z - q.z * v.y;\n float iy = q.w * v.y + q.z * v.x - q.x * v.z;\n float iz = q.w * v.z + q.x * v.y - q.y * v.x;\n float iw = -q.x * v.x - q.y * v.y - q.z * v.z;\n v.x = ix * q.w + iw * -q.x + iy * -q.z - iz * -q.y;\n v.y = iy * q.w + iw * -q.y + iz * -q.x - ix * -q.z;\n v.z = iz * q.w + iw * -q.z + ix * -q.y - iy * -q.x;\n}\nvec3 rotateInLocalSpace(vec3 pos, vec3 xAxis, vec3 yAxis, vec3 zAxis, vec4 q){\n float z = pos.z;\n float x = pos.x;\n float y = pos.y;\n vec4 viewQuat = quaternionFromAxis(xAxis, yAxis, zAxis);\n vec4 rotQuat = quatMultiply(viewQuat, q);\n rotateVecFromQuat(pos, rotQuat);\n return pos;\n}\nvoid rotateCorner(inout vec2 corner, float angle){\n float xOS = cos(angle) * corner.x - sin(angle) * corner.y;\n float yOS = sin(angle) * corner.x + cos(angle) * corner.y;\n corner.x = xOS;\n corner.y = yOS;\n}\nuniform vec4 mainTiling_Offset;\nuniform vec4 frameTile_velLenScale;\nuniform vec4 scale;\nuniform mat4 cc_matView;\nuniform mat4 cc_matViewInv;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nvarying vec2 uv;\nvarying vec4 color;\nvoid computeVertPos(inout vec4 pos, vec2 vertOffset, vec4 q, vec3 s\n#if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , mat4 viewInv\n#endif\n#if CC_USE_STRETCHED_BILLBOARD\n , vec3 eye\n , vec4 velocity\n , float velocityScale\n , float lengthScale\n , float xIndex\n#endif\n) {\n#if CC_USE_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = normalize(vec3(viewInv[0][0], viewInv[1][0], viewInv[2][0]));\n vec3 camY = normalize(vec3(viewInv[0][1], viewInv[1][1], viewInv[2][1]));\n vec3 camZ = normalize(vec3(viewInv[0][2], viewInv[1][2], viewInv[2][2]));\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, camZ, q);\n#elif CC_USE_STRETCHED_BILLBOARD\n vec3 camRight = normalize(cross(pos.xyz - eye, velocity.xyz)) * s.x;\n vec3 camUp = velocity.xyz * velocityScale + normalize(velocity.xyz) * lengthScale * s.y;\n pos.xyz += (camRight * abs(vertOffset.x) * sign(vertOffset.y)) - camUp * xIndex;\n#elif CC_USE_HORIZONTAL_BILLBOARD\n vec3 viewSpaceVert = vec3(vertOffset.x * s.x, vertOffset.y * s.y, 0.);\n vec3 camX = vec3(1, 0, 0);\n vec3 camY = vec3(0, 0, -1);\n pos.xyz += rotateInLocalSpace(viewSpaceVert, camX, camY, cross(camX, camY), q);\n#elif CC_USE_VERTICAL_BILLBOARD\n vec2 viewSpaceVert = vec2(vertOffset.x * s.x, vertOffset.y * s.y);\n rotateCorner(viewSpaceVert, q.z);\n vec3 camX = normalize(vec3(cc_matView[0][0], cc_matView[1][0], cc_matView[2][0]));\n vec3 camY = vec3(0, 1, 0);\n vec3 offset = camX * viewSpaceVert.x + camY * viewSpaceVert.y;\n pos.xyz += offset;\n#else\n pos.x += vertOffset.x;\n pos.y += vertOffset.y;\n#endif\n}\nvec2 computeUV(float frameIndex, vec2 vertIndex, vec2 frameTile){\n vec2 aniUV = vec2(0, floor(frameIndex * frameTile.y));\n aniUV.x = floor(frameIndex * frameTile.x * frameTile.y - aniUV.y * frameTile.x);\n#if !CC_USE_MESH\n vertIndex.y = 1. - vertIndex.y;\n#endif\n return (aniUV.xy + vertIndex) / vec2(frameTile.x, frameTile.y);\n}\nattribute vec3 a_position;\nattribute vec3 a_texCoord;\nattribute vec3 a_texCoord1;\nattribute vec3 a_texCoord2;\nattribute vec4 a_color;\n#if CC_USE_STRETCHED_BILLBOARD\n attribute vec3 a_color1;\n#endif\n#if CC_USE_MESH\n attribute vec3 a_texCoord3;\n attribute vec3 a_normal;\n attribute vec4 a_color1;\n#endif\nvec4 lpvs_main() {\n vec3 compScale = scale.xyz * a_texCoord1;\n vec4 pos = vec4(a_position, 1);\n#if CC_USE_STRETCHED_BILLBOARD\n vec4 velocity = vec4(a_color1.xyz, 0);\n#endif\n#if !CC_USE_WORLD_SPACE\n pos = cc_matWorld * pos;\n #if CC_USE_STRETCHED_BILLBOARD\n velocity = cc_matWorld * velocity;\n #endif\n#endif\n#if !CC_USE_MESH\n vec2 cornerOffset = vec2((a_texCoord.xy - 0.5));\n #if CC_USE_BILLBOARD\n vec3 rotEuler = a_texCoord2;\n #elif CC_USE_STRETCHED_BILLBOARD\n vec3 rotEuler = vec3(0.);\n #else\n vec3 rotEuler = vec3(0., 0., a_texCoord2.z);\n #endif\n computeVertPos(pos, cornerOffset, quaternionFromEuler(rotEuler), compScale\n #if CC_USE_BILLBOARD || CC_USE_VERTICAL_BILLBOARD\n , cc_matViewInv\n #endif\n #if CC_USE_STRETCHED_BILLBOARD\n , cc_cameraPos.xyz\n , velocity\n , frameTile_velLenScale.z\n , frameTile_velLenScale.w\n , a_texCoord.x\n #endif\n );\n color = a_color;\n#else\n mat4 xformNoScale = matrixFromRT(quaternionFromEuler(a_texCoord2), pos.xyz);\n mat4 xform = matFromRTS(quaternionFromEuler(a_texCoord2), pos.xyz, compScale);\n pos = xform * vec4(a_texCoord3, 1);\n vec4 normal = xformNoScale * vec4(a_normal, 0);\n color = a_color * a_color1;\n#endif\n uv = computeUV(a_texCoord.z, a_texCoord.xy, frameTile_velLenScale.xy) * mainTiling_Offset.xy + mainTiling_Offset.zw;\n pos = cc_matViewProj * pos;\n return pos;\n}\nvoid main() { gl_Position = lpvs_main(); }", + "frag": "\nprecision highp float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec2 uv;\nvarying vec4 color;\nuniform sampler2D mainTexture;\nvec4 premultiplied () {\n vec4 col = color * texture2D(mainTexture, uv) * color.a;\n return CCFragOutput(col);\n}\nvoid main() { gl_FragColor = premultiplied(); }" + }, + "builtins": { + "globals": { + "blocks": [ + { + "name": "CCGlobal", + "defines": [] + } + ], + "samplers": [] + }, + "locals": { + "blocks": [ + { + "name": "CCLocal", + "defines": [] + } + ], + "samplers": [] + } + }, + "defines": [ + { + "name": "CC_USE_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_STRETCHED_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_HORIZONTAL_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_VERTICAL_BILLBOARD", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_MESH", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_WORLD_SPACE", + "type": "boolean", + "defines": [] + }, + { + "name": "OUTPUT_TO_GAMMA", + "type": "boolean", + "defines": [] + } + ], + "blocks": [ + { + "name": "Constants", + "members": [ + { + "name": "mainTiling_Offset", + "type": 16, + "count": 1 + }, + { + "name": "frameTile_velLenScale", + "type": 16, + "count": 1 + }, + { + "name": "scale", + "type": 16, + "count": 1 + } + ], + "defines": [], + "binding": 0 + } + ], + "samplers": [ + { + "name": "mainTexture", + "type": 29, + "count": 1, + "defines": [], + "binding": 30 + } + ], + "record": null, + "name": "builtin-3d-particle|particle-vs-legacy:lpvs_main|no-tint-fs:premultiplied" + } + ] +} \ No newline at end of file diff --git a/library/imports/83/83f5eff8-3385-4f95-9b76-8da0aa1d96cd.bin b/library/imports/83/83f5eff8-3385-4f95-9b76-8da0aa1d96cd.bin new file mode 100644 index 0000000000000000000000000000000000000000..fd7f98c331fd48d34f4f5003f6c8f52f35c0f858 GIT binary patch literal 49248 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 aV|*@0&ZFeB1vsBQA1r|5;0xeF_WuAlR?dz9 literal 0 HcmV?d00001 diff --git a/library/imports/83/83f5eff8-3385-4f95-9b76-8da0aa1d96cd.json b/library/imports/83/83f5eff8-3385-4f95-9b76-8da0aa1d96cd.json new file mode 100644 index 0000000..c7ff387 --- /dev/null +++ b/library/imports/83/83f5eff8-3385-4f95-9b76-8da0aa1d96cd.json @@ -0,0 +1,90 @@ +[ + { + "__type__": "cc.Mesh", + "_name": "", + "_objFlags": 0, + "_native": ".bin", + "_vertexBundles": [ + { + "__id__": 1 + } + ], + "_primitives": [ + { + "__id__": 6 + } + ], + "_minPos": { + "__type__": "cc.Vec3", + "x": -0.5, + "y": -1, + "z": -0.5 + }, + "_maxPos": { + "__type__": "cc.Vec3", + "x": 0.5, + "y": 1, + "z": 0.5 + } + }, + { + "__type__": "cc.mesh.VertexBundle", + "data": { + "__id__": 2 + }, + "formats": [ + { + "__id__": 3 + }, + { + "__id__": 4 + }, + { + "__id__": 5 + } + ], + "verticesCount": 1155 + }, + { + "__type__": "cc.BufferRange", + "offset": 0, + "length": 36960 + }, + { + "__type__": "cc.mesh.VertexFormat", + "name": "a_normal", + "type": 5126, + "num": 3, + "normalize": false + }, + { + "__type__": "cc.mesh.VertexFormat", + "name": "a_position", + "type": 5126, + "num": 3, + "normalize": false + }, + { + "__type__": "cc.mesh.VertexFormat", + "name": "a_uv0", + "type": 5126, + "num": 2, + "normalize": false + }, + { + "__type__": "cc.mesh.Primitive", + "vertexBundleIndices": [ + 0 + ], + "data": { + "__id__": 7 + }, + "indexUnit": 5123, + "topology": 4 + }, + { + "__type__": "cc.BufferRange", + "offset": 36960, + "length": 12288 + } +] \ No newline at end of file diff --git a/library/imports/84/8425f40b-c669-446a-ab0b-2daf892ef5c2.json b/library/imports/84/8425f40b-c669-446a-ab0b-2daf892ef5c2.json new file mode 100644 index 0000000..5ce356c --- /dev/null +++ b/library/imports/84/8425f40b-c669-446a-ab0b-2daf892ef5c2.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "xingxing01", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 774, + 1335, + 30, + 30 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 30, + 30 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/85/8521a571-ee5b-4fbf-9ad2-7b39af586606.json b/library/imports/85/8521a571-ee5b-4fbf-9ad2-7b39af586606.json new file mode 100644 index 0000000..ada685b --- /dev/null +++ b/library/imports/85/8521a571-ee5b-4fbf-9ad2-7b39af586606.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "texture5", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 761, + 1077, + 36, + 88 + ], + "offset": [ + -1, + 1 + ], + "originalSize": [ + 114, + 114 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/88/88e79fd5-96b4-4a77-a1f4-312467171014.json b/library/imports/88/88e79fd5-96b4-4a77-a1f4-312467171014.json new file mode 100644 index 0000000..f211a73 --- /dev/null +++ b/library/imports/88/88e79fd5-96b4-4a77-a1f4-312467171014.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "default_progressbar_bg", + "texture": "99170b0b-d210-46f1-b213-7d9e3f23098a", + "atlas": "", + "rect": [ + 0, + 0, + 60, + 15 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 60, + 15 + ], + "capInsets": [ + 10, + 4, + 10, + 4 + ] + } +} \ No newline at end of file diff --git a/library/imports/89/897ef7a1-4860-4f64-968d-f5924b18668a.json b/library/imports/89/897ef7a1-4860-4f64-968d-f5924b18668a.json new file mode 100644 index 0000000..9579ab7 --- /dev/null +++ b/library/imports/89/897ef7a1-4860-4f64-968d-f5924b18668a.json @@ -0,0 +1,123 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "2d-camera", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "2D Camera", + "_objFlags": 0, + "_parent": null, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 2 + } + ], + "_prefab": { + "__id__": 3 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 554.2562584220408, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_cullingMask": 4294967295, + "_clearFlags": 6, + "_backgroundColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": 0, + "_zoomRatio": 1, + "_targetTexture": null, + "_fov": 60, + "_orthoSize": 10, + "_nearClip": 0.1, + "_farClip": 4096, + "_ortho": true, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_renderStages": 1, + "_alignWithScreen": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "897ef7a1-4860-4f64-968d-f5924b18668a" + }, + "fileId": "abdJ5/jGlPzq+iDQghzEti", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/8a/8a024faa-e4af-4cae-9c5c-693bee7120c1.js b/library/imports/8a/8a024faa-e4af-4cae-9c5c-693bee7120c1.js new file mode 100644 index 0000000..b86ded8 --- /dev/null +++ b/library/imports/8a/8a024faa-e4af-4cae-9c5c-693bee7120c1.js @@ -0,0 +1,58 @@ +"use strict"; +cc._RF.push(module, '8a024+q5K9MrpxcaTvucSDB', 'DouyinEntranceView'); +// Script/Sdk/DouyinEntranceView.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DouyinEntranceView = void 0; +var MiniGameSdk_1 = require("./MiniGameSdk"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var DouyinEntranceView = /** @class */ (function (_super) { + __extends(DouyinEntranceView, _super); + function DouyinEntranceView() { + return _super !== null && _super.apply(this, arguments) || this; + } + DouyinEntranceView.prototype.start = function () { + }; + DouyinEntranceView.prototype.update = function (deltaTime) { + }; + DouyinEntranceView.prototype.onCloseClick = function () { + this.node.active = false; + }; + DouyinEntranceView.prototype.onNavigateToDouyinClick = function () { + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.navigateToSidebar(function (success) { + if (success) { + console.log('跳转成功'); + } + else { + console.log('跳转失败'); + } + }); + }; + DouyinEntranceView = __decorate([ + ccclass + ], DouyinEntranceView); + return DouyinEntranceView; +}(cc.Component)); +exports.DouyinEntranceView = DouyinEntranceView; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/8a/8a024faa-e4af-4cae-9c5c-693bee7120c1.js.map b/library/imports/8a/8a024faa-e4af-4cae-9c5c-693bee7120c1.js.map new file mode 100644 index 0000000..fff5f0d --- /dev/null +++ b/library/imports/8a/8a024faa-e4af-4cae-9c5c-693bee7120c1.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\Sdk\\DouyinEntranceView.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA4C;AACtC,IAAA,KAAwB,EAAE,CAAC,UAAU,EAAnC,OAAO,aAAA,EAAE,QAAQ,cAAkB,CAAC;AAI5C;IAAwC,sCAAY;IAApD;;IAuBA,CAAC;IAtBG,kCAAK,GAAL;IAEA,CAAC;IAED,mCAAM,GAAN,UAAO,SAAiB;IAExB,CAAC;IAED,yCAAY,GAAZ;QACI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,oDAAuB,GAAvB;QAEI,yBAAW,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,UAAC,OAAgB;YAC5D,IAAI,OAAO,EAAE;gBACT,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;aACvB;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;aACvB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAtBQ,kBAAkB;QAD9B,OAAO;OACK,kBAAkB,CAuB9B;IAAD,yBAAC;CAvBD,AAuBC,CAvBuC,EAAE,CAAC,SAAS,GAuBnD;AAvBY,gDAAkB","file":"","sourceRoot":"/","sourcesContent":["import { MiniGameSdk } from \"./MiniGameSdk\";\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n\r\n@ccclass\r\nexport class DouyinEntranceView extends cc.Component {\r\n start() {\r\n\r\n }\r\n\r\n update(deltaTime: number) {\r\n\r\n }\r\n\r\n onCloseClick() {\r\n this.node.active = false;\r\n }\r\n\r\n onNavigateToDouyinClick() {\r\n\r\n MiniGameSdk.BytedanceSidebar.navigateToSidebar((success: boolean) => { // 跳转到抖音侧边栏\r\n if (success) {\r\n console.log('跳转成功');\r\n } else {\r\n console.log('跳转失败');\r\n }\r\n });\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/8a/8a96b965-2dc0-4e03-aa90-3b79cb93b5b4.json b/library/imports/8a/8a96b965-2dc0-4e03-aa90-3b79cb93b5b4.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/8a/8a96b965-2dc0-4e03-aa90-3b79cb93b5b4.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/8a/8a96b965-2dc0-4e03-aa90-3b79cb93b5b4.png b/library/imports/8a/8a96b965-2dc0-4e03-aa90-3b79cb93b5b4.png new file mode 100644 index 0000000000000000000000000000000000000000..ff833c24e530d9b0008ed505b1cc9fa202a17988 GIT binary patch literal 1439 zcmeAS@N?(olHy`uVBq!ia0vp^@*vE?3?wxQo^b;ymUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fHRz`)oO;1lBdKR|N`qd?97 zfm;8AwLm1YM}oBeXPf??;QD{A&;L%B|EVVb!*x*K`k*i~Zne_zc1yT$*XSN*?|`+uT4ifoMj z|5;xD_r?A{ocMof!2e_i_?_qAy(nMp$!6kY6wZ6EiCd zBRd-xHxDNVAHSfGfUuY-uZXy$jI5M|w7jBJ8T^vI+&X)$Khu?M(xDq;ba>~mTPragp+j?@WT3DD@sw{D?YEs;5 zv3H`}r5{ftXMa*?sr|Lcyn1tLnrN!FKofs5%fdhE0&XnAE{01*{{3?mZPR$#vO??W zgb)0Db6Qr-%FEcLW}#kE&fBA5ZkiZTcB(Med4}4;oOHIQ47-A==1rfbdDSevt^*rF8xyml@+Ney{`ybF zQ|j!#9F16C21ow14sQFoo!ZRJ&WDv3A5QKqI#|qmcFAnsfZ*~)JMKux&$KYGto(4{ zio;d~-R9MM`2=3 zPu+h1ebwGS->&}WueZM=w7)IUzw(YvLbXckOjz{E54ZZ~@2~qmGd6mr_H(D@yC2>A z)%lJ+aO0kPa&sf+&Yd3<Gse%e#BZ~`YY`qKQ z-B40IwKhrrgE;FA_kS^Gl?#FCQ?2OC7#SE^=o*;m8d-)Inphc| sS{Ybs8(3Hw7^r?&9)qGGH$NpatrE9}khSs;fEpM)UHx3vIVCg!01uygbN~PV literal 0 HcmV?d00001 diff --git a/library/imports/8c/8c5001fd-07ee-4a4b-a8a0-63e15195e94d.json b/library/imports/8c/8c5001fd-07ee-4a4b-a8a0-63e15195e94d.json new file mode 100644 index 0000000..6236241 --- /dev/null +++ b/library/imports/8c/8c5001fd-07ee-4a4b-a8a0-63e15195e94d.json @@ -0,0 +1,100 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "webview", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 1, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "webview", + "_objFlags": 0, + "_parent": null, + "_children": [], + "_active": true, + "_level": 1, + "_components": [ + { + "__id__": 2 + } + ], + "_prefab": { + "__id__": 3 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 300, + "height": 200 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_skewX": 0, + "_skewY": 0, + "_localZOrder": 55, + "groupIndex": 0, + "_id": "", + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1 + ] + } + }, + { + "__type__": "cc.WebView", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_useOriginalSize": false, + "_url": "", + "webviewEvents": [], + "_id": "12QHFUfdhF+4w/zU5gB7ZI" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "8c5001fd-07ee-4a4b-a8a0-63e15195e94d" + }, + "fileId": "2fb356PwclC8L2CbHhqGUVr", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/8c/8cdb44ac-a3f6-449f-b354-7cd48cf84061.json b/library/imports/8c/8cdb44ac-a3f6-449f-b354-7cd48cf84061.json new file mode 100644 index 0000000..1a0da16 --- /dev/null +++ b/library/imports/8c/8cdb44ac-a3f6-449f-b354-7cd48cf84061.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "default_sprite", + "texture": "6e056173-d285-473c-b206-40a7fff5386e", + "atlas": "", + "rect": [ + 0, + 2, + 40, + 36 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 40, + 40 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/90/90004ad6-2f6d-40e1-93ef-b714375c6f06.json b/library/imports/90/90004ad6-2f6d-40e1-93ef-b714375c6f06.json new file mode 100644 index 0000000..398992c --- /dev/null +++ b/library/imports/90/90004ad6-2f6d-40e1-93ef-b714375c6f06.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "default_toggle_checkmark", + "texture": "73a0903d-d80e-4e3c-aa67-f999543c08f5", + "atlas": "", + "rect": [ + 4, + 5, + 20, + 18 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 28, + 28 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/90/907b33f0-998c-44e2-b2a3-697e56dc3ebb.json b/library/imports/90/907b33f0-998c-44e2-b2a3-697e56dc3ebb.json new file mode 100644 index 0000000..3c7a4ec --- /dev/null +++ b/library/imports/90/907b33f0-998c-44e2-b2a3-697e56dc3ebb.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "yes", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 605, + 685, + 74, + 60 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 74, + 60 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/95/954fec8b-cd16-4bb9-a3b7-7719660e7558.json b/library/imports/95/954fec8b-cd16-4bb9-a3b7-7719660e7558.json new file mode 100644 index 0000000..a8f65d3 --- /dev/null +++ b/library/imports/95/954fec8b-cd16-4bb9-a3b7-7719660e7558.json @@ -0,0 +1,215 @@ +{ + "__type__": "cc.Model", + "_name": "primitives", + "_objFlags": 0, + "_native": "", + "_nodes": [ + { + "name": "RootNode", + "scale": [ + 1, + 1, + 1 + ], + "children": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ], + "position": [ + 0, + 0, + 0 + ], + "quat": [ + 0, + 0, + 0, + 1 + ], + "path": "" + }, + { + "name": "capsule", + "scale": [ + 100, + 100, + 100 + ], + "mesh": 0, + "parent": null, + "position": [ + 0, + 0, + 0 + ], + "quat": [ + 8.14603353660459e-8, + 0, + 0, + 1 + ], + "path": "capsule" + }, + { + "name": "plane", + "scale": [ + 100, + 100, + 100 + ], + "mesh": 1, + "parent": null, + "position": [ + 0, + 0, + 0 + ], + "quat": [ + 8.14603353660459e-8, + 0, + 0, + 1 + ], + "path": "plane" + }, + { + "name": "cone", + "scale": [ + 100, + 100, + 100 + ], + "mesh": 2, + "parent": null, + "position": [ + 0, + 0, + 0 + ], + "quat": [ + -0.707106828689575, + 0, + 0, + 0.707106709480286 + ], + "path": "cone" + }, + { + "name": "torus", + "scale": [ + 100, + 100, + 100 + ], + "mesh": 3, + "parent": null, + "position": [ + 0, + 0, + 0 + ], + "quat": [ + 8.14603353660459e-8, + 0, + 0, + 1 + ], + "path": "torus" + }, + { + "name": "sphere", + "scale": [ + 100, + 100, + 100 + ], + "mesh": 4, + "parent": null, + "position": [ + 0, + 0, + 0 + ], + "quat": [ + 8.14603353660459e-8, + 0, + 0, + 1 + ], + "path": "sphere" + }, + { + "name": "quad", + "scale": [ + 100, + 100, + 100 + ], + "mesh": 5, + "parent": null, + "position": [ + 0, + 0, + 0 + ], + "quat": [ + 8.14603353660459e-8, + 0, + 0, + 1 + ], + "path": "quad" + }, + { + "name": "cylinder", + "scale": [ + 100, + 100, + 100 + ], + "mesh": 6, + "parent": null, + "position": [ + 0, + 0, + 0 + ], + "quat": [ + 8.14603353660459e-8, + 0, + 0, + 1 + ], + "path": "cylinder" + }, + { + "name": "box", + "scale": [ + 100, + 100, + 100 + ], + "mesh": 7, + "parent": null, + "position": [ + 0, + 0, + 0 + ], + "quat": [ + 8.14603353660459e-8, + 0, + 0, + 1 + ], + "path": "box" + } + ], + "_precomputeJointMatrix": false +} \ No newline at end of file diff --git a/library/imports/96/96083d03-c332-4a3f-9386-d03e2d19e8ee.json b/library/imports/96/96083d03-c332-4a3f-9386-d03e2d19e8ee.json new file mode 100644 index 0000000..18f8c2c --- /dev/null +++ b/library/imports/96/96083d03-c332-4a3f-9386-d03e2d19e8ee.json @@ -0,0 +1,112 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "sprite", + "_objFlags": 0, + "data": { + "__id__": 1 + }, + "optimizationPolicy": 1, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "Sprite", + "_objFlags": 0, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_cascadeOpacityEnabled": true, + "_parent": null, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 36 + }, + "_children": [], + "_skewX": 0, + "_skewY": 0, + "_localZOrder": 0, + "_globalZOrder": 0, + "_tag": -1, + "_opacityModifyRGB": false, + "_reorderChildDirty": false, + "_id": "", + "_active": true, + "_components": [ + { + "__id__": 2 + } + ], + "_prefab": { + "__id__": 3 + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1 + ] + } + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_spriteFrame": { + "__uuid__": "8cdb44ac-a3f6-449f-b354-7cd48cf84061" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_atlas": null + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": null, + "fileId": "d7118yAG5lKybkFOAh8koPL" + } +] \ No newline at end of file diff --git a/library/imports/97/972b9a4d-47ee-4c74-b5c3-61d8a69bc29f.json b/library/imports/97/972b9a4d-47ee-4c74-b5c3-61d8a69bc29f.json new file mode 100644 index 0000000..7f2be63 --- /dev/null +++ b/library/imports/97/972b9a4d-47ee-4c74-b5c3-61d8a69bc29f.json @@ -0,0 +1,421 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "button", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 1, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "button", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": true, + "_components": [ + { + "__id__": 9 + } + ], + "_prefab": { + "__id__": 10 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + } + ], + "_active": true, + "_components": [ + { + "__id__": 6 + }, + { + "__id__": 7 + } + ], + "_prefab": { + "__id__": 8 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Label", + "_objFlags": 512, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + } + ], + "_prefab": { + "__id__": 5 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_useOriginalSize": false, + "_string": "button", + "_N$string": "button", + "_fontSize": 20, + "_lineHeight": 40, + "_enableWrapText": false, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 1, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "972b9a4d-47ee-4c74-b5c3-61d8a69bc29f" + }, + "fileId": "89ZOGI9GxIA7ukuWhMzutw", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "alignMode": 0, + "_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": 100, + "_originalHeight": 40, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "972b9a4d-47ee-4c74-b5c3-61d8a69bc29f" + }, + "fileId": "abgf9KGgdMsahHlBHOj/Jv", + "sync": false + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 2, + "transition": 2, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 230, + "g": 230, + "b": 230, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 120, + "g": 120, + "b": 120, + "a": 200 + }, + "_N$normalSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "_N$hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$disabledSprite": { + "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" + }, + "_N$target": { + "__id__": 2 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "972b9a4d-47ee-4c74-b5c3-61d8a69bc29f" + }, + "fileId": "59d3ePxgxhP17q/bKZe2Mkj", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/99/99170b0b-d210-46f1-b213-7d9e3f23098a.json b/library/imports/99/99170b0b-d210-46f1-b213-7d9e3f23098a.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/99/99170b0b-d210-46f1-b213-7d9e3f23098a.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/99/99170b0b-d210-46f1-b213-7d9e3f23098a.png b/library/imports/99/99170b0b-d210-46f1-b213-7d9e3f23098a.png new file mode 100644 index 0000000000000000000000000000000000000000..72def9aa208b75398fcff45553f98bb56eb997b5 GIT binary patch literal 1177 zcmeAS@N?(olHy`uVBq!ia0vp^HbBhJ!3HFE2(2juQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsTnsm=!ZaB1$5BeXNr6bM+EIYV;~{3xK+T2HIB?BqnF4mMA2p zrf25aD!t#mUr8Y|#a1cY)Yrhbz&SM|)1#^=HMq(zB)KX(*)m1R-cG@$!U||WZfZ%Q zLPc&)Ua?h$trFN=Dz9|8 z>y;bpKhp88yV>WRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdm`z^NOLt1Pn0!io^naLp=kKmtYEgeeo;J&4sHjE(uCSxEHIz#UYgi zsro^w#rdU0$-sz9QwCX8VC7ttnpl!w6q28x0}I7~jQo=P;*9(P1!rdkjquF8l>G8y zO|WubUn|eN;*!L?uRhQ*`k;74if5P*F!6wx@Kg)rz|(zd9x$;N0aNvbFXg8g7#R6HT^vIy zZr!=Qk*~=>fbGGyk`2b^j<7#q^tn-^I6pv0{@@E{iL{x80vq-}^w~S@?rT+Xj>HF# z*L}J0dzt2xAolrN{g;30S$=-?`D;wOSFd`!O^4q#&|>XYC#4@B?J-MHt{qysH(2Utuj z>ki21Z9MelOvv2}-&sG;K3v?Hu*%@z;SHK|u9Q7vWu9j3v+Dazala>0&!(+7^k;3$ zTE&fXug|-`>>gL`)g|lhZ|ym7aGq#r^e4MB2btaUb51>+H}&!o*2_sU4Eqw#9eKf8 ua&GgM{UwYN&Raiqa?d{Vf7-cxMm7e^o*zry_&x-H3JXtHKbLh*2~7Y7Q=+&4 literal 0 HcmV?d00001 diff --git a/library/imports/9b/9bbda31e-ad49-43c9-aaf2-f7d9896bac69.json b/library/imports/9b/9bbda31e-ad49-43c9-aaf2-f7d9896bac69.json new file mode 100644 index 0000000..8a1a2e0 --- /dev/null +++ b/library/imports/9b/9bbda31e-ad49-43c9-aaf2-f7d9896bac69.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "default_panel", + "texture": "d81ec8ad-247c-4e62-aa3c-d35c4193c7af", + "atlas": "", + "rect": [ + 0, + 0, + 20, + 20 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 20, + 20 + ], + "capInsets": [ + 6, + 6, + 6, + 6 + ] + } +} \ No newline at end of file diff --git a/library/imports/9c/9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d.json b/library/imports/9c/9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d.json new file mode 100644 index 0000000..e523589 --- /dev/null +++ b/library/imports/9c/9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d.json @@ -0,0 +1,2604 @@ +[ + { + "__type__": "cc.SceneAsset", + "_name": "LoadScene", + "_objFlags": 0, + "_native": "", + "scene": { + "__id__": 1 + }, + "asyncLoadAssets": false + }, + { + "__type__": "cc.Scene", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": true, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "autoReleaseAssets": true, + "_id": "9c08062d-4cf1-4b6e-a8ba-4a3881cc7e7d" + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + }, + { + "__id__": 6 + }, + { + "__id__": 8 + }, + { + "__id__": 12 + }, + { + "__id__": 15 + }, + { + "__id__": 17 + }, + { + "__id__": 43 + }, + { + "__id__": 45 + }, + { + "__id__": 48 + } + ], + "_active": true, + "_components": [ + { + "__id__": 54 + }, + { + "__id__": 55 + }, + { + "__id__": 56 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 375, + 667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a5esZu+45LA5mBpvttspPD" + }, + { + "__type__": "cc.Node", + "_name": "Main Camera", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + }, + { + "__id__": 5 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 960, + "height": 640 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e1WoFrQ79G7r4ZuQE3HlNb" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "_cullingMask": 4294967295, + "_clearFlags": 7, + "_backgroundColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": -1, + "_zoomRatio": 1, + "_targetTexture": null, + "_fov": 60, + "_orthoSize": 10, + "_nearClip": 1, + "_farClip": 4096, + "_ortho": true, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_renderStages": 1, + "_alignWithScreen": true, + "_id": "81GN3uXINKVLeW4+iKSlim" + }, + { + "__type__": "5c9b8FZiaNLMrMDs9T3rByf", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "_id": "82rBHh8bJIGKuGw03a3Yrd" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 598, + "height": 260 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 5, + 239.142, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "760ocQbgdH36eN/vTVINU/" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "9fIRjhoHRMobgBYXu/5KEN" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 9 + }, + { + "__id__": 10 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 410, + "height": 151 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 8.043, + -419.976, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "fbUHhjpABG74DdpeYzdl/2" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "52EGND0ndDGotGRX4hdp75" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + { + "__id__": 11 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": { + "__id__": 8 + }, + "_id": "5fQ0XX+HFAlq0Hihrzp10i" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "454adgphRpA6oq5lB6Cg1fK", + "handler": "startGame", + "customEventData": "" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 13 + }, + { + "__id__": 14 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66.72, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 337.463, + -646.72, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "27YGKHGM1I5Y41cMXxZ0rs" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "0.0.0", + "_N$string": "0.0.0", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "1covBYbbRHJqGD17ZsJC+d" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 36, + "_left": 0, + "_right": 4.176999999999964, + "_top": 0, + "_bottom": 1.3799999999999955, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "6cDomcvMdDrae8KzaaoZg5" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 16 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1660 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "f4ldUOGdlK4JfP630lVR7t" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 15 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "36b6bacf-2b42-4105-b5ae-89638029e07b" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "beBh1DCIFJN7gZxDtN/Uuz" + }, + { + "__type__": "cc.Node", + "_name": "Top", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 18 + }, + { + "__id__": 20 + }, + { + "__id__": 22 + }, + { + "__id__": 24 + }, + { + "__id__": 26 + }, + { + "__id__": 28 + }, + { + "__id__": 30 + }, + { + "__id__": 32 + }, + { + "__id__": 34 + }, + { + "__id__": 36 + }, + { + "__id__": 38 + }, + { + "__id__": 40 + } + ], + "_active": true, + "_components": [ + { + "__id__": 42 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "26BdU6blJBRJUge8eUsmon" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 19 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 127 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -64.575, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "20lblp57FCKYe6SdNMXZyg" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 18 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "4c7c1f0b-ebe7-4025-8148-ac61cb2a2d8f" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "10pCiFzqFMyof2Je97a2GD" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 21 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 225.516, + -27.081, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a3snrZoTxLnZ3Ldmf6mAF7" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "5f924dc2-df92-448a-8b30-f4d0cbaae29c" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "84OFNWOWNDe6NTkLGw2/rJ" + }, + { + "__type__": "cc.Node", + "_name": "progress", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 23 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 344, + "height": 88 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -172, + -47.117, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "42EiWhBVBD/bo5qnSjWu4T" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 22 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "da411ff5-9431-4eec-8943-b2e786a28415" + }, + "_type": 3, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "99YFaTFPpFNan/i9g4XVBz" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 25 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 30, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -102.254, + -56.575, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "38YJlzD5dN7ZgqiOrOVkML" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 24 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8425f40b-c669-446a-ab0b-2daf892ef5c2" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "3cU/c2VB1GaLF4OFJUZmPn" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 27 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 30, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0.871, + -84.206, + 0, + 0, + 0, + 0.25881904510252074, + 0.9659258262890683, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 30 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "35VMqWe8BMrpFZIClXdF5+" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 26 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8425f40b-c669-446a-ab0b-2daf892ef5c2" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "devM/dV0VMpoknDl445hlT" + }, + { + "__type__": "cc.Node", + "_name": "New Sprite", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 29 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 30, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 102.254, + -57.272, + 0, + 0, + 0, + -0.08715574274765817, + 0.9961946980917455, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": -10 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "c3r75lyW5EiZjeSZ0AQLyF" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 28 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8425f40b-c669-446a-ab0b-2daf892ef5c2" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "88MQpnTlhOwaJdjNviyBI9" + }, + { + "__type__": "cc.Node", + "_name": "time", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 31 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 248, + "g": 234, + "b": 199, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 87.59, + "height": 44.1 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 301.784, + -27.081, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "37kM84EAdIhKQIvGKw5f3E" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 30 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "00:00", + "_N$string": "00:00", + "_fontSize": 35, + "_lineHeight": 35, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "99dMrfrc9BJ6yyHdGmwX0s" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 33 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 248, + "g": 234, + "b": 199, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 126.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -262.714, + -26.184, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "47PjmCN59NYbRr6IElRD4L" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 32 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "第 轮", + "_N$string": "第 轮", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "c2APvEnbFKoqStQ374HJbH" + }, + { + "__type__": "cc.Node", + "_name": "level", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 35 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 248, + "g": 234, + "b": 199, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 22.25, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -262.714, + -26.184, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "46xlJ4GZ1FnarQXVUvg3mU" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 34 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "1", + "_N$string": "1", + "_fontSize": 40, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "2a1m/g1stLB4/+FHrBQ+p3" + }, + { + "__type__": "cc.Node", + "_name": "star1", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 37 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -102.254, + -56.575, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "12ISiwZcVL3ZAM/mKpdk5h" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 36 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "0dPRCw3DZNnZ4PdqYteKo7" + }, + { + "__type__": "cc.Node", + "_name": "star2", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 39 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0.871, + -84.206, + 0, + 0, + 0, + 0.25881904510252074, + 0.9659258262890683, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 30 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e7Nb51N9hOXpzyvAd3GhK2" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 38 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "a08+ljPWlDH47pXCxdtZZV" + }, + { + "__type__": "cc.Node", + "_name": "star3", + "_objFlags": 0, + "_parent": { + "__id__": 17 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 41 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 102.254, + -57.272, + 0, + 0, + 0, + -0.08715574274765817, + 0.9961946980917455, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": -10 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "df4j84Y3FNxItXfy+zrMU0" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 40 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "573ba0d9-5a87-4a1f-847f-bcc5e5dc81dc" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "57sMhskC9OH7G9wb3BTEH9" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 17 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 1, + "_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": 0, + "_originalHeight": 0, + "_id": "73jtnO6HVHSYWHQTakz4iS" + }, + { + "__type__": "cc.Node", + "_name": "gezi", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 44 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 682, + "height": 682 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "1basG4FvZLb7Mh7NO1vCdG" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 43 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "17af346d-cfbe-4ad2-b2d3-e469d3dcc1a8" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "d9ql1oosxIqpanTxvwqnx4" + }, + { + "__type__": "cc.Node", + "_name": "version", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 46 + }, + { + "__id__": 47 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 98.33, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 251.592, + -645.818, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "bdRIfCxsZBpLpMK3p5LzXO" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 45 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "版本号:", + "_N$string": "版本号:", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "25U7z7AG5OR5kWiQhll6Z2" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 45 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 36, + "_left": 0, + "_right": 74.243, + "_top": 0, + "_bottom": 2.282000000000039, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "b9dR0vgWtBPbilfwsIX0Gk" + }, + { + "__type__": "cc.Node", + "_name": "New Button", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 49 + } + ], + "_active": true, + "_components": [ + { + "__id__": 52 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -490.097, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "d4XKS39tRLrrP4AdRBbbcC" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 0, + "_parent": { + "__id__": 48 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 50 + }, + { + "__id__": 51 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 270, + "height": 72 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 2.753, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a7br9FUkxBAZGyTgAXpjiE" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 49 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "d95bdbfb-bf4f-4a2a-8063-86225e9583e9" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": { + "__uuid__": "e883b928-b637-44d9-af8d-b83e856a59f7" + }, + "_id": "e9n7+/1xFHj7v+Jk1hPXrw" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 49 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 45, + "_left": -85, + "_right": -85, + "_top": -18.753, + "_bottom": -13.246999999999998, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 100, + "_originalHeight": 40, + "_id": "48q8ghX29FyJejtYoayFp5" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 48 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [ + { + "__id__": 53 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 230, + "g": 230, + "b": 230, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 120, + "g": 120, + "b": 120, + "a": 200 + }, + "_N$normalSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "pressedSprite": { + "__uuid__": "e9ec654c-97a2-4787-9325-e6a10375219a" + }, + "_N$hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "hoverSprite": { + "__uuid__": "f0048c10-f03e-4c97-b9d3-3506e1d58952" + }, + "_N$disabledSprite": { + "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" + }, + "_N$target": { + "__id__": 49 + }, + "_id": "aaqG+QMK5CCYJdMzYINcYX" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "454adgphRpA6oq5lB6Cg1fK", + "handler": "startGame", + "customEventData": "" + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_designResolution": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_fitWidth": true, + "_fitHeight": false, + "_id": "59Cd0ovbdF4byw5sbjJDx7" + }, + { + "__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": 0, + "_originalHeight": 0, + "_id": "29zXboiXFBKoIV4PQ2liTe" + }, + { + "__type__": "454adgphRpA6oq5lB6Cg1fK", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "localTest": false, + "clientTestVersion": "1.1.0", + "testVersion": { + "__id__": 13 + }, + "_id": "50zCP3Mq9MKIKjMbohPY8j" + } +] \ No newline at end of file diff --git a/library/imports/9d/9d60001f-b5f4-4726-a629-2659e3ded0b8.json b/library/imports/9d/9d60001f-b5f4-4726-a629-2659e3ded0b8.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/9d/9d60001f-b5f4-4726-a629-2659e3ded0b8.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/9d/9d60001f-b5f4-4726-a629-2659e3ded0b8.png b/library/imports/9d/9d60001f-b5f4-4726-a629-2659e3ded0b8.png new file mode 100644 index 0000000000000000000000000000000000000000..4f42da06147d8f5bef7c551e86d463cb28e60d8c GIT binary patch literal 2066 zcmaJ?c~ld39uJjL9(S;{0xCmd#R|zJ#9%UOdsDy- z3$nFxw!&aAw(MXQ4_yJ%YiWUgm0Imnba7Gz#Hk{YB$b-4fH8hTBoPMKQoac0!F*vx zS`WM#gIVS#iHcLjaY7*hA|>)o7@|fhN7)$6W*?25FGzt^Kq4%X$QZas?H6%?M99F! zQaL1!oC%91!CD0zsSS$~Xj24qA5!gg0lBwj4G_oh)MIuu`5(Okv2xKpaM2E;!;LU?W zqbY<*5RVo3CKh^P;KVAG90EbLT1`|_h=@W2lIe6hNb&-`ya*_Qpv;h|_!@#tiCL{h12ud(NG6g@B`pFuoc|A%O5dWD zDjxh-zW-BL8I>W2K_09`(iH-9a7lPmC^^Jbz=h(eIm#V&Hihze1P5jntQ0_$TX zG9jW?e*7BF;XrJeQpJ}EU^a_^Lj{Nui4gMkMq5m!dTrWBrIX14G=IMUFaJRA0J=9N zFn~&-EOJ?hAYBT}REu2UUtG$PT$2-|ax^jvR!DZj!axNg1zuMSNtVuqw4~k}u5jsG z$V+lTG#St|*Z-RH;uUHh)Ap@v(ZgHc!!p$D3e?q?eDqih#yp?R@{7{kHpFfXcZqeV zYF2-<|GZOdt!;AXTIYxw$32IhR>wpS%sBr>0AGrpoAuk@JDyQ{d&ao-Q~|HvvHalr zgM4Y9^s)BYHb_JXykl!H_k>SfYri|(JW^TqsIQD4^0DSf{;Ay?F3x2Yx!L5g1*s54 zOT@l|#nZNrXCjrummdgy?Grf<0SkwWZlL>w$T!c;Xqgr)#^bc7@BW?}X{S#rXWHN| zV_~SM*v;<39Y1s3it5~(fq&?>x4G)wMBct5>Vi0Zm>aPugL}ct{K@iVTq3PlY5UDj z*EWn^ryCt)E&TC+Z5cxHrr+yauxTo&#m`+~{+s$?3N~qD!k6tq*dq?E`&;FLj@puU zTtWzDo~)QG?>SnEGne!}7W=#nI&!cix5hT%q?pk5iPg`druVITaL^COYtHQn z93`cP3WCRie)fN`katMbXySnaB>fUA% z-T;djUnw)ITHvsrS5w8;wmOcj3tj1@k1la1dPsBpemO7^>@wfM+%&iLclNEXlO`RG zq#1YQJkHN{k*_@VisSM9v2lX~*{o^w>ST>s!O1V(4zlC-@or7u#DqCLEGDnG5+eBpWVMxpz>-&qlvBI)kcJ?H$m=GPH| z(eYF4xt=!B-oLl3lKs$fm^&6=+X}&ccPR!iw<$E5_j#*O3vy3}tv<%dyt2)yd@dQn z?=bhyo^7bNwr8F=hrelcSln)yjb{Mji-Xjm_)g=?^(2p}g@GzY(VCS9;@W=gvhL0L zc91;9lf<~&rST%_gUd37bN8x*s=I9PNfG?Bfx5hoQO$8}5XCpEaN|3JcBS;Ubx(L#l-~nxR63XSpZQy4cFEXN gn)#!dKf-g&FdekL`>TLvC(~b=9T3Jk>z}aaKjj-pHUIzs literal 0 HcmV?d00001 diff --git a/library/imports/a1/a153945d-2511-4c14-be7b-05d242f47d57.json b/library/imports/a1/a153945d-2511-4c14-be7b-05d242f47d57.json new file mode 100644 index 0000000..332d844 --- /dev/null +++ b/library/imports/a1/a153945d-2511-4c14-be7b-05d242f47d57.json @@ -0,0 +1,15 @@ +{ + "__type__": "cc.Material", + "_name": "builtin-2d-graphics", + "_objFlags": 0, + "_native": "", + "_effectAsset": { + "__uuid__": "30682f87-9f0d-4f17-8a44-72863791461b" + }, + "_techniqueIndex": 0, + "_techniqueData": { + "0": { + "defines": {} + } + } +} \ No newline at end of file diff --git a/library/imports/a1/a1ef2fc9-9c57-418a-8f69-6bed9a7a0e7f.bin b/library/imports/a1/a1ef2fc9-9c57-418a-8f69-6bed9a7a0e7f.bin new file mode 100644 index 0000000000000000000000000000000000000000..d38e13fe5074290186516f893ebdb983a1369cd6 GIT binary patch literal 5072 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 literal 0 HcmV?d00001 diff --git a/library/imports/a5/a579b610-0aa7-4a8b-b36b-be34cc834dcc.json b/library/imports/a5/a579b610-0aa7-4a8b-b36b-be34cc834dcc.json new file mode 100644 index 0000000..2236ff8 --- /dev/null +++ b/library/imports/a5/a579b610-0aa7-4a8b-b36b-be34cc834dcc.json @@ -0,0 +1,7 @@ +{ + "__type__": "cc.BufferAsset", + "_name": "buffer", + "_objFlags": 0, + "_native": ".bin", + "buffer": null +} \ No newline at end of file diff --git a/library/imports/a5/a5849239-3ad3-41d1-8ab4-ae9fea11f97f.json b/library/imports/a5/a5849239-3ad3-41d1-8ab4-ae9fea11f97f.json new file mode 100644 index 0000000..8cd93af --- /dev/null +++ b/library/imports/a5/a5849239-3ad3-41d1-8ab4-ae9fea11f97f.json @@ -0,0 +1,24 @@ +{ + "__type__": "cc.Material", + "_name": "", + "_objFlags": 0, + "_native": "", + "_effectAsset": { + "__uuid__": "abc2cb62-7852-4525-a90d-d474487b88f2" + }, + "_techniqueIndex": 0, + "_techniqueData": { + "0": { + "props": { + "diffuseColor": { + "__type__": "cc.Color", + "r": 127, + "g": 127, + "b": 127, + "a": 255 + } + }, + "defines": {} + } + } +} \ No newline at end of file diff --git a/library/imports/a8/a8027877-d8d6-4645-97a0-52d4a0123dba.json b/library/imports/a8/a8027877-d8d6-4645-97a0-52d4a0123dba.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/a8/a8027877-d8d6-4645-97a0-52d4a0123dba.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/a8/a8027877-d8d6-4645-97a0-52d4a0123dba.png b/library/imports/a8/a8027877-d8d6-4645-97a0-52d4a0123dba.png new file mode 100644 index 0000000000000000000000000000000000000000..fa6376e6316ae9bd38595b550b5fdf78a6fa6d6b GIT binary patch literal 82 zcmeAS@N?(olHy`uVBq!ia0vp^Od!n23?w}&=BEQG<^Z1%*Z=?jFFzuE0?6g^ba4#f bxSkAB$il#=a7i~GD9YgJ>gTe~DWM4fnP3tm literal 0 HcmV?d00001 diff --git a/library/imports/a8/a87cc147-01b2-43f8-8e42-a7ca90b0c757.json b/library/imports/a8/a87cc147-01b2-43f8-8e42-a7ca90b0c757.json new file mode 100644 index 0000000..0a667ca --- /dev/null +++ b/library/imports/a8/a87cc147-01b2-43f8-8e42-a7ca90b0c757.json @@ -0,0 +1,109 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "box", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "box", + "_objFlags": 0, + "_parent": null, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 2 + } + ], + "_prefab": { + "__id__": 3 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.MeshRenderer", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "a5849239-3ad3-41d1-8ab4-ae9fea11f97f" + } + ], + "_mesh": { + "__uuid__": "046f172c-1574-488b-bbb8-6415a9adb96d" + }, + "_receiveShadows": false, + "_shadowCastingMode": 0, + "_enableAutoBatch": false, + "textures": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "a87cc147-01b2-43f8-8e42-a7ca90b0c757" + }, + "fileId": "04A14e1BZJxrPk6zgr35H5", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/ab/ab2fdde9-10c2-44e4-bfe1-fcfcc1a86aa9.json b/library/imports/ab/ab2fdde9-10c2-44e4-bfe1-fcfcc1a86aa9.json new file mode 100644 index 0000000..0c73930 --- /dev/null +++ b/library/imports/ab/ab2fdde9-10c2-44e4-bfe1-fcfcc1a86aa9.json @@ -0,0 +1,884 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "primitives", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": true + }, + { + "__type__": "cc.Node", + "_name": "RootNode", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 8 + }, + { + "__id__": 11 + }, + { + "__id__": 14 + }, + { + "__id__": 17 + }, + { + "__id__": 20 + }, + { + "__id__": 23 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 26 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "capsule", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 8.146033536604618e-8, + 0, + 0, + 0.9999999999999967, + 100, + 100, + 100 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0.000009334666828389458, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.MeshRenderer", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "a5849239-3ad3-41d1-8ab4-ae9fea11f97f" + } + ], + "_mesh": { + "__uuid__": "83f5eff8-3385-4f95-9b76-8da0aa1d96cd" + }, + "_receiveShadows": false, + "_shadowCastingMode": 0, + "_enableAutoBatch": false, + "textures": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "capsule", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "plane", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 6 + } + ], + "_prefab": { + "__id__": 7 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 8.146033536604618e-8, + 0, + 0, + 0.9999999999999967, + 100, + 100, + 100 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0.000009334666828389458, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.MeshRenderer", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "a5849239-3ad3-41d1-8ab4-ae9fea11f97f" + } + ], + "_mesh": { + "__uuid__": "a1ef2fc9-9c57-418a-8f69-6bed9a7a0e7f" + }, + "_receiveShadows": false, + "_shadowCastingMode": 0, + "_enableAutoBatch": false, + "textures": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "plane", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "cone", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 9 + } + ], + "_prefab": { + "__id__": 10 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + -0.7071068286895765, + 0, + 0, + 0.7071067336835153, + 100, + 100, + 100 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": -90.00000769819565, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.MeshRenderer", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "a5849239-3ad3-41d1-8ab4-ae9fea11f97f" + } + ], + "_mesh": { + "__uuid__": "7a17de6e-227a-46b1-8009-e7157d4d3acf" + }, + "_receiveShadows": false, + "_shadowCastingMode": 0, + "_enableAutoBatch": false, + "textures": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "cone", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "torus", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 12 + } + ], + "_prefab": { + "__id__": 13 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 8.146033536604618e-8, + 0, + 0, + 0.9999999999999967, + 100, + 100, + 100 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0.000009334666828389458, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.MeshRenderer", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 11 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "a5849239-3ad3-41d1-8ab4-ae9fea11f97f" + } + ], + "_mesh": { + "__uuid__": "14c74869-bdb4-4f57-86d8-a7875de2be30" + }, + "_receiveShadows": false, + "_shadowCastingMode": 0, + "_enableAutoBatch": false, + "textures": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "torus", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "sphere", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 15 + } + ], + "_prefab": { + "__id__": 16 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 8.146033536604618e-8, + 0, + 0, + 0.9999999999999967, + 100, + 100, + 100 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0.000009334666828389458, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.MeshRenderer", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "a5849239-3ad3-41d1-8ab4-ae9fea11f97f" + } + ], + "_mesh": { + "__uuid__": "3bbdb0f6-c5f6-45de-9f33-8b5cbafb4d6d" + }, + "_receiveShadows": false, + "_shadowCastingMode": 0, + "_enableAutoBatch": false, + "textures": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "sphere", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "quad", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 18 + } + ], + "_prefab": { + "__id__": 19 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 8.146033536604618e-8, + 0, + 0, + 0.9999999999999967, + 100, + 100, + 100 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0.000009334666828389458, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.MeshRenderer", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 17 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "a5849239-3ad3-41d1-8ab4-ae9fea11f97f" + } + ], + "_mesh": { + "__uuid__": "e93d3fa9-8c21-4375-8a21-14ba84066c77" + }, + "_receiveShadows": false, + "_shadowCastingMode": 0, + "_enableAutoBatch": false, + "textures": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "quad", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "cylinder", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 21 + } + ], + "_prefab": { + "__id__": 22 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 8.146033536604618e-8, + 0, + 0, + 0.9999999999999967, + 100, + 100, + 100 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0.000009334666828389458, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.MeshRenderer", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "a5849239-3ad3-41d1-8ab4-ae9fea11f97f" + } + ], + "_mesh": { + "__uuid__": "b430cea3-6ab3-4106-b073-26c698918edd" + }, + "_receiveShadows": false, + "_shadowCastingMode": 0, + "_enableAutoBatch": false, + "textures": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "cylinder", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "box", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 24 + } + ], + "_prefab": { + "__id__": 25 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 8.146033536604618e-8, + 0, + 0, + 0.9999999999999967, + 100, + 100, + 100 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0.000009334666828389458, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.MeshRenderer", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 23 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "a5849239-3ad3-41d1-8ab4-ae9fea11f97f" + } + ], + "_mesh": { + "__uuid__": "046f172c-1574-488b-bbb8-6415a9adb96d" + }, + "_receiveShadows": false, + "_shadowCastingMode": 0, + "_enableAutoBatch": false, + "textures": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "box", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/ab/abc2cb62-7852-4525-a90d-d474487b88f2.json b/library/imports/ab/abc2cb62-7852-4525-a90d-d474487b88f2.json new file mode 100644 index 0000000..3aa4a40 --- /dev/null +++ b/library/imports/ab/abc2cb62-7852-4525-a90d-d474487b88f2.json @@ -0,0 +1,653 @@ +{ + "__type__": "cc.EffectAsset", + "_name": "builtin-phong", + "_objFlags": 0, + "_native": "", + "properties": null, + "techniques": [ + { + "passes": [ + { + "name": "phong", + "rasterizerState": { + "cullMode": 1029 + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": true + }, + "properties": { + "alphaThreshold": { + "value": [ + 0.5 + ], + "type": 13 + }, + "mainTiling": { + "value": [ + 1, + 1 + ], + "type": 14 + }, + "mainOffset": { + "value": [ + 0, + 0 + ], + "type": 14 + }, + "diffuseColor": { + "value": [ + 1, + 1, + 1, + 1 + ], + "editor": { + "type": "color" + }, + "type": 16 + }, + "diffuseTexture": { + "value": "white", + "type": 29 + }, + "specularColor": { + "value": [ + 1, + 1, + 1, + 1 + ], + "editor": { + "type": "color" + }, + "type": 16 + }, + "specularTexture": { + "value": "white", + "type": 29 + }, + "emissiveColor": { + "value": [ + 0, + 0, + 0, + 1 + ], + "editor": { + "type": "color" + }, + "type": 16 + }, + "emissiveTexture": { + "value": "white", + "type": 29 + }, + "glossiness": { + "value": [ + 10 + ], + "type": 13 + }, + "normalTexture": { + "value": "white", + "type": 29 + } + }, + "program": "builtin-phong|phong-vs|phong-fs" + }, + { + "name": "shadowcast", + "stage": "shadowcast", + "rasterizerState": { + "cullMode": 1029 + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": true + }, + "program": "builtin-phong|shadow-map-vs|shadow-map-fs" + } + ] + } + ], + "shaders": [ + { + "hash": 3560892936, + "glsl3": { + "vert": "\nprecision highp float;\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\n#if CC_USE_SKINNING\n in vec4 a_weights;\n in vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform SKINNING {\n vec2 jointsTextureSize;\n };\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform JOINT_MATRIX {\n mat4 jointMatrices[50];\n };\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nstruct StandardVertInput {\n vec2 uv;\n vec4 position;\n vec3 normal;\n vec4 tangent;\n vec4 color;\n};\nin vec3 a_position;\n#if CC_USE_ATTRIBUTE_UV0\nin vec2 a_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\nin vec4 a_color;\n#endif\n#if CC_USE_ATTRIBUTE_NORMAL\nin vec3 a_normal;\n#endif\n#if CC_USE_ATTRIBUTE_TANGENT\nin vec4 a_tangent;\n#endif\nvoid CCAttribute (out StandardVertInput In) {\n In.position = vec4(a_position, 1.0);\n #if CC_USE_ATTRIBUTE_UV0\n In.uv = a_uv0;\n #else\n In.uv = vec2(0.0);\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n In.color = a_color;\n #else\n In.color = vec4(1.0);\n #endif\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = a_normal;\n #else\n In.normal = vec3(0.0, 1.0, 0.0);\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = a_tangent;\n #else\n In.tangent = vec4(1.0, 0.0, 0.0, 0.0);\n #endif\n}\nvoid CCVertInput(out StandardVertInput In) {\n CCAttribute(In);\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n In.position = m * In.position;\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = (m * vec4(In.normal, 0)).xyz;\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = m * In.tangent;\n #endif\n #endif\n}\n#if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 0\n uniform CC_SHADOW {\n mat4 cc_shadow_lightViewProjMatrix[2];\n vec4 cc_shadow_info[2];\n };\n #if CC_NUM_SHADOW_LIGHTS > 0\n uniform sampler2D cc_shadow_map_0;\n #endif\n #if CC_NUM_SHADOW_LIGHTS > 1\n uniform sampler2D cc_shadow_map_1;\n #endif\n varying vec4 v_posLightSpace[2];\n varying float v_depth[2];\n#endif\nvoid CCShadowInput (vec3 worldPos) {\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 0\n for (int i = 0; i < CC_NUM_SHADOW_LIGHTS; i++) {\n v_posLightSpace[i] = cc_shadow_lightViewProjMatrix[i] * vec4(worldPos, 1.0);\n v_depth[i] = (v_posLightSpace[i].z + cc_shadow_info[i].x) / (cc_shadow_info[i].x + cc_shadow_info[i].y);\n }\n #endif\n}\nuniform MAIN_TILING {\n vec2 mainTiling;\n vec2 mainOffset;\n};\n#if CC_USE_ATTRIBUTE_UV0 && (USE_DIFFUSE_TEXTURE || USE_EMISSIVE_TEXTURE || USE_SPECULAR_TEXTURE || USE_NORMAL_TEXTURE)\n out mediump vec2 v_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n out lowp vec4 v_color;\n#endif\n#if USE_NORMAL_TEXTURE\n out vec3 v_tangent;\n out vec3 v_bitangent;\n#endif\nout vec3 v_worldNormal;\nout vec3 v_worldPos;\nout vec3 v_viewDirection;\nvoid main () {\n StandardVertInput In;\n CCVertInput(In);\n vec4 position = In.position;\n v_worldNormal = normalize((cc_matWorldIT * vec4(In.normal, 0)).xyz);\n v_worldPos = (cc_matWorld * position).xyz;\n v_viewDirection = normalize(cc_cameraPos.xyz - v_worldPos);\n #if CC_USE_ATTRIBUTE_UV0 && (USE_DIFFUSE_TEXTURE || USE_EMISSIVE_TEXTURE || USE_SPECULAR_TEXTURE || USE_NORMAL_TEXTURE)\n v_uv0 = In.uv * mainTiling + mainOffset;\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n v_color = In.color;\n #endif\n #if USE_NORMAL_TEXTURE\n v_tangent = normalize((cc_matWorld * vec4(In.tangent.xyz, 0.0)).xyz);\n v_bitangent = cross(v_worldNormal, v_tangent) * In.tangent.w;\n #endif\n CCShadowInput(v_worldPos);\n gl_Position = cc_matViewProj * cc_matWorld * position;\n}", + "frag": "\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nuniform PhongFrag {\n lowp vec4 diffuseColor;\n lowp vec4 specularColor;\n lowp vec4 emissiveColor;\n float glossiness;\n};\n#if USE_DIFFUSE_TEXTURE\n uniform sampler2D diffuseTexture;\n#endif\n#if USE_SPECULAR && USE_SPECULAR_TEXTURE\n uniform sampler2D specularTexture;\n#endif\n#if USE_EMISSIVE && USE_EMISSIVE_TEXTURE\n uniform sampler2D emissiveTexture;\n#endif\n#if USE_NORMAL_TEXTURE\n in vec3 v_tangent;\n in vec3 v_bitangent;\n uniform sampler2D normalTexture;\n#endif\nin vec3 v_worldNormal;\nin vec3 v_worldPos;\nin vec3 v_viewDirection;\n#if CC_USE_ATTRIBUTE_UV0 && (USE_DIFFUSE_TEXTURE || (USE_EMISSIVE && USE_EMISSIVE_TEXTURE) || (USE_SPECULAR && USE_SPECULAR_TEXTURE) || USE_NORMAL_TEXTURE)\n in mediump vec2 v_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n in lowp vec4 v_color;\n#endif\n#if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 0\n uniform CC_SHADOW {\n mat4 cc_shadow_lightViewProjMatrix[2];\n vec4 cc_shadow_info[2];\n };\n #if CC_NUM_SHADOW_LIGHTS > 0\n uniform sampler2D cc_shadow_map_0;\n #endif\n #if CC_NUM_SHADOW_LIGHTS > 1\n uniform sampler2D cc_shadow_map_1;\n #endif\n varying vec4 v_posLightSpace[2];\n varying float v_depth[2];\n#endif\nfloat unpackRGBAToDepth(vec4 color) {\n return dot(color, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 160581375.0));\n}\nfloat getDepth(sampler2D shadowMap, vec2 shadowUV) {\n return unpackRGBAToDepth(texture(shadowMap, shadowUV));\n}\nfloat computeFallOff(float shadow, vec2 coords, float frustumEdgeFalloff) {\n return shadow;\n}\nfloat shadowSimple(sampler2D shadowMap, vec2 shadowUV, float currentDepth, float darkness) {\n float closestDepth = getDepth(shadowMap, shadowUV);\n return currentDepth > closestDepth ? 1.0 - darkness : 1.0;\n}\nfloat shadowPCF3X3(sampler2D shadowMap, vec2 shadowUV, float currentDepth, float darkness, float shadowSize) {\n float shadow = 0.0;\n for (int x = -1; x <= 1; ++x) {\n for (int y = -1; y <= 1; ++y) {\n float closestDepth = getDepth(shadowMap, shadowUV + vec2(x, y) * 1.0/shadowSize);\n shadow += currentDepth > closestDepth ? 1.0 - darkness : 1.0;\n }\n }\n shadow /= 9.0;\n return shadow;\n}\nfloat shadowPCF5X5(sampler2D shadowMap, vec2 shadowUV, float currentDepth, float darkness, float shadowSize) {\n float shadow = 0.0;\n for (int x = -2; x <= 2; ++x) {\n for (int y = -2; y <= 2; ++y) {\n float closestDepth = getDepth(shadowMap, shadowUV + vec2(x, y) * 1.0/shadowSize);\n shadow += currentDepth > closestDepth ? 1.0 - darkness : 1.0;\n }\n }\n shadow /= 25.0;\n return shadow;\n}\n#if CC_NUM_LIGHTS > 0\nuniform CCLIGHTS {\n vec4 cc_lightPositionAndRange[4];\n vec4 cc_lightDirection[4];\n vec4 cc_lightColor[4];\n};\n#endif\nstruct LightInfo {\n vec3 lightDir;\n vec3 radiance;\n vec4 lightColor;\n};\nLightInfo computeDirectionalLighting(\n vec4 lightDirection,\n vec4 lightColor\n) {\n LightInfo ret;\n ret.lightDir = -normalize(lightDirection.xyz);\n ret.radiance = lightColor.rgb;\n ret.lightColor = lightColor;\n return ret;\n}\nLightInfo computePointLighting(\n vec3 worldPosition,\n vec4 lightPositionAndRange,\n vec4 lightColor\n) {\n LightInfo ret;\n vec3 lightDir = lightPositionAndRange.xyz - worldPosition;\n float attenuation = max(0., 1.0 - length(lightDir) / lightPositionAndRange.w);\n ret.lightDir = normalize(lightDir);\n ret.radiance = lightColor.rgb * attenuation;\n ret.lightColor = lightColor;\n return ret;\n}\nLightInfo computeSpotLighting(\n vec3 worldPosition,\n vec4 lightPositionAndRange,\n vec4 lightDirection,\n vec4 lightColor\n) {\n LightInfo ret;\n vec3 lightDir = lightPositionAndRange.xyz - worldPosition;\n float attenuation = max(0., 1.0 - length(lightDir) / lightPositionAndRange.w);\n lightDir = normalize(lightDir);\n float cosConeAngle = max(0., dot(lightDirection.xyz, -lightDir));\n cosConeAngle = cosConeAngle < lightDirection.w ? 0. : cosConeAngle;\n cosConeAngle = pow(cosConeAngle, lightColor.w);\n ret.lightDir = lightDir;\n ret.radiance = lightColor.rgb * attenuation * cosConeAngle;\n ret.lightColor = lightColor;\n return ret;\n}\nstruct Lighting {\n vec3 diffuse;\n vec3 specular;\n};\nstruct PhongSurface {\n vec3 diffuse;\n vec3 emissive;\n vec3 specular;\n float opacity;\n float glossiness;\n vec3 position;\n vec3 normal;\n vec3 viewDirection;\n};\nLighting brdf (PhongSurface s, LightInfo info) {\n Lighting result;\n float ndh = 0.0;\n vec3 halfDir = normalize(s.viewDirection + info.lightDir);\n float NdotH = max(0.0, dot(s.normal, halfDir));\n NdotH = pow(NdotH, max(1.0, s.glossiness * 128.0));\n result.diffuse = info.radiance * max(0.0, dot(s.normal, info.lightDir));\n result.specular = info.radiance * NdotH;\n return result;\n}\nvec4 composePhongShading (Lighting lighting, PhongSurface s) {\n vec4 o = vec4(0.0, 0.0, 0.0, 1.0);\n o.rgb = lighting.diffuse * s.diffuse;\n #if USE_EMISSIVE\n o.rgb += s.emissive;\n #endif\n #if USE_SPECULAR\n o.rgb += lighting.specular * s.specular;\n #endif\n o.a = s.opacity;\n return o;\n}\nvec3 ambient(PhongSurface s, vec4 ambientColor) {\n return s.diffuse * ambientColor.rgb;\n}\nvec4 CCPhongShading (in PhongSurface s) {\n Lighting result;\n result.diffuse = vec3(0, 0, 0);\n result.specular = vec3(0, 0, 0);\n #if CC_NUM_LIGHTS > 0\n #if CC_LIGHT_0_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[0]);\n #else\n LightInfo info0;\n #if CC_LIGHT_0_TYPE == 0\n info0 = computeDirectionalLighting(cc_lightDirection[0], cc_lightColor[0]);\n #elif CC_LIGHT_0_TYPE == 1\n info0 = computePointLighting(s.position, cc_lightPositionAndRange[0], cc_lightColor[0]);\n #elif CC_LIGHT_0_TYPE == 2\n info0 = computeSpotLighting(s.position, cc_lightPositionAndRange[0], cc_lightDirection[0], cc_lightColor[0]);\n #endif\n Lighting result0 = brdf(s, info0);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 0\n float shadow_0 = 1.0;\n vec2 projCoords0 = v_posLightSpace[0].xy / v_posLightSpace[0].w;\n vec2 shadowUV0 = projCoords0 * 0.5 + vec2(0.5);\n if (shadowUV0.x >= 0.0 && shadowUV0.x <= 1.0 && shadowUV0.y >= 0.0 && shadowUV0.y <= 1.0) {\n float currentDepth0 = clamp(v_depth[0], 0.0, 1.0);\n #if CC_SHADOW_0_TYPE == 3\n shadow_0 = shadowPCF3X3(cc_shadow_map_0, shadowUV0, currentDepth0, cc_shadow_info[0].w, cc_shadow_info[0].z);\n #elif CC_SHADOW_0_TYPE == 4\n shadow_0 = shadowPCF5X5(cc_shadow_map_0, shadowUV0, currentDepth0, cc_shadow_info[0].w, cc_shadow_info[0].z);\n #else\n shadow_0 = shadowSimple(cc_shadow_map_0, shadowUV0, currentDepth0, cc_shadow_info[0].w);\n #endif\n shadow_0 = computeFallOff(shadow_0, projCoords0, 0.0);\n }\n result0.diffuse *= shadow_0;\n result0.specular *= shadow_0;\n #endif\n result.diffuse += result0.diffuse;\n result.specular += result0.specular;\n #endif\n #endif\n #if CC_NUM_LIGHTS > 1\n #if CC_LIGHT_1_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[1]);\n #else\n LightInfo info1;\n #if CC_LIGHT_1_TYPE == 0\n info1 = computeDirectionalLighting(cc_lightDirection[1], cc_lightColor[1]);\n #elif CC_LIGHT_1_TYPE == 1\n info1 = computePointLighting(s.position, cc_lightPositionAndRange[1], cc_lightColor[1]);\n #elif CC_LIGHT_1_TYPE == 2\n info1 = computeSpotLighting(s.position, cc_lightPositionAndRange[1], cc_lightDirection[1], cc_lightColor[1]);\n #endif\n Lighting result1 = brdf(s, info1);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 1\n float shadow_1 = 1.0;\n vec2 projCoords1 = v_posLightSpace[1].xy / v_posLightSpace[1].w;\n vec2 shadowUV1 = projCoords1 * 0.5 + vec2(0.5);\n if (shadowUV1.x >= 0.0 && shadowUV1.x <= 1.0 && shadowUV1.y >= 0.0 && shadowUV1.y <= 1.0) {\n float currentDepth1 = clamp(v_depth[1], 0.0, 1.0);\n #if CC_SHADOW_1_TYPE == 3\n shadow_1 = shadowPCF3X3(cc_shadow_map_1, shadowUV1, currentDepth1, cc_shadow_info[1].w, cc_shadow_info[1].z);\n #elif CC_SHADOW_1_TYPE == 4\n shadow_1 = shadowPCF5X5(cc_shadow_map_1, shadowUV1, currentDepth1, cc_shadow_info[1].w, cc_shadow_info[1].z);\n #else\n shadow_1 = shadowSimple(cc_shadow_map_1, shadowUV1, currentDepth1, cc_shadow_info[1].w);\n #endif\n shadow_1 = computeFallOff(shadow_1, projCoords1, 0.0);\n }\n result1.diffuse *= shadow_1;\n result1.specular *= shadow_1;\n #endif\n result.diffuse += result1.diffuse;\n result.specular += result1.specular;\n #endif\n #endif\n #if CC_NUM_LIGHTS > 2\n #if CC_LIGHT_2_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[2]);\n #else\n LightInfo info2;\n #if CC_LIGHT_2_TYPE == 0\n info2 = computeDirectionalLighting(cc_lightDirection[2], cc_lightColor[2]);\n #elif CC_LIGHT_2_TYPE == 1\n info2 = computePointLighting(s.position, cc_lightPositionAndRange[2], cc_lightColor[2]);\n #elif CC_LIGHT_2_TYPE == 2\n info2 = computeSpotLighting(s.position, cc_lightPositionAndRange[2], cc_lightDirection[2], cc_lightColor[2]);\n #endif\n Lighting result2 = brdf(s, info2);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 2\n float shadow_2 = 1.0;\n vec2 projCoords2 = v_posLightSpace[2].xy / v_posLightSpace[2].w;\n vec2 shadowUV2 = projCoords2 * 0.5 + vec2(0.5);\n if (shadowUV2.x >= 0.0 && shadowUV2.x <= 1.0 && shadowUV2.y >= 0.0 && shadowUV2.y <= 1.0) {\n float currentDepth2 = clamp(v_depth[2], 0.0, 1.0);\n #if CC_SHADOW_2_TYPE == 3\n shadow_2 = shadowPCF3X3(cc_shadow_map_2, shadowUV2, currentDepth2, cc_shadow_info[2].w, cc_shadow_info[2].z);\n #elif CC_SHADOW_2_TYPE == 4\n shadow_2 = shadowPCF5X5(cc_shadow_map_2, shadowUV2, currentDepth2, cc_shadow_info[2].w, cc_shadow_info[2].z);\n #else\n shadow_2 = shadowSimple(cc_shadow_map_2, shadowUV2, currentDepth2, cc_shadow_info[2].w);\n #endif\n shadow_2 = computeFallOff(shadow_2, projCoords2, 0.0);\n }\n result2.diffuse *= shadow_2;\n result2.specular *= shadow_2;\n #endif\n result.diffuse += result2.diffuse;\n result.specular += result2.specular;\n #endif\n #endif\n #if CC_NUM_LIGHTS > 3\n #if CC_LIGHT_3_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[3]);\n #else\n LightInfo info3;\n #if CC_LIGHT_3_TYPE == 0\n info3 = computeDirectionalLighting(cc_lightDirection[3], cc_lightColor[3]);\n #elif CC_LIGHT_3_TYPE == 1\n info3 = computePointLighting(s.position, cc_lightPositionAndRange[3], cc_lightColor[3]);\n #elif CC_LIGHT_3_TYPE == 2\n info3 = computeSpotLighting(s.position, cc_lightPositionAndRange[3], cc_lightDirection[3], cc_lightColor[3]);\n #endif\n Lighting result3 = brdf(s, info3);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 3\n float shadow_3 = 1.0;\n vec2 projCoords3 = v_posLightSpace[3].xy / v_posLightSpace[3].w;\n vec2 shadowUV3 = projCoords3 * 0.5 + vec2(0.5);\n if (shadowUV3.x >= 0.0 && shadowUV3.x <= 1.0 && shadowUV3.y >= 0.0 && shadowUV3.y <= 1.0) {\n float currentDepth3 = clamp(v_depth[3], 0.0, 1.0);\n #if CC_SHADOW_3_TYPE == 3\n shadow_3 = shadowPCF3X3(cc_shadow_map_3, shadowUV3, currentDepth3, cc_shadow_info[3].w, cc_shadow_info[3].z);\n #elif CC_SHADOW_3_TYPE == 4\n shadow_3 = shadowPCF5X5(cc_shadow_map_3, shadowUV3, currentDepth3, cc_shadow_info[3].w, cc_shadow_info[3].z);\n #else\n shadow_3 = shadowSimple(cc_shadow_map_3, shadowUV3, currentDepth3, cc_shadow_info[3].w);\n #endif\n shadow_3 = computeFallOff(shadow_3, projCoords3, 0.0);\n }\n result3.diffuse *= shadow_3;\n result3.specular *= shadow_3;\n #endif\n result.diffuse += result3.diffuse;\n result.specular += result3.specular;\n #endif\n #endif\n return composePhongShading(result, s);\n}\nvoid surf (out PhongSurface s) {\n vec4 diffuse = vec4(1, 1, 1, 1);\n #if CC_USE_ATTRIBUTE_COLOR\n diffuse *= v_color;\n #endif\n diffuse *= diffuseColor;\n #if USE_DIFFUSE_TEXTURE\n vec4 diffuseTexture_tmp = texture(diffuseTexture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_diffuseTexture\n diffuseTexture_tmp.a *= texture(diffuseTexture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n diffuse.rgb *= (diffuseTexture_tmp.rgb * diffuseTexture_tmp.rgb);\n diffuse.a *= diffuseTexture_tmp.a;\n #else\n diffuse *= diffuseTexture_tmp;\n #endif\n #endif\n ALPHA_TEST(diffuse);\n s.diffuse = diffuse.rgb;\n s.opacity = diffuse.a;\n #if USE_EMISSIVE\n s.emissive = emissiveColor.rgb;\n #if USE_EMISSIVE_TEXTURE\n vec4 emissiveTexture_tmp = texture(emissiveTexture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_emissiveTexture\n emissiveTexture_tmp.a *= texture(emissiveTexture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n s.emissive.rgb *= (emissiveTexture_tmp.rgb * emissiveTexture_tmp.rgb);\n #else\n s.emissive.rgb *= emissiveTexture_tmp.rgb;\n #endif\n #endif\n #endif\n #if USE_SPECULAR\n s.specular = specularColor.rgb;\n #if USE_SPECULAR_TEXTURE\n vec4 specularTexture_tmp = texture(specularTexture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_specularTexture\n specularTexture_tmp.a *= texture(specularTexture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n s.specular.rgb *= (specularTexture_tmp.rgb * specularTexture_tmp.rgb);\n #else\n s.specular.rgb *= specularTexture_tmp.rgb;\n #endif\n #endif\n #endif\n s.normal = v_worldNormal;\n #if USE_NORMAL_TEXTURE\n vec3 nmmp = texture(normalTexture, v_uv0).xyz - vec3(0.5);\n s.normal =\n nmmp.x * normalize(v_tangent) +\n nmmp.y * normalize(v_bitangent) +\n nmmp.z * normalize(s.normal);\n s.normal = normalize(s.normal);\n #endif\n s.position = v_worldPos;\n s.viewDirection = v_viewDirection;\n s.glossiness = glossiness;\n}\nvoid main () {\n PhongSurface s;\n surf(s);\n vec4 color = CCPhongShading(s);\n gl_FragColor = CCFragOutput(color);\n}" + }, + "glsl1": { + "vert": "\nprecision highp float;\nuniform mat4 cc_matWorld;\nuniform mat4 cc_matWorldIT;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\n#if CC_USE_SKINNING\n attribute vec4 a_weights;\n attribute vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform vec2 jointsTextureSize;\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture2D(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture2D(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture2D(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture2D(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture2D(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform mat4 jointMatrices[50];\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nstruct StandardVertInput {\n vec2 uv;\n vec4 position;\n vec3 normal;\n vec4 tangent;\n vec4 color;\n};\nattribute vec3 a_position;\n#if CC_USE_ATTRIBUTE_UV0\nattribute vec2 a_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\nattribute vec4 a_color;\n#endif\n#if CC_USE_ATTRIBUTE_NORMAL\nattribute vec3 a_normal;\n#endif\n#if CC_USE_ATTRIBUTE_TANGENT\nattribute vec4 a_tangent;\n#endif\nvoid CCAttribute (out StandardVertInput In) {\n In.position = vec4(a_position, 1.0);\n #if CC_USE_ATTRIBUTE_UV0\n In.uv = a_uv0;\n #else\n In.uv = vec2(0.0);\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n In.color = a_color;\n #else\n In.color = vec4(1.0);\n #endif\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = a_normal;\n #else\n In.normal = vec3(0.0, 1.0, 0.0);\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = a_tangent;\n #else\n In.tangent = vec4(1.0, 0.0, 0.0, 0.0);\n #endif\n}\nvoid CCVertInput(out StandardVertInput In) {\n CCAttribute(In);\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n In.position = m * In.position;\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = (m * vec4(In.normal, 0)).xyz;\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = m * In.tangent;\n #endif\n #endif\n}\n#if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 0\n uniform mat4 cc_shadow_lightViewProjMatrix[2];\nuniform vec4 cc_shadow_info[2];\n #if CC_NUM_SHADOW_LIGHTS > 0\n uniform sampler2D cc_shadow_map_0;\n #endif\n #if CC_NUM_SHADOW_LIGHTS > 1\n uniform sampler2D cc_shadow_map_1;\n #endif\n varying vec4 v_posLightSpace[2];\n varying float v_depth[2];\n#endif\nvoid CCShadowInput (vec3 worldPos) {\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 0\n for (int i = 0; i < CC_NUM_SHADOW_LIGHTS; i++) {\n v_posLightSpace[i] = cc_shadow_lightViewProjMatrix[i] * vec4(worldPos, 1.0);\n v_depth[i] = (v_posLightSpace[i].z + cc_shadow_info[i].x) / (cc_shadow_info[i].x + cc_shadow_info[i].y);\n }\n #endif\n}\nuniform vec2 mainTiling;\nuniform vec2 mainOffset;\n#if CC_USE_ATTRIBUTE_UV0 && (USE_DIFFUSE_TEXTURE || USE_EMISSIVE_TEXTURE || USE_SPECULAR_TEXTURE || USE_NORMAL_TEXTURE)\n varying mediump vec2 v_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n varying lowp vec4 v_color;\n#endif\n#if USE_NORMAL_TEXTURE\n varying vec3 v_tangent;\n varying vec3 v_bitangent;\n#endif\nvarying vec3 v_worldNormal;\nvarying vec3 v_worldPos;\nvarying vec3 v_viewDirection;\nvoid main () {\n StandardVertInput In;\n CCVertInput(In);\n vec4 position = In.position;\n v_worldNormal = normalize((cc_matWorldIT * vec4(In.normal, 0)).xyz);\n v_worldPos = (cc_matWorld * position).xyz;\n v_viewDirection = normalize(cc_cameraPos.xyz - v_worldPos);\n #if CC_USE_ATTRIBUTE_UV0 && (USE_DIFFUSE_TEXTURE || USE_EMISSIVE_TEXTURE || USE_SPECULAR_TEXTURE || USE_NORMAL_TEXTURE)\n v_uv0 = In.uv * mainTiling + mainOffset;\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n v_color = In.color;\n #endif\n #if USE_NORMAL_TEXTURE\n v_tangent = normalize((cc_matWorld * vec4(In.tangent.xyz, 0.0)).xyz);\n v_bitangent = cross(v_worldNormal, v_tangent) * In.tangent.w;\n #endif\n CCShadowInput(v_worldPos);\n gl_Position = cc_matViewProj * cc_matWorld * position;\n}", + "frag": "\nprecision highp float;\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nuniform lowp vec4 diffuseColor;\nuniform lowp vec4 specularColor;\nuniform lowp vec4 emissiveColor;\nuniform float glossiness;\n#if USE_DIFFUSE_TEXTURE\n uniform sampler2D diffuseTexture;\n#endif\n#if USE_SPECULAR && USE_SPECULAR_TEXTURE\n uniform sampler2D specularTexture;\n#endif\n#if USE_EMISSIVE && USE_EMISSIVE_TEXTURE\n uniform sampler2D emissiveTexture;\n#endif\n#if USE_NORMAL_TEXTURE\n varying vec3 v_tangent;\n varying vec3 v_bitangent;\n uniform sampler2D normalTexture;\n#endif\nvarying vec3 v_worldNormal;\nvarying vec3 v_worldPos;\nvarying vec3 v_viewDirection;\n#if CC_USE_ATTRIBUTE_UV0 && (USE_DIFFUSE_TEXTURE || (USE_EMISSIVE && USE_EMISSIVE_TEXTURE) || (USE_SPECULAR && USE_SPECULAR_TEXTURE) || USE_NORMAL_TEXTURE)\n varying mediump vec2 v_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\n varying lowp vec4 v_color;\n#endif\n#if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 0\n uniform vec4 cc_shadow_info[2];\n #if CC_NUM_SHADOW_LIGHTS > 0\n uniform sampler2D cc_shadow_map_0;\n #endif\n #if CC_NUM_SHADOW_LIGHTS > 1\n uniform sampler2D cc_shadow_map_1;\n #endif\n varying vec4 v_posLightSpace[2];\n varying float v_depth[2];\n#endif\nfloat unpackRGBAToDepth(vec4 color) {\n return dot(color, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 160581375.0));\n}\nfloat getDepth(sampler2D shadowMap, vec2 shadowUV) {\n return unpackRGBAToDepth(texture2D(shadowMap, shadowUV));\n}\nfloat computeFallOff(float shadow, vec2 coords, float frustumEdgeFalloff) {\n return shadow;\n}\nfloat shadowSimple(sampler2D shadowMap, vec2 shadowUV, float currentDepth, float darkness) {\n float closestDepth = getDepth(shadowMap, shadowUV);\n return currentDepth > closestDepth ? 1.0 - darkness : 1.0;\n}\nfloat shadowPCF3X3(sampler2D shadowMap, vec2 shadowUV, float currentDepth, float darkness, float shadowSize) {\n float shadow = 0.0;\n for (int x = -1; x <= 1; ++x) {\n for (int y = -1; y <= 1; ++y) {\n float closestDepth = getDepth(shadowMap, shadowUV + vec2(x, y) * 1.0/shadowSize);\n shadow += currentDepth > closestDepth ? 1.0 - darkness : 1.0;\n }\n }\n shadow /= 9.0;\n return shadow;\n}\nfloat shadowPCF5X5(sampler2D shadowMap, vec2 shadowUV, float currentDepth, float darkness, float shadowSize) {\n float shadow = 0.0;\n for (int x = -2; x <= 2; ++x) {\n for (int y = -2; y <= 2; ++y) {\n float closestDepth = getDepth(shadowMap, shadowUV + vec2(x, y) * 1.0/shadowSize);\n shadow += currentDepth > closestDepth ? 1.0 - darkness : 1.0;\n }\n }\n shadow /= 25.0;\n return shadow;\n}\n#if CC_NUM_LIGHTS > 0\nuniform vec4 cc_lightPositionAndRange[4];\nuniform vec4 cc_lightDirection[4];\nuniform vec4 cc_lightColor[4];\n#endif\nstruct LightInfo {\n vec3 lightDir;\n vec3 radiance;\n vec4 lightColor;\n};\nLightInfo computeDirectionalLighting(\n vec4 lightDirection,\n vec4 lightColor\n) {\n LightInfo ret;\n ret.lightDir = -normalize(lightDirection.xyz);\n ret.radiance = lightColor.rgb;\n ret.lightColor = lightColor;\n return ret;\n}\nLightInfo computePointLighting(\n vec3 worldPosition,\n vec4 lightPositionAndRange,\n vec4 lightColor\n) {\n LightInfo ret;\n vec3 lightDir = lightPositionAndRange.xyz - worldPosition;\n float attenuation = max(0., 1.0 - length(lightDir) / lightPositionAndRange.w);\n ret.lightDir = normalize(lightDir);\n ret.radiance = lightColor.rgb * attenuation;\n ret.lightColor = lightColor;\n return ret;\n}\nLightInfo computeSpotLighting(\n vec3 worldPosition,\n vec4 lightPositionAndRange,\n vec4 lightDirection,\n vec4 lightColor\n) {\n LightInfo ret;\n vec3 lightDir = lightPositionAndRange.xyz - worldPosition;\n float attenuation = max(0., 1.0 - length(lightDir) / lightPositionAndRange.w);\n lightDir = normalize(lightDir);\n float cosConeAngle = max(0., dot(lightDirection.xyz, -lightDir));\n cosConeAngle = cosConeAngle < lightDirection.w ? 0. : cosConeAngle;\n cosConeAngle = pow(cosConeAngle, lightColor.w);\n ret.lightDir = lightDir;\n ret.radiance = lightColor.rgb * attenuation * cosConeAngle;\n ret.lightColor = lightColor;\n return ret;\n}\nstruct Lighting {\n vec3 diffuse;\n vec3 specular;\n};\nstruct PhongSurface {\n vec3 diffuse;\n vec3 emissive;\n vec3 specular;\n float opacity;\n float glossiness;\n vec3 position;\n vec3 normal;\n vec3 viewDirection;\n};\nLighting brdf (PhongSurface s, LightInfo info) {\n Lighting result;\n float ndh = 0.0;\n vec3 halfDir = normalize(s.viewDirection + info.lightDir);\n float NdotH = max(0.0, dot(s.normal, halfDir));\n NdotH = pow(NdotH, max(1.0, s.glossiness * 128.0));\n result.diffuse = info.radiance * max(0.0, dot(s.normal, info.lightDir));\n result.specular = info.radiance * NdotH;\n return result;\n}\nvec4 composePhongShading (Lighting lighting, PhongSurface s) {\n vec4 o = vec4(0.0, 0.0, 0.0, 1.0);\n o.rgb = lighting.diffuse * s.diffuse;\n #if USE_EMISSIVE\n o.rgb += s.emissive;\n #endif\n #if USE_SPECULAR\n o.rgb += lighting.specular * s.specular;\n #endif\n o.a = s.opacity;\n return o;\n}\nvec3 ambient(PhongSurface s, vec4 ambientColor) {\n return s.diffuse * ambientColor.rgb;\n}\nvec4 CCPhongShading (in PhongSurface s) {\n Lighting result;\n result.diffuse = vec3(0, 0, 0);\n result.specular = vec3(0, 0, 0);\n #if CC_NUM_LIGHTS > 0\n #if CC_LIGHT_0_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[0]);\n #else\n LightInfo info0;\n #if CC_LIGHT_0_TYPE == 0\n info0 = computeDirectionalLighting(cc_lightDirection[0], cc_lightColor[0]);\n #elif CC_LIGHT_0_TYPE == 1\n info0 = computePointLighting(s.position, cc_lightPositionAndRange[0], cc_lightColor[0]);\n #elif CC_LIGHT_0_TYPE == 2\n info0 = computeSpotLighting(s.position, cc_lightPositionAndRange[0], cc_lightDirection[0], cc_lightColor[0]);\n #endif\n Lighting result0 = brdf(s, info0);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 0\n float shadow_0 = 1.0;\n vec2 projCoords0 = v_posLightSpace[0].xy / v_posLightSpace[0].w;\n vec2 shadowUV0 = projCoords0 * 0.5 + vec2(0.5);\n if (shadowUV0.x >= 0.0 && shadowUV0.x <= 1.0 && shadowUV0.y >= 0.0 && shadowUV0.y <= 1.0) {\n float currentDepth0 = clamp(v_depth[0], 0.0, 1.0);\n #if CC_SHADOW_0_TYPE == 3\n shadow_0 = shadowPCF3X3(cc_shadow_map_0, shadowUV0, currentDepth0, cc_shadow_info[0].w, cc_shadow_info[0].z);\n #elif CC_SHADOW_0_TYPE == 4\n shadow_0 = shadowPCF5X5(cc_shadow_map_0, shadowUV0, currentDepth0, cc_shadow_info[0].w, cc_shadow_info[0].z);\n #else\n shadow_0 = shadowSimple(cc_shadow_map_0, shadowUV0, currentDepth0, cc_shadow_info[0].w);\n #endif\n shadow_0 = computeFallOff(shadow_0, projCoords0, 0.0);\n }\n result0.diffuse *= shadow_0;\n result0.specular *= shadow_0;\n #endif\n result.diffuse += result0.diffuse;\n result.specular += result0.specular;\n #endif\n #endif\n #if CC_NUM_LIGHTS > 1\n #if CC_LIGHT_1_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[1]);\n #else\n LightInfo info1;\n #if CC_LIGHT_1_TYPE == 0\n info1 = computeDirectionalLighting(cc_lightDirection[1], cc_lightColor[1]);\n #elif CC_LIGHT_1_TYPE == 1\n info1 = computePointLighting(s.position, cc_lightPositionAndRange[1], cc_lightColor[1]);\n #elif CC_LIGHT_1_TYPE == 2\n info1 = computeSpotLighting(s.position, cc_lightPositionAndRange[1], cc_lightDirection[1], cc_lightColor[1]);\n #endif\n Lighting result1 = brdf(s, info1);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 1\n float shadow_1 = 1.0;\n vec2 projCoords1 = v_posLightSpace[1].xy / v_posLightSpace[1].w;\n vec2 shadowUV1 = projCoords1 * 0.5 + vec2(0.5);\n if (shadowUV1.x >= 0.0 && shadowUV1.x <= 1.0 && shadowUV1.y >= 0.0 && shadowUV1.y <= 1.0) {\n float currentDepth1 = clamp(v_depth[1], 0.0, 1.0);\n #if CC_SHADOW_1_TYPE == 3\n shadow_1 = shadowPCF3X3(cc_shadow_map_1, shadowUV1, currentDepth1, cc_shadow_info[1].w, cc_shadow_info[1].z);\n #elif CC_SHADOW_1_TYPE == 4\n shadow_1 = shadowPCF5X5(cc_shadow_map_1, shadowUV1, currentDepth1, cc_shadow_info[1].w, cc_shadow_info[1].z);\n #else\n shadow_1 = shadowSimple(cc_shadow_map_1, shadowUV1, currentDepth1, cc_shadow_info[1].w);\n #endif\n shadow_1 = computeFallOff(shadow_1, projCoords1, 0.0);\n }\n result1.diffuse *= shadow_1;\n result1.specular *= shadow_1;\n #endif\n result.diffuse += result1.diffuse;\n result.specular += result1.specular;\n #endif\n #endif\n #if CC_NUM_LIGHTS > 2\n #if CC_LIGHT_2_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[2]);\n #else\n LightInfo info2;\n #if CC_LIGHT_2_TYPE == 0\n info2 = computeDirectionalLighting(cc_lightDirection[2], cc_lightColor[2]);\n #elif CC_LIGHT_2_TYPE == 1\n info2 = computePointLighting(s.position, cc_lightPositionAndRange[2], cc_lightColor[2]);\n #elif CC_LIGHT_2_TYPE == 2\n info2 = computeSpotLighting(s.position, cc_lightPositionAndRange[2], cc_lightDirection[2], cc_lightColor[2]);\n #endif\n Lighting result2 = brdf(s, info2);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 2\n float shadow_2 = 1.0;\n vec2 projCoords2 = v_posLightSpace[2].xy / v_posLightSpace[2].w;\n vec2 shadowUV2 = projCoords2 * 0.5 + vec2(0.5);\n if (shadowUV2.x >= 0.0 && shadowUV2.x <= 1.0 && shadowUV2.y >= 0.0 && shadowUV2.y <= 1.0) {\n float currentDepth2 = clamp(v_depth[2], 0.0, 1.0);\n #if CC_SHADOW_2_TYPE == 3\n shadow_2 = shadowPCF3X3(cc_shadow_map_2, shadowUV2, currentDepth2, cc_shadow_info[2].w, cc_shadow_info[2].z);\n #elif CC_SHADOW_2_TYPE == 4\n shadow_2 = shadowPCF5X5(cc_shadow_map_2, shadowUV2, currentDepth2, cc_shadow_info[2].w, cc_shadow_info[2].z);\n #else\n shadow_2 = shadowSimple(cc_shadow_map_2, shadowUV2, currentDepth2, cc_shadow_info[2].w);\n #endif\n shadow_2 = computeFallOff(shadow_2, projCoords2, 0.0);\n }\n result2.diffuse *= shadow_2;\n result2.specular *= shadow_2;\n #endif\n result.diffuse += result2.diffuse;\n result.specular += result2.specular;\n #endif\n #endif\n #if CC_NUM_LIGHTS > 3\n #if CC_LIGHT_3_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[3]);\n #else\n LightInfo info3;\n #if CC_LIGHT_3_TYPE == 0\n info3 = computeDirectionalLighting(cc_lightDirection[3], cc_lightColor[3]);\n #elif CC_LIGHT_3_TYPE == 1\n info3 = computePointLighting(s.position, cc_lightPositionAndRange[3], cc_lightColor[3]);\n #elif CC_LIGHT_3_TYPE == 2\n info3 = computeSpotLighting(s.position, cc_lightPositionAndRange[3], cc_lightDirection[3], cc_lightColor[3]);\n #endif\n Lighting result3 = brdf(s, info3);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 3\n float shadow_3 = 1.0;\n vec2 projCoords3 = v_posLightSpace[3].xy / v_posLightSpace[3].w;\n vec2 shadowUV3 = projCoords3 * 0.5 + vec2(0.5);\n if (shadowUV3.x >= 0.0 && shadowUV3.x <= 1.0 && shadowUV3.y >= 0.0 && shadowUV3.y <= 1.0) {\n float currentDepth3 = clamp(v_depth[3], 0.0, 1.0);\n #if CC_SHADOW_3_TYPE == 3\n shadow_3 = shadowPCF3X3(cc_shadow_map_3, shadowUV3, currentDepth3, cc_shadow_info[3].w, cc_shadow_info[3].z);\n #elif CC_SHADOW_3_TYPE == 4\n shadow_3 = shadowPCF5X5(cc_shadow_map_3, shadowUV3, currentDepth3, cc_shadow_info[3].w, cc_shadow_info[3].z);\n #else\n shadow_3 = shadowSimple(cc_shadow_map_3, shadowUV3, currentDepth3, cc_shadow_info[3].w);\n #endif\n shadow_3 = computeFallOff(shadow_3, projCoords3, 0.0);\n }\n result3.diffuse *= shadow_3;\n result3.specular *= shadow_3;\n #endif\n result.diffuse += result3.diffuse;\n result.specular += result3.specular;\n #endif\n #endif\n return composePhongShading(result, s);\n}\nvoid surf (out PhongSurface s) {\n vec4 diffuse = vec4(1, 1, 1, 1);\n #if CC_USE_ATTRIBUTE_COLOR\n diffuse *= v_color;\n #endif\n diffuse *= diffuseColor;\n #if USE_DIFFUSE_TEXTURE\n vec4 diffuseTexture_tmp = texture2D(diffuseTexture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_diffuseTexture\n diffuseTexture_tmp.a *= texture2D(diffuseTexture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n diffuse.rgb *= (diffuseTexture_tmp.rgb * diffuseTexture_tmp.rgb);\n diffuse.a *= diffuseTexture_tmp.a;\n #else\n diffuse *= diffuseTexture_tmp;\n #endif\n #endif\n ALPHA_TEST(diffuse);\n s.diffuse = diffuse.rgb;\n s.opacity = diffuse.a;\n #if USE_EMISSIVE\n s.emissive = emissiveColor.rgb;\n #if USE_EMISSIVE_TEXTURE\n vec4 emissiveTexture_tmp = texture2D(emissiveTexture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_emissiveTexture\n emissiveTexture_tmp.a *= texture2D(emissiveTexture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n s.emissive.rgb *= (emissiveTexture_tmp.rgb * emissiveTexture_tmp.rgb);\n #else\n s.emissive.rgb *= emissiveTexture_tmp.rgb;\n #endif\n #endif\n #endif\n #if USE_SPECULAR\n s.specular = specularColor.rgb;\n #if USE_SPECULAR_TEXTURE\n vec4 specularTexture_tmp = texture2D(specularTexture, v_uv0);\n #if CC_USE_ALPHA_ATLAS_specularTexture\n specularTexture_tmp.a *= texture2D(specularTexture, v_uv0 + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n s.specular.rgb *= (specularTexture_tmp.rgb * specularTexture_tmp.rgb);\n #else\n s.specular.rgb *= specularTexture_tmp.rgb;\n #endif\n #endif\n #endif\n s.normal = v_worldNormal;\n #if USE_NORMAL_TEXTURE\n vec3 nmmp = texture2D(normalTexture, v_uv0).xyz - vec3(0.5);\n s.normal =\n nmmp.x * normalize(v_tangent) +\n nmmp.y * normalize(v_bitangent) +\n nmmp.z * normalize(s.normal);\n s.normal = normalize(s.normal);\n #endif\n s.position = v_worldPos;\n s.viewDirection = v_viewDirection;\n s.glossiness = glossiness;\n}\nvoid main () {\n PhongSurface s;\n surf(s);\n vec4 color = CCPhongShading(s);\n gl_FragColor = CCFragOutput(color);\n}" + }, + "builtins": { + "globals": { + "blocks": [ + { + "name": "CCGlobal", + "defines": [] + }, + { + "name": "CC_SHADOW", + "defines": [ + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ] + }, + { + "name": "CCLIGHTS", + "defines": [ + "CC_NUM_LIGHTS" + ] + } + ], + "samplers": [ + { + "name": "cc_shadow_map_0", + "defines": [ + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ] + }, + { + "name": "cc_shadow_map_1", + "defines": [ + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ] + } + ] + }, + "locals": { + "blocks": [ + { + "name": "CCLocal", + "defines": [] + } + ], + "samplers": [] + } + }, + "defines": [ + { + "name": "CC_USE_SKINNING", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_JOINTS_TEXTRUE", + "type": "boolean", + "defines": [ + "CC_USE_SKINNING" + ] + }, + { + "name": "CC_JOINTS_TEXTURE_FLOAT32", + "type": "boolean", + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ] + }, + { + "name": "CC_USE_ATTRIBUTE_UV0", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ATTRIBUTE_COLOR", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ATTRIBUTE_NORMAL", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ATTRIBUTE_TANGENT", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_SHADOW_MAP", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_NUM_SHADOW_LIGHTS", + "type": "number", + "defines": [ + "CC_USE_SHADOW_MAP" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "USE_DIFFUSE_TEXTURE", + "type": "boolean", + "defines": [] + }, + { + "name": "USE_NORMAL_TEXTURE", + "type": "boolean", + "defines": [] + }, + { + "name": "OUTPUT_TO_GAMMA", + "type": "boolean", + "defines": [] + }, + { + "name": "USE_ALPHA_TEST", + "type": "boolean", + "defines": [] + }, + { + "name": "USE_SPECULAR", + "type": "boolean", + "defines": [] + }, + { + "name": "USE_SPECULAR_TEXTURE", + "type": "boolean", + "defines": [ + "USE_SPECULAR" + ] + }, + { + "name": "USE_EMISSIVE", + "type": "boolean", + "defines": [] + }, + { + "name": "USE_EMISSIVE_TEXTURE", + "type": "boolean", + "defines": [ + "USE_EMISSIVE" + ] + }, + { + "name": "CC_NUM_LIGHTS", + "type": "number", + "defines": [], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_LIGHT_0_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_SHADOW_0_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS", + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_LIGHT_1_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_SHADOW_1_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS", + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_LIGHT_2_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_SHADOW_2_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS", + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_LIGHT_3_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_SHADOW_3_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS", + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_USE_ALPHA_ATLAS_diffuseTexture", + "type": "boolean", + "defines": [ + "USE_DIFFUSE_TEXTURE" + ] + }, + { + "name": "INPUT_IS_GAMMA", + "type": "boolean", + "defines": [ + "USE_DIFFUSE_TEXTURE" + ] + }, + { + "name": "CC_USE_ALPHA_ATLAS_emissiveTexture", + "type": "boolean", + "defines": [ + "USE_EMISSIVE", + "USE_EMISSIVE_TEXTURE" + ] + }, + { + "name": "CC_USE_ALPHA_ATLAS_specularTexture", + "type": "boolean", + "defines": [ + "USE_SPECULAR", + "USE_SPECULAR_TEXTURE" + ] + } + ], + "blocks": [ + { + "name": "SKINNING", + "members": [ + { + "name": "jointsTextureSize", + "type": 14, + "count": 1 + } + ], + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ], + "binding": 0 + }, + { + "name": "JOINT_MATRIX", + "members": [ + { + "name": "jointMatrices", + "type": 26, + "count": 50 + } + ], + "defines": [ + "CC_USE_SKINNING" + ], + "binding": 1 + }, + { + "name": "MAIN_TILING", + "members": [ + { + "name": "mainTiling", + "type": 14, + "count": 1 + }, + { + "name": "mainOffset", + "type": 14, + "count": 1 + } + ], + "defines": [], + "binding": 2 + }, + { + "name": "ALPHA_TEST", + "members": [ + { + "name": "alphaThreshold", + "type": 13, + "count": 1 + } + ], + "defines": [ + "USE_ALPHA_TEST" + ], + "binding": 3 + }, + { + "name": "PhongFrag", + "members": [ + { + "name": "diffuseColor", + "type": 16, + "count": 1 + }, + { + "name": "specularColor", + "type": 16, + "count": 1 + }, + { + "name": "emissiveColor", + "type": 16, + "count": 1 + }, + { + "name": "glossiness", + "type": 13, + "count": 1 + } + ], + "defines": [], + "binding": 4 + } + ], + "samplers": [ + { + "name": "jointsTexture", + "type": 29, + "count": 1, + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ], + "binding": 30 + }, + { + "name": "diffuseTexture", + "type": 29, + "count": 1, + "defines": [ + "USE_DIFFUSE_TEXTURE" + ], + "binding": 31 + }, + { + "name": "specularTexture", + "type": 29, + "count": 1, + "defines": [ + "USE_SPECULAR", + "USE_SPECULAR_TEXTURE" + ], + "binding": 32 + }, + { + "name": "emissiveTexture", + "type": 29, + "count": 1, + "defines": [ + "USE_EMISSIVE", + "USE_EMISSIVE_TEXTURE" + ], + "binding": 33 + }, + { + "name": "normalTexture", + "type": 29, + "count": 1, + "defines": [ + "USE_NORMAL_TEXTURE" + ], + "binding": 34 + } + ], + "record": null, + "name": "builtin-phong|phong-vs|phong-fs" + }, + { + "hash": 1165371292, + "glsl3": { + "vert": "\nprecision highp float;\nin vec3 a_position;\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nuniform CC_SHADOW_MAP {\n mat4 cc_shadow_map_lightViewProjMatrix;\n vec4 cc_shadow_map_info;\n float cc_shadow_map_bias;\n};\nout float v_depth;\n#if CC_USE_SKINNING\n in vec4 a_weights;\n in vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform SKINNING {\n vec2 jointsTextureSize;\n };\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform JOINT_MATRIX {\n mat4 jointMatrices[50];\n };\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nvoid SKIN_VERTEX(inout vec4 a1) {\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n a1 = m * a1;\n #endif\n}\nvoid SKIN_VERTEX(inout vec4 a1, inout vec4 a2) {\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n a1 = m * a1;\n a2 = m * a2;\n #endif\n}\nvoid SKIN_VERTEX(inout vec4 a1, inout vec4 a2, inout vec4 a3) {\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n a1 = m * a1;\n a2 = m * a2;\n a3 = m * a3;\n #endif\n}\nvoid main () {\n vec4 position = vec4(a_position, 1);\n SKIN_VERTEX(position);\n gl_Position = cc_shadow_map_lightViewProjMatrix * cc_matWorld * position;\n v_depth = ((gl_Position.z + cc_shadow_map_info.x) / (cc_shadow_map_info.x + cc_shadow_map_info.y)) + cc_shadow_map_bias;\n}", + "frag": "\nprecision highp float;\nin float v_depth;\nvec4 packDepthToRGBA(float depth) {\n vec4 ret = vec4(1.0, 255.0, 65025.0, 160581375.0) * depth;\n ret = fract(ret);\n ret -= ret.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n return ret;\n}\nvoid main () {\n gl_FragColor = packDepthToRGBA(v_depth);\n}" + }, + "glsl1": { + "vert": "\nprecision highp float;\nattribute vec3 a_position;\nuniform mat4 cc_matWorld;\nuniform mat4 cc_shadow_map_lightViewProjMatrix;\nuniform vec4 cc_shadow_map_info;\nuniform float cc_shadow_map_bias;\nvarying float v_depth;\n#if CC_USE_SKINNING\n attribute vec4 a_weights;\n attribute vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform vec2 jointsTextureSize;\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture2D(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture2D(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture2D(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture2D(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture2D(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform mat4 jointMatrices[50];\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nvoid SKIN_VERTEX(inout vec4 a1) {\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n a1 = m * a1;\n #endif\n}\nvoid SKIN_VERTEX(inout vec4 a1, inout vec4 a2) {\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n a1 = m * a1;\n a2 = m * a2;\n #endif\n}\nvoid SKIN_VERTEX(inout vec4 a1, inout vec4 a2, inout vec4 a3) {\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n a1 = m * a1;\n a2 = m * a2;\n a3 = m * a3;\n #endif\n}\nvoid main () {\n vec4 position = vec4(a_position, 1);\n SKIN_VERTEX(position);\n gl_Position = cc_shadow_map_lightViewProjMatrix * cc_matWorld * position;\n v_depth = ((gl_Position.z + cc_shadow_map_info.x) / (cc_shadow_map_info.x + cc_shadow_map_info.y)) + cc_shadow_map_bias;\n}", + "frag": "\nprecision highp float;\nvarying float v_depth;\nvec4 packDepthToRGBA(float depth) {\n vec4 ret = vec4(1.0, 255.0, 65025.0, 160581375.0) * depth;\n ret = fract(ret);\n ret -= ret.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n return ret;\n}\nvoid main () {\n gl_FragColor = packDepthToRGBA(v_depth);\n}" + }, + "builtins": { + "globals": { + "blocks": [ + { + "name": "CC_SHADOW_MAP", + "defines": [] + } + ], + "samplers": [] + }, + "locals": { + "blocks": [ + { + "name": "CCLocal", + "defines": [] + } + ], + "samplers": [] + } + }, + "defines": [ + { + "name": "CC_USE_SKINNING", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_JOINTS_TEXTRUE", + "type": "boolean", + "defines": [ + "CC_USE_SKINNING" + ] + }, + { + "name": "CC_JOINTS_TEXTURE_FLOAT32", + "type": "boolean", + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ] + } + ], + "blocks": [ + { + "name": "SKINNING", + "members": [ + { + "name": "jointsTextureSize", + "type": 14, + "count": 1 + } + ], + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ], + "binding": 0 + }, + { + "name": "JOINT_MATRIX", + "members": [ + { + "name": "jointMatrices", + "type": 26, + "count": 50 + } + ], + "defines": [ + "CC_USE_SKINNING" + ], + "binding": 1 + } + ], + "samplers": [ + { + "name": "jointsTexture", + "type": 29, + "count": 1, + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ], + "binding": 30 + } + ], + "record": null, + "name": "builtin-phong|shadow-map-vs|shadow-map-fs" + } + ] +} \ No newline at end of file diff --git a/library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js b/library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js new file mode 100644 index 0000000..df44c03 --- /dev/null +++ b/library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js @@ -0,0 +1,536 @@ +"use strict"; +cc._RF.push(module, 'b0432BA295DjIOcuitdGKO1', 'GameManager'); +// Script/GameManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +// 主游戏控制类 +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var GameManager = /** @class */ (function (_super) { + __extends(GameManager, _super); + function GameManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.kuang1_Prefab = null; + _this.kuang2_Prefab = null; + _this.Block = null; + _this.TimeLabel = null; + _this.LevelLabel = null; + _this.Guide = null; + _this.progress = null; //-95 640 + _this.Top = null; //80 -725 + return _this; + } + GameManager.prototype.onLoad = function () { + this.guide_State = false; + this.level = cc.fx.GameConfig.GM_INFO.level; + this.guide_Level = cc.fx.GameConfig.GM_INFO.guide_Level; + this.LevelLabel.string = (this.level + 1) + ""; + this.progress.fillRange = cc.fx.GameConfig.GM_INFO.score / 24; + if (this.progress.fillRange >= 0.2) + this.Top.getChildByName("star1").active = true; + if (this.progress.fillRange >= 0.5) + this.Top.getChildByName("star2").active = true; + if (this.progress.fillRange >= 0.8) + this.Top.getChildByName("star3").active = true; + if ((this.level == 0 && this.guide_Level == 4) || + (this.level == 4 && this.guide_Level == 3) || + (this.level == 8 && this.guide_Level == 1)) { + this.openGuide(false); + } + else { + this.LevelLabel.node.active = true; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "第 轮"; + this.init(); + } + }; + GameManager.prototype.init = function () { + var _this = this; + if (this.level == 4 && this.guide_Level == 2) { + cc.fx.GameConfig.GM_INFO.guide_Level -= 1; + this.guide_State = true; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + // this.node.getChildByName("tip").active = true; + } + this.result = 0; + this.countTime = 6; + this.TimeLabel.string = cc.fx.GameTool.getTimeMargin(this.countTime); + this.createBlock(); + setTimeout(function () { + _this.createCustom(); + }, 1000); + }; + GameManager.prototype.openGuide = function (type) { + this.Guide.active = true; + this.guide_State = true; + // this.node.getChildByName("tip").active = true; + if (!type) + cc.fx.GameConfig.GM_INFO.guide_Level -= 1; + this.Guide.getChildByName("one").active = false; + this.Guide.getChildByName("two").active = false; + this.Guide.getChildByName("three").active = false; + this.Guide.getChildByName("four").active = false; + var name = "one"; + if (this.level == 0) { + name = "one"; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + } + else if (this.level == 4) { + name = "two"; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + } + else if (this.level == 8) { + name = "three"; + this.guide_State = false; + } + if (type) + name = "four"; + this.Guide.getChildByName(name).active = true; + cc.tween(this.Guide.getChildByName(name)) + .to(0.5, { opacity: 255 }) + .start(); + }; + GameManager.prototype.closeGuide = function () { + if (this.Guide.getChildByName("four").active) { + this.Guide.active = false; + cc.director.loadScene("GameScene"); + } + else { + this.Guide.active = false; + this.init(); + } + // + }; + //创建方块地图 + GameManager.prototype.createBlock = function () { + this.outside_Array = []; + this.inside_Array = []; + this.outside = []; + this.inside = []; + for (var i = 0; i < 16; i++) { + var block = cc.instantiate(this.kuang1_Prefab); + block.getComponent("Block").setId(i); + block.parent = this.Block.getChildByName("outside"); + var x = void 0, y = 0; + if (i < 5) { + x = -284 + 142 * i; + y = 259; + } + else if (i < 9) { + x = 284; + y = 259 - (i - 4) * 142; + } + else if (i < 13) { + x = 284 - (i - 8) * 142; + y = -309; + } + else if (i < 16) { + x = -284; + y = -309 + (i - 12) * 142; + } + block.setPosition(x, y); + this.outside_Array.push(block); + } + for (var j = 3; j < 12; j++) { + var block = cc.instantiate(this.kuang2_Prefab); + block.getComponent("Block").setId(j); + block.parent = this.Block.getChildByName("inside"); + block.setPosition(-132 + j % 3 * 132, 239 - parseInt(j / 3 + "") * 132); + this.inside_Array.push(block); + } + }; + //创建关卡 + GameManager.prototype.createCustom = function () { + //初始化关卡配置数据 + this.level = cc.fx.GameConfig.GM_INFO.level; + this.LevelLabel.string = (this.level + 1) + ""; + this.config = cc.fx.GameConfig.LEVEL_INFO[this.level]; + if (this.level == 4 && this.guide_Level == 2) { + this.config = cc.fx.GameConfig.LEVEL_INFO[6]; + } + this.pass = false; + //放正确答案和错误答案 + this.answerInsideTexture = Math.floor(Math.random() * 14 + 1); + //内圈错误答案随机 + this.insideTexture = []; + this.outsideTexture = []; + for (var k = 0; k < 14; k++) { + if ((k + 1) != this.answerInsideTexture) { + this.insideTexture.push(k + 1); + } + } + cc.fx.GameTool.shuffleArray(this.insideTexture); + this.answerOutsideTexture = this.insideTexture[11]; + //分配正确答案和错误答案位置 + if (this.config["inside"] > 0) { + this.result += 1; + var random = Math.random() * 100; + var arrayTemp = [0, 1, 2, 3, 5, 6, 7, 8]; + if (this.config["insideType"] == 1) { + if (random >= 50) + this.inside = [0, 1, 2]; + else + this.inside = [6, 7, 8]; + } + else if (this.config["insideType"] == 2) { + if (random >= 50) + this.inside = [0, 3, 6]; + else + this.inside = [2, 5, 8]; + } + else { + this.inside = cc.fx.GameTool.shuffleArray(arrayTemp); + this.inside.splice(this.config["inside"], this.inside.length - this.config["inside"]); + } + this.answerInside = this.inside[Math.floor(Math.random() * this.inside.length)]; + } + //分配外圈正确答案和错误答案位置 + if (this.config["outside"] > 0) { + this.result += 1; + if (this.config["outsideType"] == 1) { + this.outside = [1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15]; + } + else if (this.config["outsideType"] == 2) { + this.outside = [0, 4, 8, 12]; + } + else { + this.outside = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; + } + cc.fx.GameTool.shuffleArray(this.outside); + this.answerOutside = this.outside[Math.floor(Math.random() * this.outside.length)]; + if (this.config["outside"] == 2) { + for (var j = 0; j < 15; j++) { + this.outsideTexture.push(this.insideTexture[3]); + } + } + else if (this.config["outside"] == 3) { + this.outsideTexture = [this.insideTexture[5], this.insideTexture[6], this.insideTexture[5], this.insideTexture[6], this.insideTexture[5]]; + for (var j = 0; j < 10; j++) { + var randomTemp = Math.random() * 100; + if (randomTemp > 50) + this.outsideTexture.push(this.insideTexture[5]); + else + this.outsideTexture.push(this.insideTexture[6]); + } + cc.fx.GameTool.shuffleArray(this.outsideTexture); + } + else if (this.config["outside"] == 4) { + this.outsideTexture = [this.insideTexture[2], this.insideTexture[4], this.insideTexture[6], + this.insideTexture[2], this.insideTexture[4], this.insideTexture[6]]; + for (var j = 0; j < 9; j++) { + var randomTemp = Math.random() * 100; + if (randomTemp < 33) + this.outsideTexture.push(this.insideTexture[2]); + else if (randomTemp < 66) + this.outsideTexture.push(this.insideTexture[4]); + else + this.outsideTexture.push(this.insideTexture[6]); + } + cc.fx.GameTool.shuffleArray(this.outsideTexture); + } + } + this.runBlock(); + }; + //块执行图片出现消失动画 + GameManager.prototype.runBlock = function () { + var _this = this; + if (this.config["inside"] > 0) { + this.inside_Array[4].getComponent("Block").answerShow(this.answerInsideTexture); + setTimeout(function () { + var insideNumber = 0; + for (var i = 0; i < _this.inside.length; i++) { + if (_this.inside[i] == _this.answerInside) + _this.inside_Array[_this.inside[i]].getComponent("Block").show(true, true, _this.answerInsideTexture); + else { + _this.inside_Array[_this.inside[i]].getComponent("Block").show(false, true, _this.insideTexture[insideNumber]); + insideNumber += 1; + } + } + }, this.config["showTime"] * 1000); + } + if (this.config["outside"] > 0) { + this.outside_Array[this.answerOutside].getComponent("Block").answerShow(this.answerOutsideTexture); + if (this.config["outside"] > 1) { + var outsideNumber = 0; + for (var i = 0; i < this.outside_Array.length; i++) { + if (i == this.answerOutside) + this.outside_Array[i].getComponent("Block").show(true, false, this.answerOutsideTexture); + else { + this.outside_Array[i].getComponent("Block").show(false, false, this.outsideTexture[outsideNumber]); + outsideNumber += 1; + } + } + } + setTimeout(function () { + var outsideNumber = 0; + for (var i = 0; i < _this.outside_Array.length; i++) { + if (i == _this.answerOutside) + _this.outside_Array[i].getComponent("Block").lockShow(true, false); + else { + _this.outside_Array[i].getComponent("Block").lockShow(false, false); + outsideNumber += 1; + } + } + }, this.config["showTime"] * 1000); + } + setTimeout(function () { + if (!_this.guide_State) { + _this.startTime = cc.fx.GameTool.getTime(); + _this.schedule(_this.updateCountDownTime, 1); + } + }, this.config["showTime"] * 1000); + }; + //正确 + GameManager.prototype.openResult = function (result) { + var _this = this; + this.result -= 1; + //非引导状态 + if (!this.guide_State) { + this.flipBlock(result); + if (this.result == 0) { + this.unschedule(this.updateCountDownTime); + setTimeout(function () { + _this.setData(result); + }, 1000); + setTimeout(function () { + if (cc.fx.GameConfig.GM_INFO.level < cc.fx.GameConfig.LEVEL_INFO.length - 1) { + cc.fx.GameConfig.GM_INFO.level += 1; + cc.director.loadScene("GameScene"); + } + }, 2000); + } + } + //引导状态下 + else { + if (result.result) { + this.flipBlock(result); + setTimeout(function () { + if (_this.level == 4 && cc.fx.GameConfig.GM_INFO.guide_Level == 2) { + cc.director.loadScene("GameScene"); + } + else + _this.openGuide(true); + }, 1000); + } + } + }; + //翻转形状变成问号 + GameManager.prototype.flipBlock = function (result) { + if (result.type) { + var pos = this.changePos(true, result.id); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.userChoiceInner.push(pos.x, pos.y); + for (var i = 0; i < this.inside.length; i++) { + if (this.inside[i] == this.answerInside) { + this.inside_Array[4].getChildByName("texture").active = true; + this.inside_Array[4].getChildByName("texture").opacity = 255; + this.inside_Array[this.inside[i]].getChildByName("yes").active = true; + var pos_1 = this.changePos(true, this.inside_Array[this.inside[i]].getComponent("Block")._idNumber); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.rightChoiceInner.push(pos_1.x, pos_1.y); + } + this.inside_Array[this.inside[i]].getComponent("Block")._touch = false; + } + if (result.result) { + this.addScore(); + } + } + else { + var pos = this.changePos(false, result.id); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.userChoiceOuter.push(pos.x, pos.y); + for (var i = 0; i < this.outside_Array.length; i++) { + this.outside_Array[i].getComponent("Block").lockHide(); + this.outside_Array[i].getChildByName("texture").active = true; + if (i == this.answerOutside) { + this.outside_Array[i].getChildByName("yes").active = true; + this.outside_Array[i].getComponent("Block").show(true, false, this.answerOutsideTexture); + var pos_2 = this.changePos(false, this.outside_Array[i].getComponent("Block")._idNumber); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.rightChoiceOuter.push(pos_2.x, pos_2.y); + } + } + if (result.result) { + this.addScore(); + } + } + }; + //加分 加进度条,加星星 + GameManager.prototype.addScore = function () { + var _this = this; + if (!this.guide_State) { + cc.fx.GameConfig.GM_INFO.score += 1; + var progress = cc.fx.GameConfig.GM_INFO.score / 24; + if (progress >= 1) + progress = 1; + cc.tween(this.progress) + .to(0.2, { fillRange: progress }) + .call(function () { + if (_this.Top.getChildByName("star1").active == false && progress >= 0.2) { + _this.Top.getChildByName("star1").active = true; + _this.Top.getChildByName("star1").opacity = 0; + _this.Top.getChildByName("star1").scale = 0.1; + cc.tween(_this.Top.getChildByName("star1")) + .to(0.3, { opacity: 255, scale: 1.1 }) + .to(0.1, { opacity: 255, scale: 0.9 }) + .to(0.1, { opacity: 255, scale: 1 }) + .start(); + } + if (_this.Top.getChildByName("star2").active == false && progress >= 0.5) { + _this.Top.getChildByName("star2").active = true; + _this.Top.getChildByName("star2").opacity = 0; + _this.Top.getChildByName("star2").scale = 0.1; + cc.tween(_this.Top.getChildByName("star2")) + .to(0.3, { opacity: 255, scale: 1.1 }) + .to(0.1, { opacity: 255, scale: 0.9 }) + .to(0.1, { opacity: 255, scale: 1 }) + .start(); + } + if (_this.Top.getChildByName("star3").active == false && progress >= 0.8) { + _this.Top.getChildByName("star3").active = true; + _this.Top.getChildByName("star3").opacity = 0; + _this.Top.getChildByName("star3").scale = 0.1; + cc.tween(_this.Top.getChildByName("star3")) + .to(0.3, { opacity: 255, scale: 1.1 }) + .to(0.1, { opacity: 255, scale: 0.9 }) + .to(0.1, { opacity: 255, scale: 1 }) + .start(); + } + }) + .start(); + } + }; + //返回首页 + GameManager.prototype.backScene = function () { + cc.director.loadScene("LoadScene"); + }; + //重新开始 + GameManager.prototype.reStart = function () { + }; + //获取时间戳 + GameManager.prototype.getTime = function () { + var timestamp = new Date().getTime(); + return timestamp; + }; + //获胜 + GameManager.prototype.passLevel = function () { + }; + //失败 + GameManager.prototype.loseLevel = function (type) { + }; + GameManager.prototype.changePos = function (type, num) { + var x = 0; + var y = 0; + //内部 + if (type) { + y = parseInt(num / 3 + ""); + x = num % 3; + } + //外部 + else { + if (num < 5) { + y = 0; + x = num; + } + else if (num < 9) { + x = 5; + y = num - 4; + } + else if (num < 13) { + y = 4; + x = 12 - num; + } + else if (num < 16) { + x = 0; + y = 16 - num; + } + } + var jg = cc.v2(x, y); + return jg; + }; + //如果是倒计时 调用此方法 + GameManager.prototype.updateCountDownTime = function () { + if (this.countTime > 0) { + this.countTime -= 1; + // this.TimeLabel.string =this.countTime + ""; + this.TimeLabel.string = cc.fx.GameTool.getTimeMargin(this.countTime); + if (this.countTime <= 0) { + this.unschedule(this.updateCountDownTime); + this.node.getChildByName("Mask").active = true; + var data = { "result": false, "type": true, "id": null }; + if (this.config["inside"] > 0) + cc.fx.Notifications.emit("result", data); + var data2 = { "result": false, "type": false, "id": null }; + if (this.config["outside"] > 0) + cc.fx.Notifications.emit("result", data2); + } + } + }; + //上传每次操作数据 + GameManager.prototype.setData = function (result) { + cc.fx.GameConfig.CLICK_DATA.success = result.result; + cc.fx.GameConfig.CLICK_DATA.round = (cc.fx.GameConfig.GM_INFO.level + 1); + cc.fx.GameConfig.CLICK_DATA.duration = new Date().getTime() - this.startTime - 1000; + cc.fx.GameTool.setGameData(); + }; + GameManager.prototype.onEnable = function () { + cc.fx.Notifications.on("result", this.openResult, this); + }; + GameManager.prototype.onDisable = function () { + cc.fx.Notifications.off("result", this.openResult, this); + }; + GameManager.prototype.update = function (dt) { + }; + __decorate([ + property(cc.Prefab) + ], GameManager.prototype, "kuang1_Prefab", void 0); + __decorate([ + property(cc.Prefab) + ], GameManager.prototype, "kuang2_Prefab", void 0); + __decorate([ + property(cc.Node) + ], GameManager.prototype, "Block", void 0); + __decorate([ + property(cc.Label) + ], GameManager.prototype, "TimeLabel", void 0); + __decorate([ + property(cc.Label) + ], GameManager.prototype, "LevelLabel", void 0); + __decorate([ + property(cc.Node) + ], GameManager.prototype, "Guide", void 0); + __decorate([ + property(cc.Sprite) + ], GameManager.prototype, "progress", void 0); + __decorate([ + property(cc.Node) + ], GameManager.prototype, "Top", void 0); + GameManager = __decorate([ + ccclass + ], GameManager); + return GameManager; +}(cc.Component)); +exports.default = GameManager; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js.map b/library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js.map new file mode 100644 index 0000000..742c686 --- /dev/null +++ b/library/imports/b0/b0432040-dbde-438c-839c-ba2b5d18a3b5.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\GameManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS;AACH,IAAA,KAAsB,EAAE,CAAC,UAAU,EAAlC,OAAO,aAAA,EAAE,QAAQ,cAAiB,CAAC;AAE1C;IAAyC,+BAAY;IAArD;QAAA,qEA8eC;QA5eG,mBAAa,GAAc,IAAI,CAAC;QAEhC,mBAAa,GAAc,IAAI,CAAC;QAEhC,WAAK,GAAY,IAAI,CAAC;QAEtB,eAAS,GAAa,IAAI,CAAC;QAE3B,gBAAU,GAAa,IAAI,CAAC;QAE5B,WAAK,GAAY,IAAI,CAAC;QAGtB,cAAQ,GAAc,IAAI,CAAC,CAAC,SAAS;QAErC,SAAG,GAAY,IAAI,CAAC,CAAA,SAAS;;IA6djC,CAAC;IAncG,4BAAM,GAAN;QACI,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,GAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAC,EAAE,CAAC;QAC5D,IAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAG,GAAG;YAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QACjF,IAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAG,GAAG;YAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QACjF,IAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAG,GAAG;YAAE,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QACjF,IAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;YAC7C,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;YAC1C,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,EAAC;YACvC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACzB;aACG;YACA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC;YACtG,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;IACL,CAAC;IAED,0BAAI,GAAJ;QAAA,iBAgBC;QAfG,IAAG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE;YAC1C,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;YACpG,oDAAoD;SACnD;QAED,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,UAAU,CAAC;YACP,KAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC,EAAE,IAAI,CAAC,CAAC;IACb,CAAC;IAED,+BAAS,GAAT,UAAU,IAAI;QACV,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,iDAAiD;QACjD,IAAG,CAAC,IAAI;YAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACjD,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,IAAG,IAAI,CAAC,KAAK,IAAI,CAAC,EAAC;YACf,IAAI,GAAG,KAAK,CAAC;YACb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;SACpG;aACI,IAAG,IAAI,CAAC,KAAK,IAAI,CAAC,EAAC;YACpB,IAAI,GAAG,KAAK,CAAC;YACb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC;SACpG;aACI,IAAG,IAAI,CAAC,KAAK,IAAI,CAAC,EAAC;YACpB,IAAI,GAAG,OAAO,CAAC;YACf,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;SAC5B;QACD,IAAG,IAAI;YAAE,IAAI,GAAG,MAAM,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9C,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aACxC,EAAE,CAAC,GAAG,EAAC,EAAC,OAAO,EAAC,GAAG,EAAC,CAAC;aACrB,KAAK,EAAE,CAAC;IACb,CAAC;IAED,gCAAU,GAAV;QACI,IAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAC;YACxC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;YAC1B,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;SACtC;aACG;YACA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;QACD,GAAG;IAEP,CAAC;IAED,QAAQ;IACR,iCAAW,GAAX;QACI,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,EAAE,EAAE,CAAC,EAAE,EAAC;YACnB,IAAI,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/C,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACpD,IAAI,CAAC,SAAA,EAAC,CAAC,GAAG,CAAC,CAAC;YACZ,IAAG,CAAC,GAAG,CAAC,EAAC;gBACL,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAC,CAAC,CAAC;gBAAC,CAAC,GAAG,GAAG,CAAC;aAC7B;iBACI,IAAG,CAAC,GAAG,CAAC,EAAC;gBACV,CAAC,GAAG,GAAG,CAAC;gBAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,GAAG,CAAC;aAChC;iBACI,IAAG,CAAC,GAAG,EAAE,EAAC;gBACX,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,CAAC,GAAG,CAAC;aACjC;iBACI,IAAG,CAAC,GAAG,EAAE,EAAC;gBACX,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAC,EAAE,CAAC,GAAC,GAAG,CAAC;aACnC;YACD,KAAK,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClC;QACD,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,EAAE,EAAE,CAAC,EAAE,EAAC;YACnB,IAAI,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/C,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YACnD,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,GAAC,CAAC,GAAC,CAAC,GAAC,GAAG,EAAC,GAAG,GAAC,QAAQ,CAAC,CAAC,GAAC,CAAC,GAAG,EAAE,CAAC,GAAC,GAAG,CAAC,CAAC;YAC3D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;IACL,CAAC;IAED,MAAM;IACN,kCAAY,GAAZ;QACI,WAAW;QACX,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,GAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,IAAG,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,EAAE;YACzC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SAChD;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,YAAY;QACZ,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5D,UAAU;QACV,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,EAAE,EAAE,CAAC,EAAE,EAAC;YACnB,IAAG,CAAC,CAAC,GAAC,CAAC,CAAC,IAAI,IAAI,CAAC,mBAAmB,EAAC;gBACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC;aAChC;SACJ;QACD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAEnD,eAAe;QACf,IAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAC;YACzB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;YACjB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAC,GAAG,CAAC;YAC/B,IAAI,SAAS,GAAG,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;YAElC,IAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC;gBAC9B,IAAG,MAAM,IAAI,EAAE;oBAAE,IAAI,CAAC,MAAM,GAAI,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;;oBACnC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;aAC9B;iBACI,IAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC;gBACnC,IAAG,MAAM,IAAI,EAAE;oBAAE,IAAI,CAAC,MAAM,GAAI,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;;oBACnC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;aAC9B;iBACG;gBACA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBACrD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;aACtF;YACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;SACjF;QACD,iBAAiB;QACjB,IAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAC;YAC1B,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;YACjB,IAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC;gBAC/B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC;aACjD;iBACI,IAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAC;gBACpC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC;aAC7B;iBACG;gBACA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC;aAC1D;YACD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YACjF,IAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC;gBAC3B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,EAAE,EAAE,CAAC,EAAE,EAAC;oBACnB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnD;aACJ;iBACI,IAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC;gBAChC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtI,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,EAAE,EAAE,CAAC,EAAE,EAAC;oBACnB,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,GAAC,GAAG,CAAC;oBACnC,IAAG,UAAU,GAAC,EAAE;wBAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;;wBAC7D,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;iBACxD;gBACD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACpD;iBACI,IAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC;gBAChC,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;oBACxF,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnE,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAAC;oBAClB,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,GAAC,GAAG,CAAC;oBACnC,IAAG,UAAU,GAAC,EAAE;wBAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;yBAC7D,IAAG,UAAU,GAAC,EAAE;wBAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;;wBAClE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;iBACxD;gBACD,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACpD;SACJ;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,aAAa;IACb,8BAAQ,GAAR;QAAA,iBAgDC;QA/CG,IAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAC;YACzB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAChF,UAAU,CAAC;gBACP,IAAI,YAAY,GAAG,CAAC,CAAC;gBACrB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,KAAI,CAAC,MAAM,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;oBAClC,IAAG,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAI,CAAC,YAAY;wBAClC,KAAI,CAAC,YAAY,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,EAAC,KAAI,CAAC,mBAAmB,CAAC,CAAC;yBACjG;wBACA,KAAI,CAAC,YAAY,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAC,IAAI,EAAC,KAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;wBAC1G,YAAY,IAAI,CAAC,CAAC;qBACrB;iBACJ;YACL,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAC,IAAI,CAAC,CAAC;SAEpC;QACD,IAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAC;YAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACnG,IAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,EAAC;gBAC1B,IAAI,aAAa,GAAG,CAAC,CAAC;gBACtB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;oBACzC,IAAG,CAAC,IAAI,IAAI,CAAC,aAAa;wBACtB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,KAAK,EAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;yBACtF;wBACD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAC,KAAK,EAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;wBACjG,aAAa,IAAI,CAAC,CAAC;qBACtB;iBACJ;aACJ;YACD,UAAU,CAAC;gBACP,IAAI,aAAa,GAAG,CAAC,CAAC;gBACtB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,KAAI,CAAC,aAAa,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;oBACzC,IAAG,CAAC,IAAI,KAAI,CAAC,aAAa;wBACtB,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC;yBAChE;wBACD,KAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAC,KAAK,CAAC,CAAC;wBAClE,aAAa,IAAI,CAAC,CAAC;qBACtB;iBACJ;YACL,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAC,IAAI,CAAC,CAAC;SACpC;QACD,UAAU,CAAC;YACP,IAAG,CAAC,KAAI,CAAC,WAAW,EAAC;gBACjB,KAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC1C,KAAI,CAAC,QAAQ,CAAC,KAAI,CAAC,mBAAmB,EAAC,CAAC,CAAC,CAAC;aAC7C;QAEL,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,IAAI;IACJ,gCAAU,GAAV,UAAW,MAAM;QAAjB,iBAgCC;QA/BG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QACjB,OAAO;QACP,IAAG,CAAC,IAAI,CAAC,WAAW,EAAC;YACjB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACvB,IAAG,IAAI,CAAC,MAAM,IAAI,CAAC,EAAC;gBAChB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC1C,UAAU,CAAC;oBACP,KAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACzB,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,UAAU,CAAC;oBACP,IAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAC,CAAC,EAAC;wBACrE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;wBACpC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;qBACtC;gBACL,CAAC,EAAE,IAAI,CAAC,CAAC;aACZ;SACJ;QACD,OAAO;aACH;YACA,IAAG,MAAM,CAAC,MAAM,EAAC;gBACb,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACvB,UAAU,CAAC;oBACP,IAAG,KAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,EAAC;wBAC5D,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;qBACtC;;wBACI,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC,EAAE,IAAI,CAAC,CAAC;aAEZ;SACJ;IAEL,CAAC;IAED,UAAU;IACV,+BAAS,GAAT,UAAU,MAAM;QACZ,IAAG,MAAM,CAAC,IAAI,EAAC;YACX,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACzC,IAAG,CAAC,IAAI,CAAC,WAAW;gBAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpF,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;gBAClC,IAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,EAAC;oBACnC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC7D,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC;oBAC7D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBACtE,IAAI,KAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;oBACjG,IAAG,CAAC,IAAI,CAAC,WAAW;wBAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAG,CAAC,CAAC,EAAC,KAAG,CAAC,CAAC,CAAC,CAAC;iBACxF;gBACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;aAC1E;YACD,IAAG,MAAM,CAAC,MAAM,EAAC;gBACb,IAAI,CAAC,QAAQ,EAAE,CAAC;aACnB;SACJ;aACG;YACA,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1C,IAAG,CAAC,IAAI,CAAC,WAAW;gBAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpF,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC;gBACzC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACvD,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC9D,IAAG,CAAC,IAAI,IAAI,CAAC,aAAa,EAAC;oBACvB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC1D,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,KAAK,EAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;oBACvF,IAAI,KAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC;oBACtF,IAAG,CAAC,IAAI,CAAC,WAAW;wBAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAG,CAAC,CAAC,EAAC,KAAG,CAAC,CAAC,CAAC,CAAC;iBACxF;aACJ;YACD,IAAG,MAAM,CAAC,MAAM,EAAC;gBACb,IAAI,CAAC,QAAQ,EAAE,CAAC;aACnB;SACJ;IAEL,CAAC;IAED,aAAa;IACb,8BAAQ,GAAR;QAAA,iBAsCC;QArCG,IAAG,CAAC,IAAI,CAAC,WAAW,EAAC;YACjB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;YACpC,IAAI,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAC,EAAE,CAAC;YACjD,IAAG,QAAQ,IAAI,CAAC;gBAAE,QAAQ,GAAG,CAAC,CAAC;YAC/B,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;iBACtB,EAAE,CAAC,GAAG,EAAC,EAAC,SAAS,EAAC,QAAQ,EAAC,CAAC;iBAC5B,IAAI,CAAC;gBACF,IAAG,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,QAAQ,IAAG,GAAG,EAAC;oBAClE,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC/C,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;oBAAC,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;oBAC3F,EAAE,CAAC,KAAK,CAAC,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;yBACzC,EAAE,CAAC,GAAG,EAAC,EAAC,OAAO,EAAC,GAAG,EAAC,KAAK,EAAC,GAAG,EAAC,CAAC;yBAC/B,EAAE,CAAC,GAAG,EAAC,EAAC,OAAO,EAAC,GAAG,EAAC,KAAK,EAAC,GAAG,EAAC,CAAC;yBAC/B,EAAE,CAAC,GAAG,EAAC,EAAC,OAAO,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC,CAAC;yBAC7B,KAAK,EAAE,CAAC;iBACZ;gBACD,IAAG,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,QAAQ,IAAG,GAAG,EAAC;oBAClE,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC/C,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;oBAAC,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;oBAC3F,EAAE,CAAC,KAAK,CAAC,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;yBACzC,EAAE,CAAC,GAAG,EAAC,EAAC,OAAO,EAAC,GAAG,EAAC,KAAK,EAAC,GAAG,EAAC,CAAC;yBAC/B,EAAE,CAAC,GAAG,EAAC,EAAC,OAAO,EAAC,GAAG,EAAC,KAAK,EAAC,GAAG,EAAC,CAAC;yBAC/B,EAAE,CAAC,GAAG,EAAC,EAAC,OAAO,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC,CAAC;yBAC7B,KAAK,EAAE,CAAC;iBACZ;gBACD,IAAG,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,QAAQ,IAAG,GAAG,EAAC;oBAClE,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;oBAC/C,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;oBAAC,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;oBAC3F,EAAE,CAAC,KAAK,CAAC,KAAI,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;yBACzC,EAAE,CAAC,GAAG,EAAC,EAAC,OAAO,EAAC,GAAG,EAAC,KAAK,EAAC,GAAG,EAAC,CAAC;yBAC/B,EAAE,CAAC,GAAG,EAAC,EAAC,OAAO,EAAC,GAAG,EAAC,KAAK,EAAC,GAAG,EAAC,CAAC;yBAC/B,EAAE,CAAC,GAAG,EAAC,EAAC,OAAO,EAAC,GAAG,EAAC,KAAK,EAAC,CAAC,EAAC,CAAC;yBAC7B,KAAK,EAAE,CAAC;iBACZ;YACL,CAAC,CAAC;iBACD,KAAK,EAAE,CAAC;SACZ;IACL,CAAC;IAED,MAAM;IACN,+BAAS,GAAT;QACI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IACD,MAAM;IACN,6BAAO,GAAP;IAEA,CAAC;IACD,OAAO;IACP,6BAAO,GAAP;QACI,IAAI,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI;IACJ,+BAAS,GAAT;IAEA,CAAC;IACD,IAAI;IACJ,+BAAS,GAAT,UAAU,IAAI;IAEd,CAAC;IAED,+BAAS,GAAT,UAAU,IAAI,EAAC,GAAG;QACd,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI;QACJ,IAAG,IAAI,EAAC;YACJ,CAAC,GAAG,QAAQ,CAAC,GAAG,GAAC,CAAC,GAAC,EAAE,CAAC,CAAC;YACvB,CAAC,GAAG,GAAG,GAAC,CAAC,CAAC;SACb;QACD,IAAI;aACA;YACA,IAAG,GAAG,GAAG,CAAC,EAAC;gBACP,CAAC,GAAC,CAAC,CAAC;gBAAC,CAAC,GAAC,GAAG,CAAC;aACd;iBACI,IAAG,GAAG,GAAG,CAAC,EAAC;gBACZ,CAAC,GAAC,CAAC,CAAC;gBAAC,CAAC,GAAC,GAAG,GAAC,CAAC,CAAC;aAChB;iBACI,IAAG,GAAG,GAAG,EAAE,EAAC;gBACb,CAAC,GAAC,CAAC,CAAC;gBAAC,CAAC,GAAC,EAAE,GAAC,GAAG,CAAC;aACjB;iBACI,IAAG,GAAG,GAAG,EAAE,EAAC;gBACb,CAAC,GAAC,CAAC,CAAC;gBAAC,CAAC,GAAC,EAAE,GAAC,GAAG,CAAC;aACjB;SACJ;QACD,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;QACpB,OAAO,EAAE,CAAC;IACd,CAAC;IACD,cAAc;IACd,yCAAmB,GAAnB;QACI,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YACpB,8CAA8C;YAC9C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtE,IAAG,IAAI,CAAC,SAAS,IAAI,CAAC,EAAC;gBACnB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC/C,IAAI,IAAI,GAAG,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC;gBAClD,IAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC;gBACtE,IAAI,KAAK,GAAG,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC;gBACpD,IAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC;oBAAE,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAC,KAAK,CAAC,CAAC;aAC3E;SACJ;IACL,CAAC;IACD,UAAU;IACV,6BAAO,GAAP,UAAQ,MAAM;QACV,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QACpD,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QACzE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACpF,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAED,8BAAQ,GAAR;QACI,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAE5D,CAAC;IACD,+BAAS,GAAT;QACI,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IACD,4BAAM,GAAN,UAAQ,EAAE;IAEV,CAAC;IA3eD;QADC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;sDACY;IAEhC;QADC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;sDACY;IAEhC;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;8CACI;IAEtB;QADC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;kDACQ;IAE3B;QADC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;mDACS;IAE5B;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;8CACI;IAGtB;QADC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC;iDACO;IAE3B;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;4CACE;IAjBH,WAAW;QAD/B,OAAO;OACa,WAAW,CA8e/B;IAAD,kBAAC;CA9eD,AA8eC,CA9ewC,EAAE,CAAC,SAAS,GA8epD;kBA9eoB,WAAW","file":"","sourceRoot":"/","sourcesContent":["// 主游戏控制类\r\nconst {ccclass, property} = cc._decorator;\r\n@ccclass\r\nexport default class GameManager extends cc.Component {\r\n @property(cc.Prefab)\r\n kuang1_Prefab: cc.Prefab = null;\r\n @property(cc.Prefab)\r\n kuang2_Prefab: cc.Prefab = null;\r\n @property(cc.Node)\r\n Block: cc.Node = null;\r\n @property(cc.Label)\r\n TimeLabel: cc.Label = null;\r\n @property(cc.Label)\r\n LevelLabel: cc.Label = null;\r\n @property(cc.Node)\r\n Guide: cc.Node = null;\r\n\r\n @property(cc.Sprite)\r\n progress: cc.Sprite = null; //-95 640\r\n @property(cc.Node) \r\n Top: cc.Node = null;//80 -725\r\n\r\n countTime: number; //游戏总daojishi\r\n startTime: number; //游戏开始时间,时间戳\r\n pause: boolean ; //游戏暂停\r\n gameOver: boolean ; //游戏结束\r\n result: number; //当前小局结束标杆\r\n\r\n outside_Array: any; //内圈数组\r\n inside_Array: any; //外圈数组\r\n level: number; //关卡等级\r\n guide_Level: number; //引导等级\r\n guide_State: boolean; //引导等级\r\n config: {}; //当前关卡配置\r\n answerInside: number; //正确答案位置\r\n answerOutside: number; //正确答案位置\r\n pass: boolean; //是否通关\r\n outside: any; //外圈实际执行数组\r\n inside: any; //内圈实际执行数组\r\n answerInsideTexture: number; //争取答案图片\r\n answerOutsideTexture: number; //争取答案图片\r\n insideTexture: number[]; //错误答案数组\r\n outsideTexture: number[]; //错误答案数组\r\n \r\n \r\n\r\n onLoad () {\r\n this.guide_State = false;\r\n this.level = cc.fx.GameConfig.GM_INFO.level;\r\n this.guide_Level = cc.fx.GameConfig.GM_INFO.guide_Level;\r\n this.LevelLabel.string = (this.level+1)+\"\";\r\n this.progress.fillRange = cc.fx.GameConfig.GM_INFO.score/24;\r\n if(this.progress.fillRange>= 0.2) this.Top.getChildByName(\"star1\").active = true;\r\n if(this.progress.fillRange>= 0.5) this.Top.getChildByName(\"star2\").active = true;\r\n if(this.progress.fillRange>= 0.8) this.Top.getChildByName(\"star3\").active = true;\r\n if((this.level == 0 && this.guide_Level == 4) ||\r\n (this.level == 4 && this.guide_Level == 3) ||\r\n (this.level == 8 && this.guide_Level == 1)){\r\n this.openGuide(false);\r\n }\r\n else{\r\n this.LevelLabel.node.active = true;\r\n this.node.getChildByName(\"Top\").getChildByName(\"lianxi\").getComponent(cc.Label).string = \"第 轮\";\r\n this.init();\r\n }\r\n }\r\n\r\n init(){\r\n if(this.level == 4 && this.guide_Level == 2) {\r\n cc.fx.GameConfig.GM_INFO.guide_Level -= 1;\r\n this.guide_State = true;\r\n this.LevelLabel.node.active = false;\r\n this.node.getChildByName(\"Top\").getChildByName(\"lianxi\").getComponent(cc.Label).string = \"练 习\";\r\n // this.node.getChildByName(\"tip\").active = true;\r\n }\r\n\r\n this.result = 0;\r\n this.countTime = 6;\r\n this.TimeLabel.string = cc.fx.GameTool.getTimeMargin(this.countTime);\r\n this.createBlock();\r\n setTimeout(() => {\r\n this.createCustom();\r\n }, 1000);\r\n }\r\n\r\n openGuide(type){\r\n this.Guide.active = true;\r\n this.guide_State = true;\r\n // this.node.getChildByName(\"tip\").active = true;\r\n if(!type) cc.fx.GameConfig.GM_INFO.guide_Level -= 1;\r\n this.Guide.getChildByName(\"one\").active = false;\r\n this.Guide.getChildByName(\"two\").active = false;\r\n this.Guide.getChildByName(\"three\").active = false;\r\n this.Guide.getChildByName(\"four\").active = false;\r\n let name = \"one\";\r\n if(this.level == 0){\r\n name = \"one\";\r\n this.LevelLabel.node.active = false;\r\n this.node.getChildByName(\"Top\").getChildByName(\"lianxi\").getComponent(cc.Label).string = \"练 习\";\r\n }\r\n else if(this.level == 4){\r\n name = \"two\";\r\n this.LevelLabel.node.active = false;\r\n this.node.getChildByName(\"Top\").getChildByName(\"lianxi\").getComponent(cc.Label).string = \"练 习\";\r\n }\r\n else if(this.level == 8){\r\n name = \"three\";\r\n this.guide_State = false;\r\n }\r\n if(type) name = \"four\";\r\n this.Guide.getChildByName(name).active = true;\r\n cc.tween(this.Guide.getChildByName(name))\r\n .to(0.5,{opacity:255})\r\n .start();\r\n }\r\n\r\n closeGuide(){\r\n if(this.Guide.getChildByName(\"four\").active){\r\n this.Guide.active = false;\r\n cc.director.loadScene(\"GameScene\");\r\n }\r\n else{\r\n this.Guide.active = false;\r\n this.init();\r\n }\r\n // \r\n\r\n }\r\n\r\n //创建方块地图\r\n createBlock(){\r\n this.outside_Array = [];\r\n this.inside_Array = [];\r\n this.outside = [];\r\n this.inside = [];\r\n for(let i=0; i<16; i++){\r\n let block = cc.instantiate(this.kuang1_Prefab);\r\n block.getComponent(\"Block\").setId(i);\r\n block.parent = this.Block.getChildByName(\"outside\");\r\n let x,y = 0;\r\n if(i < 5){\r\n x = -284 + 142*i; y = 259;\r\n } \r\n else if(i < 9){\r\n x = 284; y = 259 - (i-4)*142;\r\n } \r\n else if(i < 13){ \r\n x = 284 - (i-8)*142; y = -309;\r\n } \r\n else if(i < 16){\r\n x = -284; y = -309 + (i-12)*142;\r\n } \r\n block.setPosition(x,y);\r\n this.outside_Array.push(block);\r\n }\r\n for(let j=3; j<12; j++){\r\n let block = cc.instantiate(this.kuang2_Prefab);\r\n block.getComponent(\"Block\").setId(j);\r\n block.parent = this.Block.getChildByName(\"inside\");\r\n block.setPosition(-132+j%3*132,239-parseInt(j/3 + \"\")*132);\r\n this.inside_Array.push(block);\r\n }\r\n }\r\n\r\n //创建关卡\r\n createCustom(){\r\n //初始化关卡配置数据\r\n this.level = cc.fx.GameConfig.GM_INFO.level;\r\n this.LevelLabel.string = (this.level+1)+\"\";\r\n this.config = cc.fx.GameConfig.LEVEL_INFO[this.level];\r\n if(this.level == 4 && this.guide_Level == 2) {\r\n this.config = cc.fx.GameConfig.LEVEL_INFO[6];\r\n }\r\n this.pass = false;\r\n //放正确答案和错误答案\r\n this.answerInsideTexture = Math.floor(Math.random()*14 + 1);\r\n //内圈错误答案随机\r\n this.insideTexture = [];\r\n this.outsideTexture = [];\r\n for(let k=0; k<14; k++){\r\n if((k+1) != this.answerInsideTexture){\r\n this.insideTexture.push(k+1);\r\n }\r\n }\r\n cc.fx.GameTool.shuffleArray(this.insideTexture);\r\n this.answerOutsideTexture = this.insideTexture[11];\r\n\r\n //分配正确答案和错误答案位置\r\n if(this.config[\"inside\"] > 0){\r\n this.result += 1;\r\n let random = Math.random()*100;\r\n let arrayTemp = [0,1,2,3,5,6,7,8];\r\n \r\n if(this.config[\"insideType\"] == 1){\r\n if(random >= 50) this.inside = [0,1,2];\r\n else this.inside = [6,7,8];\r\n }\r\n else if(this.config[\"insideType\"] == 2){\r\n if(random >= 50) this.inside = [0,3,6];\r\n else this.inside = [2,5,8];\r\n }\r\n else{\r\n this.inside = cc.fx.GameTool.shuffleArray(arrayTemp);\r\n this.inside.splice(this.config[\"inside\"],this.inside.length-this.config[\"inside\"]);\r\n }\r\n this.answerInside = this.inside[Math.floor(Math.random()*this.inside.length)];\r\n }\r\n //分配外圈正确答案和错误答案位置\r\n if(this.config[\"outside\"] > 0){\r\n this.result += 1;\r\n if(this.config[\"outsideType\"] == 1){\r\n this.outside = [1,2,3,5,6,7,9,10,11,13,14,15];\r\n }\r\n else if(this.config[\"outsideType\"] == 2){\r\n this.outside = [0,4,8,12];\r\n }\r\n else{\r\n this.outside = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];\r\n }\r\n cc.fx.GameTool.shuffleArray(this.outside);\r\n this.answerOutside = this.outside[Math.floor(Math.random()*this.outside.length)];\r\n if(this.config[\"outside\"] == 2){\r\n for(let j=0; j<15; j++){\r\n this.outsideTexture.push(this.insideTexture[3]);\r\n }\r\n }\r\n else if(this.config[\"outside\"] == 3){\r\n this.outsideTexture = [this.insideTexture[5],this.insideTexture[6],this.insideTexture[5],this.insideTexture[6],this.insideTexture[5]];\r\n for(let j=0; j<10; j++){\r\n let randomTemp = Math.random()*100;\r\n if(randomTemp>50) this.outsideTexture.push(this.insideTexture[5]);\r\n else this.outsideTexture.push(this.insideTexture[6]);\r\n }\r\n cc.fx.GameTool.shuffleArray(this.outsideTexture);\r\n }\r\n else if(this.config[\"outside\"] == 4){\r\n this.outsideTexture = [this.insideTexture[2],this.insideTexture[4],this.insideTexture[6],\r\n this.insideTexture[2],this.insideTexture[4],this.insideTexture[6]];\r\n for(let j=0; j<9; j++){\r\n let randomTemp = Math.random()*100;\r\n if(randomTemp<33) this.outsideTexture.push(this.insideTexture[2]);\r\n else if(randomTemp<66) this.outsideTexture.push(this.insideTexture[4]);\r\n else this.outsideTexture.push(this.insideTexture[6]);\r\n }\r\n cc.fx.GameTool.shuffleArray(this.outsideTexture);\r\n }\r\n }\r\n this.runBlock();\r\n }\r\n\r\n //块执行图片出现消失动画\r\n runBlock(){\r\n if(this.config[\"inside\"] > 0){\r\n this.inside_Array[4].getComponent(\"Block\").answerShow(this.answerInsideTexture);\r\n setTimeout(() => {\r\n let insideNumber = 0;\r\n for(let i=0; i 0){\r\n this.outside_Array[this.answerOutside].getComponent(\"Block\").answerShow(this.answerOutsideTexture);\r\n if(this.config[\"outside\"] > 1){\r\n let outsideNumber = 0;\r\n for(let i=0; i {\r\n let outsideNumber = 0;\r\n for(let i=0; i {\r\n if(!this.guide_State){\r\n this.startTime = cc.fx.GameTool.getTime();\r\n this.schedule(this.updateCountDownTime,1);\r\n }\r\n \r\n }, this.config[\"showTime\"]*1000);\r\n }\r\n\r\n //正确\r\n openResult(result){\r\n this.result -= 1;\r\n //非引导状态\r\n if(!this.guide_State){\r\n this.flipBlock(result);\r\n if(this.result == 0){\r\n this.unschedule(this.updateCountDownTime);\r\n setTimeout(() => {\r\n this.setData(result);\r\n }, 1000);\r\n setTimeout(() => {\r\n if(cc.fx.GameConfig.GM_INFO.level < cc.fx.GameConfig.LEVEL_INFO.length-1){\r\n cc.fx.GameConfig.GM_INFO.level += 1;\r\n cc.director.loadScene(\"GameScene\");\r\n }\r\n }, 2000);\r\n }\r\n }\r\n //引导状态下\r\n else{\r\n if(result.result){\r\n this.flipBlock(result);\r\n setTimeout(() => {\r\n if(this.level == 4 && cc.fx.GameConfig.GM_INFO.guide_Level == 2){\r\n cc.director.loadScene(\"GameScene\");\r\n }\r\n else this.openGuide(true);\r\n }, 1000);\r\n \r\n }\r\n }\r\n \r\n }\r\n\r\n //翻转形状变成问号\r\n flipBlock(result){\r\n if(result.type){\r\n let pos = this.changePos(true,result.id);\r\n if(!this.guide_State) cc.fx.GameConfig.CLICK_DATA.userChoiceInner.push(pos.x,pos.y);\r\n for(let i=0; i= 1) progress = 1;\r\n cc.tween(this.progress)\r\n .to(0.2,{fillRange:progress})\r\n .call(()=>{\r\n if(this.Top.getChildByName(\"star1\").active == false && progress>= 0.2){\r\n this.Top.getChildByName(\"star1\").active = true;\r\n this.Top.getChildByName(\"star1\").opacity = 0; this.Top.getChildByName(\"star1\").scale = 0.1;\r\n cc.tween(this.Top.getChildByName(\"star1\"))\r\n .to(0.3,{opacity:255,scale:1.1})\r\n .to(0.1,{opacity:255,scale:0.9})\r\n .to(0.1,{opacity:255,scale:1})\r\n .start();\r\n }\r\n if(this.Top.getChildByName(\"star2\").active == false && progress>= 0.5){\r\n this.Top.getChildByName(\"star2\").active = true;\r\n this.Top.getChildByName(\"star2\").opacity = 0; this.Top.getChildByName(\"star2\").scale = 0.1;\r\n cc.tween(this.Top.getChildByName(\"star2\"))\r\n .to(0.3,{opacity:255,scale:1.1})\r\n .to(0.1,{opacity:255,scale:0.9})\r\n .to(0.1,{opacity:255,scale:1})\r\n .start();\r\n }\r\n if(this.Top.getChildByName(\"star3\").active == false && progress>= 0.8){\r\n this.Top.getChildByName(\"star3\").active = true;\r\n this.Top.getChildByName(\"star3\").opacity = 0; this.Top.getChildByName(\"star3\").scale = 0.1;\r\n cc.tween(this.Top.getChildByName(\"star3\"))\r\n .to(0.3,{opacity:255,scale:1.1})\r\n .to(0.1,{opacity:255,scale:0.9})\r\n .to(0.1,{opacity:255,scale:1})\r\n .start();\r\n }\r\n })\r\n .start();\r\n }\r\n }\r\n\r\n //返回首页\r\n backScene(){\r\n cc.director.loadScene(\"LoadScene\");\r\n }\r\n //重新开始\r\n reStart(){\r\n\r\n }\r\n //获取时间戳\r\n getTime(){\r\n var timestamp = new Date().getTime();\r\n return timestamp;\r\n }\r\n //获胜\r\n passLevel(){\r\n\r\n }\r\n //失败\r\n loseLevel(type){\r\n \r\n }\r\n\r\n changePos(type,num){\r\n var x = 0; var y = 0;\r\n //内部\r\n if(type){\r\n y = parseInt(num/3+\"\");\r\n x = num%3;\r\n }\r\n //外部\r\n else{\r\n if(num < 5){\r\n y=0; x=num;\r\n } \r\n else if(num < 9){\r\n x=5; y=num-4;\r\n } \r\n else if(num < 13){ \r\n y=4; x=12-num;\r\n } \r\n else if(num < 16){\r\n x=0; y=16-num;\r\n } \r\n }\r\n var jg = cc.v2(x,y);\r\n return jg;\r\n }\r\n //如果是倒计时 调用此方法\r\n updateCountDownTime () {\r\n if (this.countTime > 0) {\r\n this.countTime -= 1;\r\n // this.TimeLabel.string =this.countTime + \"\";\r\n this.TimeLabel.string = cc.fx.GameTool.getTimeMargin(this.countTime);\r\n if(this.countTime <= 0){\r\n this.unschedule(this.updateCountDownTime);\r\n this.node.getChildByName(\"Mask\").active = true;\r\n let data = {\"result\":false,\"type\":true,\"id\":null};\r\n if(this.config[\"inside\"] > 0) cc.fx.Notifications.emit(\"result\",data);\r\n let data2 = {\"result\":false,\"type\":false,\"id\":null};\r\n if(this.config[\"outside\"] > 0) cc.fx.Notifications.emit(\"result\",data2);\r\n }\r\n }\r\n }\r\n //上传每次操作数据\r\n setData(result){\r\n cc.fx.GameConfig.CLICK_DATA.success = result.result;\r\n cc.fx.GameConfig.CLICK_DATA.round = (cc.fx.GameConfig.GM_INFO.level + 1);\r\n cc.fx.GameConfig.CLICK_DATA.duration = new Date().getTime() - this.startTime - 1000;\r\n cc.fx.GameTool.setGameData();\r\n }\r\n\r\n onEnable () {\r\n cc.fx.Notifications.on(\"result\", this.openResult, this);\r\n\r\n }\r\n onDisable () {\r\n cc.fx.Notifications.off(\"result\", this.openResult, this);\r\n }\r\n update (dt) {\r\n\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/b1/b181c1e4-0a72-4a91-bfb0-ae6f36ca60bd.json b/library/imports/b1/b181c1e4-0a72-4a91-bfb0-ae6f36ca60bd.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/b1/b181c1e4-0a72-4a91-bfb0-ae6f36ca60bd.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/b1/b181c1e4-0a72-4a91-bfb0-ae6f36ca60bd.png b/library/imports/b1/b181c1e4-0a72-4a91-bfb0-ae6f36ca60bd.png new file mode 100644 index 0000000000000000000000000000000000000000..c2981912170b38bbf4f61e00d259205e713c5032 GIT binary patch literal 1622 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=!ZaB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxR5#hc&_u!9QqR!T z(8R(}N5ROz&{*HVSl`fC*U-qyz|zXlQ~?TIxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr7KMf<|~|UP^v> zu_jo#udkJ7UU5lcUUI6Zi>(sS0KLr26e|-0b5{#PBV%(DGebi|R|`j110z=x7Z-CE zXG1496LXkem;B_?+|;}hnBEkGUK5;pK`9}(0BEyIYEfocYKmJ?ey#%8$5xrR-C~H- zJgD9j+-@<#saGH97=2K@BE>UI2$*<4On9mVa^UGcH4m8Bi-4(`*?W}`0|V1(PZ!6K zid$QzMQ2MniZq;GxB6t2WAbCxt=*; za72qS_Tw!}XZK?_uU4FHJgj!^&Ch3NcD|Wd_q<4q;fLE7*5m)CO9r%T-2eS*-gfSz zNf!$$TG>B6sD0cqFGNdJg0KCp3G&uH|We7r-cmu{{GU5d*k?LoqgujlWQj3a`<8I zd&!2sb@FV@j88sSYE1R|(&bWFQ`6$Ne6x`97mbM?d#beCv`cr!2y`D^!QSiEY?q&x zci?T=<*#MCeff`8w|P$TTKXbir*IqFufKJ(N+q~MLo<6e-PDPRkH1{{WnO#Yug8p@ z^Y3WA+Z6e?)k*Qz37{JuK6=zt)jPA}ZgcxX(?^Vjwb6!aoo#fTUa|=-_fTOvm~i1j z=$o?L55Mni(C}L>eD3^t^L;(xJ6GqtF|nK9-{g95hw9{$d$Yoy9cS7c$hdx*KgSu5 z9_`=9I)BZwy_uu)Ky)&Da>vOg(@ypSH*$^RI@lwpweC2v?@|u0wTFVhg0*K}e_fXw zZ6or1hNEa9TjI=<=atteF4)H={PyDmQ3Ym$=HpU}eyFofN^)CmzSH43GUO zCpOjW+V$(xxz}@FExuU2>7Z6#+;o=LQ@(e7?%_N1{rmS^&B-VK{HUt_ZCP7ssk*oL rqgb)sPY>_jm{-;I4apMjY{-ALr@wYeo$ppxFx)z4*}Q$iB}Y3+8j literal 0 HcmV?d00001 diff --git a/library/imports/b2/b2687ac4-099e-403c-a192-ff477686f4f5.json b/library/imports/b2/b2687ac4-099e-403c-a192-ff477686f4f5.json new file mode 100644 index 0000000..ff5da9c --- /dev/null +++ b/library/imports/b2/b2687ac4-099e-403c-a192-ff477686f4f5.json @@ -0,0 +1,9 @@ +{ + "__type__": "cc.ParticleAsset", + "_name": "atom", + "_objFlags": 0, + "_native": ".plist", + "spriteFrame": { + "__uuid__": "472df5d3-35e7-4184-9e6c-7f41bee65ee3" + } +} \ No newline at end of file diff --git a/library/imports/b2/b2687ac4-099e-403c-a192-ff477686f4f5.plist b/library/imports/b2/b2687ac4-099e-403c-a192-ff477686f4f5.plist new file mode 100644 index 0000000..fea5100 --- /dev/null +++ b/library/imports/b2/b2687ac4-099e-403c-a192-ff477686f4f5.plist @@ -0,0 +1,108 @@ + + + + + angle + 360 + angleVariance + 360 + blendFuncDestination + 1 + blendFuncSource + 770 + duration + -1 + emitterType + 0 + finishColorAlpha + 0.8399999737739563 + finishColorBlue + 0.0771484375 + finishColorGreen + 0.6349284052848816 + finishColorRed + 0.6808268427848816 + finishColorVarianceAlpha + 0.7400000095367432 + finishColorVarianceBlue + 0.9800000190734863 + finishColorVarianceGreen + 0.9800000190734863 + finishColorVarianceRed + 0.41999998688697815 + finishParticleSize + 30.31999969482422 + finishParticleSizeVariance + 0 + gravityx + 0.25 + gravityy + 0.8600000143051147 + maxParticles + 200 + maxRadius + 100 + maxRadiusVariance + 0 + minRadius + 0 + particleLifespan + 0.20000000298023224 + particleLifespanVariance + 0.5 + radialAccelVariance + 65.79000091552734 + radialAcceleration + -671.0499877929688 + rotatePerSecond + 0 + rotatePerSecondVariance + 0 + rotationEnd + -47.369998931884766 + rotationEndVariance + -142.11000061035156 + rotationStart + -47.369998931884766 + rotationStartVariance + 0 + sourcePositionVariancex + 7 + sourcePositionVariancey + 7 + sourcePositionx + 373.7277526855469 + sourcePositiony + 478.40472412109375 + speed + 0 + speedVariance + 190.7899932861328 + startColorAlpha + 0.6399999856948853 + startColorBlue + 0.3375650942325592 + startColorGreen + 0.7879231572151184 + startColorRed + 0.794921875 + startColorVarianceAlpha + 0.7799999713897705 + startColorVarianceBlue + 0.6800000071525574 + startColorVarianceGreen + 1 + startColorVarianceRed + 0.8999999761581421 + startParticleSize + 3.369999885559082 + startParticleSizeVariance + 50 + tangentialAccelVariance + 65.79000091552734 + tangentialAcceleration + -92.11000061035156 + spriteFrameUuid + 472df5d3-35e7-4184-9e6c-7f41bee65ee3 + + \ No newline at end of file diff --git a/library/imports/b4/b42c4fc1-4cd1-4b12-b206-930cea3d49ca.json b/library/imports/b4/b42c4fc1-4cd1-4b12-b206-930cea3d49ca.json new file mode 100644 index 0000000..56f1e57 --- /dev/null +++ b/library/imports/b4/b42c4fc1-4cd1-4b12-b206-930cea3d49ca.json @@ -0,0 +1,6 @@ +{ + "__type__": "cc.Asset", + "_name": "Share", + "_objFlags": 0, + "_native": ".zip" +} \ No newline at end of file diff --git a/library/imports/b4/b42c4fc1-4cd1-4b12-b206-930cea3d49ca.zip b/library/imports/b4/b42c4fc1-4cd1-4b12-b206-930cea3d49ca.zip new file mode 100644 index 0000000000000000000000000000000000000000..705f1904f5f9107284f210f979cf4016b08211fb GIT binary patch literal 1863 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 + + + + angle + 360 + angleVariance + 360 + blendFuncDestination + 1 + blendFuncSource + 770 + duration + -1 + emitterType + 0 + finishColorAlpha + 0.8399999737739563 + finishColorBlue + 0.0771484375 + finishColorGreen + 0.6349284052848816 + finishColorRed + 0.6808268427848816 + finishColorVarianceAlpha + 0.7400000095367432 + finishColorVarianceBlue + 0.9800000190734863 + finishColorVarianceGreen + 0.9800000190734863 + finishColorVarianceRed + 0.41999998688697815 + finishParticleSize + 30.31999969482422 + finishParticleSizeVariance + 0 + gravityx + 0.25 + gravityy + 0.8600000143051147 + maxParticles + 200 + maxRadius + 100 + maxRadiusVariance + 0 + minRadius + 0 + particleLifespan + 0.20000000298023224 + particleLifespanVariance + 0.5 + radialAccelVariance + 65.79000091552734 + radialAcceleration + -671.0499877929688 + rotatePerSecond + 0 + rotatePerSecondVariance + 0 + rotationEnd + -47.369998931884766 + rotationEndVariance + -142.11000061035156 + rotationStart + -47.369998931884766 + rotationStartVariance + 0 + sourcePositionVariancex + 7 + sourcePositionVariancey + 7 + sourcePositionx + 373.7277526855469 + sourcePositiony + 478.40472412109375 + speed + 0 + speedVariance + 190.7899932861328 + startColorAlpha + 0.6399999856948853 + startColorBlue + 0.3375650942325592 + startColorGreen + 0.7879231572151184 + startColorRed + 0.794921875 + startColorVarianceAlpha + 0.7799999713897705 + startColorVarianceBlue + 0.6800000071525574 + startColorVarianceGreen + 1 + startColorVarianceRed + 0.8999999761581421 + startParticleSize + 3.369999885559082 + startParticleSizeVariance + 50 + tangentialAccelVariance + 65.79000091552734 + tangentialAcceleration + -92.11000061035156 + spriteFrameUuid + bb42ed8e-0867-4584-ad63-b6f84f83bba8 + + \ No newline at end of file diff --git a/library/imports/ba/badb56f7-1c07-4fbb-87e6-5bfd805fe81b.json b/library/imports/ba/badb56f7-1c07-4fbb-87e6-5bfd805fe81b.json new file mode 100644 index 0000000..19f3da7 --- /dev/null +++ b/library/imports/ba/badb56f7-1c07-4fbb-87e6-5bfd805fe81b.json @@ -0,0 +1,5181 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "Canvas", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 8 + }, + { + "__id__": 64 + }, + { + "__id__": 75 + }, + { + "__id__": 98 + }, + { + "__id__": 101 + }, + { + "__id__": 136 + } + ], + "_active": true, + "_components": [ + { + "__id__": 142 + }, + { + "__id__": 143 + }, + { + "__id__": 144 + } + ], + "_prefab": { + "__id__": 145 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 252, + "b": 252, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 375, + 667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Main Camera", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 252.87547223450972, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_cullingMask": 4294967295, + "_clearFlags": 7, + "_backgroundColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": -1, + "_zoomRatio": 1, + "_targetTexture": null, + "_fov": 60, + "_orthoSize": 10, + "_nearClip": 1, + "_farClip": 4096, + "_ortho": true, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_renderStages": 1, + "_alignWithScreen": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "97fLKw9fpLKIc0dJLpbPlR", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "background", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 6 + } + ], + "_prefab": { + "__id__": 7 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 1600 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 1, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "8dEBgqFXxELpmAzyYl1ZRR", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "ScrollView", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 9 + }, + { + "__id__": 16 + } + ], + "_active": true, + "_components": [ + { + "__id__": 61 + }, + { + "__id__": 14 + }, + { + "__id__": 62 + } + ], + "_prefab": { + "__id__": 63 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 174, + "g": 121, + "b": 121, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 680, + "height": 1400 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 1 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 150, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "scrollBar", + "_objFlags": 512, + "_parent": { + "__id__": 8 + }, + "_children": [ + { + "__id__": 10 + } + ], + "_active": false, + "_components": [ + { + "__id__": 13 + }, + { + "__id__": 58 + }, + { + "__id__": 59 + } + ], + "_prefab": { + "__id__": 60 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 12, + "height": 820 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 340, + -410, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "bar", + "_objFlags": 512, + "_parent": { + "__id__": 9 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 11 + } + ], + "_prefab": { + "__id__": 12 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 10, + "height": 30 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "5c3bb932-6c3c-468f-88a9-c8c61d458641" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d7LA6B6L9KYrPYs9FOPGKR", + "sync": false + }, + { + "__type__": "cc.Scrollbar", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": true, + "_scrollView": { + "__id__": 14 + }, + "_touching": false, + "_opacity": 255, + "enableAutoHide": true, + "autoHideTime": 1, + "_N$handle": { + "__id__": 11 + }, + "_N$direction": 1, + "_id": "" + }, + { + "__type__": "cc.ScrollView", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "horizontal": false, + "vertical": true, + "inertia": true, + "brake": 0.75, + "elastic": true, + "bounceDuration": 0.23, + "scrollEvents": [], + "cancelInnerEvents": true, + "_N$content": { + "__id__": 15 + }, + "content": { + "__id__": 15 + }, + "_N$horizontalScrollBar": null, + "_N$verticalScrollBar": null, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "content", + "_objFlags": 512, + "_parent": { + "__id__": 16 + }, + "_children": [ + { + "__id__": 19 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 57 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 680, + "height": 600 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 1 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "view", + "_objFlags": 512, + "_parent": { + "__id__": 8 + }, + "_children": [ + { + "__id__": 15 + } + ], + "_active": true, + "_components": [ + { + "__id__": 17 + } + ], + "_prefab": { + "__id__": 18 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 680, + "height": 700 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 1 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 16 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 0, + "_segments": 64, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "01e0xqlUVFcY0MMajauQHo", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "RankListItem", + "_objFlags": 0, + "_parent": { + "__id__": 15 + }, + "_children": [ + { + "__id__": 20 + }, + { + "__id__": 23 + }, + { + "__id__": 32 + }, + { + "__id__": 43 + }, + { + "__id__": 46 + }, + { + "__id__": 49 + }, + { + "__id__": 52 + } + ], + "_active": true, + "_components": [ + { + "__id__": 55 + } + ], + "_prefab": { + "__id__": 56 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 650, + "height": 94 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -100, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 19 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 21 + } + ], + "_prefab": { + "__id__": 22 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 650, + "height": 94 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "6eyN1+nK5HT7svNqUsa2/+", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "pic", + "_objFlags": 0, + "_parent": { + "__id__": 19 + }, + "_children": [ + { + "__id__": 24 + }, + { + "__id__": 27 + } + ], + "_active": true, + "_components": [ + { + "__id__": 30 + } + ], + "_prefab": { + "__id__": 31 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -171.687, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "pic", + "_objFlags": 0, + "_parent": { + "__id__": 23 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 25 + } + ], + "_prefab": { + "__id__": 26 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 24 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "08Vcf5jRBOhLOtnEzMUku6", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 23 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 28 + } + ], + "_prefab": { + "__id__": 29 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 64, + "height": 64 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 27 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "f0DfDJ4PNDbb7lvykwzyBm", + "sync": false + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 23 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 1, + "_segments": 60, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "38W68aamJOhbnBDiSboSCF", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "rank", + "_objFlags": 0, + "_parent": { + "__id__": 19 + }, + "_children": [ + { + "__id__": 33 + }, + { + "__id__": 36 + }, + { + "__id__": 39 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 42 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 36 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -261.233, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "one", + "_objFlags": 0, + "_parent": { + "__id__": 32 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 34 + } + ], + "_prefab": { + "__id__": 35 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 33 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "07jJ4rjvBM3K8UmWuJPTSW", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "two", + "_objFlags": 0, + "_parent": { + "__id__": 32 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 37 + } + ], + "_prefab": { + "__id__": 38 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 36 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "cf00JqB1FL4J82EdUA2X13", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "three", + "_objFlags": 0, + "_parent": { + "__id__": 32 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 40 + } + ], + "_prefab": { + "__id__": 41 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 39 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "1beDtXl+VD86kzCArCfEPs", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "d03AAa5MpCZY7eWAmnGlia", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "rankLab", + "_objFlags": 0, + "_parent": { + "__id__": 19 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 44 + } + ], + "_prefab": { + "__id__": 45 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 16.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -259.131, + -2.054, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 43 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "5", + "_N$string": "5", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "de4HHWkIhExrJq1+nHHMA6", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "totalLab", + "_objFlags": 0, + "_parent": { + "__id__": 19 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 47 + } + ], + "_prefab": { + "__id__": 48 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 16.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 224.356, + -2.205, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 46 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "4", + "_N$string": "4", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 2, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "05c46heZhJV4sYMqYyxlB5", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "nameLab", + "_objFlags": 0, + "_parent": { + "__id__": 19 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 50 + } + ], + "_prefab": { + "__id__": 51 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 240, + "height": 27.72 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -99.704, + -2.205, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 49 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "测试", + "_N$string": "测试", + "_fontSize": 25, + "_lineHeight": 25, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 0, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 1, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "2an+mxcU5ApJz+ZlYlaw5G", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "label", + "_objFlags": 0, + "_parent": { + "__id__": 19 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 53 + } + ], + "_prefab": { + "__id__": 54 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 88, + "g": 69, + "b": 65, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 28, + "height": 35.28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 246.176, + -2.205, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 52 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "个", + "_N$string": "个", + "_fontSize": 28, + "_lineHeight": 28, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "78MlwwIH1CYrPsut4N5MBU", + "sync": false + }, + { + "__type__": "ca0f9k0oBVDbpQC+OMNTF3m", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 19 + }, + "_enabled": true, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 19 + }, + "asset": { + "__uuid__": "a264c8df-80f6-474f-9fe5-28b7ae529d95" + }, + "fileId": "e4hxD496RFvpdq8xavWmsV", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "b21uNyrqhLbqirpS1MD+7t", + "sync": false + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": true, + "alignMode": 0, + "_target": null, + "_alignFlags": 37, + "_left": 350.07654921020657, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 237, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 9 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "5fe5dcaa-b513-4dc5-a166-573627b3a159" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7by3ovAnJLYoQqKmlhCACY", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": false, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "9bbda31e-ad49-43c9-aaf2-f7d9896bac69" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "d5421HgLShFKIjj5f18m1mi", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "itemRender": null, + "type": 2, + "startAxis": 2, + "spaceX": 10, + "spaceY": 10, + "padding_top": 10, + "padding_buttom": 10, + "padding_left": 10, + "_padding": 0, + "padding_right": 10, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "bdWGhni0BLgaAOrQnsfTP4", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Node", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 65 + }, + { + "__id__": 68 + }, + { + "__id__": 71 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 74 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 64 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 66 + } + ], + "_prefab": { + "__id__": 67 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 54, + "height": 34.02 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -258.909, + 177.468, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 65 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "排名", + "_N$string": "排名", + "_fontSize": 27, + "_lineHeight": 27, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7bzdCzsURJc4G7MwOL0Blj", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 64 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 69 + } + ], + "_prefab": { + "__id__": 70 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 108, + "height": 34.02 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -48.622, + 177.468, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 68 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "用户昵称", + "_N$string": "用户昵称", + "_fontSize": 27, + "_lineHeight": 27, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "517a9VdPBNUK5P35X44CpK", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 64 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 72 + } + ], + "_prefab": { + "__id__": 73 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 108, + "height": 34.02 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 223.658, + 177.468, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 71 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "驱逐太阳", + "_N$string": "驱逐太阳", + "_fontSize": 27, + "_lineHeight": 27, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "12KoCg1NRLpJU9aRF1iPkq", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "9963O/IP5CCLrawiVnAqdg", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "player", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 76 + }, + { + "__id__": 87 + } + ], + "_active": true, + "_components": [ + { + "__id__": 96 + } + ], + "_prefab": { + "__id__": 97 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 98, + "height": 106 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -254, + 377, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "rank", + "_objFlags": 0, + "_parent": { + "__id__": 75 + }, + "_children": [ + { + "__id__": 77 + }, + { + "__id__": 80 + }, + { + "__id__": 83 + } + ], + "_active": false, + "_components": [], + "_prefab": { + "__id__": 86 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 78 + } + ], + "_prefab": { + "__id__": 79 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 72, + "height": 30.24 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -42.835, + 60.883, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 77 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "超过了", + "_N$string": "超过了", + "_fontSize": 24, + "_lineHeight": 24, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "b0QUZ3hixHY4BCC7p7EwaX", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "New Label", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 81 + } + ], + "_prefab": { + "__id__": 82 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 131, + "g": 87, + "b": 16, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 48, + "height": 30.24 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 74.991, + 60.883, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 80 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "的人", + "_N$string": "的人", + "_fontSize": 24, + "_lineHeight": 24, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d3ySguqntO5bgnP95er4PW", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "number", + "_objFlags": 0, + "_parent": { + "__id__": 76 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 84 + } + ], + "_prefab": { + "__id__": 85 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 51, + "b": 51, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 58.04, + "height": 36.54 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 21.936, + 61.459, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 83 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "30%", + "_N$string": "30%", + "_fontSize": 29, + "_lineHeight": 29, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 1, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d6vzzOaCBH2JMQzL1q75Qk", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "01Wu1da3hD9qLoiu2u15Dh", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "mask", + "_objFlags": 0, + "_parent": { + "__id__": 75 + }, + "_children": [ + { + "__id__": 88 + }, + { + "__id__": 91 + } + ], + "_active": true, + "_components": [ + { + "__id__": 94 + } + ], + "_prefab": { + "__id__": 95 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 65, + "height": 65 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -0.079, + 4.153, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "phone", + "_objFlags": 0, + "_parent": { + "__id__": 87 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 89 + } + ], + "_prefab": { + "__id__": 90 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 65, + "height": 65 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 88 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "a9FdZ8QGNM77omYBmm7jeP", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 87 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 92 + } + ], + "_prefab": { + "__id__": 93 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 91 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "082qUxbaNDrIu5wftUXuxE", + "sync": false + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 87 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 1, + "_segments": 64, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "15yWGxXfFKHYDj+6AKZ+hO", + "sync": false + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 75 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "777yycF4RPu7K18m/uyO1m", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 99 + } + ], + "_prefab": { + "__id__": 100 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 750, + "height": 118 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -609, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 98 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "adJ7tHdodDiYvg71t3toeY", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "Self", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 102 + }, + { + "__id__": 111 + }, + { + "__id__": 114 + }, + { + "__id__": 125 + }, + { + "__id__": 128 + }, + { + "__id__": 131 + } + ], + "_active": true, + "_components": [ + { + "__id__": 134 + } + ], + "_prefab": { + "__id__": 135 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -667, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "pic", + "_objFlags": 0, + "_parent": { + "__id__": 101 + }, + "_children": [ + { + "__id__": 103 + }, + { + "__id__": 106 + } + ], + "_active": true, + "_components": [ + { + "__id__": 109 + } + ], + "_prefab": { + "__id__": 110 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -171.687, + 62, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "pic", + "_objFlags": 0, + "_parent": { + "__id__": 102 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 104 + } + ], + "_prefab": { + "__id__": 105 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 103 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "f513pLQ/9KMbKpOTC4nuyz", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "icon", + "_objFlags": 0, + "_parent": { + "__id__": 102 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 107 + } + ], + "_prefab": { + "__id__": 108 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 60 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 106 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "c8vhbkrhtGw72GydJ4enTg", + "sync": false + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 102 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 1, + "_segments": 60, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "47dNJgs3hCIZESImEUA8wi", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "rankLab", + "_objFlags": 0, + "_parent": { + "__id__": 101 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 112 + } + ], + "_prefab": { + "__id__": 113 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 249, + "b": 232, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 13.9, + "height": 31.5 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -259.131, + 59.946, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 111 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "5", + "_N$string": "5", + "_fontSize": 25, + "_lineHeight": 25, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "25WXxoGV5I/KgHBE8D1rsK", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "rank", + "_objFlags": 0, + "_parent": { + "__id__": 101 + }, + "_children": [ + { + "__id__": 115 + }, + { + "__id__": 118 + }, + { + "__id__": 121 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 124 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 40, + "height": 36 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -261.233, + 62, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "one", + "_objFlags": 0, + "_parent": { + "__id__": 114 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 116 + } + ], + "_prefab": { + "__id__": 117 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 115 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "09Kg3hfzBBu6HptPpAFSW9", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "two", + "_objFlags": 0, + "_parent": { + "__id__": 114 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 119 + } + ], + "_prefab": { + "__id__": 120 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 118 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "0dKJ2TWjFCOJ/iqhRFSLjk", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "three", + "_objFlags": 0, + "_parent": { + "__id__": 114 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 122 + } + ], + "_prefab": { + "__id__": 123 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 66, + "height": 66 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 121 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "1aJ6eRDI5HH7V7ePpX8123", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "1dS3urBJ1F55mw2t/Q3F7w", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "totalLab", + "_objFlags": 0, + "_parent": { + "__id__": 101 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 126 + } + ], + "_prefab": { + "__id__": 127 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 249, + "b": 232, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 16.68, + "height": 37.8 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 1, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 224.356, + 59.795, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 125 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "4", + "_N$string": "4", + "_fontSize": 30, + "_lineHeight": 30, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 2, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "31xa76G7lPaao3sNmpqjSI", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "nameLab", + "_objFlags": 0, + "_parent": { + "__id__": 101 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 129 + } + ], + "_prefab": { + "__id__": 130 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 249, + "b": 232, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 25, + "height": 31.5 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -99.704, + 59.795, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 128 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "我", + "_N$string": "我", + "_fontSize": 25, + "_lineHeight": 25, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 0, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "42BvS5Yl5GfY/GLeE5YQOh", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "label", + "_objFlags": 0, + "_parent": { + "__id__": 101 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 132 + } + ], + "_prefab": { + "__id__": 133 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 252, + "g": 249, + "b": 232, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 28, + "height": 35.28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 246.176, + 59.795, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 131 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_string": "个", + "_N$string": "个", + "_fontSize": 28, + "_lineHeight": 28, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7bFLMTAaRJZbZdCmLU7NlT", + "sync": false + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 101 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 4, + "_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": 0, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "02TaTwJ1tM844wDACOg8Uk", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "backBtn", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 137 + }, + { + "__id__": 138 + }, + { + "__id__": 139 + } + ], + "_prefab": { + "__id__": 141 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 25, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -320.09, + 618, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 0 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 136 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": null, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 136 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 9, + "_left": 42.410000000000025, + "_right": 0, + "_top": 29, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 136 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [ + { + "__id__": 140 + } + ], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": null, + "_id": "" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 1 + }, + "component": "", + "_componentId": "e74a999IDFOabyymZgXQIiy", + "handler": "backClick", + "customEventData": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "34+hXrhBBJUqEHHRNeqJSa", + "sync": false + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_designResolution": { + "__type__": "cc.Size", + "width": 750, + "height": 1334 + }, + "_fitWidth": false, + "_fitHeight": true, + "_id": "" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_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": 0, + "_originalHeight": 0, + "_id": "" + }, + { + "__type__": "e74a999IDFOabyymZgXQIiy", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "Player": { + "__id__": 75 + }, + "selfNode": { + "__id__": 101 + }, + "phone": { + "__id__": 104 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/bb/bb42ed8e-0867-4584-ad63-b6f84f83bba8.json b/library/imports/bb/bb42ed8e-0867-4584-ad63-b6f84f83bba8.json new file mode 100644 index 0000000..bb18fb8 --- /dev/null +++ b/library/imports/bb/bb42ed8e-0867-4584-ad63-b6f84f83bba8.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "atom", + "texture": "8a96b965-2dc0-4e03-aa90-3b79cb93b5b4", + "atlas": "", + "rect": [ + 0, + 0, + 31, + 31 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 31, + 31 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/bf/bf0a434c-84dd-4a8e-a08a-7a36f180cc75.json b/library/imports/bf/bf0a434c-84dd-4a8e-a08a-7a36f180cc75.json new file mode 100644 index 0000000..2297fb2 --- /dev/null +++ b/library/imports/bf/bf0a434c-84dd-4a8e-a08a-7a36f180cc75.json @@ -0,0 +1,1217 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "toggleContainer", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 1, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "toggleContainer", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 11 + }, + { + "__id__": 20 + } + ], + "_active": true, + "_components": [ + { + "__id__": 29 + } + ], + "_prefab": { + "__id__": 30 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 221, + "height": 61 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "toggle1", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + }, + { + "__id__": 6 + } + ], + "_active": true, + "_components": [ + { + "__id__": 9 + } + ], + "_prefab": { + "__id__": 10 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 41, + "height": 28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -62, + 3, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + } + ], + "_prefab": { + "__id__": 5 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_type": 0, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "bf0a434c-84dd-4a8e-a08a-7a36f180cc75" + }, + "fileId": "12e439SyJxPm6pHTRj/H92b", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "checkmark", + "_objFlags": 512, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + } + ], + "_prefab": { + "__id__": 8 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "1a32fc76-f0bd-4f66-980f-56929c0ca0b3" + }, + "_type": 0, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "bf0a434c-84dd-4a8e-a08a-7a36f180cc75" + }, + "fileId": "d5f81EvT59O3IYhi0b8awdA", + "sync": false + }, + { + "__type__": "cc.Toggle", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 214, + "g": 214, + "b": 214, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": { + "__id__": 2 + }, + "_N$isChecked": true, + "toggleGroup": null, + "checkMark": { + "__id__": 7 + }, + "checkEvents": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "bf0a434c-84dd-4a8e-a08a-7a36f180cc75" + }, + "fileId": "f8ae482OYFF86r5AHHZHzkB", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "toggle2", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 12 + }, + { + "__id__": 15 + } + ], + "_active": true, + "_components": [ + { + "__id__": 18 + } + ], + "_prefab": { + "__id__": 19 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 42, + "height": 28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 15, + 3, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 11 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 13 + } + ], + "_prefab": { + "__id__": 14 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_type": 0, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "bf0a434c-84dd-4a8e-a08a-7a36f180cc75" + }, + "fileId": "23182iNXjhGfbiM+k2MoPhG", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "checkmark", + "_objFlags": 512, + "_parent": { + "__id__": 11 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 16 + } + ], + "_prefab": { + "__id__": 17 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 15 + }, + "_enabled": true, + "_materials": [], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "1a32fc76-f0bd-4f66-980f-56929c0ca0b3" + }, + "_type": 0, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "bf0a434c-84dd-4a8e-a08a-7a36f180cc75" + }, + "fileId": "67160qO3xZPvYfuiiHVaiyt", + "sync": false + }, + { + "__type__": "cc.Toggle", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 11 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 214, + "g": 214, + "b": 214, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": { + "__id__": 11 + }, + "_N$isChecked": false, + "toggleGroup": null, + "checkMark": { + "__id__": 16 + }, + "checkEvents": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "bf0a434c-84dd-4a8e-a08a-7a36f180cc75" + }, + "fileId": "4b82d4NuWJDnZcPM+lR6By/", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "toggle3", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 21 + }, + { + "__id__": 24 + } + ], + "_active": true, + "_components": [ + { + "__id__": 27 + } + ], + "_prefab": { + "__id__": 28 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 37, + "height": 28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 91, + 3, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 20 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 22 + } + ], + "_prefab": { + "__id__": 23 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 21 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_type": 0, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "bf0a434c-84dd-4a8e-a08a-7a36f180cc75" + }, + "fileId": "7042dNy6Q1OmYWrdrd+O8Q7", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "checkmark", + "_objFlags": 512, + "_parent": { + "__id__": 20 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 25 + } + ], + "_prefab": { + "__id__": 26 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 24 + }, + "_enabled": true, + "_materials": [], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "1a32fc76-f0bd-4f66-980f-56929c0ca0b3" + }, + "_type": 0, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "bf0a434c-84dd-4a8e-a08a-7a36f180cc75" + }, + "fileId": "faafbv5RyVCB5deTlAulXVo", + "sync": false + }, + { + "__type__": "cc.Toggle", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 214, + "g": 214, + "b": 214, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": { + "__id__": 20 + }, + "_N$isChecked": false, + "toggleGroup": null, + "checkMark": { + "__id__": 25 + }, + "checkEvents": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "bf0a434c-84dd-4a8e-a08a-7a36f180cc75" + }, + "fileId": "2b5ebCn5ohKwJt/iEtuj16b", + "sync": false + }, + { + "__type__": "cc.ToggleContainer", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "allowSwitchOff": false, + "checkEvents": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "bf0a434c-84dd-4a8e-a08a-7a36f180cc75" + }, + "fileId": "8762b/ljEVCT4m/QHu2tS1g", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/c0/c0040c95-c57f-49cd-9cbc-12316b73d0d4.json b/library/imports/c0/c0040c95-c57f-49cd-9cbc-12316b73d0d4.json new file mode 100644 index 0000000..9b71e99 --- /dev/null +++ b/library/imports/c0/c0040c95-c57f-49cd-9cbc-12316b73d0d4.json @@ -0,0 +1,54 @@ +{ + "__type__": "cc.EffectAsset", + "_name": "builtin-clear-stencil", + "_objFlags": 0, + "_native": "", + "properties": null, + "techniques": [ + { + "passes": [ + { + "blendState": { + "targets": [ + { + "blend": true + } + ] + }, + "rasterizerState": { + "cullMode": 0 + }, + "program": "builtin-clear-stencil|vs|fs" + } + ] + } + ], + "shaders": [ + { + "hash": 2075641479, + "glsl3": { + "vert": "\nprecision highp float;\nin vec3 a_position;\nvoid main () {\n gl_Position = vec4(a_position, 1);\n}", + "frag": "\nprecision highp float;\nvoid main () {\n gl_FragColor = vec4(1.0);\n}" + }, + "glsl1": { + "vert": "\nprecision highp float;\nattribute vec3 a_position;\nvoid main () {\n gl_Position = vec4(a_position, 1);\n}", + "frag": "\nprecision highp float;\nvoid main () {\n gl_FragColor = vec4(1.0);\n}" + }, + "builtins": { + "globals": { + "blocks": [], + "samplers": [] + }, + "locals": { + "blocks": [], + "samplers": [] + } + }, + "defines": [], + "blocks": [], + "samplers": [], + "record": null, + "name": "builtin-clear-stencil|vs|fs" + } + ] +} \ No newline at end of file diff --git a/library/imports/c0/c05702e6-5198-4968-b28e-8c2e26a9ba5b.json b/library/imports/c0/c05702e6-5198-4968-b28e-8c2e26a9ba5b.json new file mode 100644 index 0000000..0700a1e --- /dev/null +++ b/library/imports/c0/c05702e6-5198-4968-b28e-8c2e26a9ba5b.json @@ -0,0 +1,29 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "tip", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 443, + 685, + 660, + 70 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 660, + 70 + ], + "rotated": 1, + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js b/library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js new file mode 100644 index 0000000..3859c24 --- /dev/null +++ b/library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js @@ -0,0 +1,1102 @@ +"use strict"; +cc._RF.push(module, 'c1af9nd7gNA95YJ04h9DdNX', 'MiniGameSdk'); +// Script/Sdk/MiniGameSdk.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MiniGameSdk = void 0; +/** + * 小游戏平台SDK工具封装,目前只支持微信和抖音平台 + */ +var MiniGameSdk; +(function (MiniGameSdk) { + function isWechat() { + //@ts-ignore + return window.wx !== null && window.wx !== undefined; + } + MiniGameSdk.isWechat = isWechat; + function isBytedance() { + //@ts-ignore + return window.tt !== null && window.tt !== undefined; + } + MiniGameSdk.isBytedance = isBytedance; + function getSysWinSize() { + var sys; + if (isWechat()) { + // @ts-ignore + sys = wx.getSystemInfoSync(); + } + else if (isBytedance()) { + // @ts-ignore + sys = tt.getSystemInfoSync(); + } + var size = { width: 0, height: 0 }; + if (sys) { + size.width = sys.windowWidth; + size.height = sys.windowHeight; + } + return size; + } + /** + * 插屏广告。微信抖音都支持! + */ + var ADInterstitial = /** @class */ (function () { + function ADInterstitial(adUid) { + this._adUid = adUid; + } + Object.defineProperty(ADInterstitial.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADInterstitial.prototype.show = function () { + var _this = this; + var _a, _b; + // @ts-ignore + if (isWechat() && !wx.createInterstitialAd) { + console.warn('wechat unsupport interstitial AD!'); + this._interstitial = null; + return; + } + // @ts-ignore + if (isBytedance() && !tt.createInterstitialAd) { + console.warn('bytedance unsupport interstitial AD!'); + this._interstitial = null; + return; + } + if (this._interstitial) { + this._interstitial.load(); + } + else { + if (isWechat()) { + // @ts-ignore + this._interstitial = wx.createInterstitialAd({ adUnitId: this._adUid }); + } + else if (isBytedance()) { + // @ts-ignore + this._interstitial = tt.createInterstitialAd({ adUnitId: this._adUid }); + } + else { + this._interstitial = null; + } + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.onLoad(function () { + console.log('load interstitial ad success'); + _this._interstitial.show().catch(function (err) { + console.log('catch interstitial ad error:', err); + }); + }); + (_b = this._interstitial) === null || _b === void 0 ? void 0 : _b.onError(function (err) { + console.log('interstitial ad on error:', err); + }); + } + }; + ADInterstitial.prototype.destory = function () { + var _a; + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADInterstitial; + }()); + var ADBanner = /** @class */ (function () { + /** + * 抖音和微信都支持 + * 横幅广告。预估宽度默认为300,预估高度为140。如果你不确定就按默认值来。 + * @param adUid 广告UID,后端配置 + * @param isTop 是否在屏幕顶部展示。内部会自动居中计算位置。 + * @param bannerWidth 横幅广告的预估宽度。默认300 + * @param autoShow 广告加载完成后是否立刻显示,默认为不显示 + */ + function ADBanner(adUid, param, bannerWidth, autoShow) { + if (bannerWidth === void 0) { bannerWidth = 300; } + if (autoShow === void 0) { autoShow = false; } + this._adUid = adUid; + this.create(autoShow, bannerWidth, param); // 默认300比较合适 + } + Object.defineProperty(ADBanner.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADBanner.prototype.create = function (autoShow, bannerWidth, param) { + var _this = this; + var _a, _b; + if (!isWechat() && !isBytedance()) { + this._banner = null; + return; + } + this.destroy(); + var winSize = getSysWinSize(); + var height = bannerWidth * 0.4; + var top = 0, left = 0; + if (typeof param === "boolean") { + left = (winSize.width - bannerWidth) / 2; + top = param ? 5 : (winSize.height - height); + } + else { + left = param.left; + top = param.top; + } + var params = { + adUnitId: this._adUid, + adIntervals: 30, + style: { left: left, top: top, width: bannerWidth } + }; + if (isWechat()) { + // @ts-ignore + this._banner = wx.createBannerAd(params); + } + else if (isBytedance()) { + // @ts-ignore + this._banner = tt.createBannerAd(params); + } + else { + this._banner = null; + } + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.onError(function (err) { + console.log('ad banner error:', err); + }); + (_b = this._banner) === null || _b === void 0 ? void 0 : _b.onLoad(function () { + autoShow && _this._banner.show(); + }); + }; + ADBanner.prototype.show = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.show(); + }; + ADBanner.prototype.hide = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.hide(); + }; + ADBanner.prototype.destroy = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADBanner; + }()); + var ADCustom = /** @class */ (function () { + /** + * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持! + * @param adUid 广告UID,后端配置 + * @param top 从左上角开始,距离屏幕顶部的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。 + * @param left 从左上角开始,距离屏幕最左边的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。 + * @param scale 原生模板广告的尺寸,默认为1,即100%。此值在微信服务后端广告中获得,默认为100%,目前有100%,90%,80%三种,一般情况不用修改。若有修改,记得传入值,例如90%就传入0.9。 + */ + function ADCustom(adUid, top, left, scale) { + if (top === void 0) { top = 0; } + if (left === void 0) { left = 0; } + if (scale === void 0) { scale = 1.0; } + this._adUid = adUid; + this.createCustomAd(top, left, scale); + } + Object.defineProperty(ADCustom.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADCustom.prototype.createCustomAd = function (top, left, scale) { + var _a; + if (!isWechat()) { // only wechat support custom ad + this._adCustom = null; + console.log('Only wechat support Custom Ad'); + return; + } + this.destroy(); + // 原生模板5个应用宽度为375,若设置了缩放比例,则宽度也需要设置 + // let width = 375 * this._scale; + // let newLeft = (sys.windowWidth - width) / 2; + // let newTop = sys.windowHeight / 2; // 120是预估高度 + // @ts-ignore + this._adCustom = wx.createCustomAd({ + adUnitId: this._adUid, + style: { left: left, top: top, fixed: true } + }); + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.onError(function (err) { + console.log('ad custom error:', err); + }); + }; + ADCustom.prototype.show = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.show(); + }; + ADCustom.prototype.hide = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.hide(); + }; + ADCustom.prototype.destroy = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADCustom; + }()); + /** + * 视频广告用户点击行为结果 + */ + var EAdVideoResult; + (function (EAdVideoResult) { + /** + * 用户看完了广告,游戏可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["ACCEPT"] = 0] = "ACCEPT"; + /** + * 用户中途关闭了广告,即未看完状态。不可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["REJECT"] = 1] = "REJECT"; + /** + * 广告组件内部发生了错误。不可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["ERROR"] = 2] = "ERROR"; + })(EAdVideoResult = MiniGameSdk.EAdVideoResult || (MiniGameSdk.EAdVideoResult = {})); + var ADVideo = /** @class */ (function () { + function ADVideo(adUid) { + this._adVideo = null; + this._adUid = adUid; + } + Object.defineProperty(ADVideo.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + /** + * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount + * @param onResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 + * @param target onResult的拥有者 + * @param maxVideoCount 可以连续看最大视频个数,可最大化商业效率。默认为3个。 + * @returns + */ + ADVideo.prototype.show = function (onResult, target, maxVideoCount) { + var _this = this; + var _a, _b, _c, _d, _e; + if (maxVideoCount === void 0) { maxVideoCount = 3; } + var callback = function (state, count) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, state, count); + }; + if (!isWechat() && !isBytedance()) { + callback(EAdVideoResult.ACCEPT, 1); + this._adVideo = null; + return; + } + var onAdVideoClosed = function (res) { + var _a; + (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.offClose(onAdVideoClosed); + if (isWechat()) { + if (res && res.isEnded || res === undefined) { + callback(EAdVideoResult.ACCEPT, 1); + } + else { + callback(EAdVideoResult.REJECT, 0); + } + } + else if (isBytedance()) { + var resConverted = res; + if (resConverted && resConverted.count > 0) { + callback(EAdVideoResult.ACCEPT, resConverted.count); + } + else { + callback(EAdVideoResult.REJECT, 0); + } + } + }; + (_a = this._adVideo) === null || _a === void 0 ? void 0 : _a.offClose(onAdVideoClosed); + if (isWechat()) { + // @ts-ignore + this._adVideo = wx.createRewardedVideoAd({ + adUnitId: this._adUid + }); + } + else if (isBytedance()) { + // @ts-ignore + this._adVideo = tt.createRewardedVideoAd({ + adUnitId: this._adUid, + multiton: true, + multitonRewardMsg: ['多1次奖励', '再多一次奖励', '再多一次奖励'], + multitonRewardTimes: maxVideoCount, + }); + } + else { + this._adVideo = null; + } + (_b = this._adVideo) === null || _b === void 0 ? void 0 : _b.onLoad(function () { + console.log('Ad load success'); + }); + (_c = this._adVideo) === null || _c === void 0 ? void 0 : _c.onError(function (err) { + console.log('Ad video error:', err); + callback(EAdVideoResult.ERROR, 0); + }); + (_d = this._adVideo) === null || _d === void 0 ? void 0 : _d.onClose(onAdVideoClosed); + (_e = this._adVideo) === null || _e === void 0 ? void 0 : _e.show().catch(function () { + var _a; + (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.load().then(function () { var _a; return (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.show(); }).catch(function (err) { + console.log('Catch video ad error:', err); + callback(EAdVideoResult.ERROR, 0); + }); + }); + }; + ADVideo.prototype.destory = function () { + var _a; + (_a = this._adVideo) === null || _a === void 0 ? void 0 : _a.destory(); + }; + return ADVideo; + }()); + var EAdBannerLocation; + (function (EAdBannerLocation) { + /** + * 屏幕顶部 + */ + EAdBannerLocation[EAdBannerLocation["TOP"] = 0] = "TOP"; + /** + * 屏幕底部 + */ + EAdBannerLocation[EAdBannerLocation["BOTTOM"] = 1] = "BOTTOM"; + })(EAdBannerLocation = MiniGameSdk.EAdBannerLocation || (MiniGameSdk.EAdBannerLocation = {})); + var AdvertManager = /** @class */ (function () { + function AdvertManager() { + this._customs = {}; + } + Object.defineProperty(AdvertManager, "instance", { + get: function () { + if (!AdvertManager._instance) { + AdvertManager._instance = new AdvertManager(); + } + return AdvertManager._instance; + }, + enumerable: false, + configurable: true + }); + /** + * 预加载横幅广告,不会显示。只有你在调用showBanner时才会显示。 + * 可重复调用,但是会销毁上一次的实例。一般情况,全局有一个就行了,太多占用内存,而且没必要。 + * @param adUid 广告UID + * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置 + * @param scale 默认为跟屏幕一样的宽度,可以通过设置缩放比例来调整大小。当然,平台有规定最大或最小宽度,函数内部会自动计算。 + */ + AdvertManager.prototype.loadBanner = function (adUid, location, scale) { + var _a; + if (location === void 0) { location = EAdBannerLocation.TOP; } + if (scale === void 0) { scale = 1.0; } + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + var size = getSysWinSize(); + // 当 style.width 小于 300 时,会取作 300。 当 style.width 大于屏幕宽度时,会取作屏幕宽度。 + var width = size.width * scale; + width = width < 300 ? 300 : width; // 最小值矫正 + width = width > size.width ? size.width : width; //最大值矫正 + this._banner = typeof location === 'number' ? new ADBanner(adUid, location === EAdBannerLocation.TOP, width, false) : new ADBanner(adUid, location, width, false); + }; + /** + * 显示横幅广告 + */ + AdvertManager.prototype.showBanner = function () { + if (this._banner) { + this._banner.show(); + } + else { + console.warn('MiniGameSDK: banner is null, you must call loadBanner(...) first!'); + } + }; + /** + * 隐藏横幅广告 + */ + AdvertManager.prototype.hideBanner = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.hide(); + }; + /** + * 弹出插屏广告 + * @param adUid 广告单元id + */ + AdvertManager.prototype.showInterstitial = function (adUid) { + var _a; + if (this._interstitial && this._interstitial.aduid === adUid) { + this._interstitial.show(); + } + else { + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.destory(); + this._interstitial = new ADInterstitial(adUid); + this._interstitial.show(); + } + }; + /** + * 加载原生模板广告,不会显示。只有你在调用showCustom时才会显示。 + * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持本函数,会调用无效! + * @param adUid 广告ID + * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置 + * @param scale 缩放比例,默认是1,即不缩放。这个缩放并不是自己填,而是根据微信MP后台你配置的原生模板广告的缩放比例填,目前有100%,90%,80%三种,一般情况不用修改。若有后台修改,记得传入值,例如90%就传入0.9。 + */ + AdvertManager.prototype.loadCustom = function (adUid, location, scale) { + if (location === void 0) { location = { top: 0, left: 0 }; } + if (scale === void 0) { scale = 1; } + // this._custom?.destroy(); + // this._custom = new ADCustom(adUid, location.top, location.left, scale); + if (this._customs[adUid]) { + console.log(adUid + " has been loaded."); + return; + } + this._customs[adUid] = new ADCustom(adUid, location.top, location.left, scale); + }; + /** + * 显示自定义广告。 + * @param adUid 广告的唯一标识符。使用此标识符来查找和显示特定的自定义广告。 + * + * 此方法尝试根据提供的adUid显示一个自定义广告。如果给定的adUid对应的自定义广告已加载, + * 则调用该广告的显示方法。如果广告未加载,则在控制台输出警告信息。 + */ + AdvertManager.prototype.showCustom = function (adUid) { + if (this._customs[adUid]) { + this._customs[adUid].show(); + } + else { + console.warn("You have not load " + adUid + " of Custom AD, can not show!"); + } + }; + /** + * 隐藏指定的自定义广告单元 + * + * 此方法用于隐藏通过广告单元标识符(adUid)指定的自定义广告。如果指定的广告单元已加载并显示, + * 则将其隐藏;如果广告单元未加载,则在控制台输出警告信息。 + * + * @param adUid 广告单元标识符,用于唯一标识一个自定义广告单元。 + */ + AdvertManager.prototype.hideCustom = function (adUid) { + if (this._customs[adUid]) { + this._customs[adUid].hide(); + } + else { + console.warn("You have not load " + adUid + " of Custom AD, can not hide!"); + } + }; + /** + * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount + * @param adUid 广告ID。如果与上一次UID不同,则内部会重新创建实例。开发者完全不用关心这个细节。 + * @param onVideoResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 + * @param target onVideoResult的拥有者 + * @param maxVideoCount 最大视频个数。默认是3,仅对抖音平台生效。微信平台看完视频count的结果永远是1或0 + */ + AdvertManager.prototype.showVideo = function (adUid, onVideoResult, target, maxVideoCount) { + var _a; + if (maxVideoCount === void 0) { maxVideoCount = 3; } + if (this._video && this._video.aduid === adUid) { + this._video.show(onVideoResult, target, maxVideoCount); + } + else { + (_a = this._video) === null || _a === void 0 ? void 0 : _a.destory(); + this._video = new ADVideo(adUid); + this._video.show(onVideoResult, target, maxVideoCount); + } + }; + /** + * 销毁内部所有实例,清空内存 + */ + AdvertManager.prototype.destroyAll = function () { + var _a, _b, _c, _d; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + this._banner = null; + (_b = this._interstitial) === null || _b === void 0 ? void 0 : _b.destory(); + this._interstitial = null; + (_c = this._video) === null || _c === void 0 ? void 0 : _c.destory(); + this._video = null; + if (this._customs) { + for (var val in this._customs) { + (_d = this._customs[val]) === null || _d === void 0 ? void 0 : _d.destroy(); + } + this._customs = {}; + } + }; + return AdvertManager; + }()); + MiniGameSdk.AdvertManager = AdvertManager; + var EGameClubIcon; + (function (EGameClubIcon) { + /** 绿色图标 */ + EGameClubIcon["GREEN"] = "green"; + /** 红色图标 */ + EGameClubIcon["WHITE"] = "white"; + /** 有黑色圆角背景的白色图标 */ + EGameClubIcon["DARK"] = "dark"; + /** 有白色圆角背景的绿色图标 */ + EGameClubIcon["LIGHT"] = "light"; + })(EGameClubIcon = MiniGameSdk.EGameClubIcon || (MiniGameSdk.EGameClubIcon = {})); + var GameClub = /** @class */ (function () { + function GameClub() { + } + Object.defineProperty(GameClub, "instance", { + get: function () { + if (!this._instance) { + this._instance = new GameClub(); + } + return this._instance; + }, + enumerable: false, + configurable: true + }); + /** + * 创建游戏圈按钮 + * @param icon + * @param position + * @param size + * @param openLink + */ + GameClub.prototype.create = function (icon, position, size, openLink) { + if (icon === void 0) { icon = EGameClubIcon.GREEN; } + if (position === void 0) { position = { top: 0, left: 0 }; } + if (size === void 0) { size = { width: 40, height: 40 }; } + if (isWechat()) { + // @ts-ignore + this._club = wx.createGameClubButton({ + icon: icon, + style: { + left: position.left, + top: position.top, + width: size.width, + height: size.height + }, + openlink: openLink + }); + } + }; + GameClub.prototype.show = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.show(); + }; + GameClub.prototype.hide = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.hide(); + }; + GameClub.prototype.destory = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return GameClub; + }()); + MiniGameSdk.GameClub = GameClub; + /** + * 振动类型 + */ + var EVirbrateType; + (function (EVirbrateType) { + /** + * 短振动 + */ + EVirbrateType[EVirbrateType["SHORT"] = 0] = "SHORT"; + /** + * 长振动 + */ + EVirbrateType[EVirbrateType["LONG"] = 1] = "LONG"; + })(EVirbrateType = MiniGameSdk.EVirbrateType || (MiniGameSdk.EVirbrateType = {})); + /** + * 平台常用API合集 + */ + var API = /** @class */ (function () { + function API() { + } + /** + * 分享app给朋友,微信小游戏分享是没有onSuccess回调的。 + * @param title 标题 + * @param description 细节描述信息 + * @param imageUrl 图片地址 + * @param query 查询信息 + * @param onSuccess 抖音会回调,微信不会回调 + */ + API.shareAppToFriends = function (title, description, imageUrl, query, onSuccess) { + if (description === void 0) { description = ''; } + if (isWechat()) { + try { + //@ts-ignore + wx.shareAppMessage({ + title: title, + imageUrl: imageUrl, + query: query, + }); + } + catch (err) { + console.log("share faild: " + err); + } + } + if (isBytedance()) { + //@ts-ignore + tt.shareAppMessage({ + title: title, + desc: description, + imageUrl: imageUrl !== null && imageUrl !== void 0 ? imageUrl : '', + query: query !== null && query !== void 0 ? query : '', + success: function (res) { + console.log('share success:', res); + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + }, + fail: function (res) { + console.log('share fail:', res); + } + }); + } + }; + /** + * 显示提示信息 + * @param title 标题 + * @param duration 时长(单位:秒) + * @returns + */ + API.showToast = function (title, duration) { + if (duration === void 0) { duration = 2; } + if (isWechat()) { + // @ts-ignore + wx.showToast({ + title: title, + icon: 'success', + duration: duration * 1000 + }); + } + if (isBytedance()) { + //@ts-ignore + tt.showToast({ + title: title, + duration: duration * 1000, + success: function (res) { + console.log("" + res); + }, + fail: function (res) { + console.log("showToast\u8C03\u7528\u5931\u8D25"); + }, + }); + } + }; + /** + * 设备震动效果,默认为短震动。注意:可能一些机型不会生效,具体看平台方的说明 + * @param type MiniGameSdk.API.EVirbrateType + */ + API.vibrate = function (type) { + if (type === void 0) { type = EVirbrateType.SHORT; } + if (isWechat()) { + switch (type) { + case EVirbrateType.SHORT: + //@ts-ignore + wx.vibrateShort({ + success: function (res) { + console.log('vibrate success:', res); + }, + fail: function (res) { + console.log('vibrateShort failed', res); + }, + }); + break; + case EVirbrateType.LONG: + //@ts-ignore + wx.vibrateLong({ + success: function (res) { + console.log('vibrate success', res); + }, + fail: function (res) { + console.log("vibrateLong failed", res); + }, + }); + break; + default: + break; + } + } + if (isBytedance()) { + switch (type) { + case EVirbrateType.SHORT: + //@ts-ignore + tt.vibrateShort({ + success: function (res) { + console.log('vibrate success:', res); + }, + fail: function (res) { + console.log('vibrateShort failed', res); + }, + }); + break; + case EVirbrateType.LONG: + //@ts-ignore + tt.vibrateLong({ + success: function (res) { + console.log('vibrate success', res); + }, + fail: function (res) { + console.log("vibrateLong failed", res); + }, + }); + break; + default: + break; + } + } + }; + /** + * 重启小游戏 + */ + API.reboot = function () { + if (isWechat()) { + //@ts-ignore + wx.restartMiniProgram({ + success: function () { + console.log('restart success'); + }, + fail: function () { + console.log('restart failed'); + } + }); + } + if (isBytedance()) { + try { + // @ts-ignore + tt.restartMiniProgramSync(); + } + catch (error) { + console.log("restartMiniProgramSync", error); + } + } + }; + /** + * 退出小游戏 + */ + API.exit = function () { + if (isWechat()) { + //@ts-ignore + wx.exitMiniProgram({ + success: function () { + console.log('exit success'); + }, + fail: function () { + console.log('exit failed'); + } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.exitMiniProgram({ + success: function (res) { + console.log("exit success:", res === null || res === void 0 ? void 0 : res.data); + }, + fail: function (res) { + console.log("exit fail:", res === null || res === void 0 ? void 0 : res.errMsg); + }, + }); + } + }; + /** + * 显示转发按钮。通常在刚进入游戏的时候调用。 + * 主要是打开平台“...”这个按钮里面的分享菜单,一般默认是关闭的,需要调用这个函数打开。可以让用户分享你的游戏入口。 + */ + API.showShareMenu = function () { + if (isWechat()) { + //@ts-ignore + wx.showShareMenu({ + withShareTicket: true, + menus: ['shareAppMessage', 'shareTimeline'], + success: function () { }, + fail: function () { }, + complete: function () { } + }); + } + if (isBytedance()) { + //@ts-ignore + tt.showShareMenu({ + success: function (res) { + console.log("show menu is showing"); + }, + fail: function (err) { + console.log("showShareMenu:", err.errMsg); + }, + complete: function (res) { + console.log("showShareMenu complete"); + }, + }); + } + }; + /** + * 微信小游戏:跳转到另外一款小游戏 + * 抖音小游戏:跳转到指定的视频界面 + * @param targetId 微信小游戏appid或者视频界面 + */ + API.navigateTo = function (targetId, onSuccess) { + if (isWechat()) { + // @ts-ignore + wx.navigateToMiniProgram({ + appId: targetId, + extraData: { + foo: 'bar' + }, + envVersion: 'develop', + success: function (res) { + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.navigateToVideoView({ + videoId: targetId, + success: function (res) { + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + }, + fail: function (err) { + console.log("bytedance navigateToVideoView fail", err); + }, + }); + } + }; + /** + * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session + * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null + */ + API.login = function (callback) { + var loginPlatform = function () { + if (isWechat()) { + //@ts-ignore + wx.login({ + success: function (res) { + if (res.code) { + API._loginCode = res.code; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + } + else { + console.log('login error:', res.errMsg); + } + }, + fail: function () { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log('login fail'); + } + }); + } + else if (isBytedance()) { + //@ts-ignore + tt.login({ + force: true, + success: function (res) { + var _a, _b; + console.log("login " + res.code + " " + res.anonymousCode); + if (res.code) { + API._loginCode = (_a = res.code) === null || _a === void 0 ? void 0 : _a.toString(); + API._loginAnonymousCode = (_b = res.anonymousCode) === null || _b === void 0 ? void 0 : _b.toString(); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + } + else { + console.log('login error:', res.errMsg); + } + }, + fail: function (res) { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log("login fail", res); + }, + }); + } + else { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log('not mini game platform, login codes are all null'); + } + }; + if (!API._loginCode) { + loginPlatform(); + } + else { + if (isWechat()) { + //@ts-ignore + wx.checkSession({ + success: function () { + console.log("session is valid, use current code:", API._loginCode); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + }, + fail: function () { + console.log("session expired"); + loginPlatform(); + } + }); + } + else if (isBytedance()) { + //@ts-ignore + tt.checkSession({ + success: function () { + console.log("session is valid, user current code: " + API._loginCode + ", " + API._loginAnonymousCode); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + }, + fail: function () { + console.log("session expired"); + loginPlatform(); + }, + }); + } + else { + console.log('not mini game platform, login null'); + callback === null || callback === void 0 ? void 0 : callback(null, null); + } + } + }; + /** + * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session + * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null + */ + API.getUserInfo = function (callback) { + //@ts-ignore + tt.getUserInfo({ + withCredentials: true, + success: function (res) { + API._userInfo = res; + callback(API._userInfo); + }, + fail: function (err) { + callback(err); + } + }); + }; + /** + * 调用微信云函数。由于参数需要自定义,所以为any,需要自行解释。函数只完成通道和处理一场的作用 + * @param callback 返回云函数调用结果。需要检查返回参数是否为空,失败的时候为空 + * @param name 云函数的名字 + * @param data 云函数的内容 + */ + API.callWechatCloudFunction = function (callback, name, data) { + if (!isWechat()) { + console.log('Not wechat platform, not support callWechatCloudFunction'); + return; + } + this.login(function (code, anonymousCode) { + if (!API._hasInitWechatCloudFunction) { + //@ts-ignore + wx.cloud.init(); + API._hasInitWechatCloudFunction = true; + } + //@ts-ignore + wx.cloud.callFunction({ + name: name, + data: data, + success: function (res) { return callback === null || callback === void 0 ? void 0 : callback(res); }, + fail: function (err) { + console.log('wechat cloud function error:', err); + callback === null || callback === void 0 ? void 0 : callback(null); + } + }); + }); + }; + /** + * 存储用户信息,数据量不能大。可以考虑用于分数排行榜。用户之间可共享排行数据。 + * @param key + * @param value + */ + API.setUserCloudStorage = function (key, value) { + if (isWechat()) { + // @ts-ignore + wx.setUserCloudStorage({ + KVDataList: [{ key: key, value: value }], + success: function () { return console.log("set cloud storage success:" + key + ", value:" + value); }, + fail: function (err) { return console.log('set cloud storage error:', err); } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.setUserCloudStorage({ + KVDataList: [{ key: key, value: value, }], + success: function () { return console.log("set cloud storage success:" + key + ", value:" + value); }, + fail: function (err) { return console.log('set cloud storage error:', err); } + }); + } + }; + API._loginCode = null; + API._loginAnonymousCode = null; + API._hasInitWechatCloudFunction = false; + API._userInfo = null; + return API; + }()); + MiniGameSdk.API = API; + /** + * 抖音侧边栏专属接口 + */ + var BytedanceSidebar = /** @class */ (function () { + function BytedanceSidebar() { + } + /** + * 本游戏在抖音环境下启动监控,需要放在全局环境中,保证能第一时间启动。因为可能监听抖音失败(抖音小游戏官方的说明)! + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + */ + BytedanceSidebar.listenFromSidebar = function (onResult, target) { + if (!isBytedance()) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + // @ts-ignore + tt.onShow(function (res) { + console.log('onShow launch res:', res); + if (res.scene === '021036') { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + console.log('launch from sidebar'); + } + else { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + console.log('NOT launch from douyin sidebar!'); + } + }); + // @ts-ignore + var options = tt.getLaunchOptionsSync(); + if (options && options.scene === '021036') { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + } + }; + /** + * 检测抖音侧边栏是否存在 + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + * @returns + */ + BytedanceSidebar.checkSideBar = function (onResult, target) { + if (!isBytedance()) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + //@ts-ignore + tt.checkScene({ + scene: "sidebar", + success: function (res) { + console.log("check scene success: ", res.isExist); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, res.isExist); + }, + fail: function (res) { + console.log("check scene fail:", res); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + } + }); + }; + /** + * 跳转到抖音侧边栏 + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + * @returns + */ + BytedanceSidebar.navigateToSidebar = function (onResult, target) { + if (!isBytedance()) { + console.log("not douyin platform!"); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + // @ts-ignore + tt.navigateToScene({ + scene: "sidebar", + success: function () { + console.log("navigate success"); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + }, + fail: function (res) { + console.log("navigate failed reason:", res); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + }, + }); + }; + return BytedanceSidebar; + }()); + MiniGameSdk.BytedanceSidebar = BytedanceSidebar; +})(MiniGameSdk = exports.MiniGameSdk || (exports.MiniGameSdk = {})); + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js.map b/library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js.map new file mode 100644 index 0000000..8b1f333 --- /dev/null +++ b/library/imports/c1/c1af99dd-ee03-40f7-9609-d3887d0dd357.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\Sdk\\MiniGameSdk.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["/**\r\n * 小游戏平台SDK工具封装,目前只支持微信和抖音平台\r\n */\r\nexport namespace MiniGameSdk {\r\n\r\n interface ISize {\r\n width: number;\r\n height: number;\r\n }\r\n\r\n export interface IPosition {\r\n top: number;\r\n left: number;\r\n }\r\n\r\n export function isWechat(): boolean {\r\n //@ts-ignore\r\n return window.wx !== null && window.wx !== undefined;\r\n }\r\n\r\n export function isBytedance(): boolean {\r\n //@ts-ignore\r\n return window.tt !== null && window.tt !== undefined;\r\n }\r\n\r\n\r\n function getSysWinSize(): ISize {\r\n let sys: any;\r\n if (isWechat()) {\r\n // @ts-ignore\r\n sys = wx.getSystemInfoSync();\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n sys = tt.getSystemInfoSync();\r\n }\r\n\r\n let size: ISize = { width: 0, height: 0 };\r\n if (sys) {\r\n size.width = sys.windowWidth;\r\n size.height = sys.windowHeight;\r\n }\r\n\r\n return size;\r\n }\r\n\r\n /**\r\n * 插屏广告。微信抖音都支持!\r\n */\r\n class ADInterstitial {\r\n private _adUid: string;\r\n private _interstitial: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n constructor(adUid: string) {\r\n this._adUid = adUid;\r\n }\r\n\r\n show() {\r\n // @ts-ignore\r\n if (isWechat() && !wx.createInterstitialAd) {\r\n console.warn('wechat unsupport interstitial AD!');\r\n this._interstitial = null;\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n if (isBytedance() && !tt.createInterstitialAd) {\r\n console.warn('bytedance unsupport interstitial AD!');\r\n this._interstitial = null;\r\n return;\r\n }\r\n\r\n\r\n if (this._interstitial) {\r\n this._interstitial.load();\r\n } else {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._interstitial = wx.createInterstitialAd({ adUnitId: this._adUid });\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._interstitial = tt.createInterstitialAd({ adUnitId: this._adUid });\r\n } else {\r\n this._interstitial = null;\r\n }\r\n\r\n this._interstitial?.onLoad(() => {\r\n console.log('load interstitial ad success');\r\n this._interstitial.show().catch((err: any) => {\r\n console.log('catch interstitial ad error:', err);\r\n });\r\n });\r\n\r\n this._interstitial?.onError((err: any) => {\r\n console.log('interstitial ad on error:', err);\r\n });\r\n }\r\n }\r\n destory() {\r\n this._interstitial?.destroy();\r\n }\r\n }\r\n\r\n class ADBanner {\r\n private _adUid: string;\r\n private _banner: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n /**\r\n * 抖音和微信都支持\r\n * 横幅广告。预估宽度默认为300,预估高度为140。如果你不确定就按默认值来。\r\n * @param adUid 广告UID,后端配置\r\n * @param isTop 是否在屏幕顶部展示。内部会自动居中计算位置。\r\n * @param bannerWidth 横幅广告的预估宽度。默认300\r\n * @param autoShow 广告加载完成后是否立刻显示,默认为不显示\r\n */\r\n constructor(adUid: string, param: boolean | IPosition, bannerWidth: number = 300, autoShow: boolean = false) {\r\n this._adUid = adUid;\r\n this.create(autoShow, bannerWidth, param); // 默认300比较合适\r\n }\r\n\r\n private create(autoShow: boolean, bannerWidth: number, param: boolean | IPosition) {\r\n if (!isWechat() && !isBytedance()) {\r\n this._banner = null;\r\n return;\r\n }\r\n\r\n this.destroy();\r\n\r\n let winSize = getSysWinSize();\r\n\r\n let height = bannerWidth * 0.4;\r\n let top = 0, left = 0;\r\n\r\n if (typeof param === \"boolean\") {\r\n left = (winSize.width - bannerWidth) / 2\r\n top = param ? 5 : (winSize.height - height);\r\n } else {\r\n left = param.left;\r\n top = param.top;\r\n }\r\n\r\n let params = {\r\n adUnitId: this._adUid,\r\n adIntervals: 30,// 自动刷新频率不能小于30秒\r\n style: { left: left, top: top, width: bannerWidth }\r\n }\r\n\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._banner = wx.createBannerAd(params);\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._banner = tt.createBannerAd(params);\r\n } else {\r\n this._banner = null;\r\n }\r\n\r\n this._banner?.onError((err: any) => {\r\n console.log('ad banner error:', err);\r\n });\r\n\r\n this._banner?.onLoad(() => {\r\n autoShow && this._banner.show();\r\n });\r\n }\r\n\r\n show() {\r\n this._banner?.show();\r\n }\r\n\r\n hide() {\r\n this._banner?.hide();\r\n }\r\n\r\n destroy() {\r\n this._banner?.destroy();\r\n }\r\n }\r\n\r\n class ADCustom {\r\n private _adUid: string;\r\n private _adCustom: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n /**\r\n * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持!\r\n * @param adUid 广告UID,后端配置\r\n * @param top 从左上角开始,距离屏幕顶部的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。\r\n * @param left 从左上角开始,距离屏幕最左边的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。\r\n * @param scale 原生模板广告的尺寸,默认为1,即100%。此值在微信服务后端广告中获得,默认为100%,目前有100%,90%,80%三种,一般情况不用修改。若有修改,记得传入值,例如90%就传入0.9。\r\n */\r\n constructor(adUid: string, top: number = 0, left: number = 0, scale: number = 1.0) {\r\n this._adUid = adUid;\r\n this.createCustomAd(top, left, scale);\r\n }\r\n\r\n private createCustomAd(top: number, left: number, scale: number) {\r\n if (!isWechat()) { // only wechat support custom ad\r\n this._adCustom = null;\r\n console.log('Only wechat support Custom Ad');\r\n return;\r\n }\r\n\r\n this.destroy();\r\n // 原生模板5个应用宽度为375,若设置了缩放比例,则宽度也需要设置\r\n // let width = 375 * this._scale;\r\n // let newLeft = (sys.windowWidth - width) / 2;\r\n // let newTop = sys.windowHeight / 2; // 120是预估高度\r\n\r\n // @ts-ignore\r\n this._adCustom = wx.createCustomAd({\r\n adUnitId: this._adUid,\r\n style: { left: left, top: top, fixed: true }\r\n });\r\n\r\n this._adCustom?.onError((err: any) => {\r\n console.log('ad custom error:', err);\r\n });\r\n }\r\n show() {\r\n this._adCustom?.show();\r\n }\r\n\r\n hide() {\r\n this._adCustom?.hide();\r\n }\r\n\r\n destroy() {\r\n this._adCustom?.destroy();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 视频广告用户点击行为结果\r\n */\r\n export enum EAdVideoResult {\r\n /**\r\n * 用户看完了广告,游戏可发放奖励。\r\n */\r\n ACCEPT,\r\n\r\n /**\r\n * 用户中途关闭了广告,即未看完状态。不可发放奖励。\r\n */\r\n REJECT,\r\n\r\n /**\r\n * 广告组件内部发生了错误。不可发放奖励。\r\n */\r\n ERROR,\r\n }\r\n\r\n class ADVideo {\r\n private _adUid: string;\r\n private _adVideo: any = null;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n constructor(adUid: string) {\r\n this._adUid = adUid;\r\n }\r\n\r\n /**\r\n * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount\r\n * @param onResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。\r\n * @param target onResult的拥有者\r\n * @param maxVideoCount 可以连续看最大视频个数,可最大化商业效率。默认为3个。\r\n * @returns \r\n */\r\n show(onResult: (res: EAdVideoResult, count: number) => void, target?: any, maxVideoCount: number = 3): void {\r\n let callback = (state: EAdVideoResult, count: number) => {\r\n onResult?.call(target, state, count);\r\n }\r\n\r\n if (!isWechat() && !isBytedance()) {\r\n callback(EAdVideoResult.ACCEPT, 1);\r\n this._adVideo = null;\r\n return;\r\n }\r\n\r\n let onAdVideoClosed = (res: any) => {\r\n this._adVideo?.offClose(onAdVideoClosed);\r\n if (isWechat()) {\r\n if (res && res.isEnded || res === undefined) {\r\n callback(EAdVideoResult.ACCEPT, 1);\r\n } else {\r\n callback(EAdVideoResult.REJECT, 0);\r\n }\r\n } else if (isBytedance()) {\r\n let resConverted = res as { isEnded: boolean, count: number };\r\n if (resConverted && resConverted.count > 0) {\r\n callback(EAdVideoResult.ACCEPT, resConverted.count);\r\n } else {\r\n callback(EAdVideoResult.REJECT, 0);\r\n }\r\n }\r\n }\r\n\r\n this._adVideo?.offClose(onAdVideoClosed);\r\n\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._adVideo = wx.createRewardedVideoAd({\r\n adUnitId: this._adUid\r\n });\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._adVideo = tt.createRewardedVideoAd({\r\n adUnitId: this._adUid,\r\n multiton: true,\r\n multitonRewardMsg: ['多1次奖励', '再多一次奖励', '再多一次奖励'],\r\n multitonRewardTimes: maxVideoCount,\r\n });\r\n } else {\r\n this._adVideo = null;\r\n }\r\n\r\n\r\n this._adVideo?.onLoad(() => {\r\n console.log('Ad load success');\r\n });\r\n\r\n this._adVideo?.onError((err: { errMsg: string, errCode: number }) => {\r\n console.log('Ad video error:', err);\r\n callback(EAdVideoResult.ERROR, 0);\r\n });\r\n\r\n this._adVideo?.onClose(onAdVideoClosed);\r\n\r\n this._adVideo?.show().catch(() => {\r\n this._adVideo?.load().then(() =>\r\n this._adVideo?.show()).catch((err: { errMsg: string, errCode: number }) => {\r\n console.log('Catch video ad error:', err);\r\n callback(EAdVideoResult.ERROR, 0);\r\n });\r\n });\r\n }\r\n\r\n destory() {\r\n this._adVideo?.destory();\r\n }\r\n }\r\n\r\n export enum EAdBannerLocation {\r\n /**\r\n * 屏幕顶部\r\n */\r\n TOP,\r\n\r\n /**\r\n * 屏幕底部\r\n */\r\n BOTTOM,\r\n }\r\n\r\n export class AdvertManager {\r\n\r\n private static _instance: AdvertManager;\r\n\r\n static get instance(): AdvertManager {\r\n if (!AdvertManager._instance) {\r\n AdvertManager._instance = new AdvertManager();\r\n }\r\n return AdvertManager._instance;\r\n }\r\n\r\n private _video: ADVideo;\r\n private _interstitial: ADInterstitial;\r\n private _banner: ADBanner;\r\n private _customs: Record = {};\r\n\r\n private constructor() {\r\n\r\n }\r\n\r\n /**\r\n * 预加载横幅广告,不会显示。只有你在调用showBanner时才会显示。\r\n * 可重复调用,但是会销毁上一次的实例。一般情况,全局有一个就行了,太多占用内存,而且没必要。\r\n * @param adUid 广告UID\r\n * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置\r\n * @param scale 默认为跟屏幕一样的宽度,可以通过设置缩放比例来调整大小。当然,平台有规定最大或最小宽度,函数内部会自动计算。\r\n */\r\n public loadBanner(adUid: string, location: EAdBannerLocation | IPosition = EAdBannerLocation.TOP, scale: number = 1.0) {\r\n this._banner?.destroy();\r\n let size: ISize = getSysWinSize();\r\n // 当 style.width 小于 300 时,会取作 300。 当 style.width 大于屏幕宽度时,会取作屏幕宽度。\r\n let width = size.width * scale;\r\n width = width < 300 ? 300 : width; // 最小值矫正\r\n width = width > size.width ? size.width : width; //最大值矫正\r\n this._banner = typeof location === 'number' ? new ADBanner(adUid, location === EAdBannerLocation.TOP, width, false) : new ADBanner(adUid, location, width, false);\r\n }\r\n\r\n /**\r\n * 显示横幅广告\r\n */\r\n public showBanner() {\r\n if (this._banner) {\r\n this._banner.show();\r\n } else {\r\n console.warn('MiniGameSDK: banner is null, you must call loadBanner(...) first!');\r\n }\r\n }\r\n\r\n /**\r\n * 隐藏横幅广告\r\n */\r\n public hideBanner() {\r\n this._banner?.hide();\r\n }\r\n\r\n /**\r\n * 弹出插屏广告\r\n * @param adUid 广告单元id\r\n */\r\n public showInterstitial(adUid: string) {\r\n if (this._interstitial && this._interstitial.aduid === adUid) {\r\n this._interstitial.show();\r\n } else {\r\n this._interstitial?.destory();\r\n this._interstitial = new ADInterstitial(adUid);\r\n this._interstitial.show();\r\n }\r\n }\r\n\r\n /**\r\n * 加载原生模板广告,不会显示。只有你在调用showCustom时才会显示。\r\n * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持本函数,会调用无效!\r\n * @param adUid 广告ID\r\n * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置\r\n * @param scale 缩放比例,默认是1,即不缩放。这个缩放并不是自己填,而是根据微信MP后台你配置的原生模板广告的缩放比例填,目前有100%,90%,80%三种,一般情况不用修改。若有后台修改,记得传入值,例如90%就传入0.9。\r\n */\r\n public loadCustom(adUid: string, location: IPosition = { top: 0, left: 0 }, scale: number = 1) {\r\n // this._custom?.destroy();\r\n // this._custom = new ADCustom(adUid, location.top, location.left, scale);\r\n if (this._customs[adUid]) {\r\n console.log(`${adUid} has been loaded.`);\r\n return;\r\n }\r\n\r\n this._customs[adUid] = new ADCustom(adUid, location.top, location.left, scale);\r\n }\r\n\r\n /**\r\n * 显示自定义广告。\r\n * @param adUid 广告的唯一标识符。使用此标识符来查找和显示特定的自定义广告。\r\n * \r\n * 此方法尝试根据提供的adUid显示一个自定义广告。如果给定的adUid对应的自定义广告已加载,\r\n * 则调用该广告的显示方法。如果广告未加载,则在控制台输出警告信息。\r\n */\r\n public showCustom(adUid: string) {\r\n if (this._customs[adUid]) {\r\n this._customs[adUid].show();\r\n } else {\r\n console.warn(`You have not load ${adUid} of Custom AD, can not show!`);\r\n }\r\n }\r\n\r\n /**\r\n * 隐藏指定的自定义广告单元\r\n * \r\n * 此方法用于隐藏通过广告单元标识符(adUid)指定的自定义广告。如果指定的广告单元已加载并显示,\r\n * 则将其隐藏;如果广告单元未加载,则在控制台输出警告信息。\r\n * \r\n * @param adUid 广告单元标识符,用于唯一标识一个自定义广告单元。\r\n */\r\n public hideCustom(adUid: string) {\r\n if (this._customs[adUid]) {\r\n this._customs[adUid].hide();\r\n } else {\r\n console.warn(`You have not load ${adUid} of Custom AD, can not hide!`);\r\n }\r\n }\r\n\r\n /**\r\n * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount\r\n * @param adUid 广告ID。如果与上一次UID不同,则内部会重新创建实例。开发者完全不用关心这个细节。\r\n * @param onVideoResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 \r\n * @param target onVideoResult的拥有者\r\n * @param maxVideoCount 最大视频个数。默认是3,仅对抖音平台生效。微信平台看完视频count的结果永远是1或0\r\n */\r\n public showVideo(adUid: string, onVideoResult: (res: EAdVideoResult, count: number) => void, target?: any, maxVideoCount: number = 3) {\r\n if (this._video && this._video.aduid === adUid) {\r\n this._video.show(onVideoResult, target, maxVideoCount);\r\n } else {\r\n this._video?.destory();\r\n this._video = new ADVideo(adUid);\r\n this._video.show(onVideoResult, target, maxVideoCount);\r\n }\r\n }\r\n\r\n /**\r\n * 销毁内部所有实例,清空内存\r\n */\r\n public destroyAll() {\r\n this._banner?.destroy();\r\n this._banner = null;\r\n\r\n this._interstitial?.destory();\r\n this._interstitial = null;\r\n\r\n this._video?.destory();\r\n this._video = null;\r\n\r\n if (this._customs) {\r\n for (let val in this._customs) {\r\n this._customs[val]?.destroy();\r\n }\r\n this._customs = {};\r\n }\r\n }\r\n }\r\n\r\n export enum EGameClubIcon {\r\n /** 绿色图标 */\r\n GREEN = 'green',\r\n\r\n /** 红色图标 */\r\n WHITE = 'white',\r\n\r\n /** 有黑色圆角背景的白色图标 */\r\n DARK = 'dark',\r\n\r\n /** 有白色圆角背景的绿色图标 */\r\n LIGHT = 'light'\r\n }\r\n\r\n export class GameClub {\r\n private static _instance: GameClub;\r\n\r\n static get instance(): GameClub {\r\n if (!this._instance) {\r\n this._instance = new GameClub();\r\n }\r\n return this._instance;\r\n }\r\n\r\n private _club: any;\r\n\r\n private constructor() {\r\n\r\n }\r\n\r\n /**\r\n * 创建游戏圈按钮\r\n * @param icon \r\n * @param position \r\n * @param size \r\n * @param openLink \r\n */\r\n create(icon: EGameClubIcon = EGameClubIcon.GREEN, position: IPosition = { top: 0, left: 0 }, size: ISize = { width: 40, height: 40 }, openLink?: string) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._club = wx.createGameClubButton({\r\n icon: icon,\r\n style: {\r\n left: position.left,\r\n top: position.top,\r\n width: size.width,\r\n height: size.height\r\n },\r\n openlink: openLink\r\n });\r\n }\r\n }\r\n\r\n show() {\r\n this._club?.show();\r\n }\r\n\r\n hide() {\r\n this._club?.hide();\r\n }\r\n\r\n destory() {\r\n this._club?.destroy();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 振动类型\r\n */\r\n export enum EVirbrateType {\r\n /**\r\n * 短振动\r\n */\r\n SHORT,\r\n\r\n /**\r\n * 长振动\r\n */\r\n LONG\r\n }\r\n\r\n /**\r\n * 平台常用API合集\r\n */\r\n export class API {\r\n private static _loginCode: string = null;\r\n private static _loginAnonymousCode: string = null;\r\n private static _hasInitWechatCloudFunction: boolean = false;\r\n private static _userInfo: any = null;\r\n\r\n /**\r\n * 分享app给朋友,微信小游戏分享是没有onSuccess回调的。\r\n * @param title 标题\r\n * @param description 细节描述信息 \r\n * @param imageUrl 图片地址\r\n * @param query 查询信息\r\n * @param onSuccess 抖音会回调,微信不会回调\r\n */\r\n static shareAppToFriends(title: string, description: string = '', imageUrl?: string, query?: string, onSuccess?: () => void) {\r\n if (isWechat()) {\r\n try {\r\n //@ts-ignore\r\n wx.shareAppMessage({\r\n title: title,\r\n imageUrl: imageUrl,\r\n query: query,\r\n });\r\n } catch (err) {\r\n console.log(`share faild: ${err}`);\r\n }\r\n }\r\n\r\n if (isBytedance()) {\r\n //@ts-ignore\r\n tt.shareAppMessage({\r\n title: title,\r\n desc: description,\r\n imageUrl: imageUrl ?? '',\r\n query: query ?? '',\r\n success(res: any) {\r\n console.log('share success:', res);\r\n onSuccess?.();\r\n },\r\n fail(res: any) {\r\n console.log('share fail:', res);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 显示提示信息\r\n * @param title 标题\r\n * @param duration 时长(单位:秒)\r\n * @returns \r\n */\r\n static showToast(title: string, duration: number = 2) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.showToast({\r\n title: title,\r\n icon: 'success',\r\n duration: duration * 1000\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n //@ts-ignore\r\n tt.showToast({\r\n title: title,\r\n duration: duration * 1000,\r\n success(res: any) {\r\n console.log(`${res}`);\r\n },\r\n fail(res: any) {\r\n console.log(`showToast调用失败`);\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 设备震动效果,默认为短震动。注意:可能一些机型不会生效,具体看平台方的说明\r\n * @param type MiniGameSdk.API.EVirbrateType\r\n */\r\n static vibrate(type: EVirbrateType = EVirbrateType.SHORT) {\r\n if (isWechat()) {\r\n switch (type) {\r\n case EVirbrateType.SHORT:\r\n //@ts-ignore\r\n wx.vibrateShort({\r\n success(res: any) {\r\n console.log('vibrate success:', res);\r\n },\r\n fail(res: any) {\r\n console.log('vibrateShort failed', res);\r\n },\r\n });\r\n break;\r\n case EVirbrateType.LONG:\r\n //@ts-ignore\r\n wx.vibrateLong({\r\n success(res: any) {\r\n console.log('vibrate success', res);\r\n },\r\n fail(res: any) {\r\n console.log(`vibrateLong failed`, res);\r\n },\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n if (isBytedance()) {\r\n switch (type) {\r\n case EVirbrateType.SHORT:\r\n //@ts-ignore\r\n tt.vibrateShort({\r\n success(res: any) {\r\n console.log('vibrate success:', res);\r\n },\r\n fail(res: any) {\r\n console.log('vibrateShort failed', res);\r\n },\r\n });\r\n break;\r\n case EVirbrateType.LONG:\r\n //@ts-ignore\r\n tt.vibrateLong({\r\n success(res: any) {\r\n console.log('vibrate success', res);\r\n },\r\n fail(res: any) {\r\n console.log(`vibrateLong failed`, res);\r\n },\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 重启小游戏\r\n */\r\n static reboot() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.restartMiniProgram({\r\n success: () => {\r\n console.log('restart success');\r\n },\r\n\r\n fail: () => {\r\n console.log('restart failed');\r\n }\r\n })\r\n }\r\n\r\n if (isBytedance()) {\r\n try {\r\n // @ts-ignore\r\n tt.restartMiniProgramSync();\r\n } catch (error) {\r\n console.log(`restartMiniProgramSync`, error);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 退出小游戏\r\n */\r\n static exit() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.exitMiniProgram({\r\n success: () => {\r\n console.log('exit success');\r\n },\r\n fail: () => {\r\n console.log('exit failed');\r\n }\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.exitMiniProgram({\r\n success(res: any) {\r\n console.log(\"exit success:\", res?.data);\r\n },\r\n fail(res: any) {\r\n console.log(\"exit fail:\", res?.errMsg);\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 显示转发按钮。通常在刚进入游戏的时候调用。\r\n * 主要是打开平台“...”这个按钮里面的分享菜单,一般默认是关闭的,需要调用这个函数打开。可以让用户分享你的游戏入口。\r\n */\r\n static showShareMenu() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.showShareMenu({\r\n withShareTicket: true,\r\n menus: ['shareAppMessage', 'shareTimeline'],\r\n success: () => { },\r\n fail: () => { },\r\n complete: () => { }\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n //@ts-ignore\r\n tt.showShareMenu({\r\n success(res: any) {\r\n console.log(\"show menu is showing\");\r\n },\r\n fail(err: any) {\r\n console.log(\"showShareMenu:\", err.errMsg);\r\n },\r\n complete(res: any) {\r\n console.log(\"showShareMenu complete\");\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 微信小游戏:跳转到另外一款小游戏\r\n * 抖音小游戏:跳转到指定的视频界面\r\n * @param targetId 微信小游戏appid或者视频界面\r\n */\r\n static navigateTo(targetId: string, onSuccess?: () => void) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.navigateToMiniProgram({\r\n appId: targetId,\r\n extraData: {\r\n foo: 'bar'\r\n },\r\n envVersion: 'develop',\r\n success(res: any) {\r\n onSuccess?.();\r\n }\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.navigateToVideoView({\r\n videoId: targetId,\r\n success: (res: any) => {\r\n onSuccess?.();\r\n },\r\n fail: (err: any) => {\r\n console.log(\"bytedance navigateToVideoView fail\", err);\r\n },\r\n });\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session\r\n * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null\r\n */\r\n static login(callback: (code: string, anonymousCode: string) => void) {\r\n let loginPlatform = () => {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.login({\r\n success: (res: { code: any; errMsg: any; }) => {\r\n if (res.code) {\r\n API._loginCode = res.code;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n } else {\r\n console.log('login error:', res.errMsg)\r\n }\r\n },\r\n\r\n fail: () => {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log('login fail')\r\n }\r\n });\r\n } else if (isBytedance()) {\r\n //@ts-ignore\r\n tt.login({\r\n force: true,\r\n success(res: any) {\r\n console.log(`login ${res.code} ${res.anonymousCode}`);\r\n if (res.code) {\r\n API._loginCode = res.code?.toString();\r\n API._loginAnonymousCode = res.anonymousCode?.toString();\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n } else {\r\n console.log('login error:', res.errMsg)\r\n }\r\n },\r\n fail(res: any) {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log(`login fail`, res);\r\n },\r\n });\r\n } else {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log('not mini game platform, login codes are all null');\r\n }\r\n }\r\n\r\n\r\n\r\n if (!API._loginCode) {\r\n loginPlatform();\r\n } else {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.checkSession({\r\n success() {\r\n console.log(`session is valid, use current code:`, API._loginCode);\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n },\r\n fail() {\r\n console.log(`session expired`);\r\n loginPlatform();\r\n }\r\n });\r\n } else if (isBytedance()) {\r\n //@ts-ignore\r\n tt.checkSession({\r\n success() {\r\n console.log(`session is valid, user current code: ${API._loginCode}, ${API._loginAnonymousCode}`);\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n },\r\n fail() {\r\n console.log(`session expired`);\r\n loginPlatform();\r\n },\r\n });\r\n\r\n } else {\r\n console.log('not mini game platform, login null');\r\n callback?.(null, null);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session\r\n * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null\r\n */\r\n static getUserInfo(callback: (userInfo: any) => void) {\r\n //@ts-ignore\r\n tt.getUserInfo({\r\n withCredentials: true,\r\n success: (res: any) => {\r\n API._userInfo = res;\r\n callback(API._userInfo);\r\n },\r\n fail: (err: any) =>{\r\n callback(err);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 调用微信云函数。由于参数需要自定义,所以为any,需要自行解释。函数只完成通道和处理一场的作用\r\n * @param callback 返回云函数调用结果。需要检查返回参数是否为空,失败的时候为空\r\n * @param name 云函数的名字\r\n * @param data 云函数的内容\r\n */\r\n static callWechatCloudFunction(callback: (res: any) => void, name: string, data: {}) {\r\n if (!isWechat()) {\r\n console.log('Not wechat platform, not support callWechatCloudFunction');\r\n return;\r\n }\r\n\r\n this.login((code: string, anonymousCode: string) => {\r\n if (!API._hasInitWechatCloudFunction) {\r\n //@ts-ignore\r\n wx.cloud.init();\r\n API._hasInitWechatCloudFunction = true;\r\n }\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: name,\r\n data: data,\r\n success: (res: any) => callback?.(res),\r\n fail: (err: any) => {\r\n console.log('wechat cloud function error:', err);\r\n callback?.(null);\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * 存储用户信息,数据量不能大。可以考虑用于分数排行榜。用户之间可共享排行数据。\r\n * @param key \r\n * @param value \r\n */\r\n static setUserCloudStorage(key: string, value: string) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.setUserCloudStorage({\r\n KVDataList: [{ key: key, value: value }],\r\n success: () => console.log(`set cloud storage success:${key}, value:${value}`),\r\n fail: (err: any) => console.log('set cloud storage error:', err)\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.setUserCloudStorage({\r\n KVDataList: [{ key: key, value: value, }],\r\n success: () => console.log(`set cloud storage success:${key}, value:${value}`),\r\n fail: (err: any) => console.log('set cloud storage error:', err)\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 抖音侧边栏专属接口\r\n */\r\n export class BytedanceSidebar {\r\n /**\r\n * 本游戏在抖音环境下启动监控,需要放在全局环境中,保证能第一时间启动。因为可能监听抖音失败(抖音小游戏官方的说明)!\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n */\r\n static listenFromSidebar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n // @ts-ignore\r\n tt.onShow((res: any) => {\r\n console.log('onShow launch res:', res);\r\n if (res.scene === '021036') {\r\n onResult?.call(target, true);\r\n console.log('launch from sidebar');\r\n } else {\r\n onResult?.call(target, false);\r\n console.log('NOT launch from douyin sidebar!');\r\n }\r\n });\r\n\r\n // @ts-ignore\r\n let options = tt.getLaunchOptionsSync();\r\n if (options && options.scene === '021036') {\r\n onResult?.call(target, true);\r\n }\r\n }\r\n\r\n /**\r\n * 检测抖音侧边栏是否存在\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n * @returns \r\n */\r\n static checkSideBar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n\r\n //@ts-ignore\r\n tt.checkScene({\r\n scene: \"sidebar\",\r\n success: (res: any) => {\r\n console.log(\"check scene success: \", res.isExist);\r\n onResult?.call(target, res.isExist);\r\n\r\n },\r\n fail: (res: any) => {\r\n console.log(\"check scene fail:\", res);\r\n onResult?.call(target, false);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 跳转到抖音侧边栏\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n * @returns \r\n */\r\n static navigateToSidebar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n console.log(\"not douyin platform!\");\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n tt.navigateToScene({\r\n scene: \"sidebar\",\r\n success: () => {\r\n console.log(\"navigate success\");\r\n onResult?.call(target, true);\r\n },\r\n fail: (res: any) => {\r\n console.log(\"navigate failed reason:\", res);\r\n onResult?.call(target, false);\r\n },\r\n });\r\n }\r\n }\r\n\r\n}"]} \ No newline at end of file diff --git a/library/imports/c2/c25b9d50-c8fc-4d27-beeb-6e7c1f2e5c0f.json b/library/imports/c2/c25b9d50-c8fc-4d27-beeb-6e7c1f2e5c0f.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/c2/c25b9d50-c8fc-4d27-beeb-6e7c1f2e5c0f.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/c2/c25b9d50-c8fc-4d27-beeb-6e7c1f2e5c0f.png b/library/imports/c2/c25b9d50-c8fc-4d27-beeb-6e7c1f2e5c0f.png new file mode 100644 index 0000000000000000000000000000000000000000..746e92b697d1acb51acd15856b1c623429aab551 GIT binary patch literal 1553 zcmaJ>dr;GM9Ivk)D`Sq1Ip#WzQ70-iO&`+6c0eCs(K=R(;)6+O0u7L)rok3)Q>KLh z=e!NnbLa5E=7u_SB6vCy}`drFV z<|c&+#tL{mUYK!~-ps9{;2Xl{zD(GyDsFj~HKeig=q%QWGB_^*qcd^9NTS)e8Aq{# zWlgx6#~U$$u%xkRra6d}CdFtFBX*H?j?Lq#<6L&snv1hQCZ0`D8nEk^V<13a8gPNa zBr(}_xQ&=q$l&t|=US|VxmFbh#(fB=T?i*Y;w%cd$UMq{xHMp&F2e1D*ANKwLD*ak z_#&w^QwpG?85~fE6){!`EC*s$Vpsvom2fm5mB2DcB7 zf~J6=BAQ9(vl@`g^hF7zeNdKi^tXv?8013j5G$U{;#mZ zQeej+Gwz`C87nuqtck%;c0|YEC`&UIn$8>OVv3DsX@`xr13DcLwSb^7+Uc0u2RE4z zBjsRG%8DEH8juqZ69k4RVzo+%PA-d;&wydrpj5>gq)NS3tA%A!nM|)7;Oc2>K8aK8 z02h17l@G}cI)Suvk@Yx3EXT1#h9-f&iVOXaIXKE^S~8n zp5S)SwcKIQ_c+Cwo#9+vuD3Muc*9GK`UH#1zkfq#xj*GiueY+|uQ8R)`cb*HnGKiR z+FM&M9q5=H{U~=SaqRIhEYy8(<5gVo=Le}@yB0RcyrzX+b>9^0j=vV@mCF8+WrIui z)Q#lztZCPL8M(%)6NQOsI5_?ej#*(PQRRx74TF_Qr*VUhe8{y>rLwKOD)w z`~0ZeGpw{kFsYbD(j(tU0?tZrGg+>9VF{k^=`O8UYX~ntX;#Lo&tA%DK-JaivXNU; zPLmOBO`fLP;r@FwR`SvF0mqHsOv{CK`Phl)+Q#ws&Pgmy%PVqYEw>LF(Ti&tL(c0N zSQ93?-0|o_{%ns;E~pOFoGB3%7Co(~K%1BN+N(9qMrvPlF&bG^voGSZW!k8nJ0BeD z{&e)An_}v|wqcRmwIY1SuNkWzjy}8cJgBBiEz_5!lIxQ<=}u2F^1VNA``s3Qu$S)! zipiPN->aPU00=prP_R@`+pZKX+T%NT#)e53j>|c-vAs8aHC|uQRXTR@PZ38xSr@38 zzw0@4xMP1w>wMpsT{(h4C1jq_!hS)v@Y8+UEQJmEsC-&Y_ojEof4}y?sM@L%3GwN^ zt4BkJw}Yxv*Xlamo(BKol&U{OZwsE(K%L+2irQbL6NV3q^6uDV_&Ygi!IZ`>J`g@x zxa_lNu~@$1qs^A0>(ATNtzP%>orJ$BwxVZuy?@bE^~ISJ%Ri8-&fRLi51GvCH6S$3#MlJZpy=I9vn*R-4RtjK6%T!>IrvOH+S^*PVw-* X%T_+y5V0gK_>(po=IZOT8K3_P-uG6% literal 0 HcmV?d00001 diff --git a/library/imports/c4/c4480a0a-6ac5-443f-8b40-361a14257fc8.json b/library/imports/c4/c4480a0a-6ac5-443f-8b40-361a14257fc8.json new file mode 100644 index 0000000..68bc654 --- /dev/null +++ b/library/imports/c4/c4480a0a-6ac5-443f-8b40-361a14257fc8.json @@ -0,0 +1,16 @@ +{ + "__type__": "cc.Material", + "_name": "builtin-phong", + "_objFlags": 0, + "_native": "", + "_effectAsset": { + "__uuid__": "abc2cb62-7852-4525-a90d-d474487b88f2" + }, + "_techniqueData": { + "0": { + "defines": { + "USE_SPECULAR": true + } + } + } +} \ No newline at end of file diff --git a/library/imports/c5/c5692be7-8703-45e4-9f67-23b54d290356.js b/library/imports/c5/c5692be7-8703-45e4-9f67-23b54d290356.js new file mode 100644 index 0000000..62cbc32 --- /dev/null +++ b/library/imports/c5/c5692be7-8703-45e4-9f67-23b54d290356.js @@ -0,0 +1,281 @@ +"use strict"; +cc._RF.push(module, 'c5692vnhwNF5J9nI7VNKQNW', 'GameConfig'); +// Script/module/Config/GameConfig.ts + +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GameConfig = void 0; +var share_1 = require("../Share/share"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var GameConfig = /** @class */ (function () { + function GameConfig() { + } + GameConfig_1 = GameConfig; + Object.defineProperty(GameConfig, "Instance", { + // static LEVEL_INFO: { + // id: string; //地图ID + // start: string[][]; //起始状态 + // goal: string[][]; //目标状态 + // middle: string[][][]; //中间状态 + // steps: number; //最大步数 + // }[]; + //游戏内信息 + get: function () { + if (this._instance == null) { + this._instance = new GameConfig_1(); + } + return this._instance; + }, + enumerable: false, + configurable: true + }); + //getSeedRandom + GameConfig.init = function (Authentication) { + this.CLICK_init(); + this.LEVEL_INFO_init(); + this.GM_INFO_init(); + var self = this; + //GAME_DATA 废弃了,暂时不删除以防后面修改回 一整局传一次 + this.GAME_DATA = []; + share_1.WeChat.setShare(location.href); + if (!Authentication) + self.Authentication(); + }; + //数据备用 + GameConfig.GM_INFO_init = function () { + this.GM_INFO = { + isCustom: false, + mean_Time: 0, + total: 0, + currSeed: 200000, + gameId: "100019", + userId: 0, + guide: true, + url: "https://api.sparkus.cn", + success: false, + matchId: null, + custom: 0, + round: 0, + level: 0, + guide_Level: 4, + startTime: -1, + random: 0, + stepTimeList: 0, + successList: [], + fen: 0, + score: 0, + igniteCount: 0, + min_Steps: 0, + min_Time: 0 //每一把上次距离洪峰到来时间 + }; + }; + GameConfig.GM_INFO_SET = function (key, value) { + this.GM_INFO[key] = value; + }; + GameConfig.CLICK_init = function () { + this.CLICK_DATA = + { + type: 1, + success: false, + round: 0, + duration: 0, + rightChoiceOuter: [], + userChoiceOuter: [], + rightChoiceInner: [], + userChoiceInner: [], + }; + }; + GameConfig.CLICK_SET = function (key, value) { + this.CLICK_DATA[key] = value; + }; + GameConfig.LEVEL_INFO_init = function () { + this.LEVEL_INFO = [{ + "id": "1", + "inside": 3, + "insideType": 1, + "outside": 0, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "2", + "inside": 3, + "insideType": 2, + "outside": 0, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "3", + "inside": 3, + "insideType": 3, + "outside": 0, + "outsideType": 1, + "showTime": 1, + }, + { + "id": "4", + "inside": 4, + "insideType": 3, + "outside": 0, + "outsideType": 1, + "showTime": 1, + }, + { + "id": "5", + "inside": 0, + "insideType": 1, + "outside": 1, + "outsideType": 1, + "showTime": 0.9, + }, + { + "id": "6", + "inside": 0, + "insideType": 1, + "outside": 1, + "outsideType": 2, + "showTime": 0.9, + }, + { + "id": "7", + "inside": 0, + "insideType": 1, + "outside": 2, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "8", + "inside": 0, + "insideType": 1, + "outside": 3, + "outsideType": 2, + "showTime": 1.2, + }, + { + "id": "9", + "inside": 3, + "insideType": 1, + "outside": 1, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "10", + "inside": 3, + "insideType": 2, + "outside": 1, + "outsideType": 2, + "showTime": 1.2, + }, + { + "id": "11", + "inside": 3, + "insideType": 1, + "outside": 2, + "outsideType": 1, + "showTime": 1.8, + }, + { + "id": "12", + "inside": 3, + "insideType": 2, + "outside": 2, + "outsideType": 2, + "showTime": 1.8, + }, + { + "id": "13", + "inside": 4, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.8, + }, + { + "id": "14", + "inside": 4, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.8, + }, + { + "id": "15", + "inside": 5, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.5, + }, + { + "id": "16", + "inside": 5, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.5, + } + ]; + this.GUIDE_INFO = [ + { + "id": "1", + "inside": 3, + "insideType": 1, + "outside": 0, + "outsideType": 1, + "showTime": 10000, + }, + { + "id": "5", + "inside": 0, + "insideType": 1, + "outside": 1, + "outsideType": 1, + "showTime": 10000, + }, + { + "id": "7", + "inside": 0, + "insideType": 1, + "outside": 2, + "outsideType": 1, + "showTime": 10000, + }, + ]; + // this.LEVEL_INFO = [{"id":"0001", //地图ID + // "start":[['r'], ['b'], ['g']], //起始状态 + // "goal":[[], ['r', 'g'], ['b']], //目标状态 + // "middle":[[['b', 'r', 'g'], [], []], [['g'], ['b'], ['r']], [['r', 'b'], ['g'], []]],//中间状态 + // "steps":17 //最大步数 + // }]; + // 0 12 3 + // 312 0 0 2 3 1 13 2 0 + // [2], [1], [3] + // [[2, 1, 3], [], []] + // [[], [2, 3], [1]] + // [[1, 2], [], [3]] + // [[[1], [2, 3], []], + // [[1], [], [3, 2]]] + }; + GameConfig.Authentication = function () { + cc.fx.GameTool.Authentication(); + }; + var GameConfig_1; + //所有控制信息都通过GameAppStart内控制 + GameConfig._instance = null; + GameConfig = GameConfig_1 = __decorate([ + ccclass('GameConfig') + ], GameConfig); + return GameConfig; +}()); +exports.GameConfig = GameConfig; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/c5/c5692be7-8703-45e4-9f67-23b54d290356.js.map b/library/imports/c5/c5692be7-8703-45e4-9f67-23b54d290356.js.map new file mode 100644 index 0000000..f5ee2ee --- /dev/null +++ b/library/imports/c5/c5692be7-8703-45e4-9f67-23b54d290356.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Config\\GameConfig.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import { WeChat } from \"../Share/share\";\r\nimport { GameTool } from \"../Tool/GameTool\";\r\n\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n@ccclass('GameConfig')\r\nexport class GameConfig {\r\n //所有控制信息都通过GameAppStart内控制\r\n private static _instance : GameConfig = null;\r\n\r\n static GAME_DATA: any[];\r\n //关卡数据\r\n\r\n\r\n\r\n static LEVEL_INFO: {\r\n id: string; //难度id\r\n inside: number; //内圈答案个数\r\n insideType: number; //内圈排列形式,1:一排,2:一列,3:随机\r\n outside: number; //外圈答案种类个数,大于1时,填满其他图案\r\n outsideType: number; //外圈排列形式,1:非四角,2:四角,3:随机\r\n showTime: number; //显示时间\r\n }[];\r\n static CLICK_DATA: {\r\n type: number; //上传数据类型\r\n success: boolean; //是否正确\r\n round: number; //回合数轮次\r\n duration: number; //本轮用时\r\n rightChoiceOuter: any[]; //外部正确选项坐标\r\n userChoiceOuter: any[]; //外部玩家选项坐标\r\n rightChoiceInner: any[]; //内部正确选项坐标\r\n userChoiceInner: any[];\r\n };\r\n static GUIDE_INFO: {\r\n id: string; //难度id\r\n inside: number; //内圈答案个数\r\n insideType: number; //内圈排列形式,1:一排,2:一列,3:随机\r\n outside: number; //外圈答案种类个数,大于1时,填满其他图案\r\n outsideType: number; //外圈排列形式,1:非四角,2:四角,3:随机\r\n showTime: number;\r\n }[];\r\n static GM_INFO: {\r\n isCustom: boolean; //选择关卡模式\r\n mean_Time: number; //平均放箭速度\r\n total: number; //总共对的个数\r\n currSeed: number; //用于随机数种子\r\n gameId: string; //游戏ID\r\n userId: number; //用户ID\r\n guide: boolean; //是否有引导\r\n url: string; //访问域名\r\n success: boolean; //用户游戏成功与否\r\n matchId: any; //用于埋点上传的ID\r\n custom: number; //用于测试跳关卡\r\n round: number; //回合数\r\n level: number; //具体游戏难度\r\n guide_Level: number; //引导等级\r\n startTime: number; //玩家第一步操作\r\n random: number; //当前难度随机数\r\n stepTimeList: number; //整局游戏用时,由于涉及场景切换,数据需要保留\r\n successList: any[]; //整局胜负\r\n fen: number; //小局得分\r\n score: number; //总得分\r\n igniteCount: number; //玩家总计成功点火数\r\n min_Steps: number; //每次上一把最小步数\r\n min_Time: number; //每一把上次距离洪峰到来时间\r\n };\r\n\r\n // static LEVEL_INFO: {\r\n // id: string; //地图ID\r\n // start: string[][]; //起始状态\r\n // goal: string[][]; //目标状态\r\n // middle: string[][][]; //中间状态 \r\n // steps: number; //最大步数\r\n // }[];\r\n\r\n\r\n //游戏内信息\r\n static get Instance()\r\n {\r\n if (this._instance == null)\r\n {\r\n this._instance = new GameConfig();\r\n }\r\n return this._instance;\r\n }\r\n //getSeedRandom\r\n static init(Authentication){\r\n this.CLICK_init();\r\n this.LEVEL_INFO_init();\r\n this.GM_INFO_init();\r\n var self = this;\r\n //GAME_DATA 废弃了,暂时不删除以防后面修改回 一整局传一次\r\n this.GAME_DATA = [\r\n ]\r\n\r\n WeChat.setShare(location.href);\r\n if(!Authentication) self.Authentication();\r\n }\r\n \r\n //数据备用\r\n static GM_INFO_init() {\r\n this.GM_INFO = {\r\n isCustom: false, //选择关卡模式\r\n mean_Time: 0, //平均放箭速度\r\n total: 0, //总共对的个数\r\n currSeed: 200000, //用于随机数种子\r\n gameId: \"100019\", //游戏ID\r\n userId: 0, //用户ID\r\n guide: true, //是否有引导\r\n url: \"https://api.sparkus.cn\",//访问域名\r\n success: false, //用户游戏成功与否\r\n matchId: null, //用于埋点上传的ID\r\n custom: 0, //用于测试跳关卡\r\n round:0, //回合数\r\n level: 0, //具体游戏难度\r\n guide_Level:4, //引导等级\r\n startTime:-1, //玩家第一步操作\r\n random:0, //当前难度随机数\r\n stepTimeList:0, //整局游戏用时,由于涉及场景切换,数据需要保留\r\n successList:[], //整局胜负\r\n fen:0, //小局得分\r\n score:0, //总得分\r\n igniteCount: 0, //玩家总计成功点火数\r\n min_Steps:0, //每次上一把最小步数\r\n min_Time:0 //每一把上次距离洪峰到来时间\r\n };\r\n\r\n }\r\n static GM_INFO_SET(key,value) {\r\n this.GM_INFO[key] = value;\r\n }\r\n static CLICK_init() {\r\n this.CLICK_DATA =\r\n {\r\n type: 1, //上传数据类型\r\n success: false, //是否正确\r\n round: 0, //回合数轮次\r\n duration:0, //本轮用时\r\n rightChoiceOuter:[],//外部正确选项坐标\r\n userChoiceOuter:[], //外部玩家选项坐标\r\n rightChoiceInner:[],//内部正确选项坐标\r\n userChoiceInner:[], //内部玩家选项坐标\r\n }\r\n }\r\n\r\n static CLICK_SET(key,value) {\r\n this.CLICK_DATA[key] = value;\r\n }\r\n\r\n static LEVEL_INFO_init() {\r\n this.LEVEL_INFO = [{\r\n \"id\":\"1\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":0, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.2, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"2\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":2, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":0, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.2, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"3\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":3, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":0, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"4\", //难度id\r\n \"inside\":4, //内圈答案个数\r\n \"insideType\":3, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":0, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"5\", //难度id\r\n \"inside\":0, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":1, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":0.9, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"6\", //难度id\r\n \"inside\":0, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":1, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":2, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":0.9, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"7\", //难度id\r\n \"inside\":0, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":2, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.2, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"8\", //难度id\r\n \"inside\":0, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":3, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":2, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.2, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"9\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":1, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.2, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"10\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":2, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":1, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":2, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.2, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"11\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":2, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.8, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"12\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":2, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":2, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":2, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.8, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"13\", //难度id\r\n \"inside\":4, //内圈答案个数\r\n \"insideType\":3, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":3, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":3, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.8, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"14\", //难度id\r\n \"inside\":4, //内圈答案个数\r\n \"insideType\":3, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":3, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":3, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.8, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"15\", //难度id\r\n \"inside\":5, //内圈答案个数\r\n \"insideType\":3, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":3, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":3, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.5, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"16\", //难度id\r\n \"inside\":5, //内圈答案个数\r\n \"insideType\":3, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":3, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":3, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.5, //显示时间,秒为单位\r\n }\r\n ]\r\n\r\n this.GUIDE_INFO =[\r\n {\r\n \"id\":\"1\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":0, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":10000, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"5\", //难度id\r\n \"inside\":0, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":1, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":10000, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"7\", //难度id\r\n \"inside\":0, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":2, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":10000, //显示时间,秒为单位\r\n },\r\n ]\r\n \r\n // this.LEVEL_INFO = [{\"id\":\"0001\", //地图ID\r\n // \"start\":[['r'], ['b'], ['g']], //起始状态\r\n // \"goal\":[[], ['r', 'g'], ['b']], //目标状态\r\n // \"middle\":[[['b', 'r', 'g'], [], []], [['g'], ['b'], ['r']], [['r', 'b'], ['g'], []]],//中间状态 \r\n // \"steps\":17 //最大步数\r\n // }];\r\n\r\n \r\n // 0 12 3\r\n // 312 0 0 2 3 1 13 2 0\r\n\r\n\r\n // [2], [1], [3]\r\n // [[2, 1, 3], [], []]\r\n\r\n\r\n // [[], [2, 3], [1]]\r\n // [[1, 2], [], [3]]\r\n // [[[1], [2, 3], []], \r\n // [[1], [], [3, 2]]]\r\n }\r\n\r\n\r\n static Authentication(){\r\n cc.fx.GameTool.Authentication();\r\n }\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/library/imports/c8/c88956df-63f6-4e7a-bf8b-54d5eeb0baa5.json b/library/imports/c8/c88956df-63f6-4e7a-bf8b-54d5eeb0baa5.json new file mode 100644 index 0000000..9776833 --- /dev/null +++ b/library/imports/c8/c88956df-63f6-4e7a-bf8b-54d5eeb0baa5.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "texture8", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 443, + 1347, + 72, + 84 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 114, + 114 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/c9/c9fa51ff-3f01-4601-8f80-325d1b11dab7.json b/library/imports/c9/c9fa51ff-3f01-4601-8f80-325d1b11dab7.json new file mode 100644 index 0000000..946d1a6 --- /dev/null +++ b/library/imports/c9/c9fa51ff-3f01-4601-8f80-325d1b11dab7.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "default_scrollbar_bg", + "texture": "4bab67cb-18e6-4099-b840-355f0473f890", + "atlas": "", + "rect": [ + 0, + 0, + 30, + 15 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 30, + 15 + ], + "capInsets": [ + 10, + 4, + 10, + 4 + ] + } +} \ No newline at end of file diff --git a/library/imports/ca/ca0f9934-a015-436e-9402-f8e30d4c5de6.js b/library/imports/ca/ca0f9934-a015-436e-9402-f8e30d4c5de6.js new file mode 100644 index 0000000..55ab7ea --- /dev/null +++ b/library/imports/ca/ca0f9934-a015-436e-9402-f8e30d4c5de6.js @@ -0,0 +1,105 @@ +"use strict"; +cc._RF.push(module, 'ca0f9k0oBVDbpQC+OMNTF3m', 'ItemRender'); +// Script/module/RankList/ItemRender.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var ItemRender = /** @class */ (function (_super) { + __extends(ItemRender, _super); + function ItemRender() { + var _this = _super !== null && _super.apply(this, arguments) || this; + /**数据 */ + _this.data = null; + /**索引 0表示第一项*/ + _this.itemIndex = 0; + return _this; + } + /**数据改变时调用 */ + ItemRender.prototype.dataChanged = function () { + cc.fx.GameTool.subName(this.data.name, 6); + this.node.getChildByName("rankLab").getComponent(cc.Label).string = this.data.rank + ""; + this.node.getChildByName("nameLab").getComponent(cc.Label).string = this.data.name + ""; + this.node.getChildByName("totalLab").getComponent(cc.Label).string = this.data.total; + var timeTemp = cc.fx.GameTool.getTimeShenNong(this.data.time); + // this.node.getChildByName("timeLab").getComponent(cc.Label).string = timeTemp + ""; + this.node.getChildByName("rank").getChildByName("one").active = false; + this.node.getChildByName("rank").getChildByName("two").active = false; + this.node.getChildByName("rank").getChildByName("three").active = false; + if (this.data.rank == 1) { + this.node.getChildByName("rank").getChildByName("one").active = true; + this.node.getChildByName("rankLab").active = false; + } + else if (this.data.rank == 2) { + this.node.getChildByName("rank").getChildByName("two").active = true; + this.node.getChildByName("rankLab").active = false; + } + else if (this.data.rank == 3) { + this.node.getChildByName("rank").getChildByName("three").active = true; + this.node.getChildByName("rankLab").active = false; + } + else { + this.node.getChildByName("rankLab").active = true; + } + this.setPic(); + }; + ItemRender.prototype.setPic = function () { + var _this = this; + this.node.getChildByName("pic").getChildByName("icon").active = false; + this.node.getChildByName("pic").getChildByName("pic").active = false; + var self = this; + var url = this.data.pic; + fetch(url) + .then(function (response) { + return response.headers.get('Content-Length'); + }) + .then(function (errNo) { + // console.log(this.data.rank,'X-Info:', errNo); // 输出X-ErrNo的值 + if (errNo == "5093") { + // console.log(this.data.rank,"没头像"); + _this.node.getChildByName("pic").getChildByName("icon").active = true; + } + }) + .catch(function (error) { + // console.error('Error fetching X-Info:', error); + }); + cc.assetManager.loadRemote(url, { ext: '.png' }, function (err, texture) { + if (texture) { + _this.node.getChildByName("pic").getChildByName("pic").active = true; + var sprite = _this.node.getChildByName("pic").getChildByName("pic").getComponent(cc.Sprite); + sprite.spriteFrame = new cc.SpriteFrame(texture); + // console.log(this.data.rank,"设置头像成功",err); + } + else { + // console.log("设置头像失败",url); + console.log(err, texture); + } + }); + }; + ItemRender = __decorate([ + ccclass + ], ItemRender); + return ItemRender; +}(cc.Component)); +exports.default = ItemRender; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/ca/ca0f9934-a015-436e-9402-f8e30d4c5de6.js.map b/library/imports/ca/ca0f9934-a015-436e-9402-f8e30d4c5de6.js.map new file mode 100644 index 0000000..172f13e --- /dev/null +++ b/library/imports/ca/ca0f9934-a015-436e-9402-f8e30d4c5de6.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\RankList\\ItemRender.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\r\nimport List, { ListType } from \"./List\";\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n@ccclass\r\nexport default class ItemRender extends cc.Component {\r\n /**数据 */\r\n public data:any = null;\r\n /**索引 0表示第一项*/\r\n public itemIndex:number = 0; \r\n\r\n /**数据改变时调用 */\r\n public dataChanged(){\r\n cc.fx.GameTool.subName(this.data.name,6);\r\n this.node.getChildByName(\"rankLab\").getComponent(cc.Label).string = this.data.rank + \"\";\r\n this.node.getChildByName(\"nameLab\").getComponent(cc.Label).string = this.data.name + \"\";\r\n this.node.getChildByName(\"totalLab\").getComponent(cc.Label).string = this.data.total;\r\n let timeTemp = cc.fx.GameTool.getTimeShenNong(this.data.time);\r\n // this.node.getChildByName(\"timeLab\").getComponent(cc.Label).string = timeTemp + \"\";\r\n this.node.getChildByName(\"rank\").getChildByName(\"one\").active = false;\r\n this.node.getChildByName(\"rank\").getChildByName(\"two\").active = false;\r\n this.node.getChildByName(\"rank\").getChildByName(\"three\").active = false;\r\n if(this.data.rank == 1){\r\n this.node.getChildByName(\"rank\").getChildByName(\"one\").active = true;\r\n this.node.getChildByName(\"rankLab\").active = false;\r\n }\r\n else if(this.data.rank == 2){\r\n this.node.getChildByName(\"rank\").getChildByName(\"two\").active = true;\r\n this.node.getChildByName(\"rankLab\").active = false;\r\n }\r\n else if(this.data.rank == 3){\r\n this.node.getChildByName(\"rank\").getChildByName(\"three\").active = true;\r\n this.node.getChildByName(\"rankLab\").active = false;\r\n }else{\r\n this.node.getChildByName(\"rankLab\").active = true;\r\n }\r\n this.setPic();\r\n } \r\n \r\n public setPic(){\r\n this.node.getChildByName(\"pic\").getChildByName(\"icon\").active = false;\r\n this.node.getChildByName(\"pic\").getChildByName(\"pic\").active= false;\r\n var self = this;\r\n let url = this.data.pic;\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n\r\n .then(errNo => {\r\n // console.log(this.data.rank,'X-Info:', errNo); // 输出X-ErrNo的值\r\n if(errNo == \"5093\"){\r\n // console.log(this.data.rank,\"没头像\");\r\n this.node.getChildByName(\"pic\").getChildByName(\"icon\").active = true;\r\n }\r\n })\r\n .catch(error => {\r\n // console.error('Error fetching X-Info:', error);\r\n });\r\n cc.assetManager.loadRemote(url, {ext:'.png'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n this.node.getChildByName(\"pic\").getChildByName(\"pic\").active= true;\r\n var sprite = this.node.getChildByName(\"pic\").getChildByName(\"pic\").getComponent(cc.Sprite);\r\n sprite.spriteFrame = new cc.SpriteFrame(texture);\r\n // console.log(this.data.rank,\"设置头像成功\",err);\r\n }\r\n else{\r\n // console.log(\"设置头像失败\",url);\r\n console.log(err,texture)\r\n }\r\n })\r\n }\r\n\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/ca/ca79d87e-f6f3-4659-97fe-e43a65fec29c.json b/library/imports/ca/ca79d87e-f6f3-4659-97fe-e43a65fec29c.json new file mode 100644 index 0000000..91a6273 --- /dev/null +++ b/library/imports/ca/ca79d87e-f6f3-4659-97fe-e43a65fec29c.json @@ -0,0 +1,29 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "texture1", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 721, + 923, + 64, + 86 + ], + "offset": [ + 0, + 1 + ], + "originalSize": [ + 114, + 114 + ], + "rotated": 1, + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/ca/ca8401fe-ad6e-41a8-bd46-8e3e4e9945be.json b/library/imports/ca/ca8401fe-ad6e-41a8-bd46-8e3e4e9945be.json new file mode 100644 index 0000000..33c871e --- /dev/null +++ b/library/imports/ca/ca8401fe-ad6e-41a8-bd46-8e3e4e9945be.json @@ -0,0 +1,875 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "pageview", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 1, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "pageview", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 20 + } + ], + "_active": true, + "_components": [ + { + "__id__": 22 + } + ], + "_prefab": { + "__id__": 24 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 400, + "height": 350 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "background", + "_objFlags": 512, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": { + "__id__": 4 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 400, + "height": 350 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "9bbda31e-ad49-43c9-aaf2-f7d9896bac69" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "ca8401fe-ad6e-41a8-bd46-8e3e4e9945be" + }, + "fileId": "d4995IHzA9DsKLlMTyCB0bq", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "view", + "_objFlags": 512, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 6 + } + ], + "_active": true, + "_components": [ + { + "__id__": 18 + } + ], + "_prefab": { + "__id__": 19 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 400, + "height": 350 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "content", + "_objFlags": 512, + "_parent": { + "__id__": 5 + }, + "_children": [ + { + "__id__": 7 + }, + { + "__id__": 10 + }, + { + "__id__": 13 + } + ], + "_active": true, + "_components": [ + { + "__id__": 16 + } + ], + "_prefab": { + "__id__": 17 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1200, + "height": 350 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -200, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "page_1", + "_objFlags": 512, + "_parent": { + "__id__": 6 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 8 + } + ], + "_prefab": { + "__id__": 9 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 200, + "b": 200, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 400, + "height": 290 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 200, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 7 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "9bbda31e-ad49-43c9-aaf2-f7d9896bac69" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "ca8401fe-ad6e-41a8-bd46-8e3e4e9945be" + }, + "fileId": "e4b25otxWBLVpmoEY72dW1B", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "page_2", + "_objFlags": 512, + "_parent": { + "__id__": 6 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 11 + } + ], + "_prefab": { + "__id__": 12 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 200, + "g": 255, + "b": 200, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 400, + "height": 290 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 600, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "9bbda31e-ad49-43c9-aaf2-f7d9896bac69" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "ca8401fe-ad6e-41a8-bd46-8e3e4e9945be" + }, + "fileId": "0460dpbuuVL6IrBc9SGei8F", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "page_3", + "_objFlags": 512, + "_parent": { + "__id__": 6 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 14 + } + ], + "_prefab": { + "__id__": 15 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 400, + "height": 290 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 1000, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 13 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "9bbda31e-ad49-43c9-aaf2-f7d9896bac69" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "ca8401fe-ad6e-41a8-bd46-8e3e4e9945be" + }, + "fileId": "7a1b8sccmBN1Jj/ZHKaE3JK", + "sync": false + }, + { + "__type__": "cc.Layout", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_layoutSize": { + "__type__": "cc.Size", + "width": 1200, + "height": 350 + }, + "_resize": 1, + "_N$layoutType": 1, + "_N$cellSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_N$startAxis": 0, + "_N$paddingLeft": 0, + "_N$paddingRight": 0, + "_N$paddingTop": 0, + "_N$paddingBottom": 0, + "_N$spacingX": 0, + "_N$spacingY": 15, + "_N$verticalDirection": 1, + "_N$horizontalDirection": 0, + "_N$affectedByScale": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "ca8401fe-ad6e-41a8-bd46-8e3e4e9945be" + }, + "fileId": "47588+/BXNHEK1F1sC9uHbf", + "sync": false + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_spriteFrame": null, + "_type": 0, + "_segments": 64, + "_N$alphaThreshold": 0, + "_N$inverted": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "ca8401fe-ad6e-41a8-bd46-8e3e4e9945be" + }, + "fileId": "5b1864GVRZEC7Qc8fzYUge7", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "indicator", + "_objFlags": 512, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 21 + } + ], + "_prefab": { + "__id__": 23 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 100, + "height": 27 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + -160, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.PageViewIndicator", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 20 + }, + "_enabled": true, + "_layout": null, + "_pageView": { + "__id__": 22 + }, + "_indicators": [], + "spriteFrame": { + "__uuid__": "c9fa51ff-3f01-4601-8f80-325d1b11dab7" + }, + "direction": 0, + "cellSize": { + "__type__": "cc.Size", + "width": 10, + "height": 10 + }, + "spacing": 10, + "_id": "" + }, + { + "__type__": "cc.PageView", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "horizontal": true, + "vertical": true, + "inertia": true, + "brake": 0.5, + "elastic": true, + "bounceDuration": 0.5, + "scrollEvents": [], + "cancelInnerEvents": true, + "_N$content": { + "__id__": 6 + }, + "content": { + "__id__": 6 + }, + "scrollThreshold": 0.5, + "autoPageTurningThreshold": 100, + "pageTurningEventTiming": 0.1, + "pageTurningSpeed": 0.3, + "pageEvents": [], + "_N$sizeMode": 0, + "_N$direction": 0, + "_N$indicator": { + "__id__": 21 + }, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "ca8401fe-ad6e-41a8-bd46-8e3e4e9945be" + }, + "fileId": "c3bcdZElclEBJbaV6uqwUJx", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "ca8401fe-ad6e-41a8-bd46-8e3e4e9945be" + }, + "fileId": "52f01L6ceBGDrJGf8m2N/2X", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/cd/cd33edea-55f5-46c2-958d-357a01384a36.json b/library/imports/cd/cd33edea-55f5-46c2-958d-357a01384a36.json new file mode 100644 index 0000000..73d7484 --- /dev/null +++ b/library/imports/cd/cd33edea-55f5-46c2-958d-357a01384a36.json @@ -0,0 +1,177 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "particlesystem", + "_objFlags": 0, + "data": { + "__id__": 1 + }, + "optimizationPolicy": 1, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "ParticleSystem", + "_objFlags": 0, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_cascadeOpacityEnabled": true, + "_parent": null, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_children": [], + "_skewX": 0, + "_skewY": 0, + "_localZOrder": 0, + "_globalZOrder": 0, + "_tag": -1, + "_opacityModifyRGB": false, + "_reorderChildDirty": false, + "_id": "", + "_active": true, + "_components": [ + { + "__id__": 2 + } + ], + "_prefab": { + "__id__": 3 + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1 + ] + } + }, + { + "__type__": "cc.ParticleSystem", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_custom": false, + "_file": { + "__uuid__": "b2687ac4-099e-403c-a192-ff477686f4f5" + }, + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "playOnLoad": true, + "_autoRemoveOnFinish": false, + "totalParticles": 150, + "duration": -1, + "emissionRate": 10, + "life": 1, + "lifeVar": 0, + "_startColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_startColorVar": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_endColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 0 + }, + "_endColorVar": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 0 + }, + "angle": 90, + "angleVar": 20, + "startSize": 50, + "startSizeVar": 0, + "endSize": 0, + "endSizeVar": 0, + "startSpin": 0, + "startSpinVar": 0, + "endSpin": 0, + "endSpinVar": 0, + "sourcePos": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "posVar": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_positionType": 0, + "_emitterMode": 0, + "gravity": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "speed": 180, + "speedVar": 50, + "tangentialAccel": 80, + "tangentialAccelVar": 0, + "radialAccel": 0, + "radialAccelVar": 0, + "rotationIsDir": false, + "startRadius": 0, + "startRadiusVar": 0, + "endRadius": 0, + "endRadiusVar": 0, + "rotatePerS": 0, + "rotatePerSVar": 0, + "_N$preview": true + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": null, + "fileId": "868c9k4nqZNHpGMlTm0Yx6q" + } +] \ No newline at end of file diff --git a/library/imports/ce/ceccf45d-0116-4337-8d8d-412fb1ad3c82.json b/library/imports/ce/ceccf45d-0116-4337-8d8d-412fb1ad3c82.json new file mode 100644 index 0000000..9a5e1a8 --- /dev/null +++ b/library/imports/ce/ceccf45d-0116-4337-8d8d-412fb1ad3c82.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "texture13", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 605, + 1003, + 98, + 98 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 114, + 114 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/cf/cf7e0bb8-a81c-44a9-ad79-d28d43991032.json b/library/imports/cf/cf7e0bb8-a81c-44a9-ad79-d28d43991032.json new file mode 100644 index 0000000..02c1e1e --- /dev/null +++ b/library/imports/cf/cf7e0bb8-a81c-44a9-ad79-d28d43991032.json @@ -0,0 +1,10 @@ +{ + "__type__": "cc.Material", + "_name": "builtin-clear-stencil", + "_objFlags": 0, + "_native": "", + "_effectAsset": { + "__uuid__": "c0040c95-c57f-49cd-9cbc-12316b73d0d4" + }, + "_techniqueData": {} +} \ No newline at end of file diff --git a/library/imports/cf/cfef78f1-c8df-49b7-8ed0-4c953ace2621.json b/library/imports/cf/cfef78f1-c8df-49b7-8ed0-4c953ace2621.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/cf/cfef78f1-c8df-49b7-8ed0-4c953ace2621.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/cf/cfef78f1-c8df-49b7-8ed0-4c953ace2621.png b/library/imports/cf/cfef78f1-c8df-49b7-8ed0-4c953ace2621.png new file mode 100644 index 0000000000000000000000000000000000000000..3a103b80b40899e25dc7fabc4d8c72c7bbca17c1 GIT binary patch literal 1140 zcmeAS@N?(olHy`uVBq!ia0vp^azM<_!3HEh@2Z~zq$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1Ffc1-hD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Keo~drKfuV_lxuu?= zsiBF5p^k!)fuXU!fw8`!v96(!m4T&|p{W8CC;@FNN=dT{a&d#&1?1T(Wt5Z@Sn2DR zmzV368|&p4rRy77T3YHG80i}s=>k>g7FXt#Bv$C=6)VF`a7isrF3Kz@$;{7F0GXJW zlwVq6s|0i@#0$9vaAWg|p}_4ZC?(_;0Bv?jEy^rQO>ryA&s6~X*eVmZTa0j; z2i2Q`+bza8_38s1qYsK#q71UW znmJ1-;fOe&2&2wpW1Yt60|t>{-chgR-&i;7PkvlzlyK&WLu~7bUF)8#dECRC*2J|l zY5Uu}8rO-7YW8{jKN49OF2h^4x6EyhXztMrb?ft+r-mh6&tCXTLS8V!fYH7^@kNhe z>AdGMS+^VgE~g}(d@5UTeVeZ5!(&gE?7#e0`2fRlzxWFr)m#38$^lPTKbLh*2~7a> CP=${G literal 0 HcmV?d00001 diff --git a/library/imports/d0/d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2.json b/library/imports/d0/d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/d0/d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/d0/d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2.png b/library/imports/d0/d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2.png new file mode 100644 index 0000000000000000000000000000000000000000..440eccd42fd233619b80d94d903264d72d553fbe GIT binary patch literal 168431 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≦J6_#EC;1SM5HFoCtSL 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

y?-D}E>l>A8yv>IXtpgpc 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 literal 0 HcmV?d00001 diff --git a/library/imports/d1/d1b8be49-b0a0-435c-83b7-552bed4bbe35.json b/library/imports/d1/d1b8be49-b0a0-435c-83b7-552bed4bbe35.json new file mode 100644 index 0000000..34be145 --- /dev/null +++ b/library/imports/d1/d1b8be49-b0a0-435c-83b7-552bed4bbe35.json @@ -0,0 +1,1222 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "toggleGroup", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 1, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "toggleGroup", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 12 + }, + { + "__id__": 21 + } + ], + "_active": true, + "_components": [ + { + "__id__": 10 + } + ], + "_prefab": { + "__id__": 30 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 221, + "height": 61 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "toggle1", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + }, + { + "__id__": 6 + } + ], + "_active": true, + "_components": [ + { + "__id__": 9 + } + ], + "_prefab": { + "__id__": 11 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 41, + "height": 28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -62, + 3, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + } + ], + "_prefab": { + "__id__": 5 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_type": 0, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "d1b8be49-b0a0-435c-83b7-552bed4bbe35" + }, + "fileId": "77Nw/VkxBDlYn1tJHSiW69", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "checkmark", + "_objFlags": 512, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 7 + } + ], + "_prefab": { + "__id__": 8 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 6 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "1a32fc76-f0bd-4f66-980f-56929c0ca0b3" + }, + "_type": 0, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "d1b8be49-b0a0-435c-83b7-552bed4bbe35" + }, + "fileId": "eabUMeFj1JHYgwbMpSg1zc", + "sync": false + }, + { + "__type__": "cc.Toggle", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 214, + "g": 214, + "b": 214, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": { + "__id__": 2 + }, + "_N$isChecked": true, + "toggleGroup": { + "__id__": 10 + }, + "checkMark": { + "__id__": 7 + }, + "checkEvents": [], + "_id": "" + }, + { + "__type__": "cc.ToggleGroup", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "allowSwitchOff": false, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "d1b8be49-b0a0-435c-83b7-552bed4bbe35" + }, + "fileId": "25DeyD94tFkalmK6Tg7UdE", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "toggle2", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 13 + }, + { + "__id__": 16 + } + ], + "_active": true, + "_components": [ + { + "__id__": 19 + } + ], + "_prefab": { + "__id__": 20 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 42, + "height": 28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 15, + 3, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 12 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 14 + } + ], + "_prefab": { + "__id__": 15 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 13 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_type": 0, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "d1b8be49-b0a0-435c-83b7-552bed4bbe35" + }, + "fileId": "72QEruyX5CrIAFmVn9a3F6", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "checkmark", + "_objFlags": 512, + "_parent": { + "__id__": 12 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 17 + } + ], + "_prefab": { + "__id__": 18 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 16 + }, + "_enabled": true, + "_materials": [], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "1a32fc76-f0bd-4f66-980f-56929c0ca0b3" + }, + "_type": 0, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "d1b8be49-b0a0-435c-83b7-552bed4bbe35" + }, + "fileId": "c7L6vaJVRBDZfq/ZftHdp1", + "sync": false + }, + { + "__type__": "cc.Toggle", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 214, + "g": 214, + "b": 214, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": { + "__id__": 12 + }, + "_N$isChecked": false, + "toggleGroup": { + "__id__": 10 + }, + "checkMark": { + "__id__": 17 + }, + "checkEvents": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "d1b8be49-b0a0-435c-83b7-552bed4bbe35" + }, + "fileId": "61w1JEqOlGsaSeDBTtJqu3", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "toggle3", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 22 + }, + { + "__id__": 25 + } + ], + "_active": true, + "_components": [ + { + "__id__": 28 + } + ], + "_prefab": { + "__id__": 29 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 37, + "height": 28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 91, + 3, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 512, + "_parent": { + "__id__": 21 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 23 + } + ], + "_prefab": { + "__id__": 24 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 22 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_type": 0, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "d1b8be49-b0a0-435c-83b7-552bed4bbe35" + }, + "fileId": "9dSgcVxjxAToRrdMlwhWpR", + "sync": false + }, + { + "__type__": "cc.Node", + "_name": "checkmark", + "_objFlags": 512, + "_parent": { + "__id__": 21 + }, + "_children": [], + "_active": false, + "_components": [ + { + "__id__": 26 + } + ], + "_prefab": { + "__id__": 27 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 25 + }, + "_enabled": true, + "_materials": [], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "1a32fc76-f0bd-4f66-980f-56929c0ca0b3" + }, + "_type": 0, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "d1b8be49-b0a0-435c-83b7-552bed4bbe35" + }, + "fileId": "24Fq6PF85FxZmTxjsAlpwl", + "sync": false + }, + { + "__type__": "cc.Toggle", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 21 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 214, + "g": 214, + "b": 214, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": { + "__id__": 21 + }, + "_N$isChecked": false, + "toggleGroup": { + "__id__": 10 + }, + "checkMark": { + "__id__": 26 + }, + "checkEvents": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "d1b8be49-b0a0-435c-83b7-552bed4bbe35" + }, + "fileId": "99UOOvWWtLsock+J9rw0jb", + "sync": false + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "d1b8be49-b0a0-435c-83b7-552bed4bbe35" + }, + "fileId": "d7d5Rc1ntDm421UemL1Qj0", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/d2/d29077ba-1627-4a72-9579-7b56a235340c.json b/library/imports/d2/d29077ba-1627-4a72-9579-7b56a235340c.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/d2/d29077ba-1627-4a72-9579-7b56a235340c.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/d2/d29077ba-1627-4a72-9579-7b56a235340c.png b/library/imports/d2/d29077ba-1627-4a72-9579-7b56a235340c.png new file mode 100644 index 0000000000000000000000000000000000000000..d63c92119760675b2c20559d9fbb34c88485f3d2 GIT binary patch literal 1062 zcmaJ=PiWIn7!Ph0+3XYsIz=Hy7!GWcmnLfySGTTdUD0l{tE@5@%aYeM)a1qF&1UoB zpUVV?m*GV(9(I#~B6v{Ii;5T7E*|DVLA?#83>2A6U$%DhFb(AW`S|_5@Av(AH~M=| z1se`FP!tu+^e8#9AM*cQJIU$Od-?qftm_Omz(ApsG(?d;>cu zs_ux9FW^GCy@hb zF)W5O4hVEq3Ih=cF>svbIS^sF2n!-1z{{K@1Cg$N42kCGMLDOWtFg!}&Xh2=WtOc} zD&a~bjGQqRNRq^IJj?STf(W@27FNBG-RJr;#X;-<4e{xwOhV}dUSD$MpGCclqb85+D zbMB!= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StartAxisType = exports.ListType = void 0; +var ItemRender_1 = require("./ItemRender"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +/**列表排列方式 */ +var ListType; +(function (ListType) { + /**水平排列 */ + ListType[ListType["Horizontal"] = 1] = "Horizontal"; + /**垂直排列 */ + ListType[ListType["Vertical"] = 2] = "Vertical"; + /**网格排列 */ + ListType[ListType["Grid"] = 3] = "Grid"; +})(ListType = exports.ListType || (exports.ListType = {})); +/**网格布局中的方向 */ +var StartAxisType; +(function (StartAxisType) { + /**水平排列 */ + StartAxisType[StartAxisType["Horizontal"] = 1] = "Horizontal"; + /**垂直排列 */ + StartAxisType[StartAxisType["Vertical"] = 2] = "Vertical"; +})(StartAxisType = exports.StartAxisType || (exports.StartAxisType = {})); +/** + * 列表 + * 根据cocos_example的listView改动而来 + * @author chenkai 2020.7.8 + * @example + * 1.创建cocos的ScrollView组件,添加List,设置List属性即可 + * + */ +var List = /** @class */ (function (_super) { + __extends(List, _super); + function List() { + var _this = _super !== null && _super.apply(this, arguments) || this; + //==================== 属性面板 ========================= + /**列表选项 */ + _this.itemRender = null; + /**排列方式 */ + _this.type = ListType.Vertical; + /**网格布局中的方向 */ + _this.startAxis = StartAxisType.Horizontal; + /**列表项之间X间隔 */ + _this.spaceX = 0; + /**列表项之间Y间隔 */ + _this.spaceY = 0; + /**上间距 */ + _this.padding_top = 0; + /**下间距 */ + _this.padding_buttom = 0; + /**左间距 */ + _this.padding_left = 0; + _this._padding = 0; + /**右间距 */ + _this.padding_right = 0; + //====================== 滚动容器 =============================== + /**列表滚动容器 */ + _this.scrollView = null; + /**scrollView的内容容器 */ + _this.content = null; + //======================== 列表项 =========================== + /**列表项数据 */ + _this.itemDataList = []; + /**应创建的实例数量 */ + _this.spawnCount = 0; + /**存放列表项实例的数组 */ + _this.itemList = []; + /**item的高度 */ + _this.itemHeight = 0; + /**item的宽度 */ + _this.itemWidth = 0; + /**存放不再使用中的列表项 */ + _this.itemPool = []; + //======================= 计算参数 ========================== + /**距离scrollView中心点的距离,超过这个距离的item会被重置,一般设置为 scrollVIew.height/2 + item.heigt/2 + space,因为这个距离item正好超出scrollView显示范围 */ + _this.halfScrollView = 0; + /**上一次content的X值,用于和现在content的X值比较,得出是向左还是向右滚动 */ + _this.lastContentPosX = 0; + /**上一次content的Y值,用于和现在content的Y值比较,得出是向上还是向下滚动 */ + _this.lastContentPosY = 0; + /**网格行数 */ + _this.gridRow = 0; + /**网格列数 */ + _this.gridCol = 0; + /**刷新时间,单位s */ + _this.updateTimer = 0; + /**刷新间隔,单位s */ + _this.updateInterval = 0.1; + /**是否滚动容器 */ + _this.bScrolling = false; + /**刷新的函数 */ + _this.updateFun = function () { }; + return _this; + } + List.prototype.onLoad = function () { + this.itemHeight = this.itemRender.height; + this.itemWidth = this.itemRender.width; + this.scrollView = this.node.getComponent(cc.ScrollView); + this.content = this.scrollView.content; + this.content.anchorX = 0; + this.content.anchorY = 1; + this.content.removeAllChildren(); + this.scrollView.node.on("scrolling", this.onScrolling, this); + }; + /** + * 列表数据 (列表数据复制使用,如果列表数据改变,则需要重新设置一遍数据) + * @param itemDataList item数据列表 + */ + List.prototype.setData = function (itemDataList) { + this.itemDataList = itemDataList.slice(); + this.updateContent(); + }; + /**计算列表的各项参数 */ + List.prototype.countListParam = function () { + var dataLen = this.itemDataList.length; + if (this.type == ListType.Vertical) { + this.scrollView.horizontal = false; + this.scrollView.vertical = true; + this.content.width = this.content.parent.width; + this.content.height = dataLen * this.itemHeight + (dataLen - 1) * this.spaceY + this.padding_top + this.padding_buttom; + this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) + 2; //计算创建的item实例数量,比当前scrollView容器能放下的item数量再加上2个 + this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; //计算bufferZone,item的显示范围 + this.updateFun = this.updateV; + } + else if (this.type == ListType.Horizontal) { + this.scrollView.horizontal = true; + this.scrollView.vertical = false; + this.content.width = dataLen * this.itemWidth + (dataLen - 1) * this.spaceX + this.padding_left + this.padding_right; + this.content.height = this.content.parent.height; + this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) + 2; + this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX; + this.updateFun = this.udpateH; + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + this.scrollView.horizontal = false; + this.scrollView.vertical = true; + this.content.width = this.content.parent.width; + //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效 + if (this.padding_left + this.padding_right + this.itemWidth + this.spaceX > this.content.width) { + this.padding_left = 0; + this.padding_right = 0; + console.error("padding_left或padding_right过大"); + } + this.gridCol = Math.floor((this.content.width - this.padding_left - this.padding_right) / (this.itemWidth + this.spaceX)); + this.gridRow = Math.ceil(dataLen / this.gridCol); + this.content.height = this.gridRow * this.itemHeight + (this.gridRow - 1) * this.spaceY + this.padding_top + this.padding_buttom; + this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) * this.gridCol + this.gridCol * 2; + this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; + this.updateFun = this.updateGrid_V; + } + else if (this.startAxis == StartAxisType.Horizontal) { + this.scrollView.horizontal = true; + this.scrollView.vertical = false; + //计算高间隔 + this.content.height = this.content.parent.height; + //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效 + if (this.padding_top + this.padding_buttom + this.itemHeight + this.spaceY > this.content.height) { + this.padding_top = 0; + this.padding_buttom = 0; + console.error("padding_top或padding_buttom过大"); + } + this.gridRow = Math.floor((this.content.height - this.padding_top - this.padding_buttom) / (this.itemHeight + this.spaceY)); + this.gridCol = Math.ceil(dataLen / this.gridRow); + this.content.width = this.gridCol * this.itemWidth + (this.gridCol - 1) * this.spaceX + this.padding_left + this.padding_right; + this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) * this.gridRow + this.gridRow * 2; + this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX; + this.updateFun = this.updateGrid_H; + } + } + }; + /** + * 创建列表 + * @param startIndex 起始显示的数据索引 0表示第一项 + * @param offset scrollView偏移量 + */ + List.prototype.createList = function (startIndex, offset) { + //当需要显示的数据长度 > 虚拟列表长度, 删除最末尾几个数据时,列表需要重置位置到scrollView最底端 + if (this.itemDataList.length > this.spawnCount && (startIndex + this.spawnCount - 1) >= this.itemDataList.length) { + startIndex = this.itemDataList.length - this.spawnCount; + offset = this.scrollView.getMaxScrollOffset(); + //当需要显示的数据长度 <= 虚拟列表长度, 隐藏多余的虚拟列表项 + } + else if (this.itemDataList.length <= this.spawnCount) { + startIndex = 0; + } + for (var i = 0; i < this.spawnCount; i++) { + var item = void 0; + //需要显示的数据索引在数据范围内,则item实例显示出来 + if (i + startIndex < this.itemDataList.length) { + if (this.itemList[i] == null) { + item = this.getItem(); + this.itemList.push(item); + item.parent = this.content; + } + else { + item = this.itemList[i]; + } + //需要显示的数据索引超过了数据范围,则item实例隐藏起来 + } + else { + //item实例数量 > 需要显示的数据量 + if (this.itemList.length > (this.itemDataList.length - startIndex)) { + item = this.itemList.pop(); + item.removeFromParent(); + this.itemPool.push(item); + } + continue; + } + var itemRender = item.getComponent(ItemRender_1.default); + itemRender.itemIndex = i + startIndex; + itemRender.data = this.itemDataList[i + startIndex]; + itemRender.dataChanged(); + if (this.type == ListType.Vertical) { + //因为content的锚点X是0,所以item的x值是content.with/2表示居中,锚点Y是1,所以item的y值从content顶部向下是0到负无穷。所以item.y= -item.height/2时,是在content的顶部。 + item.setPosition(this.content.width / 2, -item.height * (0.5 + i + startIndex) - this.spaceY * (i + startIndex) - this.padding_top); + } + else if (this.type == ListType.Horizontal) { + item.setPosition(item.width * (0.5 + i + startIndex) + this.spaceX * (i + startIndex) + this.padding_left, -this.content.height / 2); + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + var row = Math.floor((i + startIndex) / this.gridCol); + var col = (i + startIndex) % this.gridCol; + item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top); + item.opacity = 255; + } + else if (this.startAxis == StartAxisType.Horizontal) { + var row = (i + startIndex) % this.gridRow; + var col = Math.floor((i + startIndex) / this.gridRow); + item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top); + item.opacity = 255; + } + } + } + this.scrollView.scrollToOffset(offset); + }; + /**获取一个列表项 */ + List.prototype.getItem = function () { + if (this.itemPool.length == 0) { + return cc.instantiate(this.itemRender); + } + else { + return this.itemPool.pop(); + } + }; + List.prototype.update = function (dt) { + if (this.bScrolling == false) { + return; + } + this.updateTimer += dt; + if (this.updateTimer < this.updateInterval) { + return; + } + this.updateTimer = 0; + this.bScrolling = false; + this.updateFun(); + }; + List.prototype.onScrolling = function () { + this.bScrolling = true; + }; + /**垂直排列 */ + List.prototype.updateV = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isUp = this.scrollView.content.y > this.lastContentPosY; + var offset = (this.itemHeight + this.spaceY) * items.length; + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isUp) { + //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界 + if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.y = item.y - offset; + } + } + else { + //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界 + if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.y = item.y + offset; + } + } + } + this.lastContentPosY = this.scrollView.content.y; + }; + /**水平排列 */ + List.prototype.udpateH = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isRight = this.scrollView.content.x > this.lastContentPosX; + var offset = (this.itemWidth + this.spaceX) * items.length; + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isRight) { + //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界 + if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.x = item.x - offset; + } + } + else { + //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界 + if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.x = item.x + offset; + } + } + } + this.lastContentPosX = this.scrollView.content.x; + }; + /**网格垂直排列 */ + List.prototype.updateGrid_V = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isUp = this.scrollView.content.y > this.lastContentPosY; + var offset = (this.itemHeight + this.spaceY) * (this.spawnCount / this.gridCol); + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isUp) { + //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界 + if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridCol) * this.gridCol; + if (this.itemDataList[itemIndex] != null) { + item.y = item.y - offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.y = item.y - offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + else { //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界 + if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridCol) * this.gridCol; + if (this.itemDataList[itemIndex] != null) { + item.y = item.y + offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.y = item.y + offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + } + this.lastContentPosY = this.scrollView.content.y; + }; + /**网格水平排列 */ + List.prototype.updateGrid_H = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isRight = this.scrollView.content.x > this.lastContentPosX; + var offset = (this.itemWidth + this.spaceX) * (this.spawnCount / this.gridRow); + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isRight) { + //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界 + if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridRow) * this.gridRow; + if (this.itemDataList[itemIndex] != null) { + item.x = item.x - offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.x = item.x - offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + else { + //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界 + if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridRow) * this.gridRow; + if (this.itemDataList[itemIndex] != null) { + item.x = item.x + offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.x = item.x + offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + } + this.lastContentPosX = this.scrollView.content.x; + }; + /**获取item在scrollView的局部坐标 */ + List.prototype.getPositionInView = function (item) { + var worldPos = item.parent.convertToWorldSpaceAR(item.position); + var viewPos = this.scrollView.node.convertToNodeSpaceAR(worldPos); + return viewPos; + }; + /**获取列表数据 */ + List.prototype.getListData = function () { + return this.itemDataList; + }; + /** + * 增加一项数据到列表的末尾 + * @param data 数据 + */ + List.prototype.addItem = function (data) { + this.itemDataList.push(data); + this.updateContent(); + }; + /** + * 增加一项数据到列表指定位置 + * @param index 位置,0表示第1项 + * @param data 数据 + */ + List.prototype.addItemAt = function (index, data) { + if (this.itemDataList[index] != null || this.itemDataList.length == index) { + this.itemDataList.splice(index, 1, data); + this.updateContent(); + } + }; + /** + * 删除一项数据 + * @param index 删除项的位置 ,0表示第1项 + */ + List.prototype.deleteItem = function (index) { + if (this.itemDataList[index] != null) { + this.itemDataList.splice(index, 1); + this.updateContent(); + } + }; + /** + * 改变一项数据 + * @param index 位置,0表示第1项 + * @param data 替换的数据 + */ + List.prototype.changeItem = function (index, data) { + if (this.itemDataList[index] != null) { + this.itemDataList[index] = data; + this.updateContent(); + } + }; + /**获取第一个Item的位置 */ + List.prototype.updateContent = function () { + //显示列表实例为0个 + if (this.itemList.length == 0) { + this.countListParam(); + this.createList(0, new cc.Vec2(0, 0)); + //显示列表的实例不为0个,则需要重新排列item实例数组 + } + else { + if (this.type == ListType.Vertical) { + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + } + else if (this.type == ListType.Horizontal) { + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + } + else if (this.startAxis == StartAxisType.Horizontal) { + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + } + } + this.countListParam(); + //获取第一个item实例需要显示的数据索引 + var startIndex = this.itemList[0].getComponent(ItemRender_1.default).itemIndex; + if (this.type == ListType.Grid && this.startAxis == StartAxisType.Vertical) { + startIndex += (startIndex + this.spawnCount) % this.gridCol; + } + else if (this.type == ListType.Grid && this.startAxis == StartAxisType.Horizontal) { + startIndex += (startIndex + this.spawnCount) % this.gridRow; + } + //getScrollOffset()和scrollToOffset()的x值是相反的 + var offset = this.scrollView.getScrollOffset(); + offset.x = -offset.x; + this.createList(startIndex, offset); + } + }; + /**销毁 */ + List.prototype.onDestroy = function () { + //清理列表项 + var len = this.itemList.length; + for (var i = 0; i < len; i++) { + if (cc.isValid(this.itemList[i], true)) { + this.itemList[i].destroy(); + } + } + this.itemList.length = 0; + //清理对象池 + len = this.itemPool.length; + for (var i = 0; i < len; i++) { + if (cc.isValid(this.itemPool[i], true)) { + this.itemPool[i].destroy(); + } + } + this.itemPool.length = 0; + //清理列表数据 + this.itemDataList.length = 0; + }; + __decorate([ + property({ type: cc.Node, tooltip: "列表项" }) + ], List.prototype, "itemRender", void 0); + __decorate([ + property({ type: cc.Enum(ListType), tooltip: "排列方式" }) + ], List.prototype, "type", void 0); + __decorate([ + property({ type: cc.Enum(StartAxisType), tooltip: "网格布局中的方向", visible: function () { return this.type == ListType.Grid; } }) + ], List.prototype, "startAxis", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "列表项X间隔", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "spaceX", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "列表项Y间隔", visible: function () { return this.type == ListType.Vertical || this.type == ListType.Grid; } }) + ], List.prototype, "spaceY", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "上间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } }) + ], List.prototype, "padding_top", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "下间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } }) + ], List.prototype, "padding_buttom", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "左间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "padding_left", void 0); + __decorate([ + property(cc.Integer) + ], List.prototype, "_padding", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "右间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "padding_right", void 0); + List = __decorate([ + ccclass + ], List); + return List; +}(cc.Component)); +exports.default = List; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/d5/d54211e0-2d28-4528-88e3-e5fd7c9b59a2.js.map b/library/imports/d5/d54211e0-2d28-4528-88e3-e5fd7c9b59a2.js.map new file mode 100644 index 0000000..09188b9 --- /dev/null +++ b/library/imports/d5/d54211e0-2d28-4528-88e3-e5fd7c9b59a2.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\RankList\\List.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport ItemRender from \"./ItemRender\"\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n/**列表排列方式 */\r\nexport enum ListType {\r\n /**水平排列 */\r\n Horizontal = 1,\r\n /**垂直排列 */\r\n Vertical = 2,\r\n /**网格排列 */\r\n Grid = 3\r\n}\r\n\r\n/**网格布局中的方向 */\r\nexport enum StartAxisType {\r\n /**水平排列 */\r\n Horizontal = 1,\r\n /**垂直排列 */\r\n Vertical = 2,\r\n}\r\n\r\n/**\r\n * 列表\r\n * 根据cocos_example的listView改动而来\r\n * @author chenkai 2020.7.8\r\n * @example\r\n * 1.创建cocos的ScrollView组件,添加List,设置List属性即可\r\n * \r\n */\r\n@ccclass\r\nexport default class List extends cc.Component {\r\n\r\n //==================== 属性面板 =========================\r\n /**列表选项 */\r\n @property({ type: cc.Node, tooltip: \"列表项\" })\r\n public itemRender: cc.Node = null;\r\n\r\n /**排列方式 */\r\n @property({ type: cc.Enum(ListType), tooltip: \"排列方式\" })\r\n public type: ListType = ListType.Vertical;\r\n\r\n /**网格布局中的方向 */\r\n @property({ type: cc.Enum(StartAxisType), tooltip: \"网格布局中的方向\", visible() { return this.type == ListType.Grid } })\r\n public startAxis: StartAxisType = StartAxisType.Horizontal;\r\n\r\n /**列表项之间X间隔 */\r\n @property({ type: cc.Integer, tooltip: \"列表项X间隔\", visible() { return (this.type == ListType.Horizontal || this.type == ListType.Grid) } })\r\n public spaceX: number = 0;\r\n\r\n /**列表项之间Y间隔 */\r\n @property({ type: cc.Integer, tooltip: \"列表项Y间隔\", visible() { return this.type == ListType.Vertical || this.type == ListType.Grid } })\r\n public spaceY: number = 0;\r\n\r\n /**上间距 */\r\n @property({ type: cc.Integer, tooltip: \"上间距\", visible() { return (this.type == ListType.Vertical || this.type == ListType.Grid) } })\r\n public padding_top: number = 0;\r\n\r\n /**下间距 */\r\n @property({ type: cc.Integer, tooltip: \"下间距\", visible() { return (this.type == ListType.Vertical || this.type == ListType.Grid) } })\r\n public padding_buttom: number = 0;\r\n\r\n /**左间距 */\r\n @property({ type: cc.Integer, tooltip: \"左间距\", visible() { return (this.type == ListType.Horizontal || this.type == ListType.Grid) } })\r\n public padding_left: number = 0;\r\n\r\n\r\n\r\n @property(cc.Integer)\r\n public _padding: number = 0;\r\n\r\n /**右间距 */\r\n @property({ type: cc.Integer, tooltip: \"右间距\", visible() { return (this.type == ListType.Horizontal || this.type == ListType.Grid) } })\r\n public padding_right: number = 0;\r\n\r\n //====================== 滚动容器 ===============================\r\n /**列表滚动容器 */\r\n public scrollView: cc.ScrollView = null;\r\n /**scrollView的内容容器 */\r\n private content: cc.Node = null;\r\n\r\n //======================== 列表项 ===========================\r\n /**列表项数据 */\r\n private itemDataList: Array = [];\r\n /**应创建的实例数量 */\r\n private spawnCount: number = 0;\r\n /**存放列表项实例的数组 */\r\n private itemList: Array = [];\r\n /**item的高度 */\r\n private itemHeight: number = 0;\r\n /**item的宽度 */\r\n private itemWidth: number = 0;\r\n /**存放不再使用中的列表项 */\r\n private itemPool: Array = [];\r\n\r\n //======================= 计算参数 ==========================\r\n /**距离scrollView中心点的距离,超过这个距离的item会被重置,一般设置为 scrollVIew.height/2 + item.heigt/2 + space,因为这个距离item正好超出scrollView显示范围 */\r\n private halfScrollView: number = 0;\r\n /**上一次content的X值,用于和现在content的X值比较,得出是向左还是向右滚动 */\r\n private lastContentPosX: number = 0;\r\n /**上一次content的Y值,用于和现在content的Y值比较,得出是向上还是向下滚动 */\r\n private lastContentPosY: number = 0;\r\n /**网格行数 */\r\n private gridRow: number = 0;\r\n /**网格列数 */\r\n private gridCol: number = 0;\r\n /**刷新时间,单位s */\r\n private updateTimer: number = 0;\r\n /**刷新间隔,单位s */\r\n private updateInterval: number = 0.1;\r\n /**是否滚动容器 */\r\n private bScrolling: boolean = false;\r\n /**刷新的函数 */\r\n private updateFun: Function = function () { };\r\n\r\n onLoad() {\r\n this.itemHeight = this.itemRender.height;\r\n this.itemWidth = this.itemRender.width;\r\n this.scrollView = this.node.getComponent(cc.ScrollView);\r\n this.content = this.scrollView.content;\r\n this.content.anchorX = 0;\r\n this.content.anchorY = 1;\r\n this.content.removeAllChildren();\r\n this.scrollView.node.on(\"scrolling\", this.onScrolling, this);\r\n }\r\n\r\n /**\r\n * 列表数据 (列表数据复制使用,如果列表数据改变,则需要重新设置一遍数据)\r\n * @param itemDataList item数据列表\r\n */\r\n public setData(itemDataList: Array) {\r\n this.itemDataList = itemDataList.slice();\r\n this.updateContent();\r\n \r\n }\r\n\r\n /**计算列表的各项参数 */\r\n private countListParam() {\r\n let dataLen = this.itemDataList.length;\r\n if (this.type == ListType.Vertical) {\r\n this.scrollView.horizontal = false;\r\n this.scrollView.vertical = true;\r\n this.content.width = this.content.parent.width;\r\n this.content.height = dataLen * this.itemHeight + (dataLen - 1) * this.spaceY + this.padding_top + this.padding_buttom;\r\n this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) + 2; //计算创建的item实例数量,比当前scrollView容器能放下的item数量再加上2个\r\n this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; //计算bufferZone,item的显示范围\r\n this.updateFun = this.updateV;\r\n } else if (this.type == ListType.Horizontal) {\r\n this.scrollView.horizontal = true;\r\n this.scrollView.vertical = false;\r\n this.content.width = dataLen * this.itemWidth + (dataLen - 1) * this.spaceX + this.padding_left + this.padding_right;\r\n this.content.height = this.content.parent.height;\r\n this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) + 2;\r\n this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX;\r\n this.updateFun = this.udpateH;\r\n } else if (this.type == ListType.Grid) {\r\n if (this.startAxis == StartAxisType.Vertical) {\r\n this.scrollView.horizontal = false;\r\n this.scrollView.vertical = true;\r\n this.content.width = this.content.parent.width;\r\n //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效\r\n if (this.padding_left + this.padding_right + this.itemWidth + this.spaceX > this.content.width) {\r\n this.padding_left = 0;\r\n this.padding_right = 0;\r\n console.error(\"padding_left或padding_right过大\");\r\n }\r\n\r\n this.gridCol = Math.floor((this.content.width - this.padding_left - this.padding_right) / (this.itemWidth + this.spaceX));\r\n this.gridRow = Math.ceil(dataLen / this.gridCol);\r\n this.content.height = this.gridRow * this.itemHeight + (this.gridRow - 1) * this.spaceY + this.padding_top + this.padding_buttom;\r\n this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) * this.gridCol + this.gridCol * 2;\r\n this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY;\r\n this.updateFun = this.updateGrid_V;\r\n } else if (this.startAxis == StartAxisType.Horizontal) {\r\n this.scrollView.horizontal = true;\r\n this.scrollView.vertical = false;\r\n //计算高间隔\r\n this.content.height = this.content.parent.height;\r\n //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效\r\n if (this.padding_top + this.padding_buttom + this.itemHeight + this.spaceY > this.content.height) {\r\n this.padding_top = 0;\r\n this.padding_buttom = 0;\r\n console.error(\"padding_top或padding_buttom过大\");\r\n }\r\n\r\n this.gridRow = Math.floor((this.content.height - this.padding_top - this.padding_buttom) / (this.itemHeight + this.spaceY));\r\n this.gridCol = Math.ceil(dataLen / this.gridRow);\r\n this.content.width = this.gridCol * this.itemWidth + (this.gridCol - 1) * this.spaceX + this.padding_left + this.padding_right;\r\n this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) * this.gridRow + this.gridRow * 2;\r\n this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX;\r\n this.updateFun = this.updateGrid_H;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 创建列表 \r\n * @param startIndex 起始显示的数据索引 0表示第一项\r\n * @param offset scrollView偏移量\r\n */\r\n private createList(startIndex: number, offset: cc.Vec2) {\r\n //当需要显示的数据长度 > 虚拟列表长度, 删除最末尾几个数据时,列表需要重置位置到scrollView最底端\r\n if (this.itemDataList.length > this.spawnCount && (startIndex + this.spawnCount - 1) >= this.itemDataList.length) {\r\n startIndex = this.itemDataList.length - this.spawnCount;\r\n offset = this.scrollView.getMaxScrollOffset();\r\n\r\n //当需要显示的数据长度 <= 虚拟列表长度, 隐藏多余的虚拟列表项 \r\n } else if (this.itemDataList.length <= this.spawnCount) {\r\n startIndex = 0;\r\n }\r\n\r\n for (let i = 0; i < this.spawnCount; i++) {\r\n let item: cc.Node;\r\n //需要显示的数据索引在数据范围内,则item实例显示出来\r\n if (i + startIndex < this.itemDataList.length) {\r\n if (this.itemList[i] == null) {\r\n item = this.getItem();\r\n this.itemList.push(item);\r\n item.parent = this.content;\r\n } else {\r\n item = this.itemList[i];\r\n }\r\n //需要显示的数据索引超过了数据范围,则item实例隐藏起来\r\n } else {\r\n //item实例数量 > 需要显示的数据量\r\n if (this.itemList.length > (this.itemDataList.length - startIndex)) {\r\n item = this.itemList.pop();\r\n item.removeFromParent();\r\n this.itemPool.push(item);\r\n }\r\n continue;\r\n }\r\n\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n itemRender.itemIndex = i + startIndex;\r\n itemRender.data = this.itemDataList[i + startIndex];\r\n itemRender.dataChanged();\r\n\r\n if (this.type == ListType.Vertical) {\r\n //因为content的锚点X是0,所以item的x值是content.with/2表示居中,锚点Y是1,所以item的y值从content顶部向下是0到负无穷。所以item.y= -item.height/2时,是在content的顶部。\r\n item.setPosition(this.content.width / 2, -item.height * (0.5 + i + startIndex) - this.spaceY * (i + startIndex) - this.padding_top);\r\n } else if (this.type == ListType.Horizontal) {\r\n item.setPosition(item.width * (0.5 + i + startIndex) + this.spaceX * (i + startIndex) + this.padding_left, -this.content.height / 2);\r\n } else if (this.type == ListType.Grid) {\r\n if (this.startAxis == StartAxisType.Vertical) {\r\n var row = Math.floor((i + startIndex) / this.gridCol);\r\n var col = (i + startIndex) % this.gridCol;\r\n item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top);\r\n item.opacity = 255;\r\n } else if (this.startAxis == StartAxisType.Horizontal) {\r\n var row = (i + startIndex) % this.gridRow;\r\n var col = Math.floor((i + startIndex) / this.gridRow);\r\n item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top);\r\n item.opacity = 255;\r\n }\r\n }\r\n }\r\n\r\n this.scrollView.scrollToOffset(offset);\r\n }\r\n\r\n /**获取一个列表项 */\r\n private getItem() {\r\n if (this.itemPool.length == 0) {\r\n return cc.instantiate(this.itemRender);\r\n } else {\r\n return this.itemPool.pop();\r\n }\r\n }\r\n\r\n update(dt) {\r\n if (this.bScrolling == false) {\r\n return;\r\n }\r\n this.updateTimer += dt;\r\n if (this.updateTimer < this.updateInterval) {\r\n return;\r\n }\r\n this.updateTimer = 0;\r\n this.bScrolling = false;\r\n this.updateFun();\r\n }\r\n\r\n onScrolling() {\r\n this.bScrolling = true;\r\n }\r\n\r\n /**垂直排列 */\r\n private updateV() {\r\n let items = this.itemList;\r\n let item;\r\n let bufferZone = this.halfScrollView;\r\n let isUp = this.scrollView.content.y > this.lastContentPosY;\r\n let offset = (this.itemHeight + this.spaceY) * items.length;\r\n for (let i = 0; i < items.length; i++) {\r\n item = items[i];\r\n let viewPos = this.getPositionInView(item);\r\n if (isUp) {\r\n //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界\r\n if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex + items.length;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.y = item.y - offset;\r\n }\r\n } else {\r\n //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界\r\n if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex - items.length;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.y = item.y + offset;\r\n }\r\n }\r\n }\r\n this.lastContentPosY = this.scrollView.content.y;\r\n }\r\n\r\n /**水平排列 */\r\n private udpateH() {\r\n let items = this.itemList;\r\n let item;\r\n let bufferZone = this.halfScrollView;\r\n let isRight = this.scrollView.content.x > this.lastContentPosX;\r\n let offset = (this.itemWidth + this.spaceX) * items.length;\r\n for (let i = 0; i < items.length; i++) {\r\n item = items[i];\r\n let viewPos = this.getPositionInView(item);\r\n if (isRight) {\r\n //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界\r\n if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex - items.length;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.x = item.x - offset;\r\n }\r\n } else {\r\n //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界\r\n if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex + items.length;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.x = item.x + offset;\r\n }\r\n }\r\n }\r\n this.lastContentPosX = this.scrollView.content.x;\r\n }\r\n\r\n /**网格垂直排列 */\r\n private updateGrid_V() {\r\n let items = this.itemList;\r\n let item: cc.Node;\r\n let bufferZone = this.halfScrollView;\r\n let isUp = this.scrollView.content.y > this.lastContentPosY;\r\n let offset = (this.itemHeight + this.spaceY) * (this.spawnCount / this.gridCol);\r\n for (let i = 0; i < items.length; i++) {\r\n item = items[i];\r\n let viewPos = this.getPositionInView(item);\r\n if (isUp) {\r\n //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界\r\n if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridCol) * this.gridCol;\r\n if (this.itemDataList[itemIndex] != null) {\r\n item.y = item.y - offset;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.opacity = 255;\r\n } else {\r\n item.y = item.y - offset;\r\n itemRender.itemIndex = itemIndex;\r\n item.opacity = 0;\r\n }\r\n }\r\n } else {//item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界\r\n if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridCol) * this.gridCol;\r\n if (this.itemDataList[itemIndex] != null) {\r\n item.y = item.y + offset;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.opacity = 255;\r\n } else {\r\n item.y = item.y + offset;\r\n itemRender.itemIndex = itemIndex;\r\n item.opacity = 0;\r\n }\r\n }\r\n }\r\n }\r\n this.lastContentPosY = this.scrollView.content.y;\r\n }\r\n\r\n /**网格水平排列 */\r\n private updateGrid_H() {\r\n let items = this.itemList;\r\n let item;\r\n let bufferZone = this.halfScrollView;\r\n let isRight = this.scrollView.content.x > this.lastContentPosX;\r\n let offset = (this.itemWidth + this.spaceX) * (this.spawnCount / this.gridRow);\r\n for (let i = 0; i < items.length; i++) {\r\n item = items[i];\r\n let viewPos = this.getPositionInView(item);\r\n if (isRight) {\r\n //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界\r\n if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridRow) * this.gridRow;\r\n if (this.itemDataList[itemIndex] != null) {\r\n item.x = item.x - offset;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.opacity = 255;\r\n } else {\r\n item.x = item.x - offset;\r\n itemRender.itemIndex = itemIndex;\r\n item.opacity = 0;\r\n }\r\n }\r\n } else {\r\n //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界\r\n if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridRow) * this.gridRow;\r\n if (this.itemDataList[itemIndex] != null) {\r\n item.x = item.x + offset;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.opacity = 255;\r\n } else {\r\n item.x = item.x + offset;\r\n itemRender.itemIndex = itemIndex;\r\n item.opacity = 0;\r\n }\r\n }\r\n }\r\n }\r\n this.lastContentPosX = this.scrollView.content.x;\r\n }\r\n\r\n /**获取item在scrollView的局部坐标 */\r\n private getPositionInView(item) {\r\n let worldPos = item.parent.convertToWorldSpaceAR(item.position);\r\n let viewPos = this.scrollView.node.convertToNodeSpaceAR(worldPos);\r\n return viewPos;\r\n }\r\n\r\n /**获取列表数据 */\r\n public getListData() {\r\n return this.itemDataList;\r\n }\r\n\r\n /**\r\n * 增加一项数据到列表的末尾\r\n * @param data 数据\r\n */\r\n public addItem(data: any) {\r\n this.itemDataList.push(data);\r\n this.updateContent();\r\n }\r\n\r\n /**\r\n * 增加一项数据到列表指定位置\r\n * @param index 位置,0表示第1项\r\n * @param data 数据\r\n */\r\n public addItemAt(index: number, data: any) {\r\n if (this.itemDataList[index] != null || this.itemDataList.length == index) {\r\n this.itemDataList.splice(index, 1, data);\r\n this.updateContent();\r\n }\r\n }\r\n\r\n /**\r\n * 删除一项数据\r\n * @param index 删除项的位置 ,0表示第1项\r\n */\r\n public deleteItem(index: number) {\r\n if (this.itemDataList[index] != null) {\r\n this.itemDataList.splice(index, 1);\r\n this.updateContent();\r\n }\r\n }\r\n\r\n /**\r\n * 改变一项数据\r\n * @param index 位置,0表示第1项\r\n * @param data 替换的数据\r\n */\r\n public changeItem(index: number, data: any) {\r\n if (this.itemDataList[index] != null) {\r\n this.itemDataList[index] = data;\r\n this.updateContent();\r\n }\r\n }\r\n\r\n /**获取第一个Item的位置 */\r\n private updateContent() {\r\n //显示列表实例为0个\r\n if (this.itemList.length == 0) {\r\n this.countListParam();\r\n this.createList(0, new cc.Vec2(0, 0));\r\n //显示列表的实例不为0个,则需要重新排列item实例数组\r\n } else {\r\n if (this.type == ListType.Vertical) {\r\n this.itemList.sort((a: any, b: any) => {\r\n return b.y - a.y;\r\n });\r\n } else if (this.type == ListType.Horizontal) {\r\n this.itemList.sort((a: any, b: any) => {\r\n return a.x - b.x;\r\n });\r\n } else if (this.type == ListType.Grid) {\r\n if (this.startAxis == StartAxisType.Vertical) {\r\n this.itemList.sort((a: any, b: any) => {\r\n return a.x - b.x;\r\n });\r\n this.itemList.sort((a: any, b: any) => {\r\n return b.y - a.y;\r\n });\r\n } else if (this.startAxis == StartAxisType.Horizontal) {\r\n this.itemList.sort((a: any, b: any) => {\r\n return b.y - a.y;\r\n });\r\n this.itemList.sort((a: any, b: any) => {\r\n return a.x - b.x;\r\n });\r\n }\r\n }\r\n\r\n this.countListParam();\r\n\r\n //获取第一个item实例需要显示的数据索引\r\n var startIndex = this.itemList[0].getComponent(ItemRender).itemIndex;\r\n\r\n if (this.type == ListType.Grid && this.startAxis == StartAxisType.Vertical) {\r\n startIndex += (startIndex + this.spawnCount) % this.gridCol;\r\n } else if (this.type == ListType.Grid && this.startAxis == StartAxisType.Horizontal) {\r\n startIndex += (startIndex + this.spawnCount) % this.gridRow;\r\n }\r\n\r\n //getScrollOffset()和scrollToOffset()的x值是相反的\r\n var offset: cc.Vec2 = this.scrollView.getScrollOffset();\r\n offset.x = - offset.x;\r\n\r\n this.createList(startIndex, offset);\r\n }\r\n }\r\n\r\n /**销毁 */\r\n public onDestroy() {\r\n //清理列表项\r\n let len = this.itemList.length;\r\n for (let i = 0; i < len; i++) {\r\n if (cc.isValid(this.itemList[i], true)) {\r\n this.itemList[i].destroy();\r\n }\r\n }\r\n this.itemList.length = 0;\r\n //清理对象池\r\n len = this.itemPool.length;\r\n for (let i = 0; i < len; i++) {\r\n if (cc.isValid(this.itemPool[i], true)) {\r\n this.itemPool[i].destroy();\r\n }\r\n }\r\n this.itemPool.length = 0;\r\n //清理列表数据\r\n this.itemDataList.length = 0;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/d6/d63eea97-a92e-4657-94ff-8a733a2b4680.js b/library/imports/d6/d63eea97-a92e-4657-94ff-8a733a2b4680.js new file mode 100644 index 0000000..fc120cf --- /dev/null +++ b/library/imports/d6/d63eea97-a92e-4657-94ff-8a733a2b4680.js @@ -0,0 +1,149 @@ +"use strict"; +cc._RF.push(module, 'd63eeqXqS5GV5T/inM6K0aA', 'Block'); +// Script/Block.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +//出现块的类型,问题以及答案 +var BlockType = cc.Enum({ + problem_In: 1, + problem_Out: 2, + correct_In: 3, + correct_Out: 4, + err_In: 5, + err_Out: 6, +}); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var Block = /** @class */ (function (_super) { + __extends(Block, _super); + function Block() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.UI = null; + return _this; + // update (dt) { + // } + } + // LIFE-CYCLE CALLBACKS: + Block.prototype.onLoad = function () { + // this.init(); + this.GameManager = this.node.parent.parent.parent.getComponent("GameManager"); + this._touch = false; + this._start = false; + this._answer = false; + this._inside = true; + this.node.on(cc.Node.EventType.TOUCH_START, this.touchStart, this); + }; + Block.prototype.init = function (type, id) { + if (type == BlockType.correct_Out) { + } + }; + Block.prototype.setId = function (id) { + this._idNumber = id; + }; + Block.prototype.answerShow = function (texture) { + var _this = this; + this.node.getChildByName("texture").active = true; + var textureName = "texture" + texture; + // @ts-ignore + this.node.getChildByName("texture").getComponent(cc.Sprite).spriteFrame = this.UI._spriteFrames[textureName]; + cc.tween(this.node.getChildByName("texture")) + .to(0.01, { opacity: 255 }) + .delay(this.GameManager.config["showTime"] - 0.05) + .call(function () { + if (_this._inside) { + _this.node.getChildByName("texture").opacity = 0; + } + }) + .start(); + }; + Block.prototype.lockShow = function (type, inside) { + this.node.getChildByName("texture").active = false; + this._answer = type; + this._inside = inside; + this.node.getChildByName("lock").active = true; + this._touch = true; + }; + Block.prototype.lockHide = function () { + this.node.getChildByName("lock").active = false; + this._touch = false; + }; + Block.prototype.show = function (type, inside, texture) { + var _this = this; + // this._answer = type; + this._inside = inside; + if (inside) + this._answer = type; + var textureName = "texture" + texture; + this.node.getChildByName("texture").active = true; + //正确答案 + //@ts-ignore + this.node.getChildByName("texture").getComponent(cc.Sprite).spriteFrame = this.UI._spriteFrames[textureName]; + cc.tween(this.node.getChildByName("texture")) + .to(0.01, { opacity: 255 }) + // .delay(this.GameManager.config["showTime"]-0.1) + .call(function () { + if (inside) { + _this._touch = true; + } + }) + .start(); + }; + Block.prototype.set_Pos = function () { + this._start = true; + }; + Block.prototype.set_Touch = function (type) { + this._touch = type; + }; + Block.prototype.start = function () { + }; + //开始点击,提高层级 + Block.prototype.touchStart = function (event) { + if (this._touch) { + if (this._answer) { + this.node.getChildByName("yes").active = true; + var data = { "result": true, "type": this._inside, id: this._idNumber }; + cc.fx.Notifications.emit("result", data); + } + else { + this.node.getChildByName("err").active = true; + var data = { "result": false, "type": this._inside, id: this._idNumber }; + cc.fx.Notifications.emit("result", data); + } + } + }; + __decorate([ + property(cc.Asset) + ], Block.prototype, "UI", void 0); + Block = __decorate([ + ccclass + ], Block); + return Block; +}(cc.Component)); +exports.default = Block; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/d6/d63eea97-a92e-4657-94ff-8a733a2b4680.js.map b/library/imports/d6/d63eea97-a92e-4657-94ff-8a733a2b4680.js.map new file mode 100644 index 0000000..abaebc3 --- /dev/null +++ b/library/imports/d6/d63eea97-a92e-4657-94ff-8a733a2b4680.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\Block.ts"],"names":[],"mappings":";;;;;AAAA,oBAAoB;AACpB,wEAAwE;AACxE,mBAAmB;AACnB,kFAAkF;AAClF,8BAA8B;AAC9B,kFAAkF;;;;;;;;;;;;;;;;;;;;;AAElF,eAAe;AACf,IAAI,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC;IACb,WAAW,EAAE,CAAC;IACd,UAAU,EAAC,CAAC;IACZ,WAAW,EAAC,CAAC;IACb,MAAM,EAAC,CAAC;IACR,OAAO,EAAC,CAAC;CACZ,CAAC,CAAC;AAEG,IAAA,KAAsB,EAAE,CAAC,UAAU,EAAlC,OAAO,aAAA,EAAE,QAAQ,cAAiB,CAAC;AAG1C;IAAmC,yBAAY;IAA/C;QAAA,qEAoHC;QAjHG,QAAE,GAAa,IAAI,CAAC;;QA8GpB,gBAAgB;QAEhB,IAAI;IACR,CAAC;IAvGG,wBAAwB;IAExB,sBAAM,GAAN;QACI,eAAe;QACf,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvE,CAAC;IAED,oBAAI,GAAJ,UAAK,IAAI,EAAC,EAAE;QACR,IAAG,IAAI,IAAI,SAAS,CAAC,WAAW,EAAC;SAEhC;IACL,CAAC;IAED,qBAAK,GAAL,UAAM,EAAE;QACJ,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,0BAAU,GAAV,UAAW,OAAO;QAAlB,iBAcC;QAbG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAClD,IAAI,WAAW,GAAG,SAAS,GAAC,OAAO,CAAC;QACpC,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC7G,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;aAC5C,EAAE,CAAC,IAAI,EAAC,EAAC,OAAO,EAAC,GAAG,EAAC,CAAC;aACtB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,GAAC,IAAI,CAAC;aAC/C,IAAI,CAAC;YACF,IAAG,KAAI,CAAC,OAAO,EAAC;gBACZ,KAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC;aACnD;QACL,CAAC,CAAC;aACD,KAAK,EAAE,CAAC;IACb,CAAC;IAED,wBAAQ,GAAR,UAAS,IAAI,EAAC,MAAM;QAChB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,wBAAQ,GAAR;QACI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QAChD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,oBAAI,GAAJ,UAAK,IAAI,EAAC,MAAM,EAAC,OAAO;QAAxB,iBAmBC;QAlBG,uBAAuB;QACvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAG,MAAM;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,IAAI,WAAW,GAAG,SAAS,GAAC,OAAO,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAClD,MAAM;QACN,YAAY;QACZ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC7G,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;aAC5C,EAAE,CAAC,IAAI,EAAC,EAAC,OAAO,EAAC,GAAG,EAAC,CAAC;YACvB,kDAAkD;aACjD,IAAI,CAAC;YACF,IAAG,MAAM,EAAC;gBACN,KAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACtB;QACL,CAAC,CAAC;aACD,KAAK,EAAE,CAAC;IAEb,CAAC;IAED,uBAAO,GAAP;QACI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,yBAAS,GAAT,UAAU,IAAI;QACV,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,qBAAK,GAAL;IAEA,CAAC;IACD,WAAW;IACX,0BAAU,GAAV,UAAY,KAAK;QACb,IAAG,IAAI,CAAC,MAAM,EAAC;YACX,IAAG,IAAI,CAAC,OAAO,EAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC9C,IAAI,IAAI,GAAG,EAAC,QAAQ,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,CAAC,OAAO,EAAC,EAAE,EAAC,IAAI,CAAC,SAAS,EAAC,CAAC;gBACjE,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC;aAC3C;iBACG;gBACA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;gBAC9C,IAAI,IAAI,GAAG,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,CAAC,OAAO,EAAC,EAAE,EAAC,IAAI,CAAC,SAAS,EAAC,CAAC;gBAClE,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAC,IAAI,CAAC,CAAC;aAC3C;SACJ;IAEL,CAAC;IA5GD;QADC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;qCACC;IAHH,KAAK;QADzB,OAAO;OACa,KAAK,CAoHzB;IAAD,YAAC;CApHD,AAoHC,CApHkC,EAAE,CAAC,SAAS,GAoH9C;kBApHoB,KAAK","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\n//出现块的类型,问题以及答案\r\nvar BlockType = cc.Enum({\r\n problem_In: 1, //内圈问题\r\n problem_Out: 2, //外圈问题\r\n correct_In:3, //内圈正确答案\r\n correct_Out:4, //外圈正确答案\r\n err_In:5, //内圈错误答案\r\n err_Out:6, //外圈错误答案\r\n});\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class Block extends cc.Component {\r\n\r\n @property(cc.Asset)\r\n UI: cc.Asset = null;\r\n\r\n _touch: boolean;\r\n _start: boolean;\r\n _answer: boolean;\r\n _inside: boolean;\r\n _idNumber: number;\r\n GameManager: any;\r\n tube_Array: number[][];//管子数组\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad () {\r\n // this.init();\r\n this.GameManager = this.node.parent.parent.parent.getComponent(\"GameManager\");\r\n this._touch = false;\r\n this._start = false;\r\n this._answer = false;\r\n this._inside = true;\r\n this.node.on(cc.Node.EventType.TOUCH_START, this.touchStart, this);\r\n }\r\n\r\n init(type,id){\r\n if(type == BlockType.correct_Out){\r\n \r\n }\r\n }\r\n\r\n setId(id){\r\n this._idNumber = id;\r\n }\r\n\r\n answerShow(texture){\r\n this.node.getChildByName(\"texture\").active = true;\r\n let textureName = \"texture\"+texture;\r\n // @ts-ignore\r\n this.node.getChildByName(\"texture\").getComponent(cc.Sprite).spriteFrame = this.UI._spriteFrames[textureName];\r\n cc.tween(this.node.getChildByName(\"texture\"))\r\n .to(0.01,{opacity:255})\r\n .delay(this.GameManager.config[\"showTime\"]-0.05)\r\n .call(() =>{\r\n if(this._inside){\r\n this.node.getChildByName(\"texture\").opacity = 0;\r\n }\r\n })\r\n .start();\r\n }\r\n\r\n lockShow(type,inside){\r\n this.node.getChildByName(\"texture\").active = false;\r\n this._answer = type;\r\n this._inside = inside;\r\n this.node.getChildByName(\"lock\").active = true;\r\n this._touch = true;\r\n }\r\n\r\n lockHide(){\r\n this.node.getChildByName(\"lock\").active = false;\r\n this._touch = false;\r\n }\r\n\r\n show(type,inside,texture){\r\n // this._answer = type;\r\n this._inside = inside;\r\n if(inside) this._answer = type;\r\n let textureName = \"texture\"+texture;\r\n this.node.getChildByName(\"texture\").active = true;\r\n //正确答案\r\n //@ts-ignore\r\n this.node.getChildByName(\"texture\").getComponent(cc.Sprite).spriteFrame = this.UI._spriteFrames[textureName];\r\n cc.tween(this.node.getChildByName(\"texture\"))\r\n .to(0.01,{opacity:255})\r\n // .delay(this.GameManager.config[\"showTime\"]-0.1)\r\n .call(() =>{\r\n if(inside){\r\n this._touch = true;\r\n }\r\n })\r\n .start();\r\n\r\n }\r\n\r\n set_Pos(){\r\n this._start = true;\r\n }\r\n\r\n set_Touch(type){\r\n this._touch = type;\r\n }\r\n\r\n start () {\r\n\r\n }\r\n //开始点击,提高层级\r\n touchStart (event) {\r\n if(this._touch){\r\n if(this._answer){\r\n this.node.getChildByName(\"yes\").active = true;\r\n let data = {\"result\":true,\"type\":this._inside,id:this._idNumber};\r\n cc.fx.Notifications.emit(\"result\",data);\r\n }\r\n else{\r\n this.node.getChildByName(\"err\").active = true;\r\n let data = {\"result\":false,\"type\":this._inside,id:this._idNumber};\r\n cc.fx.Notifications.emit(\"result\",data);\r\n }\r\n }\r\n \r\n }\r\n\r\n // update (dt) {\r\n\r\n // }\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/d6/d6d3ca85-4681-47c1-b5dd-d036a9d39ea2.json b/library/imports/d6/d6d3ca85-4681-47c1-b5dd-d036a9d39ea2.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/d6/d6d3ca85-4681-47c1-b5dd-d036a9d39ea2.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/d6/d6d3ca85-4681-47c1-b5dd-d036a9d39ea2.png b/library/imports/d6/d6d3ca85-4681-47c1-b5dd-d036a9d39ea2.png new file mode 100644 index 0000000000000000000000000000000000000000..6bda1af8a5570c2574df57fc4a748eefdc838ab8 GIT binary patch literal 1047 zcmaJ=O=#0l9FJ6{PKKL;;12RkVe_j^(vP(b>$Wy&x2hertF#BfrODeGyX3{>&33y? z^q>>L?Id^-6dWjuH<^cd5(e(1mpSmH^B_27hv87_OV@55tbv#J!SDC`f4twDP7U_A zG`BZX6xEU#5YuEnK*rI%P2|6RQN(0Af@3*6ghp^lG9eXFP#%JWCXK>0l$41pi?Exb z9LLm54(F2Rco}JK$;PRR+-cxpIWNO{8P4nCJUkoXIX|dK*^BYawn*J6=fm@Z&!@C;Kb zmE0w-8=0dF7YcA+T$@@O1~X_Dzy37WAj zt6Q};k%lp4$zV7)YnN09CX@e%YT7p1!fCjZ?>~jD%!C1%G_=sTDU*vEaoV8_UNE7A zk(ohgtlq^`0byhnkO2e%9M7t{f=bqjDmZU4{uUOcMdOsw%uFbcI+!2n2j_ zf#YJqs1OeX1u@RXgeV*IN9$Y>$>SQ-ah8f`UWH2BL>j18%&U!a z@i)|~ah1lobT#BMBpJrO*T3$$eniY;FSlJwHru|3Ix)LRT#ep`7s-pblMo}B@`wDd z%IE!FhvUYf)~^)T>5#rVZZVD@J%?xBJVqZsP5u7)ZhCfh_Q7hUQknXamsdKSCpT~I zQ=Bi_Bh;gBE6*>1d+pbJ*1;!j%hXIyM^p3bxz+Pa5AXN;?_Tc6u9s4-zS|vhn`>Yx w`*L}Cqpe6io!>?5OJBhAeQzUYVtZPLskPm{g|i!#Q}$C$#0JG@(c$ZV0BeX=Qvd(} literal 0 HcmV?d00001 diff --git a/library/imports/d8/d81ec8ad-247c-4e62-aa3c-d35c4193c7af.json b/library/imports/d8/d81ec8ad-247c-4e62-aa3c-d35c4193c7af.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/d8/d81ec8ad-247c-4e62-aa3c-d35c4193c7af.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/d8/d81ec8ad-247c-4e62-aa3c-d35c4193c7af.png b/library/imports/d8/d81ec8ad-247c-4e62-aa3c-d35c4193c7af.png new file mode 100644 index 0000000000000000000000000000000000000000..78314b48f40ae5be45a54176899111698e8b6889 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAd3?%E9GuQzs(Ey(i*H1726o4^5N!q^^1@hTS zg8YI%u2pByP!&$DP5_D+dAc};a9mF|5cObYK9<1NYNC;lB+zUqEO{g03`?7dg@lFL nAgTe~DWM4fS^P8X literal 0 HcmV?d00001 diff --git a/library/imports/d9/d95bdbfb-bf4f-4a2a-8063-86225e9583e9.json b/library/imports/d9/d95bdbfb-bf4f-4a2a-8063-86225e9583e9.json new file mode 100644 index 0000000..a3b6bae --- /dev/null +++ b/library/imports/d9/d95bdbfb-bf4f-4a2a-8063-86225e9583e9.json @@ -0,0 +1,29 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "start", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 515, + 1031, + 270, + 72 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 270, + 72 + ], + "rotated": 1, + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/da/da411ff5-9431-4eec-8943-b2e786a28415.json b/library/imports/da/da411ff5-9431-4eec-8943-b2e786a28415.json new file mode 100644 index 0000000..74b235f --- /dev/null +++ b/library/imports/da/da411ff5-9431-4eec-8943-b2e786a28415.json @@ -0,0 +1,29 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "progress", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 515, + 685, + 344, + 88 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 344, + 88 + ], + "rotated": 1, + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/db/dbd5f874-ad43-4e46-be45-1bf69f991c8b.json b/library/imports/db/dbd5f874-ad43-4e46-be45-1bf69f991c8b.json new file mode 100644 index 0000000..cac249f --- /dev/null +++ b/library/imports/db/dbd5f874-ad43-4e46-be45-1bf69f991c8b.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "kuang3", + "texture": "d0a7ac2e-33a3-4be5-a30b-842c51bdc0c2", + "atlas": "e883b928-b637-44d9-af8d-b83e856a59f7", + "rect": [ + 605, + 753, + 132, + 132 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 132, + 132 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/dd/ddb99b39-7004-47cd-9705-751905c43c46.json b/library/imports/dd/ddb99b39-7004-47cd-9705-751905c43c46.json new file mode 100644 index 0000000..0f22a96 --- /dev/null +++ b/library/imports/dd/ddb99b39-7004-47cd-9705-751905c43c46.json @@ -0,0 +1,117 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "directional", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "light", + "_objFlags": 0, + "_parent": null, + "_children": [], + "_active": true, + "_level": 1, + "_components": [ + { + "__id__": 2 + } + ], + "_prefab": { + "__id__": 3 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "groupIndex": 0, + "_id": "", + "_eulerAngles": { + "x": 0, + "y": 0, + "z": 0, + "__type__": "cc.Vec3" + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1 + ] + } + }, + { + "__type__": "cc.Light", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_type": 0, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_intensity": 1, + "_range": 1000, + "_spotAngle": 60, + "_spotExp": 1, + "_shadowType": 0, + "_shadowResolution": 1024, + "_shadowDarkness": 0.5, + "_shadowMinDepth": 1, + "_shadowMaxDepth": 1000, + "_shadowDepthScale": 250, + "_shadowFrustumSize": 50, + "_shadowBias": 0.0005, + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "ddb99b39-7004-47cd-9705-751905c43c46" + }, + "fileId": "33zOkteexCqamZ4PXuwJaW", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/de/de510076-056b-484f-b94c-83bef217d0e1.json b/library/imports/de/de510076-056b-484f-b94c-83bef217d0e1.json new file mode 100644 index 0000000..4f32d22 --- /dev/null +++ b/library/imports/de/de510076-056b-484f-b94c-83bef217d0e1.json @@ -0,0 +1,109 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "torus", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "asyncLoadAssets": false, + "readonly": false + }, + { + "__type__": "cc.Node", + "_name": "torus", + "_objFlags": 0, + "_parent": null, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 2 + } + ], + "_prefab": { + "__id__": 3 + }, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "" + }, + { + "__type__": "cc.MeshRenderer", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "a5849239-3ad3-41d1-8ab4-ae9fea11f97f" + } + ], + "_mesh": { + "__uuid__": "14c74869-bdb4-4f57-86d8-a7875de2be30" + }, + "_receiveShadows": false, + "_shadowCastingMode": 0, + "_enableAutoBatch": false, + "textures": [], + "_id": "" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__uuid__": "de510076-056b-484f-b94c-83bef217d0e1" + }, + "fileId": "a1gx3/CoNJb6xz1joaf6oM", + "sync": false + } +] \ No newline at end of file diff --git a/library/imports/e0/e02d87d4-e599-4d16-8001-e14891ac6506.json b/library/imports/e0/e02d87d4-e599-4d16-8001-e14891ac6506.json new file mode 100644 index 0000000..5a4d972 --- /dev/null +++ b/library/imports/e0/e02d87d4-e599-4d16-8001-e14891ac6506.json @@ -0,0 +1,16 @@ +{ + "__type__": "cc.Material", + "_name": "builtin-2d-label", + "_objFlags": 0, + "_native": "", + "_effectAsset": { + "__uuid__": "f18742d7-56d2-4eb5-ae49-2d9d710b37c8" + }, + "_techniqueData": { + "0": { + "defines": { + "USE_TEXTURE": true + } + } + } +} \ No newline at end of file diff --git a/library/imports/e1/e1d57e63-4f2f-467d-9c55-0a889d5533a8.json b/library/imports/e1/e1d57e63-4f2f-467d-9c55-0a889d5533a8.json new file mode 100644 index 0000000..9d7f039 --- /dev/null +++ b/library/imports/e1/e1d57e63-4f2f-467d-9c55-0a889d5533a8.json @@ -0,0 +1,23 @@ +{ + "__type__": "cc.JsonAsset", + "_name": "CLICK_DATA", + "_objFlags": 0, + "_native": "", + "json": { + "data": { + "type": 1, + "success": false, + "round": 0, + "totalSunCount": 0, + "movedSunCount": 0, + "sunSpeed": 0, + "overlapSunCount": 0, + "colorList": [], + "duration": 0, + "difficultyLevel": 0, + "sunList": [], + "stepTimeList": [], + "remainder": 120 + } + } +} \ No newline at end of file diff --git a/library/imports/e2/e2f00085-c597-422d-9759-52c360279106.json b/library/imports/e2/e2f00085-c597-422d-9759-52c360279106.json new file mode 100644 index 0000000..5744bae --- /dev/null +++ b/library/imports/e2/e2f00085-c597-422d-9759-52c360279106.json @@ -0,0 +1,825 @@ +{ + "__type__": "cc.EffectAsset", + "_name": "builtin-toon", + "_objFlags": 0, + "_native": "", + "properties": null, + "techniques": [ + { + "passes": [ + { + "name": "outline", + "rasterizerState": { + "cullMode": 1028 + }, + "depthStencilState": { + "depthTest": true, + "depthWrite": true + }, + "properties": { + "lineWidth": { + "value": [ + 10 + ], + "type": 13 + }, + "depthBias": { + "value": [ + 0 + ], + "type": 13 + }, + "outlineBaseColor": { + "value": [ + 0, + 0, + 0, + 1 + ], + "editor": { + "type": "color" + }, + "type": 16 + }, + "outlineBaseColorMap": { + "value": "gray", + "type": 29 + } + }, + "program": "builtin-toon|outline-vs:vert|outline-fs:frag" + }, + { + "name": "toon", + "depthStencilState": { + "depthTest": true, + "depthWrite": true + }, + "properties": { + "tilingOffset": { + "value": [ + 1, + 1, + 0, + 0 + ], + "type": 16 + }, + "normalMap": { + "value": "normal", + "type": 29 + }, + "baseColorMap": { + "value": "white", + "type": 29 + }, + "specular": { + "value": [ + 1, + 1, + 1, + 0.5 + ], + "editor": { + "type": "color" + }, + "type": 16 + }, + "specularMap": { + "value": "white", + "type": 29 + }, + "specularThreshold": { + "value": [ + 0.5 + ], + "type": 13 + }, + "emissive": { + "value": [ + 0, + 0, + 0, + 1 + ], + "editor": { + "type": "color" + }, + "type": 16 + }, + "emissiveMap": { + "value": "white", + "type": 29 + }, + "shadowColor": { + "value": [ + 0, + 0, + 0, + 1 + ], + "editor": { + "type": "color" + }, + "type": 16 + }, + "shadowIntensity": { + "value": [ + 0.5 + ], + "type": 13 + }, + "highlightColor": { + "value": [ + 1, + 1, + 1, + 1 + ], + "editor": { + "type": "color" + }, + "type": 16 + }, + "lightThreshold": { + "value": [ + 0.5 + ], + "type": 13 + }, + "lightSmoothness": { + "value": [ + 0.1 + ], + "type": 13 + } + }, + "program": "builtin-toon|toon-vs:vert|toon-fs:frag" + } + ] + } + ], + "shaders": [ + { + "hash": 2752667346, + "glsl3": { + "vert": "\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\n#if CC_USE_SKINNING\n in vec4 a_weights;\n in vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform SKINNING {\n vec2 jointsTextureSize;\n };\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform JOINT_MATRIX {\n mat4 jointMatrices[50];\n };\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nstruct StandardVertInput {\n vec2 uv;\n vec4 position;\n vec3 normal;\n vec4 tangent;\n vec4 color;\n};\nin vec3 a_position;\n#if CC_USE_ATTRIBUTE_UV0\nin vec2 a_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\nin vec4 a_color;\n#endif\n#if CC_USE_ATTRIBUTE_NORMAL\nin vec3 a_normal;\n#endif\n#if CC_USE_ATTRIBUTE_TANGENT\nin vec4 a_tangent;\n#endif\nvoid CCAttribute (out StandardVertInput In) {\n In.position = vec4(a_position, 1.0);\n #if CC_USE_ATTRIBUTE_UV0\n In.uv = a_uv0;\n #else\n In.uv = vec2(0.0);\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n In.color = a_color;\n #else\n In.color = vec4(1.0);\n #endif\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = a_normal;\n #else\n In.normal = vec3(0.0, 1.0, 0.0);\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = a_tangent;\n #else\n In.tangent = vec4(1.0, 0.0, 0.0, 0.0);\n #endif\n}\nvoid CCVertInput(out StandardVertInput In) {\n CCAttribute(In);\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n In.position = m * In.position;\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = (m * vec4(In.normal, 0)).xyz;\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = m * In.tangent;\n #endif\n #endif\n}\nout vec2 v_uv;\nuniform OutlineVert {\n float lineWidth;\n float depthBias;\n};\nvec4 vert () {\n StandardVertInput In;\n CCVertInput(In);\n float width = lineWidth * 0.001;\n #if USE_POSITION_SCALING\n vec3 dir = normalize(In.position.xyz);\n float flip = dot(dir, normalize(In.normal)) < 0.0 ? -1.0 : 1.0;\n In.position.xyz += flip * dir * width * 2.0;\n vec4 pos = cc_matViewProj * cc_matWorld * In.position;\n #else\n In.position.xyz += normalize(In.normal) * width;\n vec4 pos = cc_matViewProj * cc_matWorld * In.position;\n #endif\n pos.z -= depthBias * 0.002;\n v_uv = In.uv;\n return pos;\n}\nvoid main() { gl_Position = vert(); }", + "frag": "\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\n#if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 0\n uniform CC_SHADOW {\n mat4 cc_shadow_lightViewProjMatrix[2];\n vec4 cc_shadow_info[2];\n };\n #if CC_NUM_SHADOW_LIGHTS > 0\n uniform sampler2D cc_shadow_map_0;\n #endif\n #if CC_NUM_SHADOW_LIGHTS > 1\n uniform sampler2D cc_shadow_map_1;\n #endif\n varying vec4 v_posLightSpace[2];\n varying float v_depth[2];\n#endif\n#if CC_NUM_LIGHTS > 0\nuniform CCLIGHTS {\n vec4 cc_lightPositionAndRange[4];\n vec4 cc_lightDirection[4];\n vec4 cc_lightColor[4];\n};\n#endif\nstruct LightInfo {\n vec3 lightDir;\n vec3 radiance;\n vec4 lightColor;\n};\nstruct Lighting {\n vec3 diffuse;\n vec3 specular;\n};\nin vec2 v_uv;\nuniform OutlineFrag {\n vec4 outlineBaseColor;\n};\n#if USE_OUTLINE_BASE_COLOR_MAP\n uniform sampler2D outlineBaseColorMap;\n#endif\nvec4 frag () {\n vec4 color = outlineBaseColor;\n #if CC_NUM_DIR_LIGHTS > 0\n for (int i = 0; i < CC_NUM_DIR_LIGHTS; i++) {\n color *= cc_dirLightColor[i];\n }\n #endif\n #if USE_OUTLINE_BASE_COLOR_MAP\n vec4 outlineBaseColorMap_tmp = texture(outlineBaseColorMap, v_uv);\n #if CC_USE_ALPHA_ATLAS_outlineBaseColorMap\n outlineBaseColorMap_tmp.a *= texture(outlineBaseColorMap, v_uv + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (outlineBaseColorMap_tmp.rgb * outlineBaseColorMap_tmp.rgb);\n color.a *= outlineBaseColorMap_tmp.a;\n #else\n color *= outlineBaseColorMap_tmp;\n #endif\n #endif\n return vec4(color.rgb, 1.0);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }" + }, + "glsl1": { + "vert": "\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\n#if CC_USE_SKINNING\n attribute vec4 a_weights;\n attribute vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform vec2 jointsTextureSize;\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture2D(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture2D(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture2D(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture2D(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture2D(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform mat4 jointMatrices[50];\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nstruct StandardVertInput {\n vec2 uv;\n vec4 position;\n vec3 normal;\n vec4 tangent;\n vec4 color;\n};\nattribute vec3 a_position;\n#if CC_USE_ATTRIBUTE_UV0\nattribute vec2 a_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\nattribute vec4 a_color;\n#endif\n#if CC_USE_ATTRIBUTE_NORMAL\nattribute vec3 a_normal;\n#endif\n#if CC_USE_ATTRIBUTE_TANGENT\nattribute vec4 a_tangent;\n#endif\nvoid CCAttribute (out StandardVertInput In) {\n In.position = vec4(a_position, 1.0);\n #if CC_USE_ATTRIBUTE_UV0\n In.uv = a_uv0;\n #else\n In.uv = vec2(0.0);\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n In.color = a_color;\n #else\n In.color = vec4(1.0);\n #endif\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = a_normal;\n #else\n In.normal = vec3(0.0, 1.0, 0.0);\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = a_tangent;\n #else\n In.tangent = vec4(1.0, 0.0, 0.0, 0.0);\n #endif\n}\nvoid CCVertInput(out StandardVertInput In) {\n CCAttribute(In);\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n In.position = m * In.position;\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = (m * vec4(In.normal, 0)).xyz;\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = m * In.tangent;\n #endif\n #endif\n}\nvarying vec2 v_uv;\nuniform float lineWidth;\nuniform float depthBias;\nvec4 vert () {\n StandardVertInput In;\n CCVertInput(In);\n float width = lineWidth * 0.001;\n #if USE_POSITION_SCALING\n vec3 dir = normalize(In.position.xyz);\n float flip = dot(dir, normalize(In.normal)) < 0.0 ? -1.0 : 1.0;\n In.position.xyz += flip * dir * width * 2.0;\n vec4 pos = cc_matViewProj * cc_matWorld * In.position;\n #else\n In.position.xyz += normalize(In.normal) * width;\n vec4 pos = cc_matViewProj * cc_matWorld * In.position;\n #endif\n pos.z -= depthBias * 0.002;\n v_uv = In.uv;\n return pos;\n}\nvoid main() { gl_Position = vert(); }", + "frag": "\nprecision highp float;\n#if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 0\n #if CC_NUM_SHADOW_LIGHTS > 0\n uniform sampler2D cc_shadow_map_0;\n #endif\n #if CC_NUM_SHADOW_LIGHTS > 1\n uniform sampler2D cc_shadow_map_1;\n #endif\n varying vec4 v_posLightSpace[2];\n varying float v_depth[2];\n#endif\n#if CC_NUM_LIGHTS > 0\n#endif\nstruct LightInfo {\n vec3 lightDir;\n vec3 radiance;\n vec4 lightColor;\n};\nstruct Lighting {\n vec3 diffuse;\n vec3 specular;\n};\nvarying vec2 v_uv;\nuniform vec4 outlineBaseColor;\n#if USE_OUTLINE_BASE_COLOR_MAP\n uniform sampler2D outlineBaseColorMap;\n#endif\nvec4 frag () {\n vec4 color = outlineBaseColor;\n #if CC_NUM_DIR_LIGHTS > 0\n for (int i = 0; i < CC_NUM_DIR_LIGHTS; i++) {\n color *= cc_dirLightColor[i];\n }\n #endif\n #if USE_OUTLINE_BASE_COLOR_MAP\n vec4 outlineBaseColorMap_tmp = texture2D(outlineBaseColorMap, v_uv);\n #if CC_USE_ALPHA_ATLAS_outlineBaseColorMap\n outlineBaseColorMap_tmp.a *= texture2D(outlineBaseColorMap, v_uv + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n color.rgb *= (outlineBaseColorMap_tmp.rgb * outlineBaseColorMap_tmp.rgb);\n color.a *= outlineBaseColorMap_tmp.a;\n #else\n color *= outlineBaseColorMap_tmp;\n #endif\n #endif\n return vec4(color.rgb, 1.0);\n}\nvoid main() { gl_FragColor = frag(); }" + }, + "builtins": { + "globals": { + "blocks": [ + { + "name": "CCGlobal", + "defines": [] + }, + { + "name": "CC_SHADOW", + "defines": [ + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ] + }, + { + "name": "CCLIGHTS", + "defines": [ + "CC_NUM_LIGHTS" + ] + } + ], + "samplers": [ + { + "name": "cc_shadow_map_0", + "defines": [ + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ] + }, + { + "name": "cc_shadow_map_1", + "defines": [ + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ] + } + ] + }, + "locals": { + "blocks": [ + { + "name": "CCLocal", + "defines": [] + } + ], + "samplers": [] + } + }, + "defines": [ + { + "name": "CC_USE_SKINNING", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_JOINTS_TEXTRUE", + "type": "boolean", + "defines": [ + "CC_USE_SKINNING" + ] + }, + { + "name": "CC_JOINTS_TEXTURE_FLOAT32", + "type": "boolean", + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ] + }, + { + "name": "CC_USE_ATTRIBUTE_UV0", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ATTRIBUTE_COLOR", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ATTRIBUTE_NORMAL", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ATTRIBUTE_TANGENT", + "type": "boolean", + "defines": [] + }, + { + "name": "USE_POSITION_SCALING", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_SHADOW_MAP", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_NUM_SHADOW_LIGHTS", + "type": "number", + "defines": [ + "CC_USE_SHADOW_MAP" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_NUM_LIGHTS", + "type": "number", + "defines": [], + "range": [ + 0, + 3 + ] + }, + { + "name": "USE_OUTLINE_BASE_COLOR_MAP", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_NUM_DIR_LIGHTS", + "type": "number", + "defines": [], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_USE_ALPHA_ATLAS_outlineBaseColorMap", + "type": "boolean", + "defines": [ + "USE_OUTLINE_BASE_COLOR_MAP" + ] + }, + { + "name": "INPUT_IS_GAMMA", + "type": "boolean", + "defines": [ + "USE_OUTLINE_BASE_COLOR_MAP" + ] + } + ], + "blocks": [ + { + "name": "SKINNING", + "members": [ + { + "name": "jointsTextureSize", + "type": 14, + "count": 1 + } + ], + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ], + "binding": 0 + }, + { + "name": "JOINT_MATRIX", + "members": [ + { + "name": "jointMatrices", + "type": 26, + "count": 50 + } + ], + "defines": [ + "CC_USE_SKINNING" + ], + "binding": 1 + }, + { + "name": "OutlineVert", + "members": [ + { + "name": "lineWidth", + "type": 13, + "count": 1 + }, + { + "name": "depthBias", + "type": 13, + "count": 1 + } + ], + "defines": [], + "binding": 2 + }, + { + "name": "OutlineFrag", + "members": [ + { + "name": "outlineBaseColor", + "type": 16, + "count": 1 + } + ], + "defines": [], + "binding": 3 + } + ], + "samplers": [ + { + "name": "jointsTexture", + "type": 29, + "count": 1, + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ], + "binding": 30 + }, + { + "name": "outlineBaseColorMap", + "type": 29, + "count": 1, + "defines": [ + "USE_OUTLINE_BASE_COLOR_MAP" + ], + "binding": 31 + } + ], + "record": null, + "name": "builtin-toon|outline-vs:vert|outline-fs:frag" + }, + { + "hash": 1621866752, + "glsl3": { + "vert": "\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\n#if CC_USE_SKINNING\n in vec4 a_weights;\n in vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform SKINNING {\n vec2 jointsTextureSize;\n };\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform JOINT_MATRIX {\n mat4 jointMatrices[50];\n };\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nstruct StandardVertInput {\n vec2 uv;\n vec4 position;\n vec3 normal;\n vec4 tangent;\n vec4 color;\n};\nin vec3 a_position;\n#if CC_USE_ATTRIBUTE_UV0\nin vec2 a_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\nin vec4 a_color;\n#endif\n#if CC_USE_ATTRIBUTE_NORMAL\nin vec3 a_normal;\n#endif\n#if CC_USE_ATTRIBUTE_TANGENT\nin vec4 a_tangent;\n#endif\nvoid CCAttribute (out StandardVertInput In) {\n In.position = vec4(a_position, 1.0);\n #if CC_USE_ATTRIBUTE_UV0\n In.uv = a_uv0;\n #else\n In.uv = vec2(0.0);\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n In.color = a_color;\n #else\n In.color = vec4(1.0);\n #endif\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = a_normal;\n #else\n In.normal = vec3(0.0, 1.0, 0.0);\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = a_tangent;\n #else\n In.tangent = vec4(1.0, 0.0, 0.0, 0.0);\n #endif\n}\nvoid CCVertInput(out StandardVertInput In) {\n CCAttribute(In);\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n In.position = m * In.position;\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = (m * vec4(In.normal, 0)).xyz;\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = m * In.tangent;\n #endif\n #endif\n}\nout vec3 v_position;\nout vec2 v_uv;\nout vec3 v_normal;\nout vec3 v_viewDirection;\n#if USE_NORMAL_MAP\n out vec3 v_tangent;\n out vec3 v_bitangent;\n#endif\nuniform ToonVert {\n vec4 tilingOffset;\n};\nvec4 vert () {\n StandardVertInput In;\n CCVertInput(In);\n vec4 pos = cc_matWorld * In.position;\n v_position = pos.xyz;\n v_uv = In.uv * tilingOffset.xy + tilingOffset.zw;\n v_viewDirection = normalize(cc_cameraPos.xyz - v_position);\n v_normal = (cc_matWorldIT * vec4(In.normal, 0.0)).xyz;\n #if USE_NORMAL_MAP\n v_tangent = normalize((cc_matWorldIT * vec4(In.tangent.xyz, 0.0)).xyz);\n v_bitangent = cross(v_normal, v_tangent) * In.tangent.w;\n #endif\n return cc_matViewProj * pos;\n}\nvoid main() { gl_Position = vert(); }", + "frag": "\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\n#if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 0\n uniform CC_SHADOW {\n mat4 cc_shadow_lightViewProjMatrix[2];\n vec4 cc_shadow_info[2];\n };\n #if CC_NUM_SHADOW_LIGHTS > 0\n uniform sampler2D cc_shadow_map_0;\n #endif\n #if CC_NUM_SHADOW_LIGHTS > 1\n uniform sampler2D cc_shadow_map_1;\n #endif\n varying vec4 v_posLightSpace[2];\n varying float v_depth[2];\n#endif\nfloat unpackRGBAToDepth(vec4 color) {\n return dot(color, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 160581375.0));\n}\nfloat getDepth(sampler2D shadowMap, vec2 shadowUV) {\n return unpackRGBAToDepth(texture(shadowMap, shadowUV));\n}\nfloat computeFallOff(float shadow, vec2 coords, float frustumEdgeFalloff) {\n return shadow;\n}\nfloat shadowSimple(sampler2D shadowMap, vec2 shadowUV, float currentDepth, float darkness) {\n float closestDepth = getDepth(shadowMap, shadowUV);\n return currentDepth > closestDepth ? 1.0 - darkness : 1.0;\n}\nfloat shadowPCF3X3(sampler2D shadowMap, vec2 shadowUV, float currentDepth, float darkness, float shadowSize) {\n float shadow = 0.0;\n for (int x = -1; x <= 1; ++x) {\n for (int y = -1; y <= 1; ++y) {\n float closestDepth = getDepth(shadowMap, shadowUV + vec2(x, y) * 1.0/shadowSize);\n shadow += currentDepth > closestDepth ? 1.0 - darkness : 1.0;\n }\n }\n shadow /= 9.0;\n return shadow;\n}\nfloat shadowPCF5X5(sampler2D shadowMap, vec2 shadowUV, float currentDepth, float darkness, float shadowSize) {\n float shadow = 0.0;\n for (int x = -2; x <= 2; ++x) {\n for (int y = -2; y <= 2; ++y) {\n float closestDepth = getDepth(shadowMap, shadowUV + vec2(x, y) * 1.0/shadowSize);\n shadow += currentDepth > closestDepth ? 1.0 - darkness : 1.0;\n }\n }\n shadow /= 25.0;\n return shadow;\n}\n#if CC_NUM_LIGHTS > 0\nuniform CCLIGHTS {\n vec4 cc_lightPositionAndRange[4];\n vec4 cc_lightDirection[4];\n vec4 cc_lightColor[4];\n};\n#endif\nstruct LightInfo {\n vec3 lightDir;\n vec3 radiance;\n vec4 lightColor;\n};\nLightInfo computeDirectionalLighting(\n vec4 lightDirection,\n vec4 lightColor\n) {\n LightInfo ret;\n ret.lightDir = -normalize(lightDirection.xyz);\n ret.radiance = lightColor.rgb;\n ret.lightColor = lightColor;\n return ret;\n}\nLightInfo computePointLighting(\n vec3 worldPosition,\n vec4 lightPositionAndRange,\n vec4 lightColor\n) {\n LightInfo ret;\n vec3 lightDir = lightPositionAndRange.xyz - worldPosition;\n float attenuation = max(0., 1.0 - length(lightDir) / lightPositionAndRange.w);\n ret.lightDir = normalize(lightDir);\n ret.radiance = lightColor.rgb * attenuation;\n ret.lightColor = lightColor;\n return ret;\n}\nLightInfo computeSpotLighting(\n vec3 worldPosition,\n vec4 lightPositionAndRange,\n vec4 lightDirection,\n vec4 lightColor\n) {\n LightInfo ret;\n vec3 lightDir = lightPositionAndRange.xyz - worldPosition;\n float attenuation = max(0., 1.0 - length(lightDir) / lightPositionAndRange.w);\n lightDir = normalize(lightDir);\n float cosConeAngle = max(0., dot(lightDirection.xyz, -lightDir));\n cosConeAngle = cosConeAngle < lightDirection.w ? 0. : cosConeAngle;\n cosConeAngle = pow(cosConeAngle, lightColor.w);\n ret.lightDir = lightDir;\n ret.radiance = lightColor.rgb * attenuation * cosConeAngle;\n ret.lightColor = lightColor;\n return ret;\n}\nstruct Lighting {\n vec3 diffuse;\n vec3 specular;\n};\nstruct ToonSurface {\n vec4 baseColor;\n vec3 specular;\n float specularThreshold;\n vec3 position;\n vec3 normal;\n vec3 viewDirection;\n vec3 emissive;\n vec3 shadowColor;\n float shadowIntensity;\n vec3 highlightColor;\n float lightThreshold;\n float lightSmoothness;\n};\nconst float T_H = 0.25;\nfloat TreshHoldLighting(float lThreshold, float smoothness, float v) {\n return smoothstep(lThreshold-smoothness*T_H, lThreshold+smoothness*T_H, v);\n}\nLighting toon (ToonSurface s, LightInfo info) {\n Lighting result;\n vec3 N = s.normal;\n vec3 L = info.lightDir;\n vec3 V = s.viewDirection;\n vec3 H = normalize(L + V);\n float NL = 0.5 * dot(N, L) + 0.5;\n float NH = 0.5 * dot(H, N) + 0.5;\n vec3 c = vec3(0.0);\n vec3 attenuation = info.radiance;\n vec3 lightColor = info.lightColor.rgb;\n vec3 shadowColor = mix(s.highlightColor * lightColor, s.shadowColor, s.shadowIntensity);\n vec3 diffuse = TreshHoldLighting(s.lightThreshold, s.lightSmoothness, NL) * attenuation;\n diffuse = mix(shadowColor, s.highlightColor * lightColor, diffuse);\n result.diffuse = diffuse * s.baseColor.rgb;\n float specularWeight = 1.0 - pow(s.specularThreshold, 5.0);\n float specularMask = step(specularWeight, NH);\n vec3 specular = s.specular.rgb * specularMask;\n result.specular = specular * attenuation;\n return result;\n}\nvec3 ambient(ToonSurface s, vec4 ambientColor) {\n return s.baseColor.rgb * ambientColor.rgb;\n}\nvec4 CCToonShading (ToonSurface s) {\n Lighting result;\n result.diffuse = vec3(0, 0, 0);\n result.specular = vec3(0, 0, 0);\n #if CC_NUM_LIGHTS > 0\n #if CC_LIGHT_0_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[0]);\n #else\n LightInfo info0;\n #if CC_LIGHT_0_TYPE == 0\n info0 = computeDirectionalLighting(cc_lightDirection[0], cc_lightColor[0]);\n #elif CC_LIGHT_0_TYPE == 1\n info0 = computePointLighting(s.position, cc_lightPositionAndRange[0], cc_lightColor[0]);\n #elif CC_LIGHT_0_TYPE == 2\n info0 = computeSpotLighting(s.position, cc_lightPositionAndRange[0], cc_lightDirection[0], cc_lightColor[0]);\n #endif\n Lighting result0 = toon(s, info0);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 0\n float shadow_0 = 1.0;\n vec2 projCoords0 = v_posLightSpace[0].xy / v_posLightSpace[0].w;\n vec2 shadowUV0 = projCoords0 * 0.5 + vec2(0.5);\n if (shadowUV0.x >= 0.0 && shadowUV0.x <= 1.0 && shadowUV0.y >= 0.0 && shadowUV0.y <= 1.0) {\n float currentDepth0 = clamp(v_depth[0], 0.0, 1.0);\n #if CC_SHADOW_0_TYPE == 3\n shadow_0 = shadowPCF3X3(cc_shadow_map_0, shadowUV0, currentDepth0, cc_shadow_info[0].w, cc_shadow_info[0].z);\n #elif CC_SHADOW_0_TYPE == 4\n shadow_0 = shadowPCF5X5(cc_shadow_map_0, shadowUV0, currentDepth0, cc_shadow_info[0].w, cc_shadow_info[0].z);\n #else\n shadow_0 = shadowSimple(cc_shadow_map_0, shadowUV0, currentDepth0, cc_shadow_info[0].w);\n #endif\n shadow_0 = computeFallOff(shadow_0, projCoords0, 0.0);\n }\n result0.diffuse *= shadow_0;\n result0.specular *= shadow_0;\n #endif\n result.diffuse += result0.diffuse;\n result.specular += result0.specular;\n #endif\n #endif\n #if CC_NUM_LIGHTS > 1\n #if CC_LIGHT_1_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[1]);\n #else\n LightInfo info1;\n #if CC_LIGHT_1_TYPE == 0\n info1 = computeDirectionalLighting(cc_lightDirection[1], cc_lightColor[1]);\n #elif CC_LIGHT_1_TYPE == 1\n info1 = computePointLighting(s.position, cc_lightPositionAndRange[1], cc_lightColor[1]);\n #elif CC_LIGHT_1_TYPE == 2\n info1 = computeSpotLighting(s.position, cc_lightPositionAndRange[1], cc_lightDirection[1], cc_lightColor[1]);\n #endif\n Lighting result1 = toon(s, info1);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 1\n float shadow_1 = 1.0;\n vec2 projCoords1 = v_posLightSpace[1].xy / v_posLightSpace[1].w;\n vec2 shadowUV1 = projCoords1 * 0.5 + vec2(0.5);\n if (shadowUV1.x >= 0.0 && shadowUV1.x <= 1.0 && shadowUV1.y >= 0.0 && shadowUV1.y <= 1.0) {\n float currentDepth1 = clamp(v_depth[1], 0.0, 1.0);\n #if CC_SHADOW_1_TYPE == 3\n shadow_1 = shadowPCF3X3(cc_shadow_map_1, shadowUV1, currentDepth1, cc_shadow_info[1].w, cc_shadow_info[1].z);\n #elif CC_SHADOW_1_TYPE == 4\n shadow_1 = shadowPCF5X5(cc_shadow_map_1, shadowUV1, currentDepth1, cc_shadow_info[1].w, cc_shadow_info[1].z);\n #else\n shadow_1 = shadowSimple(cc_shadow_map_1, shadowUV1, currentDepth1, cc_shadow_info[1].w);\n #endif\n shadow_1 = computeFallOff(shadow_1, projCoords1, 0.0);\n }\n result1.diffuse *= shadow_1;\n result1.specular *= shadow_1;\n #endif\n result.diffuse += result1.diffuse;\n result.specular += result1.specular;\n #endif\n #endif\n #if CC_NUM_LIGHTS > 2\n #if CC_LIGHT_2_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[2]);\n #else\n LightInfo info2;\n #if CC_LIGHT_2_TYPE == 0\n info2 = computeDirectionalLighting(cc_lightDirection[2], cc_lightColor[2]);\n #elif CC_LIGHT_2_TYPE == 1\n info2 = computePointLighting(s.position, cc_lightPositionAndRange[2], cc_lightColor[2]);\n #elif CC_LIGHT_2_TYPE == 2\n info2 = computeSpotLighting(s.position, cc_lightPositionAndRange[2], cc_lightDirection[2], cc_lightColor[2]);\n #endif\n Lighting result2 = toon(s, info2);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 2\n float shadow_2 = 1.0;\n vec2 projCoords2 = v_posLightSpace[2].xy / v_posLightSpace[2].w;\n vec2 shadowUV2 = projCoords2 * 0.5 + vec2(0.5);\n if (shadowUV2.x >= 0.0 && shadowUV2.x <= 1.0 && shadowUV2.y >= 0.0 && shadowUV2.y <= 1.0) {\n float currentDepth2 = clamp(v_depth[2], 0.0, 1.0);\n #if CC_SHADOW_2_TYPE == 3\n shadow_2 = shadowPCF3X3(cc_shadow_map_2, shadowUV2, currentDepth2, cc_shadow_info[2].w, cc_shadow_info[2].z);\n #elif CC_SHADOW_2_TYPE == 4\n shadow_2 = shadowPCF5X5(cc_shadow_map_2, shadowUV2, currentDepth2, cc_shadow_info[2].w, cc_shadow_info[2].z);\n #else\n shadow_2 = shadowSimple(cc_shadow_map_2, shadowUV2, currentDepth2, cc_shadow_info[2].w);\n #endif\n shadow_2 = computeFallOff(shadow_2, projCoords2, 0.0);\n }\n result2.diffuse *= shadow_2;\n result2.specular *= shadow_2;\n #endif\n result.diffuse += result2.diffuse;\n result.specular += result2.specular;\n #endif\n #endif\n #if CC_NUM_LIGHTS > 3\n #if CC_LIGHT_3_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[3]);\n #else\n LightInfo info3;\n #if CC_LIGHT_3_TYPE == 0\n info3 = computeDirectionalLighting(cc_lightDirection[3], cc_lightColor[3]);\n #elif CC_LIGHT_3_TYPE == 1\n info3 = computePointLighting(s.position, cc_lightPositionAndRange[3], cc_lightColor[3]);\n #elif CC_LIGHT_3_TYPE == 2\n info3 = computeSpotLighting(s.position, cc_lightPositionAndRange[3], cc_lightDirection[3], cc_lightColor[3]);\n #endif\n Lighting result3 = toon(s, info3);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 3\n float shadow_3 = 1.0;\n vec2 projCoords3 = v_posLightSpace[3].xy / v_posLightSpace[3].w;\n vec2 shadowUV3 = projCoords3 * 0.5 + vec2(0.5);\n if (shadowUV3.x >= 0.0 && shadowUV3.x <= 1.0 && shadowUV3.y >= 0.0 && shadowUV3.y <= 1.0) {\n float currentDepth3 = clamp(v_depth[3], 0.0, 1.0);\n #if CC_SHADOW_3_TYPE == 3\n shadow_3 = shadowPCF3X3(cc_shadow_map_3, shadowUV3, currentDepth3, cc_shadow_info[3].w, cc_shadow_info[3].z);\n #elif CC_SHADOW_3_TYPE == 4\n shadow_3 = shadowPCF5X5(cc_shadow_map_3, shadowUV3, currentDepth3, cc_shadow_info[3].w, cc_shadow_info[3].z);\n #else\n shadow_3 = shadowSimple(cc_shadow_map_3, shadowUV3, currentDepth3, cc_shadow_info[3].w);\n #endif\n shadow_3 = computeFallOff(shadow_3, projCoords3, 0.0);\n }\n result3.diffuse *= shadow_3;\n result3.specular *= shadow_3;\n #endif\n result.diffuse += result3.diffuse;\n result.specular += result3.specular;\n #endif\n #endif\n vec3 finalColor = result.diffuse + result.specular + s.emissive;\n return vec4(finalColor, s.baseColor.a);\n}\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nin vec3 v_position;\nin vec2 v_uv;\nin vec3 v_viewDirection;\nin vec3 v_normal;\n#if USE_NORMAL_MAP\n in vec3 v_tangent;\n in vec3 v_bitangent;\n uniform sampler2D normalMap;\n#endif\n#if USE_BASE_COLOR_MAP\n uniform sampler2D baseColorMap;\n#endif\n#if USE_SPECULAR_MAP\n uniform sampler2D specularMap;\n#endif\n#if USE_EMISSIVE_MAP\n uniform sampler2D emissiveMap;\n#endif\nuniform ToonFrag {\n vec4 colorScale;\n vec4 specular;\n vec4 emissive;\n vec4 shadowColor;\n vec4 highlightColor;\n float specularThreshold;\n float shadowIntensity;\n float lightThreshold;\n float lightSmoothness;\n};\nvoid surf (out ToonSurface s) {\n #if USE_BASE_COLOR_MAP\n s.baseColor = vec4(1.);\n vec4 baseColorMap_tmp = texture(baseColorMap, v_uv);\n #if CC_USE_ALPHA_ATLAS_baseColorMap\n baseColorMap_tmp.a *= texture(baseColorMap, v_uv + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n s.baseColor.rgb *= (baseColorMap_tmp.rgb * baseColorMap_tmp.rgb);\n s.baseColor.a *= baseColorMap_tmp.a;\n #else\n s.baseColor *= baseColorMap_tmp;\n #endif\n #else\n s.baseColor = highlightColor;\n #endif\n s.normal = normalize(v_normal);\n #if USE_NORMAL_MAP\n vec3 nmmp = texture2D(normalMap, v_uv).xyz - vec3(0.5);\n s.normal = normalize(\n nmmp.x * normalize(v_tangent) +\n nmmp.y * normalize(v_bitangent) +\n nmmp.z * s.normal);\n #endif\n s.position = v_position;\n s.specular = specular.rgb * specular.a;\n #if USE_SPECULAR_MAP\n vec4 specularMap_tmp = texture(specularMap, v_uv);\n #if CC_USE_ALPHA_ATLAS_specularMap\n specularMap_tmp.a *= texture(specularMap, v_uv + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n s.specular.rgb *= (specularMap_tmp.rgb * specularMap_tmp.rgb);\n #else\n s.specular.rgb *= specularMap_tmp.rgb;\n #endif\n #endif\n s.emissive = emissive.rgb;\n #if USE_EMISSIVE_MAP\n vec4 emissiveMap_tmp = texture(emissiveMap, v_uv);\n #if CC_USE_ALPHA_ATLAS_emissiveMap\n emissiveMap_tmp.a *= texture(emissiveMap, v_uv + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n s.emissive.rgb *= (emissiveMap_tmp.rgb * emissiveMap_tmp.rgb);\n #else\n s.emissive.rgb *= emissiveMap_tmp.rgb;\n #endif\n #endif\n s.lightThreshold = lightThreshold;\n s.lightSmoothness = lightSmoothness;\n s.shadowColor = shadowColor.rgb;\n s.highlightColor = highlightColor.rgb;\n s.shadowIntensity = shadowIntensity;\n s.specularThreshold = specularThreshold;\n s.viewDirection = v_viewDirection;\n}\nvec4 frag () {\n ToonSurface s;\n surf(s);\n vec4 color = CCToonShading(s);\n return CCFragOutput(color);\n}\nout vec4 cc_FragColor;\nvoid main() { cc_FragColor = frag(); }" + }, + "glsl1": { + "vert": "\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform vec4 cc_cameraPos;\nuniform mat4 cc_matWorld;\nuniform mat4 cc_matWorldIT;\n#if CC_USE_SKINNING\n attribute vec4 a_weights;\n attribute vec4 a_joints;\n #if CC_USE_JOINTS_TEXTRUE\n uniform vec2 jointsTextureSize;\n uniform sampler2D jointsTexture;\n #if CC_JOINTS_TEXTURE_FLOAT32\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 4.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = texture2D(jointsTexture, vec2(dx * (x + 0.5), y));\n vec4 v2 = texture2D(jointsTexture, vec2(dx * (x + 1.5), y));\n vec4 v3 = texture2D(jointsTexture, vec2(dx * (x + 2.5), y));\n vec4 v4 = texture2D(jointsTexture, vec2(dx * (x + 3.5), y));\n return mat4(v1, v2, v3, v4);\n }\n #else\n float decode32(vec4 rgba) {\n float Sign = 1.0 - step(128.0, rgba[0]) * 2.0;\n float Exponent = 2.0 * mod(rgba[0], 128.0) + step(128.0, rgba[1]) - 127.0;\n float Mantissa = mod(rgba[1], 128.0) * 65536.0 + rgba[2] * 256.0 + rgba[3] + 8388608.0;\n return Sign * exp2(Exponent - 23.0) * Mantissa;\n }\n vec4 decodevec4 (vec4 x, vec4 y, vec4 z, vec4 w) {\n return vec4(\n decode32(x.wzyx * 255.0),\n decode32(y.wzyx * 255.0),\n decode32(z.wzyx * 255.0),\n decode32(w.wzyx * 255.0)\n );\n }\n vec4 decodevec4 (float dx, float x, float y) {\n return decodevec4(\n texture2D(jointsTexture, vec2(dx * (x + 0.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 1.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 2.5), y)),\n texture2D(jointsTexture, vec2(dx * (x + 3.5), y))\n );\n }\n mat4 getBoneMatrix(const in float i) {\n float width = jointsTextureSize.x;\n float height = jointsTextureSize.y;\n float j = i * 16.0;\n float x = mod(j, width);\n float y = floor(j / width);\n float dx = 1.0 / width;\n float dy = 1.0 / height;\n y = dy * (y + 0.5);\n vec4 v1 = decodevec4(dx, x, y);\n vec4 v2 = decodevec4(dx, x+4.0, y);\n vec4 v3 = decodevec4(dx, x+8.0, y);\n vec4 v4 = decodevec4(dx, x+12.0, y);\n return mat4(v1, v2, v3, v4);\n }\n #endif\n #else\n uniform mat4 jointMatrices[50];\n mat4 getBoneMatrix(const in float i) {\n return jointMatrices[int(i)];\n }\n #endif\n mat4 skinMatrix() {\n return\n getBoneMatrix(a_joints.x) * a_weights.x +\n getBoneMatrix(a_joints.y) * a_weights.y +\n getBoneMatrix(a_joints.z) * a_weights.z +\n getBoneMatrix(a_joints.w) * a_weights.w\n ;\n }\n#endif\nstruct StandardVertInput {\n vec2 uv;\n vec4 position;\n vec3 normal;\n vec4 tangent;\n vec4 color;\n};\nattribute vec3 a_position;\n#if CC_USE_ATTRIBUTE_UV0\nattribute vec2 a_uv0;\n#endif\n#if CC_USE_ATTRIBUTE_COLOR\nattribute vec4 a_color;\n#endif\n#if CC_USE_ATTRIBUTE_NORMAL\nattribute vec3 a_normal;\n#endif\n#if CC_USE_ATTRIBUTE_TANGENT\nattribute vec4 a_tangent;\n#endif\nvoid CCAttribute (out StandardVertInput In) {\n In.position = vec4(a_position, 1.0);\n #if CC_USE_ATTRIBUTE_UV0\n In.uv = a_uv0;\n #else\n In.uv = vec2(0.0);\n #endif\n #if CC_USE_ATTRIBUTE_COLOR\n In.color = a_color;\n #else\n In.color = vec4(1.0);\n #endif\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = a_normal;\n #else\n In.normal = vec3(0.0, 1.0, 0.0);\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = a_tangent;\n #else\n In.tangent = vec4(1.0, 0.0, 0.0, 0.0);\n #endif\n}\nvoid CCVertInput(out StandardVertInput In) {\n CCAttribute(In);\n #if CC_USE_SKINNING\n mat4 m = skinMatrix();\n In.position = m * In.position;\n #if CC_USE_ATTRIBUTE_NORMAL\n In.normal = (m * vec4(In.normal, 0)).xyz;\n #endif\n #if CC_USE_ATTRIBUTE_TANGENT\n In.tangent = m * In.tangent;\n #endif\n #endif\n}\nvarying vec3 v_position;\nvarying vec2 v_uv;\nvarying vec3 v_normal;\nvarying vec3 v_viewDirection;\n#if USE_NORMAL_MAP\n varying vec3 v_tangent;\n varying vec3 v_bitangent;\n#endif\nuniform vec4 tilingOffset;\nvec4 vert () {\n StandardVertInput In;\n CCVertInput(In);\n vec4 pos = cc_matWorld * In.position;\n v_position = pos.xyz;\n v_uv = In.uv * tilingOffset.xy + tilingOffset.zw;\n v_viewDirection = normalize(cc_cameraPos.xyz - v_position);\n v_normal = (cc_matWorldIT * vec4(In.normal, 0.0)).xyz;\n #if USE_NORMAL_MAP\n v_tangent = normalize((cc_matWorldIT * vec4(In.tangent.xyz, 0.0)).xyz);\n v_bitangent = cross(v_normal, v_tangent) * In.tangent.w;\n #endif\n return cc_matViewProj * pos;\n}\nvoid main() { gl_Position = vert(); }", + "frag": "\nprecision highp float;\n#if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 0\n uniform vec4 cc_shadow_info[2];\n #if CC_NUM_SHADOW_LIGHTS > 0\n uniform sampler2D cc_shadow_map_0;\n #endif\n #if CC_NUM_SHADOW_LIGHTS > 1\n uniform sampler2D cc_shadow_map_1;\n #endif\n varying vec4 v_posLightSpace[2];\n varying float v_depth[2];\n#endif\nfloat unpackRGBAToDepth(vec4 color) {\n return dot(color, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 160581375.0));\n}\nfloat getDepth(sampler2D shadowMap, vec2 shadowUV) {\n return unpackRGBAToDepth(texture2D(shadowMap, shadowUV));\n}\nfloat computeFallOff(float shadow, vec2 coords, float frustumEdgeFalloff) {\n return shadow;\n}\nfloat shadowSimple(sampler2D shadowMap, vec2 shadowUV, float currentDepth, float darkness) {\n float closestDepth = getDepth(shadowMap, shadowUV);\n return currentDepth > closestDepth ? 1.0 - darkness : 1.0;\n}\nfloat shadowPCF3X3(sampler2D shadowMap, vec2 shadowUV, float currentDepth, float darkness, float shadowSize) {\n float shadow = 0.0;\n for (int x = -1; x <= 1; ++x) {\n for (int y = -1; y <= 1; ++y) {\n float closestDepth = getDepth(shadowMap, shadowUV + vec2(x, y) * 1.0/shadowSize);\n shadow += currentDepth > closestDepth ? 1.0 - darkness : 1.0;\n }\n }\n shadow /= 9.0;\n return shadow;\n}\nfloat shadowPCF5X5(sampler2D shadowMap, vec2 shadowUV, float currentDepth, float darkness, float shadowSize) {\n float shadow = 0.0;\n for (int x = -2; x <= 2; ++x) {\n for (int y = -2; y <= 2; ++y) {\n float closestDepth = getDepth(shadowMap, shadowUV + vec2(x, y) * 1.0/shadowSize);\n shadow += currentDepth > closestDepth ? 1.0 - darkness : 1.0;\n }\n }\n shadow /= 25.0;\n return shadow;\n}\n#if CC_NUM_LIGHTS > 0\nuniform vec4 cc_lightPositionAndRange[4];\nuniform vec4 cc_lightDirection[4];\nuniform vec4 cc_lightColor[4];\n#endif\nstruct LightInfo {\n vec3 lightDir;\n vec3 radiance;\n vec4 lightColor;\n};\nLightInfo computeDirectionalLighting(\n vec4 lightDirection,\n vec4 lightColor\n) {\n LightInfo ret;\n ret.lightDir = -normalize(lightDirection.xyz);\n ret.radiance = lightColor.rgb;\n ret.lightColor = lightColor;\n return ret;\n}\nLightInfo computePointLighting(\n vec3 worldPosition,\n vec4 lightPositionAndRange,\n vec4 lightColor\n) {\n LightInfo ret;\n vec3 lightDir = lightPositionAndRange.xyz - worldPosition;\n float attenuation = max(0., 1.0 - length(lightDir) / lightPositionAndRange.w);\n ret.lightDir = normalize(lightDir);\n ret.radiance = lightColor.rgb * attenuation;\n ret.lightColor = lightColor;\n return ret;\n}\nLightInfo computeSpotLighting(\n vec3 worldPosition,\n vec4 lightPositionAndRange,\n vec4 lightDirection,\n vec4 lightColor\n) {\n LightInfo ret;\n vec3 lightDir = lightPositionAndRange.xyz - worldPosition;\n float attenuation = max(0., 1.0 - length(lightDir) / lightPositionAndRange.w);\n lightDir = normalize(lightDir);\n float cosConeAngle = max(0., dot(lightDirection.xyz, -lightDir));\n cosConeAngle = cosConeAngle < lightDirection.w ? 0. : cosConeAngle;\n cosConeAngle = pow(cosConeAngle, lightColor.w);\n ret.lightDir = lightDir;\n ret.radiance = lightColor.rgb * attenuation * cosConeAngle;\n ret.lightColor = lightColor;\n return ret;\n}\nstruct Lighting {\n vec3 diffuse;\n vec3 specular;\n};\nstruct ToonSurface {\n vec4 baseColor;\n vec3 specular;\n float specularThreshold;\n vec3 position;\n vec3 normal;\n vec3 viewDirection;\n vec3 emissive;\n vec3 shadowColor;\n float shadowIntensity;\n vec3 highlightColor;\n float lightThreshold;\n float lightSmoothness;\n};\nconst float T_H = 0.25;\nfloat TreshHoldLighting(float lThreshold, float smoothness, float v) {\n return smoothstep(lThreshold-smoothness*T_H, lThreshold+smoothness*T_H, v);\n}\nLighting toon (ToonSurface s, LightInfo info) {\n Lighting result;\n vec3 N = s.normal;\n vec3 L = info.lightDir;\n vec3 V = s.viewDirection;\n vec3 H = normalize(L + V);\n float NL = 0.5 * dot(N, L) + 0.5;\n float NH = 0.5 * dot(H, N) + 0.5;\n vec3 c = vec3(0.0);\n vec3 attenuation = info.radiance;\n vec3 lightColor = info.lightColor.rgb;\n vec3 shadowColor = mix(s.highlightColor * lightColor, s.shadowColor, s.shadowIntensity);\n vec3 diffuse = TreshHoldLighting(s.lightThreshold, s.lightSmoothness, NL) * attenuation;\n diffuse = mix(shadowColor, s.highlightColor * lightColor, diffuse);\n result.diffuse = diffuse * s.baseColor.rgb;\n float specularWeight = 1.0 - pow(s.specularThreshold, 5.0);\n float specularMask = step(specularWeight, NH);\n vec3 specular = s.specular.rgb * specularMask;\n result.specular = specular * attenuation;\n return result;\n}\nvec3 ambient(ToonSurface s, vec4 ambientColor) {\n return s.baseColor.rgb * ambientColor.rgb;\n}\nvec4 CCToonShading (ToonSurface s) {\n Lighting result;\n result.diffuse = vec3(0, 0, 0);\n result.specular = vec3(0, 0, 0);\n #if CC_NUM_LIGHTS > 0\n #if CC_LIGHT_0_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[0]);\n #else\n LightInfo info0;\n #if CC_LIGHT_0_TYPE == 0\n info0 = computeDirectionalLighting(cc_lightDirection[0], cc_lightColor[0]);\n #elif CC_LIGHT_0_TYPE == 1\n info0 = computePointLighting(s.position, cc_lightPositionAndRange[0], cc_lightColor[0]);\n #elif CC_LIGHT_0_TYPE == 2\n info0 = computeSpotLighting(s.position, cc_lightPositionAndRange[0], cc_lightDirection[0], cc_lightColor[0]);\n #endif\n Lighting result0 = toon(s, info0);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 0\n float shadow_0 = 1.0;\n vec2 projCoords0 = v_posLightSpace[0].xy / v_posLightSpace[0].w;\n vec2 shadowUV0 = projCoords0 * 0.5 + vec2(0.5);\n if (shadowUV0.x >= 0.0 && shadowUV0.x <= 1.0 && shadowUV0.y >= 0.0 && shadowUV0.y <= 1.0) {\n float currentDepth0 = clamp(v_depth[0], 0.0, 1.0);\n #if CC_SHADOW_0_TYPE == 3\n shadow_0 = shadowPCF3X3(cc_shadow_map_0, shadowUV0, currentDepth0, cc_shadow_info[0].w, cc_shadow_info[0].z);\n #elif CC_SHADOW_0_TYPE == 4\n shadow_0 = shadowPCF5X5(cc_shadow_map_0, shadowUV0, currentDepth0, cc_shadow_info[0].w, cc_shadow_info[0].z);\n #else\n shadow_0 = shadowSimple(cc_shadow_map_0, shadowUV0, currentDepth0, cc_shadow_info[0].w);\n #endif\n shadow_0 = computeFallOff(shadow_0, projCoords0, 0.0);\n }\n result0.diffuse *= shadow_0;\n result0.specular *= shadow_0;\n #endif\n result.diffuse += result0.diffuse;\n result.specular += result0.specular;\n #endif\n #endif\n #if CC_NUM_LIGHTS > 1\n #if CC_LIGHT_1_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[1]);\n #else\n LightInfo info1;\n #if CC_LIGHT_1_TYPE == 0\n info1 = computeDirectionalLighting(cc_lightDirection[1], cc_lightColor[1]);\n #elif CC_LIGHT_1_TYPE == 1\n info1 = computePointLighting(s.position, cc_lightPositionAndRange[1], cc_lightColor[1]);\n #elif CC_LIGHT_1_TYPE == 2\n info1 = computeSpotLighting(s.position, cc_lightPositionAndRange[1], cc_lightDirection[1], cc_lightColor[1]);\n #endif\n Lighting result1 = toon(s, info1);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 1\n float shadow_1 = 1.0;\n vec2 projCoords1 = v_posLightSpace[1].xy / v_posLightSpace[1].w;\n vec2 shadowUV1 = projCoords1 * 0.5 + vec2(0.5);\n if (shadowUV1.x >= 0.0 && shadowUV1.x <= 1.0 && shadowUV1.y >= 0.0 && shadowUV1.y <= 1.0) {\n float currentDepth1 = clamp(v_depth[1], 0.0, 1.0);\n #if CC_SHADOW_1_TYPE == 3\n shadow_1 = shadowPCF3X3(cc_shadow_map_1, shadowUV1, currentDepth1, cc_shadow_info[1].w, cc_shadow_info[1].z);\n #elif CC_SHADOW_1_TYPE == 4\n shadow_1 = shadowPCF5X5(cc_shadow_map_1, shadowUV1, currentDepth1, cc_shadow_info[1].w, cc_shadow_info[1].z);\n #else\n shadow_1 = shadowSimple(cc_shadow_map_1, shadowUV1, currentDepth1, cc_shadow_info[1].w);\n #endif\n shadow_1 = computeFallOff(shadow_1, projCoords1, 0.0);\n }\n result1.diffuse *= shadow_1;\n result1.specular *= shadow_1;\n #endif\n result.diffuse += result1.diffuse;\n result.specular += result1.specular;\n #endif\n #endif\n #if CC_NUM_LIGHTS > 2\n #if CC_LIGHT_2_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[2]);\n #else\n LightInfo info2;\n #if CC_LIGHT_2_TYPE == 0\n info2 = computeDirectionalLighting(cc_lightDirection[2], cc_lightColor[2]);\n #elif CC_LIGHT_2_TYPE == 1\n info2 = computePointLighting(s.position, cc_lightPositionAndRange[2], cc_lightColor[2]);\n #elif CC_LIGHT_2_TYPE == 2\n info2 = computeSpotLighting(s.position, cc_lightPositionAndRange[2], cc_lightDirection[2], cc_lightColor[2]);\n #endif\n Lighting result2 = toon(s, info2);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 2\n float shadow_2 = 1.0;\n vec2 projCoords2 = v_posLightSpace[2].xy / v_posLightSpace[2].w;\n vec2 shadowUV2 = projCoords2 * 0.5 + vec2(0.5);\n if (shadowUV2.x >= 0.0 && shadowUV2.x <= 1.0 && shadowUV2.y >= 0.0 && shadowUV2.y <= 1.0) {\n float currentDepth2 = clamp(v_depth[2], 0.0, 1.0);\n #if CC_SHADOW_2_TYPE == 3\n shadow_2 = shadowPCF3X3(cc_shadow_map_2, shadowUV2, currentDepth2, cc_shadow_info[2].w, cc_shadow_info[2].z);\n #elif CC_SHADOW_2_TYPE == 4\n shadow_2 = shadowPCF5X5(cc_shadow_map_2, shadowUV2, currentDepth2, cc_shadow_info[2].w, cc_shadow_info[2].z);\n #else\n shadow_2 = shadowSimple(cc_shadow_map_2, shadowUV2, currentDepth2, cc_shadow_info[2].w);\n #endif\n shadow_2 = computeFallOff(shadow_2, projCoords2, 0.0);\n }\n result2.diffuse *= shadow_2;\n result2.specular *= shadow_2;\n #endif\n result.diffuse += result2.diffuse;\n result.specular += result2.specular;\n #endif\n #endif\n #if CC_NUM_LIGHTS > 3\n #if CC_LIGHT_3_TYPE == 3\n result.diffuse += ambient(s, cc_lightColor[3]);\n #else\n LightInfo info3;\n #if CC_LIGHT_3_TYPE == 0\n info3 = computeDirectionalLighting(cc_lightDirection[3], cc_lightColor[3]);\n #elif CC_LIGHT_3_TYPE == 1\n info3 = computePointLighting(s.position, cc_lightPositionAndRange[3], cc_lightColor[3]);\n #elif CC_LIGHT_3_TYPE == 2\n info3 = computeSpotLighting(s.position, cc_lightPositionAndRange[3], cc_lightDirection[3], cc_lightColor[3]);\n #endif\n Lighting result3 = toon(s, info3);\n #if CC_USE_SHADOW_MAP && CC_NUM_SHADOW_LIGHTS > 3\n float shadow_3 = 1.0;\n vec2 projCoords3 = v_posLightSpace[3].xy / v_posLightSpace[3].w;\n vec2 shadowUV3 = projCoords3 * 0.5 + vec2(0.5);\n if (shadowUV3.x >= 0.0 && shadowUV3.x <= 1.0 && shadowUV3.y >= 0.0 && shadowUV3.y <= 1.0) {\n float currentDepth3 = clamp(v_depth[3], 0.0, 1.0);\n #if CC_SHADOW_3_TYPE == 3\n shadow_3 = shadowPCF3X3(cc_shadow_map_3, shadowUV3, currentDepth3, cc_shadow_info[3].w, cc_shadow_info[3].z);\n #elif CC_SHADOW_3_TYPE == 4\n shadow_3 = shadowPCF5X5(cc_shadow_map_3, shadowUV3, currentDepth3, cc_shadow_info[3].w, cc_shadow_info[3].z);\n #else\n shadow_3 = shadowSimple(cc_shadow_map_3, shadowUV3, currentDepth3, cc_shadow_info[3].w);\n #endif\n shadow_3 = computeFallOff(shadow_3, projCoords3, 0.0);\n }\n result3.diffuse *= shadow_3;\n result3.specular *= shadow_3;\n #endif\n result.diffuse += result3.diffuse;\n result.specular += result3.specular;\n #endif\n #endif\n vec3 finalColor = result.diffuse + result.specular + s.emissive;\n return vec4(finalColor, s.baseColor.a);\n}\nvec4 CCFragOutput (vec4 color) {\n #if OUTPUT_TO_GAMMA\n color.rgb = sqrt(color.rgb);\n #endif\n\treturn color;\n}\nvarying vec3 v_position;\nvarying vec2 v_uv;\nvarying vec3 v_viewDirection;\nvarying vec3 v_normal;\n#if USE_NORMAL_MAP\n varying vec3 v_tangent;\n varying vec3 v_bitangent;\n uniform sampler2D normalMap;\n#endif\n#if USE_BASE_COLOR_MAP\n uniform sampler2D baseColorMap;\n#endif\n#if USE_SPECULAR_MAP\n uniform sampler2D specularMap;\n#endif\n#if USE_EMISSIVE_MAP\n uniform sampler2D emissiveMap;\n#endif\nuniform vec4 specular;\nuniform vec4 emissive;\nuniform vec4 shadowColor;\nuniform vec4 highlightColor;\nuniform float specularThreshold;\nuniform float shadowIntensity;\nuniform float lightThreshold;\nuniform float lightSmoothness;\nvoid surf (out ToonSurface s) {\n #if USE_BASE_COLOR_MAP\n s.baseColor = vec4(1.);\n vec4 baseColorMap_tmp = texture2D(baseColorMap, v_uv);\n #if CC_USE_ALPHA_ATLAS_baseColorMap\n baseColorMap_tmp.a *= texture2D(baseColorMap, v_uv + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n s.baseColor.rgb *= (baseColorMap_tmp.rgb * baseColorMap_tmp.rgb);\n s.baseColor.a *= baseColorMap_tmp.a;\n #else\n s.baseColor *= baseColorMap_tmp;\n #endif\n #else\n s.baseColor = highlightColor;\n #endif\n s.normal = normalize(v_normal);\n #if USE_NORMAL_MAP\n vec3 nmmp = texture2D(normalMap, v_uv).xyz - vec3(0.5);\n s.normal = normalize(\n nmmp.x * normalize(v_tangent) +\n nmmp.y * normalize(v_bitangent) +\n nmmp.z * s.normal);\n #endif\n s.position = v_position;\n s.specular = specular.rgb * specular.a;\n #if USE_SPECULAR_MAP\n vec4 specularMap_tmp = texture2D(specularMap, v_uv);\n #if CC_USE_ALPHA_ATLAS_specularMap\n specularMap_tmp.a *= texture2D(specularMap, v_uv + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n s.specular.rgb *= (specularMap_tmp.rgb * specularMap_tmp.rgb);\n #else\n s.specular.rgb *= specularMap_tmp.rgb;\n #endif\n #endif\n s.emissive = emissive.rgb;\n #if USE_EMISSIVE_MAP\n vec4 emissiveMap_tmp = texture2D(emissiveMap, v_uv);\n #if CC_USE_ALPHA_ATLAS_emissiveMap\n emissiveMap_tmp.a *= texture2D(emissiveMap, v_uv + vec2(0, 0.5)).r;\n #endif\n #if INPUT_IS_GAMMA\n s.emissive.rgb *= (emissiveMap_tmp.rgb * emissiveMap_tmp.rgb);\n #else\n s.emissive.rgb *= emissiveMap_tmp.rgb;\n #endif\n #endif\n s.lightThreshold = lightThreshold;\n s.lightSmoothness = lightSmoothness;\n s.shadowColor = shadowColor.rgb;\n s.highlightColor = highlightColor.rgb;\n s.shadowIntensity = shadowIntensity;\n s.specularThreshold = specularThreshold;\n s.viewDirection = v_viewDirection;\n}\nvec4 frag () {\n ToonSurface s;\n surf(s);\n vec4 color = CCToonShading(s);\n return CCFragOutput(color);\n}\nvoid main() { gl_FragColor = frag(); }" + }, + "builtins": { + "globals": { + "blocks": [ + { + "name": "CCGlobal", + "defines": [] + }, + { + "name": "CC_SHADOW", + "defines": [ + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ] + }, + { + "name": "CCLIGHTS", + "defines": [ + "CC_NUM_LIGHTS" + ] + } + ], + "samplers": [ + { + "name": "cc_shadow_map_0", + "defines": [ + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ] + }, + { + "name": "cc_shadow_map_1", + "defines": [ + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ] + } + ] + }, + "locals": { + "blocks": [ + { + "name": "CCLocal", + "defines": [] + } + ], + "samplers": [] + } + }, + "defines": [ + { + "name": "CC_USE_SKINNING", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_JOINTS_TEXTRUE", + "type": "boolean", + "defines": [ + "CC_USE_SKINNING" + ] + }, + { + "name": "CC_JOINTS_TEXTURE_FLOAT32", + "type": "boolean", + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ] + }, + { + "name": "CC_USE_ATTRIBUTE_UV0", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ATTRIBUTE_COLOR", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ATTRIBUTE_NORMAL", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ATTRIBUTE_TANGENT", + "type": "boolean", + "defines": [] + }, + { + "name": "USE_NORMAL_MAP", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_SHADOW_MAP", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_NUM_SHADOW_LIGHTS", + "type": "number", + "defines": [ + "CC_USE_SHADOW_MAP" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_NUM_LIGHTS", + "type": "number", + "defines": [], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_LIGHT_0_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_SHADOW_0_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS", + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_LIGHT_1_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_SHADOW_1_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS", + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_LIGHT_2_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_SHADOW_2_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS", + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_LIGHT_3_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "CC_SHADOW_3_TYPE", + "type": "number", + "defines": [ + "CC_NUM_LIGHTS", + "CC_USE_SHADOW_MAP", + "CC_NUM_SHADOW_LIGHTS" + ], + "range": [ + 0, + 3 + ] + }, + { + "name": "OUTPUT_TO_GAMMA", + "type": "boolean", + "defines": [] + }, + { + "name": "USE_BASE_COLOR_MAP", + "type": "boolean", + "defines": [] + }, + { + "name": "USE_SPECULAR_MAP", + "type": "boolean", + "defines": [] + }, + { + "name": "USE_EMISSIVE_MAP", + "type": "boolean", + "defines": [] + }, + { + "name": "CC_USE_ALPHA_ATLAS_baseColorMap", + "type": "boolean", + "defines": [ + "USE_BASE_COLOR_MAP" + ] + }, + { + "name": "INPUT_IS_GAMMA", + "type": "boolean", + "defines": [ + "USE_BASE_COLOR_MAP" + ] + }, + { + "name": "CC_USE_ALPHA_ATLAS_specularMap", + "type": "boolean", + "defines": [ + "USE_SPECULAR_MAP" + ] + }, + { + "name": "CC_USE_ALPHA_ATLAS_emissiveMap", + "type": "boolean", + "defines": [ + "USE_EMISSIVE_MAP" + ] + } + ], + "blocks": [ + { + "name": "SKINNING", + "members": [ + { + "name": "jointsTextureSize", + "type": 14, + "count": 1 + } + ], + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ], + "binding": 0 + }, + { + "name": "JOINT_MATRIX", + "members": [ + { + "name": "jointMatrices", + "type": 26, + "count": 50 + } + ], + "defines": [ + "CC_USE_SKINNING" + ], + "binding": 1 + }, + { + "name": "ToonVert", + "members": [ + { + "name": "tilingOffset", + "type": 16, + "count": 1 + } + ], + "defines": [], + "binding": 2 + }, + { + "name": "ToonFrag", + "members": [ + { + "name": "colorScale", + "type": 16, + "count": 1 + }, + { + "name": "specular", + "type": 16, + "count": 1 + }, + { + "name": "emissive", + "type": 16, + "count": 1 + }, + { + "name": "shadowColor", + "type": 16, + "count": 1 + }, + { + "name": "highlightColor", + "type": 16, + "count": 1 + }, + { + "name": "specularThreshold", + "type": 13, + "count": 1 + }, + { + "name": "shadowIntensity", + "type": 13, + "count": 1 + }, + { + "name": "lightThreshold", + "type": 13, + "count": 1 + }, + { + "name": "lightSmoothness", + "type": 13, + "count": 1 + } + ], + "defines": [], + "binding": 3 + } + ], + "samplers": [ + { + "name": "jointsTexture", + "type": 29, + "count": 1, + "defines": [ + "CC_USE_SKINNING", + "CC_USE_JOINTS_TEXTRUE" + ], + "binding": 30 + }, + { + "name": "normalMap", + "type": 29, + "count": 1, + "defines": [ + "USE_NORMAL_MAP" + ], + "binding": 31 + }, + { + "name": "baseColorMap", + "type": 29, + "count": 1, + "defines": [ + "USE_BASE_COLOR_MAP" + ], + "binding": 32 + }, + { + "name": "specularMap", + "type": 29, + "count": 1, + "defines": [ + "USE_SPECULAR_MAP" + ], + "binding": 33 + }, + { + "name": "emissiveMap", + "type": 29, + "count": 1, + "defines": [ + "USE_EMISSIVE_MAP" + ], + "binding": 34 + } + ], + "record": null, + "name": "builtin-toon|toon-vs:vert|toon-fs:frag" + } + ] +} \ No newline at end of file diff --git a/library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js b/library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js new file mode 100644 index 0000000..39fbf83 --- /dev/null +++ b/library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js @@ -0,0 +1,2328 @@ +"use strict"; +cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); +// Script/module/Crypto/crypto-js.min.js + +"use strict"; + +!function (t, r) { + "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r(); +}(void 0, function () { + var t = t || function (t, r) { + var e = Object.create || function () { + function t() {} + + return function (r) { + var e; + return t.prototype = r, e = new t(), t.prototype = null, e; + }; + }(), + i = {}, + n = i.lib = {}, + o = n.Base = function () { + return { + extend: function extend(t) { + var r = e(this); + return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { + r.$super.init.apply(this, arguments); + }), r.init.prototype = r, r.$super = this, r; + }, + create: function create() { + var t = this.extend(); + return t.init.apply(t, arguments), t; + }, + init: function init() {}, + mixIn: function mixIn(t) { + for (var r in t) { + t.hasOwnProperty(r) && (this[r] = t[r]); + } + + t.hasOwnProperty("toString") && (this.toString = t.toString); + }, + clone: function clone() { + return this.init.prototype.extend(this); + } + }; + }(), + s = n.WordArray = o.extend({ + init: function init(t, e) { + t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length; + }, + toString: function toString(t) { + return (t || c).stringify(this); + }, + concat: function concat(t) { + var r = this.words, + e = t.words, + i = this.sigBytes, + n = t.sigBytes; + if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { + var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; + r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8; + } else for (var o = 0; o < n; o += 4) { + r[i + o >>> 2] = e[o >>> 2]; + } + return this.sigBytes += n, this; + }, + clamp: function clamp() { + var r = this.words, + e = this.sigBytes; + r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4); + }, + clone: function clone() { + var t = o.clone.call(this); + return t.words = this.words.slice(0), t; + }, + random: function random(r) { + for (var e, i = [], n = function n(r) { + var r = r, + e = 987654321, + i = 4294967295; + return function () { + e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; + var n = (e << 16) + r & i; + return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1); + }; + }, o = 0; o < r; o += 4) { + var a = n(4294967296 * (e || t.random())); + e = 987654071 * a(), i.push(4294967296 * a() | 0); + } + + return new s.init(i, r); + } + }), + a = i.enc = {}, + c = a.Hex = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)); + } + + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i += 2) { + e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; + } + + return new s.init(e, r / 2); + } + }, + h = a.Latin1 = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push(String.fromCharCode(o)); + } + + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i++) { + e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; + } + + return new s.init(e, r); + } + }, + l = a.Utf8 = { + stringify: function stringify(t) { + try { + return decodeURIComponent(escape(h.stringify(t))); + } catch (t) { + throw new Error("Malformed UTF-8 data"); + } + }, + parse: function parse(t) { + return h.parse(unescape(encodeURIComponent(t))); + } + }, + f = n.BufferedBlockAlgorithm = o.extend({ + reset: function reset() { + this._data = new s.init(), this._nDataBytes = 0; + }, + _append: function _append(t) { + "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; + }, + _process: function _process(r) { + var e = this._data, + i = e.words, + n = e.sigBytes, + o = this.blockSize, + a = 4 * o, + c = n / a; + c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); + var h = c * o, + l = t.min(4 * h, n); + + if (h) { + for (var f = 0; f < h; f += o) { + this._doProcessBlock(i, f); + } + + var u = i.splice(0, h); + e.sigBytes -= l; + } + + return new s.init(u, l); + }, + clone: function clone() { + var t = o.clone.call(this); + return t._data = this._data.clone(), t; + }, + _minBufferSize: 0 + }), + u = (n.Hasher = f.extend({ + cfg: o.extend(), + init: function init(t) { + this.cfg = this.cfg.extend(t), this.reset(); + }, + reset: function reset() { + f.reset.call(this), this._doReset(); + }, + update: function update(t) { + return this._append(t), this._process(), this; + }, + finalize: function finalize(t) { + t && this._append(t); + + var r = this._doFinalize(); + + return r; + }, + blockSize: 16, + _createHelper: function _createHelper(t) { + return function (r, e) { + return new t.init(e).finalize(r); + }; + }, + _createHmacHelper: function _createHmacHelper(t) { + return function (r, e) { + return new u.HMAC.init(t, e).finalize(r); + }; + } + }), i.algo = {}); + + return i; + }(Math); + + return function () { + function r(t, r, e) { + for (var i = [], o = 0, s = 0; s < r; s++) { + if (s % 4) { + var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, + c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; + i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++; + } + } + + return n.create(i, o); + } + + var e = t, + i = e.lib, + n = i.WordArray, + o = e.enc; + o.Base64 = { + stringify: function stringify(t) { + var r = t.words, + e = t.sigBytes, + i = this._map; + t.clamp(); + + for (var n = [], o = 0; o < e; o += 3) { + for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++) { + n.push(i.charAt(h >>> 6 * (3 - l) & 63)); + } + } + + var f = i.charAt(64); + if (f) for (; n.length % 4;) { + n.push(f); + } + return n.join(""); + }, + parse: function parse(t) { + var e = t.length, + i = this._map, + n = this._reverseMap; + + if (!n) { + n = this._reverseMap = []; + + for (var o = 0; o < i.length; o++) { + n[i.charCodeAt(o)] = o; + } + } + + var s = i.charAt(64); + + if (s) { + var a = t.indexOf(s); + a !== -1 && (e = a); + } + + return r(t, e, n); + }, + _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" + }; + }(), function (r) { + function e(t, r, e, i, n, o, s) { + var a = t + (r & e | ~r & i) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + function i(t, r, e, i, n, o, s) { + var a = t + (r & i | e & ~i) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + function n(t, r, e, i, n, o, s) { + var a = t + (r ^ e ^ i) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + function o(t, r, e, i, n, o, s) { + var a = t + (e ^ (r | ~i)) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + var s = t, + a = s.lib, + c = a.WordArray, + h = a.Hasher, + l = s.algo, + f = []; + !function () { + for (var t = 0; t < 64; t++) { + f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0; + } + }(); + var u = l.MD5 = h.extend({ + _doReset: function _doReset() { + this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var s = 0; s < 16; s++) { + var a = r + s, + c = t[a]; + t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8); + } + + var h = this._hash.words, + l = t[r + 0], + u = t[r + 1], + d = t[r + 2], + v = t[r + 3], + p = t[r + 4], + _ = t[r + 5], + y = t[r + 6], + g = t[r + 7], + B = t[r + 8], + w = t[r + 9], + k = t[r + 10], + S = t[r + 11], + m = t[r + 12], + x = t[r + 13], + b = t[r + 14], + H = t[r + 15], + z = h[0], + A = h[1], + C = h[2], + D = h[3]; + z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = 8 * this._nDataBytes, + n = 8 * t.sigBytes; + e[n >>> 5] |= 128 << 24 - n % 32; + var o = r.floor(i / 4294967296), + s = i; + e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); + + for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { + var l = c[h]; + c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); + } + + return a; + }, + clone: function clone() { + var t = h.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u); + }(Math), function () { + var r = t, + e = r.lib, + i = e.WordArray, + n = e.Hasher, + o = r.algo, + s = [], + a = o.SHA1 = n.extend({ + _doReset: function _doReset() { + this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { + if (h < 16) s[h] = 0 | t[r + h];else { + var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; + s[h] = l << 1 | l >>> 31; + } + var f = (i << 5 | i >>> 27) + c + s[h]; + f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f; + } + + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash; + }, + clone: function clone() { + var t = n.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a); + }(), function (r) { + var e = t, + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.algo, + a = [], + c = []; + !function () { + function t(t) { + for (var e = r.sqrt(t), i = 2; i <= e; i++) { + if (!(t % i)) return !1; + } + + return !0; + } + + function e(t) { + return 4294967296 * (t - (0 | t)) | 0; + } + + for (var i = 2, n = 0; n < 64;) { + t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++; + } + }(); + var h = [], + l = s.SHA256 = o.extend({ + _doReset: function _doReset() { + this._hash = new n.init(a.slice(0)); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { + if (d < 16) h[d] = 0 | t[r + d];else { + var v = h[d - 15], + p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, + _ = h[d - 2], + y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; + h[d] = p + h[d - 7] + y + h[d - 16]; + } + var g = a & l ^ ~a & f, + B = i & n ^ i & o ^ n & o, + w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), + k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), + S = u + k + g + c[d] + h[d], + m = w + B; + u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0; + } + + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = 8 * this._nDataBytes, + n = 8 * t.sigBytes; + return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash; + }, + clone: function clone() { + var t = o.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l); + }(Math), function () { + function r(t) { + return t << 8 & 4278255360 | t >>> 8 & 16711935; + } + + var e = t, + i = e.lib, + n = i.WordArray, + o = e.enc; + o.Utf16 = o.Utf16BE = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { + var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; + i.push(String.fromCharCode(o)); + } + + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i++) { + e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; + } + + return n.create(e, 2 * r); + } + }; + o.Utf16LE = { + stringify: function stringify(t) { + for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { + var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); + n.push(String.fromCharCode(s)); + } + + return n.join(""); + }, + parse: function parse(t) { + for (var e = t.length, i = [], o = 0; o < e; o++) { + i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); + } + + return n.create(i, 2 * e); + } + }; + }(), function () { + if ("function" == typeof ArrayBuffer) { + var r = t, + e = r.lib, + i = e.WordArray, + n = i.init, + o = i.init = function (t) { + if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { + for (var r = t.byteLength, e = [], i = 0; i < r; i++) { + e[i >>> 2] |= t[i] << 24 - i % 4 * 8; + } + + n.call(this, e, r); + } else n.apply(this, arguments); + }; + + o.prototype = i; + } + }(), function (r) { + function e(t, r, e) { + return t ^ r ^ e; + } + + function i(t, r, e) { + return t & r | ~t & e; + } + + function n(t, r, e) { + return (t | ~r) ^ e; + } + + function o(t, r, e) { + return t & e | r & ~e; + } + + function s(t, r, e) { + return t ^ (r | ~e); + } + + function a(t, r) { + return t << r | t >>> 32 - r; + } + + var c = t, + h = c.lib, + l = h.WordArray, + f = h.Hasher, + u = c.algo, + d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), + v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), + p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), + _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), + y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), + g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), + B = u.RIPEMD160 = f.extend({ + _doReset: function _doReset() { + this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var c = 0; c < 16; c++) { + var h = r + c, + l = t[h]; + t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); + } + + var f, + u, + B, + w, + k, + S, + m, + x, + b, + H, + z = this._hash.words, + A = y.words, + C = g.words, + D = d.words, + R = v.words, + E = p.words, + M = _.words; + S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; + + for (var F, c = 0; c < 80; c += 1) { + F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; + } + + F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); + + for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { + var a = o[s]; + o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8); + } + + return n; + }, + clone: function clone() { + var t = f.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + + c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B); + }(Math), function () { + var r = t, + e = r.lib, + i = e.Base, + n = r.enc, + o = n.Utf8, + s = r.algo; + s.HMAC = i.extend({ + init: function init(t, r) { + t = this._hasher = new t.init(), "string" == typeof r && (r = o.parse(r)); + var e = t.blockSize, + i = 4 * e; + r.sigBytes > i && (r = t.finalize(r)), r.clamp(); + + for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++) { + a[h] ^= 1549556828, c[h] ^= 909522486; + } + + n.sigBytes = s.sigBytes = i, this.reset(); + }, + reset: function reset() { + var t = this._hasher; + t.reset(), t.update(this._iKey); + }, + update: function update(t) { + return this._hasher.update(t), this; + }, + finalize: function finalize(t) { + var r = this._hasher, + e = r.finalize(t); + r.reset(); + var i = r.finalize(this._oKey.clone().concat(e)); + return i; + } + }); + }(), function () { + var r = t, + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.SHA1, + a = o.HMAC, + c = o.PBKDF2 = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { + var u = i.update(r).finalize(s); + i.reset(); + + for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { + p = i.finalize(p), i.reset(); + + for (var y = p.words, g = 0; g < v; g++) { + d[g] ^= y[g]; + } + } + + o.concat(u), h[0]++; + } + + return o.sigBytes = 4 * l, o; + } + }); + + r.PBKDF2 = function (t, r, e) { + return c.create(e).compute(t, r); + }; + }(), function () { + var r = t, + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.MD5, + a = o.EvpKDF = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { + h && i.update(h); + var h = i.update(t).finalize(r); + i.reset(); + + for (var l = 1; l < c; l++) { + h = i.finalize(h), i.reset(); + } + + o.concat(h); + } + + return o.sigBytes = 4 * a, o; + } + }); + + r.EvpKDF = function (t, r, e) { + return a.create(e).compute(t, r); + }; + }(), function () { + var r = t, + e = r.lib, + i = e.WordArray, + n = r.algo, + o = n.SHA256, + s = n.SHA224 = o.extend({ + _doReset: function _doReset() { + this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); + }, + _doFinalize: function _doFinalize() { + var t = o._doFinalize.call(this); + + return t.sigBytes -= 4, t; + } + }); + r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s); + }(), function (r) { + var e = t, + i = e.lib, + n = i.Base, + o = i.WordArray, + s = e.x64 = {}; + s.Word = n.extend({ + init: function init(t, r) { + this.high = t, this.low = r; + } + }), s.WordArray = n.extend({ + init: function init(t, e) { + t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length; + }, + toX32: function toX32() { + for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { + var n = t[i]; + e.push(n.high), e.push(n.low); + } + + return o.create(e, this.sigBytes); + }, + clone: function clone() { + for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++) { + r[i] = r[i].clone(); + } + + return t; + } + }); + }(), function (r) { + var e = t, + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.x64, + a = s.Word, + c = e.algo, + h = [], + l = [], + f = []; + !function () { + for (var t = 1, r = 0, e = 0; e < 24; e++) { + h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; + var i = r % 5, + n = (2 * t + 3 * r) % 5; + t = i, r = n; + } + + for (var t = 0; t < 5; t++) { + for (var r = 0; r < 5; r++) { + l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; + } + } + + for (var o = 1, s = 0; s < 24; s++) { + for (var c = 0, u = 0, d = 0; d < 7; d++) { + if (1 & o) { + var v = (1 << d) - 1; + v < 32 ? u ^= 1 << v : c ^= 1 << v - 32; + } + + 128 & o ? o = o << 1 ^ 113 : o <<= 1; + } + + f[s] = a.create(c, u); + } + }(); + var u = []; + !function () { + for (var t = 0; t < 25; t++) { + u[t] = a.create(); + } + }(); + var d = c.SHA3 = o.extend({ + cfg: o.cfg.extend({ + outputLength: 512 + }), + _doReset: function _doReset() { + for (var t = this._state = [], r = 0; r < 25; r++) { + t[r] = new a.init(); + } + + this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { + var o = t[r + 2 * n], + s = t[r + 2 * n + 1]; + o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); + var a = e[n]; + a.high ^= s, a.low ^= o; + } + + for (var c = 0; c < 24; c++) { + for (var d = 0; d < 5; d++) { + for (var v = 0, p = 0, _ = 0; _ < 5; _++) { + var a = e[d + 5 * _]; + v ^= a.high, p ^= a.low; + } + + var y = u[d]; + y.high = v, y.low = p; + } + + for (var d = 0; d < 5; d++) { + for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { + var a = e[d + 5 * _]; + a.high ^= v, a.low ^= p; + } + } + + for (var S = 1; S < 25; S++) { + var a = e[S], + m = a.high, + x = a.low, + b = h[S]; + if (b < 32) var v = m << b | x >>> 32 - b, + p = x << b | m >>> 32 - b;else var v = x << b - 32 | m >>> 64 - b, + p = m << b - 32 | x >>> 64 - b; + var H = u[l[S]]; + H.high = v, H.low = p; + } + + var z = u[0], + A = e[0]; + z.high = A.high, z.low = A.low; + + for (var d = 0; d < 5; d++) { + for (var _ = 0; _ < 5; _++) { + var S = d + 5 * _, + a = e[S], + C = u[S], + D = u[(d + 1) % 5 + 5 * _], + R = u[(d + 2) % 5 + 5 * _]; + a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low; + } + } + + var a = e[0], + E = f[c]; + a.high ^= E.high, a.low ^= E.low; + } + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = (8 * this._nDataBytes, 8 * t.sigBytes), + o = 32 * this.blockSize; + e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); + + for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { + var f = s[l], + u = f.high, + d = f.low; + u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u); + } + + return new n.init(h, a); + }, + clone: function clone() { + for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++) { + r[e] = r[e].clone(); + } + + return t; + } + }); + e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d); + }(Math), function () { + function r() { + return s.create.apply(s, arguments); + } + + var e = t, + i = e.lib, + n = i.Hasher, + o = e.x64, + s = o.Word, + a = o.WordArray, + c = e.algo, + h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], + l = []; + !function () { + for (var t = 0; t < 80; t++) { + l[t] = r(); + } + }(); + var f = c.SHA512 = n.extend({ + _doReset: function _doReset() { + this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { + var Z = l[T]; + if (T < 16) var q = Z.high = 0 | t[r + 2 * T], + G = Z.low = 0 | t[r + 2 * T + 1];else { + var J = l[T - 15], + $ = J.high, + Q = J.low, + V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, + Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), + tt = l[T - 2], + rt = tt.high, + et = tt.low, + it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, + nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), + ot = l[T - 7], + st = ot.high, + at = ot.low, + ct = l[T - 16], + ht = ct.high, + lt = ct.low, + G = Y + at, + q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), + G = G + nt, + q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), + G = G + lt, + q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); + Z.high = q, Z.low = G; + } + + var ft = O & I ^ ~O & X, + ut = U & K ^ ~U & L, + dt = C & R ^ C & M ^ R & M, + vt = D & E ^ D & F ^ E & F, + pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), + _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), + yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), + gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), + Bt = h[T], + wt = Bt.high, + kt = Bt.low, + St = N + gt, + mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), + St = St + ut, + mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), + St = St + kt, + mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), + St = St + G, + mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), + xt = _t + vt, + bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); + + j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0; + } + + v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0); + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); + + var n = this._hash.toX32(); + + return n; + }, + clone: function clone() { + var t = n.clone.call(this); + return t._hash = this._hash.clone(), t; + }, + blockSize: 32 + }); + e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f); + }(), function () { + var r = t, + e = r.x64, + i = e.Word, + n = e.WordArray, + o = r.algo, + s = o.SHA512, + a = o.SHA384 = s.extend({ + _doReset: function _doReset() { + this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]); + }, + _doFinalize: function _doFinalize() { + var t = s._doFinalize.call(this); + + return t.sigBytes -= 16, t; + } + }); + r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a); + }(), t.lib.Cipher || function (r) { + var e = t, + i = e.lib, + n = i.Base, + o = i.WordArray, + s = i.BufferedBlockAlgorithm, + a = e.enc, + c = (a.Utf8, a.Base64), + h = e.algo, + l = h.EvpKDF, + f = i.Cipher = s.extend({ + cfg: n.extend(), + createEncryptor: function createEncryptor(t, r) { + return this.create(this._ENC_XFORM_MODE, t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.create(this._DEC_XFORM_MODE, t, r); + }, + init: function init(t, r, e) { + this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset(); + }, + reset: function reset() { + s.reset.call(this), this._doReset(); + }, + process: function process(t) { + return this._append(t), this._process(); + }, + finalize: function finalize(t) { + t && this._append(t); + + var r = this._doFinalize(); + + return r; + }, + keySize: 4, + ivSize: 4, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: function () { + function t(t) { + return "string" == typeof t ? m : w; + } + + return function (r) { + return { + encrypt: function encrypt(e, i, n) { + return t(i).encrypt(r, e, i, n); + }, + decrypt: function decrypt(e, i, n) { + return t(i).decrypt(r, e, i, n); + } + }; + }; + }() + }), + u = (i.StreamCipher = f.extend({ + _doFinalize: function _doFinalize() { + var t = this._process(!0); + + return t; + }, + blockSize: 1 + }), e.mode = {}), + d = i.BlockCipherMode = n.extend({ + createEncryptor: function createEncryptor(t, r) { + return this.Encryptor.create(t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.Decryptor.create(t, r); + }, + init: function init(t, r) { + this._cipher = t, this._iv = r; + } + }), + v = u.CBC = function () { + function t(t, e, i) { + var n = this._iv; + + if (n) { + var o = n; + this._iv = r; + } else var o = this._prevBlock; + + for (var s = 0; s < i; s++) { + t[e + s] ^= o[s]; + } + } + + var e = d.extend(); + return e.Encryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, + n = i.blockSize; + t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n); + } + }), e.Decryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, + n = i.blockSize, + o = r.slice(e, e + n); + i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o; + } + }), e; + }(), + p = e.pad = {}, + _ = p.Pkcs7 = { + pad: function pad(t, r) { + for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4) { + s.push(n); + } + + var c = o.create(s, i); + t.concat(c); + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, + y = (i.BlockCipher = f.extend({ + cfg: f.cfg.extend({ + mode: v, + padding: _ + }), + reset: function reset() { + f.reset.call(this); + var t = this.cfg, + r = t.iv, + e = t.mode; + if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor;else { + var i = e.createDecryptor; + this._minBufferSize = 1; + } + this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + this._mode.processBlock(t, r); + }, + _doFinalize: function _doFinalize() { + var t = this.cfg.padding; + + if (this._xformMode == this._ENC_XFORM_MODE) { + t.pad(this._data, this.blockSize); + + var r = this._process(!0); + } else { + var r = this._process(!0); + + t.unpad(r); + } + + return r; + }, + blockSize: 4 + }), i.CipherParams = n.extend({ + init: function init(t) { + this.mixIn(t); + }, + toString: function toString(t) { + return (t || this.formatter).stringify(this); + } + })), + g = e.format = {}, + B = g.OpenSSL = { + stringify: function stringify(t) { + var r = t.ciphertext, + e = t.salt; + if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r);else var i = r; + return i.toString(c); + }, + parse: function parse(t) { + var r = c.parse(t), + e = r.words; + + if (1398893684 == e[0] && 1701076831 == e[1]) { + var i = o.create(e.slice(2, 4)); + e.splice(0, 4), r.sigBytes -= 16; + } + + return y.create({ + ciphertext: r, + salt: i + }); + } + }, + w = i.SerializableCipher = n.extend({ + cfg: n.extend({ + format: B + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = t.createEncryptor(e, i), + o = n.finalize(r), + s = n.cfg; + return y.create({ + ciphertext: o, + key: e, + iv: s.iv, + algorithm: t, + mode: s.mode, + padding: s.padding, + blockSize: t.blockSize, + formatter: i.format + }); + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = t.createDecryptor(e, i).finalize(r.ciphertext); + return n; + }, + _parse: function _parse(t, r) { + return "string" == typeof t ? r.parse(t, this) : t; + } + }), + k = e.kdf = {}, + S = k.OpenSSL = { + execute: function execute(t, r, e, i) { + i || (i = o.random(8)); + var n = l.create({ + keySize: r + e + }).compute(t, i), + s = o.create(n.words.slice(r), 4 * e); + return n.sigBytes = 4 * r, y.create({ + key: n, + iv: s, + salt: i + }); + } + }, + m = i.PasswordBasedCipher = w.extend({ + cfg: w.cfg.extend({ + kdf: S + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = i.kdf.execute(e, t.keySize, t.ivSize); + i.iv = n.iv; + var o = w.encrypt.call(this, t, r, n.key, i); + return o.mixIn(n), o; + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); + i.iv = n.iv; + var o = w.decrypt.call(this, t, r, n.key, i); + return o; + } + }); + }(), t.mode.CFB = function () { + function r(t, r, e, i) { + var n = this._iv; + + if (n) { + var o = n.slice(0); + this._iv = void 0; + } else var o = this._prevBlock; + + i.encryptBlock(o, 0); + + for (var s = 0; s < e; s++) { + t[r + s] ^= o[s]; + } + } + + var e = t.lib.BlockCipherMode.extend(); + return e.Encryptor = e.extend({ + processBlock: function processBlock(t, e) { + var i = this._cipher, + n = i.blockSize; + r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n); + } + }), e.Decryptor = e.extend({ + processBlock: function processBlock(t, e) { + var i = this._cipher, + n = i.blockSize, + o = t.slice(e, e + n); + r.call(this, t, e, n, i), this._prevBlock = o; + } + }), e; + }(), t.mode.ECB = function () { + var r = t.lib.BlockCipherMode.extend(); + return r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + this._cipher.encryptBlock(t, r); + } + }), r.Decryptor = r.extend({ + processBlock: function processBlock(t, r) { + this._cipher.decryptBlock(t, r); + } + }), r; + }(), t.pad.AnsiX923 = { + pad: function pad(t, r) { + var e = t.sigBytes, + i = 4 * r, + n = i - e % i, + o = e + n - 1; + t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n; + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, t.pad.Iso10126 = { + pad: function pad(r, e) { + var i = 4 * e, + n = i - r.sigBytes % i; + r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)); + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, t.pad.Iso97971 = { + pad: function pad(r, e) { + r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e); + }, + unpad: function unpad(r) { + t.pad.ZeroPadding.unpad(r), r.sigBytes--; + } + }, t.mode.OFB = function () { + var r = t.lib.BlockCipherMode.extend(), + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, + i = e.blockSize, + n = this._iv, + o = this._keystream; + n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); + + for (var s = 0; s < i; s++) { + t[r + s] ^= o[s]; + } + } + }); + return r.Decryptor = e, r; + }(), t.pad.NoPadding = { + pad: function pad() {}, + unpad: function unpad() {} + }, function (r) { + var e = t, + i = e.lib, + n = i.CipherParams, + o = e.enc, + s = o.Hex, + a = e.format; + a.Hex = { + stringify: function stringify(t) { + return t.ciphertext.toString(s); + }, + parse: function parse(t) { + var r = s.parse(t); + return n.create({ + ciphertext: r + }); + } + }; + }(), function () { + var r = t, + e = r.lib, + i = e.BlockCipher, + n = r.algo, + o = [], + s = [], + a = [], + c = [], + h = [], + l = [], + f = [], + u = [], + d = [], + v = []; + !function () { + for (var t = [], r = 0; r < 256; r++) { + r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; + } + + for (var e = 0, i = 0, r = 0; r < 256; r++) { + var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; + n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; + var p = t[e], + _ = t[p], + y = t[_], + g = 257 * t[n] ^ 16843008 * n; + a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; + var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; + f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1; + } + }(); + + var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], + _ = n.AES = i.extend({ + _doReset: function _doReset() { + if (!this._nRounds || this._keyPriorReset !== this._key) { + for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++) { + if (a < e) s[a] = r[a];else { + var c = s[a - 1]; + a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c; + } + } + + for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { + var a = n - l; + if (l % 4) var c = s[a];else var c = s[a - 4]; + l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]]; + } + } + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o); + }, + decryptBlock: function decryptBlock(t, r) { + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e; + }, + _doCryptBlock: function _doCryptBlock(t, r, e, i, n, o, s, a) { + for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { + var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], + _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], + y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], + g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; + + h = p, l = _, f = y, u = g; + } + + var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], + _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], + y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], + g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; + + t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g; + }, + keySize: 8 + }); + + r.AES = i._createHelper(_); + }(), function () { + function r(t, r) { + var e = (this._lBlock >>> t ^ this._rBlock) & r; + this._rBlock ^= e, this._lBlock ^= e << t; + } + + function e(t, r) { + var e = (this._rBlock >>> t ^ this._lBlock) & r; + this._lBlock ^= e, this._rBlock ^= e << t; + } + + var i = t, + n = i.lib, + o = n.WordArray, + s = n.BlockCipher, + a = i.algo, + c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], + h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], + l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], + f = [{ + 0: 8421888, + 268435456: 32768, + 536870912: 8421378, + 805306368: 2, + 1073741824: 512, + 1342177280: 8421890, + 1610612736: 8389122, + 1879048192: 8388608, + 2147483648: 514, + 2415919104: 8389120, + 2684354560: 33280, + 2952790016: 8421376, + 3221225472: 32770, + 3489660928: 8388610, + 3758096384: 0, + 4026531840: 33282, + 134217728: 0, + 402653184: 8421890, + 671088640: 33282, + 939524096: 32768, + 1207959552: 8421888, + 1476395008: 512, + 1744830464: 8421378, + 2013265920: 2, + 2281701376: 8389120, + 2550136832: 33280, + 2818572288: 8421376, + 3087007744: 8389122, + 3355443200: 8388610, + 3623878656: 32770, + 3892314112: 514, + 4160749568: 8388608, + 1: 32768, + 268435457: 2, + 536870913: 8421888, + 805306369: 8388608, + 1073741825: 8421378, + 1342177281: 33280, + 1610612737: 512, + 1879048193: 8389122, + 2147483649: 8421890, + 2415919105: 8421376, + 2684354561: 8388610, + 2952790017: 33282, + 3221225473: 514, + 3489660929: 8389120, + 3758096385: 32770, + 4026531841: 0, + 134217729: 8421890, + 402653185: 8421376, + 671088641: 8388608, + 939524097: 512, + 1207959553: 32768, + 1476395009: 8388610, + 1744830465: 2, + 2013265921: 33282, + 2281701377: 32770, + 2550136833: 8389122, + 2818572289: 514, + 3087007745: 8421888, + 3355443201: 8389120, + 3623878657: 0, + 3892314113: 33280, + 4160749569: 8421378 + }, { + 0: 1074282512, + 16777216: 16384, + 33554432: 524288, + 50331648: 1074266128, + 67108864: 1073741840, + 83886080: 1074282496, + 100663296: 1073758208, + 117440512: 16, + 134217728: 540672, + 150994944: 1073758224, + 167772160: 1073741824, + 184549376: 540688, + 201326592: 524304, + 218103808: 0, + 234881024: 16400, + 251658240: 1074266112, + 8388608: 1073758208, + 25165824: 540688, + 41943040: 16, + 58720256: 1073758224, + 75497472: 1074282512, + 92274688: 1073741824, + 109051904: 524288, + 125829120: 1074266128, + 142606336: 524304, + 159383552: 0, + 176160768: 16384, + 192937984: 1074266112, + 209715200: 1073741840, + 226492416: 540672, + 243269632: 1074282496, + 260046848: 16400, + 268435456: 0, + 285212672: 1074266128, + 301989888: 1073758224, + 318767104: 1074282496, + 335544320: 1074266112, + 352321536: 16, + 369098752: 540688, + 385875968: 16384, + 402653184: 16400, + 419430400: 524288, + 436207616: 524304, + 452984832: 1073741840, + 469762048: 540672, + 486539264: 1073758208, + 503316480: 1073741824, + 520093696: 1074282512, + 276824064: 540688, + 293601280: 524288, + 310378496: 1074266112, + 327155712: 16384, + 343932928: 1073758208, + 360710144: 1074282512, + 377487360: 16, + 394264576: 1073741824, + 411041792: 1074282496, + 427819008: 1073741840, + 444596224: 1073758224, + 461373440: 524304, + 478150656: 0, + 494927872: 16400, + 511705088: 1074266128, + 528482304: 540672 + }, { + 0: 260, + 1048576: 0, + 2097152: 67109120, + 3145728: 65796, + 4194304: 65540, + 5242880: 67108868, + 6291456: 67174660, + 7340032: 67174400, + 8388608: 67108864, + 9437184: 67174656, + 10485760: 65792, + 11534336: 67174404, + 12582912: 67109124, + 13631488: 65536, + 14680064: 4, + 15728640: 256, + 524288: 67174656, + 1572864: 67174404, + 2621440: 0, + 3670016: 67109120, + 4718592: 67108868, + 5767168: 65536, + 6815744: 65540, + 7864320: 260, + 8912896: 4, + 9961472: 256, + 11010048: 67174400, + 12058624: 65796, + 13107200: 65792, + 14155776: 67109124, + 15204352: 67174660, + 16252928: 67108864, + 16777216: 67174656, + 17825792: 65540, + 18874368: 65536, + 19922944: 67109120, + 20971520: 256, + 22020096: 67174660, + 23068672: 67108868, + 24117248: 0, + 25165824: 67109124, + 26214400: 67108864, + 27262976: 4, + 28311552: 65792, + 29360128: 67174400, + 30408704: 260, + 31457280: 65796, + 32505856: 67174404, + 17301504: 67108864, + 18350080: 260, + 19398656: 67174656, + 20447232: 0, + 21495808: 65540, + 22544384: 67109120, + 23592960: 256, + 24641536: 67174404, + 25690112: 65536, + 26738688: 67174660, + 27787264: 65796, + 28835840: 67108868, + 29884416: 67109124, + 30932992: 67174400, + 31981568: 4, + 33030144: 65792 + }, { + 0: 2151682048, + 65536: 2147487808, + 131072: 4198464, + 196608: 2151677952, + 262144: 0, + 327680: 4198400, + 393216: 2147483712, + 458752: 4194368, + 524288: 2147483648, + 589824: 4194304, + 655360: 64, + 720896: 2147487744, + 786432: 2151678016, + 851968: 4160, + 917504: 4096, + 983040: 2151682112, + 32768: 2147487808, + 98304: 64, + 163840: 2151678016, + 229376: 2147487744, + 294912: 4198400, + 360448: 2151682112, + 425984: 0, + 491520: 2151677952, + 557056: 4096, + 622592: 2151682048, + 688128: 4194304, + 753664: 4160, + 819200: 2147483648, + 884736: 4194368, + 950272: 4198464, + 1015808: 2147483712, + 1048576: 4194368, + 1114112: 4198400, + 1179648: 2147483712, + 1245184: 0, + 1310720: 4160, + 1376256: 2151678016, + 1441792: 2151682048, + 1507328: 2147487808, + 1572864: 2151682112, + 1638400: 2147483648, + 1703936: 2151677952, + 1769472: 4198464, + 1835008: 2147487744, + 1900544: 4194304, + 1966080: 64, + 2031616: 4096, + 1081344: 2151677952, + 1146880: 2151682112, + 1212416: 0, + 1277952: 4198400, + 1343488: 4194368, + 1409024: 2147483648, + 1474560: 2147487808, + 1540096: 64, + 1605632: 2147483712, + 1671168: 4096, + 1736704: 2147487744, + 1802240: 2151678016, + 1867776: 4160, + 1933312: 2151682048, + 1998848: 4194304, + 2064384: 4198464 + }, { + 0: 128, + 4096: 17039360, + 8192: 262144, + 12288: 536870912, + 16384: 537133184, + 20480: 16777344, + 24576: 553648256, + 28672: 262272, + 32768: 16777216, + 36864: 537133056, + 40960: 536871040, + 45056: 553910400, + 49152: 553910272, + 53248: 0, + 57344: 17039488, + 61440: 553648128, + 2048: 17039488, + 6144: 553648256, + 10240: 128, + 14336: 17039360, + 18432: 262144, + 22528: 537133184, + 26624: 553910272, + 30720: 536870912, + 34816: 537133056, + 38912: 0, + 43008: 553910400, + 47104: 16777344, + 51200: 536871040, + 55296: 553648128, + 59392: 16777216, + 63488: 262272, + 65536: 262144, + 69632: 128, + 73728: 536870912, + 77824: 553648256, + 81920: 16777344, + 86016: 553910272, + 90112: 537133184, + 94208: 16777216, + 98304: 553910400, + 102400: 553648128, + 106496: 17039360, + 110592: 537133056, + 114688: 262272, + 118784: 536871040, + 122880: 0, + 126976: 17039488, + 67584: 553648256, + 71680: 16777216, + 75776: 17039360, + 79872: 537133184, + 83968: 536870912, + 88064: 17039488, + 92160: 128, + 96256: 553910272, + 100352: 262272, + 104448: 553910400, + 108544: 0, + 112640: 553648128, + 116736: 16777344, + 120832: 262144, + 124928: 537133056, + 129024: 536871040 + }, { + 0: 268435464, + 256: 8192, + 512: 270532608, + 768: 270540808, + 1024: 268443648, + 1280: 2097152, + 1536: 2097160, + 1792: 268435456, + 2048: 0, + 2304: 268443656, + 2560: 2105344, + 2816: 8, + 3072: 270532616, + 3328: 2105352, + 3584: 8200, + 3840: 270540800, + 128: 270532608, + 384: 270540808, + 640: 8, + 896: 2097152, + 1152: 2105352, + 1408: 268435464, + 1664: 268443648, + 1920: 8200, + 2176: 2097160, + 2432: 8192, + 2688: 268443656, + 2944: 270532616, + 3200: 0, + 3456: 270540800, + 3712: 2105344, + 3968: 268435456, + 4096: 268443648, + 4352: 270532616, + 4608: 270540808, + 4864: 8200, + 5120: 2097152, + 5376: 268435456, + 5632: 268435464, + 5888: 2105344, + 6144: 2105352, + 6400: 0, + 6656: 8, + 6912: 270532608, + 7168: 8192, + 7424: 268443656, + 7680: 270540800, + 7936: 2097160, + 4224: 8, + 4480: 2105344, + 4736: 2097152, + 4992: 268435464, + 5248: 268443648, + 5504: 8200, + 5760: 270540808, + 6016: 270532608, + 6272: 270540800, + 6528: 270532616, + 6784: 8192, + 7040: 2105352, + 7296: 2097160, + 7552: 0, + 7808: 268435456, + 8064: 268443656 + }, { + 0: 1048576, + 16: 33555457, + 32: 1024, + 48: 1049601, + 64: 34604033, + 80: 0, + 96: 1, + 112: 34603009, + 128: 33555456, + 144: 1048577, + 160: 33554433, + 176: 34604032, + 192: 34603008, + 208: 1025, + 224: 1049600, + 240: 33554432, + 8: 34603009, + 24: 0, + 40: 33555457, + 56: 34604032, + 72: 1048576, + 88: 33554433, + 104: 33554432, + 120: 1025, + 136: 1049601, + 152: 33555456, + 168: 34603008, + 184: 1048577, + 200: 1024, + 216: 34604033, + 232: 1, + 248: 1049600, + 256: 33554432, + 272: 1048576, + 288: 33555457, + 304: 34603009, + 320: 1048577, + 336: 33555456, + 352: 34604032, + 368: 1049601, + 384: 1025, + 400: 34604033, + 416: 1049600, + 432: 1, + 448: 0, + 464: 34603008, + 480: 33554433, + 496: 1024, + 264: 1049600, + 280: 33555457, + 296: 34603009, + 312: 1, + 328: 33554432, + 344: 1048576, + 360: 1025, + 376: 34604032, + 392: 33554433, + 408: 34603008, + 424: 0, + 440: 34604033, + 456: 1049601, + 472: 1024, + 488: 33555456, + 504: 1048577 + }, { + 0: 134219808, + 1: 131072, + 2: 134217728, + 3: 32, + 4: 131104, + 5: 134350880, + 6: 134350848, + 7: 2048, + 8: 134348800, + 9: 134219776, + 10: 133120, + 11: 134348832, + 12: 2080, + 13: 0, + 14: 134217760, + 15: 133152, + 2147483648: 2048, + 2147483649: 134350880, + 2147483650: 134219808, + 2147483651: 134217728, + 2147483652: 134348800, + 2147483653: 133120, + 2147483654: 133152, + 2147483655: 32, + 2147483656: 134217760, + 2147483657: 2080, + 2147483658: 131104, + 2147483659: 134350848, + 2147483660: 0, + 2147483661: 134348832, + 2147483662: 134219776, + 2147483663: 131072, + 16: 133152, + 17: 134350848, + 18: 32, + 19: 2048, + 20: 134219776, + 21: 134217760, + 22: 134348832, + 23: 131072, + 24: 0, + 25: 131104, + 26: 134348800, + 27: 134219808, + 28: 134350880, + 29: 133120, + 30: 2080, + 31: 134217728, + 2147483664: 131072, + 2147483665: 2048, + 2147483666: 134348832, + 2147483667: 133152, + 2147483668: 32, + 2147483669: 134348800, + 2147483670: 134217728, + 2147483671: 134219808, + 2147483672: 134350880, + 2147483673: 134217760, + 2147483674: 134219776, + 2147483675: 0, + 2147483676: 133120, + 2147483677: 2080, + 2147483678: 131104, + 2147483679: 134350848 + }], + u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], + d = a.DES = s.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { + var n = c[i] - 1; + e[i] = r[n >>> 5] >>> 31 - n % 32 & 1; + } + + for (var o = this._subKeys = [], s = 0; s < 16; s++) { + for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++) { + a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; + } + + a[0] = a[0] << 1 | a[0] >>> 31; + + for (var i = 1; i < 7; i++) { + a[i] = a[i] >>> 4 * (i - 1) + 3; + } + + a[7] = a[7] << 5 | a[7] >>> 27; + } + + for (var u = this._invSubKeys = [], i = 0; i < 16; i++) { + u[i] = o[15 - i]; + } + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._subKeys); + }, + decryptBlock: function decryptBlock(t, r) { + this._doCryptBlock(t, r, this._invSubKeys); + }, + _doCryptBlock: function _doCryptBlock(t, i, n) { + this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); + + for (var o = 0; o < 16; o++) { + for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++) { + h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; + } + + this._lBlock = c, this._rBlock = a ^ h; + } + + var d = this._lBlock; + this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock; + }, + keySize: 2, + ivSize: 2, + blockSize: 2 + }); + i.DES = s._createHelper(d); + var v = a.TripleDES = s.extend({ + _doReset: function _doReset() { + var t = this._key, + r = t.words; + this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))); + }, + encryptBlock: function encryptBlock(t, r) { + this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r); + }, + decryptBlock: function decryptBlock(t, r) { + this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r); + }, + keySize: 6, + ivSize: 2, + blockSize: 2 + }); + i.TripleDES = s._createHelper(v); + }(), function () { + function r() { + for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { + r = (r + 1) % 256, e = (e + t[r]) % 256; + var o = t[r]; + t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n; + } + + return this._i = r, this._j = e, i; + } + + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = o.RC4 = n.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++) { + i[n] = n; + } + + for (var n = 0, o = 0; n < 256; n++) { + var s = n % e, + a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; + o = (o + i[n] + a) % 256; + var c = i[n]; + i[n] = i[o], i[o] = c; + } + + this._i = this._j = 0; + }, + _doProcessBlock: function _doProcessBlock(t, e) { + t[e] ^= r.call(this); + }, + keySize: 8, + ivSize: 0 + }); + e.RC4 = n._createHelper(s); + var a = o.RC4Drop = s.extend({ + cfg: s.cfg.extend({ + drop: 192 + }), + _doReset: function _doReset() { + s._doReset.call(this); + + for (var t = this.cfg.drop; t > 0; t--) { + r.call(this); + } + } + }); + e.RC4Drop = n._createHelper(a); + }(), t.mode.CTRGladman = function () { + function r(t) { + if (255 === (t >> 24 & 255)) { + var r = t >> 16 & 255, + e = t >> 8 & 255, + i = 255 & t; + 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i; + } else t += 1 << 24; + + return t; + } + + function e(t) { + return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t; + } + + var i = t.lib.BlockCipherMode.extend(), + n = i.Encryptor = i.extend({ + processBlock: function processBlock(t, r) { + var i = this._cipher, + n = i.blockSize, + o = this._iv, + s = this._counter; + o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); + var a = s.slice(0); + i.encryptBlock(a, 0); + + for (var c = 0; c < n; c++) { + t[r + c] ^= a[c]; + } + } + }); + return i.Decryptor = n, i; + }(), function () { + function r() { + for (var t = this._X, r = this._C, e = 0; e < 8; e++) { + a[e] = r[e]; + } + + r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; + + for (var e = 0; e < 8; e++) { + var i = t[e] + r[e], + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + c[e] = s ^ h; + } + + t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; + } + + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.Rabbit = n.extend({ + _doReset: function _doReset() { + for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++) { + t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); + } + + var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], + o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; + this._b = 0; + + for (var i = 0; i < 4; i++) { + r.call(this); + } + + for (var i = 0; i < 8; i++) { + o[i] ^= n[i + 4 & 7]; + } + + if (e) { + var s = e.words, + a = s[0], + c = s[1], + h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), + l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), + f = h >>> 16 | 4294901760 & l, + u = l << 16 | 65535 & h; + o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; + + for (var i = 0; i < 4; i++) { + r.call(this); + } + } + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + + for (var n = 0; n < 4; n++) { + s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + } + }, + blockSize: 4, + ivSize: 2 + }); + e.Rabbit = n._createHelper(h); + }(), t.mode.CTR = function () { + var r = t.lib.BlockCipherMode.extend(), + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, + i = e.blockSize, + n = this._iv, + o = this._counter; + n && (o = this._counter = n.slice(0), this._iv = void 0); + var s = o.slice(0); + e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; + + for (var a = 0; a < i; a++) { + t[r + a] ^= s[a]; + } + } + }); + return r.Decryptor = e, r; + }(), function () { + function r() { + for (var t = this._X, r = this._C, e = 0; e < 8; e++) { + a[e] = r[e]; + } + + r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; + + for (var e = 0; e < 8; e++) { + var i = t[e] + r[e], + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + c[e] = s ^ h; + } + + t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; + } + + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.RabbitLegacy = n.extend({ + _doReset: function _doReset() { + var t = this._key.words, + e = this.cfg.iv, + i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], + n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; + this._b = 0; + + for (var o = 0; o < 4; o++) { + r.call(this); + } + + for (var o = 0; o < 8; o++) { + n[o] ^= i[o + 4 & 7]; + } + + if (e) { + var s = e.words, + a = s[0], + c = s[1], + h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), + l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), + f = h >>> 16 | 4294901760 & l, + u = l << 16 | 65535 & h; + n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; + + for (var o = 0; o < 4; o++) { + r.call(this); + } + } + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + + for (var n = 0; n < 4; n++) { + s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + } + }, + blockSize: 4, + ivSize: 2 + }); + e.RabbitLegacy = n._createHelper(h); + }(), t.pad.ZeroPadding = { + pad: function pad(t, r) { + var e = 4 * r; + t.clamp(), t.sigBytes += e - (t.sigBytes % e || e); + }, + unpad: function unpad(t) { + for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);) { + e--; + } + + t.sigBytes = e + 1; + } + }, t; +}); //# sourceMappingURL=crypto-js.min.js.map + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js.map b/library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js.map new file mode 100644 index 0000000..baf63da --- /dev/null +++ b/library/imports/e6/e64e1a97-c93f-4257-ab34-80341d8ff79d.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Crypto\\crypto-js.min.js"],"names":["t","r","exports","module","define","amd","CryptoJS","e","Object","create","prototype","i","n","lib","o","Base","extend","mixIn","hasOwnProperty","init","$super","apply","arguments","toString","clone","s","WordArray","words","sigBytes","length","c","stringify","concat","clamp","ceil","call","slice","random","a","push","enc","Hex","join","parse","parseInt","substr","h","Latin1","String","fromCharCode","charCodeAt","l","Utf8","decodeURIComponent","escape","Error","unescape","encodeURIComponent","f","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","u","splice","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","Math","Base64","_map","charAt","_reverseMap","indexOf","abs","sin","MD5","_hash","d","v","p","_","y","g","B","w","k","S","m","x","b","H","z","A","C","D","floor","HmacMD5","SHA1","HmacSHA1","sqrt","pow","SHA256","HmacSHA256","Utf16","Utf16BE","Utf16LE","ArrayBuffer","Uint8Array","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","buffer","byteOffset","byteLength","RIPEMD160","R","E","M","F","HmacRIPEMD160","_hasher","_oKey","_iKey","PBKDF2","keySize","hasher","iterations","compute","EvpKDF","SHA224","HmacSHA224","x64","Word","high","low","toX32","SHA3","outputLength","_state","HmacSHA3","SHA512","P","W","O","U","I","K","X","L","j","N","T","Z","q","G","J","$","Q","V","Y","tt","rt","et","it","nt","ot","st","at","ct","ht","lt","ft","ut","dt","vt","pt","_t","yt","gt","Bt","wt","kt","St","mt","xt","bt","HmacSHA512","SHA384","HmacSHA384","Cipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","_xformMode","_key","process","ivSize","encrypt","decrypt","StreamCipher","mode","BlockCipherMode","Encryptor","Decryptor","_cipher","_iv","CBC","_prevBlock","processBlock","encryptBlock","decryptBlock","pad","Pkcs7","unpad","BlockCipher","padding","iv","_mode","__creator","CipherParams","formatter","format","OpenSSL","ciphertext","salt","SerializableCipher","key","algorithm","_parse","kdf","execute","PasswordBasedCipher","CFB","ECB","AnsiX923","Iso10126","Iso97971","ZeroPadding","OFB","_keystream","NoPadding","AES","_nRounds","_keyPriorReset","_keySchedule","_invKeySchedule","_doCryptBlock","_lBlock","_rBlock","DES","_subKeys","_invSubKeys","TripleDES","_des1","_des2","_des3","_S","_i","_j","RC4","RC4Drop","drop","CTRGladman","_counter","_X","_C","_b","Rabbit","CTR","RabbitLegacy"],"mappings":"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","sourceRoot":"/","sourcesContent":["!function(t,r){\"object\"==typeof exports?module.exports=exports=r():\"function\"==typeof define&&define.amd?define([],r):t.CryptoJS=r()}(this,function(){var t=t||function(t,r){var e=Object.create||function(){function t(){}return function(r){var e;return t.prototype=r,e=new t,t.prototype=null,e}}(),i={},n=i.lib={},o=n.Base=function(){return{extend:function(t){var r=e(this);return t&&r.mixIn(t),r.hasOwnProperty(\"init\")&&this.init!==r.init||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r]);t.hasOwnProperty(\"toString\")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),s=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],e!=r?this.sigBytes=e:this.sigBytes=4*t.length},toString:function(t){return(t||c).stringify(this)},concat:function(t){var r=this.words,e=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;r[i+o>>>2]|=s<<24-(i+o)%4*8}else for(var o=0;o>>2]=e[o>>>2];return this.sigBytes+=n,this},clamp:function(){var r=this.words,e=this.sigBytes;r[e>>>2]&=4294967295<<32-e%4*8,r.length=t.ceil(e/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(r){for(var e,i=[],n=function(r){var r=r,e=987654321,i=4294967295;return function(){e=36969*(65535&e)+(e>>16)&i,r=18e3*(65535&r)+(r>>16)&i;var n=(e<<16)+r&i;return n/=4294967296,n+=.5,n*(t.random()>.5?1:-1)}},o=0;o>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new s.init(e,r/2)}},h=a.Latin1={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new s.init(e,r)}},l=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(h.stringify(t)))}catch(t){throw new Error(\"Malformed UTF-8 data\")}},parse:function(t){return h.parse(unescape(encodeURIComponent(t)))}},f=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){\"string\"==typeof t&&(t=l.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(r){var e=this._data,i=e.words,n=e.sigBytes,o=this.blockSize,a=4*o,c=n/a;c=r?t.ceil(c):t.max((0|c)-this._minBufferSize,0);var h=c*o,l=t.min(4*h,n);if(h){for(var f=0;f>>6-s%4*2;i[o>>>2]|=(a|c)<<24-o%4*8,o++}return n.create(i,o)}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Base64={stringify:function(t){var r=t.words,e=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255,a=r[o+1>>>2]>>>24-(o+1)%4*8&255,c=r[o+2>>>2]>>>24-(o+2)%4*8&255,h=s<<16|a<<8|c,l=0;l<4&&o+.75*l>>6*(3-l)&63));var f=i.charAt(64);if(f)for(;n.length%4;)n.push(f);return n.join(\"\")},parse:function(t){var e=t.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>32-o)+r}function i(t,r,e,i,n,o,s){var a=t+(r&i|e&~i)+n+s;return(a<>>32-o)+r}function n(t,r,e,i,n,o,s){var a=t+(r^e^i)+n+s;return(a<>>32-o)+r}function o(t,r,e,i,n,o,s){var a=t+(e^(r|~i))+n+s;return(a<>>32-o)+r}var s=t,a=s.lib,c=a.WordArray,h=a.Hasher,l=s.algo,f=[];!function(){for(var t=0;t<64;t++)f[t]=4294967296*r.abs(r.sin(t+1))|0}();var u=l.MD5=h.extend({_doReset:function(){this._hash=new c.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,r){for(var s=0;s<16;s++){var a=r+s,c=t[a];t[a]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var h=this._hash.words,l=t[r+0],u=t[r+1],d=t[r+2],v=t[r+3],p=t[r+4],_=t[r+5],y=t[r+6],g=t[r+7],B=t[r+8],w=t[r+9],k=t[r+10],S=t[r+11],m=t[r+12],x=t[r+13],b=t[r+14],H=t[r+15],z=h[0],A=h[1],C=h[2],D=h[3];z=e(z,A,C,D,l,7,f[0]),D=e(D,z,A,C,u,12,f[1]),C=e(C,D,z,A,d,17,f[2]),A=e(A,C,D,z,v,22,f[3]),z=e(z,A,C,D,p,7,f[4]),D=e(D,z,A,C,_,12,f[5]),C=e(C,D,z,A,y,17,f[6]),A=e(A,C,D,z,g,22,f[7]),z=e(z,A,C,D,B,7,f[8]),D=e(D,z,A,C,w,12,f[9]),C=e(C,D,z,A,k,17,f[10]),A=e(A,C,D,z,S,22,f[11]),z=e(z,A,C,D,m,7,f[12]),D=e(D,z,A,C,x,12,f[13]),C=e(C,D,z,A,b,17,f[14]),A=e(A,C,D,z,H,22,f[15]),z=i(z,A,C,D,u,5,f[16]),D=i(D,z,A,C,y,9,f[17]),C=i(C,D,z,A,S,14,f[18]),A=i(A,C,D,z,l,20,f[19]),z=i(z,A,C,D,_,5,f[20]),D=i(D,z,A,C,k,9,f[21]),C=i(C,D,z,A,H,14,f[22]),A=i(A,C,D,z,p,20,f[23]),z=i(z,A,C,D,w,5,f[24]),D=i(D,z,A,C,b,9,f[25]),C=i(C,D,z,A,v,14,f[26]),A=i(A,C,D,z,B,20,f[27]),z=i(z,A,C,D,x,5,f[28]),D=i(D,z,A,C,d,9,f[29]),C=i(C,D,z,A,g,14,f[30]),A=i(A,C,D,z,m,20,f[31]),z=n(z,A,C,D,_,4,f[32]),D=n(D,z,A,C,B,11,f[33]),C=n(C,D,z,A,S,16,f[34]),A=n(A,C,D,z,b,23,f[35]),z=n(z,A,C,D,u,4,f[36]),D=n(D,z,A,C,p,11,f[37]),C=n(C,D,z,A,g,16,f[38]),A=n(A,C,D,z,k,23,f[39]),z=n(z,A,C,D,x,4,f[40]),D=n(D,z,A,C,l,11,f[41]),C=n(C,D,z,A,v,16,f[42]),A=n(A,C,D,z,y,23,f[43]),z=n(z,A,C,D,w,4,f[44]),D=n(D,z,A,C,m,11,f[45]),C=n(C,D,z,A,H,16,f[46]),A=n(A,C,D,z,d,23,f[47]),z=o(z,A,C,D,l,6,f[48]),D=o(D,z,A,C,g,10,f[49]),C=o(C,D,z,A,b,15,f[50]),A=o(A,C,D,z,_,21,f[51]),z=o(z,A,C,D,m,6,f[52]),D=o(D,z,A,C,v,10,f[53]),C=o(C,D,z,A,k,15,f[54]),A=o(A,C,D,z,u,21,f[55]),z=o(z,A,C,D,B,6,f[56]),D=o(D,z,A,C,H,10,f[57]),C=o(C,D,z,A,y,15,f[58]),A=o(A,C,D,z,x,21,f[59]),z=o(z,A,C,D,p,6,f[60]),D=o(D,z,A,C,S,10,f[61]),C=o(C,D,z,A,d,15,f[62]),A=o(A,C,D,z,w,21,f[63]),h[0]=h[0]+z|0,h[1]=h[1]+A|0,h[2]=h[2]+C|0,h[3]=h[3]+D|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32;var o=r.floor(i/4294967296),s=i;e[(n+64>>>9<<4)+15]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e[(n+64>>>9<<4)+14]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),t.sigBytes=4*(e.length+1),this._process();for(var a=this._hash,c=a.words,h=0;h<4;h++){var l=c[h];c[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var t=h.clone.call(this);return t._hash=this._hash.clone(),t}});s.MD5=h._createHelper(u),s.HmacMD5=h._createHmacHelper(u)}(Math),function(){var r=t,e=r.lib,i=e.WordArray,n=e.Hasher,o=r.algo,s=[],a=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],a=e[3],c=e[4],h=0;h<80;h++){if(h<16)s[h]=0|t[r+h];else{var l=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+c+s[h];f+=h<20?(n&o|~n&a)+1518500249:h<40?(n^o^a)+1859775393:h<60?(n&o|n&a|o&a)-1894007588:(n^o^a)-899497514,c=a,a=o,o=n<<30|n>>>2,n=i,i=f}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+a|0,e[4]=e[4]+c|0},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;return r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=Math.floor(e/4294967296),r[(i+64>>>9<<4)+15]=e,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});r.SHA1=n._createHelper(a),r.HmacSHA1=n._createHmacHelper(a)}(),function(r){var e=t,i=e.lib,n=i.WordArray,o=i.Hasher,s=e.algo,a=[],c=[];!function(){function t(t){for(var e=r.sqrt(t),i=2;i<=e;i++)if(!(t%i))return!1;return!0}function e(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)t(i)&&(n<8&&(a[n]=e(r.pow(i,.5))),c[n]=e(r.pow(i,1/3)),n++),i++}();var h=[],l=s.SHA256=o.extend({_doReset:function(){this._hash=new n.init(a.slice(0))},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],l=e[5],f=e[6],u=e[7],d=0;d<64;d++){if(d<16)h[d]=0|t[r+d];else{var v=h[d-15],p=(v<<25|v>>>7)^(v<<14|v>>>18)^v>>>3,_=h[d-2],y=(_<<15|_>>>17)^(_<<13|_>>>19)^_>>>10;h[d]=p+h[d-7]+y+h[d-16]}var g=a&l^~a&f,B=i&n^i&o^n&o,w=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),k=(a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25),S=u+k+g+c[d]+h[d],m=w+B;u=f,f=l,l=a,a=s+S|0,s=o,o=n,n=i,i=S+m|0}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+s|0,e[4]=e[4]+a|0,e[5]=e[5]+l|0,e[6]=e[6]+f|0,e[7]=e[7]+u|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[(n+64>>>9<<4)+14]=r.floor(i/4294967296),e[(n+64>>>9<<4)+15]=i,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(l),e.HmacSHA256=o._createHmacHelper(l)}(Math),function(){function r(t){return t<<8&4278255360|t>>>8&16711935}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Utf16=o.Utf16BE={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>1]|=t.charCodeAt(i)<<16-i%2*16;return n.create(e,2*r)}};o.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join(\"\")},parse:function(t){for(var e=t.length,i=[],o=0;o>>1]|=r(t.charCodeAt(o)<<16-o%2*16);return n.create(i,2*e)}}}(),function(){if(\"function\"==typeof ArrayBuffer){var r=t,e=r.lib,i=e.WordArray,n=i.init,o=i.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||\"undefined\"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,e=[],i=0;i>>2]|=t[i]<<24-i%4*8;n.call(this,e,r)}else n.apply(this,arguments)};o.prototype=i}}(),function(r){function e(t,r,e){return t^r^e}function i(t,r,e){return t&r|~t&e}function n(t,r,e){return(t|~r)^e}function o(t,r,e){return t&e|r&~e}function s(t,r,e){return t^(r|~e)}function a(t,r){return t<>>32-r}var c=t,h=c.lib,l=h.WordArray,f=h.Hasher,u=c.algo,d=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),v=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),p=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),_=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),B=u.RIPEMD160=f.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var c=0;c<16;c++){var h=r+c,l=t[h];t[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}var f,u,B,w,k,S,m,x,b,H,z=this._hash.words,A=y.words,C=g.words,D=d.words,R=v.words,E=p.words,M=_.words;S=f=z[0],m=u=z[1],x=B=z[2],b=w=z[3],H=k=z[4];for(var F,c=0;c<80;c+=1)F=f+t[r+D[c]]|0,F+=c<16?e(u,B,w)+A[0]:c<32?i(u,B,w)+A[1]:c<48?n(u,B,w)+A[2]:c<64?o(u,B,w)+A[3]:s(u,B,w)+A[4],F|=0,F=a(F,E[c]),F=F+k|0,f=k,k=w,w=a(B,10),B=u,u=F,F=S+t[r+R[c]]|0,F+=c<16?s(m,x,b)+C[0]:c<32?o(m,x,b)+C[1]:c<48?n(m,x,b)+C[2]:c<64?i(m,x,b)+C[3]:e(m,x,b)+C[4],F|=0,F=a(F,M[c]),F=F+H|0,S=H,H=b,b=a(x,10),x=m,m=F;F=z[1]+B+b|0,z[1]=z[2]+w+H|0,z[2]=z[3]+k+S|0,z[3]=z[4]+f+m|0,z[4]=z[0]+u+x|0,z[0]=F},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8),t.sigBytes=4*(r.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var a=o[s];o[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return n},clone:function(){var t=f.clone.call(this);return t._hash=this._hash.clone(),t}});c.RIPEMD160=f._createHelper(B),c.HmacRIPEMD160=f._createHmacHelper(B)}(Math),function(){var r=t,e=r.lib,i=e.Base,n=r.enc,o=n.Utf8,s=r.algo;s.HMAC=i.extend({init:function(t,r){t=this._hasher=new t.init,\"string\"==typeof r&&(r=o.parse(r));var e=t.blockSize,i=4*e;r.sigBytes>i&&(r=t.finalize(r)),r.clamp();for(var n=this._oKey=r.clone(),s=this._iKey=r.clone(),a=n.words,c=s.words,h=0;h>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8);var a=e[n];a.high^=s,a.low^=o}for(var c=0;c<24;c++){for(var d=0;d<5;d++){for(var v=0,p=0,_=0;_<5;_++){var a=e[d+5*_];v^=a.high,p^=a.low}var y=u[d];y.high=v,y.low=p}for(var d=0;d<5;d++)for(var g=u[(d+4)%5],B=u[(d+1)%5],w=B.high,k=B.low,v=g.high^(w<<1|k>>>31),p=g.low^(k<<1|w>>>31),_=0;_<5;_++){var a=e[d+5*_];a.high^=v,a.low^=p}for(var S=1;S<25;S++){var a=e[S],m=a.high,x=a.low,b=h[S];if(b<32)var v=m<>>32-b,p=x<>>32-b;else var v=x<>>64-b,p=m<>>64-b;var H=u[l[S]];H.high=v,H.low=p}var z=u[0],A=e[0];z.high=A.high,z.low=A.low;for(var d=0;d<5;d++)for(var _=0;_<5;_++){var S=d+5*_,a=e[S],C=u[S],D=u[(d+1)%5+5*_],R=u[(d+2)%5+5*_];a.high=C.high^~D.high&R.high,a.low=C.low^~D.low&R.low}var a=e[0],E=f[c];a.high^=E.high,a.low^=E.low}},_doFinalize:function(){var t=this._data,e=t.words,i=(8*this._nDataBytes,8*t.sigBytes),o=32*this.blockSize;e[i>>>5]|=1<<24-i%32,e[(r.ceil((i+1)/o)*o>>>5)-1]|=128,t.sigBytes=4*e.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,h=[],l=0;l>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h.push(d),h.push(u)}return new n.init(h,a)},clone:function(){for(var t=o.clone.call(this),r=t._state=this._state.slice(0),e=0;e<25;e++)r[e]=r[e].clone();return t}});e.SHA3=o._createHelper(d),e.HmacSHA3=o._createHmacHelper(d)}(Math),function(){function r(){return s.create.apply(s,arguments)}var e=t,i=e.lib,n=i.Hasher,o=e.x64,s=o.Word,a=o.WordArray,c=e.algo,h=[r(1116352408,3609767458),r(1899447441,602891725),r(3049323471,3964484399),r(3921009573,2173295548),r(961987163,4081628472),r(1508970993,3053834265),r(2453635748,2937671579),r(2870763221,3664609560),r(3624381080,2734883394),r(310598401,1164996542),r(607225278,1323610764),r(1426881987,3590304994),r(1925078388,4068182383),r(2162078206,991336113),r(2614888103,633803317),r(3248222580,3479774868),r(3835390401,2666613458),r(4022224774,944711139),r(264347078,2341262773),r(604807628,2007800933),r(770255983,1495990901),r(1249150122,1856431235),r(1555081692,3175218132),r(1996064986,2198950837),r(2554220882,3999719339),r(2821834349,766784016),r(2952996808,2566594879),r(3210313671,3203337956),r(3336571891,1034457026),r(3584528711,2466948901),r(113926993,3758326383),r(338241895,168717936),r(666307205,1188179964),r(773529912,1546045734),r(1294757372,1522805485),r(1396182291,2643833823),r(1695183700,2343527390),r(1986661051,1014477480),r(2177026350,1206759142),r(2456956037,344077627),r(2730485921,1290863460),r(2820302411,3158454273),r(3259730800,3505952657),r(3345764771,106217008),r(3516065817,3606008344),r(3600352804,1432725776),r(4094571909,1467031594),r(275423344,851169720),r(430227734,3100823752),r(506948616,1363258195),r(659060556,3750685593),r(883997877,3785050280),r(958139571,3318307427),r(1322822218,3812723403),r(1537002063,2003034995),r(1747873779,3602036899),r(1955562222,1575990012),r(2024104815,1125592928),r(2227730452,2716904306),r(2361852424,442776044),r(2428436474,593698344),r(2756734187,3733110249),r(3204031479,2999351573),r(3329325298,3815920427),r(3391569614,3928383900),r(3515267271,566280711),r(3940187606,3454069534),r(4118630271,4000239992),r(116418474,1914138554),r(174292421,2731055270),r(289380356,3203993006),r(460393269,320620315),r(685471733,587496836),r(852142971,1086792851),r(1017036298,365543100),r(1126000580,2618297676),r(1288033470,3409855158),r(1501505948,4234509866),r(1607167915,987167468),r(1816402316,1246189591)],l=[];!function(){for(var t=0;t<80;t++)l[t]=r()}();var f=c.SHA512=n.extend({_doReset:function(){this._hash=new a.init([new s.init(1779033703,4089235720),new s.init(3144134277,2227873595),new s.init(1013904242,4271175723),new s.init(2773480762,1595750129),new s.init(1359893119,2917565137),new s.init(2600822924,725511199),new s.init(528734635,4215389547),new s.init(1541459225,327033209)])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],c=e[5],f=e[6],u=e[7],d=i.high,v=i.low,p=n.high,_=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=a.high,S=a.low,m=c.high,x=c.low,b=f.high,H=f.low,z=u.high,A=u.low,C=d,D=v,R=p,E=_,M=y,F=g,P=B,W=w,O=k,U=S,I=m,K=x,X=b,L=H,j=z,N=A,T=0;T<80;T++){var Z=l[T];if(T<16)var q=Z.high=0|t[r+2*T],G=Z.low=0|t[r+2*T+1];else{var J=l[T-15],$=J.high,Q=J.low,V=($>>>1|Q<<31)^($>>>8|Q<<24)^$>>>7,Y=(Q>>>1|$<<31)^(Q>>>8|$<<24)^(Q>>>7|$<<25),tt=l[T-2],rt=tt.high,et=tt.low,it=(rt>>>19|et<<13)^(rt<<3|et>>>29)^rt>>>6,nt=(et>>>19|rt<<13)^(et<<3|rt>>>29)^(et>>>6|rt<<26),ot=l[T-7],st=ot.high,at=ot.low,ct=l[T-16],ht=ct.high,lt=ct.low,G=Y+at,q=V+st+(G>>>0>>0?1:0),G=G+nt,q=q+it+(G>>>0>>0?1:0),G=G+lt,q=q+ht+(G>>>0>>0?1:0);Z.high=q,Z.low=G}var ft=O&I^~O&X,ut=U&K^~U&L,dt=C&R^C&M^R&M,vt=D&E^D&F^E&F,pt=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),_t=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),yt=(O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9),gt=(U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9),Bt=h[T],wt=Bt.high,kt=Bt.low,St=N+gt,mt=j+yt+(St>>>0>>0?1:0),St=St+ut,mt=mt+ft+(St>>>0>>0?1:0),St=St+kt,mt=mt+wt+(St>>>0>>0?1:0),St=St+G,mt=mt+q+(St>>>0>>0?1:0),xt=_t+vt,bt=pt+dt+(xt>>>0<_t>>>0?1:0);j=X,N=L,X=I,L=K,I=O,K=U,U=W+St|0,O=P+mt+(U>>>0>>0?1:0)|0,P=M,W=F,M=R,F=E,R=C,E=D,D=St+xt|0,C=mt+bt+(D>>>0>>0?1:0)|0}v=i.low=v+D,i.high=d+C+(v>>>0>>0?1:0),_=n.low=_+E,n.high=p+R+(_>>>0>>0?1:0),g=o.low=g+F,o.high=y+M+(g>>>0>>0?1:0),w=s.low=w+W,s.high=B+P+(w>>>0>>0?1:0),S=a.low=S+U,a.high=k+O+(S>>>0>>0?1:0),x=c.low=x+K,c.high=m+I+(x>>>0>>0?1:0),H=f.low=H+L,f.high=b+X+(H>>>0>>0?1:0),A=u.low=A+N,u.high=z+j+(A>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+128>>>10<<5)+30]=Math.floor(e/4294967296),r[(i+128>>>10<<5)+31]=e,t.sigBytes=4*r.length,this._process();var n=this._hash.toX32();return n},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});e.SHA512=n._createHelper(f),e.HmacSHA512=n._createHmacHelper(f)}(),function(){var r=t,e=r.x64,i=e.Word,n=e.WordArray,o=r.algo,s=o.SHA512,a=o.SHA384=s.extend({_doReset:function(){this._hash=new n.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var t=s._doFinalize.call(this);return t.sigBytes-=16,t}});r.SHA384=s._createHelper(a),r.HmacSHA384=s._createHmacHelper(a)}(),t.lib.Cipher||function(r){var e=t,i=e.lib,n=i.Base,o=i.WordArray,s=i.BufferedBlockAlgorithm,a=e.enc,c=(a.Utf8,a.Base64),h=e.algo,l=h.EvpKDF,f=i.Cipher=s.extend({cfg:n.extend(),createEncryptor:function(t,r){return this.create(this._ENC_XFORM_MODE,t,r)},createDecryptor:function(t,r){return this.create(this._DEC_XFORM_MODE,t,r)},init:function(t,r,e){this.cfg=this.cfg.extend(e),this._xformMode=t,this._key=r,this.reset()},reset:function(){s.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){t&&this._append(t);var r=this._doFinalize();return r},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return\"string\"==typeof t?m:w}return function(r){return{encrypt:function(e,i,n){return t(i).encrypt(r,e,i,n)},decrypt:function(e,i,n){return t(i).decrypt(r,e,i,n)}}}}()}),u=(i.StreamCipher=f.extend({_doFinalize:function(){var t=this._process(!0);return t},blockSize:1}),e.mode={}),d=i.BlockCipherMode=n.extend({createEncryptor:function(t,r){return this.Encryptor.create(t,r)},createDecryptor:function(t,r){return this.Decryptor.create(t,r)},init:function(t,r){this._cipher=t,this._iv=r}}),v=u.CBC=function(){function t(t,e,i){var n=this._iv;if(n){var o=n;this._iv=r}else var o=this._prevBlock;for(var s=0;s>>2];t.sigBytes-=r}},y=(i.BlockCipher=f.extend({cfg:f.cfg.extend({mode:v,padding:_}),reset:function(){f.reset.call(this);var t=this.cfg,r=t.iv,e=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=e.createEncryptor;else{var i=e.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==i?this._mode.init(this,r&&r.words):(this._mode=i.call(e,this,r&&r.words),this._mode.__creator=i)},_doProcessBlock:function(t,r){this._mode.processBlock(t,r)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var r=this._process(!0)}else{var r=this._process(!0);t.unpad(r)}return r},blockSize:4}),i.CipherParams=n.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),g=e.format={},B=g.OpenSSL={stringify:function(t){var r=t.ciphertext,e=t.salt;if(e)var i=o.create([1398893684,1701076831]).concat(e).concat(r);else var i=r;return i.toString(c)},parse:function(t){var r=c.parse(t),e=r.words;if(1398893684==e[0]&&1701076831==e[1]){var i=o.create(e.slice(2,4));e.splice(0,4),r.sigBytes-=16}return y.create({ciphertext:r,salt:i})}},w=i.SerializableCipher=n.extend({cfg:n.extend({format:B}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=t.createEncryptor(e,i),o=n.finalize(r),s=n.cfg;return y.create({ciphertext:o,key:e,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=t.createDecryptor(e,i).finalize(r.ciphertext);return n},_parse:function(t,r){return\"string\"==typeof t?r.parse(t,this):t}}),k=e.kdf={},S=k.OpenSSL={execute:function(t,r,e,i){i||(i=o.random(8));var n=l.create({keySize:r+e}).compute(t,i),s=o.create(n.words.slice(r),4*e);return n.sigBytes=4*r,y.create({key:n,iv:s,salt:i})}},m=i.PasswordBasedCipher=w.extend({cfg:w.cfg.extend({kdf:S}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=i.kdf.execute(e,t.keySize,t.ivSize);i.iv=n.iv;var o=w.encrypt.call(this,t,r,n.key,i);return o.mixIn(n),o},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=i.kdf.execute(e,t.keySize,t.ivSize,r.salt);i.iv=n.iv;var o=w.decrypt.call(this,t,r,n.key,i);return o}})}(),t.mode.CFB=function(){function r(t,r,e,i){var n=this._iv;if(n){var o=n.slice(0);this._iv=void 0}else var o=this._prevBlock;i.encryptBlock(o,0);for(var s=0;s>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso10126={pad:function(r,e){var i=4*e,n=i-r.sigBytes%i;r.concat(t.lib.WordArray.random(n-1)).concat(t.lib.WordArray.create([n<<24],1))},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso97971={pad:function(r,e){r.concat(t.lib.WordArray.create([2147483648],1)),t.pad.ZeroPadding.pad(r,e)},unpad:function(r){t.pad.ZeroPadding.unpad(r),r.sigBytes--}},t.mode.OFB=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),e.encryptBlock(o,0);for(var s=0;s>>8^255&n^99,o[e]=n,s[n]=e;var p=t[e],_=t[p],y=t[_],g=257*t[n]^16843008*n;a[e]=g<<24|g>>>8,c[e]=g<<16|g>>>16,h[e]=g<<8|g>>>24,l[e]=g;var g=16843009*y^65537*_^257*p^16843008*e;f[n]=g<<24|g>>>8,u[n]=g<<16|g>>>16,d[n]=g<<8|g>>>24,v[n]=g,e?(e=p^t[t[t[y^p]]],i^=t[t[i]]):e=i=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],_=n.AES=i.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,r=t.words,e=t.sigBytes/4,i=this._nRounds=e+6,n=4*(i+1),s=this._keySchedule=[],a=0;a6&&a%e==4&&(c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c]):(c=c<<8|c>>>24,c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c],c^=p[a/e|0]<<24),s[a]=s[a-e]^c}for(var h=this._invKeySchedule=[],l=0;l>>24]]^u[o[c>>>16&255]]^d[o[c>>>8&255]]^v[o[255&c]]}}},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._keySchedule,a,c,h,l,o)},decryptBlock:function(t,r){var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e,this._doCryptBlock(t,r,this._invKeySchedule,f,u,d,v,s);var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e},_doCryptBlock:function(t,r,e,i,n,o,s,a){for(var c=this._nRounds,h=t[r]^e[0],l=t[r+1]^e[1],f=t[r+2]^e[2],u=t[r+3]^e[3],d=4,v=1;v>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&u]^e[d++],_=i[l>>>24]^n[f>>>16&255]^o[u>>>8&255]^s[255&h]^e[d++],y=i[f>>>24]^n[u>>>16&255]^o[h>>>8&255]^s[255&l]^e[d++],g=i[u>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^e[d++];h=p,l=_,f=y,u=g}var p=(a[h>>>24]<<24|a[l>>>16&255]<<16|a[f>>>8&255]<<8|a[255&u])^e[d++],_=(a[l>>>24]<<24|a[f>>>16&255]<<16|a[u>>>8&255]<<8|a[255&h])^e[d++],y=(a[f>>>24]<<24|a[u>>>16&255]<<16|a[h>>>8&255]<<8|a[255&l])^e[d++],g=(a[u>>>24]<<24|a[h>>>16&255]<<16|a[l>>>8&255]<<8|a[255&f])^e[d++];t[r]=p,t[r+1]=_,t[r+2]=y,t[r+3]=g},keySize:8});r.AES=i._createHelper(_)}(),function(){function r(t,r){var e=(this._lBlock>>>t^this._rBlock)&r;this._rBlock^=e,this._lBlock^=e<>>t^this._lBlock)&r;this._lBlock^=e,this._rBlock^=e<>>5]>>>31-n%32&1}for(var o=this._subKeys=[],s=0;s<16;s++){for(var a=o[s]=[],f=l[s],i=0;i<24;i++)a[i/6|0]|=e[(h[i]-1+f)%28]<<31-i%6,a[4+(i/6|0)]|=e[28+(h[i+24]-1+f)%28]<<31-i%6;a[0]=a[0]<<1|a[0]>>>31;for(var i=1;i<7;i++)a[i]=a[i]>>>4*(i-1)+3;a[7]=a[7]<<5|a[7]>>>27}for(var u=this._invSubKeys=[],i=0;i<16;i++)u[i]=o[15-i]},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._subKeys)},decryptBlock:function(t,r){this._doCryptBlock(t,r,this._invSubKeys)},_doCryptBlock:function(t,i,n){this._lBlock=t[i],this._rBlock=t[i+1],r.call(this,4,252645135),r.call(this,16,65535),e.call(this,2,858993459),e.call(this,8,16711935),r.call(this,1,1431655765);for(var o=0;o<16;o++){for(var s=n[o],a=this._lBlock,c=this._rBlock,h=0,l=0;l<8;l++)h|=f[l][((c^s[l])&u[l])>>>0];this._lBlock=c,this._rBlock=a^h}var d=this._lBlock;this._lBlock=this._rBlock,this._rBlock=d,r.call(this,1,1431655765),e.call(this,8,16711935),e.call(this,2,858993459),r.call(this,16,65535),r.call(this,4,252645135),t[i]=this._lBlock,t[i+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});i.DES=s._createHelper(d);var v=a.TripleDES=s.extend({_doReset:function(){var t=this._key,r=t.words;this._des1=d.createEncryptor(o.create(r.slice(0,2))),this._des2=d.createEncryptor(o.create(r.slice(2,4))),this._des3=d.createEncryptor(o.create(r.slice(4,6)))},encryptBlock:function(t,r){this._des1.encryptBlock(t,r),this._des2.decryptBlock(t,r),this._des3.encryptBlock(t,r)},decryptBlock:function(t,r){this._des3.decryptBlock(t,r),this._des2.encryptBlock(t,r),this._des1.decryptBlock(t,r)},keySize:6,ivSize:2,blockSize:2});i.TripleDES=s._createHelper(v)}(),function(){function r(){for(var t=this._S,r=this._i,e=this._j,i=0,n=0;n<4;n++){r=(r+1)%256,e=(e+t[r])%256;var o=t[r];t[r]=t[e],t[e]=o,i|=t[(t[r]+t[e])%256]<<24-8*n}return this._i=r,this._j=e,i}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=o.RC4=n.extend({_doReset:function(){for(var t=this._key,r=t.words,e=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;for(var n=0,o=0;n<256;n++){var s=n%e,a=r[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+a)%256;var c=i[n];i[n]=i[o],i[o]=c}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=r.call(this)},keySize:8,ivSize:0});e.RC4=n._createHelper(s);var a=o.RC4Drop=s.extend({cfg:s.cfg.extend({drop:192}),_doReset:function(){s._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)r.call(this)}});e.RC4Drop=n._createHelper(a)}(),t.mode.CTRGladman=function(){function r(t){if(255===(t>>24&255)){var r=t>>16&255,e=t>>8&255,i=255&t;255===r?(r=0,255===e?(e=0,255===i?i=0:++i):++e):++r,t=0,t+=r<<16,t+=e<<8,t+=i}else t+=1<<24;return t}function e(t){return 0===(t[0]=r(t[0]))&&(t[1]=r(t[1])),t}var i=t.lib.BlockCipherMode.extend(),n=i.Encryptor=i.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),e(s);var a=s.slice(0);i.encryptBlock(a,0);for(var c=0;c>>0>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0>>0?1:0)|0,this._b=r[7]>>>0>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.Rabbit=n.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,i=0;i<4;i++)t[i]=16711935&(t[i]<<8|t[i]>>>24)|4278255360&(t[i]<<24|t[i]>>>8);var n=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],o=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var i=0;i<4;i++)r.call(this);for(var i=0;i<8;i++)o[i]^=n[i+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;o[0]^=h,o[1]^=f,o[2]^=l,o[3]^=u,o[4]^=h,o[5]^=f,o[6]^=l,o[7]^=u;for(var i=0;i<4;i++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.Rabbit=n._createHelper(h)}(),t.mode.CTR=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);e.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var a=0;a>>0>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0>>0?1:0)|0,this._b=r[7]>>>0>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.RabbitLegacy=n.extend({_doReset:function(){var t=this._key.words,e=this.cfg.iv,i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var o=0;o<4;o++)r.call(this);for(var o=0;o<8;o++)n[o]^=i[o+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;n[0]^=h,n[1]^=f,n[2]^=l,n[3]^=u,n[4]^=h,n[5]^=f,n[6]^=l,n[7]^=u;for(var o=0;o<4;o++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.RabbitLegacy=n._createHelper(h)}(),t.pad.ZeroPadding={pad:function(t,r){var e=4*r;t.clamp(),t.sigBytes+=e-(t.sigBytes%e||e)},unpad:function(t){for(var r=t.words,e=t.sigBytes-1;!(r[e>>>2]>>>24-e%4*8&255);)e--;t.sigBytes=e+1}},t});\n//# sourceMappingURL=crypto-js.min.js.map"]} \ No newline at end of file diff --git a/library/imports/e7/e74a9f7d-2031-4e69-bcb2-9998174088b2.js b/library/imports/e7/e74a9f7d-2031-4e69-bcb2-9998174088b2.js new file mode 100644 index 0000000..c33ccd3 --- /dev/null +++ b/library/imports/e7/e74a9f7d-2031-4e69-bcb2-9998174088b2.js @@ -0,0 +1,167 @@ +"use strict"; +cc._RF.push(module, 'e74a999IDFOabyymZgXQIiy', 'RankManager'); +// Script/RankManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var List_1 = require("./module/RankList/List"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +//排行榜 +var RankManager = /** @class */ (function (_super) { + __extends(RankManager, _super); + function RankManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.Player = null; + _this.selfNode = null; + _this.phone = null; + return _this; + } + RankManager.prototype.onLoad = function () { + this.init(); + }; + //初始化数据 + RankManager.prototype.init = function () { + this.rankList = cc.find("ScrollView", this.node).getComponent(List_1.default); + this.Player.getChildByName("rank").active = false; + this.listData = []; + this.selfData = null; + this.rankNumber = 100; + this.rankTotal = 100; + this.selfNode.opacity = 0; + }; + RankManager.prototype.start = function () { + this.Player.active = false; + this.getRank(); + }; + //调用获取排行榜接口 + RankManager.prototype.getRank = function () { + var _this = this; + var dataFile = { + length: 100 + }; + cc.fx.GameTool.getRank(dataFile, function (data) { return _this.getRankData(data); }); + }; + //实际设置排行数据 + RankManager.prototype.getRankData = function (data) { + if (data) { + // console.log(data); + cc.fx.GameTool.getRankData(data, this, 6); + this.setPic(this.selfData.pic); + } + }; + //返回按钮 + RankManager.prototype.backClick = function () { + cc.director.loadScene("LoadScene"); + }; + //最上方用户动画 + RankManager.prototype.playerAction = function () { + var _this = this; + //-254 377 210 453 + this.Player.getChildByName("rank").active = false; + var time = 1; + this.tween = cc.tween(this.Player) + .to(2, { position: cc.v3(210, 453, 0) }) + .call(function () { + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; + }) + .start(); + time = (this.listData.length - this.rankNumber) / this.listData.length; + if (this.listData.length >= 99) { + if (this.rankNumber >= 99) { + time = (Math.random() * 49 + 1) / 100; + var matchId = cc.sys.localStorage.getItem("matchNumber"); + if (matchId == null || matchId == undefined) { + time = 0; + } + } + } + setTimeout(function () { + if (_this.tween) + _this.tween.stop(); + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; + }, time * 2000); + }; + //设置头像 处理的逻辑比较多,不用公共类的了 + RankManager.prototype.setPic = function (pic) { + var _this = this; + this.phone.node.parent.getChildByName("icon").active = false; + this.phone.node.active = false; + this.Player.active = true; + this.Player.opacity = 0; + this.Player.getChildByName("mask").getChildByName("icon").active = false; + this.Player.getChildByName("mask").getChildByName("phone").active = false; + fetch(pic) + .then(function (response) { + return response.headers.get('Content-Length'); + }) + .then(function (errNo) { + if (errNo == "5093") { + _this.phone.node.parent.getChildByName("icon").active = true; + _this.Player.getChildByName("mask").getChildByName("icon").active = true; + } + }) + .catch(function (error) { + console.error('Error fetching X-Info:', error); + }); + var self = this; + cc.assetManager.loadRemote(pic, { ext: '.png' }, function (err, texture) { + self.Player.opacity = 255; + if (texture) { + self.phone.node.active = true; + self.phone.spriteFrame = new cc.SpriteFrame(texture); + self.Player.getChildByName("mask").getChildByName("icon").active = false; + self.Player.getChildByName("mask").getChildByName("phone").active = true; + self.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite) + .spriteFrame = new cc.SpriteFrame(texture); + setTimeout(function () { + self.playerAction(); + }, 500); + } + else { + self.Player.getChildByName("mask").getChildByName("icon").active = true; + setTimeout(function () { + self.playerAction(); + }, 500); + } + }); + }; + __decorate([ + property(cc.Node) //用户上方头像 + ], RankManager.prototype, "Player", void 0); + __decorate([ + property(cc.Node) //用户最下方个人信息 + ], RankManager.prototype, "selfNode", void 0); + __decorate([ + property(cc.Sprite) //用户头像换图 + ], RankManager.prototype, "phone", void 0); + RankManager = __decorate([ + ccclass + ], RankManager); + return RankManager; +}(cc.Component)); +exports.default = RankManager; + +cc._RF.pop(); \ No newline at end of file diff --git a/library/imports/e7/e74a9f7d-2031-4e69-bcb2-9998174088b2.js.map b/library/imports/e7/e74a9f7d-2031-4e69-bcb2-9998174088b2.js.map new file mode 100644 index 0000000..3ac905b --- /dev/null +++ b/library/imports/e7/e74a9f7d-2031-4e69-bcb2-9998174088b2.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\RankManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\r\nimport List from \"./module/RankList/List\";\r\nconst { ccclass, property } = cc._decorator;\r\n//排行榜\r\n@ccclass\r\nexport default class RankManager extends cc.Component {\r\n @property(cc.Node) //用户上方头像\r\n Player: cc.Node = null;\r\n @property(cc.Node) //用户最下方个人信息\r\n selfNode: cc.Node = null;\r\n @property(cc.Sprite) //用户头像换图\r\n phone: cc.Sprite = null;\r\n private rankList: List; //排行榜\r\n tween: cc.Tween; //最上方用户头像动画\r\n listData: any; //总列表信息\r\n selfData: any; //自己信息\r\n rankNumber: number; //用户自己排名 有可能不在排行榜内99+\r\n rankTotal: number; //获取排行榜用户数量 现在为100\r\n\r\n onLoad() {\r\n this.init();\r\n }\r\n //初始化数据\r\n init(){\r\n this.rankList = cc.find(\"ScrollView\", this.node).getComponent(List);\r\n this.Player.getChildByName(\"rank\").active = false;\r\n this.listData = [];\r\n this.selfData = null;\r\n this.rankNumber = 100;\r\n this.rankTotal= 100;\r\n this.selfNode.opacity = 0;\r\n }\r\n\r\n start() {\r\n this.Player.active = false;\r\n this.getRank();\r\n }\r\n //调用获取排行榜接口\r\n getRank(){\r\n let dataFile = {\r\n length:100\r\n }\r\n cc.fx.GameTool.getRank(dataFile,data =>this.getRankData(data));\r\n }\r\n //实际设置排行数据\r\n getRankData(data){\r\n if(data){\r\n // console.log(data);\r\n cc.fx.GameTool.getRankData(data,this,6);\r\n this.setPic(this.selfData.pic);\r\n }\r\n }\r\n //返回按钮\r\n backClick(){\r\n cc.director.loadScene(\"LoadScene\");\r\n }\r\n //最上方用户动画\r\n playerAction(){\r\n //-254 377 210 453\r\n this.Player.getChildByName(\"rank\").active = false;\r\n let time = 1;\r\n this.tween = cc.tween(this.Player)\r\n .to(2,{position:cc.v3(210,453,0)})\r\n .call(() =>{\r\n this.Player.getChildByName(\"rank\").active = true;\r\n this.Player.getChildByName(\"rank\").getChildByName(\"number\")\r\n .getComponent(cc.Label).string = parseInt(time*100 + \"\") + \"%\";\r\n })\r\n .start();\r\n time = (this.listData.length - this.rankNumber)/this.listData.length;\r\n if(this.listData.length >= 99){\r\n if(this.rankNumber >= 99){\r\n time = (Math.random()*49+1)/100\r\n var matchId = cc.sys.localStorage.getItem(\"matchNumber\");\r\n if(matchId == null || matchId == undefined){\r\n time = 0;\r\n }\r\n }\r\n }\r\n setTimeout(() => {\r\n if(this.tween)this.tween.stop();\r\n this.Player.getChildByName(\"rank\").active = true;\r\n this.Player.getChildByName(\"rank\").getChildByName(\"number\")\r\n .getComponent(cc.Label).string = parseInt(time*100 + \"\") + \"%\";\r\n }, time*2000);\r\n\r\n }\r\n //设置头像 处理的逻辑比较多,不用公共类的了\r\n public setPic(pic){\r\n this.phone.node.parent.getChildByName(\"icon\").active = false;\r\n this.phone.node.active = false;\r\n this.Player.active = true;\r\n this.Player.opacity = 0;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = false;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"phone\").active = false;\r\n fetch(pic)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n this.phone.node.parent.getChildByName(\"icon\").active = true;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = true;\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error fetching X-Info:', error);\r\n });\r\n var self = this;\r\n cc.assetManager.loadRemote(pic, {ext:'.png'},(err, texture:cc.Texture2D) => {\r\n self.Player.opacity = 255;\r\n if(texture){\r\n self.phone.node.active = true;\r\n self.phone.spriteFrame = new cc.SpriteFrame(texture);\r\n self.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = false;\r\n self.Player.getChildByName(\"mask\").getChildByName(\"phone\").active = true;\r\n self.Player.getChildByName(\"mask\").getChildByName(\"phone\").getComponent(cc.Sprite)\r\n .spriteFrame = new cc.SpriteFrame(texture);\r\n setTimeout(() => {\r\n self.playerAction();\r\n }, 500);\r\n }\r\n else{\r\n self.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = true;\r\n setTimeout(() => {\r\n self.playerAction();\r\n }, 500);\r\n }\r\n \r\n })\r\n }\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/library/imports/e7/e7aba14b-f956-4480-b254-8d57832e273f.json b/library/imports/e7/e7aba14b-f956-4480-b254-8d57832e273f.json new file mode 100644 index 0000000..4bcfaf0 --- /dev/null +++ b/library/imports/e7/e7aba14b-f956-4480-b254-8d57832e273f.json @@ -0,0 +1,28 @@ +{ + "__type__": "cc.SpriteFrame", + "content": { + "name": "default_radio_button_off", + "texture": "567dcd80-8bf4-4535-8a5a-313f1caf078a", + "atlas": "", + "rect": [ + 3, + 3, + 26, + 26 + ], + "offset": [ + 0, + 0 + ], + "originalSize": [ + 32, + 32 + ], + "capInsets": [ + 0, + 0, + 0, + 0 + ] + } +} \ No newline at end of file diff --git a/library/imports/e8/e851e89b-faa2-4484-bea6-5c01dd9f06e2.json b/library/imports/e8/e851e89b-faa2-4484-bea6-5c01dd9f06e2.json new file mode 100644 index 0000000..e7522d6 --- /dev/null +++ b/library/imports/e8/e851e89b-faa2-4484-bea6-5c01dd9f06e2.json @@ -0,0 +1,4 @@ +{ + "__type__": "cc.Texture2D", + "content": "0,9729,9729,33071,33071,0,0,1" +} \ No newline at end of file diff --git a/library/imports/e8/e851e89b-faa2-4484-bea6-5c01dd9f06e2.png b/library/imports/e8/e851e89b-faa2-4484-bea6-5c01dd9f06e2.png new file mode 100644 index 0000000000000000000000000000000000000000..dff9999a86eb2cdbc6c5be0cc0a05b2236bf1ad6 GIT binary patch literal 1082 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 literal 0 HcmV?d00001 diff --git a/temp/quick-scripts/dst/__file_stats__.json b/temp/quick-scripts/dst/__file_stats__.json new file mode 100644 index 0000000..493f901 --- /dev/null +++ b/temp/quick-scripts/dst/__file_stats__.json @@ -0,0 +1 @@ +{"version":"1.0.8","stats":{"C:/Work/Project/LockDiagram/temp/quick-scripts/src/__qc_index__.js":"2024-10-25T02:07:03.138Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js":"2024-10-25T02:07:03.091Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js":"2024-10-25T02:07:03.105Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/GameOver.js":"2024-10-25T02:07:03.091Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/GameManager.js":"2024-10-25T02:07:03.105Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/RankManager.js":"2024-10-25T02:07:03.114Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/Load.js":"2024-10-25T02:07:03.088Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/Block.js":"2024-10-25T02:07:03.105Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js":"2024-10-25T02:07:03.091Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js":"2024-10-25T02:07:03.081Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js":"2024-10-25T02:07:03.091Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js":"2024-10-25T02:07:03.091Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js":"2024-10-25T02:07:03.105Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js":"2024-10-25T02:07:03.091Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js":"2024-10-25T02:07:03.105Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js":"2024-10-25T02:07:03.091Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js":"2024-10-25T02:07:03.087Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js":"2024-10-25T02:07:03.091Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/module/Share/share.js":"2024-10-25T02:07:03.091Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js":"2024-10-25T02:07:03.081Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js":"2024-10-25T02:07:03.114Z","C:/Work/Project/LockDiagram/temp/quick-scripts/src/assets/Script/module/RankList/List.js":"2024-10-25T02:07:03.105Z"}} diff --git a/temp/quick-scripts/dst/__qc_bundle__.js b/temp/quick-scripts/dst/__qc_bundle__.js new file mode 100644 index 0000000..6a690c3 --- /dev/null +++ b/temp/quick-scripts/dst/__qc_bundle__.js @@ -0,0 +1,7778 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/__qc_index__.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);} +require('./assets/Script/Block'); +require('./assets/Script/DynamicAtlasManager'); +require('./assets/Script/GameManager'); +require('./assets/Script/GameOver'); +require('./assets/Script/Load'); +require('./assets/Script/RankManager'); +require('./assets/Script/Sdk/DouyinEntranceView'); +require('./assets/Script/Sdk/MiniGameManager'); +require('./assets/Script/Sdk/MiniGameSdk'); +require('./assets/Script/module/Config/GameConfig'); +require('./assets/Script/module/Crypto/HttpUtil'); +require('./assets/Script/module/Crypto/crypto-js.min'); +require('./assets/Script/module/GameStart/GameAppStart'); +require('./assets/Script/module/Music/AudioManager'); +require('./assets/Script/module/Notification/Notification'); +require('./assets/Script/module/RankList/ItemRender'); +require('./assets/Script/module/RankList/List'); +require('./assets/Script/module/Share/share'); +require('./assets/Script/module/Storage/Storage'); +require('./assets/Script/module/Tool/GameTool'); +require('./assets/migration/use_v2.1-2.2.1_cc.Toggle_event'); + + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '7a231Rz0d9LBYYgY3bDYlLB', 'use_v2.1-2.2.1_cc.Toggle_event'); +// migration/use_v2.1-2.2.1_cc.Toggle_event.js + +"use strict"; + +/* + * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version. + * You do not need to manually add this script in any other project. + * If you don't use cc.Toggle in your project, you can delete this script directly. + * If your project is hosted in VCS such as git, submit this script together. + * + * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程, + * 你无需在任何其它项目中手动添加此脚本。 + * 如果你的项目中没用到 Toggle,可直接删除该脚本。 + * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 + */ +if (cc.Toggle) { + // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code + // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 + cc.Toggle._triggerEventInScript_isChecked = true; +} + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnQuanMiXSwibmFtZXMiOlsiY2MiLCJUb2dnbGUiLCJfdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFJQSxFQUFFLENBQUNDLE1BQVAsRUFBZTtBQUNYO0FBQ0E7QUFDQUQsRUFBQUEsRUFBRSxDQUFDQyxNQUFILENBQVVDLCtCQUFWLEdBQTRDLElBQTVDO0FBQ0giLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFRoaXMgc2NyaXB0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IENvY29zIENyZWF0b3IgYW5kIGlzIG9ubHkgdXNlZCBmb3IgcHJvamVjdHMgY29tcGF0aWJsZSB3aXRoIHRoZSB2Mi4xLjAg772eIDIuMi4xIHZlcnNpb24uXHJcbiAqIFlvdSBkbyBub3QgbmVlZCB0byBtYW51YWxseSBhZGQgdGhpcyBzY3JpcHQgaW4gYW55IG90aGVyIHByb2plY3QuXHJcbiAqIElmIHlvdSBkb24ndCB1c2UgY2MuVG9nZ2xlIGluIHlvdXIgcHJvamVjdCwgeW91IGNhbiBkZWxldGUgdGhpcyBzY3JpcHQgZGlyZWN0bHkuXHJcbiAqIElmIHlvdXIgcHJvamVjdCBpcyBob3N0ZWQgaW4gVkNTIHN1Y2ggYXMgZ2l0LCBzdWJtaXQgdGhpcyBzY3JpcHQgdG9nZXRoZXIuXHJcbiAqXHJcbiAqIOatpOiEmuacrOeUsSBDb2NvcyBDcmVhdG9yIOiHquWKqOeUn+aIkO+8jOS7heeUqOS6juWFvOWuuSB2Mi4xLjAgfiAyLjIuMSDniYjmnKznmoTlt6XnqIvvvIxcclxuICog5L2g5peg6ZyA5Zyo5Lu75L2V5YW25a6D6aG555uu5Lit5omL5Yqo5re75Yqg5q2k6ISa5pys44CCXHJcbiAqIOWmguaenOS9oOeahOmhueebruS4reayoeeUqOWIsCBUb2dnbGXvvIzlj6/nm7TmjqXliKDpmaTor6XohJrmnKzjgIJcclxuICog5aaC5p6c5L2g55qE6aG555uu5pyJ5omY566h5LqOIGdpdCDnrYnniYjmnKzlupPvvIzor7flsIbmraTohJrmnKzkuIDlubbkuIrkvKDjgIJcclxuICovXHJcblxyXG5pZiAoY2MuVG9nZ2xlKSB7XHJcbiAgICAvLyBXaGV0aGVyIHRvIHRyaWdnZXIgJ3RvZ2dsZScgYW5kICdjaGVja0V2ZW50cycgZXZlbnRzIHdoZW4gbW9kaWZ5aW5nICd0b2dnbGUuaXNDaGVja2VkJyBpbiB0aGUgY29kZVxyXG4gICAgLy8g5Zyo5Luj56CB5Lit5L+u5pS5ICd0b2dnbGUuaXNDaGVja2VkJyDml7bmmK/lkKbop6blj5EgJ3RvZ2dsZScg5LiOICdjaGVja0V2ZW50cycg5LqL5Lu2XHJcbiAgICBjYy5Ub2dnbGUuX3RyaWdnZXJFdmVudEluU2NyaXB0X2lzQ2hlY2tlZCA9IHRydWU7XHJcbn1cclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Sdk/MiniGameSdk.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'c1af9nd7gNA95YJ04h9DdNX', 'MiniGameSdk'); +// Script/Sdk/MiniGameSdk.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MiniGameSdk = void 0; +/** + * 小游戏平台SDK工具封装,目前只支持微信和抖音平台 + */ +var MiniGameSdk; +(function (MiniGameSdk) { + function isWechat() { + //@ts-ignore + return window.wx !== null && window.wx !== undefined; + } + MiniGameSdk.isWechat = isWechat; + function isBytedance() { + //@ts-ignore + return window.tt !== null && window.tt !== undefined; + } + MiniGameSdk.isBytedance = isBytedance; + function getSysWinSize() { + var sys; + if (isWechat()) { + // @ts-ignore + sys = wx.getSystemInfoSync(); + } + else if (isBytedance()) { + // @ts-ignore + sys = tt.getSystemInfoSync(); + } + var size = { width: 0, height: 0 }; + if (sys) { + size.width = sys.windowWidth; + size.height = sys.windowHeight; + } + return size; + } + /** + * 插屏广告。微信抖音都支持! + */ + var ADInterstitial = /** @class */ (function () { + function ADInterstitial(adUid) { + this._adUid = adUid; + } + Object.defineProperty(ADInterstitial.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADInterstitial.prototype.show = function () { + var _this = this; + var _a, _b; + // @ts-ignore + if (isWechat() && !wx.createInterstitialAd) { + console.warn('wechat unsupport interstitial AD!'); + this._interstitial = null; + return; + } + // @ts-ignore + if (isBytedance() && !tt.createInterstitialAd) { + console.warn('bytedance unsupport interstitial AD!'); + this._interstitial = null; + return; + } + if (this._interstitial) { + this._interstitial.load(); + } + else { + if (isWechat()) { + // @ts-ignore + this._interstitial = wx.createInterstitialAd({ adUnitId: this._adUid }); + } + else if (isBytedance()) { + // @ts-ignore + this._interstitial = tt.createInterstitialAd({ adUnitId: this._adUid }); + } + else { + this._interstitial = null; + } + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.onLoad(function () { + console.log('load interstitial ad success'); + _this._interstitial.show().catch(function (err) { + console.log('catch interstitial ad error:', err); + }); + }); + (_b = this._interstitial) === null || _b === void 0 ? void 0 : _b.onError(function (err) { + console.log('interstitial ad on error:', err); + }); + } + }; + ADInterstitial.prototype.destory = function () { + var _a; + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADInterstitial; + }()); + var ADBanner = /** @class */ (function () { + /** + * 抖音和微信都支持 + * 横幅广告。预估宽度默认为300,预估高度为140。如果你不确定就按默认值来。 + * @param adUid 广告UID,后端配置 + * @param isTop 是否在屏幕顶部展示。内部会自动居中计算位置。 + * @param bannerWidth 横幅广告的预估宽度。默认300 + * @param autoShow 广告加载完成后是否立刻显示,默认为不显示 + */ + function ADBanner(adUid, param, bannerWidth, autoShow) { + if (bannerWidth === void 0) { bannerWidth = 300; } + if (autoShow === void 0) { autoShow = false; } + this._adUid = adUid; + this.create(autoShow, bannerWidth, param); // 默认300比较合适 + } + Object.defineProperty(ADBanner.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADBanner.prototype.create = function (autoShow, bannerWidth, param) { + var _this = this; + var _a, _b; + if (!isWechat() && !isBytedance()) { + this._banner = null; + return; + } + this.destroy(); + var winSize = getSysWinSize(); + var height = bannerWidth * 0.4; + var top = 0, left = 0; + if (typeof param === "boolean") { + left = (winSize.width - bannerWidth) / 2; + top = param ? 5 : (winSize.height - height); + } + else { + left = param.left; + top = param.top; + } + var params = { + adUnitId: this._adUid, + adIntervals: 30, + style: { left: left, top: top, width: bannerWidth } + }; + if (isWechat()) { + // @ts-ignore + this._banner = wx.createBannerAd(params); + } + else if (isBytedance()) { + // @ts-ignore + this._banner = tt.createBannerAd(params); + } + else { + this._banner = null; + } + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.onError(function (err) { + console.log('ad banner error:', err); + }); + (_b = this._banner) === null || _b === void 0 ? void 0 : _b.onLoad(function () { + autoShow && _this._banner.show(); + }); + }; + ADBanner.prototype.show = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.show(); + }; + ADBanner.prototype.hide = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.hide(); + }; + ADBanner.prototype.destroy = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADBanner; + }()); + var ADCustom = /** @class */ (function () { + /** + * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持! + * @param adUid 广告UID,后端配置 + * @param top 从左上角开始,距离屏幕顶部的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。 + * @param left 从左上角开始,距离屏幕最左边的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。 + * @param scale 原生模板广告的尺寸,默认为1,即100%。此值在微信服务后端广告中获得,默认为100%,目前有100%,90%,80%三种,一般情况不用修改。若有修改,记得传入值,例如90%就传入0.9。 + */ + function ADCustom(adUid, top, left, scale) { + if (top === void 0) { top = 0; } + if (left === void 0) { left = 0; } + if (scale === void 0) { scale = 1.0; } + this._adUid = adUid; + this.createCustomAd(top, left, scale); + } + Object.defineProperty(ADCustom.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADCustom.prototype.createCustomAd = function (top, left, scale) { + var _a; + if (!isWechat()) { // only wechat support custom ad + this._adCustom = null; + console.log('Only wechat support Custom Ad'); + return; + } + this.destroy(); + // 原生模板5个应用宽度为375,若设置了缩放比例,则宽度也需要设置 + // let width = 375 * this._scale; + // let newLeft = (sys.windowWidth - width) / 2; + // let newTop = sys.windowHeight / 2; // 120是预估高度 + // @ts-ignore + this._adCustom = wx.createCustomAd({ + adUnitId: this._adUid, + style: { left: left, top: top, fixed: true } + }); + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.onError(function (err) { + console.log('ad custom error:', err); + }); + }; + ADCustom.prototype.show = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.show(); + }; + ADCustom.prototype.hide = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.hide(); + }; + ADCustom.prototype.destroy = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADCustom; + }()); + /** + * 视频广告用户点击行为结果 + */ + var EAdVideoResult; + (function (EAdVideoResult) { + /** + * 用户看完了广告,游戏可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["ACCEPT"] = 0] = "ACCEPT"; + /** + * 用户中途关闭了广告,即未看完状态。不可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["REJECT"] = 1] = "REJECT"; + /** + * 广告组件内部发生了错误。不可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["ERROR"] = 2] = "ERROR"; + })(EAdVideoResult = MiniGameSdk.EAdVideoResult || (MiniGameSdk.EAdVideoResult = {})); + var ADVideo = /** @class */ (function () { + function ADVideo(adUid) { + this._adVideo = null; + this._adUid = adUid; + } + Object.defineProperty(ADVideo.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + /** + * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount + * @param onResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 + * @param target onResult的拥有者 + * @param maxVideoCount 可以连续看最大视频个数,可最大化商业效率。默认为3个。 + * @returns + */ + ADVideo.prototype.show = function (onResult, target, maxVideoCount) { + var _this = this; + var _a, _b, _c, _d, _e; + if (maxVideoCount === void 0) { maxVideoCount = 3; } + var callback = function (state, count) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, state, count); + }; + if (!isWechat() && !isBytedance()) { + callback(EAdVideoResult.ACCEPT, 1); + this._adVideo = null; + return; + } + var onAdVideoClosed = function (res) { + var _a; + (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.offClose(onAdVideoClosed); + if (isWechat()) { + if (res && res.isEnded || res === undefined) { + callback(EAdVideoResult.ACCEPT, 1); + } + else { + callback(EAdVideoResult.REJECT, 0); + } + } + else if (isBytedance()) { + var resConverted = res; + if (resConverted && resConverted.count > 0) { + callback(EAdVideoResult.ACCEPT, resConverted.count); + } + else { + callback(EAdVideoResult.REJECT, 0); + } + } + }; + (_a = this._adVideo) === null || _a === void 0 ? void 0 : _a.offClose(onAdVideoClosed); + if (isWechat()) { + // @ts-ignore + this._adVideo = wx.createRewardedVideoAd({ + adUnitId: this._adUid + }); + } + else if (isBytedance()) { + // @ts-ignore + this._adVideo = tt.createRewardedVideoAd({ + adUnitId: this._adUid, + multiton: true, + multitonRewardMsg: ['多1次奖励', '再多一次奖励', '再多一次奖励'], + multitonRewardTimes: maxVideoCount, + }); + } + else { + this._adVideo = null; + } + (_b = this._adVideo) === null || _b === void 0 ? void 0 : _b.onLoad(function () { + console.log('Ad load success'); + }); + (_c = this._adVideo) === null || _c === void 0 ? void 0 : _c.onError(function (err) { + console.log('Ad video error:', err); + callback(EAdVideoResult.ERROR, 0); + }); + (_d = this._adVideo) === null || _d === void 0 ? void 0 : _d.onClose(onAdVideoClosed); + (_e = this._adVideo) === null || _e === void 0 ? void 0 : _e.show().catch(function () { + var _a; + (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.load().then(function () { var _a; return (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.show(); }).catch(function (err) { + console.log('Catch video ad error:', err); + callback(EAdVideoResult.ERROR, 0); + }); + }); + }; + ADVideo.prototype.destory = function () { + var _a; + (_a = this._adVideo) === null || _a === void 0 ? void 0 : _a.destory(); + }; + return ADVideo; + }()); + var EAdBannerLocation; + (function (EAdBannerLocation) { + /** + * 屏幕顶部 + */ + EAdBannerLocation[EAdBannerLocation["TOP"] = 0] = "TOP"; + /** + * 屏幕底部 + */ + EAdBannerLocation[EAdBannerLocation["BOTTOM"] = 1] = "BOTTOM"; + })(EAdBannerLocation = MiniGameSdk.EAdBannerLocation || (MiniGameSdk.EAdBannerLocation = {})); + var AdvertManager = /** @class */ (function () { + function AdvertManager() { + this._customs = {}; + } + Object.defineProperty(AdvertManager, "instance", { + get: function () { + if (!AdvertManager._instance) { + AdvertManager._instance = new AdvertManager(); + } + return AdvertManager._instance; + }, + enumerable: false, + configurable: true + }); + /** + * 预加载横幅广告,不会显示。只有你在调用showBanner时才会显示。 + * 可重复调用,但是会销毁上一次的实例。一般情况,全局有一个就行了,太多占用内存,而且没必要。 + * @param adUid 广告UID + * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置 + * @param scale 默认为跟屏幕一样的宽度,可以通过设置缩放比例来调整大小。当然,平台有规定最大或最小宽度,函数内部会自动计算。 + */ + AdvertManager.prototype.loadBanner = function (adUid, location, scale) { + var _a; + if (location === void 0) { location = EAdBannerLocation.TOP; } + if (scale === void 0) { scale = 1.0; } + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + var size = getSysWinSize(); + // 当 style.width 小于 300 时,会取作 300。 当 style.width 大于屏幕宽度时,会取作屏幕宽度。 + var width = size.width * scale; + width = width < 300 ? 300 : width; // 最小值矫正 + width = width > size.width ? size.width : width; //最大值矫正 + this._banner = typeof location === 'number' ? new ADBanner(adUid, location === EAdBannerLocation.TOP, width, false) : new ADBanner(adUid, location, width, false); + }; + /** + * 显示横幅广告 + */ + AdvertManager.prototype.showBanner = function () { + if (this._banner) { + this._banner.show(); + } + else { + console.warn('MiniGameSDK: banner is null, you must call loadBanner(...) first!'); + } + }; + /** + * 隐藏横幅广告 + */ + AdvertManager.prototype.hideBanner = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.hide(); + }; + /** + * 弹出插屏广告 + * @param adUid 广告单元id + */ + AdvertManager.prototype.showInterstitial = function (adUid) { + var _a; + if (this._interstitial && this._interstitial.aduid === adUid) { + this._interstitial.show(); + } + else { + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.destory(); + this._interstitial = new ADInterstitial(adUid); + this._interstitial.show(); + } + }; + /** + * 加载原生模板广告,不会显示。只有你在调用showCustom时才会显示。 + * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持本函数,会调用无效! + * @param adUid 广告ID + * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置 + * @param scale 缩放比例,默认是1,即不缩放。这个缩放并不是自己填,而是根据微信MP后台你配置的原生模板广告的缩放比例填,目前有100%,90%,80%三种,一般情况不用修改。若有后台修改,记得传入值,例如90%就传入0.9。 + */ + AdvertManager.prototype.loadCustom = function (adUid, location, scale) { + if (location === void 0) { location = { top: 0, left: 0 }; } + if (scale === void 0) { scale = 1; } + // this._custom?.destroy(); + // this._custom = new ADCustom(adUid, location.top, location.left, scale); + if (this._customs[adUid]) { + console.log(adUid + " has been loaded."); + return; + } + this._customs[adUid] = new ADCustom(adUid, location.top, location.left, scale); + }; + /** + * 显示自定义广告。 + * @param adUid 广告的唯一标识符。使用此标识符来查找和显示特定的自定义广告。 + * + * 此方法尝试根据提供的adUid显示一个自定义广告。如果给定的adUid对应的自定义广告已加载, + * 则调用该广告的显示方法。如果广告未加载,则在控制台输出警告信息。 + */ + AdvertManager.prototype.showCustom = function (adUid) { + if (this._customs[adUid]) { + this._customs[adUid].show(); + } + else { + console.warn("You have not load " + adUid + " of Custom AD, can not show!"); + } + }; + /** + * 隐藏指定的自定义广告单元 + * + * 此方法用于隐藏通过广告单元标识符(adUid)指定的自定义广告。如果指定的广告单元已加载并显示, + * 则将其隐藏;如果广告单元未加载,则在控制台输出警告信息。 + * + * @param adUid 广告单元标识符,用于唯一标识一个自定义广告单元。 + */ + AdvertManager.prototype.hideCustom = function (adUid) { + if (this._customs[adUid]) { + this._customs[adUid].hide(); + } + else { + console.warn("You have not load " + adUid + " of Custom AD, can not hide!"); + } + }; + /** + * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount + * @param adUid 广告ID。如果与上一次UID不同,则内部会重新创建实例。开发者完全不用关心这个细节。 + * @param onVideoResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 + * @param target onVideoResult的拥有者 + * @param maxVideoCount 最大视频个数。默认是3,仅对抖音平台生效。微信平台看完视频count的结果永远是1或0 + */ + AdvertManager.prototype.showVideo = function (adUid, onVideoResult, target, maxVideoCount) { + var _a; + if (maxVideoCount === void 0) { maxVideoCount = 3; } + if (this._video && this._video.aduid === adUid) { + this._video.show(onVideoResult, target, maxVideoCount); + } + else { + (_a = this._video) === null || _a === void 0 ? void 0 : _a.destory(); + this._video = new ADVideo(adUid); + this._video.show(onVideoResult, target, maxVideoCount); + } + }; + /** + * 销毁内部所有实例,清空内存 + */ + AdvertManager.prototype.destroyAll = function () { + var _a, _b, _c, _d; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + this._banner = null; + (_b = this._interstitial) === null || _b === void 0 ? void 0 : _b.destory(); + this._interstitial = null; + (_c = this._video) === null || _c === void 0 ? void 0 : _c.destory(); + this._video = null; + if (this._customs) { + for (var val in this._customs) { + (_d = this._customs[val]) === null || _d === void 0 ? void 0 : _d.destroy(); + } + this._customs = {}; + } + }; + return AdvertManager; + }()); + MiniGameSdk.AdvertManager = AdvertManager; + var EGameClubIcon; + (function (EGameClubIcon) { + /** 绿色图标 */ + EGameClubIcon["GREEN"] = "green"; + /** 红色图标 */ + EGameClubIcon["WHITE"] = "white"; + /** 有黑色圆角背景的白色图标 */ + EGameClubIcon["DARK"] = "dark"; + /** 有白色圆角背景的绿色图标 */ + EGameClubIcon["LIGHT"] = "light"; + })(EGameClubIcon = MiniGameSdk.EGameClubIcon || (MiniGameSdk.EGameClubIcon = {})); + var GameClub = /** @class */ (function () { + function GameClub() { + } + Object.defineProperty(GameClub, "instance", { + get: function () { + if (!this._instance) { + this._instance = new GameClub(); + } + return this._instance; + }, + enumerable: false, + configurable: true + }); + /** + * 创建游戏圈按钮 + * @param icon + * @param position + * @param size + * @param openLink + */ + GameClub.prototype.create = function (icon, position, size, openLink) { + if (icon === void 0) { icon = EGameClubIcon.GREEN; } + if (position === void 0) { position = { top: 0, left: 0 }; } + if (size === void 0) { size = { width: 40, height: 40 }; } + if (isWechat()) { + // @ts-ignore + this._club = wx.createGameClubButton({ + icon: icon, + style: { + left: position.left, + top: position.top, + width: size.width, + height: size.height + }, + openlink: openLink + }); + } + }; + GameClub.prototype.show = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.show(); + }; + GameClub.prototype.hide = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.hide(); + }; + GameClub.prototype.destory = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return GameClub; + }()); + MiniGameSdk.GameClub = GameClub; + /** + * 振动类型 + */ + var EVirbrateType; + (function (EVirbrateType) { + /** + * 短振动 + */ + EVirbrateType[EVirbrateType["SHORT"] = 0] = "SHORT"; + /** + * 长振动 + */ + EVirbrateType[EVirbrateType["LONG"] = 1] = "LONG"; + })(EVirbrateType = MiniGameSdk.EVirbrateType || (MiniGameSdk.EVirbrateType = {})); + /** + * 平台常用API合集 + */ + var API = /** @class */ (function () { + function API() { + } + /** + * 分享app给朋友,微信小游戏分享是没有onSuccess回调的。 + * @param title 标题 + * @param description 细节描述信息 + * @param imageUrl 图片地址 + * @param query 查询信息 + * @param onSuccess 抖音会回调,微信不会回调 + */ + API.shareAppToFriends = function (title, description, imageUrl, query, onSuccess) { + if (description === void 0) { description = ''; } + if (isWechat()) { + try { + //@ts-ignore + wx.shareAppMessage({ + title: title, + imageUrl: imageUrl, + query: query, + }); + } + catch (err) { + console.log("share faild: " + err); + } + } + if (isBytedance()) { + //@ts-ignore + tt.shareAppMessage({ + title: title, + desc: description, + imageUrl: imageUrl !== null && imageUrl !== void 0 ? imageUrl : '', + query: query !== null && query !== void 0 ? query : '', + success: function (res) { + console.log('share success:', res); + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + }, + fail: function (res) { + console.log('share fail:', res); + } + }); + } + }; + /** + * 显示提示信息 + * @param title 标题 + * @param duration 时长(单位:秒) + * @returns + */ + API.showToast = function (title, duration) { + if (duration === void 0) { duration = 2; } + if (isWechat()) { + // @ts-ignore + wx.showToast({ + title: title, + icon: 'success', + duration: duration * 1000 + }); + } + if (isBytedance()) { + //@ts-ignore + tt.showToast({ + title: title, + duration: duration * 1000, + success: function (res) { + console.log("" + res); + }, + fail: function (res) { + console.log("showToast\u8C03\u7528\u5931\u8D25"); + }, + }); + } + }; + /** + * 设备震动效果,默认为短震动。注意:可能一些机型不会生效,具体看平台方的说明 + * @param type MiniGameSdk.API.EVirbrateType + */ + API.vibrate = function (type) { + if (type === void 0) { type = EVirbrateType.SHORT; } + if (isWechat()) { + switch (type) { + case EVirbrateType.SHORT: + //@ts-ignore + wx.vibrateShort({ + success: function (res) { + console.log('vibrate success:', res); + }, + fail: function (res) { + console.log('vibrateShort failed', res); + }, + }); + break; + case EVirbrateType.LONG: + //@ts-ignore + wx.vibrateLong({ + success: function (res) { + console.log('vibrate success', res); + }, + fail: function (res) { + console.log("vibrateLong failed", res); + }, + }); + break; + default: + break; + } + } + if (isBytedance()) { + switch (type) { + case EVirbrateType.SHORT: + //@ts-ignore + tt.vibrateShort({ + success: function (res) { + console.log('vibrate success:', res); + }, + fail: function (res) { + console.log('vibrateShort failed', res); + }, + }); + break; + case EVirbrateType.LONG: + //@ts-ignore + tt.vibrateLong({ + success: function (res) { + console.log('vibrate success', res); + }, + fail: function (res) { + console.log("vibrateLong failed", res); + }, + }); + break; + default: + break; + } + } + }; + /** + * 重启小游戏 + */ + API.reboot = function () { + if (isWechat()) { + //@ts-ignore + wx.restartMiniProgram({ + success: function () { + console.log('restart success'); + }, + fail: function () { + console.log('restart failed'); + } + }); + } + if (isBytedance()) { + try { + // @ts-ignore + tt.restartMiniProgramSync(); + } + catch (error) { + console.log("restartMiniProgramSync", error); + } + } + }; + /** + * 退出小游戏 + */ + API.exit = function () { + if (isWechat()) { + //@ts-ignore + wx.exitMiniProgram({ + success: function () { + console.log('exit success'); + }, + fail: function () { + console.log('exit failed'); + } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.exitMiniProgram({ + success: function (res) { + console.log("exit success:", res === null || res === void 0 ? void 0 : res.data); + }, + fail: function (res) { + console.log("exit fail:", res === null || res === void 0 ? void 0 : res.errMsg); + }, + }); + } + }; + /** + * 显示转发按钮。通常在刚进入游戏的时候调用。 + * 主要是打开平台“...”这个按钮里面的分享菜单,一般默认是关闭的,需要调用这个函数打开。可以让用户分享你的游戏入口。 + */ + API.showShareMenu = function () { + if (isWechat()) { + //@ts-ignore + wx.showShareMenu({ + withShareTicket: true, + menus: ['shareAppMessage', 'shareTimeline'], + success: function () { }, + fail: function () { }, + complete: function () { } + }); + } + if (isBytedance()) { + //@ts-ignore + tt.showShareMenu({ + success: function (res) { + console.log("show menu is showing"); + }, + fail: function (err) { + console.log("showShareMenu:", err.errMsg); + }, + complete: function (res) { + console.log("showShareMenu complete"); + }, + }); + } + }; + /** + * 微信小游戏:跳转到另外一款小游戏 + * 抖音小游戏:跳转到指定的视频界面 + * @param targetId 微信小游戏appid或者视频界面 + */ + API.navigateTo = function (targetId, onSuccess) { + if (isWechat()) { + // @ts-ignore + wx.navigateToMiniProgram({ + appId: targetId, + extraData: { + foo: 'bar' + }, + envVersion: 'develop', + success: function (res) { + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.navigateToVideoView({ + videoId: targetId, + success: function (res) { + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + }, + fail: function (err) { + console.log("bytedance navigateToVideoView fail", err); + }, + }); + } + }; + /** + * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session + * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null + */ + API.login = function (callback) { + var loginPlatform = function () { + if (isWechat()) { + //@ts-ignore + wx.login({ + success: function (res) { + if (res.code) { + API._loginCode = res.code; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + } + else { + console.log('login error:', res.errMsg); + } + }, + fail: function () { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log('login fail'); + } + }); + } + else if (isBytedance()) { + //@ts-ignore + tt.login({ + force: true, + success: function (res) { + var _a, _b; + console.log("login " + res.code + " " + res.anonymousCode); + if (res.code) { + API._loginCode = (_a = res.code) === null || _a === void 0 ? void 0 : _a.toString(); + API._loginAnonymousCode = (_b = res.anonymousCode) === null || _b === void 0 ? void 0 : _b.toString(); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + } + else { + console.log('login error:', res.errMsg); + } + }, + fail: function (res) { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log("login fail", res); + }, + }); + } + else { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log('not mini game platform, login codes are all null'); + } + }; + if (!API._loginCode) { + loginPlatform(); + } + else { + if (isWechat()) { + //@ts-ignore + wx.checkSession({ + success: function () { + console.log("session is valid, use current code:", API._loginCode); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + }, + fail: function () { + console.log("session expired"); + loginPlatform(); + } + }); + } + else if (isBytedance()) { + //@ts-ignore + tt.checkSession({ + success: function () { + console.log("session is valid, user current code: " + API._loginCode + ", " + API._loginAnonymousCode); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + }, + fail: function () { + console.log("session expired"); + loginPlatform(); + }, + }); + } + else { + console.log('not mini game platform, login null'); + callback === null || callback === void 0 ? void 0 : callback(null, null); + } + } + }; + /** + * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session + * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null + */ + API.getUserInfo = function (callback) { + //@ts-ignore + tt.getUserInfo({ + withCredentials: true, + success: function (res) { + API._userInfo = res; + callback(API._userInfo); + }, + fail: function (err) { + callback(err); + } + }); + }; + /** + * 调用微信云函数。由于参数需要自定义,所以为any,需要自行解释。函数只完成通道和处理一场的作用 + * @param callback 返回云函数调用结果。需要检查返回参数是否为空,失败的时候为空 + * @param name 云函数的名字 + * @param data 云函数的内容 + */ + API.callWechatCloudFunction = function (callback, name, data) { + if (!isWechat()) { + console.log('Not wechat platform, not support callWechatCloudFunction'); + return; + } + this.login(function (code, anonymousCode) { + if (!API._hasInitWechatCloudFunction) { + //@ts-ignore + wx.cloud.init(); + API._hasInitWechatCloudFunction = true; + } + //@ts-ignore + wx.cloud.callFunction({ + name: name, + data: data, + success: function (res) { return callback === null || callback === void 0 ? void 0 : callback(res); }, + fail: function (err) { + console.log('wechat cloud function error:', err); + callback === null || callback === void 0 ? void 0 : callback(null); + } + }); + }); + }; + /** + * 存储用户信息,数据量不能大。可以考虑用于分数排行榜。用户之间可共享排行数据。 + * @param key + * @param value + */ + API.setUserCloudStorage = function (key, value) { + if (isWechat()) { + // @ts-ignore + wx.setUserCloudStorage({ + KVDataList: [{ key: key, value: value }], + success: function () { return console.log("set cloud storage success:" + key + ", value:" + value); }, + fail: function (err) { return console.log('set cloud storage error:', err); } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.setUserCloudStorage({ + KVDataList: [{ key: key, value: value, }], + success: function () { return console.log("set cloud storage success:" + key + ", value:" + value); }, + fail: function (err) { return console.log('set cloud storage error:', err); } + }); + } + }; + API._loginCode = null; + API._loginAnonymousCode = null; + API._hasInitWechatCloudFunction = false; + API._userInfo = null; + return API; + }()); + MiniGameSdk.API = API; + /** + * 抖音侧边栏专属接口 + */ + var BytedanceSidebar = /** @class */ (function () { + function BytedanceSidebar() { + } + /** + * 本游戏在抖音环境下启动监控,需要放在全局环境中,保证能第一时间启动。因为可能监听抖音失败(抖音小游戏官方的说明)! + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + */ + BytedanceSidebar.listenFromSidebar = function (onResult, target) { + if (!isBytedance()) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + // @ts-ignore + tt.onShow(function (res) { + console.log('onShow launch res:', res); + if (res.scene === '021036') { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + console.log('launch from sidebar'); + } + else { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + console.log('NOT launch from douyin sidebar!'); + } + }); + // @ts-ignore + var options = tt.getLaunchOptionsSync(); + if (options && options.scene === '021036') { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + } + }; + /** + * 检测抖音侧边栏是否存在 + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + * @returns + */ + BytedanceSidebar.checkSideBar = function (onResult, target) { + if (!isBytedance()) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + //@ts-ignore + tt.checkScene({ + scene: "sidebar", + success: function (res) { + console.log("check scene success: ", res.isExist); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, res.isExist); + }, + fail: function (res) { + console.log("check scene fail:", res); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + } + }); + }; + /** + * 跳转到抖音侧边栏 + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + * @returns + */ + BytedanceSidebar.navigateToSidebar = function (onResult, target) { + if (!isBytedance()) { + console.log("not douyin platform!"); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + // @ts-ignore + tt.navigateToScene({ + scene: "sidebar", + success: function () { + console.log("navigate success"); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + }, + fail: function (res) { + console.log("navigate failed reason:", res); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + }, + }); + }; + return BytedanceSidebar; + }()); + MiniGameSdk.BytedanceSidebar = BytedanceSidebar; +})(MiniGameSdk = exports.MiniGameSdk || (exports.MiniGameSdk = {})); + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXE1pbmlHYW1lU2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsSUFBaUIsV0FBVyxDQXNtQzNCO0FBdG1DRCxXQUFpQixXQUFXO0lBWXhCLFNBQWdCLFFBQVE7UUFDcEIsWUFBWTtRQUNaLE9BQU8sTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUM7SUFDekQsQ0FBQztJQUhlLG9CQUFRLFdBR3ZCLENBQUE7SUFFRCxTQUFnQixXQUFXO1FBQ3ZCLFlBQVk7UUFDWixPQUFPLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDO0lBQ3pELENBQUM7SUFIZSx1QkFBVyxjQUcxQixDQUFBO0lBR0QsU0FBUyxhQUFhO1FBQ2xCLElBQUksR0FBUSxDQUFDO1FBQ2IsSUFBSSxRQUFRLEVBQUUsRUFBRTtZQUNaLGFBQWE7WUFDYixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDaEM7YUFBTSxJQUFJLFdBQVcsRUFBRSxFQUFFO1lBQ3RCLGFBQWE7WUFDYixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDaEM7UUFFRCxJQUFJLElBQUksR0FBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzFDLElBQUksR0FBRyxFQUFFO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztTQUNsQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNIO1FBUUksd0JBQVksS0FBYTtZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtB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c0IsQ0FBQyxDQUFDO2dCQUNwQyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQzlCLE9BQU87YUFDVjtZQUVELGFBQWE7WUFDYixFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUNmLEtBQUssRUFBRSxTQUFTO2dCQUNoQixPQUFPLEVBQUU7b0JBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO29CQUNoQyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2pDLENBQUM7Z0JBQ0QsSUFBSSxFQUFFLFVBQUMsR0FBUTtvQkFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUM1QyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ2xDLENBQUM7YUFDSixDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0wsdUJBQUM7SUFBRCxDQW5GQSxBQW1GQyxJQUFBO0lBbkZZLDRCQUFnQixtQkFtRjVCLENBQUE7QUFFTCxDQUFDLEVBdG1DZ0IsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFzbUMzQiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiDlsI/muLjmiI/lubPlj7BTREvlt6XlhbflsIHoo4XvvIznm67liY3lj6rmlK/mjIHlvq7kv6Hlkozmipbpn7PlubPlj7BcclxuICovXHJcbmV4cG9ydCBuYW1lc3BhY2UgTWluaUdhbWVTZGsge1xyXG5cclxuICAgIGludGVyZmFjZSBJU2l6ZSB7XHJcbiAgICAgICAgd2lkdGg6IG51bWJlcjtcclxuICAgICAgICBoZWlnaHQ6IG51bWJlcjtcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgaW50ZXJmYWNlIElQb3NpdGlvbiB7XHJcbiAgICAgICAgdG9wOiBudW1iZXI7XHJcbiAgICAgICAgbGVmdDogbnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBmdW5jdGlvbiBpc1dlY2hhdCgpOiBib29sZWFuIHtcclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICByZXR1cm4gd2luZG93Lnd4ICE9PSBudWxsICYmIHdpbmRvdy53eCAhPT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0J5dGVkYW5jZSgpOiBib29sZWFuIHtcclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICByZXR1cm4gd2luZG93LnR0ICE9PSBudWxsICYmIHdpbmRvdy50dCAhPT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRTeXNXaW5TaXplKCk6IElTaXplIHtcclxuICAgICAgICBsZXQgc3lzOiBhbnk7XHJcbiAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBzeXMgPSB3eC5nZXRTeXN0ZW1JbmZvU3luYygpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHN5cyA9IHR0LmdldFN5c3RlbUluZm9TeW5jKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc2l6ZTogSVNpemUgPSB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfTtcclxuICAgICAgICBpZiAoc3lzKSB7XHJcbiAgICAgICAgICAgIHNpemUud2lkdGggPSBzeXMud2luZG93V2lkdGg7XHJcbiAgICAgICAgICAgIHNpemUuaGVpZ2h0ID0gc3lzLndpbmRvd0hlaWdodDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBzaXplO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5o+S5bGP5bm/5ZGK44CC5b6u5L+h5oqW6Z+z6YO95pSv5oyB77yBXHJcbiAgICAgKi9cclxuICAgIGNsYXNzIEFESW50ZXJzdGl0aWFsIHtcclxuICAgICAgICBwcml2YXRlIF9hZFVpZDogc3RyaW5nO1xyXG4gICAgICAgIHByaXZhdGUgX2ludGVyc3RpdGlhbDogYW55O1xyXG5cclxuICAgICAgICBnZXQgYWR1aWQoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZFVpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0cnVjdG9yKGFkVWlkOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRVaWQgPSBhZFVpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNob3coKSB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkgJiYgIXd4LmNyZWF0ZUludGVyc3RpdGlhbEFkKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ3dlY2hhdCB1bnN1cHBvcnQgaW50ZXJzdGl0aWFsIEFEIScpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBpZiAoaXNCeXRlZGFuY2UoKSAmJiAhdHQuY3JlYXRlSW50ZXJzdGl0aWFsQWQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignYnl0ZWRhbmNlIHVuc3VwcG9ydCBpbnRlcnN0aXRpYWwgQUQhJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX2ludGVyc3RpdGlhbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsLmxvYWQoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IHd4LmNyZWF0ZUludGVyc3RpdGlhbEFkKHsgYWRVbml0SWQ6IHRoaXMuX2FkVWlkIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IHR0LmNyZWF0ZUludGVyc3RpdGlhbEFkKHsgYWRVbml0SWQ6IHRoaXMuX2FkVWlkIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbD8ub25Mb2FkKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbG9hZCBpbnRlcnN0aXRpYWwgYWQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbC5zaG93KCkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjYXRjaCBpbnRlcnN0aXRpYWwgYWQgZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbD8ub25FcnJvcigoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnaW50ZXJzdGl0aWFsIGFkIG9uIGVycm9yOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBkZXN0b3J5KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWw/LmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xhc3MgQURCYW5uZXIge1xyXG4gICAgICAgIHByaXZhdGUgX2FkVWlkOiBzdHJpbmc7XHJcbiAgICAgICAgcHJpdmF0ZSBfYmFubmVyOiBhbnk7XHJcblxyXG4gICAgICAgIGdldCBhZHVpZCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5oqW6Z+z5ZKM5b6u5L+h6YO95pSv5oyBXHJcbiAgICAgICAgICog5qiq5bmF5bm/5ZGK44CC6aKE5Lyw5a695bqm6buY6K6k5Li6MzAw77yM6aKE5Lyw6auY5bqm5Li6MTQw44CC5aaC5p6c5L2g5LiN56Gu5a6a5bCx5oyJ6buY6K6k5YC85p2l44CCXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRilVJRO+8jOWQjuerr+mFjee9rlxyXG4gICAgICAgICAqIEBwYXJhbSBpc1RvcCDmmK/lkKblnKjlsY/luZXpobbpg6jlsZXnpLrjgILlhoXpg6jkvJroh6rliqjlsYXkuK3orqHnrpfkvY3nva7jgIJcclxuICAgICAgICAgKiBAcGFyYW0gYmFubmVyV2lkdGgg5qiq5bmF5bm/5ZGK55qE6aKE5Lyw5a695bqm44CC6buY6K6kMzAwXHJcbiAgICAgICAgICogQHBhcmFtIGF1dG9TaG93IOW5v+WRiuWKoOi9veWujOaIkOWQjuaYr+WQpueri+WIu+aYvuekuu+8jOm7mOiupOS4uuS4jeaYvuekulxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0cnVjdG9yKGFkVWlkOiBzdHJpbmcsIHBhcmFtOiBib29sZWFuIHwgSVBvc2l0aW9uLCBiYW5uZXJXaWR0aDogbnVtYmVyID0gMzAwLCBhdXRvU2hvdzogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FkVWlkID0gYWRVaWQ7XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlKGF1dG9TaG93LCBiYW5uZXJXaWR0aCwgcGFyYW0pOyAvLyDpu5jorqQzMDDmr5TovoPlkIjpgIJcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByaXZhdGUgY3JlYXRlKGF1dG9TaG93OiBib29sZWFuLCBiYW5uZXJXaWR0aDogbnVtYmVyLCBwYXJhbTogYm9vbGVhbiB8IElQb3NpdGlvbikge1xyXG4gICAgICAgICAgICBpZiAoIWlzV2VjaGF0KCkgJiYgIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Jhbm5lciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xyXG5cclxuICAgICAgICAgICAgbGV0IHdpblNpemUgPSBnZXRTeXNXaW5TaXplKCk7XHJcblxyXG4gICAgICAgICAgICBsZXQgaGVpZ2h0ID0gYmFubmVyV2lkdGggKiAwLjQ7XHJcbiAgICAgICAgICAgIGxldCB0b3AgPSAwLCBsZWZ0ID0gMDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcGFyYW0gPT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0ID0gKHdpblNpemUud2lkdGggLSBiYW5uZXJXaWR0aCkgLyAyXHJcbiAgICAgICAgICAgICAgICB0b3AgPSBwYXJhbSA/IDUgOiAod2luU2l6ZS5oZWlnaHQgLSBoZWlnaHQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGVmdCA9IHBhcmFtLmxlZnQ7XHJcbiAgICAgICAgICAgICAgICB0b3AgPSBwYXJhbS50b3A7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICBhZFVuaXRJZDogdGhpcy5fYWRVaWQsXHJcbiAgICAgICAgICAgICAgICBhZEludGVydmFsczogMzAsLy8g6Ieq5Yqo5Yi35paw6aKR546H5LiN6IO95bCP5LqOMzDnp5JcclxuICAgICAgICAgICAgICAgIHN0eWxlOiB7IGxlZnQ6IGxlZnQsIHRvcDogdG9wLCB3aWR0aDogYmFubmVyV2lkdGggfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gd3guY3JlYXRlQmFubmVyQWQocGFyYW1zKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9iYW5uZXIgPSB0dC5jcmVhdGVCYW5uZXJBZChwYXJhbXMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5vbkVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2FkIGJhbm5lciBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8ub25Mb2FkKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGF1dG9TaG93ICYmIHRoaXMuX2Jhbm5lci5zaG93KCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2hvdygpIHtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5zaG93KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaWRlKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/LmhpZGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRlc3Ryb3koKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8uZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGFzcyBBREN1c3RvbSB7XHJcbiAgICAgICAgcHJpdmF0ZSBfYWRVaWQ6IHN0cmluZztcclxuICAgICAgICBwcml2YXRlIF9hZEN1c3RvbTogYW55O1xyXG5cclxuICAgICAgICBnZXQgYWR1aWQoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZFVpZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog55Sx5LqO5Y6f55Sf5qih5p2/5bm/5ZGK5Zyo5b6u5L+h5pyN5Yqh5ZCO56uv5Y+v5Lul5a6a5Yi25a695bqm5aSn5bCP77yM5Liq5pWw77yM57yp5pS+5q+U5L6L562J77yM5omA5Lul5L2N572u6LCD5pW06KaB5qC55o2u6K6+572u55qE5a695bqm5p2l5a6a44CC5oqW6Z+z5LiN5pSv5oyB77yBXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRilVJRO+8jOWQjuerr+mFjee9rlxyXG4gICAgICAgICAqIEBwYXJhbSB0b3Ag5LuO5bem5LiK6KeS5byA5aeL77yM6Led56a75bGP5bmV6aG26YOo55qE6Led56a744CC5rOo5oSP77ya6L+Z5Liq5pWw5o2u5Li66K6+5aSH5bGP5bmV5a695bqmd2lkdGjjgILlpoLmnpzpnIDopoHojrflj5blsY/luZXnmoTlg4/ntKDvvIzpnIDopoHkuZjku6Xorr7lpIflg4/ntKDmr5RQaXhlbC1SYXRpb++8jOS+i+WmgmlQaG9uZSAxMyBQcm/nmoRQaXhlbC1SYXRpb+S4ujPvvIzlg4/ntKDkuLpXaWR0aCoz44CCXHJcbiAgICAgICAgICogQHBhcmFtIGxlZnQg5LuO5bem5LiK6KeS5byA5aeL77yM6Led56a75bGP5bmV5pyA5bem6L6555qE6Led56a744CC5rOo5oSP77ya6L+Z5Liq5pWw5o2u5Li66K6+5aSH5bGP5bmV5a695bqmd2lkdGjjgILlpoLmnpzpnIDopoHojrflj5blsY/luZXnmoTlg4/ntKDvvIzpnIDopoHkuZjku6Xorr7lpIflg4/ntKDmr5RQaXhlbC1SYXRpb++8jOS+i+WmgmlQaG9uZSAxMyBQcm/nmoRQaXhlbC1SYXRpb+S4ujPvvIzlg4/ntKDkuLpXaWR0aCoz44CCXHJcbiAgICAgICAgICogQHBhcmFtIHNjYWxlIOWOn+eUn+aooeadv+W5v+WRiueahOWwuuWvuO+8jOm7mOiupOS4ujHvvIzljbMxMDAl44CC5q2k5YC85Zyo5b6u5L+h5pyN5Yqh5ZCO56uv5bm/5ZGK5Lit6I635b6X77yM6buY6K6k5Li6MTAwJe+8jOebruWJjeaciTEwMCXvvIw5MCXvvIw4MCXkuInnp43vvIzkuIDoiKzmg4XlhrXkuI3nlKjkv67mlLnjgILoi6XmnInkv67mlLnvvIzorrDlvpfkvKDlhaXlgLzvvIzkvovlpoI5MCXlsLHkvKDlhaUwLjnjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBjb25zdHJ1Y3RvcihhZFVpZDogc3RyaW5nLCB0b3A6IG51bWJlciA9IDAsIGxlZnQ6IG51bWJlciA9IDAsIHNjYWxlOiBudW1iZXIgPSAxLjApIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRVaWQgPSBhZFVpZDtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVDdXN0b21BZCh0b3AsIGxlZnQsIHNjYWxlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByaXZhdGUgY3JlYXRlQ3VzdG9tQWQodG9wOiBudW1iZXIsIGxlZnQ6IG51bWJlciwgc2NhbGU6IG51bWJlcikge1xyXG4gICAgICAgICAgICBpZiAoIWlzV2VjaGF0KCkpIHsgLy8gb25seSB3ZWNoYXQgc3VwcG9ydCBjdXN0b20gYWRcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkQ3VzdG9tID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdPbmx5IHdlY2hhdCBzdXBwb3J0IEN1c3RvbSBBZCcpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgLy8g5Y6f55Sf5qih5p2/NeS4quW6lOeUqOWuveW6puS4ujM3Ne+8jOiLpeiuvue9ruS6hue8qeaUvuavlOS+i++8jOWImeWuveW6puS5n+mcgOimgeiuvue9rlxyXG4gICAgICAgICAgICAvLyBsZXQgd2lkdGggPSAzNzUgKiB0aGlzLl9zY2FsZTtcclxuICAgICAgICAgICAgLy8gbGV0IG5ld0xlZnQgPSAoc3lzLndpbmRvd1dpZHRoIC0gd2lkdGgpIC8gMjtcclxuICAgICAgICAgICAgLy8gbGV0IG5ld1RvcCA9IHN5cy53aW5kb3dIZWlnaHQgLyAyOyAvLyAxMjDmmK/pooTkvLDpq5jluqZcclxuXHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20gPSB3eC5jcmVhdGVDdXN0b21BZCh7XHJcbiAgICAgICAgICAgICAgICBhZFVuaXRJZDogdGhpcy5fYWRVaWQsXHJcbiAgICAgICAgICAgICAgICBzdHlsZTogeyBsZWZ0OiBsZWZ0LCB0b3A6IHRvcCwgZml4ZWQ6IHRydWUgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FkQ3VzdG9tPy5vbkVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2FkIGN1c3RvbSBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2hvdygpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20/LnNob3coKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGhpZGUoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FkQ3VzdG9tPy5oaWRlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZXN0cm95KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbT8uZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDop4bpopHlub/lkYrnlKjmiLfngrnlh7vooYzkuLrnu5PmnpxcclxuICAgICAqL1xyXG4gICAgZXhwb3J0IGVudW0gRUFkVmlkZW9SZXN1bHQge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOeUqOaIt+eci+WujOS6huW5v+WRiu+8jOa4uOaIj+WPr+WPkeaUvuWlluWKseOAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIEFDQ0VQVCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog55So5oi35Lit6YCU5YWz6Zet5LqG5bm/5ZGK77yM5Y2z5pyq55yL5a6M54q25oCB44CC5LiN5Y+v5Y+R5pS+5aWW5Yqx44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgUkVKRUNULFxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlub/lkYrnu4Tku7blhoXpg6jlj5HnlJ/kuobplJnor6/jgILkuI3lj6/lj5HmlL7lpZblirHjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBFUlJPUixcclxuICAgIH1cclxuXHJcbiAgICBjbGFzcyBBRFZpZGVvIHtcclxuICAgICAgICBwcml2YXRlIF9hZFVpZDogc3RyaW5nO1xyXG4gICAgICAgIHByaXZhdGUgX2FkVmlkZW86IGFueSA9IG51bGw7XHJcblxyXG4gICAgICAgIGdldCBhZHVpZCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3RydWN0b3IoYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICB0aGlzLl9hZFVpZCA9IGFkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog55Sx5LqO5b6u5L+h5ZKM5oqW6Z+z6KeG6aKR5bm/5ZGK5py65Yi25LiN5ZCM77yM5b6u5L+h5Y+v5Lul55yL55qE6KeG6aKR5bm/5ZGK5Liq5pWw5Y+q5pyJMOWSjDHkuKrvvIzmipbpn7PlubPlj7DliJnlj6/ku6XnnIswfm1heFZpZGVvQ291bnRcclxuICAgICAgICAgKiBAcGFyYW0gb25SZXN1bHQg5Lik5Liq5Y+C5pWw77ya56ys5LiA5LiqcmVz5pivRUFkVmlkZW9SZXN1bHTlrprkuYnvvIznrKzkuoxjb3VudOaYr+eUqOaIt+eci+S6huWkmuWwkeS4quinhumikeW5v+WRiuOAglxyXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQgb25SZXN1bHTnmoTmi6XmnInogIVcclxuICAgICAgICAgKiBAcGFyYW0gbWF4VmlkZW9Db3VudCDlj6/ku6Xov57nu63nnIvmnIDlpKfop4bpopHkuKrmlbDvvIzlj6/mnIDlpKfljJbllYbkuJrmlYjnjofjgILpu5jorqTkuLoz5Liq44CCXHJcbiAgICAgICAgICogQHJldHVybnMgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc2hvdyhvblJlc3VsdDogKHJlczogRUFkVmlkZW9SZXN1bHQsIGNvdW50OiBudW1iZXIpID0+IHZvaWQsIHRhcmdldD86IGFueSwgbWF4VmlkZW9Db3VudDogbnVtYmVyID0gMyk6IHZvaWQge1xyXG4gICAgICAgICAgICBsZXQgY2FsbGJhY2sgPSAoc3RhdGU6IEVBZFZpZGVvUmVzdWx0LCBjb3VudDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIHN0YXRlLCBjb3VudCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghaXNXZWNoYXQoKSAmJiAhaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soRUFkVmlkZW9SZXN1bHQuQUNDRVBULCAxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgb25BZFZpZGVvQ2xvc2VkID0gKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vZmZDbG9zZShvbkFkVmlkZW9DbG9zZWQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5pc0VuZGVkIHx8IHJlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LkFDQ0VQVCwgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soRUFkVmlkZW9SZXN1bHQuUkVKRUNULCAwKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcmVzQ29udmVydGVkID0gcmVzIGFzIHsgaXNFbmRlZDogYm9vbGVhbiwgY291bnQ6IG51bWJlciB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNDb252ZXJ0ZWQgJiYgcmVzQ29udmVydGVkLmNvdW50ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhFQWRWaWRlb1Jlc3VsdC5BQ0NFUFQsIHJlc0NvbnZlcnRlZC5jb3VudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soRUFkVmlkZW9SZXN1bHQuUkVKRUNULCAwKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8/Lm9mZkNsb3NlKG9uQWRWaWRlb0Nsb3NlZCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbyA9IHd4LmNyZWF0ZVJld2FyZGVkVmlkZW9BZCh7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRVbml0SWQ6IHRoaXMuX2FkVWlkXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvID0gdHQuY3JlYXRlUmV3YXJkZWRWaWRlb0FkKHtcclxuICAgICAgICAgICAgICAgICAgICBhZFVuaXRJZDogdGhpcy5fYWRVaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgbXVsdGl0b246IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbXVsdGl0b25SZXdhcmRNc2c6IFsn5aSaMeasoeWlluWKsScsICflho3lpJrkuIDmrKHlpZblirEnLCAn5YaN5aSa5LiA5qyh5aWW5YqxJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgbXVsdGl0b25SZXdhcmRUaW1lczogbWF4VmlkZW9Db3VudCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbyA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vbkxvYWQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0FkIGxvYWQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8/Lm9uRXJyb3IoKGVycjogeyBlcnJNc2c6IHN0cmluZywgZXJyQ29kZTogbnVtYmVyIH0pID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBZCB2aWRlbyBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soRUFkVmlkZW9SZXN1bHQuRVJST1IsIDApO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8/Lm9uQ2xvc2Uob25BZFZpZGVvQ2xvc2VkKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8/LnNob3coKS5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5sb2FkKCkudGhlbigoKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8/LnNob3coKSkuY2F0Y2goKGVycjogeyBlcnJNc2c6IHN0cmluZywgZXJyQ29kZTogbnVtYmVyIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0NhdGNoIHZpZGVvIGFkIGVycm9yOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LkVSUk9SLCAwKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZXN0b3J5KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5kZXN0b3J5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBlbnVtIEVBZEJhbm5lckxvY2F0aW9uIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlsY/luZXpobbpg6hcclxuICAgICAgICAgKi9cclxuICAgICAgICBUT1AsXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWxj+W5leW6lemDqFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIEJPVFRPTSxcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgY2xhc3MgQWR2ZXJ0TWFuYWdlciB7XHJcblxyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogQWR2ZXJ0TWFuYWdlcjtcclxuXHJcbiAgICAgICAgc3RhdGljIGdldCBpbnN0YW5jZSgpOiBBZHZlcnRNYW5hZ2VyIHtcclxuICAgICAgICAgICAgaWYgKCFBZHZlcnRNYW5hZ2VyLl9pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICAgICAgQWR2ZXJ0TWFuYWdlci5faW5zdGFuY2UgPSBuZXcgQWR2ZXJ0TWFuYWdlcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBBZHZlcnRNYW5hZ2VyLl9pbnN0YW5jZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByaXZhdGUgX3ZpZGVvOiBBRFZpZGVvO1xyXG4gICAgICAgIHByaXZhdGUgX2ludGVyc3RpdGlhbDogQURJbnRlcnN0aXRpYWw7XHJcbiAgICAgICAgcHJpdmF0ZSBfYmFubmVyOiBBREJhbm5lcjtcclxuICAgICAgICBwcml2YXRlIF9jdXN0b21zOiBSZWNvcmQ8c3RyaW5nLCBBREN1c3RvbT4gPSB7fTtcclxuXHJcbiAgICAgICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDpooTliqDovb3mqKrluYXlub/lkYrvvIzkuI3kvJrmmL7npLrjgILlj6rmnInkvaDlnKjosIPnlKhzaG93QmFubmVy5pe25omN5Lya5pi+56S644CCXHJcbiAgICAgICAgICog5Y+v6YeN5aSN6LCD55So77yM5L2G5piv5Lya6ZSA5q+B5LiK5LiA5qyh55qE5a6e5L6L44CC5LiA6Iis5oOF5Ya177yM5YWo5bGA5pyJ5LiA5Liq5bCx6KGM5LqG77yM5aSq5aSa5Y2g55So5YaF5a2Y77yM6ICM5LiU5rKh5b+F6KaB44CCXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRilVJRFxyXG4gICAgICAgICAqIEBwYXJhbSBsb2NhdGlvbiDkvY3nva7mnInkuKTnp43mg4XlhrXvvJox44CB5Y+v5Lul5Lyg5YWl5p6a5Li+5YC877yM6buY6K6k5LiK5pa5OyAy44CB5Y+v5Lul6Ieq5a6a5LmJ5L2N572u5Lyg5YWlSVBvc2l0aW9u77yM5rOo5oSPSVBvc2l0aW9u5Lit55qEdG9w5ZKMbGVmdOi3n+W5s+WPsOeahHRvcCxsZWZ05piv5LiA6Ie077yI5rKh5pyJ5LmY5Lul6K6+5aSH5YOP57Sg5q+UcmF0aW/vvInvvIzpnIDopoHlvIDlj5HogIXoh6rlt7HosIPor5XkvY3nva5cclxuICAgICAgICAgKiBAcGFyYW0gc2NhbGUg6buY6K6k5Li66Lef5bGP5bmV5LiA5qC355qE5a695bqm77yM5Y+v5Lul6YCa6L+H6K6+572u57yp5pS+5q+U5L6L5p2l6LCD5pW05aSn5bCP44CC5b2T54S277yM5bmz5Y+w5pyJ6KeE5a6a5pyA5aSn5oiW5pyA5bCP5a695bqm77yM5Ye95pWw5YaF6YOo5Lya6Ieq5Yqo6K6h566X44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIGxvYWRCYW5uZXIoYWRVaWQ6IHN0cmluZywgbG9jYXRpb246IEVBZEJhbm5lckxvY2F0aW9uIHwgSVBvc2l0aW9uID0gRUFkQmFubmVyTG9jYXRpb24uVE9QLCBzY2FsZTogbnVtYmVyID0gMS4wKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICBsZXQgc2l6ZTogSVNpemUgPSBnZXRTeXNXaW5TaXplKCk7XHJcbiAgICAgICAgICAgIC8vIOW9kyBzdHlsZS53aWR0aCDlsI/kuo4gMzAwIOaXtu+8jOS8muWPluS9nCAzMDDjgIIg5b2TIHN0eWxlLndpZHRoIOWkp+S6juWxj+W5leWuveW6puaXtu+8jOS8muWPluS9nOWxj+W5leWuveW6puOAglxyXG4gICAgICAgICAgICBsZXQgd2lkdGggPSBzaXplLndpZHRoICogc2NhbGU7XHJcbiAgICAgICAgICAgIHdpZHRoID0gd2lkdGggPCAzMDAgPyAzMDAgOiB3aWR0aDsgLy8g5pyA5bCP5YC855+r5q2jXHJcbiAgICAgICAgICAgIHdpZHRoID0gd2lkdGggPiBzaXplLndpZHRoID8gc2l6ZS53aWR0aCA6IHdpZHRoOyAvL+acgOWkp+WAvOefq+ato1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXIgPSB0eXBlb2YgbG9jYXRpb24gPT09ICdudW1iZXInID8gbmV3IEFEQmFubmVyKGFkVWlkLCBsb2NhdGlvbiA9PT0gRUFkQmFubmVyTG9jYXRpb24uVE9QLCB3aWR0aCwgZmFsc2UpIDogbmV3IEFEQmFubmVyKGFkVWlkLCBsb2NhdGlvbiwgd2lkdGgsIGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuuaoquW5heW5v+WRilxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBzaG93QmFubmVyKCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fYmFubmVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9iYW5uZXIuc2hvdygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdNaW5pR2FtZVNESzogYmFubmVyIGlzIG51bGwsIHlvdSBtdXN0IGNhbGwgbG9hZEJhbm5lciguLi4pIGZpcnN0IScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDpmpDol4/mqKrluYXlub/lkYpcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgaGlkZUJhbm5lcigpIHtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5oaWRlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlvLnlh7rmj5LlsY/lub/lkYpcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGK5Y2V5YWDaWRcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgc2hvd0ludGVyc3RpdGlhbChhZFVpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9pbnRlcnN0aXRpYWwgJiYgdGhpcy5faW50ZXJzdGl0aWFsLmFkdWlkID09PSBhZFVpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsLnNob3coKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbD8uZGVzdG9yeSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gbmV3IEFESW50ZXJzdGl0aWFsKGFkVWlkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbC5zaG93KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWKoOi9veWOn+eUn+aooeadv+W5v+WRiu+8jOS4jeS8muaYvuekuuOAguWPquacieS9oOWcqOiwg+eUqHNob3dDdXN0b23ml7bmiY3kvJrmmL7npLrjgIJcclxuICAgICAgICAgKiDnlLHkuo7ljp/nlJ/mqKHmnb/lub/lkYrlnKjlvq7kv6HmnI3liqHlkI7nq6/lj6/ku6XlrprliLblrr3luqblpKflsI/vvIzkuKrmlbDvvIznvKnmlL7mr5TkvovnrYnvvIzmiYDku6XkvY3nva7osIPmlbTopoHmoLnmja7orr7nva7nmoTlrr3luqbmnaXlrprjgILmipbpn7PkuI3mlK/mjIHmnKzlh73mlbDvvIzkvJrosIPnlKjml6DmlYjvvIFcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGKSURcclxuICAgICAgICAgKiBAcGFyYW0gbG9jYXRpb24g5L2N572u5pyJ5Lik56eN5oOF5Ya177yaMeOAgeWPr+S7peS8oOWFpeaemuS4vuWAvO+8jOm7mOiupOS4iuaWuTsgMuOAgeWPr+S7peiHquWumuS5ieS9jee9ruS8oOWFpUlQb3NpdGlvbu+8jOazqOaEj0lQb3NpdGlvbuS4reeahHRvcOWSjGxlZnTot5/lubPlj7DnmoR0b3AsbGVmdOaYr+S4gOiHtO+8iOayoeacieS5mOS7peiuvuWkh+WDj+e0oOavlHJhdGlv77yJ77yM6ZyA6KaB5byA5Y+R6ICF6Ieq5bex6LCD6K+V5L2N572uXHJcbiAgICAgICAgICogQHBhcmFtIHNjYWxlIOe8qeaUvuavlOS+i++8jOm7mOiupOaYrzHvvIzljbPkuI3nvKnmlL7jgILov5nkuKrnvKnmlL7lubbkuI3mmK/oh6rlt7HloavvvIzogIzmmK/moLnmja7lvq7kv6FNUOWQjuWPsOS9oOmFjee9rueahOWOn+eUn+aooeadv+W5v+WRiueahOe8qeaUvuavlOS+i+Whq++8jOebruWJjeaciTEwMCXvvIw5MCXvvIw4MCXkuInnp43vvIzkuIDoiKzmg4XlhrXkuI3nlKjkv67mlLnjgILoi6XmnInlkI7lj7Dkv67mlLnvvIzorrDlvpfkvKDlhaXlgLzvvIzkvovlpoI5MCXlsLHkvKDlhaUwLjnjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgbG9hZEN1c3RvbShhZFVpZDogc3RyaW5nLCBsb2NhdGlvbjogSVBvc2l0aW9uID0geyB0b3A6IDAsIGxlZnQ6IDAgfSwgc2NhbGU6IG51bWJlciA9IDEpIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5fY3VzdG9tPy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2N1c3RvbSA9IG5ldyBBREN1c3RvbShhZFVpZCwgbG9jYXRpb24udG9wLCBsb2NhdGlvbi5sZWZ0LCBzY2FsZSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9jdXN0b21zW2FkVWlkXSkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYCR7YWRVaWR9IGhhcyBiZWVuIGxvYWRlZC5gKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5fY3VzdG9tc1thZFVpZF0gPSBuZXcgQURDdXN0b20oYWRVaWQsIGxvY2F0aW9uLnRvcCwgbG9jYXRpb24ubGVmdCwgc2NhbGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5pi+56S66Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiueahOWUr+S4gOagh+ivhuespuOAguS9v+eUqOatpOagh+ivhuespuadpeafpeaJvuWSjOaYvuekuueJueWumueahOiHquWumuS5ieW5v+WRiuOAglxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIOatpOaWueazleWwneivleagueaNruaPkOS+m+eahGFkVWlk5pi+56S65LiA5Liq6Ieq5a6a5LmJ5bm/5ZGK44CC5aaC5p6c57uZ5a6a55qEYWRVaWTlr7nlupTnmoToh6rlrprkuYnlub/lkYrlt7LliqDovb3vvIxcclxuICAgICAgICAgKiDliJnosIPnlKjor6Xlub/lkYrnmoTmmL7npLrmlrnms5XjgILlpoLmnpzlub/lkYrmnKrliqDovb3vvIzliJnlnKjmjqfliLblj7DovpPlh7rorablkYrkv6Hmga/jgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgc2hvd0N1c3RvbShhZFVpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9jdXN0b21zW2FkVWlkXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3VzdG9tc1thZFVpZF0uc2hvdygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBZb3UgaGF2ZSBub3QgbG9hZCAke2FkVWlkfSBvZiBDdXN0b20gQUQsIGNhbiBub3Qgc2hvdyFgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6ZqQ6JeP5oyH5a6a55qE6Ieq5a6a5LmJ5bm/5ZGK5Y2V5YWDXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICog5q2k5pa55rOV55So5LqO6ZqQ6JeP6YCa6L+H5bm/5ZGK5Y2V5YWD5qCH6K+G56ym77yIYWRVaWTvvInmjIflrprnmoToh6rlrprkuYnlub/lkYrjgILlpoLmnpzmjIflrprnmoTlub/lkYrljZXlhYPlt7LliqDovb3lubbmmL7npLrvvIxcclxuICAgICAgICAgKiDliJnlsIblhbbpmpDol4/vvJvlpoLmnpzlub/lkYrljZXlhYPmnKrliqDovb3vvIzliJnlnKjmjqfliLblj7DovpPlh7rorablkYrkv6Hmga/jgIJcclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGK5Y2V5YWD5qCH6K+G56ym77yM55So5LqO5ZSv5LiA5qCH6K+G5LiA5Liq6Ieq5a6a5LmJ5bm/5ZGK5Y2V5YWD44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIGhpZGVDdXN0b20oYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fY3VzdG9tc1thZFVpZF0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1c3RvbXNbYWRVaWRdLmhpZGUoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgWW91IGhhdmUgbm90IGxvYWQgJHthZFVpZH0gb2YgQ3VzdG9tIEFELCBjYW4gbm90IGhpZGUhYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOeUseS6juW+ruS/oeWSjOaKlumfs+inhumikeW5v+WRiuacuuWItuS4jeWQjO+8jOW+ruS/oeWPr+S7peeci+eahOinhumikeW5v+WRiuS4quaVsOWPquaciTDlkowx5Liq77yM5oqW6Z+z5bmz5Y+w5YiZ5Y+v5Lul55yLMH5tYXhWaWRlb0NvdW50XHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiklE44CC5aaC5p6c5LiO5LiK5LiA5qyhVUlE5LiN5ZCM77yM5YiZ5YaF6YOo5Lya6YeN5paw5Yib5bu65a6e5L6L44CC5byA5Y+R6ICF5a6M5YWo5LiN55So5YWz5b+D6L+Z5Liq57uG6IqC44CCXHJcbiAgICAgICAgICogQHBhcmFtIG9uVmlkZW9SZXN1bHQg5Lik5Liq5Y+C5pWw77ya56ys5LiA5LiqcmVz5pivRUFkVmlkZW9SZXN1bHTlrprkuYnvvIznrKzkuoxjb3VudOaYr+eUqOaIt+eci+S6huWkmuWwkeS4quinhumikeW5v+WRiuOAgiBcclxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IG9uVmlkZW9SZXN1bHTnmoTmi6XmnInogIVcclxuICAgICAgICAgKiBAcGFyYW0gbWF4VmlkZW9Db3VudCDmnIDlpKfop4bpopHkuKrmlbDjgILpu5jorqTmmK8z77yM5LuF5a+55oqW6Z+z5bmz5Y+w55Sf5pWI44CC5b6u5L+h5bmz5Y+w55yL5a6M6KeG6aKRY291bnTnmoTnu5PmnpzmsLjov5zmmK8x5oiWMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBzaG93VmlkZW8oYWRVaWQ6IHN0cmluZywgb25WaWRlb1Jlc3VsdDogKHJlczogRUFkVmlkZW9SZXN1bHQsIGNvdW50OiBudW1iZXIpID0+IHZvaWQsIHRhcmdldD86IGFueSwgbWF4VmlkZW9Db3VudDogbnVtYmVyID0gMykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fdmlkZW8gJiYgdGhpcy5fdmlkZW8uYWR1aWQgPT09IGFkVWlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl92aWRlby5zaG93KG9uVmlkZW9SZXN1bHQsIHRhcmdldCwgbWF4VmlkZW9Db3VudCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl92aWRlbz8uZGVzdG9yeSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW8gPSBuZXcgQURWaWRlbyhhZFVpZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl92aWRlby5zaG93KG9uVmlkZW9SZXN1bHQsIHRhcmdldCwgbWF4VmlkZW9Db3VudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmUgOavgeWGhemDqOaJgOacieWunuS+i++8jOa4heepuuWGheWtmFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBkZXN0cm95QWxsKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/LmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbD8uZGVzdG9yeSgpO1xyXG4gICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fdmlkZW8/LmRlc3RvcnkoKTtcclxuICAgICAgICAgICAgdGhpcy5fdmlkZW8gPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX2N1c3RvbXMpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IHZhbCBpbiB0aGlzLl9jdXN0b21zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VzdG9tc1t2YWxdPy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jdXN0b21zID0ge307XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGVudW0gRUdhbWVDbHViSWNvbiB7XHJcbiAgICAgICAgLyoqIOe7v+iJsuWbvuaghyAqL1xyXG4gICAgICAgIEdSRUVOID0gJ2dyZWVuJyxcclxuXHJcbiAgICAgICAgLyoqIOe6ouiJsuWbvuaghyAqL1xyXG4gICAgICAgIFdISVRFID0gJ3doaXRlJyxcclxuXHJcbiAgICAgICAgLyoqIOaciem7keiJsuWchuinkuiDjOaZr+eahOeZveiJsuWbvuaghyAqL1xyXG4gICAgICAgIERBUksgPSAnZGFyaycsXHJcblxyXG4gICAgICAgIC8qKiDmnInnmb3oibLlnIbop5Log4zmma/nmoTnu7/oibLlm77moIcgKi9cclxuICAgICAgICBMSUdIVCA9ICdsaWdodCdcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgY2xhc3MgR2FtZUNsdWIge1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogR2FtZUNsdWI7XHJcblxyXG4gICAgICAgIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogR2FtZUNsdWIge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2luc3RhbmNlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBHYW1lQ2x1YigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByaXZhdGUgX2NsdWI6IGFueTtcclxuXHJcbiAgICAgICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDliJvlu7rmuLjmiI/lnIjmjInpkq5cclxuICAgICAgICAgKiBAcGFyYW0gaWNvbiBcclxuICAgICAgICAgKiBAcGFyYW0gcG9zaXRpb24gXHJcbiAgICAgICAgICogQHBhcmFtIHNpemUgXHJcbiAgICAgICAgICogQHBhcmFtIG9wZW5MaW5rIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNyZWF0ZShpY29uOiBFR2FtZUNsdWJJY29uID0gRUdhbWVDbHViSWNvbi5HUkVFTiwgcG9zaXRpb246IElQb3NpdGlvbiA9IHsgdG9wOiAwLCBsZWZ0OiAwIH0sIHNpemU6IElTaXplID0geyB3aWR0aDogNDAsIGhlaWdodDogNDAgfSwgb3Blbkxpbms/OiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NsdWIgPSB3eC5jcmVhdGVHYW1lQ2x1YkJ1dHRvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogaWNvbixcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBwb3NpdGlvbi5sZWZ0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IHBvc2l0aW9uLnRvcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHNpemUud2lkdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogc2l6ZS5oZWlnaHRcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG9wZW5saW5rOiBvcGVuTGlua1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNob3coKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsdWI/LnNob3coKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGhpZGUoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsdWI/LmhpZGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRlc3RvcnkoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsdWI/LmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5oyv5Yqo57G75Z6LXHJcbiAgICAgKi9cclxuICAgIGV4cG9ydCBlbnVtIEVWaXJicmF0ZVR5cGUge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOefreaMr+WKqFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIFNIT1JULFxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDplb/mjK/liqhcclxuICAgICAgICAgKi9cclxuICAgICAgICBMT05HXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlubPlj7DluLjnlKhBUEnlkIjpm4ZcclxuICAgICAqL1xyXG4gICAgZXhwb3J0IGNsYXNzIEFQSSB7XHJcbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgX2xvZ2luQ29kZTogc3RyaW5nID0gbnVsbDtcclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfbG9naW5Bbm9ueW1vdXNDb2RlOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF9oYXNJbml0V2VjaGF0Q2xvdWRGdW5jdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF91c2VySW5mbzogYW55ID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5YiG5LqrYXBw57uZ5pyL5Y+L77yM5b6u5L+h5bCP5ri45oiP5YiG5Lqr5piv5rKh5pyJb25TdWNjZXNz5Zue6LCD55qE44CCXHJcbiAgICAgICAgICogQHBhcmFtIHRpdGxlIOagh+mimFxyXG4gICAgICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDnu4boioLmj4/ov7Dkv6Hmga8gXHJcbiAgICAgICAgICogQHBhcmFtIGltYWdlVXJsIOWbvueJh+WcsOWdgFxyXG4gICAgICAgICAqIEBwYXJhbSBxdWVyeSDmn6Xor6Lkv6Hmga9cclxuICAgICAgICAgKiBAcGFyYW0gb25TdWNjZXNzIOaKlumfs+S8muWbnuiwg++8jOW+ruS/oeS4jeS8muWbnuiwg1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzaGFyZUFwcFRvRnJpZW5kcyh0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nID0gJycsIGltYWdlVXJsPzogc3RyaW5nLCBxdWVyeT86IHN0cmluZywgb25TdWNjZXNzPzogKCkgPT4gdm9pZCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICB3eC5zaGFyZUFwcE1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlVXJsOiBpbWFnZVVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHF1ZXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHNoYXJlIGZhaWxkOiAke2Vycn1gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdHQuc2hhcmVBcHBNZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VVcmw6IGltYWdlVXJsID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzaGFyZSBzdWNjZXNzOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VjY2Vzcz8uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzaGFyZSBmYWlsOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuuaPkOekuuS/oeaBr1xyXG4gICAgICAgICAqIEBwYXJhbSB0aXRsZSDmoIfpophcclxuICAgICAgICAgKiBAcGFyYW0gZHVyYXRpb24g5pe26ZW/77yI5Y2V5L2N77ya56eS77yJXHJcbiAgICAgICAgICogQHJldHVybnMgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIHNob3dUb2FzdCh0aXRsZTogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gMikge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3guc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbiAqIDEwMDBcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0dC5zaG93VG9hc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24gKiAxMDAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYCR7cmVzfWApO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2hvd1RvYXN06LCD55So5aSx6LSlYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDorr7lpIfpnIfliqjmlYjmnpzvvIzpu5jorqTkuLrnn63pnIfliqjjgILms6jmhI/vvJrlj6/og73kuIDkupvmnLrlnovkuI3kvJrnlJ/mlYjvvIzlhbfkvZPnnIvlubPlj7DmlrnnmoTor7TmmI5cclxuICAgICAgICAgKiBAcGFyYW0gdHlwZSBNaW5pR2FtZVNkay5BUEkuRVZpcmJyYXRlVHlwZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyB2aWJyYXRlKHR5cGU6IEVWaXJicmF0ZVR5cGUgPSBFVmlyYnJhdGVUeXBlLlNIT1JUKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVWaXJicmF0ZVR5cGUuU0hPUlQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3eC52aWJyYXRlU2hvcnQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlIHN1Y2Nlc3M6JywgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGVTaG9ydCBmYWlsZWQnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVZpcmJyYXRlVHlwZS5MT05HOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgd3gudmlicmF0ZUxvbmcoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlIHN1Y2Nlc3MnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgdmlicmF0ZUxvbmcgZmFpbGVkYCwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVZpcmJyYXRlVHlwZS5TSE9SVDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR0LnZpYnJhdGVTaG9ydCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGUgc3VjY2VzczonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygndmlicmF0ZVNob3J0IGZhaWxlZCcsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFVmlyYnJhdGVUeXBlLkxPTkc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0dC52aWJyYXRlTG9uZyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGUgc3VjY2VzcycsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGB2aWJyYXRlTG9uZyBmYWlsZWRgLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDph43lkK/lsI/muLjmiI9cclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgcmVib290KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5yZXN0YXJ0TWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3Jlc3RhcnQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWw6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3Jlc3RhcnQgZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHR0LnJlc3RhcnRNaW5pUHJvZ3JhbVN5bmMoKTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHJlc3RhcnRNaW5pUHJvZ3JhbVN5bmNgLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmAgOWHuuWwj+a4uOaIj1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBleGl0KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5leGl0TWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2V4aXQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZXhpdCBmYWlsZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHR0LmV4aXRNaW5pUHJvZ3JhbSh7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImV4aXQgc3VjY2VzczpcIiwgcmVzPy5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJleGl0IGZhaWw6XCIsIHJlcz8uZXJyTXNnKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuui9rOWPkeaMiemSruOAgumAmuW4uOWcqOWImui/m+WFpea4uOaIj+eahOaXtuWAmeiwg+eUqOOAglxyXG4gICAgICAgICAqIOS4u+imgeaYr+aJk+W8gOW5s+WPsOKAnC4uLuKAnei/meS4quaMiemSrumHjOmdoueahOWIhuS6q+iPnOWNle+8jOS4gOiIrOm7mOiupOaYr+WFs+mXreeahO+8jOmcgOimgeiwg+eUqOi/meS4quWHveaVsOaJk+W8gOOAguWPr+S7peiuqeeUqOaIt+WIhuS6q+S9oOeahOa4uOaIj+WFpeWPo+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzaG93U2hhcmVNZW51KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5zaG93U2hhcmVNZW51KHtcclxuICAgICAgICAgICAgICAgICAgICB3aXRoU2hhcmVUaWNrZXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbWVudXM6IFsnc2hhcmVBcHBNZXNzYWdlJywgJ3NoYXJlVGltZWxpbmUnXSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4geyB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7IH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0dC5zaG93U2hhcmVNZW51KHtcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwic2hvdyBtZW51IGlzIHNob3dpbmdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsKGVycjogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwic2hvd1NoYXJlTWVudTpcIiwgZXJyLmVyck1zZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZShyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInNob3dTaGFyZU1lbnUgY29tcGxldGVcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlvq7kv6HlsI/muLjmiI/vvJrot7PovazliLDlj6blpJbkuIDmrL7lsI/muLjmiI9cclxuICAgICAgICAgKiDmipbpn7PlsI/muLjmiI/vvJrot7PovazliLDmjIflrprnmoTop4bpopHnlYzpnaJcclxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0SWQg5b6u5L+h5bCP5ri45oiPYXBwaWTmiJbogIXop4bpopHnlYzpnaJcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgbmF2aWdhdGVUbyh0YXJnZXRJZDogc3RyaW5nLCBvblN1Y2Nlc3M/OiAoKSA9PiB2b2lkKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5uYXZpZ2F0ZVRvTWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIGFwcElkOiB0YXJnZXRJZCxcclxuICAgICAgICAgICAgICAgICAgICBleHRyYURhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9vOiAnYmFyJ1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZW52VmVyc2lvbjogJ2RldmVsb3AnLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25TdWNjZXNzPy4oKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHR0Lm5hdmlnYXRlVG9WaWRlb1ZpZXcoe1xyXG4gICAgICAgICAgICAgICAgICAgIHZpZGVvSWQ6IHRhcmdldElkLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvblN1Y2Nlc3M/LigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYnl0ZWRhbmNlIG5hdmlnYXRlVG9WaWRlb1ZpZXcgZmFpbFwiLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWwj+a4uOaIj+W5s+WPsOeZu+W9leWKn+iDveOAguW+ruS/oei/lOWbnmNvZGXvvIzmipbpn7Pov5Tlm55jb2Rl5ZKMYW5vbnltb3VzQ29kZeOAgueUqOS6jueZu+W9leeahOWHreivge+8jOmcgOimgeaKiui/meS4qmNvZGXkvKDlm57kvaDnmoTmnI3liqHlmajnqIvluo/kuK3ljrvosIPnlKhjb2RlMlNlc3Npb25cclxuICAgICAgICAgKiBAcGFyYW0gY2FsbGJhY2sgKGNvZGUsIGFub255bW91c0NvZGUpIOesrOS4gOS4quWPguaVsOS4umNvZGXvvIzlvq7kv6Hlkozmipbpn7Ppg73mlK/mjIHvvJvnrKzkuozkuKrlj4LmlbDkuLrljL/lkI3orr7lpIdJRO+8jOS7heaKlumfs+aUr+aMge+8jOWksei0pemDvei/lOWbnm51bGxcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgbG9naW4oY2FsbGJhY2s6IChjb2RlOiBzdHJpbmcsIGFub255bW91c0NvZGU6IHN0cmluZykgPT4gdm9pZCkge1xyXG4gICAgICAgICAgICBsZXQgbG9naW5QbGF0Zm9ybSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgd3gubG9naW4oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiB7IGNvZGU6IGFueTsgZXJyTXNnOiBhbnk7IH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMuY29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Db2RlID0gcmVzLmNvZGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkFub255bW91c0NvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrPy4oQVBJLl9sb2dpbkNvZGUsIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2xvZ2luIGVycm9yOicsIHJlcy5lcnJNc2cpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWlsOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbG9naW4gZmFpbCcpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHR0LmxvZ2luKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2U6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBsb2dpbiAke3Jlcy5jb2RlfSAke3Jlcy5hbm9ueW1vdXNDb2RlfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5jb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkNvZGUgPSByZXMuY29kZT8udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSA9IHJlcy5hbm9ueW1vdXNDb2RlPy50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrPy4oQVBJLl9sb2dpbkNvZGUsIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2xvZ2luIGVycm9yOicsIHJlcy5lcnJNc2cpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Db2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrPy4oQVBJLl9sb2dpbkNvZGUsIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBsb2dpbiBmYWlsYCwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkNvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ25vdCBtaW5pIGdhbWUgcGxhdGZvcm0sIGxvZ2luIGNvZGVzIGFyZSBhbGwgbnVsbCcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgIGlmICghQVBJLl9sb2dpbkNvZGUpIHtcclxuICAgICAgICAgICAgICAgIGxvZ2luUGxhdGZvcm0oKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgd3guY2hlY2tTZXNzaW9uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcygpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzZXNzaW9uIGlzIHZhbGlkLCB1c2UgY3VycmVudCBjb2RlOmAsIEFQSS5fbG9naW5Db2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrPy4oQVBJLl9sb2dpbkNvZGUsIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmFpbCgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzZXNzaW9uIGV4cGlyZWRgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luUGxhdGZvcm0oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgdHQuY2hlY2tTZXNzaW9uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcygpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzZXNzaW9uIGlzIHZhbGlkLCB1c2VyIGN1cnJlbnQgY29kZTogJHtBUEkuX2xvZ2luQ29kZX0sICR7QVBJLl9sb2dpbkFub255bW91c0NvZGV9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2Vzc2lvbiBleHBpcmVkYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpblBsYXRmb3JtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbm90IG1pbmkgZ2FtZSBwbGF0Zm9ybSwgbG9naW4gbnVsbCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrPy4obnVsbCwgbnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICog5bCP5ri45oiP5bmz5Y+w55m75b2V5Yqf6IO944CC5b6u5L+h6L+U5ZueY29kZe+8jOaKlumfs+i/lOWbnmNvZGXlkoxhbm9ueW1vdXNDb2Rl44CC55So5LqO55m75b2V55qE5Yet6K+B77yM6ZyA6KaB5oqK6L+Z5LiqY29kZeS8oOWbnuS9oOeahOacjeWKoeWZqOeoi+W6j+S4reWOu+iwg+eUqGNvZGUyU2Vzc2lvblxyXG4gICAgICAgICAqIEBwYXJhbSBjYWxsYmFjayAoY29kZSwgYW5vbnltb3VzQ29kZSkg56ys5LiA5Liq5Y+C5pWw5Li6Y29kZe+8jOW+ruS/oeWSjOaKlumfs+mDveaUr+aMge+8m+esrOS6jOS4quWPguaVsOS4uuWMv+WQjeiuvuWkh0lE77yM5LuF5oqW6Z+z5pSv5oyB77yM5aSx6LSl6YO96L+U5ZuebnVsbFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBnZXRVc2VySW5mbyhjYWxsYmFjazogKHVzZXJJbmZvOiBhbnkpID0+IHZvaWQpIHtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHR0LmdldFVzZXJJbmZvKHtcclxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5fdXNlckluZm8gPSByZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soQVBJLl91c2VySW5mbyk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogKGVycjogYW55KSA9PntcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOiwg+eUqOW+ruS/oeS6keWHveaVsOOAgueUseS6juWPguaVsOmcgOimgeiHquWumuS5ie+8jOaJgOS7peS4umFuee+8jOmcgOimgeiHquihjOino+mHiuOAguWHveaVsOWPquWujOaIkOmAmumBk+WSjOWkhOeQhuS4gOWcuueahOS9nOeUqFxyXG4gICAgICAgICAqIEBwYXJhbSBjYWxsYmFjayDov5Tlm57kupHlh73mlbDosIPnlKjnu5PmnpzjgILpnIDopoHmo4Dmn6Xov5Tlm57lj4LmlbDmmK/lkKbkuLrnqbrvvIzlpLHotKXnmoTml7blgJnkuLrnqbpcclxuICAgICAgICAgKiBAcGFyYW0gbmFtZSDkupHlh73mlbDnmoTlkI3lrZdcclxuICAgICAgICAgKiBAcGFyYW0gZGF0YSDkupHlh73mlbDnmoTlhoXlrrlcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgY2FsbFdlY2hhdENsb3VkRnVuY3Rpb24oY2FsbGJhY2s6IChyZXM6IGFueSkgPT4gdm9pZCwgbmFtZTogc3RyaW5nLCBkYXRhOiB7fSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdOb3Qgd2VjaGF0IHBsYXRmb3JtLCBub3Qgc3VwcG9ydCBjYWxsV2VjaGF0Q2xvdWRGdW5jdGlvbicpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxvZ2luKChjb2RlOiBzdHJpbmcsIGFub255bW91c0NvZGU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFBUEkuX2hhc0luaXRXZWNoYXRDbG91ZEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgd3guY2xvdWQuaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5faGFzSW5pdFdlY2hhdENsb3VkRnVuY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiBhbnkpID0+IGNhbGxiYWNrPy4ocmVzKSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3dlY2hhdCBjbG91ZCBmdW5jdGlvbiBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWtmOWCqOeUqOaIt+S/oeaBr++8jOaVsOaNrumHj+S4jeiDveWkp+OAguWPr+S7peiAg+iZkeeUqOS6juWIhuaVsOaOkuihjOamnOOAgueUqOaIt+S5i+mXtOWPr+WFseS6q+aOkuihjOaVsOaNruOAglxyXG4gICAgICAgICAqIEBwYXJhbSBrZXkgXHJcbiAgICAgICAgICogQHBhcmFtIHZhbHVlIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzZXRVc2VyQ2xvdWRTdG9yYWdlKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5zZXRVc2VyQ2xvdWRTdG9yYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICBLVkRhdGFMaXN0OiBbeyBrZXk6IGtleSwgdmFsdWU6IHZhbHVlIH1dLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IGNvbnNvbGUubG9nKGBzZXQgY2xvdWQgc3RvcmFnZSBzdWNjZXNzOiR7a2V5fSwgdmFsdWU6JHt2YWx1ZX1gKSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IGNvbnNvbGUubG9nKCdzZXQgY2xvdWQgc3RvcmFnZSBlcnJvcjonLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHR0LnNldFVzZXJDbG91ZFN0b3JhZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgIEtWRGF0YUxpc3Q6IFt7IGtleToga2V5LCB2YWx1ZTogdmFsdWUsIH1dLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IGNvbnNvbGUubG9nKGBzZXQgY2xvdWQgc3RvcmFnZSBzdWNjZXNzOiR7a2V5fSwgdmFsdWU6JHt2YWx1ZX1gKSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IGNvbnNvbGUubG9nKCdzZXQgY2xvdWQgc3RvcmFnZSBlcnJvcjonLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmipbpn7PkvqfovrnmoI/kuJPlsZ7mjqXlj6NcclxuICAgICAqL1xyXG4gICAgZXhwb3J0IGNsYXNzIEJ5dGVkYW5jZVNpZGViYXIge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOacrOa4uOaIj+WcqOaKlumfs+eOr+Wig+S4i+WQr+WKqOebkeaOp++8jOmcgOimgeaUvuWcqOWFqOWxgOeOr+Wig+S4re+8jOS/neivgeiDveesrOS4gOaXtumXtOWQr+WKqOOAguWboOS4uuWPr+iDveebkeWQrOaKlumfs+Wksei0pe+8iOaKlumfs+Wwj+a4uOaIj+WumOaWueeahOivtOaYju+8ie+8gVxyXG4gICAgICAgICAqIEBwYXJhbSBvblJlc3VsdCDljIXlkKvkuIDkuKpib29sZWFu5Y+C5pWw55qE5Ye95pWwXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldCDkuIrov7Dlh73mlbDnmoTmi6XmnInogIXvvIzlpoLmnpzmmK/nsbvnmoTmiJDlkZjlh73mlbDvvIzpnIDopoHkvKDlhaV0aGlz44CC5pmu6YCa5oiW5Yy/5ZCN5Ye95pWw5b+955Wl5Y2z5Y+v44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIGxpc3RlbkZyb21TaWRlYmFyKG9uUmVzdWx0OiAoc3VjY2VzczogYm9vbGVhbikgPT4gdm9pZCwgdGFyZ2V0PzogYW55KSB7XHJcbiAgICAgICAgICAgIGlmICghaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0dC5vblNob3coKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnb25TaG93IGxhdW5jaCByZXM6JywgcmVzKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMuc2NlbmUgPT09ICcwMjEwMzYnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbGF1bmNoIGZyb20gc2lkZWJhcicpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnTk9UIGxhdW5jaCBmcm9tIGRvdXlpbiBzaWRlYmFyIScpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgbGV0IG9wdGlvbnMgPSB0dC5nZXRMYXVuY2hPcHRpb25zU3luYygpO1xyXG4gICAgICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnNjZW5lID09PSAnMDIxMDM2Jykge1xyXG4gICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5qOA5rWL5oqW6Z+z5L6n6L655qCP5piv5ZCm5a2Y5ZyoXHJcbiAgICAgICAgICogQHBhcmFtIG9uUmVzdWx0IOWMheWQq+S4gOS4qmJvb2xlYW7lj4LmlbDnmoTlh73mlbBcclxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IOS4iui/sOWHveaVsOeahOaLpeacieiAhe+8jOWmguaenOaYr+exu+eahOaIkOWRmOWHveaVsO+8jOmcgOimgeS8oOWFpXRoaXPjgILmma7pgJrmiJbljL/lkI3lh73mlbDlv73nlaXljbPlj6/jgIJcclxuICAgICAgICAgKiBAcmV0dXJucyBcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgY2hlY2tTaWRlQmFyKG9uUmVzdWx0OiAoc3VjY2VzczogYm9vbGVhbikgPT4gdm9pZCwgdGFyZ2V0PzogYW55KSB7XHJcbiAgICAgICAgICAgIGlmICghaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0dC5jaGVja1NjZW5lKHtcclxuICAgICAgICAgICAgICAgIHNjZW5lOiBcInNpZGViYXJcIixcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2hlY2sgc2NlbmUgc3VjY2VzczogXCIsIHJlcy5pc0V4aXN0KTtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIDxib29sZWFuPnJlcy5pc0V4aXN0KTtcclxuXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjaGVjayBzY2VuZSBmYWlsOlwiLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOi3s+i9rOWIsOaKlumfs+S+p+i+ueagj1xyXG4gICAgICAgICAqIEBwYXJhbSBvblJlc3VsdCDljIXlkKvkuIDkuKpib29sZWFu5Y+C5pWw55qE5Ye95pWwXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldCDkuIrov7Dlh73mlbDnmoTmi6XmnInogIXvvIzlpoLmnpzmmK/nsbvnmoTmiJDlkZjlh73mlbDvvIzpnIDopoHkvKDlhaV0aGlz44CC5pmu6YCa5oiW5Yy/5ZCN5Ye95pWw5b+955Wl5Y2z5Y+v44CCXHJcbiAgICAgICAgICogQHJldHVybnMgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIG5hdmlnYXRlVG9TaWRlYmFyKG9uUmVzdWx0OiAoc3VjY2VzczogYm9vbGVhbikgPT4gdm9pZCwgdGFyZ2V0PzogYW55KSB7XHJcbiAgICAgICAgICAgIGlmICghaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJub3QgZG91eWluIHBsYXRmb3JtIVwiKTtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHR0Lm5hdmlnYXRlVG9TY2VuZSh7XHJcbiAgICAgICAgICAgICAgICBzY2VuZTogXCJzaWRlYmFyXCIsXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJuYXZpZ2F0ZSBzdWNjZXNzXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJuYXZpZ2F0ZSBmYWlsZWQgcmVhc29uOlwiLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufSJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/GameOver.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '805c6nf399HWZeuWnNB9CTH', 'GameOver'); +// Script/GameOver.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.count = null; + _this.time = null; + _this.selfNode = null; + _this.one = null; + _this.two = null; + _this.three = null; + _this.four = null; + _this.five = null; + return _this; + } + // onLoad () {} + NewClass.prototype.start = function () { + this.init(); + }; + //初始化数据 + NewClass.prototype.init = function () { + this.listData = []; + this.selfData = null; + // this.getRank(); + }; + //打开排行榜 + NewClass.prototype.openRank = function () { + // alert("跳转"); + cc.director.loadScene("LoadScene"); + }; + //重新开始玩 + NewClass.prototype.again = function () { + // let levelTemp = cc.fx.GameConfig.GM_INFO.level; + cc.fx.GameConfig.GM_INFO_init(); + // if(cc.fx.GameConfig.GM_INFO.isCustom){ + // cc.fx.GameConfig.GM_INFO.level = levelTemp; + // } + cc.director.loadScene("GameScene"); + }; + //获取排行榜 + NewClass.prototype.getRank = function () { + var _this = this; + //获取排行榜数据 所需数据量 + var dataFile = { + length: 5 + }; + cc.fx.GameTool.getRank(dataFile, function (data) { return _this.getRankData(data); }); + }; + //设置排行信息 + NewClass.prototype.getRankData = function (data) { + if (data) { + cc.fx.GameTool.getRankData(data, this, 4); + cc.fx.GameTool.setPic(this.selfNode.getChildByName("pic").getChildByName("icon"), this.selfData.pic); + for (var i = 0; i <= 4; i++) { + this.setRank(i, this.listData[i]); + } + } + }; + //根据内容填充排行榜 + NewClass.prototype.setRank = function (num, data) { + var hitNode = null; + if (num == 0) { + hitNode = this.one; + } + else if (num == 1) { + hitNode = this.two; + } + else if (num == 2) { + hitNode = this.three; + } + else if (num == 3) { + hitNode = this.four; + } + else if (num == 4) { + hitNode = this.five; + } + if (hitNode) { + hitNode.active = true; + cc.fx.GameTool.subName(data.nickName, 4); + hitNode.getChildByName("name").getComponent(cc.Label).string = data.nickName; + hitNode.getChildByName("total").getComponent(cc.Label).string = data.totalSunCount; + cc.fx.GameTool.setPic(hitNode.getChildByName("pic").getChildByName("icon"), data.pic); + } + }; + __decorate([ + property(cc.Label) + ], NewClass.prototype, "count", void 0); + __decorate([ + property(cc.Label) + ], NewClass.prototype, "time", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "selfNode", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "one", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "two", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "three", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "four", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "five", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lT3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDTSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQThGQztRQTVGRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBRXZCLFVBQUksR0FBYSxJQUFJLENBQUM7UUFFdEIsY0FBUSxHQUFZLElBQUksQ0FBQztRQUV6QixTQUFHLEdBQVksSUFBSSxDQUFDO1FBRXBCLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFFcEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUV0QixVQUFJLEdBQVksSUFBSSxDQUFDO1FBRXJCLFVBQUksR0FBWSxJQUFJLENBQUM7O0lBOEV6QixDQUFDO0lBekVHLGVBQWU7SUFDZix3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFHRCxPQUFPO0lBQ1AsdUJBQUksR0FBSjtRQUNJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLGtCQUFrQjtJQUN0QixDQUFDO0lBQ0QsT0FBTztJQUNQLDJCQUFRLEdBQVI7UUFDSSxlQUFlO1FBQ2YsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELE9BQU87SUFDUCx3QkFBSyxHQUFMO1FBQ0ksa0RBQWtEO1FBQ2xELEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hDLHlDQUF5QztRQUN6QyxrREFBa0Q7UUFDbEQsSUFBSTtRQUNKLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFD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Q0FBQyxJQUFJLENBQUM7eUNBQ0U7SUFFcEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzt5Q0FDRTtJQUVwQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBRXRCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFFckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDRztJQWhCSixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBOEY1QjtJQUFELGVBQUM7Q0E5RkQsQUE4RkMsQ0E5RnFDLEVBQUUsQ0FBQyxTQUFTLEdBOEZqRDtrQkE5Rm9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBjb3VudDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgdGltZTogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBzZWxmTm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG9uZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIHR3bzogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIHRocmVlOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgZm91cjogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZpdmU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgbGlzdERhdGE6IGFueTtcclxuICAgIHNlbGZEYXRhOiBhbnk7XHJcbiAgICBlZmZpY2llbmN5OiBudW1iZXI7XHJcbiAgICBsZXZlbDogbnVtYmVyO1xyXG4gICAgLy8gb25Mb2FkICgpIHt9XHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8v5Yid5aeL5YyW5pWw5o2uXHJcbiAgICBpbml0KCl7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZkRhdGEgPSBudWxsO1xyXG4gICAgICAgIC8vIHRoaXMuZ2V0UmFuaygpO1xyXG4gICAgfVxyXG4gICAgLy/miZPlvIDmjpLooYzmppxcclxuICAgIG9wZW5SYW5rKCl7XHJcbiAgICAgICAgLy8gYWxlcnQoXCLot7PovaxcIik7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiTG9hZFNjZW5lXCIpO1xyXG4gICAgfVxyXG4gICAgLy/ph43mlrDlvIDlp4vnjqlcclxuICAgIGFnYWluKCl7XHJcbiAgICAgICAgLy8gbGV0IGxldmVsVGVtcCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk9faW5pdCgpO1xyXG4gICAgICAgIC8vIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5pc0N1c3RvbSl7XHJcbiAgICAgICAgLy8gICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGxldmVsVGVtcDtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG5cclxuICAgIH1cclxuICAgIC8v6I635Y+W5o6S6KGM5qacXHJcbiAgICBnZXRSYW5rKCl7XHJcbiAgICAgICAgLy/ojrflj5bmjpLooYzmppzmlbDmja4gIOaJgOmcgOaVsOaNrumHj1xyXG4gICAgICAgIGxldCBkYXRhRmlsZSA9IHtcclxuICAgICAgICAgICAgbGVuZ3RoOjVcclxuICAgICAgICB9XHJcbiAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFJhbmsoZGF0YUZpbGUsZGF0YSA9PnRoaXMuZ2V0UmFua0RhdGEoZGF0YSkpO1xyXG4gICAgfVxyXG4gICAgLy/orr7nva7mjpLooYzkv6Hmga9cclxuICAgIGdldFJhbmtEYXRhKGRhdGEpe1xyXG4gICAgICAgIGlmKGRhdGEpe1xyXG4gICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0UmFua0RhdGEoZGF0YSx0aGlzLDQpO1xyXG4gICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0UGljKHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLHRoaXMuc2VsZkRhdGEucGljKTtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7aTw9NDtpKyspe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRSYW5rKGksdGhpcy5saXN0RGF0YVtpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+agueaNruWGheWuueWhq+WFheaOkuihjOamnFxyXG4gICAgc2V0UmFuayhudW0sZGF0YSl7XHJcbiAgICAgICAgdmFyIGhpdE5vZGUgPSBudWxsO1xyXG4gICAgICAgIGlmKG51bSA9PSAwKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSAxKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMudHdvO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSAyKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMudGhyZWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYobnVtID09IDMpe1xyXG4gICAgICAgICAgICBoaXROb2RlID0gdGhpcy5mb3VyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSA0KXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMuZml2ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoaGl0Tm9kZSl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnN1Yk5hbWUoZGF0YS5uaWNrTmFtZSw0KTtcclxuICAgICAgICAgICAgaGl0Tm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLm5pY2tOYW1lO1xyXG4gICAgICAgICAgICBoaXROb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLnRvdGFsU3VuQ291bnQ7XHJcbiAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRQaWMoaGl0Tm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksZGF0YS5waWMpO1xyXG4gICAgICAgIH1cclxuICAgIH0gICBcclxuXHJcblxyXG59XHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/GameManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'b0432BA295DjIOcuitdGKO1', 'GameManager'); +// Script/GameManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +// 主游戏控制类 +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var GameManager = /** @class */ (function (_super) { + __extends(GameManager, _super); + function GameManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.kuang1_Prefab = null; + _this.kuang2_Prefab = null; + _this.Block = null; + _this.TimeLabel = null; + _this.LevelLabel = null; + _this.Guide = null; + _this.progress = null; //-95 640 + _this.Top = null; //80 -725 + return _this; + } + GameManager.prototype.onLoad = function () { + this.guide_State = false; + this.level = cc.fx.GameConfig.GM_INFO.level; + this.guide_Level = cc.fx.GameConfig.GM_INFO.guide_Level; + this.LevelLabel.string = (this.level + 1) + ""; + this.progress.fillRange = cc.fx.GameConfig.GM_INFO.score / 24; + if (this.progress.fillRange >= 0.2) + this.Top.getChildByName("star1").active = true; + if (this.progress.fillRange >= 0.5) + this.Top.getChildByName("star2").active = true; + if (this.progress.fillRange >= 0.8) + this.Top.getChildByName("star3").active = true; + if ((this.level == 0 && this.guide_Level == 4) || + (this.level == 4 && this.guide_Level == 3) || + (this.level == 8 && this.guide_Level == 1)) { + this.openGuide(false); + } + else { + this.LevelLabel.node.active = true; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "第 轮"; + this.init(); + } + }; + GameManager.prototype.init = function () { + var _this = this; + if (this.level == 4 && this.guide_Level == 2) { + cc.fx.GameConfig.GM_INFO.guide_Level -= 1; + this.guide_State = true; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + // this.node.getChildByName("tip").active = true; + } + this.result = 0; + this.countTime = 6; + this.TimeLabel.string = cc.fx.GameTool.getTimeMargin(this.countTime); + this.createBlock(); + setTimeout(function () { + _this.createCustom(); + }, 1000); + }; + GameManager.prototype.openGuide = function (type) { + this.Guide.active = true; + this.guide_State = true; + // this.node.getChildByName("tip").active = true; + if (!type) + cc.fx.GameConfig.GM_INFO.guide_Level -= 1; + this.Guide.getChildByName("one").active = false; + this.Guide.getChildByName("two").active = false; + this.Guide.getChildByName("three").active = false; + this.Guide.getChildByName("four").active = false; + var name = "one"; + if (this.level == 0) { + name = "one"; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + } + else if (this.level == 4) { + name = "two"; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + } + else if (this.level == 8) { + name = "three"; + this.guide_State = false; + } + if (type) + name = "four"; + this.Guide.getChildByName(name).active = true; + cc.tween(this.Guide.getChildByName(name)) + .to(0.5, { opacity: 255 }) + .start(); + }; + GameManager.prototype.closeGuide = function () { + if (this.Guide.getChildByName("four").active) { + this.Guide.active = false; + cc.director.loadScene("GameScene"); + } + else { + this.Guide.active = false; + this.init(); + } + // + }; + //创建方块地图 + GameManager.prototype.createBlock = function () { + this.outside_Array = []; + this.inside_Array = []; + this.outside = []; + this.inside = []; + for (var i = 0; i < 16; i++) { + var block = cc.instantiate(this.kuang1_Prefab); + block.getComponent("Block").setId(i); + block.parent = this.Block.getChildByName("outside"); + var x = void 0, y = 0; + if (i < 5) { + x = -284 + 142 * i; + y = 259; + } + else if (i < 9) { + x = 284; + y = 259 - (i - 4) * 142; + } + else if (i < 13) { + x = 284 - (i - 8) * 142; + y = -309; + } + else if (i < 16) { + x = -284; + y = -309 + (i - 12) * 142; + } + block.setPosition(x, y); + this.outside_Array.push(block); + } + for (var j = 3; j < 12; j++) { + var block = cc.instantiate(this.kuang2_Prefab); + block.getComponent("Block").setId(j); + block.parent = this.Block.getChildByName("inside"); + block.setPosition(-132 + j % 3 * 132, 239 - parseInt(j / 3 + "") * 132); + this.inside_Array.push(block); + } + }; + //创建关卡 + GameManager.prototype.createCustom = function () { + //初始化关卡配置数据 + this.level = cc.fx.GameConfig.GM_INFO.level; + this.LevelLabel.string = (this.level + 1) + ""; + this.config = cc.fx.GameConfig.LEVEL_INFO[this.level]; + if (this.level == 4 && this.guide_Level == 2) { + this.config = cc.fx.GameConfig.LEVEL_INFO[6]; + } + this.pass = false; + //放正确答案和错误答案 + this.answerInsideTexture = Math.floor(Math.random() * 14 + 1); + //内圈错误答案随机 + this.insideTexture = []; + this.outsideTexture = []; + for (var k = 0; k < 14; k++) { + if ((k + 1) != this.answerInsideTexture) { + this.insideTexture.push(k + 1); + } + } + cc.fx.GameTool.shuffleArray(this.insideTexture); + this.answerOutsideTexture = this.insideTexture[11]; + //分配正确答案和错误答案位置 + if (this.config["inside"] > 0) { + this.result += 1; + var random = Math.random() * 100; + var arrayTemp = [0, 1, 2, 3, 5, 6, 7, 8]; + if (this.config["insideType"] == 1) { + if (random >= 50) + this.inside = [0, 1, 2]; + else + this.inside = [6, 7, 8]; + } + else if (this.config["insideType"] == 2) { + if (random >= 50) + this.inside = [0, 3, 6]; + else + this.inside = [2, 5, 8]; + } + else { + this.inside = cc.fx.GameTool.shuffleArray(arrayTemp); + this.inside.splice(this.config["inside"], this.inside.length - this.config["inside"]); + } + this.answerInside = this.inside[Math.floor(Math.random() * this.inside.length)]; + } + //分配外圈正确答案和错误答案位置 + if (this.config["outside"] > 0) { + this.result += 1; + if (this.config["outsideType"] == 1) { + this.outside = [1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15]; + } + else if (this.config["outsideType"] == 2) { + this.outside = [0, 4, 8, 12]; + } + else { + this.outside = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; + } + cc.fx.GameTool.shuffleArray(this.outside); + this.answerOutside = this.outside[Math.floor(Math.random() * this.outside.length)]; + if (this.config["outside"] == 2) { + for (var j = 0; j < 15; j++) { + this.outsideTexture.push(this.insideTexture[3]); + } + } + else if (this.config["outside"] == 3) { + this.outsideTexture = [this.insideTexture[5], this.insideTexture[6], this.insideTexture[5], this.insideTexture[6], this.insideTexture[5]]; + for (var j = 0; j < 10; j++) { + var randomTemp = Math.random() * 100; + if (randomTemp > 50) + this.outsideTexture.push(this.insideTexture[5]); + else + this.outsideTexture.push(this.insideTexture[6]); + } + cc.fx.GameTool.shuffleArray(this.outsideTexture); + } + else if (this.config["outside"] == 4) { + this.outsideTexture = [this.insideTexture[2], this.insideTexture[4], this.insideTexture[6], + this.insideTexture[2], this.insideTexture[4], this.insideTexture[6]]; + for (var j = 0; j < 9; j++) { + var randomTemp = Math.random() * 100; + if (randomTemp < 33) + this.outsideTexture.push(this.insideTexture[2]); + else if (randomTemp < 66) + this.outsideTexture.push(this.insideTexture[4]); + else + this.outsideTexture.push(this.insideTexture[6]); + } + cc.fx.GameTool.shuffleArray(this.outsideTexture); + } + } + this.runBlock(); + }; + //块执行图片出现消失动画 + GameManager.prototype.runBlock = function () { + var _this = this; + if (this.config["inside"] > 0) { + this.inside_Array[4].getComponent("Block").answerShow(this.answerInsideTexture); + setTimeout(function () { + var insideNumber = 0; + for (var i = 0; i < _this.inside.length; i++) { + if (_this.inside[i] == _this.answerInside) + _this.inside_Array[_this.inside[i]].getComponent("Block").show(true, true, _this.answerInsideTexture); + else { + _this.inside_Array[_this.inside[i]].getComponent("Block").show(false, true, _this.insideTexture[insideNumber]); + insideNumber += 1; + } + } + }, this.config["showTime"] * 1000); + } + if (this.config["outside"] > 0) { + this.outside_Array[this.answerOutside].getComponent("Block").answerShow(this.answerOutsideTexture); + if (this.config["outside"] > 1) { + var outsideNumber = 0; + for (var i = 0; i < this.outside_Array.length; i++) { + if (i == this.answerOutside) + this.outside_Array[i].getComponent("Block").show(true, false, this.answerOutsideTexture); + else { + this.outside_Array[i].getComponent("Block").show(false, false, this.outsideTexture[outsideNumber]); + outsideNumber += 1; + } + } + } + setTimeout(function () { + var outsideNumber = 0; + for (var i = 0; i < _this.outside_Array.length; i++) { + if (i == _this.answerOutside) + _this.outside_Array[i].getComponent("Block").lockShow(true, false); + else { + _this.outside_Array[i].getComponent("Block").lockShow(false, false); + outsideNumber += 1; + } + } + }, this.config["showTime"] * 1000); + } + setTimeout(function () { + if (!_this.guide_State) { + _this.startTime = cc.fx.GameTool.getTime(); + _this.schedule(_this.updateCountDownTime, 1); + } + }, this.config["showTime"] * 1000); + }; + //正确 + GameManager.prototype.openResult = function (result) { + var _this = this; + this.result -= 1; + //非引导状态 + if (!this.guide_State) { + this.flipBlock(result); + if (this.result == 0) { + this.unschedule(this.updateCountDownTime); + setTimeout(function () { + _this.setData(result); + }, 1000); + setTimeout(function () { + if (cc.fx.GameConfig.GM_INFO.level < cc.fx.GameConfig.LEVEL_INFO.length - 1) { + cc.fx.GameConfig.GM_INFO.level += 1; + cc.director.loadScene("GameScene"); + } + }, 2000); + } + } + //引导状态下 + else { + if (result.result) { + this.flipBlock(result); + setTimeout(function () { + if (_this.level == 4 && cc.fx.GameConfig.GM_INFO.guide_Level == 2) { + cc.director.loadScene("GameScene"); + } + else + _this.openGuide(true); + }, 1000); + } + } + }; + //翻转形状变成问号 + GameManager.prototype.flipBlock = function (result) { + if (result.type) { + var pos = this.changePos(true, result.id); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.userChoiceInner.push(pos.x, pos.y); + for (var i = 0; i < this.inside.length; i++) { + if (this.inside[i] == this.answerInside) { + this.inside_Array[4].getChildByName("texture").active = true; + this.inside_Array[4].getChildByName("texture").opacity = 255; + this.inside_Array[this.inside[i]].getChildByName("yes").active = true; + var pos_1 = this.changePos(true, this.inside_Array[this.inside[i]].getComponent("Block")._idNumber); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.rightChoiceInner.push(pos_1.x, pos_1.y); + } + this.inside_Array[this.inside[i]].getComponent("Block")._touch = false; + } + if (result.result) { + this.addScore(); + } + } + else { + var pos = this.changePos(false, result.id); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.userChoiceOuter.push(pos.x, pos.y); + for (var i = 0; i < this.outside_Array.length; i++) { + this.outside_Array[i].getComponent("Block").lockHide(); + this.outside_Array[i].getChildByName("texture").active = true; + if (i == this.answerOutside) { + this.outside_Array[i].getChildByName("yes").active = true; + this.outside_Array[i].getComponent("Block").show(true, false, this.answerOutsideTexture); + var pos_2 = this.changePos(false, this.outside_Array[i].getComponent("Block")._idNumber); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.rightChoiceOuter.push(pos_2.x, pos_2.y); + } + } + if (result.result) { + this.addScore(); + } + } + }; + //加分 加进度条,加星星 + GameManager.prototype.addScore = function () { + var _this = this; + if (!this.guide_State) { + cc.fx.GameConfig.GM_INFO.score += 1; + var progress = cc.fx.GameConfig.GM_INFO.score / 24; + if (progress >= 1) + progress = 1; + cc.tween(this.progress) + .to(0.2, { fillRange: progress }) + .call(function () { + if (_this.Top.getChildByName("star1").active == false && progress >= 0.2) { + _this.Top.getChildByName("star1").active = true; + _this.Top.getChildByName("star1").opacity = 0; + _this.Top.getChildByName("star1").scale = 0.1; + cc.tween(_this.Top.getChildByName("star1")) + .to(0.3, { opacity: 255, scale: 1.1 }) + .to(0.1, { opacity: 255, scale: 0.9 }) + .to(0.1, { opacity: 255, scale: 1 }) + .start(); + } + if (_this.Top.getChildByName("star2").active == false && progress >= 0.5) { + _this.Top.getChildByName("star2").active = true; + _this.Top.getChildByName("star2").opacity = 0; + _this.Top.getChildByName("star2").scale = 0.1; + cc.tween(_this.Top.getChildByName("star2")) + .to(0.3, { opacity: 255, scale: 1.1 }) + .to(0.1, { opacity: 255, scale: 0.9 }) + .to(0.1, { opacity: 255, scale: 1 }) + .start(); + } + if (_this.Top.getChildByName("star3").active == false && progress >= 0.8) { + _this.Top.getChildByName("star3").active = true; + _this.Top.getChildByName("star3").opacity = 0; + _this.Top.getChildByName("star3").scale = 0.1; + cc.tween(_this.Top.getChildByName("star3")) + .to(0.3, { opacity: 255, scale: 1.1 }) + .to(0.1, { opacity: 255, scale: 0.9 }) + .to(0.1, { opacity: 255, scale: 1 }) + .start(); + } + }) + .start(); + } + }; + //返回首页 + GameManager.prototype.backScene = function () { + cc.director.loadScene("LoadScene"); + }; + //重新开始 + GameManager.prototype.reStart = function () { + }; + //获取时间戳 + GameManager.prototype.getTime = function () { + var timestamp = new Date().getTime(); + return timestamp; + }; + //获胜 + GameManager.prototype.passLevel = function () { + }; + //失败 + GameManager.prototype.loseLevel = function (type) { + }; + GameManager.prototype.changePos = function (type, num) { + var x = 0; + var y = 0; + //内部 + if (type) { + y = parseInt(num / 3 + ""); + x = num % 3; + } + //外部 + else { + if (num < 5) { + y = 0; + x = num; + } + else if (num < 9) { + x = 5; + y = num - 4; + } + else if (num < 13) { + y = 4; + x = 12 - num; + } + else if (num < 16) { + x = 0; + y = 16 - num; + } + } + var jg = cc.v2(x, y); + return jg; + }; + //如果是倒计时 调用此方法 + GameManager.prototype.updateCountDownTime = function () { + if (this.countTime > 0) { + this.countTime -= 1; + // this.TimeLabel.string =this.countTime + ""; + this.TimeLabel.string = cc.fx.GameTool.getTimeMargin(this.countTime); + if (this.countTime <= 0) { + this.unschedule(this.updateCountDownTime); + this.node.getChildByName("Mask").active = true; + var data = { "result": false, "type": true, "id": null }; + if (this.config["inside"] > 0) + cc.fx.Notifications.emit("result", data); + var data2 = { "result": false, "type": false, "id": null }; + if (this.config["outside"] > 0) + cc.fx.Notifications.emit("result", data2); + } + } + }; + //上传每次操作数据 + GameManager.prototype.setData = function (result) { + cc.fx.GameConfig.CLICK_DATA.success = result.result; + cc.fx.GameConfig.CLICK_DATA.round = (cc.fx.GameConfig.GM_INFO.level + 1); + cc.fx.GameConfig.CLICK_DATA.duration = new Date().getTime() - this.startTime - 1000; + cc.fx.GameTool.setGameData(); + }; + GameManager.prototype.onEnable = function () { + cc.fx.Notifications.on("result", this.openResult, this); + }; + GameManager.prototype.onDisable = function () { + cc.fx.Notifications.off("result", this.openResult, this); + }; + GameManager.prototype.update = function (dt) { + }; + __decorate([ + property(cc.Prefab) + ], GameManager.prototype, "kuang1_Prefab", void 0); + __decorate([ + property(cc.Prefab) + ], GameManager.prototype, "kuang2_Prefab", void 0); + __decorate([ + property(cc.Node) + ], GameManager.prototype, "Block", void 0); + __decorate([ + property(cc.Label) + ], GameManager.prototype, "TimeLabel", void 0); + __decorate([ + property(cc.Label) + ], GameManager.prototype, "LevelLabel", void 0); + __decorate([ + property(cc.Node) + ], GameManager.prototype, "Guide", void 0); + __decorate([ + property(cc.Sprite) + ], GameManager.prototype, "progress", void 0); + __decorate([ + property(cc.Node) + ], GameManager.prototype, "Top", void 0); + GameManager = __decorate([ + ccclass + ], GameManager); + return GameManager; +}(cc.Component)); +exports.default = GameManager; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxTQUFTO0FBQ0gsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUM7SUFBeUMsK0JBQVk7SUFBckQ7UUFBQSxxRUE4ZUM7UUE1ZUcsbUJBQWEsR0FBYyxJQUFJLENBQUM7UUFFaEMsbUJBQWEsR0FBYyxJQUFJLENBQUM7UUFFaEMsV0FBSyxHQUFZLElBQUksQ0FBQztRQUV0QixlQUFTLEdBQWEsSUFBSSxDQUFDO1FBRTNCLGdCQUFVLEdBQWEsSUFBSSxDQUFDO1FBRTVCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsY0FBUSxHQUFjLElBQUksQ0FBQyxDQUFDLFNBQVM7UUFFckMsU0FBRyxHQUFZLElBQUksQ0FBQyxDQUFBLFNBQVM7O0lBNmRqQyxDQUFDO0lBbmNHLDRCQUFNLEdBQU47UUFDSSxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBQyxFQUFFLENBQUM7UUFDNUQsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFB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SUFFRCw4QkFBUSxHQUFSO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRTVELENBQUM7SUFDRCwrQkFBUyxHQUFUO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFDRCw0QkFBTSxHQUFOLFVBQVEsRUFBRTtJQUVWLENBQUM7SUEzZUQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztzREFDWTtJQUVoQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO3NEQUNZO0lBRWhDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7OENBQ0k7SUFFdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztrREFDUTtJQUUzQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO21EQUNTO0lBRTVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7OENBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztpREFDTztJQUUzQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzRDQUNFO0lBakJILFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0E4ZS9CO0lBQUQsa0JBQUM7Q0E5ZUQsQUE4ZUMsQ0E5ZXdDLEVBQUUsQ0FBQyxTQUFTLEdBOGVwRDtrQkE5ZW9CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyDkuLvmuLjmiI/mjqfliLbnsbtcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBrdWFuZzFfUHJlZmFiOiBjYy5QcmVmYWIgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIGt1YW5nMl9QcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIEJsb2NrOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIFRpbWVMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgTGV2ZWxMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBHdWlkZTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlNwcml0ZSlcclxuICAgIHByb2dyZXNzOiBjYy5TcHJpdGUgPSBudWxsOyAvLy05NSA2NDBcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKSAgXHJcbiAgICBUb3A6IGNjLk5vZGUgPSBudWxsOy8vODAgLTcyNVxyXG5cclxuICAgIGNvdW50VGltZTogbnVtYmVyOyAgICAgIC8v5ri45oiP5oC7ZGFvamlzaGlcclxuICAgIHN0YXJ0VGltZTogbnVtYmVyOyAgICAgIC8v5ri45oiP5byA5aeL5pe26Ze077yM5pe26Ze05oizXHJcbiAgICBwYXVzZTogYm9vbGVhbiA7ICAgICAgICAvL+a4uOaIj+aaguWBnFxyXG4gICAgZ2FtZU92ZXI6IGJvb2xlYW4gOyAgICAgLy/muLjmiI/nu5PmnZ9cclxuICAgIHJlc3VsdDogbnVtYmVyOyAgICAgICAgIC8v5b2T5YmN5bCP5bGA57uT5p2f5qCH5p2GXHJcblxyXG4gICAgb3V0c2lkZV9BcnJheTogYW55OyAgICAgLy/lhoXlnIjmlbDnu4RcclxuICAgIGluc2lkZV9BcnJheTogYW55OyAgICAgIC8v5aSW5ZyI5pWw57uEXHJcbiAgICBsZXZlbDogbnVtYmVyOyAgICAgICAgICAvL+WFs+WNoeetiee6p1xyXG4gICAgZ3VpZGVfTGV2ZWw6IG51bWJlcjsgICAgLy/lvJXlr7znrYnnuqdcclxuICAgIGd1aWRlX1N0YXRlOiBib29sZWFuOyAgICAvL+W8leWvvOetiee6p1xyXG4gICAgY29uZmlnOiB7fTsgICAgICAgICAgICAgLy/lvZPliY3lhbPljaHphY3nva5cclxuICAgIGFuc3dlckluc2lkZTogbnVtYmVyOyAgIC8v5q2j56Gu562U5qGI5L2N572uXHJcbiAgICBhbnN3ZXJPdXRzaWRlOiBudW1iZXI7ICAvL+ato+ehruetlOahiOS9jee9rlxyXG4gICAgcGFzczogYm9vbGVhbjsgICAgICAgICAgLy/mmK/lkKbpgJrlhbNcclxuICAgIG91dHNpZGU6IGFueTsgICAgICAgICAgIC8v5aSW5ZyI5a6e6ZmF5omn6KGM5pWw57uEXHJcbiAgICBpbnNpZGU6IGFueTsgICAgICAgICAgICAvL+WGheWciOWunumZheaJp+ihjOaVsOe7hFxyXG4gICAgYW5zd2VySW5zaWRlVGV4dHVyZTogbnVtYmVyOyAgLy/kuonlj5bnrZTmoYjlm77niYdcclxuICAgIGFuc3dlck91dHNpZGVUZXh0dXJlOiBudW1iZXI7ICAvL+S6ieWPluetlOahiOWbvueJh1xyXG4gICAgaW5zaWRlVGV4dHVyZTogbnVtYmVyW107ICAgLy/plJnor6/nrZTmoYjmlbDnu4RcclxuICAgIG91dHNpZGVUZXh0dXJlOiBudW1iZXJbXTsgICAvL+mUmeivr+etlOahiOaVsOe7hFxyXG4gICAgXHJcbiAgXHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICB0aGlzLmd1aWRlX1N0YXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5sZXZlbCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbDtcclxuICAgICAgICB0aGlzLmd1aWRlX0xldmVsID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmd1aWRlX0xldmVsO1xyXG4gICAgICAgIHRoaXMuTGV2ZWxMYWJlbC5zdHJpbmcgPSAodGhpcy5sZXZlbCsxKStcIlwiO1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MuZmlsbFJhbmdlID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnNjb3JlLzI0O1xyXG4gICAgICAgIGlmKHRoaXMucHJvZ3Jlc3MuZmlsbFJhbmdlPj0gMC4yKSB0aGlzLlRvcC5nZXRDaGlsZEJ5TmFtZShcInN0YXIxXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgaWYodGhpcy5wcm9ncmVzcy5maWxsUmFuZ2U+PSAwLjUpIHRoaXMuVG9wLmdldENoaWxkQnlOYW1lKFwic3RhcjJcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBpZih0aGlzLnByb2dyZXNzLmZpbGxSYW5nZT49IDAuOCkgdGhpcy5Ub3AuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyM1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIGlmKCh0aGlzLmxldmVsID09IDAgJiYgdGhpcy5ndWlkZV9MZXZlbCA9PSA0KSB8fFxyXG4gICAgICAgICh0aGlzLmxldmVsID09IDQgJiYgdGhpcy5ndWlkZV9MZXZlbCA9PSAzKSB8fFxyXG4gICAgICAgICh0aGlzLmxldmVsID09IDggJiYgdGhpcy5ndWlkZV9MZXZlbCA9PSAxKSl7XHJcbiAgICAgICAgICAgIHRoaXMub3Blbkd1aWRlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5MZXZlbExhYmVsLm5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwibGlhbnhpXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCLnrKwgICAgICAgIOi9rlwiO1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCgpe1xyXG4gICAgICAgIGlmKHRoaXMubGV2ZWwgPT0gNCAmJiB0aGlzLmd1aWRlX0xldmVsID09IDIpIHtcclxuICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ3VpZGVfTGV2ZWwgLT0gMTtcclxuICAgICAgICAgICB0aGlzLmd1aWRlX1N0YXRlID0gdHJ1ZTtcclxuICAgICAgICAgICB0aGlzLkxldmVsTGFiZWwubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJUb3BcIikuZ2V0Q2hpbGRCeU5hbWUoXCJsaWFueGlcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBcIue7gyAgIOS5oFwiO1xyXG4gICAgICAgIC8vICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpcFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5yZXN1bHQgPSAwO1xyXG4gICAgICAgIHRoaXMuY291bnRUaW1lID0gNjtcclxuICAgICAgICB0aGlzLlRpbWVMYWJlbC5zdHJpbmcgPSAgY2MuZnguR2FtZVRvb2wuZ2V0VGltZU1hcmdpbih0aGlzLmNvdW50VGltZSk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVCbG9jaygpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUN1c3RvbSgpO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5HdWlkZSh0eXBlKXtcclxuICAgICAgICB0aGlzLkd1aWRlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ndWlkZV9TdGF0ZSA9IHRydWU7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGlwXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgaWYoIXR5cGUpIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ndWlkZV9MZXZlbCAtPSAxO1xyXG4gICAgICAgIHRoaXMuR3VpZGUuZ2V0Q2hpbGRCeU5hbWUoXCJvbmVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5HdWlkZS5nZXRDaGlsZEJ5TmFtZShcInR3b1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLkd1aWRlLmdldENoaWxkQnlOYW1lKFwidGhyZWVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5HdWlkZS5nZXRDaGlsZEJ5TmFtZShcImZvdXJcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBcIm9uZVwiO1xyXG4gICAgICAgIGlmKHRoaXMubGV2ZWwgPT0gMCl7XHJcbiAgICAgICAgICAgIG5hbWUgPSBcIm9uZVwiO1xyXG4gICAgICAgICAgICB0aGlzLkxldmVsTGFiZWwubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwibGlhbnhpXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCLnu4MgICDkuaBcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLmxldmVsID09IDQpe1xyXG4gICAgICAgICAgICBuYW1lID0gXCJ0d29cIjtcclxuICAgICAgICAgICAgdGhpcy5MZXZlbExhYmVsLm5vZGUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcImxpYW54aVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IFwi57uDICAg5LmgXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5sZXZlbCA9PSA4KXtcclxuICAgICAgICAgICAgbmFtZSA9IFwidGhyZWVcIjtcclxuICAgICAgICAgICAgdGhpcy5ndWlkZV9TdGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0eXBlKSBuYW1lID0gXCJmb3VyXCI7XHJcbiAgICAgICAgdGhpcy5HdWlkZS5nZXRDaGlsZEJ5TmFtZShuYW1lKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMuR3VpZGUuZ2V0Q2hpbGRCeU5hbWUobmFtZSkpXHJcbiAgICAgICAgLnRvKDAuNSx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlR3VpZGUoKXtcclxuICAgICAgICBpZih0aGlzLkd1aWRlLmdldENoaWxkQnlOYW1lKFwiZm91clwiKS5hY3RpdmUpe1xyXG4gICAgICAgICAgICB0aGlzLkd1aWRlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuR3VpZGUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/liJvlu7rmlrnlnZflnLDlm75cclxuICAgIGNyZWF0ZUJsb2NrKCl7XHJcbiAgICAgICAgdGhpcy5vdXRzaWRlX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5pbnNpZGVfQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLm91dHNpZGUgPSBbXTtcclxuICAgICAgICB0aGlzLmluc2lkZSA9IFtdO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPDE2OyBpKyspe1xyXG4gICAgICAgICAgICBsZXQgYmxvY2sgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLmt1YW5nMV9QcmVmYWIpO1xyXG4gICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5zZXRJZChpKTtcclxuICAgICAgICAgICAgYmxvY2sucGFyZW50ID0gdGhpcy5CbG9jay5nZXRDaGlsZEJ5TmFtZShcIm91dHNpZGVcIik7XHJcbiAgICAgICAgICAgIGxldCB4LHkgPSAwO1xyXG4gICAgICAgICAgICBpZihpIDwgNSl7XHJcbiAgICAgICAgICAgICAgICB4ID0gLTI4NCArIDE0MippOyB5ID0gMjU5O1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKGkgPCA5KXtcclxuICAgICAgICAgICAgICAgIHggPSAyODQ7IHkgPSAyNTkgLSAoaS00KSoxNDI7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYoaSA8IDEzKXsgICAgXHJcbiAgICAgICAgICAgICAgICB4ID0gMjg0IC0gKGktOCkqMTQyOyB5ID0gLTMwOTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSBpZihpIDwgMTYpe1xyXG4gICAgICAgICAgICAgICAgeCA9IC0yODQ7IHkgPSAtMzA5ICsgKGktMTIpKjE0MjtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgYmxvY2suc2V0UG9zaXRpb24oeCx5KTtcclxuICAgICAgICAgICAgdGhpcy5vdXRzaWRlX0FycmF5LnB1c2goYmxvY2spO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IobGV0IGo9MzsgajwxMjsgaisrKXtcclxuICAgICAgICAgICAgbGV0IGJsb2NrID0gY2MuaW5zdGFudGlhdGUodGhpcy5rdWFuZzJfUHJlZmFiKTtcclxuICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2V0SWQoaik7XHJcbiAgICAgICAgICAgIGJsb2NrLnBhcmVudCA9IHRoaXMuQmxvY2suZ2V0Q2hpbGRCeU5hbWUoXCJpbnNpZGVcIik7XHJcbiAgICAgICAgICAgIGJsb2NrLnNldFBvc2l0aW9uKC0xMzIraiUzKjEzMiwyMzktcGFyc2VJbnQoai8zICsgXCJcIikqMTMyKTtcclxuICAgICAgICAgICAgdGhpcy5pbnNpZGVfQXJyYXkucHVzaChibG9jayk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu65YWz5Y2hXHJcbiAgICBjcmVhdGVDdXN0b20oKXtcclxuICAgICAgICAvL+WIneWni+WMluWFs+WNoemFjee9ruaVsOaNrlxyXG4gICAgICAgIHRoaXMubGV2ZWwgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWw7XHJcbiAgICAgICAgdGhpcy5MZXZlbExhYmVsLnN0cmluZyA9ICh0aGlzLmxldmVsKzEpK1wiXCI7XHJcbiAgICAgICAgdGhpcy5jb25maWcgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bdGhpcy5sZXZlbF07XHJcbiAgICAgICAgaWYodGhpcy5sZXZlbCA9PSA0ICYmIHRoaXMuZ3VpZGVfTGV2ZWwgPT0gMikge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZyA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1s2XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5wYXNzID0gZmFsc2U7XHJcbiAgICAgICAgLy/mlL7mraPnoa7nrZTmoYjlkozplJnor6/nrZTmoYhcclxuICAgICAgICB0aGlzLmFuc3dlckluc2lkZVRleHR1cmUgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMTQgKyAxKTtcclxuICAgICAgICAvL+WGheWciOmUmeivr+etlOahiOmaj+aculxyXG4gICAgICAgIHRoaXMuaW5zaWRlVGV4dHVyZSA9IFtdO1xyXG4gICAgICAgIHRoaXMub3V0c2lkZVRleHR1cmUgPSBbXTtcclxuICAgICAgICBmb3IobGV0IGs9MDsgazwxNDsgaysrKXtcclxuICAgICAgICAgICAgaWYoKGsrMSkgIT0gdGhpcy5hbnN3ZXJJbnNpZGVUZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zaWRlVGV4dHVyZS5wdXNoKGsrMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1ZmZsZUFycmF5KHRoaXMuaW5zaWRlVGV4dHVyZSk7XHJcbiAgICAgICAgdGhpcy5hbnN3ZXJPdXRzaWRlVGV4dHVyZSA9IHRoaXMuaW5zaWRlVGV4dHVyZVsxMV07XHJcblxyXG4gICAgICAgIC8v5YiG6YWN5q2j56Gu562U5qGI5ZKM6ZSZ6K+v562U5qGI5L2N572uXHJcbiAgICAgICAgaWYodGhpcy5jb25maWdbXCJpbnNpZGVcIl0gPiAwKXtcclxuICAgICAgICAgICAgdGhpcy5yZXN1bHQgKz0gMTtcclxuICAgICAgICAgICAgbGV0IHJhbmRvbSA9IE1hdGgucmFuZG9tKCkqMTAwO1xyXG4gICAgICAgICAgICBsZXQgYXJyYXlUZW1wID0gWzAsMSwyLDMsNSw2LDcsOF07XHJcbiAgIFxyXG4gICAgICAgICAgICBpZih0aGlzLmNvbmZpZ1tcImluc2lkZVR5cGVcIl0gPT0gMSl7XHJcbiAgICAgICAgICAgICAgICBpZihyYW5kb20gPj0gNTApIHRoaXMuaW5zaWRlID0gIFswLDEsMl07XHJcbiAgICAgICAgICAgICAgICBlbHNlIHRoaXMuaW5zaWRlID0gWzYsNyw4XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHRoaXMuY29uZmlnW1wiaW5zaWRlVHlwZVwiXSA9PSAyKXtcclxuICAgICAgICAgICAgICAgIGlmKHJhbmRvbSA+PSA1MCkgdGhpcy5pbnNpZGUgPSAgWzAsMyw2XTtcclxuICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5pbnNpZGUgPSBbMiw1LDhdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc2lkZSA9IGNjLmZ4LkdhbWVUb29sLnNodWZmbGVBcnJheShhcnJheVRlbXApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnNpZGUuc3BsaWNlKHRoaXMuY29uZmlnW1wiaW5zaWRlXCJdLHRoaXMuaW5zaWRlLmxlbmd0aC10aGlzLmNvbmZpZ1tcImluc2lkZVwiXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5hbnN3ZXJJbnNpZGUgPSB0aGlzLmluc2lkZVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqdGhpcy5pbnNpZGUubGVuZ3RoKV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8v5YiG6YWN5aSW5ZyI5q2j56Gu562U5qGI5ZKM6ZSZ6K+v562U5qGI5L2N572uXHJcbiAgICAgICAgaWYodGhpcy5jb25maWdbXCJvdXRzaWRlXCJdID4gMCl7XHJcbiAgICAgICAgICAgIHRoaXMucmVzdWx0ICs9IDE7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnW1wib3V0c2lkZVR5cGVcIl0gPT0gMSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm91dHNpZGUgPSBbMSwyLDMsNSw2LDcsOSwxMCwxMSwxMywxNCwxNV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZih0aGlzLmNvbmZpZ1tcIm91dHNpZGVUeXBlXCJdID09IDIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdXRzaWRlID0gWzAsNCw4LDEyXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdXRzaWRlID0gWzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTVdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodWZmbGVBcnJheSh0aGlzLm91dHNpZGUpO1xyXG4gICAgICAgICAgICB0aGlzLmFuc3dlck91dHNpZGUgPSB0aGlzLm91dHNpZGVbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKnRoaXMub3V0c2lkZS5sZW5ndGgpXTtcclxuICAgICAgICAgICAgaWYodGhpcy5jb25maWdbXCJvdXRzaWRlXCJdID09IDIpe1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBqPTA7IGo8MTU7IGorKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vdXRzaWRlVGV4dHVyZS5wdXNoKHRoaXMuaW5zaWRlVGV4dHVyZVszXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZih0aGlzLmNvbmZpZ1tcIm91dHNpZGVcIl0gPT0gMyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm91dHNpZGVUZXh0dXJlID0gW3RoaXMuaW5zaWRlVGV4dHVyZVs1XSx0aGlzLmluc2lkZVRleHR1cmVbNl0sdGhpcy5pbnNpZGVUZXh0dXJlWzVdLHRoaXMuaW5zaWRlVGV4dHVyZVs2XSx0aGlzLmluc2lkZVRleHR1cmVbNV1dO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBqPTA7IGo8MTA7IGorKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJhbmRvbVRlbXAgPSBNYXRoLnJhbmRvbSgpKjEwMDtcclxuICAgICAgICAgICAgICAgICAgICBpZihyYW5kb21UZW1wPjUwKSB0aGlzLm91dHNpZGVUZXh0dXJlLnB1c2godGhpcy5pbnNpZGVUZXh0dXJlWzVdKTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMub3V0c2lkZVRleHR1cmUucHVzaCh0aGlzLmluc2lkZVRleHR1cmVbNl0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1ZmZsZUFycmF5KHRoaXMub3V0c2lkZVRleHR1cmUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYodGhpcy5jb25maWdbXCJvdXRzaWRlXCJdID09IDQpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdXRzaWRlVGV4dHVyZSA9IFt0aGlzLmluc2lkZVRleHR1cmVbMl0sdGhpcy5pbnNpZGVUZXh0dXJlWzRdLHRoaXMuaW5zaWRlVGV4dHVyZVs2XSxcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zaWRlVGV4dHVyZVsyXSx0aGlzLmluc2lkZVRleHR1cmVbNF0sdGhpcy5pbnNpZGVUZXh0dXJlWzZdXTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaj0wOyBqPDk7IGorKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJhbmRvbVRlbXAgPSBNYXRoLnJhbmRvbSgpKjEwMDtcclxuICAgICAgICAgICAgICAgICAgICBpZihyYW5kb21UZW1wPDMzKSB0aGlzLm91dHNpZGVUZXh0dXJlLnB1c2godGhpcy5pbnNpZGVUZXh0dXJlWzJdKTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKHJhbmRvbVRlbXA8NjYpIHRoaXMub3V0c2lkZVRleHR1cmUucHVzaCh0aGlzLmluc2lkZVRleHR1cmVbNF0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5vdXRzaWRlVGV4dHVyZS5wdXNoKHRoaXMuaW5zaWRlVGV4dHVyZVs2XSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVmZmxlQXJyYXkodGhpcy5vdXRzaWRlVGV4dHVyZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ydW5CbG9jaygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Z2X5omn6KGM5Zu+54mH5Ye6546w5raI5aSx5Yqo55S7XHJcbiAgICBydW5CbG9jaygpe1xyXG4gICAgICAgIGlmKHRoaXMuY29uZmlnW1wiaW5zaWRlXCJdID4gMCl7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zaWRlX0FycmF5WzRdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmFuc3dlclNob3codGhpcy5hbnN3ZXJJbnNpZGVUZXh0dXJlKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgaW5zaWRlTnVtYmVyID0gMDtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuaW5zaWRlLmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5zaWRlW2ldID09IHRoaXMuYW5zd2VySW5zaWRlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2lkZV9BcnJheVt0aGlzLmluc2lkZVtpXV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2hvdyh0cnVlLHRydWUsdGhpcy5hbnN3ZXJJbnNpZGVUZXh0dXJlKTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2lkZV9BcnJheVt0aGlzLmluc2lkZVtpXV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2hvdyhmYWxzZSx0cnVlLHRoaXMuaW5zaWRlVGV4dHVyZVtpbnNpZGVOdW1iZXJdKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5zaWRlTnVtYmVyICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCB0aGlzLmNvbmZpZ1tcInNob3dUaW1lXCJdKjEwMDApO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYodGhpcy5jb25maWdbXCJvdXRzaWRlXCJdID4gMCl7XHJcbiAgICAgICAgICAgIHRoaXMub3V0c2lkZV9BcnJheVt0aGlzLmFuc3dlck91dHNpZGVdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmFuc3dlclNob3codGhpcy5hbnN3ZXJPdXRzaWRlVGV4dHVyZSk7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnW1wib3V0c2lkZVwiXSA+IDEpe1xyXG4gICAgICAgICAgICAgICAgbGV0IG91dHNpZGVOdW1iZXIgPSAwO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5vdXRzaWRlX0FycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGkgPT0gdGhpcy5hbnN3ZXJPdXRzaWRlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm91dHNpZGVfQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2hvdyh0cnVlLGZhbHNlLHRoaXMuYW5zd2VyT3V0c2lkZVRleHR1cmUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm91dHNpZGVfQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2hvdyhmYWxzZSxmYWxzZSx0aGlzLm91dHNpZGVUZXh0dXJlW291dHNpZGVOdW1iZXJdKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0c2lkZU51bWJlciArPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBvdXRzaWRlTnVtYmVyID0gMDtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMub3V0c2lkZV9BcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihpID09IHRoaXMuYW5zd2VyT3V0c2lkZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vdXRzaWRlX0FycmF5W2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmxvY2tTaG93KHRydWUsZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm91dHNpZGVfQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikubG9ja1Nob3coZmFsc2UsZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRzaWRlTnVtYmVyICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCB0aGlzLmNvbmZpZ1tcInNob3dUaW1lXCJdKjEwMDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYoIXRoaXMuZ3VpZGVfU3RhdGUpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMudXBkYXRlQ291bnREb3duVGltZSwxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgfSwgdGhpcy5jb25maWdbXCJzaG93VGltZVwiXSoxMDAwKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+ato+ehrlxyXG4gICAgb3BlblJlc3VsdChyZXN1bHQpe1xyXG4gICAgICAgIHRoaXMucmVzdWx0IC09IDE7XHJcbiAgICAgICAgLy/pnZ7lvJXlr7znirbmgIFcclxuICAgICAgICBpZighdGhpcy5ndWlkZV9TdGF0ZSl7XHJcbiAgICAgICAgICAgIHRoaXMuZmxpcEJsb2NrKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIGlmKHRoaXMucmVzdWx0ID09IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMudXBkYXRlQ291bnREb3duVGltZSk7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldERhdGEocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsIDwgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPLmxlbmd0aC0xKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LCAyMDAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvL+W8leWvvOeKtuaAgeS4i1xyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKHJlc3VsdC5yZXN1bHQpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mbGlwQmxvY2socmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubGV2ZWwgPT0gNCAmJiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ3VpZGVfTGV2ZWwgPT0gMil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB0aGlzLm9wZW5HdWlkZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgXHJcbiAgICB9XHJcblxyXG4gICAgLy/nv7vovazlvaLnirblj5jmiJDpl67lj7dcclxuICAgIGZsaXBCbG9jayhyZXN1bHQpe1xyXG4gICAgICAgIGlmKHJlc3VsdC50eXBlKXtcclxuICAgICAgICAgICAgbGV0IHBvcyA9IHRoaXMuY2hhbmdlUG9zKHRydWUscmVzdWx0LmlkKTtcclxuICAgICAgICAgICAgaWYoIXRoaXMuZ3VpZGVfU3RhdGUpIGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfREFUQS51c2VyQ2hvaWNlSW5uZXIucHVzaChwb3MueCxwb3MueSk7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuaW5zaWRlLmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbnNpZGVbaV0gPT0gdGhpcy5hbnN3ZXJJbnNpZGUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zaWRlX0FycmF5WzRdLmdldENoaWxkQnlOYW1lKFwidGV4dHVyZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zaWRlX0FycmF5WzRdLmdldENoaWxkQnlOYW1lKFwidGV4dHVyZVwiKS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zaWRlX0FycmF5W3RoaXMuaW5zaWRlW2ldXS5nZXRDaGlsZEJ5TmFtZShcInllc1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwb3MgPSB0aGlzLmNoYW5nZVBvcyh0cnVlLHRoaXMuaW5zaWRlX0FycmF5W3RoaXMuaW5zaWRlW2ldXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5faWROdW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLmd1aWRlX1N0YXRlKSBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEucmlnaHRDaG9pY2VJbm5lci5wdXNoKHBvcy54LHBvcy55KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zaWRlX0FycmF5W3RoaXMuaW5zaWRlW2ldXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5fdG91Y2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihyZXN1bHQucmVzdWx0KXtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRkU2NvcmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBsZXQgcG9zID0gdGhpcy5jaGFuZ2VQb3MoZmFsc2UscmVzdWx0LmlkKTtcclxuICAgICAgICAgICAgaWYoIXRoaXMuZ3VpZGVfU3RhdGUpIGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfREFUQS51c2VyQ2hvaWNlT3V0ZXIucHVzaChwb3MueCxwb3MueSk7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMub3V0c2lkZV9BcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgIHRoaXMub3V0c2lkZV9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5sb2NrSGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdXRzaWRlX0FycmF5W2ldLmdldENoaWxkQnlOYW1lKFwidGV4dHVyZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYoaSA9PSB0aGlzLmFuc3dlck91dHNpZGUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3V0c2lkZV9BcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcInllc1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3V0c2lkZV9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5zaG93KHRydWUsZmFsc2UsdGhpcy5hbnN3ZXJPdXRzaWRlVGV4dHVyZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBvcyA9IHRoaXMuY2hhbmdlUG9zKGZhbHNlLHRoaXMub3V0c2lkZV9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5faWROdW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLmd1aWRlX1N0YXRlKSBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEucmlnaHRDaG9pY2VPdXRlci5wdXNoKHBvcy54LHBvcy55KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihyZXN1bHQucmVzdWx0KXtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRkU2NvcmUoKTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLy/liqDliIYg5Yqg6L+b5bqm5p2h77yM5Yqg5pif5pifXHJcbiAgICBhZGRTY29yZSgpe1xyXG4gICAgICAgIGlmKCF0aGlzLmd1aWRlX1N0YXRlKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnNjb3JlICs9IDE7XHJcbiAgICAgICAgICAgIHZhciBwcm9ncmVzcyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zY29yZS8yNDtcclxuICAgICAgICAgICAgaWYocHJvZ3Jlc3MgPj0gMSkgcHJvZ3Jlc3MgPSAxO1xyXG4gICAgICAgICAgICBjYy50d2Vlbih0aGlzLnByb2dyZXNzKVxyXG4gICAgICAgICAgICAudG8oMC4yLHtmaWxsUmFuZ2U6cHJvZ3Jlc3N9KVxyXG4gICAgICAgICAgICAuY2FsbCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5Ub3AuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyMVwiKS5hY3RpdmUgPT0gZmFsc2UgJiYgcHJvZ3Jlc3M+PSAwLjIpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuVG9wLmdldENoaWxkQnlOYW1lKFwic3RhcjFcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlRvcC5nZXRDaGlsZEJ5TmFtZShcInN0YXIxXCIpLm9wYWNpdHkgPSAwOyB0aGlzLlRvcC5nZXRDaGlsZEJ5TmFtZShcInN0YXIxXCIpLnNjYWxlID0gMC4xO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuVG9wLmdldENoaWxkQnlOYW1lKFwic3RhcjFcIikpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMyx7b3BhY2l0eToyNTUsc2NhbGU6MS4xfSlcclxuICAgICAgICAgICAgICAgICAgICAudG8oMC4xLHtvcGFjaXR5OjI1NSxzY2FsZTowLjl9KVxyXG4gICAgICAgICAgICAgICAgICAgIC50bygwLjEse29wYWNpdHk6MjU1LHNjYWxlOjF9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5Ub3AuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyMlwiKS5hY3RpdmUgPT0gZmFsc2UgJiYgcHJvZ3Jlc3M+PSAwLjUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuVG9wLmdldENoaWxkQnlOYW1lKFwic3RhcjJcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlRvcC5nZXRDaGlsZEJ5TmFtZShcInN0YXIyXCIpLm9wYWNpdHkgPSAwOyB0aGlzLlRvcC5nZXRDaGlsZEJ5TmFtZShcInN0YXIyXCIpLnNjYWxlID0gMC4xO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuVG9wLmdldENoaWxkQnlOYW1lKFwic3RhcjJcIikpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMyx7b3BhY2l0eToyNTUsc2NhbGU6MS4xfSlcclxuICAgICAgICAgICAgICAgICAgICAudG8oMC4xLHtvcGFjaXR5OjI1NSxzY2FsZTowLjl9KVxyXG4gICAgICAgICAgICAgICAgICAgIC50bygwLjEse29wYWNpdHk6MjU1LHNjYWxlOjF9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5Ub3AuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyM1wiKS5hY3RpdmUgPT0gZmFsc2UgJiYgcHJvZ3Jlc3M+PSAwLjgpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuVG9wLmdldENoaWxkQnlOYW1lKFwic3RhcjNcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlRvcC5nZXRDaGlsZEJ5TmFtZShcInN0YXIzXCIpLm9wYWNpdHkgPSAwOyB0aGlzLlRvcC5nZXRDaGlsZEJ5TmFtZShcInN0YXIzXCIpLnNjYWxlID0gMC4xO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuVG9wLmdldENoaWxkQnlOYW1lKFwic3RhcjNcIikpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMyx7b3BhY2l0eToyNTUsc2NhbGU6MS4xfSlcclxuICAgICAgICAgICAgICAgICAgICAudG8oMC4xLHtvcGFjaXR5OjI1NSxzY2FsZTowLjl9KVxyXG4gICAgICAgICAgICAgICAgICAgIC50bygwLjEse29wYWNpdHk6MjU1LHNjYWxlOjF9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/ov5Tlm57pppbpobVcclxuICAgIGJhY2tTY2VuZSgpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkxvYWRTY2VuZVwiKTtcclxuICAgIH1cclxuICAgIC8v6YeN5paw5byA5aeLXHJcbiAgICByZVN0YXJ0KCl7XHJcblxyXG4gICAgfVxyXG4gICAgLy/ojrflj5bml7bpl7TmiLNcclxuICAgIGdldFRpbWUoKXtcclxuICAgICAgICB2YXIgdGltZXN0YW1wID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgcmV0dXJuIHRpbWVzdGFtcDtcclxuICAgIH1cclxuICAgIC8v6I636IOcXHJcbiAgICBwYXNzTGV2ZWwoKXtcclxuXHJcbiAgICB9XHJcbiAgICAvL+Wksei0pVxyXG4gICAgbG9zZUxldmVsKHR5cGUpe1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZVBvcyh0eXBlLG51bSl7XHJcbiAgICAgICAgdmFyIHggPSAwOyB2YXIgeSA9IDA7XHJcbiAgICAgICAgLy/lhoXpg6hcclxuICAgICAgICBpZih0eXBlKXtcclxuICAgICAgICAgICAgeSA9IHBhcnNlSW50KG51bS8zK1wiXCIpO1xyXG4gICAgICAgICAgICB4ID0gbnVtJTM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8v5aSW6YOoXHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgaWYobnVtIDwgNSl7XHJcbiAgICAgICAgICAgICAgICB5PTA7IHg9bnVtO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKG51bSA8IDkpe1xyXG4gICAgICAgICAgICAgICAgeD01OyB5PW51bS00O1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKG51bSA8IDEzKXsgICAgXHJcbiAgICAgICAgICAgICAgICB5PTQ7IHg9MTItbnVtO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKG51bSA8IDE2KXtcclxuICAgICAgICAgICAgICAgIHg9MDsgeT0xNi1udW07XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBqZyA9IGNjLnYyKHgseSk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG4gICAgLy/lpoLmnpzmmK/lgJLorqHml7Yg6LCD55So5q2k5pa55rOVXHJcbiAgICB1cGRhdGVDb3VudERvd25UaW1lICgpIHtcclxuICAgICAgICBpZiAodGhpcy5jb3VudFRpbWUgPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnRUaW1lIC09IDE7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuVGltZUxhYmVsLnN0cmluZyA9dGhpcy5jb3VudFRpbWUgKyBcIlwiO1xyXG4gICAgICAgICAgICB0aGlzLlRpbWVMYWJlbC5zdHJpbmcgPSAgY2MuZnguR2FtZVRvb2wuZ2V0VGltZU1hcmdpbih0aGlzLmNvdW50VGltZSk7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY291bnRUaW1lIDw9IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMudXBkYXRlQ291bnREb3duVGltZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJNYXNrXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcInJlc3VsdFwiOmZhbHNlLFwidHlwZVwiOnRydWUsXCJpZFwiOm51bGx9O1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jb25maWdbXCJpbnNpZGVcIl0gPiAwKSBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoXCJyZXN1bHRcIixkYXRhKTtcclxuICAgICAgICAgICAgICAgIGxldCBkYXRhMiA9IHtcInJlc3VsdFwiOmZhbHNlLFwidHlwZVwiOmZhbHNlLFwiaWRcIjpudWxsfTtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnW1wib3V0c2lkZVwiXSA+IDApIGNjLmZ4Lk5vdGlmaWNhdGlvbnMuZW1pdChcInJlc3VsdFwiLGRhdGEyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8v5LiK5Lyg5q+P5qyh5pON5L2c5pWw5o2uXHJcbiAgICBzZXREYXRhKHJlc3VsdCl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5DTElDS19EQVRBLnN1Y2Nlc3MgPSByZXN1bHQucmVzdWx0O1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfREFUQS5yb3VuZCA9IChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgKyAxKTtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEuZHVyYXRpb24gPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHRoaXMuc3RhcnRUaW1lIC0gMTAwMDtcclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRHYW1lRGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRW5hYmxlICgpIHtcclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLm9uKFwicmVzdWx0XCIsIHRoaXMub3BlblJlc3VsdCwgdGhpcyk7XHJcblxyXG4gICAgfVxyXG4gICAgb25EaXNhYmxlICgpIHtcclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLm9mZihcInJlc3VsdFwiLCB0aGlzLm9wZW5SZXN1bHQsIHRoaXMpO1xyXG4gICAgfVxyXG4gICAgdXBkYXRlIChkdCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/RankManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'e74a999IDFOabyymZgXQIiy', 'RankManager'); +// Script/RankManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var List_1 = require("./module/RankList/List"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +//排行榜 +var RankManager = /** @class */ (function (_super) { + __extends(RankManager, _super); + function RankManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.Player = null; + _this.selfNode = null; + _this.phone = null; + return _this; + } + RankManager.prototype.onLoad = function () { + this.init(); + }; + //初始化数据 + RankManager.prototype.init = function () { + this.rankList = cc.find("ScrollView", this.node).getComponent(List_1.default); + this.Player.getChildByName("rank").active = false; + this.listData = []; + this.selfData = null; + this.rankNumber = 100; + this.rankTotal = 100; + this.selfNode.opacity = 0; + }; + RankManager.prototype.start = function () { + this.Player.active = false; + this.getRank(); + }; + //调用获取排行榜接口 + RankManager.prototype.getRank = function () { + var _this = this; + var dataFile = { + length: 100 + }; + cc.fx.GameTool.getRank(dataFile, function (data) { return _this.getRankData(data); }); + }; + //实际设置排行数据 + RankManager.prototype.getRankData = function (data) { + if (data) { + // console.log(data); + cc.fx.GameTool.getRankData(data, this, 6); + this.setPic(this.selfData.pic); + } + }; + //返回按钮 + RankManager.prototype.backClick = function () { + cc.director.loadScene("LoadScene"); + }; + //最上方用户动画 + RankManager.prototype.playerAction = function () { + var _this = this; + //-254 377 210 453 + this.Player.getChildByName("rank").active = false; + var time = 1; + this.tween = cc.tween(this.Player) + .to(2, { position: cc.v3(210, 453, 0) }) + .call(function () { + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; + }) + .start(); + time = (this.listData.length - this.rankNumber) / this.listData.length; + if (this.listData.length >= 99) { + if (this.rankNumber >= 99) { + time = (Math.random() * 49 + 1) / 100; + var matchId = cc.sys.localStorage.getItem("matchNumber"); + if (matchId == null || matchId == undefined) { + time = 0; + } + } + } + setTimeout(function () { + if (_this.tween) + _this.tween.stop(); + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; + }, time * 2000); + }; + //设置头像 处理的逻辑比较多,不用公共类的了 + RankManager.prototype.setPic = function (pic) { + var _this = this; + this.phone.node.parent.getChildByName("icon").active = false; + this.phone.node.active = false; + this.Player.active = true; + this.Player.opacity = 0; + this.Player.getChildByName("mask").getChildByName("icon").active = false; + this.Player.getChildByName("mask").getChildByName("phone").active = false; + fetch(pic) + .then(function (response) { + return response.headers.get('Content-Length'); + }) + .then(function (errNo) { + if (errNo == "5093") { + _this.phone.node.parent.getChildByName("icon").active = true; + _this.Player.getChildByName("mask").getChildByName("icon").active = true; + } + }) + .catch(function (error) { + console.error('Error fetching X-Info:', error); + }); + var self = this; + cc.assetManager.loadRemote(pic, { ext: '.png' }, function (err, texture) { + self.Player.opacity = 255; + if (texture) { + self.phone.node.active = true; + self.phone.spriteFrame = new cc.SpriteFrame(texture); + self.Player.getChildByName("mask").getChildByName("icon").active = false; + self.Player.getChildByName("mask").getChildByName("phone").active = true; + self.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite) + .spriteFrame = new cc.SpriteFrame(texture); + setTimeout(function () { + self.playerAction(); + }, 500); + } + else { + self.Player.getChildByName("mask").getChildByName("icon").active = true; + setTimeout(function () { + self.playerAction(); + }, 500); + } + }); + }; + __decorate([ + property(cc.Node) //用户上方头像 + ], RankManager.prototype, "Player", void 0); + __decorate([ + property(cc.Node) //用户最下方个人信息 + ], RankManager.prototype, "selfNode", void 0); + __decorate([ + property(cc.Sprite) //用户头像换图 + ], RankManager.prototype, "phone", void 0); + RankManager = __decorate([ + ccclass + ], RankManager); + return RankManager; +}(cc.Component)); +exports.default = RankManager; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxSYW5rTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSwrQ0FBMEM7QUFDcEMsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFDNUMsS0FBSztBQUVMO0lBQXlDLCtCQUFZO0lBQXJEO1FBQUEscUVBK0hDO1FBN0hHLFlBQU0sR0FBWSxJQUFJLENBQUM7UUFFdkIsY0FBUSxHQUFZLElBQUksQ0FBQztRQUV6QixXQUFLLEdBQWMsSUFBSSxDQUFDOztJQXlINUIsQ0FBQztJQWpIRyw0QkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPO0lBQ1AsMEJBQUksR0FBSjtRQUNJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxjQUFJLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUUsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsMkJBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJ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QUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMzQyxVQUFVLENBQUM7b0JBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN4QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDWDtpQkFDRztnQkFDQSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDeEUsVUFBVSxDQUFDO29CQUNQLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ1g7UUFFTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUEzSEQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFVLFFBQVE7K0NBQ2I7SUFFdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFVLFdBQVc7aURBQ2Q7SUFFekI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFRLFFBQVE7OENBQ1o7SUFOUCxXQUFXO1FBRC9CLE9BQU87T0FDYSxXQUFXLENBK0gvQjtJQUFELGtCQUFDO0NBL0hELEFBK0hDLENBL0h3QyxFQUFFLENBQUMsU0FBUyxHQStIcEQ7a0JBL0hvQixXQUFXIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCBMaXN0IGZyb20gXCIuL21vZHVsZS9SYW5rTGlzdC9MaXN0XCI7XHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcbi8v5o6S6KGM5qacXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhbmtNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKSAgICAgICAgICAvL+eUqOaIt+S4iuaWueWktOWDj1xyXG4gICAgUGxheWVyOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKSAgICAgICAgICAvL+eUqOaIt+acgOS4i+aWueS4quS6uuS/oeaBr1xyXG4gICAgc2VsZk5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlNwcml0ZSkgICAgICAgIC8v55So5oi35aS05YOP5o2i5Zu+XHJcbiAgICBwaG9uZTogY2MuU3ByaXRlID0gbnVsbDtcclxuICAgIHByaXZhdGUgcmFua0xpc3Q6IExpc3Q7ICAgICAvL+aOkuihjOamnFxyXG4gICAgdHdlZW46IGNjLlR3ZWVuPGNjLk5vZGU+OyAgIC8v5pyA5LiK5pa555So5oi35aS05YOP5Yqo55S7XHJcbiAgICBsaXN0RGF0YTogYW55OyAgICAgICAgICAgICAgLy/mgLvliJfooajkv6Hmga9cclxuICAgIHNlbGZEYXRhOiBhbnk7ICAgICAgICAgICAgICAvL+iHquW3seS/oeaBr1xyXG4gICAgcmFua051bWJlcjogbnVtYmVyOyAgICAgICAgIC8v55So5oi36Ieq5bex5o6S5ZCNIOacieWPr+iDveS4jeWcqOaOkuihjOamnOWGhTk5K1xyXG4gICAgcmFua1RvdGFsOiBudW1iZXI7ICAgICAgICAgIC8v6I635Y+W5o6S6KGM5qac55So5oi35pWw6YePIOeOsOWcqOS4ujEwMFxyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgIH1cclxuICAgIC8v5Yid5aeL5YyW5pWw5o2uXHJcbiAgICBpbml0KCl7XHJcbiAgICAgICAgdGhpcy5yYW5rTGlzdCA9IGNjLmZpbmQoXCJTY3JvbGxWaWV3XCIsIHRoaXMubm9kZSkuZ2V0Q29tcG9uZW50KExpc3QpO1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhID0gW107XHJcbiAgICAgICAgdGhpcy5zZWxmRGF0YSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5yYW5rTnVtYmVyID0gMTAwO1xyXG4gICAgICAgIHRoaXMucmFua1RvdGFsPSAxMDA7XHJcbiAgICAgICAgdGhpcy5zZWxmTm9kZS5vcGFjaXR5ID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCgpIHtcclxuICAgICAgICB0aGlzLlBsYXllci5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdldFJhbmsoKTtcclxuICAgIH1cclxuICAgIC8v6LCD55So6I635Y+W5o6S6KGM5qac5o6l5Y+jXHJcbiAgICBnZXRSYW5rKCl7XHJcbiAgICAgICAgbGV0IGRhdGFGaWxlID0ge1xyXG4gICAgICAgICAgICBsZW5ndGg6MTAwXHJcbiAgICAgICAgfVxyXG4gICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRSYW5rKGRhdGFGaWxlLGRhdGEgPT50aGlzLmdldFJhbmtEYXRhKGRhdGEpKTtcclxuICAgIH1cclxuICAgIC8v5a6e6ZmF6K6+572u5o6S6KGM5pWw5o2uXHJcbiAgICBnZXRSYW5rRGF0YShkYXRhKXtcclxuICAgICAgICBpZihkYXRhKXtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRSYW5rRGF0YShkYXRhLHRoaXMsNik7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGljKHRoaXMuc2VsZkRhdGEucGljKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+i/lOWbnuaMiemSrlxyXG4gICAgYmFja0NsaWNrKCl7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiTG9hZFNjZW5lXCIpO1xyXG4gICAgfVxyXG4gICAgLy/mnIDkuIrmlrnnlKjmiLfliqjnlLtcclxuICAgIHBsYXllckFjdGlvbigpe1xyXG4gICAgICAgIC8vLTI1NCAzNzcgIDIxMCA0NTNcclxuICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IHRpbWUgPSAxO1xyXG4gICAgICAgIHRoaXMudHdlZW4gPSBjYy50d2Vlbih0aGlzLlBsYXllcilcclxuICAgICAgICAudG8oMix7cG9zaXRpb246Y2MudjMoMjEwLDQ1MywwKX0pXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1iZXJcIilcclxuICAgICAgICAgICAgLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gIHBhcnNlSW50KHRpbWUqMTAwICsgXCJcIikgKyBcIiVcIjtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgIHRpbWUgPSAodGhpcy5saXN0RGF0YS5sZW5ndGggLSB0aGlzLnJhbmtOdW1iZXIpL3RoaXMubGlzdERhdGEubGVuZ3RoO1xyXG4gICAgICAgIGlmKHRoaXMubGlzdERhdGEubGVuZ3RoID49IDk5KXtcclxuICAgICAgICAgICAgaWYodGhpcy5yYW5rTnVtYmVyID49IDk5KXtcclxuICAgICAgICAgICAgICAgIHRpbWUgPSAoTWF0aC5yYW5kb20oKSo0OSsxKS8xMDBcclxuICAgICAgICAgICAgICAgIHZhciBtYXRjaElkID0gY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibWF0Y2hOdW1iZXJcIik7XHJcbiAgICAgICAgICAgICAgICBpZihtYXRjaElkID09IG51bGwgfHwgbWF0Y2hJZCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRpbWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0aGlzLnR3ZWVuKXRoaXMudHdlZW4uc3RvcCgpO1xyXG4gICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwibnVtYmVyXCIpXHJcbiAgICAgICAgICAgIC5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9ICBwYXJzZUludCh0aW1lKjEwMCArIFwiXCIpICsgXCIlXCI7XHJcbiAgICAgICAgfSwgdGltZSoyMDAwKTtcclxuXHJcbiAgICB9XHJcbiAgICAvL+iuvue9ruWktOWDjyAg5aSE55CG55qE6YC76L6R5q+U6L6D5aSa77yM5LiN55So5YWs5YWx57G755qE5LqGXHJcbiAgICBwdWJsaWMgc2V0UGljKHBpYyl7XHJcbiAgICAgICAgdGhpcy5waG9uZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5waG9uZS5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5QbGF5ZXIub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwaG9uZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBmZXRjaChwaWMpXHJcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtTGVuZ3RoJyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbihlcnJObyA9PiB7XHJcbiAgICAgICAgICAgIGlmKGVyck5vID09IFwiNTA5M1wiKXtcclxuICAgICAgICAgICAgICAgIHRoaXMucGhvbmUubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIFgtSW5mbzonLCBlcnJvcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKHBpYywge2V4dDonLnBuZyd9LChlcnIsIHRleHR1cmU6Y2MuVGV4dHVyZTJEKSA9PiB7XHJcbiAgICAgICAgICAgIHNlbGYuUGxheWVyLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgIGlmKHRleHR1cmUpe1xyXG4gICAgICAgICAgICAgICAgc2VsZi5waG9uZS5ub2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBzZWxmLnBob25lLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHNlbGYuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcInBob25lXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBzZWxmLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwaG9uZVwiKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKVxyXG4gICAgICAgICAgICAgICAgLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5wbGF5ZXJBY3Rpb24oKTtcclxuICAgICAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHNlbGYuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYucGxheWVyQWN0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Load.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '454adgphRpA6oq5lB6Cg1fK', 'Load'); +// Script/Load.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.localTest = false; + _this.clientTestVersion = "1.0.1"; + _this.testVersion = null; + return _this; + } + NewClass.prototype.start = function () { + cc.macro.ENABLE_MULTI_TOUCH = false; + window.initMgr(); + cc.fx.GameConfig.init(this.localTest); + // cc.fx.AudioManager.Instance.init(); + // this.testVersion.string = this.clientTestVersion; + }; + //开始游戏,跳转至引导页面 + NewClass.prototype.startGame = function () { + cc.fx.GameConfig.GM_INFO.isCustom = false; + cc.director.loadScene("GameScene"); + // cc.director.loadScene("GuideScene"); + }; + //备用,用来测试跳转 指定关卡 + NewClass.prototype.clickBtn = function (event, data) { + cc.fx.GameConfig.GM_INFO.level = parseInt(data); + cc.fx.GameConfig.GM_INFO.isCustom = true; + cc.director.loadScene("GameScene"); + }; + //打开排行榜 + NewClass.prototype.openRank = function () { + cc.director.loadScene("RankScene"); + }; + NewClass.prototype.showCustom = function () { + if (this.node.getChildByName("Custom").active) { + this.node.getChildByName("Custom").active = false; + } + else { + this.node.getChildByName("Custom").active = true; + } + }; + NewClass.prototype.update = function (dt) { + }; + __decorate([ + property(false) + ], NewClass.prototype, "localTest", void 0); + __decorate([ + property("") + ], NewClass.prototype, "clientTestVersion", void 0); + __decorate([ + property(cc.Label) + ], NewClass.prototype, "testVersion", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxMb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNNLElBQUEsS0FBd0MsRUFBRSxDQUFDLFVBQVUsRUFBcEQsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFBLEVBQUUsZ0JBQWdCLHNCQUFpQixDQUFDO0FBRzVEO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBZ0RDO1FBN0NHLGVBQVMsR0FBWSxLQUFLLENBQUM7UUFHM0IsdUJBQWlCLEdBQVcsT0FBTyxDQUFDO1FBR3BDLGlCQUFXLEdBQWEsSUFBSSxDQUFDOztJQXVDakMsQ0FBQztJQXJDRyx3QkFBSyxHQUFMO1FBQ0ksRUFBRSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDcEMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEMsc0NBQXNDO1FBQ3RDLG9EQUFvRDtJQUN4RCxDQUFDO0lBRUQsY0FBYztJQUNkLDRCQUFTLEdBQVQ7UUFDSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQyx1Q0FBdUM7SUFDM0MsQ0FBQztJQUNELGdCQUFnQjtJQUNoQiwyQkFBUSxHQUFSLFVBQVMsS0FBSyxFQUFDLElBQUk7UUFDZixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsT0FBTztJQUNQLDJCQUFRLEdBQVI7UUFDSSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsNkJBQVUsR0FBVjtRQUNJLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFDO1lBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDckQ7YUFDRztZQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDcEQ7SUFDTCxDQUFDO0lBRVMseUJBQU0sR0FBaEIsVUFBaUIsRUFBVTtJQUMzQixDQUFDO0lBNUNEO1FBREMsUUFBUSxDQUFDLEtBQUssQ0FBQzsrQ0FDVztJQUczQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUM7dURBQ3VCO0lBR3BDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7aURBQ1U7SUFUWixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBZ0Q1QjtJQUFELGVBQUM7Q0FoREQsQUFnREMsQ0FoRHFDLEVBQUUsQ0FBQyxTQUFTLEdBZ0RqRDtrQkFoRG9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5LCByZXF1aXJlQ29tcG9uZW50fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGZhbHNlKVxyXG4gICAgbG9jYWxUZXN0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQHByb3BlcnR5KFwiXCIpXHJcbiAgICBjbGllbnRUZXN0VmVyc2lvbjogc3RyaW5nID0gXCIxLjAuMVwiO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIHRlc3RWZXJzaW9uOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgICAgIGNjLm1hY3JvLkVOQUJMRV9NVUxUSV9UT1VDSCA9IGZhbHNlO1xyXG4gICAgICAgIHdpbmRvdy5pbml0TWdyKCk7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5pbml0KHRoaXMubG9jYWxUZXN0KTtcclxuICAgICAgICBcclxuICAgICAgICAvLyBjYy5meC5BdWRpb01hbmFnZXIuSW5zdGFuY2UuaW5pdCgpO1xyXG4gICAgICAgIC8vIHRoaXMudGVzdFZlcnNpb24uc3RyaW5nID0gdGhpcy5jbGllbnRUZXN0VmVyc2lvbjtcclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+a4uOaIj++8jOi3s+i9rOiHs+W8leWvvOmhtemdolxyXG4gICAgc3RhcnRHYW1lKCl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmlzQ3VzdG9tID0gZmFsc2U7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgIC8vIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkd1aWRlU2NlbmVcIik7XHJcbiAgICB9XHJcbiAgICAvL+Wkh+eUqO+8jOeUqOadpea1i+ivlei3s+i9rCDmjIflrprlhbPljaFcclxuICAgIGNsaWNrQnRuKGV2ZW50LGRhdGEpe1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IHBhcnNlSW50KGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5pc0N1c3RvbSA9IHRydWU7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgfSAgIFxyXG4gICAgLy/miZPlvIDmjpLooYzmppxcclxuICAgIG9wZW5SYW5rKCl7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiUmFua1NjZW5lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dDdXN0b20oKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJDdXN0b21cIikuYWN0aXZlKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiQ3VzdG9tXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJDdXN0b21cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHByb3RlY3RlZCB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgfVxyXG59XHJcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Block.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'd63eeqXqS5GV5T/inM6K0aA', 'Block'); +// Script/Block.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +//出现块的类型,问题以及答案 +var BlockType = cc.Enum({ + problem_In: 1, + problem_Out: 2, + correct_In: 3, + correct_Out: 4, + err_In: 5, + err_Out: 6, +}); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var Block = /** @class */ (function (_super) { + __extends(Block, _super); + function Block() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.UI = null; + return _this; + // update (dt) { + // } + } + // LIFE-CYCLE CALLBACKS: + Block.prototype.onLoad = function () { + // this.init(); + this.GameManager = this.node.parent.parent.parent.getComponent("GameManager"); + this._touch = false; + this._start = false; + this._answer = false; + this._inside = true; + this.node.on(cc.Node.EventType.TOUCH_START, this.touchStart, this); + }; + Block.prototype.init = function (type, id) { + if (type == BlockType.correct_Out) { + } + }; + Block.prototype.setId = function (id) { + this._idNumber = id; + }; + Block.prototype.answerShow = function (texture) { + var _this = this; + this.node.getChildByName("texture").active = true; + var textureName = "texture" + texture; + // @ts-ignore + this.node.getChildByName("texture").getComponent(cc.Sprite).spriteFrame = this.UI._spriteFrames[textureName]; + cc.tween(this.node.getChildByName("texture")) + .to(0.01, { opacity: 255 }) + .delay(this.GameManager.config["showTime"] - 0.05) + .call(function () { + if (_this._inside) { + _this.node.getChildByName("texture").opacity = 0; + } + }) + .start(); + }; + Block.prototype.lockShow = function (type, inside) { + this.node.getChildByName("texture").active = false; + this._answer = type; + this._inside = inside; + this.node.getChildByName("lock").active = true; + this._touch = true; + }; + Block.prototype.lockHide = function () { + this.node.getChildByName("lock").active = false; + this._touch = false; + }; + Block.prototype.show = function (type, inside, texture) { + var _this = this; + // this._answer = type; + this._inside = inside; + if (inside) + this._answer = type; + var textureName = "texture" + texture; + this.node.getChildByName("texture").active = true; + //正确答案 + //@ts-ignore + this.node.getChildByName("texture").getComponent(cc.Sprite).spriteFrame = this.UI._spriteFrames[textureName]; + cc.tween(this.node.getChildByName("texture")) + .to(0.01, { opacity: 255 }) + // .delay(this.GameManager.config["showTime"]-0.1) + .call(function () { + if (inside) { + _this._touch = true; + } + }) + .start(); + }; + Block.prototype.set_Pos = function () { + this._start = true; + }; + Block.prototype.set_Touch = function (type) { + this._touch = type; + }; + Block.prototype.start = function () { + }; + //开始点击,提高层级 + Block.prototype.touchStart = function (event) { + if (this._touch) { + if (this._answer) { + this.node.getChildByName("yes").active = true; + var data = { "result": true, "type": this._inside, id: this._idNumber }; + cc.fx.Notifications.emit("result", data); + } + else { + this.node.getChildByName("err").active = true; + var data = { "result": false, "type": this._inside, id: this._idNumber }; + cc.fx.Notifications.emit("result", data); + } + } + }; + __decorate([ + property(cc.Asset) + ], Block.prototype, "UI", void 0); + Block = __decorate([ + ccclass + ], Block); + return Block; +}(cc.Component)); +exports.default = Block; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxCbG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRixlQUFlO0FBQ2YsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztJQUNwQixVQUFVLEVBQUUsQ0FBQztJQUNiLFdBQVcsRUFBRSxDQUFDO0lBQ2QsVUFBVSxFQUFDLENBQUM7SUFDWixXQUFXLEVBQUMsQ0FBQztJQUNiLE1BQU0sRUFBQyxDQUFDO0lBQ1IsT0FBTyxFQUFDLENBQUM7Q0FDWixDQUFDLENBQUM7QUFFRyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFtQyx5QkFBWTtJQUEvQztRQUFBLHFFQW9IQztRQWpIRyxRQUFFLEdBQWEsSUFBSSxDQUFDOztRQThHcEIsZ0JBQWdCO1FBRWhCLElBQUk7SUFDUixDQUFDO0lBdkdHLHdCQUF3QjtJQUV4QixzQkFBTSxHQUFOO1FBQ0ksZUFBZTtRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFF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QUMsQ0FBQztnQkFDbEUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQzthQUMzQztTQUNKO0lBRUwsQ0FBQztJQTVHRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO3FDQUNDO0lBSEgsS0FBSztRQUR6QixPQUFPO09BQ2EsS0FBSyxDQW9IekI7SUFBRCxZQUFDO0NBcEhELEFBb0hDLENBcEhrQyxFQUFFLENBQUMsU0FBUyxHQW9IOUM7a0JBcEhvQixLQUFLIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuLy/lh7rnjrDlnZfnmoTnsbvlnovvvIzpl67popjku6Xlj4rnrZTmoYhcclxudmFyIEJsb2NrVHlwZSA9IGNjLkVudW0oe1xyXG4gICAgcHJvYmxlbV9JbjogMSwgIC8v5YaF5ZyI6Zeu6aKYXHJcbiAgICBwcm9ibGVtX091dDogMiwgLy/lpJblnIjpl67pophcclxuICAgIGNvcnJlY3RfSW46MywgICAgICAvL+WGheWciOato+ehruetlOahiFxyXG4gICAgY29ycmVjdF9PdXQ6NCwgICAgIC8v5aSW5ZyI5q2j56Gu562U5qGIXHJcbiAgICBlcnJfSW46NSwgICAgICAgICAgLy/lhoXlnIjplJnor6/nrZTmoYhcclxuICAgIGVycl9PdXQ6NiwgICAgICAgICAvL+WkluWciOmUmeivr+etlOahiFxyXG59KTtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmxvY2sgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Bc3NldClcclxuICAgIFVJOiBjYy5Bc3NldCA9IG51bGw7XHJcblxyXG4gICAgX3RvdWNoOiBib29sZWFuO1xyXG4gICAgX3N0YXJ0OiBib29sZWFuO1xyXG4gICAgX2Fuc3dlcjogYm9vbGVhbjtcclxuICAgIF9pbnNpZGU6IGJvb2xlYW47XHJcbiAgICBfaWROdW1iZXI6IG51bWJlcjtcclxuICAgIEdhbWVNYW5hZ2VyOiBhbnk7XHJcbiAgICB0dWJlX0FycmF5OiBudW1iZXJbXVtdOy8v566h5a2Q5pWw57uEXHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICAvLyB0aGlzLmluaXQoKTtcclxuICAgICAgICB0aGlzLkdhbWVNYW5hZ2VyID0gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIkdhbWVNYW5hZ2VyXCIpO1xyXG4gICAgICAgIHRoaXMuX3RvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fc3RhcnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9hbnN3ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9pbnNpZGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9TVEFSVCwgdGhpcy50b3VjaFN0YXJ0LCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KHR5cGUsaWQpe1xyXG4gICAgICAgIGlmKHR5cGUgPT0gQmxvY2tUeXBlLmNvcnJlY3RfT3V0KXtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldElkKGlkKXtcclxuICAgICAgICB0aGlzLl9pZE51bWJlciA9IGlkO1xyXG4gICAgfVxyXG5cclxuICAgIGFuc3dlclNob3codGV4dHVyZSl7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGV4dHVyZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIGxldCB0ZXh0dXJlTmFtZSA9IFwidGV4dHVyZVwiK3RleHR1cmU7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRleHR1cmVcIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLlVJLl9zcHJpdGVGcmFtZXNbdGV4dHVyZU5hbWVdO1xyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRleHR1cmVcIikpXHJcbiAgICAgICAgLnRvKDAuMDEse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAuZGVsYXkodGhpcy5HYW1lTWFuYWdlci5jb25maWdbXCJzaG93VGltZVwiXS0wLjA1KVxyXG4gICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICBpZih0aGlzLl9pbnNpZGUpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGV4dHVyZVwiKS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9ja1Nob3codHlwZSxpbnNpZGUpe1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRleHR1cmVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fYW5zd2VyID0gdHlwZTtcclxuICAgICAgICB0aGlzLl9pbnNpZGUgPSBpbnNpZGU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibG9ja1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX3RvdWNoID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBsb2NrSGlkZSgpe1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImxvY2tcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fdG91Y2ggPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93KHR5cGUsaW5zaWRlLHRleHR1cmUpe1xyXG4gICAgICAgIC8vIHRoaXMuX2Fuc3dlciA9IHR5cGU7XHJcbiAgICAgICAgdGhpcy5faW5zaWRlID0gaW5zaWRlO1xyXG4gICAgICAgIGlmKGluc2lkZSkgdGhpcy5fYW5zd2VyID0gdHlwZTtcclxuICAgICAgICBsZXQgdGV4dHVyZU5hbWUgPSBcInRleHR1cmVcIit0ZXh0dXJlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRleHR1cmVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAvL+ato+ehruetlOahiFxyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRleHR1cmVcIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLlVJLl9zcHJpdGVGcmFtZXNbdGV4dHVyZU5hbWVdO1xyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRleHR1cmVcIikpXHJcbiAgICAgICAgLnRvKDAuMDEse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAvLyAuZGVsYXkodGhpcy5HYW1lTWFuYWdlci5jb25maWdbXCJzaG93VGltZVwiXS0wLjEpXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIGlmKGluc2lkZSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90b3VjaCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzZXRfUG9zKCl7XHJcbiAgICAgICAgdGhpcy5fc3RhcnQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldF9Ub3VjaCh0eXBlKXtcclxuICAgICAgICB0aGlzLl90b3VjaCA9IHR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuICAgIC8v5byA5aeL54K55Ye777yM5o+Q6auY5bGC57qnXHJcbiAgICB0b3VjaFN0YXJ0IChldmVudCkge1xyXG4gICAgICAgIGlmKHRoaXMuX3RvdWNoKXtcclxuICAgICAgICAgICAgaWYodGhpcy5fYW5zd2VyKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInllc1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XCJyZXN1bHRcIjp0cnVlLFwidHlwZVwiOnRoaXMuX2luc2lkZSxpZDp0aGlzLl9pZE51bWJlcn07XHJcbiAgICAgICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoXCJyZXN1bHRcIixkYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiZXJyXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcInJlc3VsdFwiOmZhbHNlLFwidHlwZVwiOnRoaXMuX2luc2lkZSxpZDp0aGlzLl9pZE51bWJlcn07XHJcbiAgICAgICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoXCJyZXN1bHRcIixkYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgXHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge1xyXG5cclxuICAgIC8vIH1cclxufVxyXG4iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/DynamicAtlasManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '5c9b8FZiaNLMrMDs9T3rByf', 'DynamicAtlasManager'); +// Script/DynamicAtlasManager.js + +"use strict"; + +cc.Class({ + "extends": cc.Component, + properties: {}, + onLoad: function onLoad() { + cc.dynamicAtlasManager.enabled = false; + } +}); + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEeW5hbWljQXRsYXNNYW5hZ2VyLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwib25Mb2FkIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsImVuYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ0wsYUFBU0QsRUFBRSxDQUFDRSxTQURQO0FBR0xDLEVBQUFBLFVBQVUsRUFBRSxFQUhQO0FBTUxDLEVBQUFBLE1BTkssb0JBTUs7QUFDTkosSUFBQUEsRUFBRSxDQUFDSyxtQkFBSCxDQUF1QkMsT0FBdkIsR0FBaUMsS0FBakM7QUFDSDtBQVJJLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IGNjLkNvbXBvbmVudCxcclxuXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICB9LFxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgY2MuZHluYW1pY0F0bGFzTWFuYWdlci5lbmFibGVkID0gZmFsc2U7XHJcbiAgICB9LFxyXG59KTtcclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Sdk/MiniGameManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '0d272pXVChFDqi5FXTD2JlR', 'MiniGameManager'); +// Script/Sdk/MiniGameManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MiniGameManager = void 0; +var MiniGameSdk_1 = require("./MiniGameSdk"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var EWechatAD; +(function (EWechatAD) { + EWechatAD["CUMSTOM_01"] = "adunit-f7c2417eb2c2e473"; +})(EWechatAD || (EWechatAD = {})); +var MiniGameManager = /** @class */ (function (_super) { + __extends(MiniGameManager, _super); + function MiniGameManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.entranceView = null; + return _this; + } + MiniGameManager_1 = MiniGameManager; + Object.defineProperty(MiniGameManager, "instance", { + get: function () { + if (!MiniGameManager_1._instance) { + MiniGameManager_1._instance = new MiniGameManager_1(); + } + return MiniGameManager_1._instance; + }, + enumerable: false, + configurable: true + }); + MiniGameManager.prototype.start = function () { + // 禁用游戏入口视图 + // this.entranceView.active = false; + // MiniGameSdk.API.getUserProfile(this.setUserId); + // cc.fx.GameTool.setUserInfo(""); + this.onGetLoginCode(); + // 尝试获取游戏入口按钮,如果存在则直接返回,不进行后续操作 + // let buttonEntrance = this.node.getChildByName('Btns')?.getChildByName('Button_EntranceView'); + // if (buttonEntrance) { + // return; + // } + // 如果是字节跳动小游戏环境,检查侧边栏是否存在 + if (MiniGameSdk_1.MiniGameSdk.isBytedance()) { + //抖音环境,检测侧边栏存在 + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.checkSideBar(function (success) { + // 根据侧边栏存在性激活或禁用游戏入口按钮 + // buttonEntrance.active = success; + }); + } + else { + // 非抖音小游戏环境,直接激活游戏入口按钮 + // 非抖音环境,正常显示按钮 + // buttonEntrance.active = true; + } + // 设置监听器,以处理来自侧边栏的交互事件 + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.listenFromSidebar(function (success) { + // 如果交互成功,显示奖励提示 + if (success) { + MiniGameSdk_1.MiniGameSdk.API.showToast('侧边栏奖励', 5); + } + }); + }; + MiniGameManager.prototype.update = function (deltaTime) { + }; + /** + * 弹出广告横幅。 + * 此方法用于加载并显示广告横幅。它首先加载指定广告位的横幅广告,然后显示广告。 + * 加载广告和显示广告是通过MiniGameSdk.AdvertManager的实例方法来实现的。 + * + * @remarks + * 此方法提供了两种显示横幅广告的方式: + * 1. 默认方式:调用showBanner方法显示广告,系统会自动选择显示位置。 + * 2. 指定位置方式:可以通过传入额外的参数来指定广告显示在屏幕的顶部或底部,或者通过坐标指定显示位置。 + * + * 示例代码中注释掉了两种显示广告的具体方法,可以根据实际需求选择使用。 + */ + MiniGameManager.prototype.onShowBanner = function () { + // 加载指定广告位的横幅广告。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadBanner('adunit-4e7ef467e3eaab51'); + // 默认方式显示横幅广告。 + // 方法1:默认调用 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showBanner(); + // 示例:指定屏幕底部正中显示横幅广告。 + // 方法2:指定屏幕顶部或底部正中 + // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', MiniGameSdk.EAdBannerLocation.BOTTOM); + // 示例:通过坐标指定位置显示横幅广告。 + // 方法2:指定坐标 + // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', { top: 10, left: 10 }); + }; + /** + * 隐藏广告横幅的函数。 + * + * 该函数调用MiniGameSdk.AdvertManager实例的方法,用于隐藏广告横幅。 + * 当需要暂时停止展示广告或用户主动请求隐藏广告时,可以调用此函数。 + * + * @remarks + * 此函数不接受任何参数,也不返回任何值。 + * 它单纯地触发广告横幅的隐藏操作,具体实现依赖于AdvertManager的实现。 + */ + MiniGameManager.prototype.onHideBanner = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideBanner(); + }; + /** + * 显示插屏广告的函数。 + * + * 此函数调用MiniGameSdk.AdvertManager实例的方法,以显示一个指定的插屏广告。 + * 它使用了硬编码的广告单元标识符,这意味着它专为特定的广告位设计。 + * 在实际应用中,可能需要根据应用的配置或用户的特定条件来动态选择广告单元标识符。 + */ + MiniGameManager.prototype.onShowInterstitial = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showInterstitial('adunit-eadd67851d3050ad'); + }; + /** + * 调用广告管理器加载并展示自定义广告。 + * 此方法首先通过广告管理器的实例加载指定的自定义广告单元,然后展示这个自定义广告。 + * 加载和展示广告是广告管理系统中的常见操作,这里通过两步分别完成加载和展示的过程, + * 以确保广告在展示前正确且充分地被加载。 + */ + MiniGameManager.prototype.onShowCustom = function () { + // 加载指定的自定义广告单元。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadCustom(EWechatAD.CUMSTOM_01); + // 展示已加载的自定义广告。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showCustom(EWechatAD.CUMSTOM_01); + }; + /** + * 隐藏自定义广告。 + * + * 本函数调用MiniGameSdk.AdvertManager.instance.hideCustom()来隐藏自定义广告。 + * 这是对接广告管理系统的一部分,用于控制广告的显示与隐藏。 + * 在需要隐藏自定义广告的场景下,调用此函数即可实现相应功能。 + */ + MiniGameManager.prototype.onHideCustom = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideCustom(EWechatAD.CUMSTOM_01); + }; + /** + * 触发显示视频广告的函数。 + * 通过调用MiniGameSdk.AdvertManager.instance.showVideo方法,显示一个视频广告,并根据用户观看广告的情况执行相应的逻辑。 + * + * @remarks + * 此函数首先传入一个广告单元ID,用于标识要显示的视频广告。然后传入一个回调函数,该回调函数在用户观看广告后被调用,无论用户是完成了观看、拒绝了观看还是观看过程中发生了错误。 + * 回调函数接收两个参数:一个是用户观看广告的结果,另一个是用户观看的广告数量。根据观看结果的不同,显示不同的提示信息。 + */ + MiniGameManager.prototype.onShowVideo = function () { + // 广告单元ID,用于标识要显示的视频广告 + // 广告单元ID的样例 + //抖音形如: 1re3nfqkmy81m4m8ge + //微信形如: adunit-a7718f6e195e42fe + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showVideo('1re3nfqkmy81m4m8ge', function (res, count) { + // 输出用户观看的广告数量 + console.log('用户看的视频广告个数是:', count); + // 根据用户观看广告的结果,执行不同的逻辑 + switch (res) { + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ACCEPT: + // 用户完成了广告观看,显示奖励提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('用户看完广告,可以奖励'); + break; + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.REJECT: + // 用户拒绝了广告观看,显示不奖励提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('用户拒绝掉广告,不奖励'); + break; + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ERROR: + // 广告播放发生错误,显示错误提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('播放广告发生错误,不奖励'); + break; + default: + // 其他情况,不作处理 + break; + } + }); + }; + /** + * 引导用户分享应用给朋友。 + * + * 通过调用MiniGameSdk的API分享功能,向用户的朋友圈发送邀请,邀请他们一起玩游戏。 + * 这是一个重要的推广手段,可以增加应用的曝光度和用户量。 + * + * @remarks + * 此方法中调用的API依赖于特定的小游戏平台,因此在不同的平台上可能需要不同的实现。 + */ + MiniGameManager.prototype.onShare = function () { + MiniGameSdk_1.MiniGameSdk.API.shareAppToFriends('来玩游戏吧'); + }; + /** + * 显示一个toast提示。 + * + * 通过调用MiniGameSdk的API方法来显示一个简短的提示信息。toast是一种轻量级的提示方式,用于在界面上短暂地展示一些信息,不影响用户操作。 + * 这里使用了固定的提示文本 '这是一个toast',在实际应用中,可以根据需要动态设置提示文本。 + */ + MiniGameManager.prototype.onShowToast = function () { + MiniGameSdk_1.MiniGameSdk.API.showToast('这是一个toast'); + }; + /** + * 触发设备振动功能。 + * + * 该方法用于调用MiniGameSdk提供的API,以实现设备的振动功能。当需要提醒用户或提供触觉反馈时,可以调用此方法。 + * 例如,在游戏或应用中,当用户完成特定操作或发生特定事件时,可以通过振动给予用户反馈。 + * + * @remarks + * 此方法无参数,也不返回任何值。 + */ + MiniGameManager.prototype.onVirbrate = function () { + MiniGameSdk_1.MiniGameSdk.API.vibrate(); + }; + /** + * 重新启动游戏实例。 + * + * 此函数调用MiniGameSdk中的API重新启动游戏。重新启动操作可能是为了初始化游戏环境、重置游戏状态或处理其他需要重启的场景。 + * 调用此函数后,游戏将会重新开始,当前的游戏状态将会被清除。 + * + * @remarks + * 此函数不接受任何参数。 + * + * @returns 无返回值。 + */ + MiniGameManager.prototype.onReboot = function () { + MiniGameSdk_1.MiniGameSdk.API.reboot(); + }; + /** + * 当前函数用于在迷你游戏中实现退出功能。 + * 它调用了MiniGameSdk提供的API方法来触发退出操作。 + * 该方法通常在需要结束当前迷你游戏或返回到上一级菜单时被调用。 + */ + MiniGameManager.prototype.onExit = function () { + MiniGameSdk_1.MiniGameSdk.API.exit(); + }; + /** + * 显示分享菜单。 + * + * 通过调用MiniGameSdk的API方法,触发显示分享菜单的操作。此函数旨在提供一个统一的入口, + * 以便在需要时轻松调用分享功能,而无需直接与具体的SDK接口交互。 + * + * @remarks + * 此方法不接受任何参数,也不返回任何值。 + */ + MiniGameManager.prototype.onShowShareMenu = function () { + MiniGameSdk_1.MiniGameSdk.API.showShareMenu(); + }; + /** + * 导航到指定的小游戏。 + * + * 本函数用于触发导航到一个特定的小游戏。这需要提供目标小游戏的ID, + * 以便系统能够正确地将用户重定向到目标小游戏。 + * + * 注意:这里的'xxx'是占位符,实际使用时需要替换为具体的小游戏ID。 + */ + MiniGameManager.prototype.onNavigate = function () { + MiniGameSdk_1.MiniGameSdk.API.navigateTo('xxx'); // xxx替换为你的小游戏id + }; + /** + * 激活字节跳动入口视图。 + * + * 此方法用于将字节跳动入口视图设置为活跃状态。当需要在用户界面中显示字节跳动的入口时, + * 可以调用此方法来激活相应的视图元素,使其对用户可见。 + */ + MiniGameManager.prototype.onBytedanceEntranceView = function () { + // this.entranceView.active = true; + }; + /** + * 请求登录代码 + * + * 本函数用于触发小程序的登录流程,获取微信或头条等第三方平台的登录代码。 + * 这些代码可以用于后续的用户身份验证和数据同步流程。 + */ + MiniGameManager.prototype.onGetLoginCode = function () { + var _this = this; + // 调用MiniGameSdk的API登录方法,传入一个回调函数处理登录结果 + MiniGameSdk_1.MiniGameSdk.API.login(function (code, anonymousCode) { + // 打印微信或头条的登录代码 + console.log('Wechat Or Bytedance Code:', code); + // 打印头条的匿名登录代码 + // console.log('Bytedance Anonymous Code:', anonymousCode); + if (code) { + cc.fx.GameTool.getUserId(code, function (data) { return _this.setUserId(data); }); + } + }); + }; + MiniGameManager.prototype.setUserId = function (data) { + cc.fx.GameConfig.GM_INFO.userId = data.data.userId; + MiniGameSdk_1.MiniGameSdk.API.getUserInfo(this.setUserInfo); + }; + MiniGameManager.prototype.setUserInfo = function (data) { + console.log("获取到的用户信息", data.userInfo); + var useData = { + "gameId": cc.fx.GameConfig.GM_INFO.gameId, + "userId": cc.fx.GameConfig.GM_INFO.userId, + "nickName": data.userInfo.nickName, + "pic": data.userInfo.avatarUrl + }; + console.log("即将上传的用户信息:", cc.fx.GameConfig.GM_INFO.userId, data.userInfo.nickName, data.userInfo.avatarUrl); + console.log("Post数据:", useData); + cc.fx.HttpUtil.setUserInfo(useData, function (res) { + console.log("上传成功:", res); + }); + }; + /** + * 创建并显示游戏圈按钮 + * + * 本函数通过调用MiniGameSdk的GameClub实例方法,实现游戏俱乐部的创建和显示。 + * 它首先配置俱乐部的图标类型和位置大小,然后创建俱乐部,最后显示俱乐部。 + * 这样做是为了在小游戏内创建并展示一个游戏俱乐部的图标,供玩家加入或互动。 + */ + MiniGameManager.prototype.onCreateClub = function () { + // 配置俱乐部图标为绿色,设置图标的位置为顶部200像素,左侧0像素 + MiniGameSdk_1.MiniGameSdk.GameClub.instance.create(MiniGameSdk_1.MiniGameSdk.EGameClubIcon.GREEN, { top: 200, left: 0 }, { width: 50, height: 50 }); + // 显示游戏俱乐部图标 + MiniGameSdk_1.MiniGameSdk.GameClub.instance.show(); + }; + var MiniGameManager_1; + __decorate([ + property(cc.Node) + ], MiniGameManager.prototype, "entranceView", void 0); + MiniGameManager = MiniGameManager_1 = __decorate([ + ccclass + ], MiniGameManager); + return MiniGameManager; +}(cc.Component)); +exports.MiniGameManager = MiniGameManager; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXE1pbmlHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQTRDO0FBQ3RDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBQzVDLElBQUssU0FFSjtBQUZELFdBQUssU0FBUztJQUNWLG1EQUFzQyxDQUFBO0FBQzFDLENBQUMsRUFGSSxTQUFTLEtBQVQsU0FBUyxRQUViO0FBR0Q7SUFBcUMsbUNBQVk7SUFBakQ7UUFBQSxxRUEyVUM7UUF4VUcsa0JBQVksR0FBWSxJQUFJLENBQUM7O0lBd1VqQyxDQUFDO3dCQTNVWSxlQUFlO0lBa0J4QixzQkFBVywyQkFBUTthQUFuQjtZQUNJLElBQUksQ0FBQyxpQkFBZSxDQUFDLFNBQVMsRUFBRTtnQkFDNUIsaUJBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxpQkFBZSxFQUFFLENBQUM7YUFDckQ7WUFDRCxPQUFPLGlCQUFlLENBQUMsU0FBUyxDQUFDO1FBQ3JDLENBQUM7OztPQUFBO0lBRUQsK0JBQUssR0FBTDtRQUNJLFdBQVc7UUFDWCxvQ0FBb0M7UUFDcEMsa0RBQWtEO1FBQ2xELGtDQUFrQztRQUNsQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsK0JBQStCO1FBQy9CLGdHQUFnRztRQUNoRyx3QkFBd0I7UUFDeEIsY0FBYztRQUNkLElBQUk7UUFFSix5QkFBeUI7UUFFekIsSUFBSSx5QkFBVyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzNCLGNBQWM7WUFDZCx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxVQUFDLE9BQWdCO2dCQUN2RCxzQkFBc0I7Z0JBQ3RCLG1DQUFtQztZQUN2QyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxzQkFBc0I7WUFDdEIsZUFBZTtZQUNmLGdDQUFn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QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxzQ0FBWSxHQUFaO1FBQ0ksbUNBQW1DO1FBQ25DLHlCQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ2hDLHlCQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssRUFDL0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFDckIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLFlBQVk7UUFDWix5QkFBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekMsQ0FBQzs7SUF2VUQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzt5REFDVztJQUhwQixlQUFlO1FBRDNCLE9BQU87T0FDSyxlQUFlLENBMlUzQjtJQUFELHNCQUFDO0NBM1VELEFBMlVDLENBM1VvQyxFQUFFLENBQUMsU0FBUyxHQTJVaEQ7QUEzVVksMENBQWUiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9NaW5pR2FtZVNka1wiO1xyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5lbnVtIEVXZWNoYXRBRCB7XHJcbiAgICBDVU1TVE9NXzAxID0gJ2FkdW5pdC1mN2MyNDE3ZWIyYzJlNDczJ1xyXG59XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgY2xhc3MgTWluaUdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGVudHJhbmNlVmlldzogY2MuTm9kZSA9IG51bGw7XHJcbiAgICAvKipcclxuICAgICAqIOW8gOWni+a4uOaIj+WJjeeahOWIneWni+WMluaTjeS9nOOAglxyXG4gICAgICog5Li76KaB6LSf6LSj5qOA5p+l5bm25aSE55CG5ri45oiP5YWl5Y+j5oyJ6ZKu55qE5r+A5rS754q25oCB77yM5Lul5Y+K5Zyo54m55a6a546v5aKD5LiL6K6+572u5L6n6L655qCP55qE55uR5ZCs5Zmo44CCXHJcbiAgICAgKiBcclxuICAgICAqIEByZW1hcmtzXHJcbiAgICAgKiDmraTmlrnms5XpppblhYjlsIbmuLjmiI/lhaXlj6Pop4blm77orr7kuLrpnZ7mv4DmtLvnirbmgIHvvIzku6Xlh4blpIfov5vooYzlkI7nu63nmoTmo4Dmn6Xlkozorr7nva7jgIJcclxuICAgICAqIOWmguaenOW9k+WJjeeOr+Wig+aYr+aKlumfs+Wwj+a4uOaIj++8jOS8muajgOafpeaYr+WQpuWtmOWcqOS+p+i+ueagj++8jOW5tuagueaNruajgOafpee7k+aenOa/gOa0u+aIluemgeeUqOa4uOaIj+WFpeWPo+aMiemSruOAglxyXG4gICAgICog5a+55LqO6Z2e5oqW6Z+z5bCP5ri45oiP546v5aKD77yM55u05o6l5r+A5rS75ri45oiP5YWl5Y+j5oyJ6ZKu44CCXHJcbiAgICAgKiDmraTlpJbvvIzml6Dorrrnjq/looPlpoLkvZXvvIzpg73kvJrorr7nva7kuIDkuKrnm5HlkKzlmajvvIzku6XlpITnkIbmnaXoh6rkvqfovrnmoI/nmoTkuovku7bvvIzlpoLmiJDlip/op6blj5Hml7bmmL7npLrlpZblirHmj5DnpLrjgIJcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfaWQ6YW55O1xyXG4gICAgcHJpdmF0ZSBfdXNlckRhdGE6YW55O1xyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogTWluaUdhbWVNYW5hZ2VyO1xyXG4gICAgc3RhdGljIGdldCBpbnN0YW5jZSgpOiBNaW5pR2FtZU1hbmFnZXIge1xyXG4gICAgICAgIGlmICghTWluaUdhbWVNYW5hZ2VyLl9pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICBNaW5pR2FtZU1hbmFnZXIuX2luc3RhbmNlID0gbmV3IE1pbmlHYW1lTWFuYWdlcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gTWluaUdhbWVNYW5hZ2VyLl9pbnN0YW5jZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCgpIHtcclxuICAgICAgICAvLyDnpoHnlKjmuLjmiI/lhaXlj6Pop4blm75cclxuICAgICAgICAvLyB0aGlzLmVudHJhbmNlVmlldy5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuZ2V0VXNlclByb2ZpbGUodGhpcy5zZXRVc2VySWQpO1xyXG4gICAgICAgIC8vIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJJbmZvKFwiXCIpO1xyXG4gICAgICAgIHRoaXMub25HZXRMb2dpbkNvZGUoKTtcclxuICAgICAgICAvLyDlsJ3or5Xojrflj5bmuLjmiI/lhaXlj6PmjInpkq7vvIzlpoLmnpzlrZjlnKjliJnnm7TmjqXov5Tlm57vvIzkuI3ov5vooYzlkI7nu63mk43kvZxcclxuICAgICAgICAvLyBsZXQgYnV0dG9uRW50cmFuY2UgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ0J0bnMnKT8uZ2V0Q2hpbGRCeU5hbWUoJ0J1dHRvbl9FbnRyYW5jZVZpZXcnKTtcclxuICAgICAgICAvLyBpZiAoYnV0dG9uRW50cmFuY2UpIHtcclxuICAgICAgICAvLyAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgLy8g5aaC5p6c5piv5a2X6IqC6Lez5Yqo5bCP5ri45oiP546v5aKD77yM5qOA5p+l5L6n6L655qCP5piv5ZCm5a2Y5ZyoXHJcblxyXG4gICAgICAgIGlmIChNaW5pR2FtZVNkay5pc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgIC8v5oqW6Z+z546v5aKD77yM5qOA5rWL5L6n6L655qCP5a2Y5ZyoXHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkJ5dGVkYW5jZVNpZGViYXIuY2hlY2tTaWRlQmFyKChzdWNjZXNzOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyDmoLnmja7kvqfovrnmoI/lrZjlnKjmgKfmv4DmtLvmiJbnpoHnlKjmuLjmiI/lhaXlj6PmjInpkq5cclxuICAgICAgICAgICAgICAgIC8vIGJ1dHRvbkVudHJhbmNlLmFjdGl2ZSA9IHN1Y2Nlc3M7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIOmdnuaKlumfs+Wwj+a4uOaIj+eOr+Wig++8jOebtOaOpea/gOa0u+a4uOaIj+WFpeWPo+aMiemSrlxyXG4gICAgICAgICAgICAvLyDpnZ7mipbpn7Pnjq/looPvvIzmraPluLjmmL7npLrmjInpkq5cclxuICAgICAgICAgICAgLy8gYnV0dG9uRW50cmFuY2UuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOiuvue9ruebkeWQrOWZqO+8jOS7peWkhOeQhuadpeiHquS+p+i+ueagj+eahOS6pOS6kuS6i+S7tlxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkJ5dGVkYW5jZVNpZGViYXIubGlzdGVuRnJvbVNpZGViYXIoKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgLy8g5aaC5p6c5Lqk5LqS5oiQ5Yqf77yM5pi+56S65aWW5Yqx5o+Q56S6XHJcbiAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KCfkvqfovrnmoI/lpZblirEnLCA1KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShkZWx0YVRpbWU6IG51bWJlcikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOW8ueWHuuW5v+WRiuaoquW5heOAglxyXG4gICAgICog5q2k5pa55rOV55So5LqO5Yqg6L295bm25pi+56S65bm/5ZGK5qiq5bmF44CC5a6D6aaW5YWI5Yqg6L295oyH5a6a5bm/5ZGK5L2N55qE5qiq5bmF5bm/5ZGK77yM54S25ZCO5pi+56S65bm/5ZGK44CCXHJcbiAgICAgKiDliqDovb3lub/lkYrlkozmmL7npLrlub/lkYrmmK/pgJrov4dNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2Vy55qE5a6e5L6L5pa55rOV5p2l5a6e546w55qE44CCXHJcbiAgICAgKiBcclxuICAgICAqIEByZW1hcmtzXHJcbiAgICAgKiDmraTmlrnms5Xmj5DkvpvkuobkuKTnp43mmL7npLrmqKrluYXlub/lkYrnmoTmlrnlvI/vvJpcclxuICAgICAqIDEuIOm7mOiupOaWueW8j++8muiwg+eUqHNob3dCYW5uZXLmlrnms5XmmL7npLrlub/lkYrvvIzns7vnu5/kvJroh6rliqjpgInmi6nmmL7npLrkvY3nva7jgIJcclxuICAgICAqIDIuIOaMh+WumuS9jee9ruaWueW8j++8muWPr+S7pemAmui/h+S8oOWFpemineWklueahOWPguaVsOadpeaMh+WumuW5v+WRiuaYvuekuuWcqOWxj+W5leeahOmhtumDqOaIluW6lemDqO+8jOaIluiAhemAmui/h+WdkOagh+aMh+WumuaYvuekuuS9jee9ruOAglxyXG4gICAgICogXHJcbiAgICAgKiDnpLrkvovku6PnoIHkuK3ms6jph4rmjonkuobkuKTnp43mmL7npLrlub/lkYrnmoTlhbfkvZPmlrnms5XvvIzlj6/ku6XmoLnmja7lrp7pmYXpnIDmsYLpgInmi6nkvb/nlKjjgIJcclxuICAgICAqL1xyXG4gICAgb25TaG93QmFubmVyKCkge1xyXG4gICAgICAgIC8vIOWKoOi9veaMh+WumuW5v+WRiuS9jeeahOaoquW5heW5v+WRiuOAglxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2UubG9hZEJhbm5lcignYWR1bml0LTRlN2VmNDY3ZTNlYWFiNTEnKTtcclxuXHJcbiAgICAgICAgLy8g6buY6K6k5pa55byP5pi+56S65qiq5bmF5bm/5ZGK44CCXHJcbiAgICAgICAgLy8g5pa55rOVMe+8mum7mOiupOiwg+eUqFxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0Jhbm5lcigpO1xyXG5cclxuICAgICAgICAvLyDnpLrkvovvvJrmjIflrprlsY/luZXlupXpg6jmraPkuK3mmL7npLrmqKrluYXlub/lkYrjgIJcclxuICAgICAgICAvLyDmlrnms5Uy77ya5oyH5a6a5bGP5bmV6aG26YOo5oiW5bqV6YOo5q2j5LitXHJcbiAgICAgICAgLy8gTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5zaG93QmFubmVyKCdhZHVuaXQtNGU3ZWY0NjdlM2VhYWI1MScsIE1pbmlHYW1lU2RrLkVBZEJhbm5lckxvY2F0aW9uLkJPVFRPTSk7IFxyXG5cclxuICAgICAgICAvLyDnpLrkvovvvJrpgJrov4flnZDmoIfmjIflrprkvY3nva7mmL7npLrmqKrluYXlub/lkYrjgIJcclxuICAgICAgICAvLyDmlrnms5Uy77ya5oyH5a6a5Z2Q5qCHXHJcbiAgICAgICAgLy8gTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5zaG93QmFubmVyKCdhZHVuaXQtNGU3ZWY0NjdlM2VhYWI1MScsIHsgdG9wOiAxMCwgbGVmdDogMTAgfSk7IFxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6ZqQ6JeP5bm/5ZGK5qiq5bmF55qE5Ye95pWw44CCXHJcbiAgICAgKiBcclxuICAgICAqIOivpeWHveaVsOiwg+eUqE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXLlrp7kvovnmoTmlrnms5XvvIznlKjkuo7pmpDol4/lub/lkYrmqKrluYXjgIJcclxuICAgICAqIOW9k+mcgOimgeaaguaXtuWBnOatouWxleekuuW5v+WRiuaIlueUqOaIt+S4u+WKqOivt+axgumakOiXj+W5v+WRiuaXtu+8jOWPr+S7peiwg+eUqOatpOWHveaVsOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5Ye95pWw5LiN5o6l5Y+X5Lu75L2V5Y+C5pWw77yM5Lmf5LiN6L+U5Zue5Lu75L2V5YC844CCXHJcbiAgICAgKiDlroPljZXnuq/lnLDop6blj5Hlub/lkYrmqKrluYXnmoTpmpDol4/mk43kvZzvvIzlhbfkvZPlrp7njrDkvp3otZbkuo5BZHZlcnRNYW5hZ2Vy55qE5a6e546w44CCXHJcbiAgICAgKi9cclxuICAgIG9uSGlkZUJhbm5lcigpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLmhpZGVCYW5uZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOaYvuekuuaPkuWxj+W5v+WRiueahOWHveaVsOOAglxyXG4gICAgICogXHJcbiAgICAgKiDmraTlh73mlbDosIPnlKhNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2Vy5a6e5L6L55qE5pa55rOV77yM5Lul5pi+56S65LiA5Liq5oyH5a6a55qE5o+S5bGP5bm/5ZGK44CCXHJcbiAgICAgKiDlroPkvb/nlKjkuobnoaznvJbnoIHnmoTlub/lkYrljZXlhYPmoIfor4bnrKbvvIzov5nmhI/lkbPnnYDlroPkuJPkuLrnibnlrprnmoTlub/lkYrkvY3orr7orqHjgIJcclxuICAgICAqIOWcqOWunumZheW6lOeUqOS4re+8jOWPr+iDvemcgOimgeagueaNruW6lOeUqOeahOmFjee9ruaIlueUqOaIt+eahOeJueWumuadoeS7tuadpeWKqOaAgemAieaLqeW5v+WRiuWNleWFg+agh+ivhuespuOAglxyXG4gICAgICovXHJcbiAgICBvblNob3dJbnRlcnN0aXRpYWwoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5zaG93SW50ZXJzdGl0aWFsKCdhZHVuaXQtZWFkZDY3ODUxZDMwNTBhZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6LCD55So5bm/5ZGK566h55CG5Zmo5Yqg6L295bm25bGV56S66Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgKiDmraTmlrnms5XpppblhYjpgJrov4flub/lkYrnrqHnkIblmajnmoTlrp7kvovliqDovb3mjIflrprnmoToh6rlrprkuYnlub/lkYrljZXlhYPvvIznhLblkI7lsZXnpLrov5nkuKroh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAqIOWKoOi9veWSjOWxleekuuW5v+WRiuaYr+W5v+WRiueuoeeQhuezu+e7n+S4reeahOW4uOingeaTjeS9nO+8jOi/memHjOmAmui/h+S4pOatpeWIhuWIq+WujOaIkOWKoOi9veWSjOWxleekuueahOi/h+eoi++8jFxyXG4gICAgICog5Lul56Gu5L+d5bm/5ZGK5Zyo5bGV56S65YmN5q2j56Gu5LiU5YWF5YiG5Zyw6KKr5Yqg6L2944CCXHJcbiAgICAgKi9cclxuICAgIG9uU2hvd0N1c3RvbSgpIHtcclxuICAgICAgICAvLyDliqDovb3mjIflrprnmoToh6rlrprkuYnlub/lkYrljZXlhYPjgIJcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLmxvYWRDdXN0b20oRVdlY2hhdEFELkNVTVNUT01fMDEpO1xyXG4gICAgICAgIC8vIOWxleekuuW3suWKoOi9veeahOiHquWumuS5ieW5v+WRiuOAglxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0N1c3RvbShFV2VjaGF0QUQuQ1VNU1RPTV8wMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDpmpDol4/oh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAqIFxyXG4gICAgICog5pys5Ye95pWw6LCD55SoTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5oaWRlQ3VzdG9tKCnmnaXpmpDol4/oh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAqIOi/meaYr+WvueaOpeW5v+WRiueuoeeQhuezu+e7n+eahOS4gOmDqOWIhu+8jOeUqOS6juaOp+WItuW5v+WRiueahOaYvuekuuS4jumakOiXj+OAglxyXG4gICAgICog5Zyo6ZyA6KaB6ZqQ6JeP6Ieq5a6a5LmJ5bm/5ZGK55qE5Zy65pmv5LiL77yM6LCD55So5q2k5Ye95pWw5Y2z5Y+v5a6e546w55u45bqU5Yqf6IO944CCXHJcbiAgICAgKi9cclxuICAgIG9uSGlkZUN1c3RvbSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLmhpZGVDdXN0b20oRVdlY2hhdEFELkNVTVNUT01fMDEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6Kem5Y+R5pi+56S66KeG6aKR5bm/5ZGK55qE5Ye95pWw44CCXHJcbiAgICAgKiDpgJrov4fosIPnlKhNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLnNob3dWaWRlb+aWueazle+8jOaYvuekuuS4gOS4quinhumikeW5v+WRiu+8jOW5tuagueaNrueUqOaIt+ingueci+W5v+WRiueahOaDheWGteaJp+ihjOebuOW6lOeahOmAu+i+keOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5Ye95pWw6aaW5YWI5Lyg5YWl5LiA5Liq5bm/5ZGK5Y2V5YWDSUTvvIznlKjkuo7moIfor4bopoHmmL7npLrnmoTop4bpopHlub/lkYrjgILnhLblkI7kvKDlhaXkuIDkuKrlm57osIPlh73mlbDvvIzor6Xlm57osIPlh73mlbDlnKjnlKjmiLfop4LnnIvlub/lkYrlkI7ooqvosIPnlKjvvIzml6DorrrnlKjmiLfmmK/lrozmiJDkuobop4LnnIvjgIHmi5Lnu53kuobop4LnnIvov5jmmK/op4LnnIvov4fnqIvkuK3lj5HnlJ/kuobplJnor6/jgIJcclxuICAgICAqIOWbnuiwg+WHveaVsOaOpeaUtuS4pOS4quWPguaVsO+8muS4gOS4quaYr+eUqOaIt+ingueci+W5v+WRiueahOe7k+aenO+8jOWPpuS4gOS4quaYr+eUqOaIt+ingueci+eahOW5v+WRiuaVsOmHj+OAguagueaNruingueci+e7k+aenOeahOS4jeWQjO+8jOaYvuekuuS4jeWQjOeahOaPkOekuuS/oeaBr+OAglxyXG4gICAgICovXHJcbiAgICBvblNob3dWaWRlbygpIHtcclxuICAgICAgICAvLyDlub/lkYrljZXlhYNJRO+8jOeUqOS6juagh+ivhuimgeaYvuekuueahOinhumikeW5v+WRilxyXG4gICAgICAgIC8vIOW5v+WRiuWNleWFg0lE55qE5qC35L6LXHJcbiAgICAgICAgLy/mipbpn7PlvaLlpoI6IDFyZTNuZnFrbXk4MW00bThnZVxyXG4gICAgICAgIC8v5b6u5L+h5b2i5aaCOiBhZHVuaXQtYTc3MThmNmUxOTVlNDJmZVxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd1ZpZGVvKCcxcmUzbmZxa215ODFtNG04Z2UnLCAocmVzOiBNaW5pR2FtZVNkay5FQWRWaWRlb1Jlc3VsdCwgY291bnQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAvLyDovpPlh7rnlKjmiLfop4LnnIvnmoTlub/lkYrmlbDph49cclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ+eUqOaIt+eci+eahOinhumikeW5v+WRiuS4quaVsOaYrzonLCBjb3VudCk7XHJcblxyXG4gICAgICAgICAgICAvLyDmoLnmja7nlKjmiLfop4LnnIvlub/lkYrnmoTnu5PmnpzvvIzmiafooYzkuI3lkIznmoTpgLvovpFcclxuICAgICAgICAgICAgc3dpdGNoIChyZXMpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgTWluaUdhbWVTZGsuRUFkVmlkZW9SZXN1bHQuQUNDRVBUOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOeUqOaIt+WujOaIkOS6huW5v+WRiuingueci++8jOaYvuekuuWlluWKseaPkOekulxyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoJ+eUqOaIt+eci+WujOW5v+WRiu+8jOWPr+S7peWlluWKsScpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBNaW5pR2FtZVNkay5FQWRWaWRlb1Jlc3VsdC5SRUpFQ1Q6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g55So5oi35ouS57ud5LqG5bm/5ZGK6KeC55yL77yM5pi+56S65LiN5aWW5Yqx5o+Q56S6XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdCgn55So5oi35ouS57ud5o6J5bm/5ZGK77yM5LiN5aWW5YqxJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIE1pbmlHYW1lU2RrLkVBZFZpZGVvUmVzdWx0LkVSUk9SOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOW5v+WRiuaSreaUvuWPkeeUn+mUmeivr++8jOaYvuekuumUmeivr+aPkOekulxyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoJ+aSreaUvuW5v+WRiuWPkeeUn+mUmeivr++8jOS4jeWlluWKsScpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAvLyDlhbbku5bmg4XlhrXvvIzkuI3kvZzlpITnkIZcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5byV5a+855So5oi35YiG5Lqr5bqU55So57uZ5pyL5Y+L44CCXHJcbiAgICAgKiBcclxuICAgICAqIOmAmui/h+iwg+eUqE1pbmlHYW1lU2Rr55qEQVBJ5YiG5Lqr5Yqf6IO977yM5ZCR55So5oi355qE5pyL5Y+L5ZyI5Y+R6YCB6YKA6K+377yM6YKA6K+35LuW5Lus5LiA6LW3546p5ri45oiP44CCXHJcbiAgICAgKiDov5nmmK/kuIDkuKrph43opoHnmoTmjqjlub/miYvmrrXvvIzlj6/ku6Xlop7liqDlupTnlKjnmoTmm53lhYnluqblkoznlKjmiLfph4/jgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOaWueazleS4reiwg+eUqOeahEFQSeS+nei1luS6jueJueWumueahOWwj+a4uOaIj+W5s+WPsO+8jOWboOatpOWcqOS4jeWQjOeahOW5s+WPsOS4iuWPr+iDvemcgOimgeS4jeWQjOeahOWunueOsOOAglxyXG4gICAgICovXHJcbiAgICBvblNoYXJlKCkge1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaGFyZUFwcFRvRnJpZW5kcygn5p2l546p5ri45oiP5ZCnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmmL7npLrkuIDkuKp0b2FzdOaPkOekuuOAglxyXG4gICAgICogXHJcbiAgICAgKiDpgJrov4fosIPnlKhNaW5pR2FtZVNka+eahEFQSeaWueazleadpeaYvuekuuS4gOS4queugOefreeahOaPkOekuuS/oeaBr+OAgnRvYXN05piv5LiA56eN6L276YeP57qn55qE5o+Q56S65pa55byP77yM55So5LqO5Zyo55WM6Z2i5LiK55+t5pqC5Zyw5bGV56S65LiA5Lqb5L+h5oGv77yM5LiN5b2x5ZON55So5oi35pON5L2c44CCXHJcbiAgICAgKiDov5nph4zkvb/nlKjkuoblm7rlrprnmoTmj5DnpLrmlofmnKwgJ+i/meaYr+S4gOS4qnRvYXN0J++8jOWcqOWunumZheW6lOeUqOS4re+8jOWPr+S7peagueaNrumcgOimgeWKqOaAgeiuvue9ruaPkOekuuaWh+acrOOAglxyXG4gICAgICovXHJcbiAgICBvblNob3dUb2FzdCgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KCfov5nmmK/kuIDkuKp0b2FzdCcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6Kem5Y+R6K6+5aSH5oyv5Yqo5Yqf6IO944CCXHJcbiAgICAgKiBcclxuICAgICAqIOivpeaWueazleeUqOS6juiwg+eUqE1pbmlHYW1lU2Rr5o+Q5L6b55qEQVBJ77yM5Lul5a6e546w6K6+5aSH55qE5oyv5Yqo5Yqf6IO944CC5b2T6ZyA6KaB5o+Q6YaS55So5oi35oiW5o+Q5L6b6Kem6KeJ5Y+N6aaI5pe277yM5Y+v5Lul6LCD55So5q2k5pa55rOV44CCXHJcbiAgICAgKiDkvovlpoLvvIzlnKjmuLjmiI/miJblupTnlKjkuK3vvIzlvZPnlKjmiLflrozmiJDnibnlrprmk43kvZzmiJblj5HnlJ/nibnlrprkuovku7bml7bvvIzlj6/ku6XpgJrov4fmjK/liqjnu5nkuojnlKjmiLflj43ppojjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOaWueazleaXoOWPguaVsO+8jOS5n+S4jei/lOWbnuS7u+S9leWAvOOAglxyXG4gICAgICovXHJcbiAgICBvblZpcmJyYXRlKCkge1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS52aWJyYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDph43mlrDlkK/liqjmuLjmiI/lrp7kvovjgIJcclxuICAgICAqIFxyXG4gICAgICog5q2k5Ye95pWw6LCD55SoTWluaUdhbWVTZGvkuK3nmoRBUEnph43mlrDlkK/liqjmuLjmiI/jgILph43mlrDlkK/liqjmk43kvZzlj6/og73mmK/kuLrkuobliJ3lp4vljJbmuLjmiI/njq/looPjgIHph43nva7muLjmiI/nirbmgIHmiJblpITnkIblhbbku5bpnIDopoHph43lkK/nmoTlnLrmma/jgIJcclxuICAgICAqIOiwg+eUqOatpOWHveaVsOWQju+8jOa4uOaIj+WwhuS8mumHjeaWsOW8gOWni++8jOW9k+WJjeeahOa4uOaIj+eKtuaAgeWwhuS8muiiq+a4hemZpOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5Ye95pWw5LiN5o6l5Y+X5Lu75L2V5Y+C5pWw44CCXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIOaXoOi/lOWbnuWAvOOAglxyXG4gICAgICovXHJcbiAgICBvblJlYm9vdCgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkucmVib290KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlvZPliY3lh73mlbDnlKjkuo7lnKjov7fkvaDmuLjmiI/kuK3lrp7njrDpgIDlh7rlip/og73jgIJcclxuICAgICAqIOWug+iwg+eUqOS6hk1pbmlHYW1lU2Rr5o+Q5L6b55qEQVBJ5pa55rOV5p2l6Kem5Y+R6YCA5Ye65pON5L2c44CCXHJcbiAgICAgKiDor6Xmlrnms5XpgJrluLjlnKjpnIDopoHnu5PmnZ/lvZPliY3ov7fkvaDmuLjmiI/miJbov5Tlm57liLDkuIrkuIDnuqfoj5zljZXml7booqvosIPnlKjjgIJcclxuICAgICAqL1xyXG4gICAgb25FeGl0KCkge1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5leGl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmmL7npLrliIbkuqvoj5zljZXjgIJcclxuICAgICAqIFxyXG4gICAgICog6YCa6L+H6LCD55SoTWluaUdhbWVTZGvnmoRBUEnmlrnms5XvvIzop6blj5HmmL7npLrliIbkuqvoj5zljZXnmoTmk43kvZzjgILmraTlh73mlbDml6jlnKjmj5DkvpvkuIDkuKrnu5/kuIDnmoTlhaXlj6PvvIxcclxuICAgICAqIOS7peS+v+WcqOmcgOimgeaXtui9u+advuiwg+eUqOWIhuS6q+WKn+iDve+8jOiAjOaXoOmcgOebtOaOpeS4juWFt+S9k+eahFNES+aOpeWPo+S6pOS6kuOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5pa55rOV5LiN5o6l5Y+X5Lu75L2V5Y+C5pWw77yM5Lmf5LiN6L+U5Zue5Lu75L2V5YC844CCXHJcbiAgICAgKi9cclxuICAgIG9uU2hvd1NoYXJlTWVudSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1NoYXJlTWVudSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5a+86Iiq5Yiw5oyH5a6a55qE5bCP5ri45oiP44CCXHJcbiAgICAgKiBcclxuICAgICAqIOacrOWHveaVsOeUqOS6juinpuWPkeWvvOiIquWIsOS4gOS4queJueWumueahOWwj+a4uOaIj+OAgui/memcgOimgeaPkOS+m+ebruagh+Wwj+a4uOaIj+eahElE77yMXHJcbiAgICAgKiDku6Xkvr/ns7vnu5/og73lpJ/mraPnoa7lnLDlsIbnlKjmiLfph43lrprlkJHliLDnm67moIflsI/muLjmiI/jgIJcclxuICAgICAqIFxyXG4gICAgICog5rOo5oSP77ya6L+Z6YeM55qEJ3h4eCfmmK/ljaDkvY3nrKbvvIzlrp7pmYXkvb/nlKjml7bpnIDopoHmm7/mjaLkuLrlhbfkvZPnmoTlsI/muLjmiI9JROOAglxyXG4gICAgICovXHJcbiAgICBvbk5hdmlnYXRlKCkge1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5uYXZpZ2F0ZVRvKCd4eHgnKTsgLy8geHh45pu/5o2i5Li65L2g55qE5bCP5ri45oiPaWRcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOa/gOa0u+Wtl+iKgui3s+WKqOWFpeWPo+inhuWbvuOAglxyXG4gICAgICogXHJcbiAgICAgKiDmraTmlrnms5XnlKjkuo7lsIblrZfoioLot7PliqjlhaXlj6Pop4blm77orr7nva7kuLrmtLvot4PnirbmgIHjgILlvZPpnIDopoHlnKjnlKjmiLfnlYzpnaLkuK3mmL7npLrlrZfoioLot7PliqjnmoTlhaXlj6Pml7bvvIxcclxuICAgICAqIOWPr+S7peiwg+eUqOatpOaWueazleadpea/gOa0u+ebuOW6lOeahOinhuWbvuWFg+e0oO+8jOS9v+WFtuWvueeUqOaIt+WPr+ingeOAglxyXG4gICAgICovXHJcbiAgICBvbkJ5dGVkYW5jZUVudHJhbmNlVmlldygpIHtcclxuICAgICAgICAvLyB0aGlzLmVudHJhbmNlVmlldy5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6K+35rGC55m75b2V5Luj56CBXHJcbiAgICAgKiBcclxuICAgICAqIOacrOWHveaVsOeUqOS6juinpuWPkeWwj+eoi+W6j+eahOeZu+W9lea1geeoi++8jOiOt+WPluW+ruS/oeaIluWktOadoeetieesrOS4ieaWueW5s+WPsOeahOeZu+W9leS7o+eggeOAglxyXG4gICAgICog6L+Z5Lqb5Luj56CB5Y+v5Lul55So5LqO5ZCO57ut55qE55So5oi36Lqr5Lu96aqM6K+B5ZKM5pWw5o2u5ZCM5q2l5rWB56iL44CCXHJcbiAgICAgKi9cclxuICAgIG9uR2V0TG9naW5Db2RlKCkge1xyXG4gICAgICAgIC8vIOiwg+eUqE1pbmlHYW1lU2Rr55qEQVBJ55m75b2V5pa55rOV77yM5Lyg5YWl5LiA5Liq5Zue6LCD5Ye95pWw5aSE55CG55m75b2V57uT5p6cXHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLmxvZ2luKChjb2RlOiBzdHJpbmcsIGFub255bW91c0NvZGU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAvLyDmiZPljbDlvq7kv6HmiJblpLTmnaHnmoTnmbvlvZXku6PnoIFcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ1dlY2hhdCBPciBCeXRlZGFuY2UgQ29kZTonLCBjb2RlKTtcclxuICAgICAgICAgICAgLy8g5omT5Y2w5aS05p2h55qE5Yy/5ZCN55m75b2V5Luj56CBXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdCeXRlZGFuY2UgQW5vbnltb3VzIENvZGU6JywgYW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgIGlmKGNvZGUpe1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlcklkKGNvZGUsIGRhdGEgPT4gdGhpcy5zZXRVc2VySWQoZGF0YSkpOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFVzZXJJZChkYXRhKXtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID0gZGF0YS5kYXRhLnVzZXJJZDtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuZ2V0VXNlckluZm8odGhpcy5zZXRVc2VySW5mbyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VXNlckluZm8oZGF0YSl7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLojrflj5bliLDnmoTnlKjmiLfkv6Hmga9cIixkYXRhLnVzZXJJbmZvKTtcclxuICAgICAgICB2YXIgdXNlRGF0YSA9IHtcclxuICAgICAgICAgICAgXCJnYW1lSWRcIjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVJZCxcclxuICAgICAgICAgICAgXCJ1c2VySWRcIjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCxcclxuICAgICAgICAgICAgXCJuaWNrTmFtZVwiOmRhdGEudXNlckluZm8ubmlja05hbWUsXHJcbiAgICAgICAgICAgIFwicGljXCI6IGRhdGEudXNlckluZm8uYXZhdGFyVXJsXHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5Y2z5bCG5LiK5Lyg55qE55So5oi35L+h5oGvOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VySWQsZGF0YS51c2VySW5mby5uaWNrTmFtZSxkYXRhLnVzZXJJbmZvLmF2YXRhclVybCk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJQb3N05pWw5o2uOlwiLHVzZURhdGEpO1xyXG4gICAgICAgIGNjLmZ4Lkh0dHBVdGlsLnNldFVzZXJJbmZvKHVzZURhdGEsKHJlcyk9PntcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDmiJDlip86XCIscmVzKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWIm+W7uuW5tuaYvuekuua4uOaIj+WciOaMiemSrlxyXG4gICAgICogXHJcbiAgICAgKiDmnKzlh73mlbDpgJrov4fosIPnlKhNaW5pR2FtZVNka+eahEdhbWVDbHVi5a6e5L6L5pa55rOV77yM5a6e546w5ri45oiP5L+x5LmQ6YOo55qE5Yib5bu65ZKM5pi+56S644CCXHJcbiAgICAgKiDlroPpppblhYjphY3nva7kv7HkuZDpg6jnmoTlm77moIfnsbvlnovlkozkvY3nva7lpKflsI/vvIznhLblkI7liJvlu7rkv7HkuZDpg6jvvIzmnIDlkI7mmL7npLrkv7HkuZDpg6jjgIJcclxuICAgICAqIOi/meagt+WBmuaYr+S4uuS6huWcqOWwj+a4uOaIj+WGheWIm+W7uuW5tuWxleekuuS4gOS4qua4uOaIj+S/seS5kOmDqOeahOWbvuagh++8jOS+m+eOqeWutuWKoOWFpeaIluS6kuWKqOOAglxyXG4gICAgICovXHJcbiAgICBvbkNyZWF0ZUNsdWIoKSB7XHJcbiAgICAgICAgLy8g6YWN572u5L+x5LmQ6YOo5Zu+5qCH5Li657u/6Imy77yM6K6+572u5Zu+5qCH55qE5L2N572u5Li66aG26YOoMjAw5YOP57Sg77yM5bem5L6nMOWDj+e0oFxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkdhbWVDbHViLmluc3RhbmNlLmNyZWF0ZShcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuRUdhbWVDbHViSWNvbi5HUkVFTixcclxuICAgICAgICAgICAgeyB0b3A6IDIwMCwgbGVmdDogMCB9LFxyXG4gICAgICAgICAgICB7IHdpZHRoOiA1MCwgaGVpZ2h0OiA1MCB9KTtcclxuICAgICAgICAvLyDmmL7npLrmuLjmiI/kv7HkuZDpg6jlm77moIdcclxuICAgICAgICBNaW5pR2FtZVNkay5HYW1lQ2x1Yi5pbnN0YW5jZS5zaG93KCk7XHJcbiAgICB9XHJcbn1cclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Crypto/HttpUtil.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '771a32aQBNGVKd3+66gyTKA', 'HttpUtil'); +// Script/module/Crypto/HttpUtil.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var CryptoJS = require("./crypto-js.min.js"); //引用AES源码js +var BASE_URL = "https://api.sparkus.cn"; +//只负责网络接口 次类只负责和后端交互,不负责处理数据 数据处理在GameTool +var HttpUtil = /** @class */ (function (_super) { + __extends(HttpUtil, _super); + function HttpUtil() { + return _super !== null && _super.apply(this, arguments) || this; + } + HttpUtil_1 = HttpUtil; + //排行榜 + HttpUtil.rankData = function (type, callback, data) { + return __awaiter(this, void 0, Promise, function () { + var time, url; + return __generator(this, function (_a) { + time = Math.floor((new Date().getTime()) / 1000); + url = HttpUtil_1.apiSign("/api/get/rank/data?gameId=" + config.gameId + "&dataType=" + type + "&time=" + time, data); + this.post(url, data, callback, 0); + return [2 /*return*/]; + }); + }); + }; + HttpUtil.uploadUserLogData = function (data, callback) { + return __awaiter(this, void 0, Promise, function () { + var url; + return __generator(this, function (_a) { + url = '/log/collect/data'; + this.post(url, data, callback, 3); + return [2 /*return*/]; + }); + }); + }; + //暂时用不到 + HttpUtil.getUserRecord = function (data, callback) { + return __awaiter(this, void 0, Promise, function () { + var time, url; + return __generator(this, function (_a) { + time = Math.floor((new Date().getTime()) / 1000); + url = HttpUtil_1.apiSign("/api/get/user/data?gameId=" + config.gameId + "&time=" + time, data); + this.post(url, data, callback, 0); + return [2 /*return*/]; + }); + }); + }; + HttpUtil.get = function (url, callback, count) { + return __awaiter(this, void 0, void 0, function () { + var repeat, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + repeat = count ? count : 0; + return [4 /*yield*/, this.fetchData(url, null, 'GET', repeat)]; + case 1: + response = _a.sent(); + callback && callback(response); + return [2 /*return*/]; + } + }); + }); + }; + HttpUtil.post = function (url, data, callback, count) { + return __awaiter(this, void 0, void 0, function () { + var repeat, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + repeat = count ? count : 0; + return [4 /*yield*/, this.fetchData(url, data, 'POST', repeat)]; + case 1: + response = _a.sent(); + callback && callback(response); + return [2 /*return*/]; + } + }); + }); + }; + HttpUtil.fetchData = function (url, data, method, repeat) { + return __awaiter(this, void 0, void 0, function () { + var fullUrl, headers, options, response, error_1, timeOut; + var _this = this; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + fullUrl = "" + BASE_URL + url; + headers = { 'Content-Type': 'application/json' }; + options = { + method: method, + headers: headers, + body: data ? JSON.stringify(data) : null, + }; + _a.label = 1; + case 1: + _a.trys.push([1, 4, , 5]); + return [4 /*yield*/, this.fetchWithTimeout(fullUrl, options)]; + case 2: + response = _a.sent(); + if (!response.ok) { + throw new Error("HTTP_______________error! status: " + response.status); + } + return [4 /*yield*/, response.json()]; + case 3: return [2 /*return*/, _a.sent()]; + case 4: + error_1 = _a.sent(); + console.error('Fetch_______________error:', error_1); + if (repeat > 0) { + repeat -= 1; + timeOut = (3 - repeat) * 5000; + setTimeout(function () { return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, this.fetchData(url, data, method, repeat)]; + case 1: + response = _a.sent(); + return [2 /*return*/]; + } + }); + }); }, timeOut); + } + else { + return [2 /*return*/, null]; + } + return [3 /*break*/, 5]; + case 5: return [2 /*return*/]; + } + }); + }); + }; + HttpUtil.fetchWithTimeout = function (resource, options) { + if (options === void 0) { options = {}; } + return __awaiter(this, void 0, void 0, function () { + var controller, id, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + controller = new AbortController(); + id = setTimeout(function () { return controller.abort(); }, 5000); + return [4 /*yield*/, fetch(resource, __assign(__assign({}, options), { signal: controller.signal }))]; + case 1: + response = _a.sent(); + clearTimeout(id); + return [2 /*return*/, response]; + } + }); + }); + }; + /** + * + * @param url {string} 接口地址 + * @param params {object} 需要加密的参数对象 + */ + HttpUtil.apiSign = function (url, params) { + if (params === void 0) { params = {}; } + var convertUrl = url.trim(); + if (convertUrl.indexOf('?') === -1) { + convertUrl += '?'; + } + // 传入参数转换拼接字符串 + var postStr = getQueryString(params); + var signedStr = genSignStr(convertUrl, postStr); + var encryptStr = "sign=" + signedStr; + var encryptSignStr = fxCry.encryptByDES(encryptStr, config.secretKey); + encryptSignStr = encodeURIComponent(encryptSignStr); + return urlencode(convertUrl) + "&_p=" + encryptSignStr; + }; + var HttpUtil_1; + HttpUtil = HttpUtil_1 = __decorate([ + ccclass + ], HttpUtil); + return HttpUtil; +}(cc.Component)); +exports.default = HttpUtil; +function responseHandler(response) { + return response.data; +} +// 响应拦截器 +// Rq.interceptors.response.use(responseHandler) +var config = { + gameId: "100019", + secretKey: "15ELeamO", + EK: "hui231%1" +}; +var Crypoto = /** @class */ (function () { + function Crypoto() { + // 加密的向明值,自己根据项目实际情况定,需要跟后端开发保持一致 + this.keyHex = this.getHetKey(); + } + Crypoto.prototype.getHetKey = function () { + return CryptoJS.enc.Utf8.parse(config.EK); + }; + /** DES加密 */ + Crypoto.prototype.encryptByDES = function (message, secret) { + if (!message) { + return message; + } + var key = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var encrypted = CryptoJS.DES.encrypt(message, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return encrypted.toString(); + }; + /** DES解密 */ + Crypoto.prototype.decryptByDES = function (message, secret) { + var key = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var decrypted = CryptoJS.DES.decrypt({ + ciphertext: CryptoJS.enc.Base64.parse(message) + }, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return decrypted.toString(CryptoJS.enc.Utf8); + }; + /** hmacSHA256加密 */ + Crypoto.prototype.hmacSha256 = function (message, secret) { + var keyHex = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var hash = CryptoJS.HmacSHA256(message, keyHex); + return hash.toString(); + }; + /** hmacSHA256验证 */ + Crypoto.prototype.verifyHmacSha256 = function (message, signature) { + var hash = CryptoJS.HmacSHA256(message, this.keyHex); + return hash.toString() === signature; + }; + /** CBC加密 */ + Crypoto.prototype.encryptCBC = function (word) { + if (!word) { + return word; + } + var srcs = CryptoJS.enc.Utf8.parse(word); + var encrypted = CryptoJS.AES.encrypt(srcs, this.keyHex, { + iv: this.keyHex, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.ZeroPadding + }); + return encrypted.toString(); + }; + /** CBC解密 */ + Crypoto.prototype.decryptCBC = function (word) { + if (!word) { + return word; + } + var encryptedHexStr = CryptoJS.enc.Hex.parse(word); + var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr); + var decrypt = CryptoJS.AES.decrypt(srcs, this.keyHex, { + iv: this.keyHex, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.ZeroPadding + }); + var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); + return decryptedStr.toString(); + }; + return Crypoto; +}()); +var fxCry = new Crypoto(); +function isEmpty(data) { + return data === "" || data === null || data === undefined || data.length === 0 || JSON.stringify(data) == "{}"; +} +function getQueryString(obj) { + // 首先对对象的键进行排序并过滤空值 + var sortedKeys = Object.keys(obj).sort(); + var sortedObj = {}; + for (var i = 0; i < sortedKeys.length; i++) { + if (isEmpty(obj[sortedKeys[i]])) { + continue; + } + sortedObj[sortedKeys[i]] = obj[sortedKeys[i]]; + } + // 然后将排序后的对象转换为查询字符串 + var params = []; + for (var key in sortedObj) { + params.push(encodeURIComponent(key) + "=" + encodeURIComponent(sortedObj[key])); + } + return params.join('&'); +} +/** + * 组装签名字符串 + * @param string url: 请求地址 + * @param string postStr: post参数的a=1&b=2 + * @returns + */ +function genSignStr(url, postStr) { + var lessUrl = url.replace('?', ''); + lessUrl = lessUrl + "&" + postStr; + return encodeURIComponent(fxCry.hmacSha256(lessUrl)); +} +// 对参数进行统一urlencode +function urlencode(url) { + var _a = url.split("?", 2), baseUrl = _a[0], queryString = _a[1]; + var params = new URLSearchParams(queryString); + return baseUrl + "?" + params.toString(); +} + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENyeXB0b1xcSHR0cFV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDTSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUMxQyw2Q0FBZ0QsQ0FBRSxXQUFXO0FBRTdELElBQU0sUUFBUSxHQUFHLHdCQUF3QixDQUFDO0FBQzFDLDBDQUEwQztBQUUxQztJQUFzQyw0QkFBWTtJQUFsRDs7SUFpR0EsQ0FBQztpQkFqR29CLFFBQVE7SUFDekIsS0FBSztJQUNRLGlCQUFRLEdBQXJCLFVBQXNCLElBQUksRUFBQyxRQUFRLEVBQUMsSUFBSTt1Q0FBRyxPQUFPOzs7Z0JBQzFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO2dCQUNoRCxHQUFHLEdBQUcsVUFBUSxDQUFDLE9BQU8sQ0FBQywrQkFBNkIsTUFBTSxDQUFDLE1BQU0sa0JBQWEsSUFBSSxjQUFTLElBQU0sRUFBRSxJQUFJLENBQUMsQ0FBQTtnQkFDOUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUMsQ0FBQzs7OztLQUNoQztJQUVZLDBCQUFpQixHQUE5QixVQUErQixJQUFJLEVBQUMsUUFBUTt1Q0FBRyxPQUFPOzs7Z0JBQzlDLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUMsQ0FBQzs7OztLQUNoQztJQUNELE9BQU87SUFDTSxzQkFBYSxHQUEx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QUksa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFHLENBQUMsQ0FBQztLQUNqRjtJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBR0Q7Ozs7O0dBS0c7QUFFSCxTQUFTLFVBQVUsQ0FBQyxHQUFXLEVBQUUsT0FBZTtJQUM5QyxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNsQyxPQUFPLEdBQUcsT0FBTyxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUE7SUFDakMsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7QUFDdEQsQ0FBQztBQUNELG1CQUFtQjtBQUNuQixTQUFTLFNBQVMsQ0FBQyxHQUFXO0lBQ3RCLElBQUEsS0FBeUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQXpDLE9BQU8sUUFBQSxFQUFFLFdBQVcsUUFBcUIsQ0FBQztJQUNqRCxJQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRCxPQUFVLE9BQU8sU0FBSSxNQUFNLENBQUMsUUFBUSxFQUFJLENBQUM7QUFDM0MsQ0FBQyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuaW1wb3J0IENyeXB0b0pTID0gcmVxdWlyZSgnLi9jcnlwdG8tanMubWluLmpzJyk7ICAvL+W8leeUqEFFU+a6kOeggWpzXHJcblxyXG5jb25zdCBCQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuc3Bhcmt1cy5jblwiO1xyXG4vL+WPqui0n+i0o+e9kee7nOaOpeWPoyDmrKHnsbvlj6rotJ/otKPlkozlkI7nq6/kuqTkupLvvIzkuI3otJ/otKPlpITnkIbmlbDmja4g5pWw5o2u5aSE55CG5ZyoR2FtZVRvb2xcclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSHR0cFV0aWwgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgLy/mjpLooYzmppxcclxuICAgIHN0YXRpYyBhc3luYyByYW5rRGF0YSh0eXBlLGNhbGxiYWNrLGRhdGEpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICBjb25zdCB0aW1lID0gTWF0aC5mbG9vcigobmV3IERhdGUoKS5nZXRUaW1lKCkpIC8gMTAwMClcclxuICAgICAgY29uc3QgdXJsID0gSHR0cFV0aWwuYXBpU2lnbihgL2FwaS9nZXQvcmFuay9kYXRhP2dhbWVJZD0ke2NvbmZpZy5nYW1lSWR9JmRhdGFUeXBlPSR7dHlwZX0mdGltZT0ke3RpbWV9YCwgZGF0YSlcclxuICAgICAgdGhpcy5wb3N0KHVybCxkYXRhLGNhbGxiYWNrLDApO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgc3RhdGljIGFzeW5jIHVwbG9hZFVzZXJMb2dEYXRhKGRhdGEsY2FsbGJhY2spOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICBjb25zdCB1cmwgPSAnL2xvZy9jb2xsZWN0L2RhdGEnO1xyXG4gICAgICB0aGlzLnBvc3QodXJsLGRhdGEsY2FsbGJhY2ssMyk7XHJcbiAgICB9XHJcbiAgICAvL+aaguaXtueUqOS4jeWIsFxyXG4gICAgc3RhdGljIGFzeW5jIGdldFVzZXJSZWNvcmQoZGF0YSxjYWxsYmFjayk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgIGNvbnN0IHRpbWUgPSBNYXRoLmZsb29yKChuZXcgRGF0ZSgpLmdldFRpbWUoKSkgLyAxMDAwKVxyXG4gICAgICBjb25zdCB1cmwgPSBIdHRwVXRpbC5hcGlTaWduKGAvYXBpL2dldC91c2VyL2RhdGE/Z2FtZUlkPSR7Y29uZmlnLmdhbWVJZH0mdGltZT0ke3RpbWV9YCwgZGF0YSlcclxuICAgICAgdGhpcy5wb3N0KHVybCxkYXRhLGNhbGxiYWNrLDApO1xyXG4gICAgfVxyXG5cclxuICBzdGF0aWMgYXN5bmMgZ2V0KHVybCwgY2FsbGJhY2ssY291bnQpIHtcclxuICAgIGxldCByZXBlYXQgPSBjb3VudD9jb3VudDowO1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmZldGNoRGF0YSh1cmwsIG51bGwsICdHRVQnLHJlcGVhdCk7XHJcbiAgICBjYWxsYmFjayAmJiBjYWxsYmFjayhyZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgYXN5bmMgcG9zdCh1cmwsIGRhdGEsIGNhbGxiYWNrLGNvdW50KSB7XHJcbiAgICBsZXQgcmVwZWF0ID0gY291bnQ/Y291bnQ6MDtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5mZXRjaERhdGEodXJsLCBkYXRhLCAnUE9TVCcscmVwZWF0KTtcclxuICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBhc3luYyBmZXRjaERhdGEodXJsLCBkYXRhLCBtZXRob2QscmVwZWF0KSB7XHJcbiAgICBjb25zdCBmdWxsVXJsID0gYCR7QkFTRV9VUkx9JHt1cmx9YDtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgIG1ldGhvZCxcclxuICAgICAgaGVhZGVycyxcclxuICAgICAgYm9keTogZGF0YSA/IEpTT04uc3RyaW5naWZ5KGRhdGEpIDogbnVsbCxcclxuICAgIH07XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgdmFyIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5mZXRjaFdpdGhUaW1lb3V0KGZ1bGxVcmwsb3B0aW9ucyk7XHJcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSFRUUF9fX19fX19fX19fX19fX2Vycm9yISBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uKCk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdGZXRjaF9fX19fX19fX19fX19fX2Vycm9yOicsIGVycm9yKTtcclxuICAgICAgaWYocmVwZWF0ID4gMCl7XHJcbiAgICAgICAgcmVwZWF0IC09IDE7XHJcbiAgICAgICAgY29uc3QgdGltZU91dCA9ICgzLXJlcGVhdCkqNTAwMDtcclxuICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5mZXRjaERhdGEodXJsLCBkYXRhLCBtZXRob2QscmVwZWF0KTtcclxuICAgICAgICB9LCB0aW1lT3V0KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBcclxuXHJcbiAgc3RhdGljIGFzeW5jIGZldGNoV2l0aFRpbWVvdXQocmVzb3VyY2UsIG9wdGlvbnMgPSB7fSkge1xyXG4gICAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xyXG4gICAgICBjb25zdCBpZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCA1MDAwKTtcclxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChyZXNvdXJjZSwge1xyXG4gICAgICAuLi5vcHRpb25zLFxyXG4gICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsXHJcbiAgICAgIH0pO1xyXG4gICAgICBjbGVhclRpbWVvdXQoaWQpO1xyXG5cclxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gKiBcclxuICogQHBhcmFtIHVybCB7c3RyaW5nfSDmjqXlj6PlnLDlnYBcclxuICogQHBhcmFtIHBhcmFtcyB7b2JqZWN0fSDpnIDopoHliqDlr4bnmoTlj4LmlbDlr7nosaFcclxuICovXHJcbiAgc3RhdGljIGFwaVNpZ24odXJsOiBzdHJpbmcsIHBhcmFtcyA9IHt9KSB7XHJcblxyXG4gICAgbGV0IGNvbnZlcnRVcmwgPSB1cmwudHJpbSgpXHJcbiAgICBpZiAoY29udmVydFVybC5pbmRleE9mKCc/JykgPT09IC0xKSB7XHJcbiAgICAgIGNvbnZlcnRVcmwgKz0gJz8nXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIOS8oOWFpeWPguaVsOi9rOaNouaLvOaOpeWtl+espuS4slxyXG4gICAgbGV0IHBvc3RTdHIgPSAgZ2V0UXVlcnlTdHJpbmcocGFyYW1zKVxyXG4gIFxyXG4gICAgY29uc3Qgc2lnbmVkU3RyID0gZ2VuU2lnblN0cihjb252ZXJ0VXJsLCBwb3N0U3RyKVxyXG4gICAgY29uc3QgZW5jcnlwdFN0ciA9IGBzaWduPSR7c2lnbmVkU3RyfWBcclxuXHJcbiAgICBsZXQgZW5jcnlwdFNpZ25TdHIgPSBmeENyeS5lbmNyeXB0QnlERVMoZW5jcnlwdFN0ciwgY29uZmlnLnNlY3JldEtleSlcclxuICAgIGVuY3J5cHRTaWduU3RyID0gZW5jb2RlVVJJQ29tcG9uZW50KGVuY3J5cHRTaWduU3RyKVxyXG5cclxuICAgIHJldHVybiBgJHt1cmxlbmNvZGUoY29udmVydFVybCl9Jl9wPSR7ZW5jcnlwdFNpZ25TdHJ9YFxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcmVzcG9uc2VIYW5kbGVyKHJlc3BvbnNlOiB7IGRhdGE6IGFueSB9KSB7XHJcbiAgcmV0dXJuIHJlc3BvbnNlLmRhdGFcclxufVxyXG4vLyDlk43lupTmi6bmiKrlmahcclxuLy8gUnEuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLnVzZShyZXNwb25zZUhhbmRsZXIpXHJcbmNvbnN0IGNvbmZpZyA9IHtcclxuICBnYW1lSWQ6IFwiMTAwMDE5XCIsXHJcbiAgc2VjcmV0S2V5OiBcIjE1RUxlYW1PXCIsXHJcbiAgRUs6XCJodWkyMzElMVwiXHJcbn07XHJcblxyXG5pbnRlcmZhY2UgQ3J5cG90b1R5cGUge1xyXG4gIGVuY3J5cHRCeURFUzogYW55XHJcbiAgZGVjcnlwdEJ5REVTOiBhbnlcclxuICBobWFjU2hhMjU2OiBhbnlcclxufVxyXG4gXHJcbmNsYXNzIENyeXBvdG8gaW1wbGVtZW50cyBDcnlwb3RvVHlwZSB7XHJcbiAgICAvLyDliqDlr4bnmoTlkJHmmI7lgLzvvIzoh6rlt7HmoLnmja7pobnnm67lrp7pmYXmg4XlhrXlrprvvIzpnIDopoHot5/lkI7nq6/lvIDlj5Hkv53mjIHkuIDoh7RcclxuICAgIHByaXZhdGUga2V5SGV4ID0gdGhpcy5nZXRIZXRLZXkoKVxyXG4gICAgcHJpdmF0ZSBnZXRIZXRLZXkoKSB7XHJcbiAgICAgICAgcmV0dXJuIENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKGNvbmZpZy5FSyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIERFU+WKoOWvhiAqL1xyXG4gICAgZW5jcnlwdEJ5REVTKG1lc3NhZ2U6IHN0cmluZywgc2VjcmV0Pzogc3RyaW5nKSB7XHJcbiAgICAgIGlmKCFtZXNzYWdlKSB7XHJcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBrZXkgPSBzZWNyZXQ/IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHNlY3JldCk6IHRoaXMua2V5SGV4XHJcbiAgICAgIGNvbnN0IGVuY3J5cHRlZCA9IENyeXB0b0pTLkRFUy5lbmNyeXB0KG1lc3NhZ2UsIGtleSwge1xyXG4gICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuRUNCLFxyXG4gICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGVuY3J5cHRlZC50b1N0cmluZygpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqIERFU+ino+WvhiAqL1xyXG4gICAgZGVjcnlwdEJ5REVTKG1lc3NhZ2U6IHN0cmluZywgc2VjcmV0Pzogc3RyaW5nKSB7XHJcbiAgICAgIGNvbnN0IGtleSA9IHNlY3JldD8gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2Uoc2VjcmV0KTogdGhpcy5rZXlIZXhcclxuXHJcbiAgICAgIGNvbnN0IGRlY3J5cHRlZCA9IENyeXB0b0pTLkRFUy5kZWNyeXB0KHtcclxuICAgICAgICBjaXBoZXJ0ZXh0OiBDcnlwdG9KUy5lbmMuQmFzZTY0LnBhcnNlKG1lc3NhZ2UpXHJcbiAgICAgIH0sIGtleSwge1xyXG4gICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuRUNCLFxyXG4gICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xyXG4gICAgICB9KVxyXG5cclxuICAgICAgcmV0dXJuIGRlY3J5cHRlZC50b1N0cmluZyhDcnlwdG9KUy5lbmMuVXRmOClcclxuICAgIH1cclxuXHJcbiAgICAvKiogaG1hY1NIQTI1NuWKoOWvhiAqL1xyXG4gICAgaG1hY1NoYTI1NihtZXNzYWdlOiBzdHJpbmcsIHNlY3JldD86IHN0cmluZykge1xyXG4gICAgICBjb25zdCBrZXlIZXggPSBzZWNyZXQ/IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHNlY3JldCk6IHRoaXMua2V5SGV4XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBoYXNoID0gQ3J5cHRvSlMuSG1hY1NIQTI1NihtZXNzYWdlLCBrZXlIZXgpO1xyXG4gICAgICByZXR1cm4gaGFzaC50b1N0cmluZygpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqIGhtYWNTSEEyNTbpqozor4EgKi9cclxuICAgIHZlcmlmeUhtYWNTaGEyNTYobWVzc2FnZTogc3RyaW5nLCBzaWduYXR1cmU6IHN0cmluZykge1xyXG4gICAgICBjb25zdCBoYXNoID0gQ3J5cHRvSlMuSG1hY1NIQTI1NihtZXNzYWdlLCB0aGlzLmtleUhleCk7XHJcbiAgICAgIHJldHVybiBoYXNoLnRvU3RyaW5nKCkgPT09IHNpZ25hdHVyZVxyXG4gICAgfVxyXG4gXHJcbiAgICAvKiogQ0JD5Yqg5a+GICovXHJcbiAgICBlbmNyeXB0Q0JDKHdvcmQ6IHN0cmluZykge1xyXG4gICAgICAgIGlmICghd29yZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gd29yZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgc3JjcyA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHdvcmQpO1xyXG4gICAgICAgIGNvbnN0IGVuY3J5cHRlZCA9IENyeXB0b0pTLkFFUy5lbmNyeXB0KHNyY3MsIHRoaXMua2V5SGV4LCB7XHJcbiAgICAgICAgICAgIGl2OiB0aGlzLmtleUhleCxcclxuICAgICAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXHJcbiAgICAgICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5aZXJvUGFkZGluZ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBlbmNyeXB0ZWQudG9TdHJpbmcoKTsgXHJcbiAgICB9XHJcbiBcclxuICAgIC8qKiBDQkPop6Plr4YgKi9cclxuICAgIGRlY3J5cHRDQkMod29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCF3b3JkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB3b3JkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBlbmNyeXB0ZWRIZXhTdHIgPSBDcnlwdG9KUy5lbmMuSGV4LnBhcnNlKHdvcmQpO1xyXG4gICAgICAgIGNvbnN0IHNyY3MgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeShlbmNyeXB0ZWRIZXhTdHIpO1xyXG4gICAgICAgIGNvbnN0IGRlY3J5cHQgPSBDcnlwdG9KUy5BRVMuZGVjcnlwdChzcmNzLCB0aGlzLmtleUhleCwge1xyXG4gICAgICAgICAgICBpdjogdGhpcy5rZXlIZXgsXHJcbiAgICAgICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0JDLFxyXG4gICAgICAgICAgICBwYWRkaW5nOiBDcnlwdG9KUy5wYWQuWmVyb1BhZGRpbmdcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBkZWNyeXB0ZWRTdHIgPSBkZWNyeXB0LnRvU3RyaW5nKENyeXB0b0pTLmVuYy5VdGY4KTtcclxuICAgICAgICByZXR1cm4gZGVjcnlwdGVkU3RyLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbn1cclxuY29uc3QgZnhDcnkgPSBuZXcgQ3J5cG90bygpO1xyXG5cclxuZnVuY3Rpb24gaXNFbXB0eShkYXRhKSB7XHJcbiAgcmV0dXJuIGRhdGEgPT09IFwiXCIgfHwgZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQgfHwgZGF0YS5sZW5ndGggPT09IDAgfHwgSlNPTi5zdHJpbmdpZnkoZGF0YSkgPT0gXCJ7fVwiXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFF1ZXJ5U3RyaW5nKG9iaikge1xyXG4gIC8vIOmmluWFiOWvueWvueixoeeahOmUrui/m+ihjOaOkuW6j+W5tui/h+a7pOepuuWAvFxyXG4gIGNvbnN0IHNvcnRlZEtleXMgPSBPYmplY3Qua2V5cyhvYmopLnNvcnQoKTtcclxuICBjb25zdCBzb3J0ZWRPYmogPSB7fTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNvcnRlZEtleXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmIChpc0VtcHR5KG9ialtzb3J0ZWRLZXlzW2ldXSkpIHtcclxuICAgICAgY29udGludWU7XHJcbiAgICB9XHJcbiAgICBzb3J0ZWRPYmpbc29ydGVkS2V5c1tpXV0gPSBvYmpbc29ydGVkS2V5c1tpXV07XHJcbiAgfVxyXG4gIFxyXG4gIC8vIOeEtuWQjuWwhuaOkuW6j+WQjueahOWvueixoei9rOaNouS4uuafpeivouWtl+espuS4slxyXG4gIGNvbnN0IHBhcmFtcyA9IFtdO1xyXG4gIGZvciAoY29uc3Qga2V5IGluIHNvcnRlZE9iaikge1xyXG4gICAgcGFyYW1zLnB1c2goYCR7ZW5jb2RlVVJJQ29tcG9uZW50KGtleSl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHNvcnRlZE9ialtrZXldKX1gKTtcclxuICB9XHJcbiAgcmV0dXJuIHBhcmFtcy5qb2luKCcmJyk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICog57uE6KOF562+5ZCN5a2X56ym5LiyXHJcbiAqIEBwYXJhbSBzdHJpbmcgdXJsOiDor7fmsYLlnLDlnYAgXHJcbiAqIEBwYXJhbSBzdHJpbmcgcG9zdFN0cjogcG9zdOWPguaVsOeahGE9MSZiPTIgXHJcbiAqIEByZXR1cm5zIFxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIGdlblNpZ25TdHIodXJsOiBzdHJpbmcsIHBvc3RTdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgbGV0IGxlc3NVcmwgPSB1cmwucmVwbGFjZSgnPycsICcnKVxyXG4gIGxlc3NVcmwgPSBsZXNzVXJsICsgXCImXCIgKyBwb3N0U3RyXHJcbiAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChmeENyeS5obWFjU2hhMjU2KGxlc3NVcmwpKVxyXG59XHJcbi8vIOWvueWPguaVsOi/m+ihjOe7n+S4gHVybGVuY29kZVxyXG5mdW5jdGlvbiB1cmxlbmNvZGUodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGNvbnN0IFtiYXNlVXJsLCBxdWVyeVN0cmluZ10gPSB1cmwuc3BsaXQoXCI/XCIsIDIpO1xyXG4gIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocXVlcnlTdHJpbmcpO1xyXG4gIHJldHVybiBgJHtiYXNlVXJsfT8ke3BhcmFtcy50b1N0cmluZygpfWA7XHJcbn1cclxuXHJcblxyXG5cclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Music/AudioManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '58403/n16JCa5sZhNMjZzGo', 'AudioManager'); +// Script/module/Music/AudioManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var AudioManager = /** @class */ (function (_super) { + __extends(AudioManager, _super); + function AudioManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + //背景音乐 + _this.audioGameBgm0 = null; + _this.chehui = null; + _this.jineng = null; + _this.qingkong = null; + _this.fangxiang = null; + _this.build = null; + _this.win = null; + _this.lose = null; + return _this; + } + AudioManager_1 = AudioManager; + AudioManager.prototype.onLoad = function () { + if (AudioManager_1._instance == null) { + AudioManager_1._instance = this; + cc.game.addPersistRootNode(this.node); + } + else { + return; + } + this.reward = false; + this.finish = false; + this.rewardCount = 0; + this.ctor(); + this.preload(); + }; + AudioManager.prototype.ctor = function () { + this.mAudioMap = {}; + /** + * 默认音量大小 + * @type {number} + */ + this.bgMusicVolume = 0.1; + this.effectMusicVolume = 1; + this.mMusicSwitch = 1; + this.mEffectSwitch = 1; + }; + AudioManager.prototype.play = function (audioSource, loop, callback, isBgMusic) { + // if (isBgMusic && !this.mMusicSwitch) return; + // if (!isBgMusic && !this.mEffectSwitch) return; + var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume; + // if (cc.sys.isBrowser) { + // if(audioSource == this.brickSound){ + // volume = 0.1; + // } + volume = 1; + cc.audioEngine.setEffectsVolume(1); + cc.audioEngine.setMusicVolume(1); + if (audioSource.name == "lose") { + cc.audioEngine.setEffectsVolume(0.5); + } + else { + cc.audioEngine.setEffectsVolume(1); + } + var context = cc.audioEngine.playEffect(audioSource, loop); + if (callback) { + cc.audioEngine.setFinishCallback(context, function () { + callback.call(this); + }.bind(this)); + } + // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src); + this.mAudioMap[audioSource] = context; + return audioSource; + // } else { + // return audioSource; + // } + }; + AudioManager.prototype.save = function () { + // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch); + // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch); + }; + // static get Instance() + // { + // if (this._instance == null) + // { + // this._instance = new AudioManager(); + // } + // return this._instance; + // } + AudioManager.prototype.preload = function () { + if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { + return; + } + var musics = [ + this.audioGameBgm0, + ]; + musics.forEach(function (path) { + }); + }; + AudioManager.prototype.getAudioMusicSwitch = function () { + return this.mMusicSwitch; + }; + AudioManager.prototype.getAudioEffectSwitch = function () { + return this.mEffectSwitch; + }; + AudioManager.prototype.trunAudioSound = function (on) { + this.switchMusic(on); + this.switchEffect(on); + }; + AudioManager.prototype.switchMusic = function (on) { + if (this.mMusicSwitch != (on ? 1 : 0)) { + this.mMusicSwitch = 1 - this.mMusicSwitch; + // this.save(); + } + if (on) { + this.playMusicGame(); + } + else { + this.stopMusic(); + } + }; + AudioManager.prototype.switchEffect = function (on) { + if (this.mEffectSwitch != (on ? 1 : 0)) { + this.mEffectSwitch = 1 - this.mEffectSwitch; + // this.save(); + } + }; + AudioManager.prototype.onHide = function () { + cc.audioEngine.pauseAll(); + }; + AudioManager.prototype.onShow = function () { + cc.audioEngine.resumeAll(); + }; + //播放音效 + AudioManager.prototype.playEffect = function (name, callback) { + if (this[name]) + return this.play(this[name], false, callback, this.mEffectSwitch); + }; + AudioManager.prototype.playMusic = function (key, callback, loop) { + loop = typeof loop == 'undefined' || loop ? true : false; + this.stopMusic(); + this.mMusicKey = this.play(key, loop, callback, true); + }; + /** + * 游戏背景音乐 + */ + AudioManager.prototype.playMusicGame = function () { + this.playMusic(this.audioGameBgm0, {}, true); + }; + /** + * 停止背景音乐播放 + */ + AudioManager.prototype.stopMusic = function () { + // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey); + var context = this.mAudioMap[this.mMusicKey]; + if (typeof (context) != 'undefined') { + if (cc.sys.isBrowser) { + cc.audioEngine.stop(context); + } + else { + context.stop(); + } + cc.audioEngine.stop(context); + } + }; + /* + * 游戏开始音效 + * + */ + AudioManager.prototype.playGameStart = function () { + }; + /* + * 失败的游戏结束 + */ + AudioManager.prototype.playGameOver = function () { + }; + /* + * 成功的游戏结束 + */ + AudioManager.prototype.playGameResultFailed = function () { + }; + /* + * 成功的游戏结束 + */ + AudioManager.prototype.playGameResultSuccess = function () { + }; + /** + * 报警的音效 + */ + /** + * 按钮 + */ + AudioManager.prototype.playAudioButton = function () { + // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch); + }; + var AudioManager_1; + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "audioGameBgm0", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "chehui", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "jineng", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "qingkong", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "fangxiang", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "build", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "win", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "lose", void 0); + AudioManager = AudioManager_1 = __decorate([ + ccclass + ], AudioManager); + return AudioManager; +}(cc.Component)); +exports.default = AudioManager; +; +// export { AudioManager }; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE11c2ljXFxBdWRpb01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUM7SUFBMEMsZ0NBQVk7SUFBdEQ7UUFBQSxxRUE4T0M7UUE1T0csTUFBTTtRQUVOLG1CQUFhLEdBQWlCLElBQUksQ0FBQztRQUduQyxZQUFNLEdBQWlCLElBQUksQ0FBQztRQUU1QixZQUFNLEdBQWlCLElBQUksQ0FBQztRQUU1QixjQUFRLEdBQWlCLElBQUksQ0FBQztRQUU5QixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixXQUFLLEdBQWlCLElBQUksQ0FBQztRQUUzQixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQzs7SUEyTjlCLENBQUM7cUJBOU9vQixZQUFZO0lBbUM3Qiw2QkFBTSxHQUFOO1FBQ0ksSUFBSSxjQUFZLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtZQUNoQyxjQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUM5QixFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QzthQUNJO1lBQ0QsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRVosSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCwyQkFBSSxHQUFKO1FBQ0ksSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENB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QUUsQ0FBQyxTQUFTLENBQUM7a0RBQ087SUFFOUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzttREFDUTtJQUUvQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDOytDQUNJO0lBRTNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7NkNBQ0U7SUFFekI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs4Q0FDRztJQW5CVCxZQUFZO1FBRGhDLE9BQU87T0FDYSxZQUFZLENBOE9oQztJQUFELG1CQUFDO0NBOU9ELEFBOE9DLENBOU95QyxFQUFFLENBQUMsU0FBUyxHQThPckQ7a0JBOU9vQixZQUFZO0FBOE9oQyxDQUFDO0FBRUYsMkJBQTJCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xuQGNjY2xhc3NcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1ZGlvTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xuICAgIC8v6IOM5pmv6Z+z5LmQXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhdWRpb0dhbWVCZ20wOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBjaGVodWk6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBqaW5lbmc6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBxaW5na29uZzogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGZhbmd4aWFuZzogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGJ1aWxkOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgd2luOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgbG9zZTogY2MuQXVkaW9DbGlwID0gbnVsbDtcblxuXG5cblxuICAgIG1BdWRpb01hcDoge307XG4gICAgYmdNdXNpY1ZvbHVtZTogbnVtYmVyO1xuICAgIGVmZmVjdE11c2ljVm9sdW1lOiBudW1iZXI7XG4gICAgbU11c2ljU3dpdGNoOiBudW1iZXI7XG4gICAgbUVmZmVjdFN3aXRjaDogbnVtYmVyO1xuICAgIGJyaWNrU291bmQ6IGFueTtcbiAgICByZXdhcmQ6IGJvb2xlYW47XG4gICAgZmluaXNoOiBib29sZWFuO1xuICAgIHJld2FyZENvdW50OiBudW1iZXI7XG4gICAgbU11c2ljS2V5OiBhbnk7XG5cbiAgICBvbkxvYWQoKSB7XG4gICAgICAgIGlmIChBdWRpb01hbmFnZXIuX2luc3RhbmNlID09IG51bGwpIHtcbiAgICAgICAgICAgIEF1ZGlvTWFuYWdlci5faW5zdGFuY2UgPSB0aGlzO1xuICAgICAgICAgICAgY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJld2FyZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZpbmlzaCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJld2FyZENvdW50ID0gMDtcbiAgICAgICAgdGhpcy5jdG9yKCk7XG5cbiAgICAgICAgdGhpcy5wcmVsb2FkKCk7XG4gICAgfVxuXG4gICAgY3RvciAoKSB7XG4gICAgICAgIHRoaXMubUF1ZGlvTWFwID0ge307XG4gICAgICAgIC8qKlxuICAgICAgICAgKiDpu5jorqTpn7Pph4/lpKflsI9cbiAgICAgICAgICogQHR5cGUge251bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuYmdNdXNpY1ZvbHVtZSA9IDAuMTtcbiAgICAgICAgdGhpcy5lZmZlY3RNdXNpY1ZvbHVtZSA9IDE7XG5cbiAgICAgICAgdGhpcy5tTXVzaWNTd2l0Y2ggPSAxO1xuICAgICAgICB0aGlzLm1FZmZlY3RTd2l0Y2ggPSAxO1xuICAgIH1cbiAgICBwbGF5IChhdWRpb1NvdXJjZSwgbG9vcCwgY2FsbGJhY2ssIGlzQmdNdXNpYykge1xuICAgICAgICAvLyBpZiAoaXNCZ011c2ljICYmICF0aGlzLm1NdXNpY1N3aXRjaCkgcmV0dXJuO1xuICAgICAgICAvLyBpZiAoIWlzQmdNdXNpYyAmJiAhdGhpcy5tRWZmZWN0U3dpdGNoKSByZXR1cm47XG4gICAgICAgIHZhciB2b2x1bWUgPSBpc0JnTXVzaWMgPyB0aGlzLmJnTXVzaWNWb2x1bWUgOiB0aGlzLmVmZmVjdE11c2ljVm9sdW1lO1xuXG4gICAgICAgIC8vIGlmIChjYy5zeXMuaXNCcm93c2VyKSB7XG4gICAgICAgICAgICAvLyBpZihhdWRpb1NvdXJjZSA9PSB0aGlzLmJyaWNrU291bmQpe1xuICAgICAgICAgICAgLy8gICAgIHZvbHVtZSA9IDAuMTtcbiAgICAgICAgICAgIC8vIH0gXG4gICAgICAgICAgICB2b2x1bWUgPSAxO1xuICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RWZmZWN0c1ZvbHVtZSgxKTtcbiAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldE11c2ljVm9sdW1lKDEpO1xuICAgICAgICAgICAgaWYoYXVkaW9Tb3VyY2UubmFtZSA9PSBcImxvc2VcIil7XG4gICAgICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RWZmZWN0c1ZvbHVtZSgwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRFZmZlY3RzVm9sdW1lKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBjYy5hdWRpb0VuZ2luZS5wbGF5RWZmZWN0KGF1ZGlvU291cmNlLCBsb29wKTtcbiAgICAgICAgICAgIGlmIChjYWxsYmFjayl7XG4gICAgICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RmluaXNoQ2FsbGJhY2soY29udGV4dCwgZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzKTtcbiAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gY2Mud3d4Lk91dFB1dC5sb2coJ3BsYXkgYXVkaW8gZWZmZWN0IGlzQnJvd3NlcjogJyArIGNvbnRleHQuc3JjKTtcblxuICAgICAgICAgICAgdGhpcy5tQXVkaW9NYXBbYXVkaW9Tb3VyY2VdID0gY29udGV4dDtcbiAgICAgICAgICAgIHJldHVybiBhdWRpb1NvdXJjZTtcbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgLy8gICAgIHJldHVybiBhdWRpb1NvdXJjZTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIHNhdmUgKCkge1xuICAgICAgICAvLyBjYy53d3guU3RvcmFnZS5zZXRJdGVtKGNjLnd3eC5TdG9yYWdlLktleV9TZXR0aW5nX011c2ljX1ZvbHVtZSwgdGhpcy5tTXVzaWNTd2l0Y2gpO1xuICAgICAgICAvLyBjYy53d3guU3RvcmFnZS5zZXRJdGVtKGNjLnd3eC5TdG9yYWdlLktleV9TZXR0aW5nX0VmZmVjdF9Wb2x1bWUsIHRoaXMubUVmZmVjdFN3aXRjaCk7XG4gICAgfVxuXG4gICAgLy8gc3RhdGljIGdldCBJbnN0YW5jZSgpXG4gICAgLy8ge1xuICAgIC8vICAgICBpZiAodGhpcy5faW5zdGFuY2UgPT0gbnVsbClcbiAgICAvLyAgICAge1xuICAgIC8vICAgICAgICAgdGhpcy5faW5zdGFuY2UgPSBuZXcgQXVkaW9NYW5hZ2VyKCk7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlO1xuICAgIC8vIH1cblxuICAgIHByZWxvYWQgKCkge1xuICAgICAgICBpZiAoIShjYy5zeXMucGxhdGZvcm0gPT09IGNjLnN5cy5XRUNIQVRfR0FNRSkpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdmFyIG11c2ljcyA9IFtcbiAgICAgICAgICAgIHRoaXMuYXVkaW9HYW1lQmdtMCxcbiAgICAgICAgXTtcbiAgICAgICAgbXVzaWNzLmZvckVhY2goZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIGdldEF1ZGlvTXVzaWNTd2l0Y2goKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubU11c2ljU3dpdGNoO1xuXG4gICAgfVxuICAgIGdldEF1ZGlvRWZmZWN0U3dpdGNoKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLm1FZmZlY3RTd2l0Y2g7XG4gICAgfVxuICAgIHRydW5BdWRpb1NvdW5kKG9uKVxuICAgIHtcbiAgICAgICAgdGhpcy5zd2l0Y2hNdXNpYyhvbik7XG4gICAgICAgIHRoaXMuc3dpdGNoRWZmZWN0KG9uKVxuICAgIH1cbiAgICBzd2l0Y2hNdXNpYyAob24pIHtcbiAgICAgICAgaWYgKHRoaXMubU11c2ljU3dpdGNoICE9IChvbj8xOjApKVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLm1NdXNpY1N3aXRjaCA9IDEtdGhpcy5tTXVzaWNTd2l0Y2g7XG4gICAgICAgICAgICAvLyB0aGlzLnNhdmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZihvbilcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5wbGF5TXVzaWNHYW1lKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN3aXRjaEVmZmVjdCAob24pIHtcbiAgICAgICAgaWYgKHRoaXMubUVmZmVjdFN3aXRjaCAhPSAob24/MTowKSl7XG4gICAgICAgICAgICB0aGlzLm1FZmZlY3RTd2l0Y2ggPSAxLXRoaXMubUVmZmVjdFN3aXRjaDtcbiAgICAgICAgICAgIC8vIHRoaXMuc2F2ZSgpO1xuXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25IaWRlICgpIHtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucGF1c2VBbGwoKTtcbiAgICB9XG5cbiAgICBvblNob3cgKCkge1xuICAgICAgICBjYy5hdWRpb0VuZ2luZS5yZXN1bWVBbGwoKTtcbiAgICB9XG5cbiAgICAvL+aSreaUvumfs+aViFxuICAgIHBsYXlFZmZlY3QobmFtZSxjYWxsYmFjayl7XG4gICAgICAgIGlmKHRoaXNbbmFtZV0pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXNbbmFtZV0sIGZhbHNlLGNhbGxiYWNrLHRoaXMubUVmZmVjdFN3aXRjaCk7XG4gICAgfVxuICAgIHBsYXlNdXNpYyAoa2V5LCBjYWxsYmFjaywgbG9vcCkge1xuICAgICAgICBsb29wID0gdHlwZW9mIGxvb3AgPT0gJ3VuZGVmaW5lZCcgIHx8IGxvb3AgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHRoaXMuc3RvcE11c2ljKCk7XG4gICAgICAgIHRoaXMubU11c2ljS2V5ID0gdGhpcy5wbGF5KGtleSwgbG9vcCwgY2FsbGJhY2ssIHRydWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiDmuLjmiI/og4zmma/pn7PkuZBcbiAgICAgKi9cbiAgICBwbGF5TXVzaWNHYW1lICgpIHtcbiAgICAgICAgdGhpcy5wbGF5TXVzaWModGhpcy5hdWRpb0dhbWVCZ20wLHt9LHRydWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiDlgZzmraLog4zmma/pn7PkuZDmkq3mlL5cbiAgICAgKi9cbiAgICBzdG9wTXVzaWMgKCkge1xuICAgICAgICAvLyBjYy53d3guT3V0UHV0LmxvZygnc3RvcE11c2ljIGF1ZGlvIGVmZmVjdCB3eDogJyArIHRoaXMubU11c2ljS2V5KTtcblxuICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMubUF1ZGlvTWFwW3RoaXMubU11c2ljS2V5XTtcblxuICAgICAgICBpZiAodHlwZW9mKGNvbnRleHQpICE9ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBpZiAoY2Muc3lzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnN0b3AoY29udGV4dCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRleHQuc3RvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc3RvcChjb250ZXh0KTtcblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLypcbiAgICAqIOa4uOaIj+W8gOWni+mfs+aViFxuICAgICpcbiAgICAqL1xuICAgIHBsYXlHYW1lU3RhcnQoKVxuICAgIHtcbiAgICBcbiAgICB9XG4gICAgLypcbiAgICAqIOWksei0peeahOa4uOaIj+e7k+adn1xuICAgICovXG4gICAgcGxheUdhbWVPdmVyKClcbiAgICB7XG5cbiAgICB9XG4gICAgLypcbiAgICAgICAgKiDmiJDlip/nmoTmuLjmiI/nu5PmnZ9cbiAgICAgICAgKi9cbiAgICBwbGF5R2FtZVJlc3VsdEZhaWxlZCgpXG4gICAge1xuXG4gICAgfVxuICAgIC8qXG4gICAgKiDmiJDlip/nmoTmuLjmiI/nu5PmnZ9cbiAgICAqL1xuICAgIHBsYXlHYW1lUmVzdWx0U3VjY2VzcygpXG4gICAge1xuXG4gICAgfVxuICAgIC8qKlxuICAgICAqIOaKpeitpueahOmfs+aViFxuICAgICAqL1xuXG4gICAgLyoqXG4gICAgICog5oyJ6ZKuXG4gICAgICovXG4gICAgcGxheUF1ZGlvQnV0dG9uICgpIHtcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMucGxheSh0aGlzLmF1ZGlvQnV0dG9uQ2xpY2ssIGZhbHNlLG51bGwsdGhpcy5tRWZmZWN0U3dpdGNoKTtcbiAgICB9XG59O1xuXG4vLyBleHBvcnQgeyBBdWRpb01hbmFnZXIgfTtcbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Config/GameConfig.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'c5692vnhwNF5J9nI7VNKQNW', 'GameConfig'); +// Script/module/Config/GameConfig.ts + +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GameConfig = void 0; +var share_1 = require("../Share/share"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var GameConfig = /** @class */ (function () { + function GameConfig() { + } + GameConfig_1 = GameConfig; + Object.defineProperty(GameConfig, "Instance", { + // static LEVEL_INFO: { + // id: string; //地图ID + // start: string[][]; //起始状态 + // goal: string[][]; //目标状态 + // middle: string[][][]; //中间状态 + // steps: number; //最大步数 + // }[]; + //游戏内信息 + get: function () { + if (this._instance == null) { + this._instance = new GameConfig_1(); + } + return this._instance; + }, + enumerable: false, + configurable: true + }); + //getSeedRandom + GameConfig.init = function (Authentication) { + this.CLICK_init(); + this.LEVEL_INFO_init(); + this.GM_INFO_init(); + var self = this; + //GAME_DATA 废弃了,暂时不删除以防后面修改回 一整局传一次 + this.GAME_DATA = []; + share_1.WeChat.setShare(location.href); + if (!Authentication) + self.Authentication(); + }; + //数据备用 + GameConfig.GM_INFO_init = function () { + this.GM_INFO = { + isCustom: false, + mean_Time: 0, + total: 0, + currSeed: 200000, + gameId: "100019", + userId: 0, + guide: true, + url: "https://api.sparkus.cn", + success: false, + matchId: null, + custom: 0, + round: 0, + level: 0, + guide_Level: 4, + startTime: -1, + random: 0, + stepTimeList: 0, + successList: [], + fen: 0, + score: 0, + igniteCount: 0, + min_Steps: 0, + min_Time: 0 //每一把上次距离洪峰到来时间 + }; + }; + GameConfig.GM_INFO_SET = function (key, value) { + this.GM_INFO[key] = value; + }; + GameConfig.CLICK_init = function () { + this.CLICK_DATA = + { + type: 1, + success: false, + round: 0, + duration: 0, + rightChoiceOuter: [], + userChoiceOuter: [], + rightChoiceInner: [], + userChoiceInner: [], + }; + }; + GameConfig.CLICK_SET = function (key, value) { + this.CLICK_DATA[key] = value; + }; + GameConfig.LEVEL_INFO_init = function () { + this.LEVEL_INFO = [{ + "id": "1", + "inside": 3, + "insideType": 1, + "outside": 0, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "2", + "inside": 3, + "insideType": 2, + "outside": 0, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "3", + "inside": 3, + "insideType": 3, + "outside": 0, + "outsideType": 1, + "showTime": 1, + }, + { + "id": "4", + "inside": 4, + "insideType": 3, + "outside": 0, + "outsideType": 1, + "showTime": 1, + }, + { + "id": "5", + "inside": 0, + "insideType": 1, + "outside": 1, + "outsideType": 1, + "showTime": 0.9, + }, + { + "id": "6", + "inside": 0, + "insideType": 1, + "outside": 1, + "outsideType": 2, + "showTime": 0.9, + }, + { + "id": "7", + "inside": 0, + "insideType": 1, + "outside": 2, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "8", + "inside": 0, + "insideType": 1, + "outside": 3, + "outsideType": 2, + "showTime": 1.2, + }, + { + "id": "9", + "inside": 3, + "insideType": 1, + "outside": 1, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "10", + "inside": 3, + "insideType": 2, + "outside": 1, + "outsideType": 2, + "showTime": 1.2, + }, + { + "id": "11", + "inside": 3, + "insideType": 1, + "outside": 2, + "outsideType": 1, + "showTime": 1.8, + }, + { + "id": "12", + "inside": 3, + "insideType": 2, + "outside": 2, + "outsideType": 2, + "showTime": 1.8, + }, + { + "id": "13", + "inside": 4, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.8, + }, + { + "id": "14", + "inside": 4, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.8, + }, + { + "id": "15", + "inside": 5, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.5, + }, + { + "id": "16", + "inside": 5, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.5, + } + ]; + this.GUIDE_INFO = [ + { + "id": "1", + "inside": 3, + "insideType": 1, + "outside": 0, + "outsideType": 1, + "showTime": 10000, + }, + { + "id": "5", + "inside": 0, + "insideType": 1, + "outside": 1, + "outsideType": 1, + "showTime": 10000, + }, + { + "id": "7", + "inside": 0, + "insideType": 1, + "outside": 2, + "outsideType": 1, + "showTime": 10000, + }, + ]; + // this.LEVEL_INFO = [{"id":"0001", //地图ID + // "start":[['r'], ['b'], ['g']], //起始状态 + // "goal":[[], ['r', 'g'], ['b']], //目标状态 + // "middle":[[['b', 'r', 'g'], [], []], [['g'], ['b'], ['r']], [['r', 'b'], ['g'], []]],//中间状态 + // "steps":17 //最大步数 + // }]; + // 0 12 3 + // 312 0 0 2 3 1 13 2 0 + // [2], [1], [3] + // [[2, 1, 3], [], []] + // [[], [2, 3], [1]] + // [[1, 2], [], [3]] + // [[[1], [2, 3], []], + // [[1], [], [3, 2]]] + }; + GameConfig.Authentication = function () { + cc.fx.GameTool.Authentication(); + }; + var GameConfig_1; + //所有控制信息都通过GameAppStart内控制 + GameConfig._instance = null; + GameConfig = GameConfig_1 = __decorate([ + ccclass('GameConfig') + ], GameConfig); + return GameConfig; +}()); +exports.GameConfig = GameConfig; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENvbmZpZ1xcR2FtZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBd0M7QUFJbEMsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFFNUM7SUFBQTtJQXVVQSxDQUFDO21CQXZVWSxVQUFVO0lBdUVuQixzQkFBVyxzQkFBUTtRQVZuQix1QkFBdUI7UUFDdkIseUJBQXlCO1FBQ3pCLGdDQUFnQztRQUNoQywrQkFBK0I7UUFDL0IsMkNBQTJDO1FBQzNDLDRCQUE0QjtRQUM1QixPQUFPO1FBR1AsT0FBTzthQUNQO1lBRUksSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFDMUI7Z0JBQ0ksSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFlBQVUsRUFBRSxDQUFDO2FBQ3JDO1lBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzFCLENBQUM7OztPQUFBO0lBQ0QsZUFBZTtJQUNSLGVBQUksR0FBWCxVQUFZLGNBQWM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQ2hCLENBQUE7UUFFRCxjQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFHLENBQUMsY0FBYztZQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsTUFBTTtJQUNDLHVCQUFZLEdBQW5CO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNYLFFBQVEsRUFBRSxLQUFLO1lBQ2YsU0FB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QzVDLDZDQUE2QztRQUM3Qyw2Q0FBNkM7UUFDN0MsMEdBQTBHO1FBQzFHLHlCQUF5QjtRQUN6QixNQUFNO1FBR04sVUFBVTtRQUNWLDhCQUE4QjtRQUc5QixnQkFBZ0I7UUFDaEIsc0JBQXNCO1FBR3RCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIsdUJBQXVCO1FBQ3ZCLHFCQUFxQjtJQUN6QixDQUFDO0lBR00seUJBQWMsR0FBckI7UUFDSSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNwQyxDQUFDOztJQXJVRCwwQkFBMEI7SUFDWCxvQkFBUyxHQUFnQixJQUFJLENBQUM7SUFGcEMsVUFBVTtRQUR0QixPQUFPLENBQUMsWUFBWSxDQUFDO09BQ1QsVUFBVSxDQXVVdEI7SUFBRCxpQkFBQztDQXZVRCxBQXVVQyxJQUFBO0FBdlVZLGdDQUFVIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2VDaGF0IH0gZnJvbSBcIi4uL1NoYXJlL3NoYXJlXCI7XHJcbmltcG9ydCB7IEdhbWVUb29sIH0gZnJvbSBcIi4uL1Rvb2wvR2FtZVRvb2xcIjtcclxuXHJcblxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5AY2NjbGFzcygnR2FtZUNvbmZpZycpXHJcbmV4cG9ydCBjbGFzcyBHYW1lQ29uZmlnICB7XHJcbiAgICAvL+aJgOacieaOp+WItuS/oeaBr+mDvemAmui/h0dhbWVBcHBTdGFydOWGheaOp+WItlxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlIDogR2FtZUNvbmZpZyA9IG51bGw7XHJcblxyXG4gICAgc3RhdGljIEdBTUVfREFUQTogYW55W107XHJcbiAgICAvL+WFs+WNoeaVsOaNrlxyXG5cclxuXHJcblxyXG4gICAgc3RhdGljIExFVkVMX0lORk86IHtcclxuICAgICAgICBpZDogc3RyaW5nOyAvL+mavuW6pmlkXHJcbiAgICAgICAgaW5zaWRlOiBudW1iZXI7IC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgaW5zaWRlVHlwZTogbnVtYmVyOyAvL+WGheWciOaOkuWIl+W9ouW8jywx77ya5LiA5o6S77yMMu+8muS4gOWIl++8jDPvvJrpmo/mnLpcclxuICAgICAgICBvdXRzaWRlOiBudW1iZXI7IC8v5aSW5ZyI562U5qGI56eN57G75Liq5pWw77yM5aSn5LqOMeaXtu+8jOWhq+a7oeWFtuS7luWbvuahiFxyXG4gICAgICAgIG91dHNpZGVUeXBlOiBudW1iZXI7IC8v5aSW5ZyI5o6S5YiX5b2i5byP77yMMe+8mumdnuWbm+inku+8jDLvvJrlm5vop5IsMzrpmo/mnLpcclxuICAgICAgICBzaG93VGltZTogbnVtYmVyOyAgIC8v5pi+56S65pe26Ze0XHJcbiAgICB9W107XHJcbiAgc3RhdGljIENMSUNLX0RBVEE6IHtcclxuICAgIHR5cGU6IG51bWJlcjsgLy/kuIrkvKDmlbDmja7nsbvlnotcclxuICAgIHN1Y2Nlc3M6IGJvb2xlYW47IC8v5piv5ZCm5q2j56GuXHJcbiAgICByb3VuZDogbnVtYmVyOyAvL+WbnuWQiOaVsOi9ruasoVxyXG4gICAgZHVyYXRpb246IG51bWJlcjsgLy/mnKzova7nlKjml7ZcclxuICAgIHJpZ2h0Q2hvaWNlT3V0ZXI6IGFueVtdOyAvL+WklumDqOato+ehrumAiemhueWdkOagh1xyXG4gICAgdXNlckNob2ljZU91dGVyOiBhbnlbXTsgLy/lpJbpg6jnjqnlrrbpgInpobnlnZDmoIdcclxuICAgIHJpZ2h0Q2hvaWNlSW5uZXI6IGFueVtdOyAvL+WGhemDqOato+ehrumAiemhueWdkOagh1xyXG4gICAgdXNlckNob2ljZUlubmVyOiBhbnlbXTtcclxuICB9O1xyXG4gIHN0YXRpYyBHVUlERV9JTkZPOiB7XHJcbiAgICBpZDogc3RyaW5nOyAvL+mavuW6pmlkXHJcbiAgICBpbnNpZGU6IG51bWJlcjsgLy/lhoXlnIjnrZTmoYjkuKrmlbBcclxuICAgIGluc2lkZVR5cGU6IG51bWJlcjsgLy/lhoXlnIjmjpLliJflvaLlvI8sMe+8muS4gOaOku+8jDLvvJrkuIDliJfvvIwz77ya6ZqP5py6XHJcbiAgICBvdXRzaWRlOiBudW1iZXI7IC8v5aSW5ZyI562U5qGI56eN57G75Liq5pWw77yM5aSn5LqOMeaXtu+8jOWhq+a7oeWFtuS7luWbvuahiFxyXG4gICAgb3V0c2lkZVR5cGU6IG51bWJlcjsgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgc2hvd1RpbWU6IG51bWJlcjtcclxuICB9W107XHJcbiAgc3RhdGljIEdNX0lORk86IHtcclxuICAgIGlzQ3VzdG9tOiBib29sZWFuOyAvL+mAieaLqeWFs+WNoeaooeW8j1xyXG4gICAgbWVhbl9UaW1lOiBudW1iZXI7IC8v5bmz5Z2H5pS+566t6YCf5bqmXHJcbiAgICB0b3RhbDogbnVtYmVyOyAvL+aAu+WFseWvueeahOS4quaVsFxyXG4gICAgY3VyclNlZWQ6IG51bWJlcjsgLy/nlKjkuo7pmo/mnLrmlbDnp43lrZBcclxuICAgIGdhbWVJZDogc3RyaW5nOyAvL+a4uOaIj0lEXHJcbiAgICB1c2VySWQ6IG51bWJlcjsgLy/nlKjmiLdJRFxyXG4gICAgZ3VpZGU6IGJvb2xlYW47IC8v5piv5ZCm5pyJ5byV5a+8XHJcbiAgICB1cmw6IHN0cmluZzsgLy/orr/pl67ln5/lkI1cclxuICAgIHN1Y2Nlc3M6IGJvb2xlYW47IC8v55So5oi35ri45oiP5oiQ5Yqf5LiO5ZCmXHJcbiAgICBtYXRjaElkOiBhbnk7IC8v55So5LqO5Z+L54K55LiK5Lyg55qESURcclxuICAgIGN1c3RvbTogbnVtYmVyOyAvL+eUqOS6jua1i+ivlei3s+WFs+WNoVxyXG4gICAgcm91bmQ6IG51bWJlcjsgLy/lm57lkIjmlbBcclxuICAgIGxldmVsOiBudW1iZXI7IC8v5YW35L2T5ri45oiP6Zq+5bqmXHJcbiAgICBndWlkZV9MZXZlbDogbnVtYmVyOyAvL+W8leWvvOetiee6p1xyXG4gICAgc3RhcnRUaW1lOiBudW1iZXI7IC8v546p5a6256ys5LiA5q2l5pON5L2cXHJcbiAgICByYW5kb206IG51bWJlcjsgLy/lvZPliY3pmr7luqbpmo/mnLrmlbBcclxuICAgIHN0ZXBUaW1lTGlzdDogbnVtYmVyOyAvL+aVtOWxgOa4uOaIj+eUqOaXtu+8jOeUseS6jua2ieWPiuWcuuaZr+WIh+aNou+8jOaVsOaNrumcgOimgeS/neeVmVxyXG4gICAgc3VjY2Vzc0xpc3Q6IGFueVtdOyAvL+aVtOWxgOiDnOi0n1xyXG4gICAgZmVuOiBudW1iZXI7IC8v5bCP5bGA5b6X5YiGXHJcbiAgICBzY29yZTogbnVtYmVyOyAvL+aAu+W+l+WIhlxyXG4gICAgaWduaXRlQ291bnQ6IG51bWJlcjsgLy/njqnlrrbmgLvorqHmiJDlip/ngrnngavmlbBcclxuICAgIG1pbl9TdGVwczogbnVtYmVyOyAvL+avj+asoeS4iuS4gOaKiuacgOWwj+atpeaVsFxyXG4gICAgbWluX1RpbWU6IG51bWJlcjsgLy/mr4/kuIDmiorkuIrmrKHot53nprvmtKrls7DliLDmnaXml7bpl7RcclxuICB9O1xyXG5cclxuICAgIC8vIHN0YXRpYyBMRVZFTF9JTkZPOiB7XHJcbiAgICAvLyAgICAgaWQ6IHN0cmluZzsgLy/lnLDlm75JRFxyXG4gICAgLy8gICAgIHN0YXJ0OiBzdHJpbmdbXVtdOyAvL+i1t+Wni+eKtuaAgVxyXG4gICAgLy8gICAgIGdvYWw6IHN0cmluZ1tdW107IC8v55uu5qCH54q25oCBXHJcbiAgICAvLyAgICAgbWlkZGxlOiBzdHJpbmdbXVtdW107IC8v5Lit6Ze054q25oCBICAgICAgICBcclxuICAgIC8vICAgICBzdGVwczogbnVtYmVyOyAvL+acgOWkp+atpeaVsFxyXG4gICAgLy8gfVtdO1xyXG5cclxuXHJcbiAgICAvL+a4uOaIj+WGheS/oeaBr1xyXG4gICAgc3RhdGljIGdldCBJbnN0YW5jZSgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBHYW1lQ29uZmlnKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcclxuICAgIH1cclxuICAgIC8vZ2V0U2VlZFJhbmRvbVxyXG4gICAgc3RhdGljIGluaXQoQXV0aGVudGljYXRpb24pe1xyXG4gICAgICAgIHRoaXMuQ0xJQ0tfaW5pdCgpO1xyXG4gICAgICAgIHRoaXMuTEVWRUxfSU5GT19pbml0KCk7XHJcbiAgICAgICAgdGhpcy5HTV9JTkZPX2luaXQoKTtcclxuICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgLy9HQU1FX0RBVEEg5bqf5byD5LqG77yM5pqC5pe25LiN5Yig6Zmk5Lul6Ziy5ZCO6Z2i5L+u5pS55ZueIOS4gOaVtOWxgOS8oOS4gOasoVxyXG4gICAgICAgIHRoaXMuR0FNRV9EQVRBID0gW1xyXG4gICAgICAgIF1cclxuXHJcbiAgICAgICAgV2VDaGF0LnNldFNoYXJlKGxvY2F0aW9uLmhyZWYpO1xyXG4gICAgICAgIGlmKCFBdXRoZW50aWNhdGlvbikgc2VsZi5BdXRoZW50aWNhdGlvbigpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvL+aVsOaNruWkh+eUqFxyXG4gICAgc3RhdGljIEdNX0lORk9faW5pdCgpIHtcclxuICAgICAgICB0aGlzLkdNX0lORk8gPSB7XHJcbiAgICAgICAgICAgIGlzQ3VzdG9tOiBmYWxzZSwgICAgICAgICAgICAgLy/pgInmi6nlhbPljaHmqKHlvI9cclxuICAgICAgICAgICAgbWVhbl9UaW1lOiAwLCAgICAgICAgICAgICAgICAvL+W5s+Wdh+aUvueuremAn+W6plxyXG4gICAgICAgICAgICB0b3RhbDogMCwgICAgICAgICAgICAgICAgICAgIC8v5oC75YWx5a+555qE5Liq5pWwXHJcbiAgICAgICAgICAgIGN1cnJTZWVkOiAyMDAwMDAsICAgICAgICAgICAvL+eUqOS6jumaj+acuuaVsOenjeWtkFxyXG4gICAgICAgICAgICBnYW1lSWQ6IFwiMTAwMDE5XCIsICAgICAgICAgICAvL+a4uOaIj0lEXHJcbiAgICAgICAgICAgIHVzZXJJZDogMCwgICAgICAgICAgICAgICAgICAvL+eUqOaIt0lEXHJcbiAgICAgICAgICAgIGd1aWRlOiB0cnVlLCAgICAgICAgICAgICAgICAgLy/mmK/lkKbmnInlvJXlr7xcclxuICAgICAgICAgICAgdXJsOiBcImh0dHBzOi8vYXBpLnNwYXJrdXMuY25cIiwvL+iuv+mXruWfn+WQjVxyXG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSwgICAgICAgICAgICAgLy/nlKjmiLfmuLjmiI/miJDlip/kuI7lkKZcclxuICAgICAgICAgICAgbWF0Y2hJZDogbnVsbCwgICAgICAgICAgICAgIC8v55So5LqO5Z+L54K55LiK5Lyg55qESURcclxuICAgICAgICAgICAgY3VzdG9tOiAwLCAgICAgICAgICAgICAgICAgIC8v55So5LqO5rWL6K+V6Lez5YWz5Y2hXHJcbiAgICAgICAgICAgIHJvdW5kOjAsICAgICAgICAgICAgICAgICAgICAvL+WbnuWQiOaVsFxyXG4gICAgICAgICAgICBsZXZlbDogMCwgICAgICAgICAgICAgICAgICAgLy/lhbfkvZPmuLjmiI/pmr7luqZcclxuICAgICAgICAgICAgZ3VpZGVfTGV2ZWw6NCwgICAgICAgICAgICAgIC8v5byV5a+8562J57qnXHJcbiAgICAgICAgICAgIHN0YXJ0VGltZTotMSwgICAgICAgICAgICAgICAvL+eOqeWutuesrOS4gOatpeaTjeS9nFxyXG4gICAgICAgICAgICByYW5kb206MCwgICAgICAgICAgICAgICAgICAgLy/lvZPliY3pmr7luqbpmo/mnLrmlbBcclxuICAgICAgICAgICAgc3RlcFRpbWVMaXN0OjAsICAgICAgICAgICAgIC8v5pW05bGA5ri45oiP55So5pe277yM55Sx5LqO5raJ5Y+K5Zy65pmv5YiH5o2i77yM5pWw5o2u6ZyA6KaB5L+d55WZXHJcbiAgICAgICAgICAgIHN1Y2Nlc3NMaXN0OltdLCAgICAgICAgICAgICAgLy/mlbTlsYDog5zotJ9cclxuICAgICAgICAgICAgZmVuOjAsICAgICAgICAgICAgICAgICAgICAgIC8v5bCP5bGA5b6X5YiGXHJcbiAgICAgICAgICAgIHNjb3JlOjAsICAgICAgICAgICAgICAgICAgICAvL+aAu+W+l+WIhlxyXG4gICAgICAgICAgICBpZ25pdGVDb3VudDogMCwgICAgICAgICAgICAgLy/njqnlrrbmgLvorqHmiJDlip/ngrnngavmlbBcclxuICAgICAgICAgICAgbWluX1N0ZXBzOjAsICAgICAgICAgICAgICAgIC8v5q+P5qyh5LiK5LiA5oqK5pyA5bCP5q2l5pWwXHJcbiAgICAgICAgICAgIG1pbl9UaW1lOjAgICAgICAgICAgICAgICAgICAvL+avj+S4gOaKiuS4iuasoei3neemu+a0quWzsOWIsOadpeaXtumXtFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgfVxyXG4gICAgc3RhdGljIEdNX0lORk9fU0VUKGtleSx2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuR01fSU5GT1trZXldID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgQ0xJQ0tfaW5pdCgpIHtcclxuICAgICAgICB0aGlzLkNMSUNLX0RBVEEgPVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogMSwgICAgICAgICAgICAvL+S4iuS8oOaVsOaNruexu+Wei1xyXG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSwgICAgIC8v5piv5ZCm5q2j56GuXHJcbiAgICAgICAgICAgIHJvdW5kOiAwLCAgICAgICAgICAgLy/lm57lkIjmlbDova7mrKFcclxuICAgICAgICAgICAgZHVyYXRpb246MCwgICAgICAgICAvL+acrOi9rueUqOaXtlxyXG4gICAgICAgICAgICByaWdodENob2ljZU91dGVyOltdLC8v5aSW6YOo5q2j56Gu6YCJ6aG55Z2Q5qCHXHJcbiAgICAgICAgICAgIHVzZXJDaG9pY2VPdXRlcjpbXSwgLy/lpJbpg6jnjqnlrrbpgInpobnlnZDmoIdcclxuICAgICAgICAgICAgcmlnaHRDaG9pY2VJbm5lcjpbXSwvL+WGhemDqOato+ehrumAiemhueWdkOagh1xyXG4gICAgICAgICAgICB1c2VyQ2hvaWNlSW5uZXI6W10sIC8v5YaF6YOo546p5a626YCJ6aG55Z2Q5qCHXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBDTElDS19TRVQoa2V5LHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5DTElDS19EQVRBW2tleV0gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgTEVWRUxfSU5GT19pbml0KCkge1xyXG4gICAgICAgIHRoaXMuTEVWRUxfSU5GTyA9IFt7XHJcbiAgICAgICAgICAgICBcImlkXCI6XCIxXCIsICAgICAgICAgIC8v6Zq+5bqmaWRcclxuICAgICAgICAgICAgIFwiaW5zaWRlXCI6MywgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgICBcImluc2lkZVR5cGVcIjoxLCAgICAvL+WGheWciOaOkuWIl+W9ouW8jywx77ya5LiA5o6S77yMMu+8muS4gOWIl++8jDPvvJrpmo/mnLpcclxuICAgICAgICAgICAgIFwib3V0c2lkZVwiOjAsICAgICAgIC8v5aSW5ZyI562U5qGI56eN57G75Liq5pWw77yM5aSn5LqOMeaXtu+8jOWhq+a7oeWFtuS7luWbvuahiFxyXG4gICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjEsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICAgXCJzaG93VGltZVwiOjEuMiwgICAgICAvL+aYvuekuuaXtumXtO+8jOenkuS4uuWNleS9jVxyXG4gICAgICAgICAgIH0sXHJcbiAgICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIyXCIsICAgICAgICAgIC8v6Zq+5bqmaWRcclxuICAgICAgICAgICAgXCJpbnNpZGVcIjozLCAgICAgICAgLy/lhoXlnIjnrZTmoYjkuKrmlbBcclxuICAgICAgICAgICAgXCJpbnNpZGVUeXBlXCI6MiwgICAgLy/lhoXlnIjmjpLliJflvaLlvI8sMe+8muS4gOaOku+8jDLvvJrkuIDliJfvvIwz77ya6ZqP5py6XHJcbiAgICAgICAgICAgIFwib3V0c2lkZVwiOjAsICAgICAgIC8v5aSW5ZyI562U5qGI56eN57G75Liq5pWw77yM5aSn5LqOMeaXtu+8jOWhq+a7oeWFtuS7luWbvuahiFxyXG4gICAgICAgICAgICBcIm91dHNpZGVUeXBlXCI6MSwgICAvL+WkluWciOaOkuWIl+W9ouW8j++8jDHvvJrpnZ7lm5vop5LvvIwy77ya5Zub6KeSLDM66ZqP5py6XHJcbiAgICAgICAgICAgIFwic2hvd1RpbWVcIjoxLjIsICAgICAgLy/mmL7npLrml7bpl7TvvIznp5LkuLrljZXkvY1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwiaWRcIjpcIjNcIiwgICAgICAgICAgLy/pmr7luqZpZFxyXG4gICAgICAgICAgICBcImluc2lkZVwiOjMsICAgICAgICAvL+WGheWciOetlOahiOS4quaVsFxyXG4gICAgICAgICAgICBcImluc2lkZVR5cGVcIjozLCAgICAvL+WGheWciOaOkuWIl+W9ouW8jywx77ya5LiA5o6S77yMMu+8muS4gOWIl++8jDPvvJrpmo/mnLpcclxuICAgICAgICAgICAgXCJvdXRzaWRlXCI6MCwgICAgICAgLy/lpJblnIjnrZTmoYjnp43nsbvkuKrmlbDvvIzlpKfkuo4x5pe277yM5aGr5ruh5YW25LuW5Zu+5qGIXHJcbiAgICAgICAgICAgIFwib3V0c2lkZVR5cGVcIjoxLCAgIC8v5aSW5ZyI5o6S5YiX5b2i5byP77yMMe+8mumdnuWbm+inku+8jDLvvJrlm5vop5IsMzrpmo/mnLpcclxuICAgICAgICAgICAgXCJzaG93VGltZVwiOjEsICAgICAgLy/mmL7npLrml7bpl7TvvIznp5LkuLrljZXkvY1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwiaWRcIjpcIjRcIiwgICAgICAgICAgLy/pmr7luqZpZFxyXG4gICAgICAgICAgICBcImluc2lkZVwiOjQsICAgICAgICAvL+WGheWciOetlOahiOS4quaVsFxyXG4gICAgICAgICAgICBcImluc2lkZVR5cGVcIjozLCAgICAvL+WGheWciOaOkuWIl+W9ouW8jywx77ya5LiA5o6S77yMMu+8muS4gOWIl++8jDPvvJrpmo/mnLpcclxuICAgICAgICAgICAgXCJvdXRzaWRlXCI6MCwgICAgICAgLy/lpJblnIjnrZTmoYjnp43nsbvkuKrmlbDvvIzlpKfkuo4x5pe277yM5aGr5ruh5YW25LuW5Zu+5qGIXHJcbiAgICAgICAgICAgIFwib3V0c2lkZVR5cGVcIjoxLCAgIC8v5aSW5ZyI5o6S5YiX5b2i5byP77yMMe+8mumdnuWbm+inku+8jDLvvJrlm5vop5IsMzrpmo/mnLpcclxuICAgICAgICAgICAgXCJzaG93VGltZVwiOjEsICAgICAgLy/mmL7npLrml7bpl7TvvIznp5LkuLrljZXkvY1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwiaWRcIjpcIjVcIiwgICAgICAgICAgLy/pmr7luqZpZFxyXG4gICAgICAgICAgICBcImluc2lkZVwiOjAsICAgICAgICAvL+WGheWciOetlOahiOS4quaVsFxyXG4gICAgICAgICAgICBcImluc2lkZVR5cGVcIjoxLCAgICAvL+WGheWciOaOkuWIl+W9ouW8jywx77ya5LiA5o6S77yMMu+8muS4gOWIl++8jDPvvJrpmo/mnLpcclxuICAgICAgICAgICAgXCJvdXRzaWRlXCI6MSwgICAgICAgLy/lpJblnIjnrZTmoYjnp43nsbvkuKrmlbDvvIzlpKfkuo4x5pe277yM5aGr5ruh5YW25LuW5Zu+5qGIXHJcbiAgICAgICAgICAgIFwib3V0c2lkZVR5cGVcIjoxLCAgIC8v5aSW5ZyI5o6S5YiX5b2i5byP77yMMe+8mumdnuWbm+inku+8jDLvvJrlm5vop5IsMzrpmo/mnLpcclxuICAgICAgICAgICAgXCJzaG93VGltZVwiOjAuOSwgICAgICAvL+aYvuekuuaXtumXtO+8jOenkuS4uuWNleS9jVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJpZFwiOlwiNlwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6MCwgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjEsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjoxLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjIsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MC45LCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCI3XCIsICAgICAgICAgIC8v6Zq+5bqmaWRcclxuICAgICAgICAgICAgXCJpbnNpZGVcIjowLCAgICAgICAgLy/lhoXlnIjnrZTmoYjkuKrmlbBcclxuICAgICAgICAgICAgXCJpbnNpZGVUeXBlXCI6MSwgICAgLy/lhoXlnIjmjpLliJflvaLlvI8sMe+8muS4gOaOku+8jDLvvJrkuIDliJfvvIwz77ya6ZqP5py6XHJcbiAgICAgICAgICAgIFwib3V0c2lkZVwiOjIsICAgICAgIC8v5aSW5ZyI562U5qGI56eN57G75Liq5pWw77yM5aSn5LqOMeaXtu+8jOWhq+a7oeWFtuS7luWbvuahiFxyXG4gICAgICAgICAgICBcIm91dHNpZGVUeXBlXCI6MSwgICAvL+WkluWciOaOkuWIl+W9ouW8j++8jDHvvJrpnZ7lm5vop5LvvIwy77ya5Zub6KeSLDM66ZqP5py6XHJcbiAgICAgICAgICAgIFwic2hvd1RpbWVcIjoxLjIsICAgICAgLy/mmL7npLrml7bpl7TvvIznp5LkuLrljZXkvY1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwiaWRcIjpcIjhcIiwgICAgICAgICAgLy/pmr7luqZpZFxyXG4gICAgICAgICAgICBcImluc2lkZVwiOjAsICAgICAgICAvL+WGheWciOetlOahiOS4quaVsFxyXG4gICAgICAgICAgICBcImluc2lkZVR5cGVcIjoxLCAgICAvL+WGheWciOaOkuWIl+W9ouW8jywx77ya5LiA5o6S77yMMu+8muS4gOWIl++8jDPvvJrpmo/mnLpcclxuICAgICAgICAgICAgXCJvdXRzaWRlXCI6MywgICAgICAgLy/lpJblnIjnrZTmoYjnp43nsbvkuKrmlbDvvIzlpKfkuo4x5pe277yM5aGr5ruh5YW25LuW5Zu+5qGIXHJcbiAgICAgICAgICAgIFwib3V0c2lkZVR5cGVcIjoyLCAgIC8v5aSW5ZyI5o6S5YiX5b2i5byP77yMMe+8mumdnuWbm+inku+8jDLvvJrlm5vop5IsMzrpmo/mnLpcclxuICAgICAgICAgICAgXCJzaG93VGltZVwiOjEuMiwgICAgICAvL+aYvuekuuaXtumXtO+8jOenkuS4uuWNleS9jVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJpZFwiOlwiOVwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6MywgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjEsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjoxLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjEsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS4yLCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIxMFwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6MywgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjIsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjoxLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjIsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS4yLCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIxMVwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6MywgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjEsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjoyLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjEsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS44LCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIxMlwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6MywgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjIsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjoyLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjIsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS44LCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIxM1wiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6NCwgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjMsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjozLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjMsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS44LCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIxNFwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6NCwgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjMsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjozLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjMsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS44LCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIxNVwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6NSwgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjMsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjozLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjMsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS41LCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIxNlwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6NSwgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjMsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjozLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjMsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS41LCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG5cclxuICAgICAgICB0aGlzLkdVSURFX0lORk8gPVtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwiaWRcIjpcIjFcIiwgICAgICAgICAgLy/pmr7luqZpZFxyXG4gICAgICAgICAgICAgIFwiaW5zaWRlXCI6MywgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgICAgXCJpbnNpZGVUeXBlXCI6MSwgICAgLy/lhoXlnIjmjpLliJflvaLlvI8sMe+8muS4gOaOku+8jDLvvJrkuIDliJfvvIwz77ya6ZqP5py6XHJcbiAgICAgICAgICAgICAgXCJvdXRzaWRlXCI6MCwgICAgICAgLy/lpJblnIjnrZTmoYjnp43nsbvkuKrmlbDvvIzlpKfkuo4x5pe277yM5aGr5ruh5YW25LuW5Zu+5qGIXHJcbiAgICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjEsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICAgIFwic2hvd1RpbWVcIjoxMDAwMCwgICAgICAvL+aYvuekuuaXtumXtO+8jOenkuS4uuWNleS9jVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJpZFwiOlwiNVwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgICAgXCJpbnNpZGVcIjowLCAgICAgICAgLy/lhoXlnIjnrZTmoYjkuKrmlbBcclxuICAgICAgICAgICAgICBcImluc2lkZVR5cGVcIjoxLCAgICAvL+WGheWciOaOkuWIl+W9ouW8jywx77ya5LiA5o6S77yMMu+8muS4gOWIl++8jDPvvJrpmo/mnLpcclxuICAgICAgICAgICAgICBcIm91dHNpZGVcIjoxLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgICBcIm91dHNpZGVUeXBlXCI6MSwgICAvL+WkluWciOaOkuWIl+W9ouW8j++8jDHvvJrpnZ7lm5vop5LvvIwy77ya5Zub6KeSLDM66ZqP5py6XHJcbiAgICAgICAgICAgICAgXCJzaG93VGltZVwiOjEwMDAwLCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImlkXCI6XCI3XCIsICAgICAgICAgIC8v6Zq+5bqmaWRcclxuICAgICAgICAgICAgICBcImluc2lkZVwiOjAsICAgICAgICAvL+WGheWciOetlOahiOS4quaVsFxyXG4gICAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjEsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICAgIFwib3V0c2lkZVwiOjIsICAgICAgIC8v5aSW5ZyI562U5qGI56eN57G75Liq5pWw77yM5aSn5LqOMeaXtu+8jOWhq+a7oeWFtuS7luWbvuahiFxyXG4gICAgICAgICAgICAgIFwib3V0c2lkZVR5cGVcIjoxLCAgIC8v5aSW5ZyI5o6S5YiX5b2i5byP77yMMe+8mumdnuWbm+inku+8jDLvvJrlm5vop5IsMzrpmo/mnLpcclxuICAgICAgICAgICAgICBcInNob3dUaW1lXCI6MTAwMDAsICAgICAgLy/mmL7npLrml7bpl7TvvIznp5LkuLrljZXkvY1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdXHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gdGhpcy5MRVZFTF9JTkZPID0gW3tcImlkXCI6XCIwMDAxXCIsICAgLy/lnLDlm75JRFxyXG4gICAgICAgIC8vICAgICBcInN0YXJ0XCI6W1snciddLCBbJ2InXSwgWydnJ11dLCAgLy/otbflp4vnirbmgIFcclxuICAgICAgICAvLyAgICAgXCJnb2FsXCI6W1tdLCBbJ3InLCAnZyddLCBbJ2InXV0sIC8v55uu5qCH54q25oCBXHJcbiAgICAgICAgLy8gICAgIFwibWlkZGxlXCI6W1tbJ2InLCAncicsICdnJ10sIFtdLCBbXV0sIFtbJ2cnXSwgWydiJ10sIFsnciddXSwgW1sncicsICdiJ10sIFsnZyddLCBbXV1dLC8v5Lit6Ze054q25oCBICAgICAgICBcclxuICAgICAgICAvLyAgICAgXCJzdGVwc1wiOjE3ICAvL+acgOWkp+atpeaVsFxyXG4gICAgICAgIC8vIH1dO1xyXG5cclxuICAgIFxyXG4gICAgICAgIC8vIDAgIDEyIDNcclxuICAgICAgICAvLyAzMTIgMCAgMCAgIDIgMyAxICAgICAxMyAyIDBcclxuXHJcblxyXG4gICAgICAgIC8vIFsyXSwgWzFdLCBbM11cclxuICAgICAgICAvLyBbWzIsIDEsIDNdLCBbXSwgW11dXHJcblxyXG5cclxuICAgICAgICAvLyBbW10sIFsyLCAzXSwgWzFdXVxyXG4gICAgICAgIC8vIFtbMSwgMl0sIFtdLCBbM11dXHJcbiAgICAgICAgLy8gW1tbMV0sIFsyLCAzXSwgW11dLCBcclxuICAgICAgICAvLyBbWzFdLCBbXSwgWzMsIDJdXV1cclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhdGljIEF1dGhlbnRpY2F0aW9uKCl7XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuQXV0aGVudGljYXRpb24oKTtcclxuICAgIH1cclxufVxyXG5cclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Notification/Notification.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '55403VjGlpPL564gsdiZBg3', 'Notification'); +// Script/module/Notification/Notification.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Notifications = void 0; +//全局通知 +var Notifications = { + _eventMap: [], + on: function (masgId, callback, target) { + if (this._eventMap[masgId] === undefined) { + this._eventMap[masgId] = []; + } + this._eventMap[masgId].push({ callback: callback, target: target }); + }, + emit: function (masgId, parameter) { + var array = this._eventMap[masgId]; + if (array === undefined) + return; + for (var i = 0; i < array.length; i++) { + var element = array[i]; + if (element) + element.callback.call(element.target, parameter); + } + }, + off: function (masgId, callback) { + var array = this._eventMap[masgId]; + if (array === undefined) + return; + for (var i = 0; i < array.length; i++) { + var element = array[i]; + if (element && element.callback === callback) { + array[i] = undefined; + break; + } + } + }, + offMasgId: function (masgId) { + this._eventMap[masgId] = undefined; + }, + removeAllMsg: function () { + for (var k in this._eventMap) { + if (this._eventMap[k]) { + this.offMasgId(k); + } + } + } +}; +exports.Notifications = Notifications; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE5vdGlmaWNhdGlvblxcTm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE1BQU07QUFDTixJQUFJLGFBQWEsR0FBRztJQUNoQixTQUFTLEVBQUUsRUFBRTtJQUNiLEVBQUUsRUFBRSxVQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTTtRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFJLEVBQUUsVUFBVSxNQUFNLEVBQUUsU0FBUztRQUM3QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBRWhDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU87Z0JBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNqRTtJQUNMLENBQUM7SUFFRCxHQUFHLEVBQUUsVUFBVSxNQUFNLEVBQUUsUUFBUTtRQUMzQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtnQkFDMUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztnQkFDckIsTUFBTTthQUNUO1NBQ0o7SUFDTCxDQUFDO0lBRUQsU0FBUyxFQUFFLFVBQVUsTUFBTTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWSxFQUFFO1FBQ1YsS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQjtTQUNKO0lBQ0wsQ0FBQztDQUNKLENBQUM7QUFDTyxzQ0FBYSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v5YWo5bGA6YCa55+lXG52YXIgTm90aWZpY2F0aW9ucyA9IHtcbiAgICBfZXZlbnRNYXA6IFtdLFxuICAgIG9uOiBmdW5jdGlvbiAobWFzZ0lkLCBjYWxsYmFjaywgdGFyZ2V0KSB7XG4gICAgICAgIGlmICh0aGlzLl9ldmVudE1hcFttYXNnSWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50TWFwW21hc2dJZF0gPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdLnB1c2goeyBjYWxsYmFjazogY2FsbGJhY2ssIHRhcmdldDogdGFyZ2V0IH0pO1xuICAgIH0sXG5cbiAgICBlbWl0OiBmdW5jdGlvbiAobWFzZ0lkLCBwYXJhbWV0ZXIpIHtcbiAgICAgICAgbGV0IGFycmF5ID0gdGhpcy5fZXZlbnRNYXBbbWFzZ0lkXTtcbiAgICAgICAgaWYgKGFycmF5ID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9IGFycmF5W2ldO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQpIGVsZW1lbnQuY2FsbGJhY2suY2FsbChlbGVtZW50LnRhcmdldCwgcGFyYW1ldGVyKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBvZmY6IGZ1bmN0aW9uIChtYXNnSWQsIGNhbGxiYWNrKSB7XG4gICAgICAgIGxldCBhcnJheSA9IHRoaXMuX2V2ZW50TWFwW21hc2dJZF07XG4gICAgICAgIGlmIChhcnJheSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gYXJyYXlbaV07XG4gICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNhbGxiYWNrID09PSBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGFycmF5W2ldID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIG9mZk1hc2dJZDogZnVuY3Rpb24gKG1hc2dJZCkge1xuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdID0gdW5kZWZpbmVkO1xuICAgIH0sXG5cbiAgICByZW1vdmVBbGxNc2c6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yIChsZXQgayBpbiB0aGlzLl9ldmVudE1hcCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2V2ZW50TWFwW2tdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vZmZNYXNnSWQoayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuZXhwb3J0IHsgTm90aWZpY2F0aW9ucyB9OyJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/RankList/ItemRender.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'ca0f9k0oBVDbpQC+OMNTF3m', 'ItemRender'); +// Script/module/RankList/ItemRender.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var ItemRender = /** @class */ (function (_super) { + __extends(ItemRender, _super); + function ItemRender() { + var _this = _super !== null && _super.apply(this, arguments) || this; + /**数据 */ + _this.data = null; + /**索引 0表示第一项*/ + _this.itemIndex = 0; + return _this; + } + /**数据改变时调用 */ + ItemRender.prototype.dataChanged = function () { + cc.fx.GameTool.subName(this.data.name, 6); + this.node.getChildByName("rankLab").getComponent(cc.Label).string = this.data.rank + ""; + this.node.getChildByName("nameLab").getComponent(cc.Label).string = this.data.name + ""; + this.node.getChildByName("totalLab").getComponent(cc.Label).string = this.data.total; + var timeTemp = cc.fx.GameTool.getTimeShenNong(this.data.time); + // this.node.getChildByName("timeLab").getComponent(cc.Label).string = timeTemp + ""; + this.node.getChildByName("rank").getChildByName("one").active = false; + this.node.getChildByName("rank").getChildByName("two").active = false; + this.node.getChildByName("rank").getChildByName("three").active = false; + if (this.data.rank == 1) { + this.node.getChildByName("rank").getChildByName("one").active = true; + this.node.getChildByName("rankLab").active = false; + } + else if (this.data.rank == 2) { + this.node.getChildByName("rank").getChildByName("two").active = true; + this.node.getChildByName("rankLab").active = false; + } + else if (this.data.rank == 3) { + this.node.getChildByName("rank").getChildByName("three").active = true; + this.node.getChildByName("rankLab").active = false; + } + else { + this.node.getChildByName("rankLab").active = true; + } + this.setPic(); + }; + ItemRender.prototype.setPic = function () { + var _this = this; + this.node.getChildByName("pic").getChildByName("icon").active = false; + this.node.getChildByName("pic").getChildByName("pic").active = false; + var self = this; + var url = this.data.pic; + fetch(url) + .then(function (response) { + return response.headers.get('Content-Length'); + }) + .then(function (errNo) { + // console.log(this.data.rank,'X-Info:', errNo); // 输出X-ErrNo的值 + if (errNo == "5093") { + // console.log(this.data.rank,"没头像"); + _this.node.getChildByName("pic").getChildByName("icon").active = true; + } + }) + .catch(function (error) { + // console.error('Error fetching X-Info:', error); + }); + cc.assetManager.loadRemote(url, { ext: '.png' }, function (err, texture) { + if (texture) { + _this.node.getChildByName("pic").getChildByName("pic").active = true; + var sprite = _this.node.getChildByName("pic").getChildByName("pic").getComponent(cc.Sprite); + sprite.spriteFrame = new cc.SpriteFrame(texture); + // console.log(this.data.rank,"设置头像成功",err); + } + else { + // console.log("设置头像失败",url); + console.log(err, texture); + } + }); + }; + ItemRender = __decorate([ + ccclass + ], ItemRender); + return ItemRender; +}(cc.Component)); +exports.default = ItemRender; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFJhbmtMaXN0XFxJdGVtUmVuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdNLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXdDLDhCQUFZO0lBQXBEO1FBQUEscUVBcUVDO1FBcEVHLFFBQVE7UUFDRCxVQUFJLEdBQU8sSUFBSSxDQUFDO1FBQ3ZCLGNBQWM7UUFDUCxlQUFTLEdBQVUsQ0FBQyxDQUFDOztJQWlFaEMsQ0FBQztJQS9ERyxhQUFhO0lBQ04sZ0NBQVcsR0FBbEI7UUFDSSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNyRixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMs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LENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsRUFBQyxVQUFDLEdBQUcsRUFBRSxPQUFvQjtZQUNuRSxJQUFHLE9BQU8sRUFBQztnQkFDUCxLQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFFLElBQUksQ0FBQztnQkFDbkUsSUFBSSxNQUFNLEdBQUcsS0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNGLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqRCw0Q0FBNEM7YUFDL0M7aUJBQ0c7Z0JBQ0EsNkJBQTZCO2dCQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBQyxPQUFPLENBQUMsQ0FBQTthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQWxFZ0IsVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQXFFOUI7SUFBRCxpQkFBQztDQXJFRCxBQXFFQyxDQXJFdUMsRUFBRSxDQUFDLFNBQVMsR0FxRW5EO2tCQXJFb0IsVUFBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgTGlzdCwgeyBMaXN0VHlwZSB9IGZyb20gXCIuL0xpc3RcIjtcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJdGVtUmVuZGVyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIC8qKuaVsOaNriAqL1xyXG4gICAgcHVibGljIGRhdGE6YW55ID0gbnVsbDtcclxuICAgIC8qKue0ouW8lSAw6KGo56S656ys5LiA6aG5Ki9cclxuICAgIHB1YmxpYyBpdGVtSW5kZXg6bnVtYmVyID0gMDsgICAgXHJcblxyXG4gICAgLyoq5pWw5o2u5pS55Y+Y5pe26LCD55SoICovXHJcbiAgICBwdWJsaWMgZGF0YUNoYW5nZWQoKXtcclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5zdWJOYW1lKHRoaXMuZGF0YS5uYW1lLDYpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLmRhdGEucmFuayArIFwiXCI7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibmFtZUxhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGF0YS5uYW1lICsgXCJcIjtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0b3RhbExhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGF0YS50b3RhbDtcclxuICAgICAgICBsZXQgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lU2hlbk5vbmcodGhpcy5kYXRhLnRpbWUpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcCArIFwiXCI7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBpZih0aGlzLmRhdGEucmFuayA9PSAxKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMuZGF0YS5yYW5rID09IDIpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5kYXRhLnJhbmsgPT0gMyl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0UGljKCk7XHJcbiAgICB9ICAgXHJcbiAgICBcclxuICAgIHB1YmxpYyBzZXRQaWMoKXtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5hY3RpdmU9IGZhbHNlO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICBsZXQgdXJsID0gdGhpcy5kYXRhLnBpYztcclxuICAgICAgICBmZXRjaCh1cmwpXHJcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtTGVuZ3RoJyk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEucmFuaywnWC1JbmZvOicsIGVyck5vKTsgLy8g6L6T5Ye6WC1FcnJOb+eahOWAvFxyXG4gICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEucmFuayxcIuayoeWktOWDj1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5hY3RpdmU9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB2YXIgc3ByaXRlID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicGljXCIpLmdldENoaWxkQnlOYW1lKFwicGljXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgc3ByaXRlLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5kYXRhLnJhbmssXCLorr7nva7lpLTlg4/miJDlip9cIixlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuiuvue9ruWktOWDj+Wksei0pVwiLHVybCk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIsdGV4dHVyZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxufVxyXG4iXX0= +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/GameStart/GameAppStart.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '61d4ccY2ztLMYIh8WvqPPAw', 'GameAppStart'); +// Script/module/GameStart/GameAppStart.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var GameConfig_1 = require("../Config/GameConfig"); +var HttpUtil_1 = require("../Crypto/HttpUtil"); +var AudioManager_1 = require("../Music/AudioManager"); +var Notification_1 = require("../Notification/Notification"); +var Storage_1 = require("../Storage/Storage"); +var GameTool_1 = require("../Tool/GameTool"); +window.initMgr = function () { + if (cc.fx) { + return; + } + cc.fx = {}; + //基础状态信息 + cc.fx.StateInfo = { + debugMode: true, + networkConnected: true, + networkType: 'none', + isOnForeground: true //当前是否是在前台 + }; + //应用系统信息 + //配置文件 + cc.fx.GameConfig = GameConfig_1.GameConfig; + cc.fx.HttpUtil = HttpUtil_1.default; + cc.fx.GameTool = GameTool_1.GameTool; + cc.fx.AudioManager = AudioManager_1.default; + cc.fx.Notifications = Notification_1.Notifications; + cc.fx.StorageMessage = Storage_1.StorageMessage; + cc.fx.ShareInfo = { + queryId: -1 //分享id + }; + cc.fx.Message = { + control: "10001", + startGame: "10002", + next: "10003", + changePath: "10004", + changeMap: "10005", + nextWater: "10006", + addEnd: "10007", + setData: "10008", + guideNext: "10009", + showResult: "10010", + removeTip: "10011" //执行撤回或者后退动作,移除提示 + }; + /* + * 客户端埋点分享类型 + */ + cc.fx.BurialShareType = { + Default: "default", + Invite: "invite", + DailyInviteRoomJoin: 'invite_join_room', + DailyInviteFriend: 'invite_friend', + DailyInviteGroup: 'invate_group', + DailyInviteGroupAlive: 'invate_alive', + DailyInviteGroupReward: 'invate_rewared', + DailyInviteGroupBox: 'invate_box', + DailyInviteGroupBall: 'invate_ball', + MatchResult: 'matchResult', + MatchFix5: 'MatchFix5', + MatchFix20: 'MatchFix20', + MatchFix100: 'MatchFix100', + MatchFix500: 'MatchFix500', + NewerRedEnvelope: 'newerRedEnvelope', + CoinRoomResult: 'coinRoomResult', + HighRate: "highRate", + CoinRoomWinStreak: 'coinRoomWinStreak', + CoinRoomBankruptcy1: 'coinRoomBankruptcy1', + CoinRoomBankruptcy2: 'coinRoomBankruptcy2', + CoinRoomBankruptcy3: 'coinRoomBankruptcy3', + }; + /* + * 分享到哪儿给奖励 group frined all + */ + cc.fx.ShareWhereReward = { + Group: "group", + Friend: "friend", + All: "all", + }; + //用于存储消息的ID + cc.fx.storageType = cc.Enum({ + storageTypeCustom: 1000101, + }); + //用于存储提示语 按照步骤提示 + cc.fx.tipType = cc.Enum({ + tipOne: '神农氏回到家中,开始整理今天收集来的物品。当他第一次拿出或说出一种植物时,请告诉他这是新植物。', + tipTwo: '如果他拿出或说出的植物你今天看到过,请告诉他上次是看到的;如果你听他说过,则请告诉他上次是听到的。', + tipErrNew: '这是这局游戏第一次出现{植物}', + tipErrOld: '{植物}刚才出现过呢', + tipErrHear: '上次遇到{植物}时,似乎不是听到的吧', + tipErrSee: '上次遇到{植物}时,似乎不是看到的吧', + tipErrLast: '之前确实看到过{植物},但最近一次似乎不是看到的呢', + }); +}; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXEdhbWVTdGFydFxcR2FtZUFwcFN0YXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWtEO0FBQ2xELCtDQUEwQztBQUMxQyxzREFBaUQ7QUFDakQsNkRBQTZEO0FBQzdELDhDQUFvRDtBQUNwRCw2Q0FBNEM7QUFHNUMsTUFBTSxDQUFDLE9BQU8sR0FBRztJQUNiLElBQUcsRUFBRSxDQUFDLEVBQUUsRUFDUjtRQUNJLE9BQU87S0FDVjtJQUNELEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBR1gsUUFBUTtJQUNSLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHO1FBQ2QsU0FBUyxFQUFFLElBQUk7UUFDZixnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLFdBQVcsRUFBRSxNQUFNO1FBQ25CLGNBQWMsRUFBRSxJQUFJLENBQU0sVUFBVTtLQUN2QyxDQUFDO0lBRUYsUUFBUTtJQUNSLE1BQU07SUFFTixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsR0FBRyx1QkFBVSxDQUFDO0lBQzlCLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxHQUFHLGtCQUFRLENBQUM7SUFDMUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEdBQUcsbUJBQVEsQ0FBQztJQUMxQixFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksR0FBRyxzQkFBWSxDQUFDO0lBQ2xDLEVBQUUsQ0FBQyxFQUFFLENBQUMsYUFBYSxHQUFHLDRCQUFhLENBQUM7SUFDcEMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEdBQUcsd0JBQWMsQ0FBQztJQUV0QyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsR0FBRztRQUNkLE9BQU8sRUFBRyxDQUFDLENBQUMsQ0FBYyxNQUFNO0tBQ25DLENBQUM7SUFFRixFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRztRQUNaLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFNBQVMsRUFBQyxPQUFPO1FBQ2pCLElBQUksRUFBRSxPQUFPO1FBQ2IsVUFBVSxFQUFFLE9BQU87UUFDbkIsU0FBUyxFQUFFLE9BQU87UUFDbEIsU0FBUyxFQUFFLE9BQU87UUFDbEIsTUFBTSxFQUFFLE9BQU87UUFDZixPQUFPLEVBQUUsT0FBTztRQUNoQixTQUFTLEVBQUUsT0FBTztRQUNsQixVQUFVLEVBQUUsT0FBTztRQUNuQixTQUFTLEVBQUUsT0FBTyxDQUFVLGlCQUFpQjtLQUNoRCxDQUFBO0lBRUQ7O01BRUU7SUFDRixFQUFFLENBQUMsRUFBRSxDQUFDLGVBQWUsR0FBRztRQUNwQixPQUFPLEVBQUcsU0FBUztRQUNuQixNQUFNLEVBQUcsUUFBUTtRQUVqQixtQkFBbUIsRUFBQyxrQkFBa0I7UUFDdEMsaUJBQWlCLEVBQUcsZUFBZTtRQUNuQyxnQkFBZ0IsRUFBRyxjQUFjO1FBQ2pDLHFCQUFxQixFQUFFLGNBQWM7UUFDckMsc0JBQXNCLEVBQUUsZ0JBQWdCO1FBQ3hDLG1CQUFtQixFQUFFLFlBQVk7UUFDakMsb0JBQW9CLEVBQUUsYUFBYTtRQUVuQyxXQUFXLEVBQUcsYUFBYTtRQUMzQixTQUFTLEVBQUUsV0FBVztRQUN0QixVQUFVLEVBQUUsWUFBWTtRQUN4QixXQUFXLEVBQUUsYUFBYTtRQUMxQixXQUFXLEVBQUUsYUFBYTtRQUMxQixnQkFBZ0IsRUFBRSxrQkFBa0I7UUFDcEMsY0FBYyxFQUFFLGdCQUFnQjtRQUNoQyxRQUFRLEVBQUcsVUFBVTtRQUNyQixpQkFBaUIsRUFBRSxtQkFBbUI7UUFDdEMsbUJBQW1CLEVBQUUscUJBQXFCO1FBQzFDLG1CQUFtQixFQUFFLHFCQUFxQjtRQUMxQyxtQkFBbUIsRUFBRSxxQkFBcUI7S0FDN0MsQ0FBQztJQUVGOztPQUVHO0lBQ0gsRUFBRSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsR0FBRztRQUNyQixLQUFLLEVBQUUsT0FBTztRQUNkLE1BQU0sRUFBRyxRQUFRO1FBQ2pCLEdBQUcsRUFBRyxLQUFLO0tBQ2QsQ0FBQztJQUVGLFdBQVc7SUFDWCxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQzNCLGlCQUFpQixFQUFFLE9BQU87S0FDN0IsQ0FBQyxDQUFDO0lBRUEsaUJBQWlCO0lBQ2pCLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDcEIsTUFBTSxFQUFFLGlEQUFpRDtRQUN6RCxNQUFNLEVBQUUsbURBQW1EO1FBQzNELFNBQVMsRUFBRSxpQkFBaUI7UUFDNUIsU0FBUyxFQUFFLFlBQVk7UUFDdkIsVUFBVSxFQUFFLG9CQUFvQjtRQUNoQyxTQUFTLEVBQUUsb0JBQW9CO1FBQy9CLFVBQVUsRUFBRSwyQkFBMkI7S0FFMUMsQ0FBQyxDQUFDO0FBRVAsQ0FBQyxDQUFDIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2FtZUNvbmZpZyB9IGZyb20gXCIuLi9Db25maWcvR2FtZUNvbmZpZ1wiO1xyXG5pbXBvcnQgSHR0cFV0aWwgZnJvbSBcIi4uL0NyeXB0by9IdHRwVXRpbFwiO1xyXG5pbXBvcnQgQXVkaW9NYW5hZ2VyIGZyb20gXCIuLi9NdXNpYy9BdWRpb01hbmFnZXJcIjtcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9ucyB9IGZyb20gXCIuLi9Ob3RpZmljYXRpb24vTm90aWZpY2F0aW9uXCI7XHJcbmltcG9ydCB7IFN0b3JhZ2VNZXNzYWdlIH0gZnJvbSBcIi4uL1N0b3JhZ2UvU3RvcmFnZVwiO1xyXG5pbXBvcnQgeyBHYW1lVG9vbCB9IGZyb20gXCIuLi9Ub29sL0dhbWVUb29sXCI7XHJcblxyXG5cclxud2luZG93LmluaXRNZ3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGlmKGNjLmZ4KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNjLmZ4ID0ge307XHJcblxyXG5cclxuICAgIC8v5Z+656GA54q25oCB5L+h5oGvXHJcbiAgICBjYy5meC5TdGF0ZUluZm8gPSB7XHJcbiAgICAgICAgZGVidWdNb2RlOiB0cnVlLFxyXG4gICAgICAgIG5ldHdvcmtDb25uZWN0ZWQ6IHRydWUsICAgLy/nvZHnu5znirbmgIFcclxuICAgICAgICBuZXR3b3JrVHlwZTogJ25vbmUnLCAgICAgIC8v572R57uc57G75Z6LXHJcbiAgICAgICAgaXNPbkZvcmVncm91bmQ6IHRydWUgICAgICAvL+W9k+WJjeaYr+WQpuaYr+WcqOWJjeWPsFxyXG4gICAgfTtcclxuXHJcbiAgICAvL+W6lOeUqOezu+e7n+S/oeaBr1xyXG4gICAgLy/phY3nva7mlofku7ZcclxuXHJcbiAgICBjYy5meC5HYW1lQ29uZmlnID0gR2FtZUNvbmZpZztcclxuICAgIGNjLmZ4Lkh0dHBVdGlsID0gSHR0cFV0aWw7XHJcbiAgICBjYy5meC5HYW1lVG9vbCA9IEdhbWVUb29sO1xyXG4gICAgY2MuZnguQXVkaW9NYW5hZ2VyID0gQXVkaW9NYW5hZ2VyO1xyXG4gICAgY2MuZnguTm90aWZpY2F0aW9ucyA9IE5vdGlmaWNhdGlvbnM7XHJcbiAgICBjYy5meC5TdG9yYWdlTWVzc2FnZSA9IFN0b3JhZ2VNZXNzYWdlO1xyXG5cclxuICAgIGNjLmZ4LlNoYXJlSW5mbyA9IHtcclxuICAgICAgICBxdWVyeUlkIDogLTEgICAgICAgICAgICAgIC8v5YiG5LqraWRcclxuICAgIH07XHJcblxyXG4gICAgY2MuZnguTWVzc2FnZSA9IHtcclxuICAgICAgICBjb250cm9sOiBcIjEwMDAxXCIsICAgICAgIC8v5Lyg6YCS5pON5L2c5o6n5Yi2XHJcbiAgICAgICAgc3RhcnRHYW1lOlwiMTAwMDJcIiwgICAgICAvL+S8oOmAkuW8gOWni+W7uuetkVxyXG4gICAgICAgIG5leHQ6IFwiMTAwMDNcIiAsICAgICAgICAgIC8v5Lyg6YCS5omn6KGM5LiL5LiA5Liq5qC85a2Q5rSq5rC05rWB6L+HXHJcbiAgICAgICAgY2hhbmdlUGF0aDogXCIxMDAwNFwiLCAgICAgICAvL+S8oOmAkuaTjeS9nOaOp+WItlxyXG4gICAgICAgIGNoYW5nZU1hcDogXCIxMDAwNVwiLCAgICAgICAgIC8v5pS55Y+Y6YKj5Zyw5Zu+XHJcbiAgICAgICAgbmV4dFdhdGVyOiBcIjEwMDA2XCIgLCAgICAgICAgICAvL+S8oOmAkuaJp+ihjOS4i+S4gOS4quagvOWtkOa0quawtOa1gei/h1xyXG4gICAgICAgIGFkZEVuZDogXCIxMDAwN1wiICwgICAgICAgICAgLy/mt7vliqDnu5PmnZ/ngrlcclxuICAgICAgICBzZXREYXRhOiBcIjEwMDA4XCIgLCAgICAgICAgIC8v5LiK5Lyg5YiG5pWwXHJcbiAgICAgICAgZ3VpZGVOZXh0OiBcIjEwMDA5XCIgLCAgICAgICAgLy/lvJXlr7zov5vlhaXkuIvkuIDmraVcclxuICAgICAgICBzaG93UmVzdWx0OiBcIjEwMDEwXCIsICAgICAgICAgIC8v5bGV56S65rK75rC057uT5p6cXHJcbiAgICAgICAgcmVtb3ZlVGlwOiBcIjEwMDExXCIgICAgICAgICAgLy/miafooYzmkqTlm57miJbogIXlkI7pgIDliqjkvZzvvIznp7vpmaTmj5DnpLpcclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgICAgICog5a6i5oi356uv5Z+L54K55YiG5Lqr57G75Z6LXHJcbiAgICAqL1xyXG4gICAgY2MuZnguQnVyaWFsU2hhcmVUeXBlID0ge1xyXG4gICAgICAgIERlZmF1bHQgOiBcImRlZmF1bHRcIiwgICAgICAgIC8v6buY6K6k5YiG5Lqr57G75Z6LLOWIhuS6q+WIsOe+pFxyXG4gICAgICAgIEludml0ZSA6IFwiaW52aXRlXCIsICAgICAgICAgIC8vIOmCgOivt+WlveWPi1xyXG5cclxuICAgICAgICBEYWlseUludml0ZVJvb21Kb2luOidpbnZpdGVfam9pbl9yb29tJywgLy/pgoDor7flpb3lj4vliqDlhaVcclxuICAgICAgICBEYWlseUludml0ZUZyaWVuZCA6ICdpbnZpdGVfZnJpZW5kJywgLy8g5pel5bi46YKA6K+35aW95Y+LXHJcbiAgICAgICAgRGFpbHlJbnZpdGVHcm91cCA6ICdpbnZhdGVfZ3JvdXAnLCAvLyDml6XluLjliIbkuqvnvqRcclxuICAgICAgICBEYWlseUludml0ZUdyb3VwQWxpdmU6ICdpbnZhdGVfYWxpdmUnLCAvL+aXpeW4uOWIhuS6q+e+pOWkjea0u1xyXG4gICAgICAgIERhaWx5SW52aXRlR3JvdXBSZXdhcmQ6ICdpbnZhdGVfcmV3YXJlZCcsLy/liIbkuqvlpZblirHnv7vlgI1cclxuICAgICAgICBEYWlseUludml0ZUdyb3VwQm94OiAnaW52YXRlX2JveCcsICAvL+WuneeuseWIhuS6q+WlluWKsVxyXG4gICAgICAgIERhaWx5SW52aXRlR3JvdXBCYWxsOiAnaW52YXRlX2JhbGwnLCAgLy/liIbkuqvpooblj5bnkIPnkINcclxuXHJcbiAgICAgICAgTWF0Y2hSZXN1bHQgOiAnbWF0Y2hSZXN1bHQnLCAgLy8g5q+U6LWb57uT566X5YiG5LqrXHJcbiAgICAgICAgTWF0Y2hGaXg1OiAnTWF0Y2hGaXg1JywgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDXlhYPnuqLljIXotZtcclxuICAgICAgICBNYXRjaEZpeDIwOiAnTWF0Y2hGaXgyMCcsICAgICAgICAgICAgICAgICAgICAgICAgLy8gMjDlhYPnuqLljIXotZtcclxuICAgICAgICBNYXRjaEZpeDEwMDogJ01hdGNoRml4MTAwJywgICAgICAgICAgICAgICAgICAgICAgLy8gMTAw5YWD57qi5YyF6LWbXHJcbiAgICAgICAgTWF0Y2hGaXg1MDA6ICdNYXRjaEZpeDUwMCcsICAgICAgICAgICAgICAgICAgICAgIC8vIDUwMOWFg+e6ouWMhei1m1xyXG4gICAgICAgIE5ld2VyUmVkRW52ZWxvcGU6ICduZXdlclJlZEVudmVsb3BlJywgICAgICAgICAgICAvLyDmlrDmiYvnuqLljIVcclxuICAgICAgICBDb2luUm9vbVJlc3VsdDogJ2NvaW5Sb29tUmVzdWx0JywgICAgICAgICAgICAgICAgLy8g6YeR5biB5qGM57uT566XXHJcbiAgICAgICAgSGlnaFJhdGUgOiBcImhpZ2hSYXRlXCIsLy/pq5jlgI3liIbkuqtcclxuICAgICAgICBDb2luUm9vbVdpblN0cmVhazogJ2NvaW5Sb29tV2luU3RyZWFrJywgICAgICAgICAvLyDov57og5xcclxuICAgICAgICBDb2luUm9vbUJhbmtydXB0Y3kxOiAnY29pblJvb21CYW5rcnVwdGN5MScsICAgICAgICAgLy8g6YeR5biB5qGM56C05LqnXHJcbiAgICAgICAgQ29pblJvb21CYW5rcnVwdGN5MjogJ2NvaW5Sb29tQmFua3J1cHRjeTInLCAgICAgICAgIC8vIOmHkeW4geahjOegtOS6p1xyXG4gICAgICAgIENvaW5Sb29tQmFua3J1cHRjeTM6ICdjb2luUm9vbUJhbmtydXB0Y3kzJywgICAgICAgICAvLyDph5HluIHmoYznoLTkuqdcclxuICAgIH07XHJcblxyXG4gICAgLypcclxuICAgICAqIOWIhuS6q+WIsOWTquWEv+e7meWlluWKsSBncm91cCBmcmluZWQgYWxsXHJcbiAgICAgKi9cclxuICAgIGNjLmZ4LlNoYXJlV2hlcmVSZXdhcmQgPSB7XHJcbiAgICAgICAgR3JvdXAgOlwiZ3JvdXBcIiwgLy/lvq7kv6HnvqRcclxuICAgICAgICBGcmllbmQgOiBcImZyaWVuZFwiLC8v5aW95Y+LXHJcbiAgICAgICAgQWxsIDogXCJhbGxcIiwgLy/kuI3ljLrliIZcclxuICAgIH07XHJcblxyXG4gICAgLy/nlKjkuo7lrZjlgqjmtojmga/nmoRJRFxyXG4gICAgY2MuZnguc3RvcmFnZVR5cGUgPSBjYy5FbnVtKHtcclxuXHQgICAgc3RvcmFnZVR5cGVDdXN0b206IDEwMDAxMDEsIC8v55So5LqO5a2Y5YKo5YWz5Y2h562J57qnXHJcblx0fSk7XHJcblxyXG4gICAgLy/nlKjkuo7lrZjlgqjmj5DnpLror60gIOaMieeFp+atpemqpOaPkOekulxyXG4gICAgY2MuZngudGlwVHlwZSA9IGNjLkVudW0oe1xyXG4gICAgICAgIHRpcE9uZTogJ+elnuWGnOawj+WbnuWIsOWutuS4re+8jOW8gOWni+aVtOeQhuS7iuWkqeaUtumbhuadpeeahOeJqeWTgeOAguW9k+S7luesrOS4gOasoeaLv+WHuuaIluivtOWHuuS4gOenjeakjeeJqeaXtu+8jOivt+WRiuivieS7lui/meaYr+aWsOakjeeJqeOAgicsXHJcbiAgICAgICAgdGlwVHdvOiAn5aaC5p6c5LuW5ou/5Ye65oiW6K+05Ye655qE5qSN54mp5L2g5LuK5aSp55yL5Yiw6L+H77yM6K+35ZGK6K+J5LuW5LiK5qyh5piv55yL5Yiw55qE77yb5aaC5p6c5L2g5ZCs5LuW6K+06L+H77yM5YiZ6K+35ZGK6K+J5LuW5LiK5qyh5piv5ZCs5Yiw55qE44CCJywgLy/nlKjkuo7lrZjlgqjlhbPljaHnrYnnuqdcclxuICAgICAgICB0aXBFcnJOZXc6ICfov5nmmK/ov5nlsYDmuLjmiI/nrKzkuIDmrKHlh7rnjrB75qSN54mpfScsXHJcbiAgICAgICAgdGlwRXJyT2xkOiAne+akjeeJqX3liJrmiY3lh7rnjrDov4flkaInLFxyXG4gICAgICAgIHRpcEVyckhlYXI6ICfkuIrmrKHpgYfliLB75qSN54mpfeaXtu+8jOS8vOS5juS4jeaYr+WQrOWIsOeahOWQpycsXHJcbiAgICAgICAgdGlwRXJyU2VlOiAn5LiK5qyh6YGH5Yiwe+akjeeJqX3ml7bvvIzkvLzkuY7kuI3mmK/nnIvliLDnmoTlkKcnLFxyXG4gICAgICAgIHRpcEVyckxhc3Q6ICfkuYvliY3noa7lrp7nnIvliLDov4d75qSN54mpfe+8jOS9huacgOi/keS4gOasoeS8vOS5juS4jeaYr+eci+WIsOeahOWRoicsXHJcblxyXG4gICAgfSk7XHJcblxyXG59OyJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Tool/GameTool.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '43bfcJ6/25Fs4fHUE0PeBOX', 'GameTool'); +// Script/module/Tool/GameTool.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GameTool = void 0; +//最大工具类 各种公共方法,以及处理上传,获取后端接口数据 +var GameTool = { + _startTime: 0, + _endTime: 0, + _totalTime: 0, + //获取userId + Authentication: function () { + var name = "user_" + cc.fx.GameConfig.GM_INFO.gameId; + var data = JSON.parse(localStorage.getItem(name)); + if (data == "undifend" || data == null || data == "") { + var url = "https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=" + + encodeURIComponent(location.href); + console.log("链接没ID准备跳转", url); + window.location.href = url; + } + else { + if (!this.isNumber(data.userId)) { + var url = "https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=" + + encodeURIComponent(location.href); + console.log("链接不合法", url); + window.location.href = url; + } + else { + cc.fx.StorageMessage.setStorage(name, data); + cc.fx.GameConfig.GM_INFO.userId = parseInt(data.userId); + } + } + }, + isNumber: function (value) { + var result = false; + result = typeof value === 'number'; + if (result) + if (value < 200000) + result = false; + return result; + }, + containsTrain: function (str) { + return /from=train/i.test(str); + }, + //埋点上传 + setGameData: function () { + //GAME_DATA 初始化 每次清零 + cc.fx.GameConfig.GAME_DATA = []; + cc.fx.GameConfig.GAME_DATA.push(cc.fx.GameConfig.CLICK_DATA); + cc.fx.GameConfig.CLICK_init(); + var data = cc.fx.GameConfig.GAME_DATA; + var matchId = this.getMatchId(); + var postData = { + "gameId": cc.fx.GameConfig.GM_INFO.gameId, + "userId": cc.fx.GameConfig.GM_INFO.userId, + "matchId": matchId, + "data": data + }; + console.log("上传数据:", data); + cc.fx.HttpUtil.uploadUserLogData(postData, function () { }); + }, + //上传排行榜 type为1 + setRank: function (data) { + //GAME_DATA 初始化 每次清零 + var postData = { + "gameId": cc.fx.GameConfig.GM_INFO.gameId, + "userId": cc.fx.GameConfig.GM_INFO.userId, + "type": 1, + "score": data.score, + "accuracy": data.date, + "success": cc.fx.GameConfig.GM_INFO.success + }; + cc.fx.HttpUtil.rankData(1, function () { }, postData); + }, + //获取排行榜 type为2 + getRank: function (data, callback) { + var rankLength = data.length; + var postData = { + "gameId": cc.fx.GameConfig.GM_INFO.gameId, + "userId": cc.fx.GameConfig.GM_INFO.userId, + "page": 1, + "pageSize": rankLength + }; + //回调进getRankData + cc.fx.HttpUtil.rankData(2, function (data) { callback(data); }, postData); + }, + //获取matchId 用于上传每次点击数据里面记录id方便查询 + getMatchId: function () { + var matchId = cc.sys.localStorage.getItem("matchId"); + var tempId = matchId; + if (matchId == "undifend" || matchId == null) { + matchId = this.setMatchId(); + } + else { + if (this.containsNanana(matchId) == true) { + matchId = this.setMatchId(); + } + else { + var char = parseInt(tempId.substring(10, tempId.length)); + if (cc.fx.GameConfig.GM_INFO.level == 1) { + char += 1; + matchId = tempId.slice(0, 10) + char + ""; + if (this.containsNanana(matchId)) + matchId = this.setMatchId(); + cc.fx.GameConfig.GM_INFO.matchId = matchId; + cc.sys.localStorage.setItem("matchId", matchId); + } + } + } + if (this.containsNanana(matchId) == true) { + matchId = this.setMatchId(); + } + return matchId; + }, + //检测matchId 如果有缓存以前的nanana数据清除 + containsNanana: function (str) { + return /na/i.test(str); + }, + //重新设置MatchId + setMatchId: function () { + // 定义包含可用字符的字符集 + var characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; + // 创建一个数组以保存随机字符 + var uuidArray = []; + // 循环10次 生成10位的UUID + for (var i = 0; i < 10; i++) { + // 生成随机索引,范围是字符集的长度 + var randomIndex = Math.floor(Math.random() * characters.length); + // 从字符集中获取随机字符 + var randomChar = characters.charAt(randomIndex); + // 将字符添加到数组中 + uuidArray.push(randomChar); + } + var data = uuidArray.join('') + 1 + ""; + cc.sys.localStorage.setItem("matchNumber", 1); + cc.sys.localStorage.setItem("matchId", data); + cc.fx.GameConfig.GM_INFO.matchId = data; + return data; + }, + //截取名字 + subName: function (name, length) { + if (name.length > length) { + name = name.substring(0, length) + "..."; + } + return name; + }, + //设置头像 + setPic: function (node, pic) { + node.active = false; + var url = pic; + setTimeout(function () { + fetch(url) + .then(function (response) { + return response.headers.get('Content-Length'); + }) + .then(function (errNo) { + if (errNo == "5093") { + node.active = true; + } + }) + .catch(function (error) { + // console.error('Error fetching X-Info:', error); + }); + }, 100); + cc.assetManager.loadRemote(url, { ext: '.png' }, function (err, texture) { + if (texture) { + node.active = true; + node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); + } + else { + console.log(err, texture); + } + }); + }, + //第一个参数把目标带进来处理,第二个参数为名字长度,不同场景不同需求 + //名字4短,小排行,名字6长,大排行 + getRankData: function (data, target, nameLength) { + target.listData = data.data.list; + target.selfData = data.data.info; + var rankData = []; + var self = false; + cc.fx.GameTool.setPic(target.selfNode.getChildByName("pic").getChildByName("icon"), target.selfData.pic); + for (var i = 0; i <= target.listData.length - 1; i++) { + rankData.push({ rank: (i + 1), name: target.listData[i].nickName, total: target.listData[i].score, time: null, pic: target.listData[i].pic }); + if (cc.fx.GameConfig.GM_INFO.userId == target.listData[i].userId) { + self = true; + target.rankNumber = i; + target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string = (i + 1) + ""; + } + if (i == (target.listData.length - 1) && self == false) { + target.rankNumber = i; + target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string = "99+"; + } + } + cc.fx.GameTool.subName(target.selfData.nickName, nameLength); + target.selfNode.getChildByName("nameLab").getComponent(cc.Label).string = target.selfData.nickName; + target.selfNode.getChildByName("totalLab").getComponent(cc.Label).string = target.selfData.score; + var timeTemp = cc.fx.GameTool.getTimeShenNong(target.selfData.totleTimes); + // target.selfNode.getChildByName("timeLab").getComponent(cc.Label).string = timeTemp + ""; + switch (target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string) { + case "1": + target.selfNode.getChildByName("rank").getChildByName("one").active = true; + break; + case "2": + target.selfNode.getChildByName("rank").getChildByName("two").active = true; + break; + case "3": + target.selfNode.getChildByName("rank").getChildByName("three").active = true; + break; + } + // 大排行 + if (nameLength == 6) { + target.rankList.setData(rankData); + target.selfNode.opacity = 255; + if (target.selfData.totalSunCount == 0) + target.selfNode.opacity = 0; + } + }, + getSeedRandom: function (min, max) { + // console.log("随机数:",cc.fx.GameConfig.GM_INFO.currSeed); + max = max || 1; + min = min || 0; + cc.fx.GameConfig.GM_INFO.currSeed = (cc.fx.GameConfig.GM_INFO.currSeed * 9301 + 49297) % 233280; + var rnd = cc.fx.GameConfig.GM_INFO.currSeed / 233280.0; + var tmp = min + rnd * (max - min); + return parseInt(tmp); + }, + //获取关卡配置的那个关卡数 + getCustom: function (type) { + var custom = cc.fx.StorageMessage.getStorage(cc.fx.storageType.storageTypeCustom); + if (custom == "undifend" || custom == null || custom == "") { + this.setCustom(); + } + else { + cc.fx.GameConfig.GM_INFO_SET("custom", custom[0]); + if (custom[0] != 0 || type == true) { + custom.shift(); + if (custom.length == 0) { + this.setCustom(); + } + else + cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom, custom); + } + } + }, + //本地没有存储到配置,或者配置用完,重新创建配置 + setCustom: function () { + var arrayLength = cc.fx.GameConfig.LEVEL_INFO.length; + var arrayList = []; + for (var i = 1; i < arrayLength; i++) { + arrayList.push(i); + } + arrayList.sort(function () { return Math.random() - 0.5; }); + arrayList.unshift(0); + cc.fx.GameConfig.GM_INFO_SET("custom", arrayList[0]); + cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom, arrayList); + }, + getSetScreenResolutionFlag: function () { + var size = cc.winSize; + var width = size.width; + var height = size.height; + if ((height / width) > (16.2 / 9)) + return false; + return true; + }, + //判断全面屏适配 + setFit: function (canvas) { + var flag = cc.fx.GameTool.getSetScreenResolutionFlag(); + if (flag) { + // console.log("不是全面屏"); + } + else { + // console.log("是全面屏"); + } + return flag; + }, + //获取游戏信息 + getGameInfo: function (node) { + var jg = false; + return jg; + }, + //设置游戏信息 + setGameInfo: function (pd) { + }, + //打乱数组 + shuffleArray: function (arr) { + return arr.sort(function () { return Math.random() - 0.5; }); + }, + //打字机效果 + typingAni: function (label, text, cb, target) { + var self = target; + var html = ''; + var arr = text.split(''); + var len = arr.length; + var step = 0; + self.func = function () { + html += arr[step]; + label.string = html; + if (++step == len) { + self.unschedule(self.func); + cb && cb(); + } + }; + self.schedule(self.func, 0.1, cc.macro.REPEAT_FOREVER, 0); + }, + //输入秒,返回需要展示时间格式 + getTimeMargin: function (second) { + var total = 0; + total = second; + var hour = 0; + hour = parseInt((total / 3600) + ""); //计算整数小时数 + var afterHour = total - hour * 60 * 60; //取得算出小时数后剩余的秒数 + var min = parseInt((afterHour / 60) + ""); //计算整数分 + var m = "" + min; + if (min < 10) + m = "0" + min; + var afterMin = total - hour * 60 * 60 - min * 60; //取得算出分后剩余的秒数 + var miao = afterMin + ""; + if (afterMin < 10) + miao = "0" + afterMin; + return m + ':' + miao; + }, + //输入秒,返回需要展示时间格式 + getTimeShenNong: function (second) { + second = parseInt(second / 1000 + ""); + var total = 0; + total = second; + var min = 0; + if (total > 60) { + min = parseInt((total / 60) + ""); //计算整数分 + } + var m = min + "'"; + var afterMin = total - min * 60; //取得算出分后剩余的秒数 + var miao = afterMin + "''"; + return m + miao; + }, + //输入秒,返回需要展示时间格式 + getTimeLondon: function (second) { + var total = 0; + total = second; + var min = 0; + if (total >= 60) { + min = parseInt((total / 60) + ""); //计算整数分 + } + var m = min + " 分"; + var afterMin = total - min * 60; //取得算出分后剩余的秒数 + var miao = afterMin + " 秒"; + return m + " " + miao; + }, + //获取时间戳 + getTime: function () { + var timestamp = (new Date().getTime()); + return timestamp; + }, + pushLister: function () { + }, + removeAllLister: function () { + }, +}; +exports.GameTool = GameTool; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFRvb2xcXEdhbWVUb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLCtCQUErQjtBQUMvQixJQUFJLFFBQVEsR0FBRztJQUNYLFVBQVUsRUFBRSxDQUFDO0lBQ2IsUUFBUSxFQUFFLENBQUM7SUFDWCxVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVU7SUFDVixjQUFjO1FBQ1YsSUFBSSxJQUFJLEdBQUcsT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDckQsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEQsSUFBRyxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksSUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBQztZQUM5QyxJQUFJLEdBQUcsR0FBRyw4RUFBOEU7Z0JBQ3hGLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7U0FFOUI7YUFDRztZQUNBLElBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBQztnQkFDM0IsSUFBSSxHQUFHLEdBQUcsOEVBQThFO29CQUN4RixrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7YUFDOUI7aUJBQ0c7Z0JBQ0EsRUFBRSxDQUFDLEVBQUUs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QUFDLEdBQUksR0FBRyxHQUFHLElBQUksQ0FBQztRQUVwQixJQUFJLFFBQVEsR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFBLGFBQWE7UUFDN0MsSUFBSSxJQUFJLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQztRQUMzQixPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxPQUFPO0lBQ1AsT0FBTztRQUNILElBQUksU0FBUyxHQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZDLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxVQUFVLEVBQUM7SUFFWCxDQUFDO0lBQ0QsZUFBZSxFQUFDO0lBRWhCLENBQUM7Q0FFSixDQUFDO0FBQ08sNEJBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLy/mnIDlpKflt6XlhbfnsbsgIOWQhOenjeWFrOWFseaWueazle+8jOS7peWPiuWkhOeQhuS4iuS8oO+8jOiOt+WPluWQjuerr+aOpeWPo+aVsOaNrlxyXG52YXIgR2FtZVRvb2wgPSB7XHJcbiAgICBfc3RhcnRUaW1lOiAwLFxyXG4gICAgX2VuZFRpbWU6IDAsXHJcbiAgICBfdG90YWxUaW1lOiAwLFxyXG4gICAgLy/ojrflj5Z1c2VySWRcclxuICAgIEF1dGhlbnRpY2F0aW9uKCl7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBcInVzZXJfXCIgKyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZUlkO1xyXG4gICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShuYW1lKSk7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcInVuZGlmZW5kXCIgfHwgZGF0YT09bnVsbCB8fCBkYXRhID09IFwiXCIpe1xyXG4gICAgICAgICAgICBsZXQgdXJsID0gXCJodHRwczovL2FwaS5zcGFya3VzLmNuL2FwaS91c2VyL2F1dGgvbG9naW4/ZG9tYWluPWh1aTMyNTc5V2RZUHNnWXEmY2FsbGJhY2s9XCIrXHJcbiAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5ocmVmKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLpk77mjqXmsqFJROWHhuWkh+i3s+i9rFwiLHVybCk7XHJcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgaWYoIXRoaXMuaXNOdW1iZXIoZGF0YS51c2VySWQpKXtcclxuICAgICAgICAgICAgICAgIGxldCB1cmwgPSBcImh0dHBzOi8vYXBpLnNwYXJrdXMuY24vYXBpL3VzZXIvYXV0aC9sb2dpbj9kb21haW49aHVpMzI1NzlXZFlQc2dZcSZjYWxsYmFjaz1cIitcclxuICAgICAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5ocmVmKTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6ZO+5o6l5LiN5ZCI5rOVXCIsdXJsKTtcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKG5hbWUsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID0gcGFyc2VJbnQoZGF0YS51c2VySWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICBpc051bWJlcih2YWx1ZSkge1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBmYWxzZTtcclxuICAgICAgICByZXN1bHQgPSB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInO1xyXG4gICAgICAgIGlmKHJlc3VsdCkgaWYodmFsdWUgPCAyMDAwMDApIHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9LFxyXG5cclxuICAgIGNvbnRhaW5zVHJhaW4oc3RyKSB7XHJcbiAgICAgICAgcmV0dXJuIC9mcm9tPXRyYWluL2kudGVzdChzdHIpO1xyXG4gICAgfSxcclxuXHJcblxyXG4gICAgLy/ln4vngrnkuIrkvKBcclxuICAgIHNldEdhbWVEYXRhKCl7XHJcbiAgICAgICAgLy9HQU1FX0RBVEEg5Yid5aeL5YyWIOavj+asoea4hembtlxyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR0FNRV9EQVRBID0gW107XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HQU1FX0RBVEEucHVzaChjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfaW5pdCgpO1xyXG4gICAgICAgIGxldCBkYXRhID0gY2MuZnguR2FtZUNvbmZpZy5HQU1FX0RBVEE7XHJcbiAgICAgICAgbGV0IG1hdGNoSWQgPSB0aGlzLmdldE1hdGNoSWQoKTtcclxuICAgICAgICBsZXQgcG9zdERhdGEgPSB7XHJcbiAgICAgICAgICAgIFwiZ2FtZUlkXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVJZCxcclxuICAgICAgICAgICAgXCJ1c2VySWRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkLFxyXG4gICAgICAgICAgICBcIm1hdGNoSWRcIjptYXRjaElkLFxyXG4gICAgICAgICAgICBcImRhdGFcIjogZGF0YVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg5pWw5o2uOlwiLGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4Lkh0dHBVdGlsLnVwbG9hZFVzZXJMb2dEYXRhKHBvc3REYXRhLGZ1bmN0aW9uKCl7fSlcclxuICAgIH0sXHJcbiAgICAvL+S4iuS8oOaOkuihjOamnCAgdHlwZeS4ujFcclxuICAgIHNldFJhbmsoZGF0YSl7XHJcbiAgICAgICAgLy9HQU1FX0RBVEEg5Yid5aeL5YyWIOavj+asoea4hembtlxyXG4gICAgICAgIGxldCBwb3N0RGF0YSA9IHtcclxuICAgICAgICAgICAgXCJnYW1lSWRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZUlkLFxyXG4gICAgICAgICAgICBcInVzZXJJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VySWQsXHJcbiAgICAgICAgICAgIFwidHlwZVwiOjEsXHJcbiAgICAgICAgICAgIFwic2NvcmVcIjogZGF0YS5zY29yZSxcclxuICAgICAgICAgICAgXCJhY2N1cmFjeVwiOiBkYXRhLmRhdGUsXHJcbiAgICAgICAgICAgIFwic3VjY2Vzc1wiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc3VjY2Vzc1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgY2MuZnguSHR0cFV0aWwucmFua0RhdGEoMSxmdW5jdGlvbigpe30scG9zdERhdGEpO1xyXG4gICAgfSxcclxuICAgIC8v6I635Y+W5o6S6KGM5qacIHR5cGXkuLoyXHJcbiAgICBnZXRSYW5rKGRhdGEsY2FsbGJhY2spe1xyXG4gICAgICAgIGxldCByYW5rTGVuZ3RoID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcImdhbWVJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCxcclxuICAgICAgICAgICAgXCJwYWdlXCI6MSxcclxuICAgICAgICAgICAgXCJwYWdlU2l6ZVwiOnJhbmtMZW5ndGhcclxuICAgICAgICB9OyBcclxuICAgICAgICAvL+Wbnuiwg+i/m2dldFJhbmtEYXRhXHJcbiAgICAgICAgY2MuZnguSHR0cFV0aWwucmFua0RhdGEoMixkYXRhID0+e2NhbGxiYWNrKGRhdGEpfSxwb3N0RGF0YSk7XHJcbiAgICAgICAgXHJcbiAgICB9LFxyXG4gICAgLy/ojrflj5ZtYXRjaElkICDnlKjkuo7kuIrkvKDmr4/mrKHngrnlh7vmlbDmja7ph4zpnaLorrDlvZVpZOaWueS+v+afpeivolxyXG4gICAgZ2V0TWF0Y2hJZCAoKXtcclxuICAgICAgICBsZXQgbWF0Y2hJZCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1hdGNoSWRcIik7XHJcbiAgICAgICAgbGV0IHRlbXBJZCA9IG1hdGNoSWQ7XHJcbiAgICAgICAgaWYobWF0Y2hJZCA9PSBcInVuZGlmZW5kXCIgfHwgbWF0Y2hJZD09bnVsbCl7XHJcbiAgICAgICAgICAgIG1hdGNoSWQgPSAgdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29udGFpbnNOYW5hbmEobWF0Y2hJZCkgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICBtYXRjaElkID0gIHRoaXMuc2V0TWF0Y2hJZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBsZXQgY2hhciA9IHBhcnNlSW50KHRlbXBJZC5zdWJzdHJpbmcoMTAsdGVtcElkLmxlbmd0aCkpO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYXIgKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICBtYXRjaElkICA9IHRlbXBJZC5zbGljZSgwLCAxMCkgKyBjaGFyICsgXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmNvbnRhaW5zTmFuYW5hKG1hdGNoSWQpKSBtYXRjaElkID0gdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hdGNoSWQgPSBtYXRjaElkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoSWRcIixtYXRjaElkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYodGhpcy5jb250YWluc05hbmFuYShtYXRjaElkKSA9PSB0cnVlKXtcclxuICAgICAgICAgICAgbWF0Y2hJZCA9ICB0aGlzLnNldE1hdGNoSWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1hdGNoSWQ7XHJcbiAgICB9LFxyXG4gICAgLy/mo4DmtYttYXRjaElkIOWmguaenOaciee8k+WtmOS7peWJjeeahG5hbmFuYeaVsOaNrua4hemZpFxyXG4gICAgY29udGFpbnNOYW5hbmEoc3RyKSB7XHJcbiAgICAgICAgcmV0dXJuIC9uYS9pLnRlc3Qoc3RyKTtcclxuICAgIH0sXHJcbiAgICAvL+mHjeaWsOiuvue9rk1hdGNoSWRcclxuICAgIHNldE1hdGNoSWQgKCl7XHJcbiAgICAgICAgLy8g5a6a5LmJ5YyF5ZCr5Y+v55So5a2X56ym55qE5a2X56ym6ZuGXHJcbiAgICAgICAgY29uc3QgY2hhcmFjdGVycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSc7XHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq5pWw57uE5Lul5L+d5a2Y6ZqP5py65a2X56ymXHJcbiAgICAgICAgY29uc3QgdXVpZEFycmF5ID0gW107XHJcbiAgICAgICAgLy8g5b6q546vMTDmrKEg55Sf5oiQMTDkvY3nmoRVVUlEXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDnlJ/miJDpmo/mnLrntKLlvJXvvIzojIPlm7TmmK/lrZfnrKbpm4bnmoTplb/luqZcclxuICAgICAgICAgICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIC8vIOS7juWtl+espumbhuS4reiOt+WPlumaj+acuuWtl+esplxyXG4gICAgICAgICAgICBjb25zdCByYW5kb21DaGFyID0gY2hhcmFjdGVycy5jaGFyQXQocmFuZG9tSW5kZXgpO1xyXG4gICAgICAgICAgICAvLyDlsIblrZfnrKbmt7vliqDliLDmlbDnu4TkuK1cclxuICAgICAgICAgICAgdXVpZEFycmF5LnB1c2gocmFuZG9tQ2hhcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBkYXRhID0gIHV1aWRBcnJheS5qb2luKCcnKSArIDEgKyBcIlwiO1xyXG4gICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoTnVtYmVyXCIsMSk7XHJcbiAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibWF0Y2hJZFwiLGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYXRjaElkID0gZGF0YTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgIH0sXHJcbiAgICAvL+aIquWPluWQjeWtl1xyXG4gICAgc3ViTmFtZShuYW1lLGxlbmd0aCl7XHJcbiAgICAgICAgaWYobmFtZS5sZW5ndGggPiBsZW5ndGgpe1xyXG4gICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoMCxsZW5ndGgpICsgXCIuLi5cIlxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmFtZTtcclxuICAgIH0sXHJcbiAgICAvL+iuvue9ruWktOWDj1xyXG4gICAgc2V0UGljKG5vZGUscGljKXtcclxuICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGxldCB1cmwgPSBwaWM7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGZldGNoKHVybClcclxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbihlcnJObyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH0sXHJcbiAgICAvL+esrOS4gOS4quWPguaVsOaKiuebruagh+W4pui/m+adpeWkhOeQhu+8jOesrOS6jOS4quWPguaVsOS4uuWQjeWtl+mVv+W6pu+8jOS4jeWQjOWcuuaZr+S4jeWQjOmcgOaxglxyXG4gICAgLy/lkI3lrZc055+t77yM5bCP5o6S6KGM77yM5ZCN5a2XNumVv++8jOWkp+aOkuihjFxyXG4gICAgZ2V0UmFua0RhdGEoZGF0YSx0YXJnZXQsbmFtZUxlbmd0aCl7XHJcbiAgICAgICAgdGFyZ2V0Lmxpc3REYXRhID0gZGF0YS5kYXRhLmxpc3Q7XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZEYXRhID0gZGF0YS5kYXRhLmluZm87XHJcbiAgICAgICAgbGV0IHJhbmtEYXRhID0gW107XHJcbiAgICAgICAgbGV0IHNlbGYgPSBmYWxzZTtcclxuICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0UGljKHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksdGFyZ2V0LnNlbGZEYXRhLnBpYyk7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7aTw9dGFyZ2V0Lmxpc3REYXRhLmxlbmd0aC0xO2krKyl7XHJcbiAgICAgICAgICAgIHJhbmtEYXRhLnB1c2goe3Jhbms6KGkrMSksIG5hbWU6dGFyZ2V0Lmxpc3REYXRhW2ldLm5pY2tOYW1lLCB0b3RhbDp0YXJnZXQubGlzdERhdGFbaV0uc2NvcmUsdGltZTpudWxsLCBwaWM6dGFyZ2V0Lmxpc3REYXRhW2ldLnBpY30pO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID09IHRhcmdldC5saXN0RGF0YVtpXS51c2VySWQpe1xyXG4gICAgICAgICAgICAgICAgc2VsZiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0oaSsxKSArIFwiXCI7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGkgPT0gKHRhcmdldC5saXN0RGF0YS5sZW5ndGgtMSkgJiYgc2VsZiA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI5OStcIjsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnN1Yk5hbWUodGFyZ2V0LnNlbGZEYXRhLm5pY2tOYW1lLG5hbWVMZW5ndGgpO1xyXG4gICAgICAgIHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0YXJnZXQuc2VsZkRhdGEubmlja05hbWU7XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0YXJnZXQuc2VsZkRhdGEuc2NvcmU7XHJcbiAgICAgICAgbGV0IHRpbWVUZW1wID0gY2MuZnguR2FtZVRvb2wuZ2V0VGltZVNoZW5Ob25nKHRhcmdldC5zZWxmRGF0YS50b3RsZVRpbWVzKTtcclxuICAgICAgICAvLyB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGltZVRlbXAgKyBcIlwiO1xyXG4gICAgICAgIHN3aXRjaCh0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKXtcclxuICAgICAgICAgICAgY2FzZSBcIjFcIjpcclxuICAgICAgICAgICAgICAgIHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJvbmVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiMlwiOlxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcInR3b1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCIzXCI6XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidGhyZWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyDlpKfmjpLooYxcclxuICAgICAgICBpZihuYW1lTGVuZ3RoID09IDYpe1xyXG4gICAgICAgICAgICB0YXJnZXQucmFua0xpc3Quc2V0RGF0YShyYW5rRGF0YSk7XHJcbiAgICAgICAgICAgIHRhcmdldC5zZWxmTm9kZS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICBpZih0YXJnZXQuc2VsZkRhdGEudG90YWxTdW5Db3VudCA9PSAwKSB0YXJnZXQuc2VsZk5vZGUub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICBnZXRTZWVkUmFuZG9tOiBmdW5jdGlvbiAobWluLCBtYXgpIHsvL+WMheWQq21pbiDkuI3ljIXlkKttYXhcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIumaj+acuuaVsDpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY3VyclNlZWQpO1xyXG4gICAgICAgIG1heCA9IG1heCB8fCAxO1xyXG4gICAgICAgIG1pbiA9IG1pbiB8fCAwO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCA9IChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY3VyclNlZWQgKiA5MzAxICsgNDkyOTcpICUgMjMzMjgwO1xyXG4gICAgICAgIGxldCBybmQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY3VyclNlZWQgIC8gMjMzMjgwLjA7XHJcbiAgICAgICAgbGV0IHRtcCA9IG1pbiArIHJuZCAqIChtYXggLSBtaW4pO1xyXG4gICAgICAgIHJldHVybiBwYXJzZUludCh0bXApO1xyXG4gICAgfSxcclxuICAgIC8v6I635Y+W5YWz5Y2h6YWN572u55qE6YKj5Liq5YWz5Y2h5pWwXHJcbiAgICBnZXRDdXN0b20odHlwZSl7XHJcbiAgICAgICAgbGV0IGN1c3RvbSA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoY2MuZnguc3RvcmFnZVR5cGUuc3RvcmFnZVR5cGVDdXN0b20pO1xyXG4gICAgICAgIGlmKGN1c3RvbSA9PSBcInVuZGlmZW5kXCIgfHwgY3VzdG9tPT1udWxsIHx8IGN1c3RvbSA9PSBcIlwiKXtcclxuICAgICAgICAgICAgdGhpcy5zZXRDdXN0b20oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPX1NFVChcImN1c3RvbVwiLGN1c3RvbVswXSk7XHJcbiAgICAgICAgICAgIGlmKGN1c3RvbVswXSAhPSAwIHx8IHR5cGUgPT0gIHRydWUpe1xyXG4gICAgICAgICAgICAgICAgY3VzdG9tLnNoaWZ0KCk7XHJcbiAgICAgICAgICAgICAgICBpZihjdXN0b20ubGVuZ3RoID09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q3VzdG9tKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoY2MuZnguc3RvcmFnZVR5cGUuc3RvcmFnZVR5cGVDdXN0b20sY3VzdG9tKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvL+acrOWcsOayoeacieWtmOWCqOWIsOmFjee9ru+8jOaIluiAhemFjee9rueUqOWujO+8jOmHjeaWsOWIm+W7uumFjee9rlxyXG4gICAgc2V0Q3VzdG9tKCl7XHJcbiAgICAgICAgbGV0IGFycmF5TGVuZ3RoID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPLmxlbmd0aDtcclxuICAgICAgICBsZXQgYXJyYXlMaXN0ID0gW107XHJcbiAgICAgICAgZm9yKGxldCBpPTE7IGk8YXJyYXlMZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgYXJyYXlMaXN0LnB1c2goaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFycmF5TGlzdC5zb3J0KCgpID0+IE1hdGgucmFuZG9tKCkgLSAwLjUpO1xyXG4gICAgICAgIGFycmF5TGlzdC51bnNoaWZ0KDApXHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPX1NFVChcImN1c3RvbVwiLGFycmF5TGlzdFswXSk7XHJcbiAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShjYy5meC5zdG9yYWdlVHlwZS5zdG9yYWdlVHlwZUN1c3RvbSxhcnJheUxpc3QpO1xyXG4gICAgfSxcclxuXHJcblxyXG4gICAgZ2V0U2V0U2NyZWVuUmVzb2x1dGlvbkZsYWc6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBsZXQgc2l6ZSA9IGNjLndpblNpemU7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gc2l6ZS53aWR0aDtcclxuICAgICAgICBsZXQgaGVpZ2h0ID0gc2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgaWYgKChoZWlnaHQgLyB3aWR0aCkgPiAoMTYuMiAvIDkpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9LFxyXG4gICAgLy/liKTmlq3lhajpnaLlsY/pgILphY1cclxuICAgIHNldEZpdDogZnVuY3Rpb24gKGNhbnZhcykge1xyXG4gICAgICAgIGxldCBmbGFnID0gIGNjLmZ4LkdhbWVUb29sLmdldFNldFNjcmVlblJlc29sdXRpb25GbGFnKCk7XHJcbiAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICBcdC8vIGNvbnNvbGUubG9nKFwi5LiN5piv5YWo6Z2i5bGPXCIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgXHQvLyBjb25zb2xlLmxvZyhcIuaYr+WFqOmdouWxj1wiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZsYWc7XHJcbiAgICB9LFxyXG4gICAgLy/ojrflj5bmuLjmiI/kv6Hmga9cclxuICAgIGdldEdhbWVJbmZvOiBmdW5jdGlvbihub2RlKXtcclxuICAgICAgICB2YXIgamcgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9LFxyXG4gICAgLy/orr7nva7muLjmiI/kv6Hmga9cclxuICAgIHNldEdhbWVJbmZvOiBmdW5jdGlvbihwZCl7XHJcbiAgIFxyXG4gICAgfSxcclxuXHJcbiAgICAvL+aJk+S5seaVsOe7hFxyXG4gICAgc2h1ZmZsZUFycmF5KGFycikge1xyXG4gICAgICAgIHJldHVybiBhcnIuc29ydCgoKSA9PiBNYXRoLnJhbmRvbSgpIC0gMC41KTtcclxuICAgIH0sXHJcblxyXG4gICAgLy/miZPlrZfmnLrmlYjmnpxcclxuICAgIHR5cGluZ0FuaShsYWJlbCx0ZXh0LGNiLHRhcmdldCl7XHJcbiAgICAgICAgdmFyIHNlbGYgPSB0YXJnZXQ7XHJcbiAgICAgICAgdmFyIGh0bWwgPSAnJztcclxuICAgICAgICB2YXIgYXJyID0gdGV4dC5zcGxpdCgnJyk7XHJcbiAgICAgICAgdmFyIGxlbiA9IGFyci5sZW5ndGg7XHJcbiAgICAgICAgdmFyIHN0ZXAgPSAwO1xyXG4gICAgICAgIHNlbGYuZnVuYyA9ICgpPT57XHJcbiAgICAgICAgICAgIGh0bWwgKz0gYXJyW3N0ZXBdO1xyXG4gICAgICAgICAgICBsYWJlbC5zdHJpbmcgPSBodG1sO1xyXG4gICAgICAgICAgICBpZiAoKytzdGVwID09IGxlbikge1xyXG4gICAgICAgICAgICAgICAgc2VsZi51bnNjaGVkdWxlKHNlbGYuZnVuYyk7XHJcbiAgICAgICAgICAgICAgICBjYiAmJiBjYigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNlbGYuc2NoZWR1bGUoc2VsZi5mdW5jLDAuMSwgY2MubWFjcm8uUkVQRUFUX0ZPUkVWRVIsIDApXHJcbiAgICB9LFxyXG5cclxuICAgIC8v6L6T5YWl56eSLOi/lOWbnumcgOimgeWxleekuuaXtumXtOagvOW8j1xyXG4gICAgZ2V0VGltZU1hcmdpbjooc2Vjb25kKSA9PiB7XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IHNlY29uZDtcclxuICAgICAgICBsZXQgaG91ciA9IDA7XHJcbiAgICAgICAgaG91ciA9IHBhcnNlSW50KCh0b3RhbCAvIDM2MDApICsgXCJcIik7Ly/orqHnrpfmlbTmlbDlsI/ml7bmlbBcclxuICAgICAgICBsZXQgYWZ0ZXJIb3VyID0gdG90YWwgLSBob3VyICogNjAgKiA2MDsvL+WPluW+l+eul+WHuuWwj+aXtuaVsOWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaW4gPSBwYXJzZUludCgoYWZ0ZXJIb3VyIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgbGV0IG0gPSBcIlwiICsgbWluOyAgXHJcbiAgICAgICAgaWYobWluIDwgMTApIG0gPSBcIjBcIittaW47XHJcbiAgICAgICAgbGV0IGFmdGVyTWluID0gdG90YWwgLSBob3VyICogNjAgKiA2MCAtIG1pbiAqIDYwOy8v5Y+W5b6X566X5Ye65YiG5ZCO5Ymp5L2Z55qE56eS5pWwXHJcbiAgICAgICAgbGV0IG1pYW8gPSBhZnRlck1pbiArIFwiXCI7XHJcbiAgICAgICAgaWYoYWZ0ZXJNaW4gPCAxMCkgbWlhbyA9IFwiMFwiICsgYWZ0ZXJNaW47XHJcbiAgICAgICAgcmV0dXJuIG0gKyAnOicgKyBtaWFvXHJcbiAgICB9LFxyXG5cclxuICAgIC8v6L6T5YWl56eSLOi/lOWbnumcgOimgeWxleekuuaXtumXtOagvOW8j1xyXG4gICAgZ2V0VGltZVNoZW5Ob25nOihzZWNvbmQpID0+IHtcclxuICAgICAgICBzZWNvbmQgPSBwYXJzZUludChzZWNvbmQvMTAwMCtcIlwiKTtcclxuICAgICAgICBsZXQgdG90YWwgPSAwO1xyXG4gICAgICAgIHRvdGFsID0gc2Vjb25kO1xyXG4gICAgICAgIGxldCBtaW4gPSAwO1xyXG4gICAgICAgIGlmKHRvdGFsID4gNjApe1xyXG4gICAgICAgICAgICBtaW4gPSBwYXJzZUludCgodG90YWwgLyA2MCkrXCJcIik7Ly/orqHnrpfmlbTmlbDliIZcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG0gPSAgbWluICsgXCInXCI7ICBcclxuXHJcbiAgICAgICAgbGV0IGFmdGVyTWluID0gdG90YWwgLSBtaW4gKiA2MDsvL+WPluW+l+eul+WHuuWIhuWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaWFvID0gYWZ0ZXJNaW4gKyBcIicnXCI7XHJcbiAgICAgICAgcmV0dXJuIG0gKyBtaWFvXHJcbiAgICB9LFxyXG5cclxuICAgIC8v6L6T5YWl56eSLOi/lOWbnumcgOimgeWxleekuuaXtumXtOagvOW8j1xyXG4gICAgZ2V0VGltZUxvbmRvbjooc2Vjb25kKSA9PiB7XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IHNlY29uZDtcclxuICAgICAgICBsZXQgbWluID0gMDtcclxuICAgICAgICBpZih0b3RhbCA+PSA2MCl7XHJcbiAgICAgICAgICAgIG1pbiA9IHBhcnNlSW50KCh0b3RhbCAvIDYwKStcIlwiKTsvL+iuoeeul+aVtOaVsOWIhlxyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbSA9ICBtaW4gKyBcIiDliIZcIjsgIFxyXG5cclxuICAgICAgICBsZXQgYWZ0ZXJNaW4gPSB0b3RhbCAtIG1pbiAqIDYwOy8v5Y+W5b6X566X5Ye65YiG5ZCO5Ymp5L2Z55qE56eS5pWwXHJcbiAgICAgICAgbGV0IG1pYW8gPSBhZnRlck1pbiArIFwiIOenklwiO1xyXG4gICAgICAgIHJldHVybiBtICsgXCIgXCIgKyBtaWFvXHJcbiAgICB9LFxyXG5cclxuICAgIC8v6I635Y+W5pe26Ze05oizXHJcbiAgICBnZXRUaW1lKCl7XHJcbiAgICAgICAgdmFyIHRpbWVzdGFtcCA9ICAobmV3IERhdGUoKS5nZXRUaW1lKCkpXHJcbiAgICAgICAgcmV0dXJuIHRpbWVzdGFtcDtcclxuICAgIH0sXHJcbiAgICBwdXNoTGlzdGVyOmZ1bmN0aW9uICgpIHtcclxuICAgICAgICBcclxuICAgIH0sXHJcbiAgICByZW1vdmVBbGxMaXN0ZXI6ZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIFxyXG4gICAgfSxcclxuXHJcbn07XHJcbmV4cG9ydCB7IEdhbWVUb29sIH07Il19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Sdk/DouyinEntranceView.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '8a024+q5K9MrpxcaTvucSDB', 'DouyinEntranceView'); +// Script/Sdk/DouyinEntranceView.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DouyinEntranceView = void 0; +var MiniGameSdk_1 = require("./MiniGameSdk"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var DouyinEntranceView = /** @class */ (function (_super) { + __extends(DouyinEntranceView, _super); + function DouyinEntranceView() { + return _super !== null && _super.apply(this, arguments) || this; + } + DouyinEntranceView.prototype.start = function () { + }; + DouyinEntranceView.prototype.update = function (deltaTime) { + }; + DouyinEntranceView.prototype.onCloseClick = function () { + this.node.active = false; + }; + DouyinEntranceView.prototype.onNavigateToDouyinClick = function () { + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.navigateToSidebar(function (success) { + if (success) { + console.log('跳转成功'); + } + else { + console.log('跳转失败'); + } + }); + }; + DouyinEntranceView = __decorate([ + ccclass + ], DouyinEntranceView); + return DouyinEntranceView; +}(cc.Component)); +exports.DouyinEntranceView = DouyinEntranceView; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXERvdXlpbkVudHJhbmNlVmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTRDO0FBQ3RDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBSTVDO0lBQXdDLHNDQUFZO0lBQXBEOztJQXVCQSxDQUFDO0lBdEJHLGtDQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsbUNBQU0sR0FBTixVQUFPLFNBQWlCO0lBRXhCLENBQUM7SUFFRCx5Q0FBWSxHQUFaO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvREFBdUIsR0FBdkI7UUFFSSx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFVBQUMsT0FBZ0I7WUFDNUQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QjtpQkFBTTtnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBdEJRLGtCQUFrQjtRQUQ5QixPQUFPO09BQ0ssa0JBQWtCLENBdUI5QjtJQUFELHlCQUFDO0NBdkJELEFBdUJDLENBdkJ1QyxFQUFFLENBQUMsU0FBUyxHQXVCbkQ7QUF2QlksZ0RBQWtCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9NaW5pR2FtZVNka1wiO1xyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBjbGFzcyBEb3V5aW5FbnRyYW5jZVZpZXcgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhcnQoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShkZWx0YVRpbWU6IG51bWJlcikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NlQ2xpY2soKSB7XHJcbiAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTmF2aWdhdGVUb0RvdXlpbkNsaWNrKCkge1xyXG5cclxuICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLm5hdmlnYXRlVG9TaWRlYmFyKChzdWNjZXNzOiBib29sZWFuKSA9PiB7IC8vIOi3s+i9rOWIsOaKlumfs+S+p+i+ueagj1xyXG4gICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+i3s+i9rOaIkOWKnycpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+i3s+i9rOWksei0pScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19 +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Share/share.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '7290caA39xMWZc2phTMKovP', 'share'); +// Script/module/Share/share.ts + +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.WeChat = void 0; +var shareConfig = { + gameId: "100019", + shareLine: "zDLsruVI", + EK: "hui231%1" +}; +// 微信操作类 +var WeChat = /** @class */ (function () { + function WeChat() { + } + WeChat.setShare = function (url) { + var urlTemp = this.removeQueryParams(url); + shareConfig.shareLine = urlTemp; + if (cc.sys.platform == cc.sys.WECHAT_GAME) { + WeChat.getSignature(url); + } + }; + WeChat.getResult = function (res) { + if (res) { + var data = res.data; + wx.config({ + debug: false, + appId: data.appId, + timestamp: data.timestamp, + nonceStr: data.nonceStr, + signature: data.signature, + jsApiList: ['onMenuShareTimeline', 'updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareAppMessage'] + }); + wx.checkJsApi({ + jsApiList: ['updateAppMessageShareData'], + success: function (res) { + setTimeout(function () { + WeChat.changeShare(); + }, 100); + setTimeout(function () { + WeChat.changeShare(); + }, 200); + } + }); + } + }; + WeChat.changeShare = function () { + wx.ready(function () { + wx.updateAppMessageShareData({ + title: '逻辑性认知测评', + desc: '你的认知灵活性和选择注意有问题吗', + link: shareConfig.shareLine, + imgUrl: 'https://static.sparkus.cn/public/shennong.jpg', + success: function () { + // 设置成功 + console.log("分享好友成功回调"); + } + }); + setTimeout(function () { + wx.updateTimelineShareData({ + title: '逻辑性认知测评', + link: shareConfig.shareLine, + imgUrl: 'https://static.sparkus.cn/public/shennong.jpg', + success: function () { + // 设置成功 + console.log("分享朋友圈成功回调"); + } + }); + }, 500); + }); + }; + WeChat.getSignature = function (url) { + return new Promise(function (resolve) { + WeChat.getShareInfo((encodeURIComponent(url)), WeChat.getResult); + }); + }; + WeChat.getShareInfo = function (shareUrl, callback) { + return __awaiter(this, void 0, Promise, function () { + var time, url; + return __generator(this, function (_a) { + time = Math.floor((new Date().getTime()) / 1000); + url = cc.fx.HttpUtil.apiSign("/api/share/cfg?gameId=" + shareConfig.gameId + "&time=" + time + "&url=" + shareUrl, {}); + return [2 /*return*/, cc.fx.HttpUtil.get(url, callback, 0)]; + }); + }); + }; + WeChat.containsNanana = function (str) { + return /test/i.test(str); + }; + WeChat.removeQueryParams = function (url) { + return url.replace(/\?.*$/, ''); + }; + return WeChat; +}()); +exports.WeChat = WeChat; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFNoYXJlXFxzaGFyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFJLFdBQVcsR0FBRztJQUNkLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLEVBQUUsRUFBQyxVQUFVO0NBQ2QsQ0FBQztBQVdKLFFBQVE7QUFDUjtJQUFBO0lBa0ZBLENBQUM7SUFqRlUsZUFBUSxHQUFmLFVBQWdCLEdBQUc7UUFDZixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFDaEMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRTtZQUN2QyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzVCO0lBRUwsQ0FBQztJQUVNLGdCQUFTLEdBQWhCLFVBQWlCLEdBQUc7UUFDaEIsSUFBRyxHQUFHLEVBQUM7WUFDSCxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ3BCLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0JBQ04sS0FBSyxFQUFFLEtBQUs7Z0JBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsRUFBQywyQkFBMkIsRUFBRSx5QkFBeUIsRUFBRSx1QkFBdUIsQ0FBQzthQUNySCxDQUFDLENBQUM7WUFDSCxFQUFFLENBQUMsVUFBVSxDQUFDO2dCQUNWLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDO2dCQUN4QyxPQUFPLEVBQUUsVUFBUyxHQUFHO29CQUNqQixVQUFVLENBQUM7d0JBQ1AsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUN6QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ1IsVUFBVSxDQUFDO3dCQUNQLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDekIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNaLENBQUM7YUFDSixDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFTSxrQkFBVyxHQUFsQjtRQUNJLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDTCxFQUFFLENBQUMseUJBQXlCLENBQUM7Z0JBQ3pCLEtBQUssRUFBRSxTQUFTO2dCQUNoQixJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixJQUFJLEVBQUUsV0FBVyxDQUFDLFNBQVM7Z0JBQzNCLE1BQU0sRUFBRSwrQ0FBK0M7Z0JBQ3ZELE9BQU8sRUFBRTtvQkFDUCxPQUFPO29CQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFCLENBQUM7YUFDSixDQUFDLENBQUM7WUFDSCxVQUFVLENBQUM7Z0JBQ1AsRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUN2QixLQUFLLEVBQUUsU0FBUztvQkFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxTQUFTO29CQUMzQixNQUFNLEVBQUUsK0NBQStDO29CQUN2RCxPQUFPLEVBQUU7d0JBQ1AsT0FBTzt3QkFDUCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUMzQixDQUFDO2lCQUNGLENBQUMsQ0FBQTtZQUNSLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVaLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLG1CQUFZLEdBQW5CLFVBQW9CLEdBQVc7UUFDM0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU87WUFDdkIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNZLG1CQUFZLEdBQXpCLFVBQTBCLFFBQWdCLEVBQUUsUUFBaUI7dUNBQUcsT0FBTzs7O2dCQUM3RCxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtnQkFDaEQsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQywyQkFBeUIsV0FBVyxDQUFDLE1BQU0sY0FBUyxJQUFJLGFBQVEsUUFBVSxFQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUNqSCxzQkFBTyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUMsRUFBQzs7O0tBQzdDO0lBR00scUJBQWMsR0FBckIsVUFBc0IsR0FBRztRQUNyQixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLHdCQUFpQixHQUF4QixVQUF5QixHQUFHO1FBQ3hCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVMLGFBQUM7QUFBRCxDQWxGQSxBQWtGQyxJQUFBO0FBbEZZLHdCQUFNIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbnZhciBzaGFyZUNvbmZpZyA9IHtcbiAgICBnYW1lSWQ6IFwiMTAwMDE5XCIsXG4gICAgc2hhcmVMaW5lOiBcInpETHNydVZJXCIsXG4gICAgRUs6XCJodWkyMzElMVwiXG4gIH07XG5cbi8vIOWumuS5ieW+ruS/oemFjee9ruaVsOaNrueahOaOpeWPo1xuaW50ZXJmYWNlIElXZUNoYXRDb25maWcge1xuICAgIGFwcElkOiBzdHJpbmc7XG4gICAgdGltZXN0YW1wOiBudW1iZXI7XG4gICAgbm9uY2VTdHI6IHN0cmluZztcbiAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICBqc0FwaUxpc3Q6IFtdO1xufVxuXG4vLyDlvq7kv6Hmk43kvZznsbtcbmV4cG9ydCBjbGFzcyBXZUNoYXQge1xuICAgIHN0YXRpYyBzZXRTaGFyZSh1cmwpIHtcbiAgICAgICAgdmFyIHVybFRlbXAgPSB0aGlzLnJlbW92ZVF1ZXJ5UGFyYW1zKHVybCk7XG4gICAgICAgIHNoYXJlQ29uZmlnLnNoYXJlTGluZSA9IHVybFRlbXA7XG4gICAgICAgIGlmIChjYy5zeXMucGxhdGZvcm0gPT0gY2Muc3lzLldFQ0hBVF9HQU1FKSB7XG4gICAgICAgICAgICBXZUNoYXQuZ2V0U2lnbmF0dXJlKHVybCk7XG4gICAgICAgIH1cbiAgIFxuICAgIH1cblxuICAgIHN0YXRpYyBnZXRSZXN1bHQocmVzKXtcbiAgICAgICAgaWYocmVzKXtcbiAgICAgICAgICAgIHZhciBkYXRhID0gcmVzLmRhdGE7XG4gICAgICAgICAgICB3eC5jb25maWcoe1xuICAgICAgICAgICAgICAgIGRlYnVnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhcHBJZDogZGF0YS5hcHBJZCxcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IGRhdGEudGltZXN0YW1wLFxuICAgICAgICAgICAgICAgIG5vbmNlU3RyOiBkYXRhLm5vbmNlU3RyLFxuICAgICAgICAgICAgICAgIHNpZ25hdHVyZTogZGF0YS5zaWduYXR1cmUsXG4gICAgICAgICAgICAgICAganNBcGlMaXN0OiBbJ29uTWVudVNoYXJlVGltZWxpbmUnLCd1cGRhdGVBcHBNZXNzYWdlU2hhcmVEYXRhJywgJ3VwZGF0ZVRpbWVsaW5lU2hhcmVEYXRhJywgJ29uTWVudVNoYXJlQXBwTWVzc2FnZSddXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHd4LmNoZWNrSnNBcGkoe1xuICAgICAgICAgICAgICAgIGpzQXBpTGlzdDogWyd1cGRhdGVBcHBNZXNzYWdlU2hhcmVEYXRhJ10sIC8vIOmcgOimgeajgOa1i+eahEpT5o6l5Y+j5YiX6KGo77yM5omA5pyJSlPmjqXlj6PliJfooajop4HpmYTlvZUyLFxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgIFxuICAgICAgICAgICAgICAgICAgICAgICAgV2VDaGF0LmNoYW5nZVNoYXJlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgV2VDaGF0LmNoYW5nZVNoYXJlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgY2hhbmdlU2hhcmUoKXtcbiAgICAgICAgd3gucmVhZHkoKCkgPT4ge1xuICAgICAgICAgICAgd3gudXBkYXRlQXBwTWVzc2FnZVNoYXJlRGF0YSh7IFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn6YC76L6R5oCn6K6k55+l5rWL6K+EJywgLy8g5YiG5Lqr5qCH6aKYXG4gICAgICAgICAgICAgICAgZGVzYzogJ+S9oOeahOiupOefpeeBtea0u+aAp+WSjOmAieaLqeazqOaEj+aciemXrumimOWQlycsIC8vIOWIhuS6q+aPj+i/sFxuICAgICAgICAgICAgICAgIGxpbms6IHNoYXJlQ29uZmlnLnNoYXJlTGluZSwgLy8g5YiG5Lqr6ZO+5o6l77yM6K+l6ZO+5o6l5Z+f5ZCN5oiW6Lev5b6E5b+F6aG75LiO5b2T5YmN6aG16Z2i5a+55bqU55qE5YWs5LyX5Y+3SlPlronlhajln5/lkI3kuIDoh7RcbiAgICAgICAgICAgICAgICBpbWdVcmw6ICdodHRwczovL3N0YXRpYy5zcGFya3VzLmNuL3B1YmxpYy9zaGVubm9uZy5qcGcnLCAvLyDliIbkuqvlm77moIdcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAvLyDorr7nva7miJDlip9cbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5YiG5Lqr5aW95Y+L5oiQ5Yqf5Zue6LCDXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgd3gudXBkYXRlVGltZWxpbmVTaGFyZURhdGEoeyBcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfpgLvovpHmgKforqTnn6XmtYvor4QnLCAvLyDliIbkuqvmoIfpophcbiAgICAgICAgICAgICAgICAgICAgbGluazogc2hhcmVDb25maWcuc2hhcmVMaW5lLCAvLyDliIbkuqvpk77mjqXvvIzor6Xpk77mjqXln5/lkI3miJbot6/lvoTlv4XpobvkuI7lvZPliY3pobXpnaLlr7nlupTnmoTlhazkvJflj7dKU+WuieWFqOWfn+WQjeS4gOiHtFxuICAgICAgICAgICAgICAgICAgICBpbWdVcmw6ICdodHRwczovL3N0YXRpYy5zcGFya3VzLmNuL3B1YmxpYy9zaGVubm9uZy5qcGcnLCAvLyDliIbkuqvlm77moIdcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgIC8vIOiuvue9ruaIkOWKn1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5YiG5Lqr5pyL5Y+L5ZyI5oiQ5Yqf5Zue6LCDXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSwgNTAwKTtcblxuICAgICAgICB9KTsgXG4gICAgfVxuXG4gICAgc3RhdGljIGdldFNpZ25hdHVyZSh1cmw6IHN0cmluZyk6IFByb21pc2U8SVdlQ2hhdENvbmZpZz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIFdlQ2hhdC5nZXRTaGFyZUluZm8oKGVuY29kZVVSSUNvbXBvbmVudCh1cmwpKSxXZUNoYXQuZ2V0UmVzdWx0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0YXRpYyBhc3luYyBnZXRTaGFyZUluZm8oc2hhcmVVcmw6IHN0cmluZywgY2FsbGJhY2s6RnVuY3Rpb24pOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCB0aW1lID0gTWF0aC5mbG9vcigobmV3IERhdGUoKS5nZXRUaW1lKCkpIC8gMTAwMClcbiAgICAgICAgY29uc3QgdXJsID0gY2MuZnguSHR0cFV0aWwuYXBpU2lnbihgL2FwaS9zaGFyZS9jZmc/Z2FtZUlkPSR7c2hhcmVDb25maWcuZ2FtZUlkfSZ0aW1lPSR7dGltZX0mdXJsPSR7c2hhcmVVcmx9YCx7fSlcbiAgICAgICAgcmV0dXJuIGNjLmZ4Lkh0dHBVdGlsLmdldCh1cmwsY2FsbGJhY2ssMCk7XG4gICAgfVxuXG4gICAgXG4gICAgc3RhdGljIGNvbnRhaW5zTmFuYW5hKHN0cikge1xuICAgICAgICByZXR1cm4gL3Rlc3QvaS50ZXN0KHN0cik7XG4gICAgfVxuXG4gICAgc3RhdGljIHJlbW92ZVF1ZXJ5UGFyYW1zKHVybCkge1xuICAgICAgICByZXR1cm4gdXJsLnJlcGxhY2UoL1xcPy4qJC8sICcnKTtcbiAgICB9XG5cbn1cbiJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Storage/Storage.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '1002938VFRJd70RiAno9Iys', 'Storage'); +// Script/module/Storage/Storage.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StorageMessage = void 0; +//缓存浏览器数据 +var StorageMessage = { + getStorage: function (key) { + var result = null; + if (cc.sys.localStorage.getItem(key)) { + var result = cc.sys.localStorage.getItem(key); + } + if (result) { + result = JSON.parse(result); + } + return result; + }, + setStorage: function (key, value) { + //主动拉起分享接口 + var temp = JSON.stringify(value); + cc.sys.localStorage.setItem(key, temp); + }, + removeStorage: function (key) { + //主动删除消息接口 + if (cc.sys.localStorage.getItem(key)) { + cc.sys.localStorage.removeItem(key); + } + }, +}; +exports.StorageMessage = StorageMessage; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFN0b3JhZ2VcXFN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULElBQUksY0FBYyxHQUFHO0lBQ2pCLFVBQVUsRUFBRyxVQUFTLEdBQUc7UUFDckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBQ2xDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvQztRQUVELElBQUcsTUFBTSxFQUFDO1lBQ1IsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsVUFBVSxFQUFHLFVBQVMsR0FBRyxFQUFDLEtBQUs7UUFDM0IsVUFBVTtRQUNWLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBQ0QsYUFBYSxFQUFHLFVBQVMsR0FBRztRQUMxQixVQUFVO1FBQ1YsSUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDbEMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO0lBQ0gsQ0FBQztDQUNKLENBQUM7QUFFTyx3Q0FBYyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v57yT5a2Y5rWP6KeI5Zmo5pWw5o2uXG52YXIgU3RvcmFnZU1lc3NhZ2UgPSB7XG4gICAgZ2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAgIHZhciByZXN1bHQgPSBudWxsO1xuICAgICAgICBpZihjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSl7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZihyZXN1bHQpe1xuICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gICAgc2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSx2YWx1ZSl7XG4gICAgICAgIC8v5Li75Yqo5ouJ6LW35YiG5Lqr5o6l5Y+jXG4gICAgICAgIHZhciB0ZW1wID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB0ZW1wKVxuICAgIH0sXG4gICAgcmVtb3ZlU3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAvL+S4u+WKqOWIoOmZpOa2iOaBr+aOpeWPo1xuICAgICAgaWYoY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpe1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICAgICAgfVxuICAgIH0sXG59O1xuXG5leHBvcnQgeyBTdG9yYWdlTWVzc2FnZSB9OyJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Crypto/crypto-js.min.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); +// Script/module/Crypto/crypto-js.min.js + +"use strict"; + +!function (t, r) { + "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r(); +}(void 0, function () { + var t = t || function (t, r) { + var e = Object.create || function () { + function t() {} + + return function (r) { + var e; + return t.prototype = r, e = new t(), t.prototype = null, e; + }; + }(), + i = {}, + n = i.lib = {}, + o = n.Base = function () { + return { + extend: function extend(t) { + var r = e(this); + return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { + r.$super.init.apply(this, arguments); + }), r.init.prototype = r, r.$super = this, r; + }, + create: function create() { + var t = this.extend(); + return t.init.apply(t, arguments), t; + }, + init: function init() {}, + mixIn: function mixIn(t) { + for (var r in t) { + t.hasOwnProperty(r) && (this[r] = t[r]); + } + + t.hasOwnProperty("toString") && (this.toString = t.toString); + }, + clone: function clone() { + return this.init.prototype.extend(this); + } + }; + }(), + s = n.WordArray = o.extend({ + init: function init(t, e) { + t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length; + }, + toString: function toString(t) { + return (t || c).stringify(this); + }, + concat: function concat(t) { + var r = this.words, + e = t.words, + i = this.sigBytes, + n = t.sigBytes; + if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { + var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; + r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8; + } else for (var o = 0; o < n; o += 4) { + r[i + o >>> 2] = e[o >>> 2]; + } + return this.sigBytes += n, this; + }, + clamp: function clamp() { + var r = this.words, + e = this.sigBytes; + r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4); + }, + clone: function clone() { + var t = o.clone.call(this); + return t.words = this.words.slice(0), t; + }, + random: function random(r) { + for (var e, i = [], n = function n(r) { + var r = r, + e = 987654321, + i = 4294967295; + return function () { + e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; + var n = (e << 16) + r & i; + return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1); + }; + }, o = 0; o < r; o += 4) { + var a = n(4294967296 * (e || t.random())); + e = 987654071 * a(), i.push(4294967296 * a() | 0); + } + + return new s.init(i, r); + } + }), + a = i.enc = {}, + c = a.Hex = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)); + } + + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i += 2) { + e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; + } + + return new s.init(e, r / 2); + } + }, + h = a.Latin1 = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push(String.fromCharCode(o)); + } + + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i++) { + e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; + } + + return new s.init(e, r); + } + }, + l = a.Utf8 = { + stringify: function stringify(t) { + try { + return decodeURIComponent(escape(h.stringify(t))); + } catch (t) { + throw new Error("Malformed UTF-8 data"); + } + }, + parse: function parse(t) { + return h.parse(unescape(encodeURIComponent(t))); + } + }, + f = n.BufferedBlockAlgorithm = o.extend({ + reset: function reset() { + this._data = new s.init(), this._nDataBytes = 0; + }, + _append: function _append(t) { + "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; + }, + _process: function _process(r) { + var e = this._data, + i = e.words, + n = e.sigBytes, + o = this.blockSize, + a = 4 * o, + c = n / a; + c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); + var h = c * o, + l = t.min(4 * h, n); + + if (h) { + for (var f = 0; f < h; f += o) { + this._doProcessBlock(i, f); + } + + var u = i.splice(0, h); + e.sigBytes -= l; + } + + return new s.init(u, l); + }, + clone: function clone() { + var t = o.clone.call(this); + return t._data = this._data.clone(), t; + }, + _minBufferSize: 0 + }), + u = (n.Hasher = f.extend({ + cfg: o.extend(), + init: function init(t) { + this.cfg = this.cfg.extend(t), this.reset(); + }, + reset: function reset() { + f.reset.call(this), this._doReset(); + }, + update: function update(t) { + return this._append(t), this._process(), this; + }, + finalize: function finalize(t) { + t && this._append(t); + + var r = this._doFinalize(); + + return r; + }, + blockSize: 16, + _createHelper: function _createHelper(t) { + return function (r, e) { + return new t.init(e).finalize(r); + }; + }, + _createHmacHelper: function _createHmacHelper(t) { + return function (r, e) { + return new u.HMAC.init(t, e).finalize(r); + }; + } + }), i.algo = {}); + + return i; + }(Math); + + return function () { + function r(t, r, e) { + for (var i = [], o = 0, s = 0; s < r; s++) { + if (s % 4) { + var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, + c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; + i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++; + } + } + + return n.create(i, o); + } + + var e = t, + i = e.lib, + n = i.WordArray, + o = e.enc; + o.Base64 = { + stringify: function stringify(t) { + var r = t.words, + e = t.sigBytes, + i = this._map; + t.clamp(); + + for (var n = [], o = 0; o < e; o += 3) { + for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++) { + n.push(i.charAt(h >>> 6 * (3 - l) & 63)); + } + } + + var f = i.charAt(64); + if (f) for (; n.length % 4;) { + n.push(f); + } + return n.join(""); + }, + parse: function parse(t) { + var e = t.length, + i = this._map, + n = this._reverseMap; + + if (!n) { + n = this._reverseMap = []; + + for (var o = 0; o < i.length; o++) { + n[i.charCodeAt(o)] = o; + } + } + + var s = i.charAt(64); + + if (s) { + var a = t.indexOf(s); + a !== -1 && (e = a); + } + + return r(t, e, n); + }, + _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" + }; + }(), function (r) { + function e(t, r, e, i, n, o, s) { + var a = t + (r & e | ~r & i) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + function i(t, r, e, i, n, o, s) { + var a = t + (r & i | e & ~i) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + function n(t, r, e, i, n, o, s) { + var a = t + (r ^ e ^ i) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + function o(t, r, e, i, n, o, s) { + var a = t + (e ^ (r | ~i)) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + var s = t, + a = s.lib, + c = a.WordArray, + h = a.Hasher, + l = s.algo, + f = []; + !function () { + for (var t = 0; t < 64; t++) { + f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0; + } + }(); + var u = l.MD5 = h.extend({ + _doReset: function _doReset() { + this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var s = 0; s < 16; s++) { + var a = r + s, + c = t[a]; + t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8); + } + + var h = this._hash.words, + l = t[r + 0], + u = t[r + 1], + d = t[r + 2], + v = t[r + 3], + p = t[r + 4], + _ = t[r + 5], + y = t[r + 6], + g = t[r + 7], + B = t[r + 8], + w = t[r + 9], + k = t[r + 10], + S = t[r + 11], + m = t[r + 12], + x = t[r + 13], + b = t[r + 14], + H = t[r + 15], + z = h[0], + A = h[1], + C = h[2], + D = h[3]; + z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = 8 * this._nDataBytes, + n = 8 * t.sigBytes; + e[n >>> 5] |= 128 << 24 - n % 32; + var o = r.floor(i / 4294967296), + s = i; + e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); + + for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { + var l = c[h]; + c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); + } + + return a; + }, + clone: function clone() { + var t = h.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u); + }(Math), function () { + var r = t, + e = r.lib, + i = e.WordArray, + n = e.Hasher, + o = r.algo, + s = [], + a = o.SHA1 = n.extend({ + _doReset: function _doReset() { + this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { + if (h < 16) s[h] = 0 | t[r + h];else { + var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; + s[h] = l << 1 | l >>> 31; + } + var f = (i << 5 | i >>> 27) + c + s[h]; + f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f; + } + + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash; + }, + clone: function clone() { + var t = n.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a); + }(), function (r) { + var e = t, + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.algo, + a = [], + c = []; + !function () { + function t(t) { + for (var e = r.sqrt(t), i = 2; i <= e; i++) { + if (!(t % i)) return !1; + } + + return !0; + } + + function e(t) { + return 4294967296 * (t - (0 | t)) | 0; + } + + for (var i = 2, n = 0; n < 64;) { + t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++; + } + }(); + var h = [], + l = s.SHA256 = o.extend({ + _doReset: function _doReset() { + this._hash = new n.init(a.slice(0)); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { + if (d < 16) h[d] = 0 | t[r + d];else { + var v = h[d - 15], + p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, + _ = h[d - 2], + y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; + h[d] = p + h[d - 7] + y + h[d - 16]; + } + var g = a & l ^ ~a & f, + B = i & n ^ i & o ^ n & o, + w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), + k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), + S = u + k + g + c[d] + h[d], + m = w + B; + u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0; + } + + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = 8 * this._nDataBytes, + n = 8 * t.sigBytes; + return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash; + }, + clone: function clone() { + var t = o.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l); + }(Math), function () { + function r(t) { + return t << 8 & 4278255360 | t >>> 8 & 16711935; + } + + var e = t, + i = e.lib, + n = i.WordArray, + o = e.enc; + o.Utf16 = o.Utf16BE = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { + var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; + i.push(String.fromCharCode(o)); + } + + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i++) { + e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; + } + + return n.create(e, 2 * r); + } + }; + o.Utf16LE = { + stringify: function stringify(t) { + for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { + var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); + n.push(String.fromCharCode(s)); + } + + return n.join(""); + }, + parse: function parse(t) { + for (var e = t.length, i = [], o = 0; o < e; o++) { + i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); + } + + return n.create(i, 2 * e); + } + }; + }(), function () { + if ("function" == typeof ArrayBuffer) { + var r = t, + e = r.lib, + i = e.WordArray, + n = i.init, + o = i.init = function (t) { + if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { + for (var r = t.byteLength, e = [], i = 0; i < r; i++) { + e[i >>> 2] |= t[i] << 24 - i % 4 * 8; + } + + n.call(this, e, r); + } else n.apply(this, arguments); + }; + + o.prototype = i; + } + }(), function (r) { + function e(t, r, e) { + return t ^ r ^ e; + } + + function i(t, r, e) { + return t & r | ~t & e; + } + + function n(t, r, e) { + return (t | ~r) ^ e; + } + + function o(t, r, e) { + return t & e | r & ~e; + } + + function s(t, r, e) { + return t ^ (r | ~e); + } + + function a(t, r) { + return t << r | t >>> 32 - r; + } + + var c = t, + h = c.lib, + l = h.WordArray, + f = h.Hasher, + u = c.algo, + d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), + v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), + p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), + _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), + y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), + g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), + B = u.RIPEMD160 = f.extend({ + _doReset: function _doReset() { + this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var c = 0; c < 16; c++) { + var h = r + c, + l = t[h]; + t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); + } + + var f, + u, + B, + w, + k, + S, + m, + x, + b, + H, + z = this._hash.words, + A = y.words, + C = g.words, + D = d.words, + R = v.words, + E = p.words, + M = _.words; + S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; + + for (var F, c = 0; c < 80; c += 1) { + F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; + } + + F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); + + for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { + var a = o[s]; + o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8); + } + + return n; + }, + clone: function clone() { + var t = f.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + + c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B); + }(Math), function () { + var r = t, + e = r.lib, + i = e.Base, + n = r.enc, + o = n.Utf8, + s = r.algo; + s.HMAC = i.extend({ + init: function init(t, r) { + t = this._hasher = new t.init(), "string" == typeof r && (r = o.parse(r)); + var e = t.blockSize, + i = 4 * e; + r.sigBytes > i && (r = t.finalize(r)), r.clamp(); + + for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++) { + a[h] ^= 1549556828, c[h] ^= 909522486; + } + + n.sigBytes = s.sigBytes = i, this.reset(); + }, + reset: function reset() { + var t = this._hasher; + t.reset(), t.update(this._iKey); + }, + update: function update(t) { + return this._hasher.update(t), this; + }, + finalize: function finalize(t) { + var r = this._hasher, + e = r.finalize(t); + r.reset(); + var i = r.finalize(this._oKey.clone().concat(e)); + return i; + } + }); + }(), function () { + var r = t, + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.SHA1, + a = o.HMAC, + c = o.PBKDF2 = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { + var u = i.update(r).finalize(s); + i.reset(); + + for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { + p = i.finalize(p), i.reset(); + + for (var y = p.words, g = 0; g < v; g++) { + d[g] ^= y[g]; + } + } + + o.concat(u), h[0]++; + } + + return o.sigBytes = 4 * l, o; + } + }); + + r.PBKDF2 = function (t, r, e) { + return c.create(e).compute(t, r); + }; + }(), function () { + var r = t, + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.MD5, + a = o.EvpKDF = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { + h && i.update(h); + var h = i.update(t).finalize(r); + i.reset(); + + for (var l = 1; l < c; l++) { + h = i.finalize(h), i.reset(); + } + + o.concat(h); + } + + return o.sigBytes = 4 * a, o; + } + }); + + r.EvpKDF = function (t, r, e) { + return a.create(e).compute(t, r); + }; + }(), function () { + var r = t, + e = r.lib, + i = e.WordArray, + n = r.algo, + o = n.SHA256, + s = n.SHA224 = o.extend({ + _doReset: function _doReset() { + this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); + }, + _doFinalize: function _doFinalize() { + var t = o._doFinalize.call(this); + + return t.sigBytes -= 4, t; + } + }); + r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s); + }(), function (r) { + var e = t, + i = e.lib, + n = i.Base, + o = i.WordArray, + s = e.x64 = {}; + s.Word = n.extend({ + init: function init(t, r) { + this.high = t, this.low = r; + } + }), s.WordArray = n.extend({ + init: function init(t, e) { + t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length; + }, + toX32: function toX32() { + for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { + var n = t[i]; + e.push(n.high), e.push(n.low); + } + + return o.create(e, this.sigBytes); + }, + clone: function clone() { + for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++) { + r[i] = r[i].clone(); + } + + return t; + } + }); + }(), function (r) { + var e = t, + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.x64, + a = s.Word, + c = e.algo, + h = [], + l = [], + f = []; + !function () { + for (var t = 1, r = 0, e = 0; e < 24; e++) { + h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; + var i = r % 5, + n = (2 * t + 3 * r) % 5; + t = i, r = n; + } + + for (var t = 0; t < 5; t++) { + for (var r = 0; r < 5; r++) { + l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; + } + } + + for (var o = 1, s = 0; s < 24; s++) { + for (var c = 0, u = 0, d = 0; d < 7; d++) { + if (1 & o) { + var v = (1 << d) - 1; + v < 32 ? u ^= 1 << v : c ^= 1 << v - 32; + } + + 128 & o ? o = o << 1 ^ 113 : o <<= 1; + } + + f[s] = a.create(c, u); + } + }(); + var u = []; + !function () { + for (var t = 0; t < 25; t++) { + u[t] = a.create(); + } + }(); + var d = c.SHA3 = o.extend({ + cfg: o.cfg.extend({ + outputLength: 512 + }), + _doReset: function _doReset() { + for (var t = this._state = [], r = 0; r < 25; r++) { + t[r] = new a.init(); + } + + this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { + var o = t[r + 2 * n], + s = t[r + 2 * n + 1]; + o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); + var a = e[n]; + a.high ^= s, a.low ^= o; + } + + for (var c = 0; c < 24; c++) { + for (var d = 0; d < 5; d++) { + for (var v = 0, p = 0, _ = 0; _ < 5; _++) { + var a = e[d + 5 * _]; + v ^= a.high, p ^= a.low; + } + + var y = u[d]; + y.high = v, y.low = p; + } + + for (var d = 0; d < 5; d++) { + for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { + var a = e[d + 5 * _]; + a.high ^= v, a.low ^= p; + } + } + + for (var S = 1; S < 25; S++) { + var a = e[S], + m = a.high, + x = a.low, + b = h[S]; + if (b < 32) var v = m << b | x >>> 32 - b, + p = x << b | m >>> 32 - b;else var v = x << b - 32 | m >>> 64 - b, + p = m << b - 32 | x >>> 64 - b; + var H = u[l[S]]; + H.high = v, H.low = p; + } + + var z = u[0], + A = e[0]; + z.high = A.high, z.low = A.low; + + for (var d = 0; d < 5; d++) { + for (var _ = 0; _ < 5; _++) { + var S = d + 5 * _, + a = e[S], + C = u[S], + D = u[(d + 1) % 5 + 5 * _], + R = u[(d + 2) % 5 + 5 * _]; + a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low; + } + } + + var a = e[0], + E = f[c]; + a.high ^= E.high, a.low ^= E.low; + } + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = (8 * this._nDataBytes, 8 * t.sigBytes), + o = 32 * this.blockSize; + e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); + + for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { + var f = s[l], + u = f.high, + d = f.low; + u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u); + } + + return new n.init(h, a); + }, + clone: function clone() { + for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++) { + r[e] = r[e].clone(); + } + + return t; + } + }); + e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d); + }(Math), function () { + function r() { + return s.create.apply(s, arguments); + } + + var e = t, + i = e.lib, + n = i.Hasher, + o = e.x64, + s = o.Word, + a = o.WordArray, + c = e.algo, + h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], + l = []; + !function () { + for (var t = 0; t < 80; t++) { + l[t] = r(); + } + }(); + var f = c.SHA512 = n.extend({ + _doReset: function _doReset() { + this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { + var Z = l[T]; + if (T < 16) var q = Z.high = 0 | t[r + 2 * T], + G = Z.low = 0 | t[r + 2 * T + 1];else { + var J = l[T - 15], + $ = J.high, + Q = J.low, + V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, + Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), + tt = l[T - 2], + rt = tt.high, + et = tt.low, + it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, + nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), + ot = l[T - 7], + st = ot.high, + at = ot.low, + ct = l[T - 16], + ht = ct.high, + lt = ct.low, + G = Y + at, + q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), + G = G + nt, + q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), + G = G + lt, + q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); + Z.high = q, Z.low = G; + } + + var ft = O & I ^ ~O & X, + ut = U & K ^ ~U & L, + dt = C & R ^ C & M ^ R & M, + vt = D & E ^ D & F ^ E & F, + pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), + _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), + yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), + gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), + Bt = h[T], + wt = Bt.high, + kt = Bt.low, + St = N + gt, + mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), + St = St + ut, + mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), + St = St + kt, + mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), + St = St + G, + mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), + xt = _t + vt, + bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); + + j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0; + } + + v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0); + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); + + var n = this._hash.toX32(); + + return n; + }, + clone: function clone() { + var t = n.clone.call(this); + return t._hash = this._hash.clone(), t; + }, + blockSize: 32 + }); + e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f); + }(), function () { + var r = t, + e = r.x64, + i = e.Word, + n = e.WordArray, + o = r.algo, + s = o.SHA512, + a = o.SHA384 = s.extend({ + _doReset: function _doReset() { + this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]); + }, + _doFinalize: function _doFinalize() { + var t = s._doFinalize.call(this); + + return t.sigBytes -= 16, t; + } + }); + r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a); + }(), t.lib.Cipher || function (r) { + var e = t, + i = e.lib, + n = i.Base, + o = i.WordArray, + s = i.BufferedBlockAlgorithm, + a = e.enc, + c = (a.Utf8, a.Base64), + h = e.algo, + l = h.EvpKDF, + f = i.Cipher = s.extend({ + cfg: n.extend(), + createEncryptor: function createEncryptor(t, r) { + return this.create(this._ENC_XFORM_MODE, t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.create(this._DEC_XFORM_MODE, t, r); + }, + init: function init(t, r, e) { + this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset(); + }, + reset: function reset() { + s.reset.call(this), this._doReset(); + }, + process: function process(t) { + return this._append(t), this._process(); + }, + finalize: function finalize(t) { + t && this._append(t); + + var r = this._doFinalize(); + + return r; + }, + keySize: 4, + ivSize: 4, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: function () { + function t(t) { + return "string" == typeof t ? m : w; + } + + return function (r) { + return { + encrypt: function encrypt(e, i, n) { + return t(i).encrypt(r, e, i, n); + }, + decrypt: function decrypt(e, i, n) { + return t(i).decrypt(r, e, i, n); + } + }; + }; + }() + }), + u = (i.StreamCipher = f.extend({ + _doFinalize: function _doFinalize() { + var t = this._process(!0); + + return t; + }, + blockSize: 1 + }), e.mode = {}), + d = i.BlockCipherMode = n.extend({ + createEncryptor: function createEncryptor(t, r) { + return this.Encryptor.create(t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.Decryptor.create(t, r); + }, + init: function init(t, r) { + this._cipher = t, this._iv = r; + } + }), + v = u.CBC = function () { + function t(t, e, i) { + var n = this._iv; + + if (n) { + var o = n; + this._iv = r; + } else var o = this._prevBlock; + + for (var s = 0; s < i; s++) { + t[e + s] ^= o[s]; + } + } + + var e = d.extend(); + return e.Encryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, + n = i.blockSize; + t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n); + } + }), e.Decryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, + n = i.blockSize, + o = r.slice(e, e + n); + i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o; + } + }), e; + }(), + p = e.pad = {}, + _ = p.Pkcs7 = { + pad: function pad(t, r) { + for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4) { + s.push(n); + } + + var c = o.create(s, i); + t.concat(c); + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, + y = (i.BlockCipher = f.extend({ + cfg: f.cfg.extend({ + mode: v, + padding: _ + }), + reset: function reset() { + f.reset.call(this); + var t = this.cfg, + r = t.iv, + e = t.mode; + if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor;else { + var i = e.createDecryptor; + this._minBufferSize = 1; + } + this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + this._mode.processBlock(t, r); + }, + _doFinalize: function _doFinalize() { + var t = this.cfg.padding; + + if (this._xformMode == this._ENC_XFORM_MODE) { + t.pad(this._data, this.blockSize); + + var r = this._process(!0); + } else { + var r = this._process(!0); + + t.unpad(r); + } + + return r; + }, + blockSize: 4 + }), i.CipherParams = n.extend({ + init: function init(t) { + this.mixIn(t); + }, + toString: function toString(t) { + return (t || this.formatter).stringify(this); + } + })), + g = e.format = {}, + B = g.OpenSSL = { + stringify: function stringify(t) { + var r = t.ciphertext, + e = t.salt; + if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r);else var i = r; + return i.toString(c); + }, + parse: function parse(t) { + var r = c.parse(t), + e = r.words; + + if (1398893684 == e[0] && 1701076831 == e[1]) { + var i = o.create(e.slice(2, 4)); + e.splice(0, 4), r.sigBytes -= 16; + } + + return y.create({ + ciphertext: r, + salt: i + }); + } + }, + w = i.SerializableCipher = n.extend({ + cfg: n.extend({ + format: B + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = t.createEncryptor(e, i), + o = n.finalize(r), + s = n.cfg; + return y.create({ + ciphertext: o, + key: e, + iv: s.iv, + algorithm: t, + mode: s.mode, + padding: s.padding, + blockSize: t.blockSize, + formatter: i.format + }); + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = t.createDecryptor(e, i).finalize(r.ciphertext); + return n; + }, + _parse: function _parse(t, r) { + return "string" == typeof t ? r.parse(t, this) : t; + } + }), + k = e.kdf = {}, + S = k.OpenSSL = { + execute: function execute(t, r, e, i) { + i || (i = o.random(8)); + var n = l.create({ + keySize: r + e + }).compute(t, i), + s = o.create(n.words.slice(r), 4 * e); + return n.sigBytes = 4 * r, y.create({ + key: n, + iv: s, + salt: i + }); + } + }, + m = i.PasswordBasedCipher = w.extend({ + cfg: w.cfg.extend({ + kdf: S + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = i.kdf.execute(e, t.keySize, t.ivSize); + i.iv = n.iv; + var o = w.encrypt.call(this, t, r, n.key, i); + return o.mixIn(n), o; + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); + i.iv = n.iv; + var o = w.decrypt.call(this, t, r, n.key, i); + return o; + } + }); + }(), t.mode.CFB = function () { + function r(t, r, e, i) { + var n = this._iv; + + if (n) { + var o = n.slice(0); + this._iv = void 0; + } else var o = this._prevBlock; + + i.encryptBlock(o, 0); + + for (var s = 0; s < e; s++) { + t[r + s] ^= o[s]; + } + } + + var e = t.lib.BlockCipherMode.extend(); + return e.Encryptor = e.extend({ + processBlock: function processBlock(t, e) { + var i = this._cipher, + n = i.blockSize; + r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n); + } + }), e.Decryptor = e.extend({ + processBlock: function processBlock(t, e) { + var i = this._cipher, + n = i.blockSize, + o = t.slice(e, e + n); + r.call(this, t, e, n, i), this._prevBlock = o; + } + }), e; + }(), t.mode.ECB = function () { + var r = t.lib.BlockCipherMode.extend(); + return r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + this._cipher.encryptBlock(t, r); + } + }), r.Decryptor = r.extend({ + processBlock: function processBlock(t, r) { + this._cipher.decryptBlock(t, r); + } + }), r; + }(), t.pad.AnsiX923 = { + pad: function pad(t, r) { + var e = t.sigBytes, + i = 4 * r, + n = i - e % i, + o = e + n - 1; + t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n; + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, t.pad.Iso10126 = { + pad: function pad(r, e) { + var i = 4 * e, + n = i - r.sigBytes % i; + r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)); + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, t.pad.Iso97971 = { + pad: function pad(r, e) { + r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e); + }, + unpad: function unpad(r) { + t.pad.ZeroPadding.unpad(r), r.sigBytes--; + } + }, t.mode.OFB = function () { + var r = t.lib.BlockCipherMode.extend(), + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, + i = e.blockSize, + n = this._iv, + o = this._keystream; + n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); + + for (var s = 0; s < i; s++) { + t[r + s] ^= o[s]; + } + } + }); + return r.Decryptor = e, r; + }(), t.pad.NoPadding = { + pad: function pad() {}, + unpad: function unpad() {} + }, function (r) { + var e = t, + i = e.lib, + n = i.CipherParams, + o = e.enc, + s = o.Hex, + a = e.format; + a.Hex = { + stringify: function stringify(t) { + return t.ciphertext.toString(s); + }, + parse: function parse(t) { + var r = s.parse(t); + return n.create({ + ciphertext: r + }); + } + }; + }(), function () { + var r = t, + e = r.lib, + i = e.BlockCipher, + n = r.algo, + o = [], + s = [], + a = [], + c = [], + h = [], + l = [], + f = [], + u = [], + d = [], + v = []; + !function () { + for (var t = [], r = 0; r < 256; r++) { + r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; + } + + for (var e = 0, i = 0, r = 0; r < 256; r++) { + var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; + n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; + var p = t[e], + _ = t[p], + y = t[_], + g = 257 * t[n] ^ 16843008 * n; + a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; + var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; + f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1; + } + }(); + + var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], + _ = n.AES = i.extend({ + _doReset: function _doReset() { + if (!this._nRounds || this._keyPriorReset !== this._key) { + for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++) { + if (a < e) s[a] = r[a];else { + var c = s[a - 1]; + a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c; + } + } + + for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { + var a = n - l; + if (l % 4) var c = s[a];else var c = s[a - 4]; + l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]]; + } + } + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o); + }, + decryptBlock: function decryptBlock(t, r) { + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e; + }, + _doCryptBlock: function _doCryptBlock(t, r, e, i, n, o, s, a) { + for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { + var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], + _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], + y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], + g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; + + h = p, l = _, f = y, u = g; + } + + var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], + _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], + y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], + g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; + + t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g; + }, + keySize: 8 + }); + + r.AES = i._createHelper(_); + }(), function () { + function r(t, r) { + var e = (this._lBlock >>> t ^ this._rBlock) & r; + this._rBlock ^= e, this._lBlock ^= e << t; + } + + function e(t, r) { + var e = (this._rBlock >>> t ^ this._lBlock) & r; + this._lBlock ^= e, this._rBlock ^= e << t; + } + + var i = t, + n = i.lib, + o = n.WordArray, + s = n.BlockCipher, + a = i.algo, + c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], + h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], + l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], + f = [{ + 0: 8421888, + 268435456: 32768, + 536870912: 8421378, + 805306368: 2, + 1073741824: 512, + 1342177280: 8421890, + 1610612736: 8389122, + 1879048192: 8388608, + 2147483648: 514, + 2415919104: 8389120, + 2684354560: 33280, + 2952790016: 8421376, + 3221225472: 32770, + 3489660928: 8388610, + 3758096384: 0, + 4026531840: 33282, + 134217728: 0, + 402653184: 8421890, + 671088640: 33282, + 939524096: 32768, + 1207959552: 8421888, + 1476395008: 512, + 1744830464: 8421378, + 2013265920: 2, + 2281701376: 8389120, + 2550136832: 33280, + 2818572288: 8421376, + 3087007744: 8389122, + 3355443200: 8388610, + 3623878656: 32770, + 3892314112: 514, + 4160749568: 8388608, + 1: 32768, + 268435457: 2, + 536870913: 8421888, + 805306369: 8388608, + 1073741825: 8421378, + 1342177281: 33280, + 1610612737: 512, + 1879048193: 8389122, + 2147483649: 8421890, + 2415919105: 8421376, + 2684354561: 8388610, + 2952790017: 33282, + 3221225473: 514, + 3489660929: 8389120, + 3758096385: 32770, + 4026531841: 0, + 134217729: 8421890, + 402653185: 8421376, + 671088641: 8388608, + 939524097: 512, + 1207959553: 32768, + 1476395009: 8388610, + 1744830465: 2, + 2013265921: 33282, + 2281701377: 32770, + 2550136833: 8389122, + 2818572289: 514, + 3087007745: 8421888, + 3355443201: 8389120, + 3623878657: 0, + 3892314113: 33280, + 4160749569: 8421378 + }, { + 0: 1074282512, + 16777216: 16384, + 33554432: 524288, + 50331648: 1074266128, + 67108864: 1073741840, + 83886080: 1074282496, + 100663296: 1073758208, + 117440512: 16, + 134217728: 540672, + 150994944: 1073758224, + 167772160: 1073741824, + 184549376: 540688, + 201326592: 524304, + 218103808: 0, + 234881024: 16400, + 251658240: 1074266112, + 8388608: 1073758208, + 25165824: 540688, + 41943040: 16, + 58720256: 1073758224, + 75497472: 1074282512, + 92274688: 1073741824, + 109051904: 524288, + 125829120: 1074266128, + 142606336: 524304, + 159383552: 0, + 176160768: 16384, + 192937984: 1074266112, + 209715200: 1073741840, + 226492416: 540672, + 243269632: 1074282496, + 260046848: 16400, + 268435456: 0, + 285212672: 1074266128, + 301989888: 1073758224, + 318767104: 1074282496, + 335544320: 1074266112, + 352321536: 16, + 369098752: 540688, + 385875968: 16384, + 402653184: 16400, + 419430400: 524288, + 436207616: 524304, + 452984832: 1073741840, + 469762048: 540672, + 486539264: 1073758208, + 503316480: 1073741824, + 520093696: 1074282512, + 276824064: 540688, + 293601280: 524288, + 310378496: 1074266112, + 327155712: 16384, + 343932928: 1073758208, + 360710144: 1074282512, + 377487360: 16, + 394264576: 1073741824, + 411041792: 1074282496, + 427819008: 1073741840, + 444596224: 1073758224, + 461373440: 524304, + 478150656: 0, + 494927872: 16400, + 511705088: 1074266128, + 528482304: 540672 + }, { + 0: 260, + 1048576: 0, + 2097152: 67109120, + 3145728: 65796, + 4194304: 65540, + 5242880: 67108868, + 6291456: 67174660, + 7340032: 67174400, + 8388608: 67108864, + 9437184: 67174656, + 10485760: 65792, + 11534336: 67174404, + 12582912: 67109124, + 13631488: 65536, + 14680064: 4, + 15728640: 256, + 524288: 67174656, + 1572864: 67174404, + 2621440: 0, + 3670016: 67109120, + 4718592: 67108868, + 5767168: 65536, + 6815744: 65540, + 7864320: 260, + 8912896: 4, + 9961472: 256, + 11010048: 67174400, + 12058624: 65796, + 13107200: 65792, + 14155776: 67109124, + 15204352: 67174660, + 16252928: 67108864, + 16777216: 67174656, + 17825792: 65540, + 18874368: 65536, + 19922944: 67109120, + 20971520: 256, + 22020096: 67174660, + 23068672: 67108868, + 24117248: 0, + 25165824: 67109124, + 26214400: 67108864, + 27262976: 4, + 28311552: 65792, + 29360128: 67174400, + 30408704: 260, + 31457280: 65796, + 32505856: 67174404, + 17301504: 67108864, + 18350080: 260, + 19398656: 67174656, + 20447232: 0, + 21495808: 65540, + 22544384: 67109120, + 23592960: 256, + 24641536: 67174404, + 25690112: 65536, + 26738688: 67174660, + 27787264: 65796, + 28835840: 67108868, + 29884416: 67109124, + 30932992: 67174400, + 31981568: 4, + 33030144: 65792 + }, { + 0: 2151682048, + 65536: 2147487808, + 131072: 4198464, + 196608: 2151677952, + 262144: 0, + 327680: 4198400, + 393216: 2147483712, + 458752: 4194368, + 524288: 2147483648, + 589824: 4194304, + 655360: 64, + 720896: 2147487744, + 786432: 2151678016, + 851968: 4160, + 917504: 4096, + 983040: 2151682112, + 32768: 2147487808, + 98304: 64, + 163840: 2151678016, + 229376: 2147487744, + 294912: 4198400, + 360448: 2151682112, + 425984: 0, + 491520: 2151677952, + 557056: 4096, + 622592: 2151682048, + 688128: 4194304, + 753664: 4160, + 819200: 2147483648, + 884736: 4194368, + 950272: 4198464, + 1015808: 2147483712, + 1048576: 4194368, + 1114112: 4198400, + 1179648: 2147483712, + 1245184: 0, + 1310720: 4160, + 1376256: 2151678016, + 1441792: 2151682048, + 1507328: 2147487808, + 1572864: 2151682112, + 1638400: 2147483648, + 1703936: 2151677952, + 1769472: 4198464, + 1835008: 2147487744, + 1900544: 4194304, + 1966080: 64, + 2031616: 4096, + 1081344: 2151677952, + 1146880: 2151682112, + 1212416: 0, + 1277952: 4198400, + 1343488: 4194368, + 1409024: 2147483648, + 1474560: 2147487808, + 1540096: 64, + 1605632: 2147483712, + 1671168: 4096, + 1736704: 2147487744, + 1802240: 2151678016, + 1867776: 4160, + 1933312: 2151682048, + 1998848: 4194304, + 2064384: 4198464 + }, { + 0: 128, + 4096: 17039360, + 8192: 262144, + 12288: 536870912, + 16384: 537133184, + 20480: 16777344, + 24576: 553648256, + 28672: 262272, + 32768: 16777216, + 36864: 537133056, + 40960: 536871040, + 45056: 553910400, + 49152: 553910272, + 53248: 0, + 57344: 17039488, + 61440: 553648128, + 2048: 17039488, + 6144: 553648256, + 10240: 128, + 14336: 17039360, + 18432: 262144, + 22528: 537133184, + 26624: 553910272, + 30720: 536870912, + 34816: 537133056, + 38912: 0, + 43008: 553910400, + 47104: 16777344, + 51200: 536871040, + 55296: 553648128, + 59392: 16777216, + 63488: 262272, + 65536: 262144, + 69632: 128, + 73728: 536870912, + 77824: 553648256, + 81920: 16777344, + 86016: 553910272, + 90112: 537133184, + 94208: 16777216, + 98304: 553910400, + 102400: 553648128, + 106496: 17039360, + 110592: 537133056, + 114688: 262272, + 118784: 536871040, + 122880: 0, + 126976: 17039488, + 67584: 553648256, + 71680: 16777216, + 75776: 17039360, + 79872: 537133184, + 83968: 536870912, + 88064: 17039488, + 92160: 128, + 96256: 553910272, + 100352: 262272, + 104448: 553910400, + 108544: 0, + 112640: 553648128, + 116736: 16777344, + 120832: 262144, + 124928: 537133056, + 129024: 536871040 + }, { + 0: 268435464, + 256: 8192, + 512: 270532608, + 768: 270540808, + 1024: 268443648, + 1280: 2097152, + 1536: 2097160, + 1792: 268435456, + 2048: 0, + 2304: 268443656, + 2560: 2105344, + 2816: 8, + 3072: 270532616, + 3328: 2105352, + 3584: 8200, + 3840: 270540800, + 128: 270532608, + 384: 270540808, + 640: 8, + 896: 2097152, + 1152: 2105352, + 1408: 268435464, + 1664: 268443648, + 1920: 8200, + 2176: 2097160, + 2432: 8192, + 2688: 268443656, + 2944: 270532616, + 3200: 0, + 3456: 270540800, + 3712: 2105344, + 3968: 268435456, + 4096: 268443648, + 4352: 270532616, + 4608: 270540808, + 4864: 8200, + 5120: 2097152, + 5376: 268435456, + 5632: 268435464, + 5888: 2105344, + 6144: 2105352, + 6400: 0, + 6656: 8, + 6912: 270532608, + 7168: 8192, + 7424: 268443656, + 7680: 270540800, + 7936: 2097160, + 4224: 8, + 4480: 2105344, + 4736: 2097152, + 4992: 268435464, + 5248: 268443648, + 5504: 8200, + 5760: 270540808, + 6016: 270532608, + 6272: 270540800, + 6528: 270532616, + 6784: 8192, + 7040: 2105352, + 7296: 2097160, + 7552: 0, + 7808: 268435456, + 8064: 268443656 + }, { + 0: 1048576, + 16: 33555457, + 32: 1024, + 48: 1049601, + 64: 34604033, + 80: 0, + 96: 1, + 112: 34603009, + 128: 33555456, + 144: 1048577, + 160: 33554433, + 176: 34604032, + 192: 34603008, + 208: 1025, + 224: 1049600, + 240: 33554432, + 8: 34603009, + 24: 0, + 40: 33555457, + 56: 34604032, + 72: 1048576, + 88: 33554433, + 104: 33554432, + 120: 1025, + 136: 1049601, + 152: 33555456, + 168: 34603008, + 184: 1048577, + 200: 1024, + 216: 34604033, + 232: 1, + 248: 1049600, + 256: 33554432, + 272: 1048576, + 288: 33555457, + 304: 34603009, + 320: 1048577, + 336: 33555456, + 352: 34604032, + 368: 1049601, + 384: 1025, + 400: 34604033, + 416: 1049600, + 432: 1, + 448: 0, + 464: 34603008, + 480: 33554433, + 496: 1024, + 264: 1049600, + 280: 33555457, + 296: 34603009, + 312: 1, + 328: 33554432, + 344: 1048576, + 360: 1025, + 376: 34604032, + 392: 33554433, + 408: 34603008, + 424: 0, + 440: 34604033, + 456: 1049601, + 472: 1024, + 488: 33555456, + 504: 1048577 + }, { + 0: 134219808, + 1: 131072, + 2: 134217728, + 3: 32, + 4: 131104, + 5: 134350880, + 6: 134350848, + 7: 2048, + 8: 134348800, + 9: 134219776, + 10: 133120, + 11: 134348832, + 12: 2080, + 13: 0, + 14: 134217760, + 15: 133152, + 2147483648: 2048, + 2147483649: 134350880, + 2147483650: 134219808, + 2147483651: 134217728, + 2147483652: 134348800, + 2147483653: 133120, + 2147483654: 133152, + 2147483655: 32, + 2147483656: 134217760, + 2147483657: 2080, + 2147483658: 131104, + 2147483659: 134350848, + 2147483660: 0, + 2147483661: 134348832, + 2147483662: 134219776, + 2147483663: 131072, + 16: 133152, + 17: 134350848, + 18: 32, + 19: 2048, + 20: 134219776, + 21: 134217760, + 22: 134348832, + 23: 131072, + 24: 0, + 25: 131104, + 26: 134348800, + 27: 134219808, + 28: 134350880, + 29: 133120, + 30: 2080, + 31: 134217728, + 2147483664: 131072, + 2147483665: 2048, + 2147483666: 134348832, + 2147483667: 133152, + 2147483668: 32, + 2147483669: 134348800, + 2147483670: 134217728, + 2147483671: 134219808, + 2147483672: 134350880, + 2147483673: 134217760, + 2147483674: 134219776, + 2147483675: 0, + 2147483676: 133120, + 2147483677: 2080, + 2147483678: 131104, + 2147483679: 134350848 + }], + u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], + d = a.DES = s.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { + var n = c[i] - 1; + e[i] = r[n >>> 5] >>> 31 - n % 32 & 1; + } + + for (var o = this._subKeys = [], s = 0; s < 16; s++) { + for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++) { + a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; + } + + a[0] = a[0] << 1 | a[0] >>> 31; + + for (var i = 1; i < 7; i++) { + a[i] = a[i] >>> 4 * (i - 1) + 3; + } + + a[7] = a[7] << 5 | a[7] >>> 27; + } + + for (var u = this._invSubKeys = [], i = 0; i < 16; i++) { + u[i] = o[15 - i]; + } + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._subKeys); + }, + decryptBlock: function decryptBlock(t, r) { + this._doCryptBlock(t, r, this._invSubKeys); + }, + _doCryptBlock: function _doCryptBlock(t, i, n) { + this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); + + for (var o = 0; o < 16; o++) { + for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++) { + h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; + } + + this._lBlock = c, this._rBlock = a ^ h; + } + + var d = this._lBlock; + this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock; + }, + keySize: 2, + ivSize: 2, + blockSize: 2 + }); + i.DES = s._createHelper(d); + var v = a.TripleDES = s.extend({ + _doReset: function _doReset() { + var t = this._key, + r = t.words; + this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))); + }, + encryptBlock: function encryptBlock(t, r) { + this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r); + }, + decryptBlock: function decryptBlock(t, r) { + this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r); + }, + keySize: 6, + ivSize: 2, + blockSize: 2 + }); + i.TripleDES = s._createHelper(v); + }(), function () { + function r() { + for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { + r = (r + 1) % 256, e = (e + t[r]) % 256; + var o = t[r]; + t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n; + } + + return this._i = r, this._j = e, i; + } + + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = o.RC4 = n.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++) { + i[n] = n; + } + + for (var n = 0, o = 0; n < 256; n++) { + var s = n % e, + a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; + o = (o + i[n] + a) % 256; + var c = i[n]; + i[n] = i[o], i[o] = c; + } + + this._i = this._j = 0; + }, + _doProcessBlock: function _doProcessBlock(t, e) { + t[e] ^= r.call(this); + }, + keySize: 8, + ivSize: 0 + }); + e.RC4 = n._createHelper(s); + var a = o.RC4Drop = s.extend({ + cfg: s.cfg.extend({ + drop: 192 + }), + _doReset: function _doReset() { + s._doReset.call(this); + + for (var t = this.cfg.drop; t > 0; t--) { + r.call(this); + } + } + }); + e.RC4Drop = n._createHelper(a); + }(), t.mode.CTRGladman = function () { + function r(t) { + if (255 === (t >> 24 & 255)) { + var r = t >> 16 & 255, + e = t >> 8 & 255, + i = 255 & t; + 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i; + } else t += 1 << 24; + + return t; + } + + function e(t) { + return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t; + } + + var i = t.lib.BlockCipherMode.extend(), + n = i.Encryptor = i.extend({ + processBlock: function processBlock(t, r) { + var i = this._cipher, + n = i.blockSize, + o = this._iv, + s = this._counter; + o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); + var a = s.slice(0); + i.encryptBlock(a, 0); + + for (var c = 0; c < n; c++) { + t[r + c] ^= a[c]; + } + } + }); + return i.Decryptor = n, i; + }(), function () { + function r() { + for (var t = this._X, r = this._C, e = 0; e < 8; e++) { + a[e] = r[e]; + } + + r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; + + for (var e = 0; e < 8; e++) { + var i = t[e] + r[e], + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + c[e] = s ^ h; + } + + t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; + } + + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.Rabbit = n.extend({ + _doReset: function _doReset() { + for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++) { + t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); + } + + var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], + o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; + this._b = 0; + + for (var i = 0; i < 4; i++) { + r.call(this); + } + + for (var i = 0; i < 8; i++) { + o[i] ^= n[i + 4 & 7]; + } + + if (e) { + var s = e.words, + a = s[0], + c = s[1], + h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), + l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), + f = h >>> 16 | 4294901760 & l, + u = l << 16 | 65535 & h; + o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; + + for (var i = 0; i < 4; i++) { + r.call(this); + } + } + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + + for (var n = 0; n < 4; n++) { + s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + } + }, + blockSize: 4, + ivSize: 2 + }); + e.Rabbit = n._createHelper(h); + }(), t.mode.CTR = function () { + var r = t.lib.BlockCipherMode.extend(), + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, + i = e.blockSize, + n = this._iv, + o = this._counter; + n && (o = this._counter = n.slice(0), this._iv = void 0); + var s = o.slice(0); + e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; + + for (var a = 0; a < i; a++) { + t[r + a] ^= s[a]; + } + } + }); + return r.Decryptor = e, r; + }(), function () { + function r() { + for (var t = this._X, r = this._C, e = 0; e < 8; e++) { + a[e] = r[e]; + } + + r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; + + for (var e = 0; e < 8; e++) { + var i = t[e] + r[e], + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + c[e] = s ^ h; + } + + t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; + } + + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.RabbitLegacy = n.extend({ + _doReset: function _doReset() { + var t = this._key.words, + e = this.cfg.iv, + i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], + n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; + this._b = 0; + + for (var o = 0; o < 4; o++) { + r.call(this); + } + + for (var o = 0; o < 8; o++) { + n[o] ^= i[o + 4 & 7]; + } + + if (e) { + var s = e.words, + a = s[0], + c = s[1], + h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), + l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), + f = h >>> 16 | 4294901760 & l, + u = l << 16 | 65535 & h; + n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; + + for (var o = 0; o < 4; o++) { + r.call(this); + } + } + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + + for (var n = 0; n < 4; n++) { + s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + } + }, + blockSize: 4, + ivSize: 2 + }); + e.RabbitLegacy = n._createHelper(h); + }(), t.pad.ZeroPadding = { + pad: function pad(t, r) { + var e = 4 * r; + t.clamp(), t.sigBytes += e - (t.sigBytes % e || e); + }, + unpad: function unpad(t) { + for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);) { + e--; + } + + t.sigBytes = e + 1; + } + }, t; +}); //# sourceMappingURL=crypto-js.min.js.map + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENyeXB0b1xcY3J5cHRvLWpzLm1pbi5qcyJdLCJuYW1lcyI6WyJ0IiwiciIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJDcnlwdG9KUyIsImUiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm90b3R5cGUiLCJpIiwibiIsImxpYiIsIm8iLCJCYXNlIiwiZXh0ZW5kIiwibWl4SW4iLCJoYXNPd25Qcm9wZXJ0eSIsImluaXQiLCIkc3VwZXIiLCJhcHBseSIsImFyZ3VtZW50cyIsInRvU3RyaW5nIiwiY2xvbmUiLCJzIiwiV29yZEFycmF5Iiwid29yZHMiLCJzaWdCeXRlcyIsImxlbmd0aCIsImMiLCJzdHJpbmdpZnkiLCJjb25jYXQiLCJjbGFtcCIsImNlaWwiLCJjYWxsIiwic2xpY2UiLCJyYW5kb20iLCJhIiwicHVzaCIsImVuYyIsIkhleCIsImpvaW4iLCJwYXJzZSIsInBhcnNlSW50Iiwic3Vic3RyIiwiaCIsIkxhdGluMSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImNoYXJDb2RlQXQiLCJsIiwiVXRmOCIsImRlY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsIkVycm9yIiwidW5lc2NhcGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJmIiwiQnVmZmVyZWRCbG9ja0FsZ29yaXRobSIsInJlc2V0IiwiX2RhdGEiLCJfbkRhdGFCeXRlcyIsIl9hcHBlbmQiLCJfcHJvY2VzcyIsImJsb2NrU2l6ZSIsIm1heCIsIl9taW5CdWZmZXJTaXplIiwibWluIiwiX2RvUHJvY2Vzc0Jsb2NrIiwidSIsInNwbGljZSIsIkhhc2hlciIsImNmZyIsIl9kb1Jlc2V0IiwidXBkYXRlIiwiZmluYWxpemUiLCJfZG9GaW5hbGl6ZSIsIl9jcmVhdGVIZWxwZXIiLCJfY3JlYXRlSG1hY0hlbHBlciIsIkhNQUMiLCJhbGdvIiwiTWF0aCIsIkJhc2U2NCIsIl9tYXAiLCJjaGFyQXQiLCJfcmV2ZXJzZU1hcCIsImluZGV4T2YiLCJhYnMiLCJzaW4iLCJNRDUiLCJfaGFzaCIsImQiLCJ2IiwicCIsIl8iLCJ5IiwiZyIsIkIiLCJ3IiwiayIsIlMiLCJtIiwieCIsImIiLCJIIiwieiIsIkEiLCJDIiwiRCIsImZsb29yIiwiSG1hY01ENSIsIlNIQTEiLCJIbWFjU0hBMSIsInNxcnQiLCJwb3ciLCJTSEEyNTYiLCJIbWFjU0hBMjU2IiwiVXRmMTYiLCJVdGYxNkJFIiwiVXRmMTZMRSIsIkFycmF5QnVmZmVyIiwiVWludDhBcnJheSIsIkludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiSW50MTZBcnJheSIsIlVpbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIlVpbnQzMkFycmF5IiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiYnVmZmVyIiwiYnl0ZU9mZnNldCIsImJ5dGVMZW5ndGgiLCJSSVBFTUQxNjAiLCJSIiwiRSIsIk0iLCJGIiwiSG1hY1JJUEVNRDE2MCIsIl9oYXNoZXIiLCJfb0tleSIsIl9pS2V5IiwiUEJLREYyIiwia2V5U2l6ZSIsImhhc2hlciIsIml0ZXJhdGlvbnMiLCJjb21wdXRlIiwiRXZwS0RGIiwiU0hBMjI0IiwiSG1hY1NIQTIyNCIsIng2NCIsIldvcmQiLCJoaWdoIiwibG93IiwidG9YMzIiLCJTSEEzIiwib3V0cHV0TGVuZ3RoIiwiX3N0YXRlIiwiSG1hY1NIQTMiLCJTSEE1MTIiLCJQIiwiVyIsIk8iLCJVIiwiSSIsIksiLCJYIiwiTCIsImoiLCJOIiwiVCIsIloiLCJxIiwiRyIsIkoiLCIkIiwiUSIsIlYiLCJZIiwidHQiLCJydCIsImV0IiwiaXQiLCJudCIsIm90Iiwic3QiLCJhdCIsImN0IiwiaHQiLCJsdCIsImZ0IiwidXQiLCJkdCIsInZ0IiwicHQiLCJfdCIsInl0IiwiZ3QiLCJCdCIsInd0Iiwia3QiLCJTdCIsIm10IiwieHQiLCJidCIsIkhtYWNTSEE1MTIiLCJTSEEzODQiLCJIbWFjU0hBMzg0IiwiQ2lwaGVyIiwiY3JlYXRlRW5jcnlwdG9yIiwiX0VOQ19YRk9STV9NT0RFIiwiY3JlYXRlRGVjcnlwdG9yIiwiX0RFQ19YRk9STV9NT0RFIiwiX3hmb3JtTW9kZSIsIl9rZXkiLCJwcm9jZXNzIiwiaXZTaXplIiwiZW5jcnlwdCIsImRlY3J5cHQiLCJTdHJlYW1DaXBoZXIiLCJtb2RlIiwiQmxvY2tDaXBoZXJNb2RlIiwiRW5jcnlwdG9yIiwiRGVjcnlwdG9yIiwiX2NpcGhlciIsIl9pdiIsIkNCQyIsIl9wcmV2QmxvY2siLCJwcm9jZXNzQmxvY2siLCJlbmNyeXB0QmxvY2siLCJkZWNyeXB0QmxvY2siLCJwYWQiLCJQa2NzNyIsInVucGFkIiwiQmxvY2tDaXBoZXIiLCJwYWRkaW5nIiwiaXYiLCJfbW9kZSIsIl9fY3JlYXRvciIsIkNpcGhlclBhcmFtcyIsImZvcm1hdHRlciIsImZvcm1hdCIsIk9wZW5TU0wiLCJjaXBoZXJ0ZXh0Iiwic2FsdCIsIlNlcmlhbGl6YWJsZUNpcGhlciIsImtleSIsImFsZ29yaXRobSIsIl9wYXJzZSIsImtkZiIsImV4ZWN1dGUiLCJQYXNzd29yZEJhc2VkQ2lwaGVyIiwiQ0ZCIiwiRUNCIiwiQW5zaVg5MjMiLCJJc28xMDEyNiIsIklzbzk3OTcxIiwiWmVyb1BhZGRpbmciLCJPRkIiLCJfa2V5c3RyZWFtIiwiTm9QYWRkaW5nIiwiQUVTIiwiX25Sb3VuZHMiLCJfa2V5UHJpb3JSZXNldCIsIl9rZXlTY2hlZHVsZSIsIl9pbnZLZXlTY2hlZHVsZSIsIl9kb0NyeXB0QmxvY2siLCJfbEJsb2NrIiwiX3JCbG9jayIsIkRFUyIsIl9zdWJLZXlzIiwiX2ludlN1YktleXMiLCJUcmlwbGVERVMiLCJfZGVzMSIsIl9kZXMyIiwiX2RlczMiLCJfUyIsIl9pIiwiX2oiLCJSQzQiLCJSQzREcm9wIiwiZHJvcCIsIkNUUkdsYWRtYW4iLCJfY291bnRlciIsIl9YIiwiX0MiLCJfYiIsIlJhYmJpdCIsIkNUUiIsIlJhYmJpdExlZ2FjeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxDQUFDLFVBQVNBLENBQVQsRUFBV0MsQ0FBWCxFQUFhO0FBQUMs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RUFBYSxDQUFiLEVBQWUsQ0FBZixFQUFpQixDQUFqQixFQUFtQixDQUFuQixFQUFxQixFQUFyQixFQUF3QixFQUF4QixFQUEyQixFQUEzQixFQUE4QixFQUE5QixFQUFpQyxDQUFqQyxFQUFtQyxDQUFuQyxFQUFxQyxDQUFyQyxFQUF1QyxDQUF2QyxFQUF5QyxDQUF6QyxFQUEyQyxDQUEzQyxFQUE2QyxDQUE3QyxFQUErQyxFQUEvQyxFQUFrRCxFQUFsRCxFQUFxRCxDQUFyRCxFQUF1RCxDQUF2RCxFQUF5RCxFQUF6RCxFQUE0RCxDQUE1RCxFQUE4RCxFQUE5RCxFQUFpRSxFQUFqRSxFQUFvRSxDQUFwRSxFQUFzRSxFQUF0RSxFQUF5RSxDQUF6RSxFQUEyRSxFQUEzRSxFQUE4RSxFQUE5RSxFQUFpRixFQUFqRixFQUFvRixFQUFwRixFQUF1RixDQUF2RixFQUF5RixDQUF6RixFQUEyRixFQUEzRixFQUE4RixDQUE5RixFQUFnRyxFQUFoRyxFQUFtRyxFQUFuRyxFQUFzRyxFQUF0RyxFQUF5RyxDQUF6RyxFQUEyRyxFQUEzRyxFQUE4RyxDQUE5RyxFQUFnSCxDQUFoSCxFQUFrSCxFQUFsSCxFQUFxSCxDQUFySCxFQUF1SCxDQUF2SCxFQUF5SCxFQUF6SCxFQUE0SCxFQUE1SCxFQUErSCxFQUEvSCxFQUFrSSxFQUFsSSxFQUFxSSxFQUFySSxFQUF3SSxFQUF4SSxFQUEySSxDQUEzSSxFQUE2SSxDQUE3SSxFQUErSSxDQUEvSSxFQUFpSixFQUFqSixFQUFvSixDQUFwSixFQUFzSixDQUF0SixFQUF3SixDQUF4SixFQUEwSixDQUExSixFQUE0SixDQUE1SixFQUE4SixFQUE5SixFQUFpSyxDQUFqSyxFQUFtSyxFQUFuSyxFQUFzSyxDQUF0SyxFQUF3SyxFQUF4SyxFQUEySyxDQUEzSyxFQUE2SyxDQUE3SyxFQUErSyxFQUEvSyxFQUFrTCxFQUFsTCxFQUFxTCxDQUFyTCxFQUF1TCxFQUF2TCxFQUEwTCxFQUExTCxFQUE2TCxFQUE3TCxFQUFnTSxFQUFoTSxFQUFtTSxDQUFuTSxFQUFxTSxDQUFyTSxFQUF1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ckIsQ0FBQyxHQUFDLENBQWI7QUFBZTtBQUExSyxHQURueVgsRUFDKzhYUCxDQUR0OVg7QUFDdzlYLENBRGpoZixDQUFELEVBRUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIiFmdW5jdGlvbih0LHIpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWV4cG9ydHM9cigpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10scik6dC5DcnlwdG9KUz1yKCl9KHRoaXMsZnVuY3Rpb24oKXt2YXIgdD10fHxmdW5jdGlvbih0LHIpe3ZhciBlPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gZnVuY3Rpb24ocil7dmFyIGU7cmV0dXJuIHQucHJvdG90eXBlPXIsZT1uZXcgdCx0LnByb3RvdHlwZT1udWxsLGV9fSgpLGk9e30sbj1pLmxpYj17fSxvPW4uQmFzZT1mdW5jdGlvbigpe3JldHVybntleHRlbmQ6ZnVuY3Rpb24odCl7dmFyIHI9ZSh0aGlzKTtyZXR1cm4gdCYmci5taXhJbih0KSxyLmhhc093blByb3BlcnR5KFwiaW5pdFwiKSYmdGhpcy5pbml0IT09ci5pbml0fHwoci5pbml0PWZ1bmN0aW9uKCl7ci4kc3VwZXIuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxyLmluaXQucHJvdG90eXBlPXIsci4kc3VwZXI9dGhpcyxyfSxjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmV4dGVuZCgpO3JldHVybiB0LmluaXQuYXBwbHkodCxhcmd1bWVudHMpLHR9LGluaXQ6ZnVuY3Rpb24oKXt9LG1peEluOmZ1bmN0aW9uKHQpe2Zvcih2YXIgciBpbiB0KXQuaGFzT3duUHJvcGVydHkocikmJih0aGlzW3JdPXRbcl0pO3QuaGFzT3duUHJvcGVydHkoXCJ0b1N0cmluZ1wiKSYmKHRoaXMudG9TdHJpbmc9dC50b1N0cmluZyl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdC5wcm90b3R5cGUuZXh0ZW5kKHRoaXMpfX19KCkscz1uLldvcmRBcnJheT1vLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LGUpe3Q9dGhpcy53b3Jkcz10fHxbXSxlIT1yP3RoaXMuc2lnQnl0ZXM9ZTp0aGlzLnNpZ0J5dGVzPTQqdC5sZW5ndGh9LHRvU3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybih0fHxjKS5zdHJpbmdpZnkodGhpcyl9LGNvbmNhdDpmdW5jdGlvbih0KXt2YXIgcj10aGlzLndvcmRzLGU9dC53b3JkcyxpPXRoaXMuc2lnQnl0ZXMsbj10LnNpZ0J5dGVzO2lmKHRoaXMuY2xhbXAoKSxpJTQpZm9yKHZhciBvPTA7bzxuO28rKyl7dmFyIHM9ZVtvPj4+Ml0+Pj4yNC1vJTQqOCYyNTU7cltpK28+Pj4yXXw9czw8MjQtKGkrbyklNCo4fWVsc2UgZm9yKHZhciBvPTA7bzxuO28rPTQpcltpK28+Pj4yXT1lW28+Pj4yXTtyZXR1cm4gdGhpcy5zaWdCeXRlcys9bix0aGlzfSxjbGFtcDpmdW5jdGlvbigpe3ZhciByPXRoaXMud29yZHMsZT10aGlzLnNpZ0J5dGVzO3JbZT4+PjJdJj00Mjk0OTY3Mjk1PDwzMi1lJTQqOCxyLmxlbmd0aD10LmNlaWwoZS80KX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1vLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQud29yZHM9dGhpcy53b3Jkcy5zbGljZSgwKSx0fSxyYW5kb206ZnVuY3Rpb24ocil7Zm9yKHZhciBlLGk9W10sbj1mdW5jdGlvbihyKXt2YXIgcj1yLGU9OTg3NjU0MzIxLGk9NDI5NDk2NzI5NTtyZXR1cm4gZnVuY3Rpb24oKXtlPTM2OTY5Kig2NTUzNSZlKSsoZT4+MTYpJmkscj0xOGUzKig2NTUzNSZyKSsocj4+MTYpJmk7dmFyIG49KGU8PDE2KStyJmk7cmV0dXJuIG4vPTQyOTQ5NjcyOTYsbis9LjUsbioodC5yYW5kb20oKT4uNT8xOi0xKX19LG89MDtvPHI7bys9NCl7dmFyIGE9big0Mjk0OTY3Mjk2KihlfHx0LnJhbmRvbSgpKSk7ZT05ODc2NTQwNzEqYSgpLGkucHVzaCg0Mjk0OTY3Mjk2KmEoKXwwKX1yZXR1cm4gbmV3IHMuaW5pdChpLHIpfX0pLGE9aS5lbmM9e30sYz1hLkhleD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPVtdLG49MDtuPGU7bisrKXt2YXIgbz1yW24+Pj4yXT4+PjI0LW4lNCo4JjI1NTtpLnB1c2goKG8+Pj40KS50b1N0cmluZygxNikpLGkucHVzaCgoMTUmbykudG9TdHJpbmcoMTYpKX1yZXR1cm4gaS5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGgsZT1bXSxpPTA7aTxyO2krPTIpZVtpPj4+M118PXBhcnNlSW50KHQuc3Vic3RyKGksMiksMTYpPDwyNC1pJTgqNDtyZXR1cm4gbmV3IHMuaW5pdChlLHIvMil9fSxoPWEuTGF0aW4xPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQud29yZHMsZT10LnNpZ0J5dGVzLGk9W10sbj0wO248ZTtuKyspe3ZhciBvPXJbbj4+PjJdPj4+MjQtbiU0KjgmMjU1O2kucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG8pKX1yZXR1cm4gaS5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGgsZT1bXSxpPTA7aTxyO2krKyllW2k+Pj4yXXw9KDI1NSZ0LmNoYXJDb2RlQXQoaSkpPDwyNC1pJTQqODtyZXR1cm4gbmV3IHMuaW5pdChlLHIpfX0sbD1hLlV0Zjg9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoaC5zdHJpbmdpZnkodCkpKX1jYXRjaCh0KXt0aHJvdyBuZXcgRXJyb3IoXCJNYWxmb3JtZWQgVVRGLTggZGF0YVwiKX19LHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBoLnBhcnNlKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh0KSkpfX0sZj1uLkJ1ZmZlcmVkQmxvY2tBbGdvcml0aG09by5leHRlbmQoe3Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5fZGF0YT1uZXcgcy5pbml0LHRoaXMuX25EYXRhQnl0ZXM9MH0sX2FwcGVuZDpmdW5jdGlvbih0KXtcInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9bC5wYXJzZSh0KSksdGhpcy5fZGF0YS5jb25jYXQodCksdGhpcy5fbkRhdGFCeXRlcys9dC5zaWdCeXRlc30sX3Byb2Nlc3M6ZnVuY3Rpb24ocil7dmFyIGU9dGhpcy5fZGF0YSxpPWUud29yZHMsbj1lLnNpZ0J5dGVzLG89dGhpcy5ibG9ja1NpemUsYT00Km8sYz1uL2E7Yz1yP3QuY2VpbChjKTp0Lm1heCgoMHxjKS10aGlzLl9taW5CdWZmZXJTaXplLDApO3ZhciBoPWMqbyxsPXQubWluKDQqaCxuKTtpZihoKXtmb3IodmFyIGY9MDtmPGg7Zis9byl0aGlzLl9kb1Byb2Nlc3NCbG9jayhpLGYpO3ZhciB1PWkuc3BsaWNlKDAsaCk7ZS5zaWdCeXRlcy09bH1yZXR1cm4gbmV3IHMuaW5pdCh1LGwpfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW8uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5fZGF0YT10aGlzLl9kYXRhLmNsb25lKCksdH0sX21pbkJ1ZmZlclNpemU6MH0pLHU9KG4uSGFzaGVyPWYuZXh0ZW5kKHtjZmc6by5leHRlbmQoKSxpbml0OmZ1bmN0aW9uKHQpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZCh0KSx0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7Zi5yZXNldC5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX0sdXBkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hcHBlbmQodCksdGhpcy5fcHJvY2VzcygpLHRoaXN9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3QmJnRoaXMuX2FwcGVuZCh0KTt2YXIgcj10aGlzLl9kb0ZpbmFsaXplKCk7cmV0dXJuIHJ9LGJsb2NrU2l6ZToxNixfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyLGUpe3JldHVybiBuZXcgdC5pbml0KGUpLmZpbmFsaXplKHIpfX0sX2NyZWF0ZUhtYWNIZWxwZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIsZSl7cmV0dXJuIG5ldyB1LkhNQUMuaW5pdCh0LGUpLmZpbmFsaXplKHIpfX19KSxpLmFsZ289e30pO3JldHVybiBpfShNYXRoKTtyZXR1cm4gZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQscixlKXtmb3IodmFyIGk9W10sbz0wLHM9MDtzPHI7cysrKWlmKHMlNCl7dmFyIGE9ZVt0LmNoYXJDb2RlQXQocy0xKV08PHMlNCoyLGM9ZVt0LmNoYXJDb2RlQXQocyldPj4+Ni1zJTQqMjtpW28+Pj4yXXw9KGF8Yyk8PDI0LW8lNCo4LG8rK31yZXR1cm4gbi5jcmVhdGUoaSxvKX12YXIgZT10LGk9ZS5saWIsbj1pLldvcmRBcnJheSxvPWUuZW5jO28uQmFzZTY0PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7dmFyIHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMsaT10aGlzLl9tYXA7dC5jbGFtcCgpO2Zvcih2YXIgbj1bXSxvPTA7bzxlO28rPTMpZm9yKHZhciBzPXJbbz4+PjJdPj4+MjQtbyU0KjgmMjU1LGE9cltvKzE+Pj4yXT4+PjI0LShvKzEpJTQqOCYyNTUsYz1yW28rMj4+PjJdPj4+MjQtKG8rMiklNCo4JjI1NSxoPXM8PDE2fGE8PDh8YyxsPTA7bDw0JiZvKy43NSpsPGU7bCsrKW4ucHVzaChpLmNoYXJBdChoPj4+NiooMy1sKSY2MykpO3ZhciBmPWkuY2hhckF0KDY0KTtpZihmKWZvcig7bi5sZW5ndGglNDspbi5wdXNoKGYpO3JldHVybiBuLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoLGk9dGhpcy5fbWFwLG49dGhpcy5fcmV2ZXJzZU1hcDtpZighbil7bj10aGlzLl9yZXZlcnNlTWFwPVtdO2Zvcih2YXIgbz0wO288aS5sZW5ndGg7bysrKW5baS5jaGFyQ29kZUF0KG8pXT1vfXZhciBzPWkuY2hhckF0KDY0KTtpZihzKXt2YXIgYT10LmluZGV4T2Yocyk7YSE9PS0xJiYoZT1hKX1yZXR1cm4gcih0LGUsbil9LF9tYXA6XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVwifX0oKSxmdW5jdGlvbihyKXtmdW5jdGlvbiBlKHQscixlLGksbixvLHMpe3ZhciBhPXQrKHImZXx+ciZpKStuK3M7cmV0dXJuKGE8PG98YT4+PjMyLW8pK3J9ZnVuY3Rpb24gaSh0LHIsZSxpLG4sbyxzKXt2YXIgYT10KyhyJml8ZSZ+aSkrbitzO3JldHVybihhPDxvfGE+Pj4zMi1vKStyfWZ1bmN0aW9uIG4odCxyLGUsaSxuLG8scyl7dmFyIGE9dCsocl5lXmkpK24rcztyZXR1cm4oYTw8b3xhPj4+MzItbykrcn1mdW5jdGlvbiBvKHQscixlLGksbixvLHMpe3ZhciBhPXQrKGVeKHJ8fmkpKStuK3M7cmV0dXJuKGE8PG98YT4+PjMyLW8pK3J9dmFyIHM9dCxhPXMubGliLGM9YS5Xb3JkQXJyYXksaD1hLkhhc2hlcixsPXMuYWxnbyxmPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8NjQ7dCsrKWZbdF09NDI5NDk2NzI5NipyLmFicyhyLnNpbih0KzEpKXwwfSgpO3ZhciB1PWwuTUQ1PWguZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IGMuaW5pdChbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4XSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgcz0wO3M8MTY7cysrKXt2YXIgYT1yK3MsYz10W2FdO3RbYV09MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCl9dmFyIGg9dGhpcy5faGFzaC53b3JkcyxsPXRbciswXSx1PXRbcisxXSxkPXRbcisyXSx2PXRbciszXSxwPXRbcis0XSxfPXRbcis1XSx5PXRbcis2XSxnPXRbcis3XSxCPXRbcis4XSx3PXRbcis5XSxrPXRbcisxMF0sUz10W3IrMTFdLG09dFtyKzEyXSx4PXRbcisxM10sYj10W3IrMTRdLEg9dFtyKzE1XSx6PWhbMF0sQT1oWzFdLEM9aFsyXSxEPWhbM107ej1lKHosQSxDLEQsbCw3LGZbMF0pLEQ9ZShELHosQSxDLHUsMTIsZlsxXSksQz1lKEMsRCx6LEEsZCwxNyxmWzJdKSxBPWUoQSxDLEQseix2LDIyLGZbM10pLHo9ZSh6LEEsQyxELHAsNyxmWzRdKSxEPWUoRCx6LEEsQyxfLDEyLGZbNV0pLEM9ZShDLEQseixBLHksMTcsZls2XSksQT1lKEEsQyxELHosZywyMixmWzddKSx6PWUoeixBLEMsRCxCLDcsZls4XSksRD1lKEQseixBLEMsdywxMixmWzldKSxDPWUoQyxELHosQSxrLDE3LGZbMTBdKSxBPWUoQSxDLEQseixTLDIyLGZbMTFdKSx6PWUoeixBLEMsRCxtLDcsZlsxMl0pLEQ9ZShELHosQSxDLHgsMTIsZlsxM10pLEM9ZShDLEQseixBLGIsMTcsZlsxNF0pLEE9ZShBLEMsRCx6LEgsMjIsZlsxNV0pLHo9aSh6LEEsQyxELHUsNSxmWzE2XSksRD1pKEQseixBLEMseSw5LGZbMTddKSxDPWkoQyxELHosQSxTLDE0LGZbMThdKSxBPWkoQSxDLEQseixsLDIwLGZbMTldKSx6PWkoeixBLEMsRCxfLDUsZlsyMF0pLEQ9aShELHosQSxDLGssOSxmWzIxXSksQz1pKEMsRCx6LEEsSCwxNCxmWzIyXSksQT1pKEEsQyxELHoscCwyMCxmWzIzXSksej1pKHosQSxDLEQsdyw1LGZbMjRdKSxEPWkoRCx6LEEsQyxiLDksZlsyNV0pLEM9aShDLEQseixBLHYsMTQsZlsyNl0pLEE9aShBLEMsRCx6LEIsMjAsZlsyN10pLHo9aSh6LEEsQyxELHgsNSxmWzI4XSksRD1pKEQseixBLEMsZCw5LGZbMjldKSxDPWkoQyxELHosQSxnLDE0LGZbMzBdKSxBPWkoQSxDLEQseixtLDIwLGZbMzFdKSx6PW4oeixBLEMsRCxfLDQsZlszMl0pLEQ9bihELHosQSxDLEIsMTEsZlszM10pLEM9bihDLEQseixBLFMsMTYsZlszNF0pLEE9bihBLEMsRCx6LGIsMjMsZlszNV0pLHo9bih6LEEsQyxELHUsNCxmWzM2XSksRD1uKEQseixBLEMscCwxMSxmWzM3XSksQz1uKEMsRCx6LEEsZywxNixmWzM4XSksQT1uKEEsQyxELHosaywyMyxmWzM5XSksej1uKHosQSxDLEQseCw0LGZbNDBdKSxEPW4oRCx6LEEsQyxsLDExLGZbNDFdKSxDPW4oQyxELHosQSx2LDE2LGZbNDJdKSxBPW4oQSxDLEQseix5LDIzLGZbNDNdKSx6PW4oeixBLEMsRCx3LDQsZls0NF0pLEQ9bihELHosQSxDLG0sMTEsZls0NV0pLEM9bihDLEQseixBLEgsMTYsZls0Nl0pLEE9bihBLEMsRCx6LGQsMjMsZls0N10pLHo9byh6LEEsQyxELGwsNixmWzQ4XSksRD1vKEQseixBLEMsZywxMCxmWzQ5XSksQz1vKEMsRCx6LEEsYiwxNSxmWzUwXSksQT1vKEEsQyxELHosXywyMSxmWzUxXSksej1vKHosQSxDLEQsbSw2LGZbNTJdKSxEPW8oRCx6LEEsQyx2LDEwLGZbNTNdKSxDPW8oQyxELHosQSxrLDE1LGZbNTRdKSxBPW8oQSxDLEQseix1LDIxLGZbNTVdKSx6PW8oeixBLEMsRCxCLDYsZls1Nl0pLEQ9byhELHosQSxDLEgsMTAsZls1N10pLEM9byhDLEQseixBLHksMTUsZls1OF0pLEE9byhBLEMsRCx6LHgsMjEsZls1OV0pLHo9byh6LEEsQyxELHAsNixmWzYwXSksRD1vKEQseixBLEMsUywxMCxmWzYxXSksQz1vKEMsRCx6LEEsZCwxNSxmWzYyXSksQT1vKEEsQyxELHosdywyMSxmWzYzXSksaFswXT1oWzBdK3p8MCxoWzFdPWhbMV0rQXwwLGhbMl09aFsyXStDfDAsaFszXT1oWzNdK0R8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxpPTgqdGhpcy5fbkRhdGFCeXRlcyxuPTgqdC5zaWdCeXRlcztlW24+Pj41XXw9MTI4PDwyNC1uJTMyO3ZhciBvPXIuZmxvb3IoaS80Mjk0OTY3Mjk2KSxzPWk7ZVsobis2ND4+Pjk8PDQpKzE1XT0xNjcxMTkzNSYobzw8OHxvPj4+MjQpfDQyNzgyNTUzNjAmKG88PDI0fG8+Pj44KSxlWyhuKzY0Pj4+OTw8NCkrMTRdPTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpLHQuc2lnQnl0ZXM9NCooZS5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgYT10aGlzLl9oYXNoLGM9YS53b3JkcyxoPTA7aDw0O2grKyl7dmFyIGw9Y1toXTtjW2hdPTE2NzExOTM1JihsPDw4fGw+Pj4yNCl8NDI3ODI1NTM2MCYobDw8MjR8bD4+PjgpfXJldHVybiBhfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWguY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtzLk1ENT1oLl9jcmVhdGVIZWxwZXIodSkscy5IbWFjTUQ1PWguX2NyZWF0ZUhtYWNIZWxwZXIodSl9KE1hdGgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5Xb3JkQXJyYXksbj1lLkhhc2hlcixvPXIuYWxnbyxzPVtdLGE9by5TSEExPW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IGkuaW5pdChbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuX2hhc2gud29yZHMsaT1lWzBdLG49ZVsxXSxvPWVbMl0sYT1lWzNdLGM9ZVs0XSxoPTA7aDw4MDtoKyspe2lmKGg8MTYpc1toXT0wfHRbcitoXTtlbHNle3ZhciBsPXNbaC0zXV5zW2gtOF1ec1toLTE0XV5zW2gtMTZdO3NbaF09bDw8MXxsPj4+MzF9dmFyIGY9KGk8PDV8aT4+PjI3KStjK3NbaF07Zis9aDwyMD8obiZvfH5uJmEpKzE1MTg1MDAyNDk6aDw0MD8obl5vXmEpKzE4NTk3NzUzOTM6aDw2MD8obiZvfG4mYXxvJmEpLTE4OTQwMDc1ODg6KG5eb15hKS04OTk0OTc1MTQsYz1hLGE9byxvPW48PDMwfG4+Pj4yLG49aSxpPWZ9ZVswXT1lWzBdK2l8MCxlWzFdPWVbMV0rbnwwLGVbMl09ZVsyXStvfDAsZVszXT1lWzNdK2F8MCxlWzRdPWVbNF0rY3wwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEscj10LndvcmRzLGU9OCp0aGlzLl9uRGF0YUJ5dGVzLGk9OCp0LnNpZ0J5dGVzO3JldHVybiByW2k+Pj41XXw9MTI4PDwyNC1pJTMyLHJbKGkrNjQ+Pj45PDw0KSsxNF09TWF0aC5mbG9vcihlLzQyOTQ5NjcyOTYpLHJbKGkrNjQ+Pj45PDw0KSsxNV09ZSx0LnNpZ0J5dGVzPTQqci5sZW5ndGgsdGhpcy5fcHJvY2VzcygpLHRoaXMuX2hhc2h9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9bi5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pO3IuU0hBMT1uLl9jcmVhdGVIZWxwZXIoYSksci5IbWFjU0hBMT1uLl9jcmVhdGVIbWFjSGVscGVyKGEpfSgpLGZ1bmN0aW9uKHIpe3ZhciBlPXQsaT1lLmxpYixuPWkuV29yZEFycmF5LG89aS5IYXNoZXIscz1lLmFsZ28sYT1bXSxjPVtdOyFmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7Zm9yKHZhciBlPXIuc3FydCh0KSxpPTI7aTw9ZTtpKyspaWYoISh0JWkpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGUodCl7cmV0dXJuIDQyOTQ5NjcyOTYqKHQtKDB8dCkpfDB9Zm9yKHZhciBpPTIsbj0wO248NjQ7KXQoaSkmJihuPDgmJihhW25dPWUoci5wb3coaSwuNSkpKSxjW25dPWUoci5wb3coaSwxLzMpKSxuKyspLGkrK30oKTt2YXIgaD1bXSxsPXMuU0hBMjU2PW8uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IG4uaW5pdChhLnNsaWNlKDApKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuX2hhc2gud29yZHMsaT1lWzBdLG49ZVsxXSxvPWVbMl0scz1lWzNdLGE9ZVs0XSxsPWVbNV0sZj1lWzZdLHU9ZVs3XSxkPTA7ZDw2NDtkKyspe2lmKGQ8MTYpaFtkXT0wfHRbcitkXTtlbHNle3ZhciB2PWhbZC0xNV0scD0odjw8MjV8dj4+PjcpXih2PDwxNHx2Pj4+MTgpXnY+Pj4zLF89aFtkLTJdLHk9KF88PDE1fF8+Pj4xNyleKF88PDEzfF8+Pj4xOSleXz4+PjEwO2hbZF09cCtoW2QtN10reStoW2QtMTZdfXZhciBnPWEmbF5+YSZmLEI9aSZuXmkmb15uJm8sdz0oaTw8MzB8aT4+PjIpXihpPDwxOXxpPj4+MTMpXihpPDwxMHxpPj4+MjIpLGs9KGE8PDI2fGE+Pj42KV4oYTw8MjF8YT4+PjExKV4oYTw8N3xhPj4+MjUpLFM9dStrK2crY1tkXStoW2RdLG09dytCO3U9ZixmPWwsbD1hLGE9cytTfDAscz1vLG89bixuPWksaT1TK218MH1lWzBdPWVbMF0raXwwLGVbMV09ZVsxXStufDAsZVsyXT1lWzJdK298MCxlWzNdPWVbM10rc3wwLGVbNF09ZVs0XSthfDAsZVs1XT1lWzVdK2x8MCxlWzZdPWVbNl0rZnwwLGVbN109ZVs3XSt1fDB9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxlPXQud29yZHMsaT04KnRoaXMuX25EYXRhQnl0ZXMsbj04KnQuc2lnQnl0ZXM7cmV0dXJuIGVbbj4+PjVdfD0xMjg8PDI0LW4lMzIsZVsobis2ND4+Pjk8PDQpKzE0XT1yLmZsb29yKGkvNDI5NDk2NzI5NiksZVsobis2ND4+Pjk8PDQpKzE1XT1pLHQuc2lnQnl0ZXM9NCplLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCksdGhpcy5faGFzaH0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1vLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSk7ZS5TSEEyNTY9by5fY3JlYXRlSGVscGVyKGwpLGUuSG1hY1NIQTI1Nj1vLl9jcmVhdGVIbWFjSGVscGVyKGwpfShNYXRoKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQ8PDgmNDI3ODI1NTM2MHx0Pj4+OCYxNjcxMTkzNX12YXIgZT10LGk9ZS5saWIsbj1pLldvcmRBcnJheSxvPWUuZW5jO28uVXRmMTY9by5VdGYxNkJFPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQud29yZHMsZT10LnNpZ0J5dGVzLGk9W10sbj0wO248ZTtuKz0yKXt2YXIgbz1yW24+Pj4yXT4+PjE2LW4lNCo4JjY1NTM1O2kucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG8pKX1yZXR1cm4gaS5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGgsZT1bXSxpPTA7aTxyO2krKyllW2k+Pj4xXXw9dC5jaGFyQ29kZUF0KGkpPDwxNi1pJTIqMTY7cmV0dXJuIG4uY3JlYXRlKGUsMipyKX19O28uVXRmMTZMRT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLGk9dC5zaWdCeXRlcyxuPVtdLG89MDtvPGk7bys9Mil7dmFyIHM9cihlW28+Pj4yXT4+PjE2LW8lNCo4JjY1NTM1KTtuLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShzKSl9cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLGk9W10sbz0wO288ZTtvKyspaVtvPj4+MV18PXIodC5jaGFyQ29kZUF0KG8pPDwxNi1vJTIqMTYpO3JldHVybiBuLmNyZWF0ZShpLDIqZSl9fX0oKSxmdW5jdGlvbigpe2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIEFycmF5QnVmZmVyKXt2YXIgcj10LGU9ci5saWIsaT1lLldvcmRBcnJheSxuPWkuaW5pdCxvPWkuaW5pdD1mdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXImJih0PW5ldyBVaW50OEFycmF5KHQpKSwodCBpbnN0YW5jZW9mIEludDhBcnJheXx8XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5JiZ0IGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl8fHQgaW5zdGFuY2VvZiBJbnQxNkFycmF5fHx0IGluc3RhbmNlb2YgVWludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBJbnQzMkFycmF5fHx0IGluc3RhbmNlb2YgVWludDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXkpJiYodD1uZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKSksdCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2Zvcih2YXIgcj10LmJ5dGVMZW5ndGgsZT1bXSxpPTA7aTxyO2krKyllW2k+Pj4yXXw9dFtpXTw8MjQtaSU0Kjg7bi5jYWxsKHRoaXMsZSxyKX1lbHNlIG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtvLnByb3RvdHlwZT1pfX0oKSxmdW5jdGlvbihyKXtmdW5jdGlvbiBlKHQscixlKXtyZXR1cm4gdF5yXmV9ZnVuY3Rpb24gaSh0LHIsZSl7cmV0dXJuIHQmcnx+dCZlfWZ1bmN0aW9uIG4odCxyLGUpe3JldHVybih0fH5yKV5lfWZ1bmN0aW9uIG8odCxyLGUpe3JldHVybiB0JmV8ciZ+ZX1mdW5jdGlvbiBzKHQscixlKXtyZXR1cm4gdF4ocnx+ZSl9ZnVuY3Rpb24gYSh0LHIpe3JldHVybiB0PDxyfHQ+Pj4zMi1yfXZhciBjPXQsaD1jLmxpYixsPWguV29yZEFycmF5LGY9aC5IYXNoZXIsdT1jLmFsZ28sZD1sLmNyZWF0ZShbMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYsMiw0LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSksdj1sLmNyZWF0ZShbNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSkscD1sLmNyZWF0ZShbMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0pLF89bC5jcmVhdGUoWzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcsMTIsOCw5LDExLDcsNywxMiw3LDYsMTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdKSx5PWwuY3JlYXRlKFswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdKSxnPWwuY3JlYXRlKFsxMzUyODI5OTI2LDE1NDg2MDM2ODQsMTgzNjA3MjY5MSwyMDUzOTk0MjE3LDBdKSxCPXUuUklQRU1EMTYwPWYuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bC5jcmVhdGUoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgYz0wO2M8MTY7YysrKXt2YXIgaD1yK2MsbD10W2hdO3RbaF09MTY3MTE5MzUmKGw8PDh8bD4+PjI0KXw0Mjc4MjU1MzYwJihsPDwyNHxsPj4+OCl9dmFyIGYsdSxCLHcsayxTLG0seCxiLEgsej10aGlzLl9oYXNoLndvcmRzLEE9eS53b3JkcyxDPWcud29yZHMsRD1kLndvcmRzLFI9di53b3JkcyxFPXAud29yZHMsTT1fLndvcmRzO1M9Zj16WzBdLG09dT16WzFdLHg9Qj16WzJdLGI9dz16WzNdLEg9az16WzRdO2Zvcih2YXIgRixjPTA7Yzw4MDtjKz0xKUY9Zit0W3IrRFtjXV18MCxGKz1jPDE2P2UodSxCLHcpK0FbMF06YzwzMj9pKHUsQix3KStBWzFdOmM8NDg/bih1LEIsdykrQVsyXTpjPDY0P28odSxCLHcpK0FbM106cyh1LEIsdykrQVs0XSxGfD0wLEY9YShGLEVbY10pLEY9RitrfDAsZj1rLGs9dyx3PWEoQiwxMCksQj11LHU9RixGPVMrdFtyK1JbY11dfDAsRis9YzwxNj9zKG0seCxiKStDWzBdOmM8MzI/byhtLHgsYikrQ1sxXTpjPDQ4P24obSx4LGIpK0NbMl06Yzw2ND9pKG0seCxiKStDWzNdOmUobSx4LGIpK0NbNF0sRnw9MCxGPWEoRixNW2NdKSxGPUYrSHwwLFM9SCxIPWIsYj1hKHgsMTApLHg9bSxtPUY7Rj16WzFdK0IrYnwwLHpbMV09elsyXSt3K0h8MCx6WzJdPXpbM10raytTfDAselszXT16WzRdK2YrbXwwLHpbNF09elswXSt1K3h8MCx6WzBdPUZ9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxyPXQud29yZHMsZT04KnRoaXMuX25EYXRhQnl0ZXMsaT04KnQuc2lnQnl0ZXM7cltpPj4+NV18PTEyODw8MjQtaSUzMixyWyhpKzY0Pj4+OTw8NCkrMTRdPTE2NzExOTM1JihlPDw4fGU+Pj4yNCl8NDI3ODI1NTM2MCYoZTw8MjR8ZT4+PjgpLHQuc2lnQnl0ZXM9NCooci5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgbj10aGlzLl9oYXNoLG89bi53b3JkcyxzPTA7czw1O3MrKyl7dmFyIGE9b1tzXTtvW3NdPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpfXJldHVybiBufSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWYuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtjLlJJUEVNRDE2MD1mLl9jcmVhdGVIZWxwZXIoQiksYy5IbWFjUklQRU1EMTYwPWYuX2NyZWF0ZUhtYWNIZWxwZXIoQil9KE1hdGgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5CYXNlLG49ci5lbmMsbz1uLlV0Zjgscz1yLmFsZ287cy5ITUFDPWkuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQscil7dD10aGlzLl9oYXNoZXI9bmV3IHQuaW5pdCxcInN0cmluZ1wiPT10eXBlb2YgciYmKHI9by5wYXJzZShyKSk7dmFyIGU9dC5ibG9ja1NpemUsaT00KmU7ci5zaWdCeXRlcz5pJiYocj10LmZpbmFsaXplKHIpKSxyLmNsYW1wKCk7Zm9yKHZhciBuPXRoaXMuX29LZXk9ci5jbG9uZSgpLHM9dGhpcy5faUtleT1yLmNsb25lKCksYT1uLndvcmRzLGM9cy53b3JkcyxoPTA7aDxlO2grKylhW2hdXj0xNTQ5NTU2ODI4LGNbaF1ePTkwOTUyMjQ4NjtuLnNpZ0J5dGVzPXMuc2lnQnl0ZXM9aSx0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5faGFzaGVyO3QucmVzZXQoKSx0LnVwZGF0ZSh0aGlzLl9pS2V5KX0sdXBkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9oYXNoZXIudXBkYXRlKHQpLHRoaXN9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX2hhc2hlcixlPXIuZmluYWxpemUodCk7ci5yZXNldCgpO3ZhciBpPXIuZmluYWxpemUodGhpcy5fb0tleS5jbG9uZSgpLmNvbmNhdChlKSk7cmV0dXJuIGl9fSl9KCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci5saWIsaT1lLkJhc2Usbj1lLldvcmRBcnJheSxvPXIuYWxnbyxzPW8uU0hBMSxhPW8uSE1BQyxjPW8uUEJLREYyPWkuZXh0ZW5kKHtjZmc6aS5leHRlbmQoe2tleVNpemU6NCxoYXNoZXI6cyxpdGVyYXRpb25zOjF9KSxpbml0OmZ1bmN0aW9uKHQpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZCh0KX0sY29tcHV0ZTpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLmNmZyxpPWEuY3JlYXRlKGUuaGFzaGVyLHQpLG89bi5jcmVhdGUoKSxzPW4uY3JlYXRlKFsxXSksYz1vLndvcmRzLGg9cy53b3JkcyxsPWUua2V5U2l6ZSxmPWUuaXRlcmF0aW9ucztjLmxlbmd0aDxsOyl7dmFyIHU9aS51cGRhdGUocikuZmluYWxpemUocyk7aS5yZXNldCgpO2Zvcih2YXIgZD11LndvcmRzLHY9ZC5sZW5ndGgscD11LF89MTtfPGY7XysrKXtwPWkuZmluYWxpemUocCksaS5yZXNldCgpO2Zvcih2YXIgeT1wLndvcmRzLGc9MDtnPHY7ZysrKWRbZ11ePXlbZ119by5jb25jYXQodSksaFswXSsrfXJldHVybiBvLnNpZ0J5dGVzPTQqbCxvfX0pO3IuUEJLREYyPWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gYy5jcmVhdGUoZSkuY29tcHV0ZSh0LHIpfX0oKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuQmFzZSxuPWUuV29yZEFycmF5LG89ci5hbGdvLHM9by5NRDUsYT1vLkV2cEtERj1pLmV4dGVuZCh7Y2ZnOmkuZXh0ZW5kKHtrZXlTaXplOjQsaGFzaGVyOnMsaXRlcmF0aW9uczoxfSksaW5pdDpmdW5jdGlvbih0KXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQodCl9LGNvbXB1dGU6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5jZmcsaT1lLmhhc2hlci5jcmVhdGUoKSxvPW4uY3JlYXRlKCkscz1vLndvcmRzLGE9ZS5rZXlTaXplLGM9ZS5pdGVyYXRpb25zO3MubGVuZ3RoPGE7KXtoJiZpLnVwZGF0ZShoKTt2YXIgaD1pLnVwZGF0ZSh0KS5maW5hbGl6ZShyKTtpLnJlc2V0KCk7Zm9yKHZhciBsPTE7bDxjO2wrKyloPWkuZmluYWxpemUoaCksaS5yZXNldCgpO28uY29uY2F0KGgpfXJldHVybiBvLnNpZ0J5dGVzPTQqYSxvfX0pO3IuRXZwS0RGPWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gYS5jcmVhdGUoZSkuY29tcHV0ZSh0LHIpfX0oKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuV29yZEFycmF5LG49ci5hbGdvLG89bi5TSEEyNTYscz1uLlNIQTIyND1vLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBpLmluaXQoWzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD1vLl9kb0ZpbmFsaXplLmNhbGwodGhpcyk7cmV0dXJuIHQuc2lnQnl0ZXMtPTQsdH19KTtyLlNIQTIyND1vLl9jcmVhdGVIZWxwZXIocyksci5IbWFjU0hBMjI0PW8uX2NyZWF0ZUhtYWNIZWxwZXIocyl9KCksZnVuY3Rpb24ocil7dmFyIGU9dCxpPWUubGliLG49aS5CYXNlLG89aS5Xb3JkQXJyYXkscz1lLng2ND17fTtzLldvcmQ9bi5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxyKXt0aGlzLmhpZ2g9dCx0aGlzLmxvdz1yfX0pLHMuV29yZEFycmF5PW4uZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQsZSl7dD10aGlzLndvcmRzPXR8fFtdLGUhPXI/dGhpcy5zaWdCeXRlcz1lOnRoaXMuc2lnQnl0ZXM9OCp0Lmxlbmd0aH0sdG9YMzI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy53b3JkcyxyPXQubGVuZ3RoLGU9W10saT0wO2k8cjtpKyspe3ZhciBuPXRbaV07ZS5wdXNoKG4uaGlnaCksZS5wdXNoKG4ubG93KX1yZXR1cm4gby5jcmVhdGUoZSx0aGlzLnNpZ0J5dGVzKX0sY2xvbmU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9bi5jbG9uZS5jYWxsKHRoaXMpLHI9dC53b3Jkcz10aGlzLndvcmRzLnNsaWNlKDApLGU9ci5sZW5ndGgsaT0wO2k8ZTtpKyspcltpXT1yW2ldLmNsb25lKCk7cmV0dXJuIHR9fSl9KCksZnVuY3Rpb24ocil7dmFyIGU9dCxpPWUubGliLG49aS5Xb3JkQXJyYXksbz1pLkhhc2hlcixzPWUueDY0LGE9cy5Xb3JkLGM9ZS5hbGdvLGg9W10sbD1bXSxmPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0xLHI9MCxlPTA7ZTwyNDtlKyspe2hbdCs1KnJdPShlKzEpKihlKzIpLzIlNjQ7dmFyIGk9ciU1LG49KDIqdCszKnIpJTU7dD1pLHI9bn1mb3IodmFyIHQ9MDt0PDU7dCsrKWZvcih2YXIgcj0wO3I8NTtyKyspbFt0KzUqcl09cisoMip0KzMqciklNSo1O2Zvcih2YXIgbz0xLHM9MDtzPDI0O3MrKyl7Zm9yKHZhciBjPTAsdT0wLGQ9MDtkPDc7ZCsrKXtpZigxJm8pe3ZhciB2PSgxPDxkKS0xO3Y8MzI/dV49MTw8djpjXj0xPDx2LTMyfTEyOCZvP289bzw8MV4xMTM6bzw8PTF9ZltzXT1hLmNyZWF0ZShjLHUpfX0oKTt2YXIgdT1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDI1O3QrKyl1W3RdPWEuY3JlYXRlKCl9KCk7dmFyIGQ9Yy5TSEEzPW8uZXh0ZW5kKHtjZmc6by5jZmcuZXh0ZW5kKHtvdXRwdXRMZW5ndGg6NTEyfSksX2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fc3RhdGU9W10scj0wO3I8MjU7cisrKXRbcl09bmV3IGEuaW5pdDt0aGlzLmJsb2NrU2l6ZT0oMTYwMC0yKnRoaXMuY2ZnLm91dHB1dExlbmd0aCkvMzJ9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLl9zdGF0ZSxpPXRoaXMuYmxvY2tTaXplLzIsbj0wO248aTtuKyspe3ZhciBvPXRbcisyKm5dLHM9dFtyKzIqbisxXTtvPTE2NzExOTM1JihvPDw4fG8+Pj4yNCl8NDI3ODI1NTM2MCYobzw8MjR8bz4+PjgpLHM9MTY3MTE5MzUmKHM8PDh8cz4+PjI0KXw0Mjc4MjU1MzYwJihzPDwyNHxzPj4+OCk7dmFyIGE9ZVtuXTthLmhpZ2hePXMsYS5sb3dePW99Zm9yKHZhciBjPTA7YzwyNDtjKyspe2Zvcih2YXIgZD0wO2Q8NTtkKyspe2Zvcih2YXIgdj0wLHA9MCxfPTA7Xzw1O18rKyl7dmFyIGE9ZVtkKzUqX107dl49YS5oaWdoLHBePWEubG93fXZhciB5PXVbZF07eS5oaWdoPXYseS5sb3c9cH1mb3IodmFyIGQ9MDtkPDU7ZCsrKWZvcih2YXIgZz11WyhkKzQpJTVdLEI9dVsoZCsxKSU1XSx3PUIuaGlnaCxrPUIubG93LHY9Zy5oaWdoXih3PDwxfGs+Pj4zMSkscD1nLmxvd14oazw8MXx3Pj4+MzEpLF89MDtfPDU7XysrKXt2YXIgYT1lW2QrNSpfXTthLmhpZ2hePXYsYS5sb3dePXB9Zm9yKHZhciBTPTE7UzwyNTtTKyspe3ZhciBhPWVbU10sbT1hLmhpZ2gseD1hLmxvdyxiPWhbU107aWYoYjwzMil2YXIgdj1tPDxifHg+Pj4zMi1iLHA9eDw8YnxtPj4+MzItYjtlbHNlIHZhciB2PXg8PGItMzJ8bT4+PjY0LWIscD1tPDxiLTMyfHg+Pj42NC1iO3ZhciBIPXVbbFtTXV07SC5oaWdoPXYsSC5sb3c9cH12YXIgej11WzBdLEE9ZVswXTt6LmhpZ2g9QS5oaWdoLHoubG93PUEubG93O2Zvcih2YXIgZD0wO2Q8NTtkKyspZm9yKHZhciBfPTA7Xzw1O18rKyl7dmFyIFM9ZCs1Kl8sYT1lW1NdLEM9dVtTXSxEPXVbKGQrMSklNSs1Kl9dLFI9dVsoZCsyKSU1KzUqX107YS5oaWdoPUMuaGlnaF5+RC5oaWdoJlIuaGlnaCxhLmxvdz1DLmxvd15+RC5sb3cmUi5sb3d9dmFyIGE9ZVswXSxFPWZbY107YS5oaWdoXj1FLmhpZ2gsYS5sb3dePUUubG93fX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxpPSg4KnRoaXMuX25EYXRhQnl0ZXMsOCp0LnNpZ0J5dGVzKSxvPTMyKnRoaXMuYmxvY2tTaXplO2VbaT4+PjVdfD0xPDwyNC1pJTMyLGVbKHIuY2VpbCgoaSsxKS9vKSpvPj4+NSktMV18PTEyOCx0LnNpZ0J5dGVzPTQqZS5sZW5ndGgsdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgcz10aGlzLl9zdGF0ZSxhPXRoaXMuY2ZnLm91dHB1dExlbmd0aC84LGM9YS84LGg9W10sbD0wO2w8YztsKyspe3ZhciBmPXNbbF0sdT1mLmhpZ2gsZD1mLmxvdzt1PTE2NzExOTM1Jih1PDw4fHU+Pj4yNCl8NDI3ODI1NTM2MCYodTw8MjR8dT4+PjgpLGQ9MTY3MTE5MzUmKGQ8PDh8ZD4+PjI0KXw0Mjc4MjU1MzYwJihkPDwyNHxkPj4+OCksaC5wdXNoKGQpLGgucHVzaCh1KX1yZXR1cm4gbmV3IG4uaW5pdChoLGEpfSxjbG9uZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1vLmNsb25lLmNhbGwodGhpcykscj10Ll9zdGF0ZT10aGlzLl9zdGF0ZS5zbGljZSgwKSxlPTA7ZTwyNTtlKyspcltlXT1yW2VdLmNsb25lKCk7cmV0dXJuIHR9fSk7ZS5TSEEzPW8uX2NyZWF0ZUhlbHBlcihkKSxlLkhtYWNTSEEzPW8uX2NyZWF0ZUhtYWNIZWxwZXIoZCl9KE1hdGgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcigpe3JldHVybiBzLmNyZWF0ZS5hcHBseShzLGFyZ3VtZW50cyl9dmFyIGU9dCxpPWUubGliLG49aS5IYXNoZXIsbz1lLng2NCxzPW8uV29yZCxhPW8uV29yZEFycmF5LGM9ZS5hbGdvLGg9W3IoMTExNjM1MjQwOCwzNjA5NzY3NDU4KSxyKDE4OTk0NDc0NDEsNjAyODkxNzI1KSxyKDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSkscigzOTIxMDA5NTczLDIxNzMyOTU1NDgpLHIoOTYxOTg3MTYzLDQwODE2Mjg0NzIpLHIoMTUwODk3MDk5MywzMDUzODM0MjY1KSxyKDI0NTM2MzU3NDgsMjkzNzY3MTU3OSkscigyODcwNzYzMjIxLDM2NjQ2MDk1NjApLHIoMzYyNDM4MTA4MCwyNzM0ODgzMzk0KSxyKDMxMDU5ODQwMSwxMTY0OTk2NTQyKSxyKDYwNzIyNTI3OCwxMzIzNjEwNzY0KSxyKDE0MjY4ODE5ODcsMzU5MDMwNDk5NCkscigxOTI1MDc4Mzg4LDQwNjgxODIzODMpLHIoMjE2MjA3ODIwNiw5OTEzMzYxMTMpLHIoMjYxNDg4ODEwMyw2MzM4MDMzMTcpLHIoMzI0ODIyMjU4MCwzNDc5Nzc0ODY4KSxyKDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCkscig0MDIyMjI0Nzc0LDk0NDcxMTEzOSkscigyNjQzNDcwNzgsMjM0MTI2Mjc3Mykscig2MDQ4MDc2MjgsMjAwNzgwMDkzMykscig3NzAyNTU5ODMsMTQ5NTk5MDkwMSkscigxMjQ5MTUwMTIyLDE4NTY0MzEyMzUpLHIoMTU1NTA4MTY5MiwzMTc1MjE4MTMyKSxyKDE5OTYwNjQ5ODYsMjE5ODk1MDgzNykscigyNTU0MjIwODgyLDM5OTk3MTkzMzkpLHIoMjgyMTgzNDM0OSw3NjY3ODQwMTYpLHIoMjk1Mjk5NjgwOCwyNTY2NTk0ODc5KSxyKDMyMTAzMTM2NzEsMzIwMzMzNzk1NikscigzMzM2NTcxODkxLDEwMzQ0NTcwMjYpLHIoMzU4NDUyODcxMSwyNDY2OTQ4OTAxKSxyKDExMzkyNjk5MywzNzU4MzI2MzgzKSxyKDMzODI0MTg5NSwxNjg3MTc5MzYpLHIoNjY2MzA3MjA1LDExODgxNzk5NjQpLHIoNzczNTI5OTEyLDE1NDYwNDU3MzQpLHIoMTI5NDc1NzM3MiwxNTIyODA1NDg1KSxyKDEzOTYxODIyOTEsMjY0MzgzMzgyMykscigxNjk1MTgzNzAwLDIzNDM1MjczOTApLHIoMTk4NjY2MTA1MSwxMDE0NDc3NDgwKSxyKDIxNzcwMjYzNTAsMTIwNjc1OTE0MikscigyNDU2OTU2MDM3LDM0NDA3NzYyNykscigyNzMwNDg1OTIxLDEyOTA4NjM0NjApLHIoMjgyMDMwMjQxMSwzMTU4NDU0MjczKSxyKDMyNTk3MzA4MDAsMzUwNTk1MjY1NykscigzMzQ1NzY0NzcxLDEwNjIxNzAwOCkscigzNTE2MDY1ODE3LDM2MDYwMDgzNDQpLHIoMzYwMDM1MjgwNCwxNDMyNzI1Nzc2KSxyKDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCkscigyNzU0MjMzNDQsODUxMTY5NzIwKSxyKDQzMDIyNzczNCwzMTAwODIzNzUyKSxyKDUwNjk0ODYxNiwxMzYzMjU4MTk1KSxyKDY1OTA2MDU1NiwzNzUwNjg1NTkzKSxyKDg4Mzk5Nzg3NywzNzg1MDUwMjgwKSxyKDk1ODEzOTU3MSwzMzE4MzA3NDI3KSxyKDEzMjI4MjIyMTgsMzgxMjcyMzQwMykscigxNTM3MDAyMDYzLDIwMDMwMzQ5OTUpLHIoMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5KSxyKDE5NTU1NjIyMjIsMTU3NTk5MDAxMikscigyMDI0MTA0ODE1LDExMjU1OTI5MjgpLHIoMjIyNzczMDQ1MiwyNzE2OTA0MzA2KSxyKDIzNjE4NTI0MjQsNDQyNzc2MDQ0KSxyKDI0Mjg0MzY0NzQsNTkzNjk4MzQ0KSxyKDI3NTY3MzQxODcsMzczMzExMDI0OSkscigzMjA0MDMxNDc5LDI5OTkzNTE1NzMpLHIoMzMyOTMyNTI5OCwzODE1OTIwNDI3KSxyKDMzOTE1Njk2MTQsMzkyODM4MzkwMCkscigzNTE1MjY3MjcxLDU2NjI4MDcxMSkscigzOTQwMTg3NjA2LDM0NTQwNjk1MzQpLHIoNDExODYzMDI3MSw0MDAwMjM5OTkyKSxyKDExNjQxODQ3NCwxOTE0MTM4NTU0KSxyKDE3NDI5MjQyMSwyNzMxMDU1MjcwKSxyKDI4OTM4MDM1NiwzMjAzOTkzMDA2KSxyKDQ2MDM5MzI2OSwzMjA2MjAzMTUpLHIoNjg1NDcxNzMzLDU4NzQ5NjgzNikscig4NTIxNDI5NzEsMTA4Njc5Mjg1MSkscigxMDE3MDM2Mjk4LDM2NTU0MzEwMCkscigxMTI2MDAwNTgwLDI2MTgyOTc2NzYpLHIoMTI4ODAzMzQ3MCwzNDA5ODU1MTU4KSxyKDE1MDE1MDU5NDgsNDIzNDUwOTg2NikscigxNjA3MTY3OTE1LDk4NzE2NzQ2OCkscigxODE2NDAyMzE2LDEyNDYxODk1OTEpXSxsPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8ODA7dCsrKWxbdF09cigpfSgpO3ZhciBmPWMuU0hBNTEyPW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IGEuaW5pdChbbmV3IHMuaW5pdCgxNzc5MDMzNzAzLDQwODkyMzU3MjApLG5ldyBzLmluaXQoMzE0NDEzNDI3NywyMjI3ODczNTk1KSxuZXcgcy5pbml0KDEwMTM5MDQyNDIsNDI3MTE3NTcyMyksbmV3IHMuaW5pdCgyNzczNDgwNzYyLDE1OTU3NTAxMjkpLG5ldyBzLmluaXQoMTM1OTg5MzExOSwyOTE3NTY1MTM3KSxuZXcgcy5pbml0KDI2MDA4MjI5MjQsNzI1NTExMTk5KSxuZXcgcy5pbml0KDUyODczNDYzNSw0MjE1Mzg5NTQ3KSxuZXcgcy5pbml0KDE1NDE0NTkyMjUsMzI3MDMzMjA5KV0pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5faGFzaC53b3JkcyxpPWVbMF0sbj1lWzFdLG89ZVsyXSxzPWVbM10sYT1lWzRdLGM9ZVs1XSxmPWVbNl0sdT1lWzddLGQ9aS5oaWdoLHY9aS5sb3cscD1uLmhpZ2gsXz1uLmxvdyx5PW8uaGlnaCxnPW8ubG93LEI9cy5oaWdoLHc9cy5sb3csaz1hLmhpZ2gsUz1hLmxvdyxtPWMuaGlnaCx4PWMubG93LGI9Zi5oaWdoLEg9Zi5sb3csej11LmhpZ2gsQT11LmxvdyxDPWQsRD12LFI9cCxFPV8sTT15LEY9ZyxQPUIsVz13LE89ayxVPVMsST1tLEs9eCxYPWIsTD1ILGo9eixOPUEsVD0wO1Q8ODA7VCsrKXt2YXIgWj1sW1RdO2lmKFQ8MTYpdmFyIHE9Wi5oaWdoPTB8dFtyKzIqVF0sRz1aLmxvdz0wfHRbcisyKlQrMV07ZWxzZXt2YXIgSj1sW1QtMTVdLCQ9Si5oaWdoLFE9Si5sb3csVj0oJD4+PjF8UTw8MzEpXigkPj4+OHxRPDwyNCleJD4+PjcsWT0oUT4+PjF8JDw8MzEpXihRPj4+OHwkPDwyNCleKFE+Pj43fCQ8PDI1KSx0dD1sW1QtMl0scnQ9dHQuaGlnaCxldD10dC5sb3csaXQ9KHJ0Pj4+MTl8ZXQ8PDEzKV4ocnQ8PDN8ZXQ+Pj4yOSlecnQ+Pj42LG50PShldD4+PjE5fHJ0PDwxMyleKGV0PDwzfHJ0Pj4+MjkpXihldD4+PjZ8cnQ8PDI2KSxvdD1sW1QtN10sc3Q9b3QuaGlnaCxhdD1vdC5sb3csY3Q9bFtULTE2XSxodD1jdC5oaWdoLGx0PWN0LmxvdyxHPVkrYXQscT1WK3N0KyhHPj4+MDxZPj4+MD8xOjApLEc9RytudCxxPXEraXQrKEc+Pj4wPG50Pj4+MD8xOjApLEc9RytsdCxxPXEraHQrKEc+Pj4wPGx0Pj4+MD8xOjApO1ouaGlnaD1xLFoubG93PUd9dmFyIGZ0PU8mSV5+TyZYLHV0PVUmS15+VSZMLGR0PUMmUl5DJk1eUiZNLHZ0PUQmRV5EJkZeRSZGLHB0PShDPj4+Mjh8RDw8NCleKEM8PDMwfEQ+Pj4yKV4oQzw8MjV8RD4+PjcpLF90PShEPj4+Mjh8Qzw8NCleKEQ8PDMwfEM+Pj4yKV4oRDw8MjV8Qz4+PjcpLHl0PShPPj4+MTR8VTw8MTgpXihPPj4+MTh8VTw8MTQpXihPPDwyM3xVPj4+OSksZ3Q9KFU+Pj4xNHxPPDwxOCleKFU+Pj4xOHxPPDwxNCleKFU8PDIzfE8+Pj45KSxCdD1oW1RdLHd0PUJ0LmhpZ2gsa3Q9QnQubG93LFN0PU4rZ3QsbXQ9ait5dCsoU3Q+Pj4wPE4+Pj4wPzE6MCksU3Q9U3QrdXQsbXQ9bXQrZnQrKFN0Pj4+MDx1dD4+PjA/MTowKSxTdD1TdCtrdCxtdD1tdCt3dCsoU3Q+Pj4wPGt0Pj4+MD8xOjApLFN0PVN0K0csbXQ9bXQrcSsoU3Q+Pj4wPEc+Pj4wPzE6MCkseHQ9X3QrdnQsYnQ9cHQrZHQrKHh0Pj4+MDxfdD4+PjA/MTowKTtqPVgsTj1MLFg9SSxMPUssST1PLEs9VSxVPVcrU3R8MCxPPVArbXQrKFU+Pj4wPFc+Pj4wPzE6MCl8MCxQPU0sVz1GLE09UixGPUUsUj1DLEU9RCxEPVN0K3h0fDAsQz1tdCtidCsoRD4+PjA8U3Q+Pj4wPzE6MCl8MH12PWkubG93PXYrRCxpLmhpZ2g9ZCtDKyh2Pj4+MDxEPj4+MD8xOjApLF89bi5sb3c9XytFLG4uaGlnaD1wK1IrKF8+Pj4wPEU+Pj4wPzE6MCksZz1vLmxvdz1nK0Ysby5oaWdoPXkrTSsoZz4+PjA8Rj4+PjA/MTowKSx3PXMubG93PXcrVyxzLmhpZ2g9QitQKyh3Pj4+MDxXPj4+MD8xOjApLFM9YS5sb3c9UytVLGEuaGlnaD1rK08rKFM+Pj4wPFU+Pj4wPzE6MCkseD1jLmxvdz14K0ssYy5oaWdoPW0rSSsoeD4+PjA8Sz4+PjA/MTowKSxIPWYubG93PUgrTCxmLmhpZ2g9YitYKyhIPj4+MDxMPj4+MD8xOjApLEE9dS5sb3c9QStOLHUuaGlnaD16K2orKEE+Pj4wPE4+Pj4wPzE6MCl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxyPXQud29yZHMsZT04KnRoaXMuX25EYXRhQnl0ZXMsaT04KnQuc2lnQnl0ZXM7cltpPj4+NV18PTEyODw8MjQtaSUzMixyWyhpKzEyOD4+PjEwPDw1KSszMF09TWF0aC5mbG9vcihlLzQyOTQ5NjcyOTYpLHJbKGkrMTI4Pj4+MTA8PDUpKzMxXT1lLHQuc2lnQnl0ZXM9NCpyLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCk7dmFyIG49dGhpcy5faGFzaC50b1gzMigpO3JldHVybiBufSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW4uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH0sYmxvY2tTaXplOjMyfSk7ZS5TSEE1MTI9bi5fY3JlYXRlSGVscGVyKGYpLGUuSG1hY1NIQTUxMj1uLl9jcmVhdGVIbWFjSGVscGVyKGYpfSgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIueDY0LGk9ZS5Xb3JkLG49ZS5Xb3JkQXJyYXksbz1yLmFsZ28scz1vLlNIQTUxMixhPW8uU0hBMzg0PXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IG4uaW5pdChbbmV3IGkuaW5pdCgzNDE4MDcwMzY1LDMyMzgzNzEwMzIpLG5ldyBpLmluaXQoMTY1NDI3MDI1MCw5MTQxNTA2NjMpLG5ldyBpLmluaXQoMjQzODUyOTM3MCw4MTI3MDI5OTkpLG5ldyBpLmluaXQoMzU1NDYyMzYwLDQxNDQ5MTI2OTcpLG5ldyBpLmluaXQoMTczMTQwNTQxNSw0MjkwNzc1ODU3KSxuZXcgaS5pbml0KDIzOTQxODAyMzEsMTc1MDYwMzAyNSksbmV3IGkuaW5pdCgzNjc1MDA4NTI1LDE2OTQwNzY4MzkpLG5ldyBpLmluaXQoMTIwMzA2MjgxMywzMjA0MDc1NDI4KV0pfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXMuX2RvRmluYWxpemUuY2FsbCh0aGlzKTtyZXR1cm4gdC5zaWdCeXRlcy09MTYsdH19KTtyLlNIQTM4ND1zLl9jcmVhdGVIZWxwZXIoYSksci5IbWFjU0hBMzg0PXMuX2NyZWF0ZUhtYWNIZWxwZXIoYSl9KCksdC5saWIuQ2lwaGVyfHxmdW5jdGlvbihyKXt2YXIgZT10LGk9ZS5saWIsbj1pLkJhc2Usbz1pLldvcmRBcnJheSxzPWkuQnVmZmVyZWRCbG9ja0FsZ29yaXRobSxhPWUuZW5jLGM9KGEuVXRmOCxhLkJhc2U2NCksaD1lLmFsZ28sbD1oLkV2cEtERixmPWkuQ2lwaGVyPXMuZXh0ZW5kKHtjZmc6bi5leHRlbmQoKSxjcmVhdGVFbmNyeXB0b3I6ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fRU5DX1hGT1JNX01PREUsdCxyKX0sY3JlYXRlRGVjcnlwdG9yOmZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuX0RFQ19YRk9STV9NT0RFLHQscil9LGluaXQ6ZnVuY3Rpb24odCxyLGUpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZChlKSx0aGlzLl94Zm9ybU1vZGU9dCx0aGlzLl9rZXk9cix0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7cy5yZXNldC5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX0scHJvY2VzczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYXBwZW5kKHQpLHRoaXMuX3Byb2Nlc3MoKX0sZmluYWxpemU6ZnVuY3Rpb24odCl7dCYmdGhpcy5fYXBwZW5kKHQpO3ZhciByPXRoaXMuX2RvRmluYWxpemUoKTtyZXR1cm4gcn0sa2V5U2l6ZTo0LGl2U2l6ZTo0LF9FTkNfWEZPUk1fTU9ERToxLF9ERUNfWEZPUk1fTU9ERToyLF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P206d31yZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJue2VuY3J5cHQ6ZnVuY3Rpb24oZSxpLG4pe3JldHVybiB0KGkpLmVuY3J5cHQocixlLGksbil9LGRlY3J5cHQ6ZnVuY3Rpb24oZSxpLG4pe3JldHVybiB0KGkpLmRlY3J5cHQocixlLGksbil9fX19KCl9KSx1PShpLlN0cmVhbUNpcGhlcj1mLmV4dGVuZCh7X2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9wcm9jZXNzKCEwKTtyZXR1cm4gdH0sYmxvY2tTaXplOjF9KSxlLm1vZGU9e30pLGQ9aS5CbG9ja0NpcGhlck1vZGU9bi5leHRlbmQoe2NyZWF0ZUVuY3J5cHRvcjpmdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLkVuY3J5cHRvci5jcmVhdGUodCxyKX0sY3JlYXRlRGVjcnlwdG9yOmZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMuRGVjcnlwdG9yLmNyZWF0ZSh0LHIpfSxpbml0OmZ1bmN0aW9uKHQscil7dGhpcy5fY2lwaGVyPXQsdGhpcy5faXY9cn19KSx2PXUuQ0JDPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsaSl7dmFyIG49dGhpcy5faXY7aWYobil7dmFyIG89bjt0aGlzLl9pdj1yfWVsc2UgdmFyIG89dGhpcy5fcHJldkJsb2NrO2Zvcih2YXIgcz0wO3M8aTtzKyspdFtlK3NdXj1vW3NdfXZhciBlPWQuZXh0ZW5kKCk7cmV0dXJuIGUuRW5jcnlwdG9yPWUuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24ocixlKXt2YXIgaT10aGlzLl9jaXBoZXIsbj1pLmJsb2NrU2l6ZTt0LmNhbGwodGhpcyxyLGUsbiksaS5lbmNyeXB0QmxvY2socixlKSx0aGlzLl9wcmV2QmxvY2s9ci5zbGljZShlLGUrbil9fSksZS5EZWNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbihyLGUpe3ZhciBpPXRoaXMuX2NpcGhlcixuPWkuYmxvY2tTaXplLG89ci5zbGljZShlLGUrbik7aS5kZWNyeXB0QmxvY2socixlKSx0LmNhbGwodGhpcyxyLGUsbiksdGhpcy5fcHJldkJsb2NrPW99fSksZX0oKSxwPWUucGFkPXt9LF89cC5Qa2NzNz17cGFkOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTQqcixpPWUtdC5zaWdCeXRlcyVlLG49aTw8MjR8aTw8MTZ8aTw8OHxpLHM9W10sYT0wO2E8aTthKz00KXMucHVzaChuKTt2YXIgYz1vLmNyZWF0ZShzLGkpO3QuY29uY2F0KGMpfSx1bnBhZDpmdW5jdGlvbih0KXt2YXIgcj0yNTUmdC53b3Jkc1t0LnNpZ0J5dGVzLTE+Pj4yXTt0LnNpZ0J5dGVzLT1yfX0seT0oaS5CbG9ja0NpcGhlcj1mLmV4dGVuZCh7Y2ZnOmYuY2ZnLmV4dGVuZCh7bW9kZTp2LHBhZGRpbmc6X30pLHJlc2V0OmZ1bmN0aW9uKCl7Zi5yZXNldC5jYWxsKHRoaXMpO3ZhciB0PXRoaXMuY2ZnLHI9dC5pdixlPXQubW9kZTtpZih0aGlzLl94Zm9ybU1vZGU9PXRoaXMuX0VOQ19YRk9STV9NT0RFKXZhciBpPWUuY3JlYXRlRW5jcnlwdG9yO2Vsc2V7dmFyIGk9ZS5jcmVhdGVEZWNyeXB0b3I7dGhpcy5fbWluQnVmZmVyU2l6ZT0xfXRoaXMuX21vZGUmJnRoaXMuX21vZGUuX19jcmVhdG9yPT1pP3RoaXMuX21vZGUuaW5pdCh0aGlzLHImJnIud29yZHMpOih0aGlzLl9tb2RlPWkuY2FsbChlLHRoaXMsciYmci53b3JkcyksdGhpcy5fbW9kZS5fX2NyZWF0b3I9aSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX21vZGUucHJvY2Vzc0Jsb2NrKHQscil9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jZmcucGFkZGluZztpZih0aGlzLl94Zm9ybU1vZGU9PXRoaXMuX0VOQ19YRk9STV9NT0RFKXt0LnBhZCh0aGlzLl9kYXRhLHRoaXMuYmxvY2tTaXplKTt2YXIgcj10aGlzLl9wcm9jZXNzKCEwKX1lbHNle3ZhciByPXRoaXMuX3Byb2Nlc3MoITApO3QudW5wYWQocil9cmV0dXJuIHJ9LGJsb2NrU2l6ZTo0fSksaS5DaXBoZXJQYXJhbXM9bi5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCl7dGhpcy5taXhJbih0KX0sdG9TdHJpbmc6ZnVuY3Rpb24odCl7cmV0dXJuKHR8fHRoaXMuZm9ybWF0dGVyKS5zdHJpbmdpZnkodGhpcyl9fSkpLGc9ZS5mb3JtYXQ9e30sQj1nLk9wZW5TU0w9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXt2YXIgcj10LmNpcGhlcnRleHQsZT10LnNhbHQ7aWYoZSl2YXIgaT1vLmNyZWF0ZShbMTM5ODg5MzY4NCwxNzAxMDc2ODMxXSkuY29uY2F0KGUpLmNvbmNhdChyKTtlbHNlIHZhciBpPXI7cmV0dXJuIGkudG9TdHJpbmcoYyl9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciByPWMucGFyc2UodCksZT1yLndvcmRzO2lmKDEzOTg4OTM2ODQ9PWVbMF0mJjE3MDEwNzY4MzE9PWVbMV0pe3ZhciBpPW8uY3JlYXRlKGUuc2xpY2UoMiw0KSk7ZS5zcGxpY2UoMCw0KSxyLnNpZ0J5dGVzLT0xNn1yZXR1cm4geS5jcmVhdGUoe2NpcGhlcnRleHQ6cixzYWx0Oml9KX19LHc9aS5TZXJpYWxpemFibGVDaXBoZXI9bi5leHRlbmQoe2NmZzpuLmV4dGVuZCh7Zm9ybWF0OkJ9KSxlbmNyeXB0OmZ1bmN0aW9uKHQscixlLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpO3ZhciBuPXQuY3JlYXRlRW5jcnlwdG9yKGUsaSksbz1uLmZpbmFsaXplKHIpLHM9bi5jZmc7cmV0dXJuIHkuY3JlYXRlKHtjaXBoZXJ0ZXh0Om8sa2V5OmUsaXY6cy5pdixhbGdvcml0aG06dCxtb2RlOnMubW9kZSxwYWRkaW5nOnMucGFkZGluZyxibG9ja1NpemU6dC5ibG9ja1NpemUsZm9ybWF0dGVyOmkuZm9ybWF0fSl9LGRlY3J5cHQ6ZnVuY3Rpb24odCxyLGUsaSl7aT10aGlzLmNmZy5leHRlbmQoaSkscj10aGlzLl9wYXJzZShyLGkuZm9ybWF0KTt2YXIgbj10LmNyZWF0ZURlY3J5cHRvcihlLGkpLmZpbmFsaXplKHIuY2lwaGVydGV4dCk7cmV0dXJuIG59LF9wYXJzZTpmdW5jdGlvbih0LHIpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P3IucGFyc2UodCx0aGlzKTp0fX0pLGs9ZS5rZGY9e30sUz1rLk9wZW5TU0w9e2V4ZWN1dGU6ZnVuY3Rpb24odCxyLGUsaSl7aXx8KGk9by5yYW5kb20oOCkpO3ZhciBuPWwuY3JlYXRlKHtrZXlTaXplOnIrZX0pLmNvbXB1dGUodCxpKSxzPW8uY3JlYXRlKG4ud29yZHMuc2xpY2UociksNCplKTtyZXR1cm4gbi5zaWdCeXRlcz00KnIseS5jcmVhdGUoe2tleTpuLGl2OnMsc2FsdDppfSl9fSxtPWkuUGFzc3dvcmRCYXNlZENpcGhlcj13LmV4dGVuZCh7Y2ZnOncuY2ZnLmV4dGVuZCh7a2RmOlN9KSxlbmNyeXB0OmZ1bmN0aW9uKHQscixlLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpO3ZhciBuPWkua2RmLmV4ZWN1dGUoZSx0LmtleVNpemUsdC5pdlNpemUpO2kuaXY9bi5pdjt2YXIgbz13LmVuY3J5cHQuY2FsbCh0aGlzLHQscixuLmtleSxpKTtyZXR1cm4gby5taXhJbihuKSxvfSxkZWNyeXB0OmZ1bmN0aW9uKHQscixlLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpLHI9dGhpcy5fcGFyc2UocixpLmZvcm1hdCk7dmFyIG49aS5rZGYuZXhlY3V0ZShlLHQua2V5U2l6ZSx0Lml2U2l6ZSxyLnNhbHQpO2kuaXY9bi5pdjt2YXIgbz13LmRlY3J5cHQuY2FsbCh0aGlzLHQscixuLmtleSxpKTtyZXR1cm4gb319KX0oKSx0Lm1vZGUuQ0ZCPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LHIsZSxpKXt2YXIgbj10aGlzLl9pdjtpZihuKXt2YXIgbz1uLnNsaWNlKDApO3RoaXMuX2l2PXZvaWQgMH1lbHNlIHZhciBvPXRoaXMuX3ByZXZCbG9jaztpLmVuY3J5cHRCbG9jayhvLDApO2Zvcih2YXIgcz0wO3M8ZTtzKyspdFtyK3NdXj1vW3NdfXZhciBlPXQubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKTtyZXR1cm4gZS5FbmNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuX2NpcGhlcixuPWkuYmxvY2tTaXplO3IuY2FsbCh0aGlzLHQsZSxuLGkpLHRoaXMuX3ByZXZCbG9jaz10LnNsaWNlKGUsZStuKX19KSxlLkRlY3J5cHRvcj1lLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemUsbz10LnNsaWNlKGUsZStuKTtyLmNhbGwodGhpcyx0LGUsbixpKSx0aGlzLl9wcmV2QmxvY2s9b319KSxlfSgpLHQubW9kZS5FQ0I9ZnVuY3Rpb24oKXt2YXIgcj10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCk7cmV0dXJuIHIuRW5jcnlwdG9yPXIuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHQscil9fSksci5EZWNyeXB0b3I9ci5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2NpcGhlci5kZWNyeXB0QmxvY2sodCxyKX19KSxyfSgpLHQucGFkLkFuc2lYOTIzPXtwYWQ6ZnVuY3Rpb24odCxyKXt2YXIgZT10LnNpZ0J5dGVzLGk9NCpyLG49aS1lJWksbz1lK24tMTt0LmNsYW1wKCksdC53b3Jkc1tvPj4+Ml18PW48PDI0LW8lNCo4LHQuc2lnQnl0ZXMrPW59LHVucGFkOmZ1bmN0aW9uKHQpe3ZhciByPTI1NSZ0LndvcmRzW3Quc2lnQnl0ZXMtMT4+PjJdO3Quc2lnQnl0ZXMtPXJ9fSx0LnBhZC5Jc28xMDEyNj17cGFkOmZ1bmN0aW9uKHIsZSl7dmFyIGk9NCplLG49aS1yLnNpZ0J5dGVzJWk7ci5jb25jYXQodC5saWIuV29yZEFycmF5LnJhbmRvbShuLTEpKS5jb25jYXQodC5saWIuV29yZEFycmF5LmNyZWF0ZShbbjw8MjRdLDEpKX0sdW5wYWQ6ZnVuY3Rpb24odCl7dmFyIHI9MjU1JnQud29yZHNbdC5zaWdCeXRlcy0xPj4+Ml07dC5zaWdCeXRlcy09cn19LHQucGFkLklzbzk3OTcxPXtwYWQ6ZnVuY3Rpb24ocixlKXtyLmNvbmNhdCh0LmxpYi5Xb3JkQXJyYXkuY3JlYXRlKFsyMTQ3NDgzNjQ4XSwxKSksdC5wYWQuWmVyb1BhZGRpbmcucGFkKHIsZSl9LHVucGFkOmZ1bmN0aW9uKHIpe3QucGFkLlplcm9QYWRkaW5nLnVucGFkKHIpLHIuc2lnQnl0ZXMtLX19LHQubW9kZS5PRkI9ZnVuY3Rpb24oKXt2YXIgcj10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksZT1yLkVuY3J5cHRvcj1yLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fY2lwaGVyLGk9ZS5ibG9ja1NpemUsbj10aGlzLl9pdixvPXRoaXMuX2tleXN0cmVhbTtuJiYobz10aGlzLl9rZXlzdHJlYW09bi5zbGljZSgwKSx0aGlzLl9pdj12b2lkIDApLGUuZW5jcnlwdEJsb2NrKG8sMCk7Zm9yKHZhciBzPTA7czxpO3MrKyl0W3Irc11ePW9bc119fSk7cmV0dXJuIHIuRGVjcnlwdG9yPWUscn0oKSx0LnBhZC5Ob1BhZGRpbmc9e3BhZDpmdW5jdGlvbigpe30sdW5wYWQ6ZnVuY3Rpb24oKXt9fSxmdW5jdGlvbihyKXt2YXIgZT10LGk9ZS5saWIsbj1pLkNpcGhlclBhcmFtcyxvPWUuZW5jLHM9by5IZXgsYT1lLmZvcm1hdDthLkhleD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3JldHVybiB0LmNpcGhlcnRleHQudG9TdHJpbmcocyl9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciByPXMucGFyc2UodCk7cmV0dXJuIG4uY3JlYXRlKHtjaXBoZXJ0ZXh0OnJ9KX19fSgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5CbG9ja0NpcGhlcixuPXIuYWxnbyxvPVtdLHM9W10sYT1bXSxjPVtdLGg9W10sbD1bXSxmPVtdLHU9W10sZD1bXSx2PVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxyPTA7cjwyNTY7cisrKXI8MTI4P3Rbcl09cjw8MTp0W3JdPXI8PDFeMjgzO2Zvcih2YXIgZT0wLGk9MCxyPTA7cjwyNTY7cisrKXt2YXIgbj1pXmk8PDFeaTw8Ml5pPDwzXmk8PDQ7bj1uPj4+OF4yNTUmbl45OSxvW2VdPW4sc1tuXT1lO3ZhciBwPXRbZV0sXz10W3BdLHk9dFtfXSxnPTI1Nyp0W25dXjE2ODQzMDA4Km47YVtlXT1nPDwyNHxnPj4+OCxjW2VdPWc8PDE2fGc+Pj4xNixoW2VdPWc8PDh8Zz4+PjI0LGxbZV09Zzt2YXIgZz0xNjg0MzAwOSp5XjY1NTM3Kl9eMjU3KnBeMTY4NDMwMDgqZTtmW25dPWc8PDI0fGc+Pj44LHVbbl09Zzw8MTZ8Zz4+PjE2LGRbbl09Zzw8OHxnPj4+MjQsdltuXT1nLGU/KGU9cF50W3RbdFt5XnBdXV0saV49dFt0W2ldXSk6ZT1pPTF9fSgpO3ZhciBwPVswLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0XSxfPW4uQUVTPWkuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2lmKCF0aGlzLl9uUm91bmRzfHx0aGlzLl9rZXlQcmlvclJlc2V0IT09dGhpcy5fa2V5KXtmb3IodmFyIHQ9dGhpcy5fa2V5UHJpb3JSZXNldD10aGlzLl9rZXkscj10LndvcmRzLGU9dC5zaWdCeXRlcy80LGk9dGhpcy5fblJvdW5kcz1lKzYsbj00KihpKzEpLHM9dGhpcy5fa2V5U2NoZWR1bGU9W10sYT0wO2E8bjthKyspaWYoYTxlKXNbYV09clthXTtlbHNle3ZhciBjPXNbYS0xXTthJWU/ZT42JiZhJWU9PTQmJihjPW9bYz4+PjI0XTw8MjR8b1tjPj4+MTYmMjU1XTw8MTZ8b1tjPj4+OCYyNTVdPDw4fG9bMjU1JmNdKTooYz1jPDw4fGM+Pj4yNCxjPW9bYz4+PjI0XTw8MjR8b1tjPj4+MTYmMjU1XTw8MTZ8b1tjPj4+OCYyNTVdPDw4fG9bMjU1JmNdLGNePXBbYS9lfDBdPDwyNCksc1thXT1zW2EtZV1eY31mb3IodmFyIGg9dGhpcy5faW52S2V5U2NoZWR1bGU9W10sbD0wO2w8bjtsKyspe3ZhciBhPW4tbDtpZihsJTQpdmFyIGM9c1thXTtlbHNlIHZhciBjPXNbYS00XTtsPDR8fGE8PTQ/aFtsXT1jOmhbbF09ZltvW2M+Pj4yNF1dXnVbb1tjPj4+MTYmMjU1XV1eZFtvW2M+Pj44JjI1NV1dXnZbb1syNTUmY11dfX19LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2RvQ3J5cHRCbG9jayh0LHIsdGhpcy5fa2V5U2NoZWR1bGUsYSxjLGgsbCxvKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGU9dFtyKzFdO3RbcisxXT10W3IrM10sdFtyKzNdPWUsdGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9pbnZLZXlTY2hlZHVsZSxmLHUsZCx2LHMpO3ZhciBlPXRbcisxXTt0W3IrMV09dFtyKzNdLHRbciszXT1lfSxfZG9DcnlwdEJsb2NrOmZ1bmN0aW9uKHQscixlLGksbixvLHMsYSl7Zm9yKHZhciBjPXRoaXMuX25Sb3VuZHMsaD10W3JdXmVbMF0sbD10W3IrMV1eZVsxXSxmPXRbcisyXV5lWzJdLHU9dFtyKzNdXmVbM10sZD00LHY9MTt2PGM7disrKXt2YXIgcD1pW2g+Pj4yNF1ebltsPj4+MTYmMjU1XV5vW2Y+Pj44JjI1NV1ec1syNTUmdV1eZVtkKytdLF89aVtsPj4+MjRdXm5bZj4+PjE2JjI1NV1eb1t1Pj4+OCYyNTVdXnNbMjU1JmhdXmVbZCsrXSx5PWlbZj4+PjI0XV5uW3U+Pj4xNiYyNTVdXm9baD4+PjgmMjU1XV5zWzI1NSZsXV5lW2QrK10sZz1pW3U+Pj4yNF1ebltoPj4+MTYmMjU1XV5vW2w+Pj44JjI1NV1ec1syNTUmZl1eZVtkKytdO2g9cCxsPV8sZj15LHU9Z312YXIgcD0oYVtoPj4+MjRdPDwyNHxhW2w+Pj4xNiYyNTVdPDwxNnxhW2Y+Pj44JjI1NV08PDh8YVsyNTUmdV0pXmVbZCsrXSxfPShhW2w+Pj4yNF08PDI0fGFbZj4+PjE2JjI1NV08PDE2fGFbdT4+PjgmMjU1XTw8OHxhWzI1NSZoXSleZVtkKytdLHk9KGFbZj4+PjI0XTw8MjR8YVt1Pj4+MTYmMjU1XTw8MTZ8YVtoPj4+OCYyNTVdPDw4fGFbMjU1JmxdKV5lW2QrK10sZz0oYVt1Pj4+MjRdPDwyNHxhW2g+Pj4xNiYyNTVdPDwxNnxhW2w+Pj44JjI1NV08PDh8YVsyNTUmZl0pXmVbZCsrXTt0W3JdPXAsdFtyKzFdPV8sdFtyKzJdPXksdFtyKzNdPWd9LGtleVNpemU6OH0pO3IuQUVTPWkuX2NyZWF0ZUhlbHBlcihfKX0oKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIodCxyKXt2YXIgZT0odGhpcy5fbEJsb2NrPj4+dF50aGlzLl9yQmxvY2spJnI7dGhpcy5fckJsb2NrXj1lLHRoaXMuX2xCbG9ja149ZTw8dH1mdW5jdGlvbiBlKHQscil7dmFyIGU9KHRoaXMuX3JCbG9jaz4+PnRedGhpcy5fbEJsb2NrKSZyO3RoaXMuX2xCbG9ja149ZSx0aGlzLl9yQmxvY2tePWU8PHQ7XG59dmFyIGk9dCxuPWkubGliLG89bi5Xb3JkQXJyYXkscz1uLkJsb2NrQ2lwaGVyLGE9aS5hbGdvLGM9WzU3LDQ5LDQxLDMzLDI1LDE3LDksMSw1OCw1MCw0MiwzNCwyNiwxOCwxMCwyLDU5LDUxLDQzLDM1LDI3LDE5LDExLDMsNjAsNTIsNDQsMzYsNjMsNTUsNDcsMzksMzEsMjMsMTUsNyw2Miw1NCw0NiwzOCwzMCwyMiwxNCw2LDYxLDUzLDQ1LDM3LDI5LDIxLDEzLDUsMjgsMjAsMTIsNF0saD1bMTQsMTcsMTEsMjQsMSw1LDMsMjgsMTUsNiwyMSwxMCwyMywxOSwxMiw0LDI2LDgsMTYsNywyNywyMCwxMywyLDQxLDUyLDMxLDM3LDQ3LDU1LDMwLDQwLDUxLDQ1LDMzLDQ4LDQ0LDQ5LDM5LDU2LDM0LDUzLDQ2LDQyLDUwLDM2LDI5LDMyXSxsPVsxLDIsNCw2LDgsMTAsMTIsMTQsMTUsMTcsMTksMjEsMjMsMjUsMjcsMjhdLGY9W3swOjg0MjE4ODgsMjY4NDM1NDU2OjMyNzY4LDUzNjg3MDkxMjo4NDIxMzc4LDgwNTMwNjM2ODoyLDEwNzM3NDE4MjQ6NTEyLDEzNDIxNzcyODA6ODQyMTg5MCwxNjEwNjEyNzM2OjgzODkxMjIsMTg3OTA0ODE5Mjo4Mzg4NjA4LDIxNDc0ODM2NDg6NTE0LDI0MTU5MTkxMDQ6ODM4OTEyMCwyNjg0MzU0NTYwOjMzMjgwLDI5NTI3OTAwMTY6ODQyMTM3NiwzMjIxMjI1NDcyOjMyNzcwLDM0ODk2NjA5Mjg6ODM4ODYxMCwzNzU4MDk2Mzg0OjAsNDAyNjUzMTg0MDozMzI4MiwxMzQyMTc3Mjg6MCw0MDI2NTMxODQ6ODQyMTg5MCw2NzEwODg2NDA6MzMyODIsOTM5NTI0MDk2OjMyNzY4LDEyMDc5NTk1NTI6ODQyMTg4OCwxNDc2Mzk1MDA4OjUxMiwxNzQ0ODMwNDY0Ojg0MjEzNzgsMjAxMzI2NTkyMDoyLDIyODE3MDEzNzY6ODM4OTEyMCwyNTUwMTM2ODMyOjMzMjgwLDI4MTg1NzIyODg6ODQyMTM3NiwzMDg3MDA3NzQ0OjgzODkxMjIsMzM1NTQ0MzIwMDo4Mzg4NjEwLDM2MjM4Nzg2NTY6MzI3NzAsMzg5MjMxNDExMjo1MTQsNDE2MDc0OTU2ODo4Mzg4NjA4LDE6MzI3NjgsMjY4NDM1NDU3OjIsNTM2ODcwOTEzOjg0MjE4ODgsODA1MzA2MzY5OjgzODg2MDgsMTA3Mzc0MTgyNTo4NDIxMzc4LDEzNDIxNzcyODE6MzMyODAsMTYxMDYxMjczNzo1MTIsMTg3OTA0ODE5Mzo4Mzg5MTIyLDIxNDc0ODM2NDk6ODQyMTg5MCwyNDE1OTE5MTA1Ojg0MjEzNzYsMjY4NDM1NDU2MTo4Mzg4NjEwLDI5NTI3OTAwMTc6MzMyODIsMzIyMTIyNTQ3Mzo1MTQsMzQ4OTY2MDkyOTo4Mzg5MTIwLDM3NTgwOTYzODU6MzI3NzAsNDAyNjUzMTg0MTowLDEzNDIxNzcyOTo4NDIxODkwLDQwMjY1MzE4NTo4NDIxMzc2LDY3MTA4ODY0MTo4Mzg4NjA4LDkzOTUyNDA5Nzo1MTIsMTIwNzk1OTU1MzozMjc2OCwxNDc2Mzk1MDA5OjgzODg2MTAsMTc0NDgzMDQ2NToyLDIwMTMyNjU5MjE6MzMyODIsMjI4MTcwMTM3NzozMjc3MCwyNTUwMTM2ODMzOjgzODkxMjIsMjgxODU3MjI4OTo1MTQsMzA4NzAwNzc0NTo4NDIxODg4LDMzNTU0NDMyMDE6ODM4OTEyMCwzNjIzODc4NjU3OjAsMzg5MjMxNDExMzozMzI4MCw0MTYwNzQ5NTY5Ojg0MjEzNzh9LHswOjEwNzQyODI1MTIsMTY3NzcyMTY6MTYzODQsMzM1NTQ0MzI6NTI0Mjg4LDUwMzMxNjQ4OjEwNzQyNjYxMjgsNjcxMDg4NjQ6MTA3Mzc0MTg0MCw4Mzg4NjA4MDoxMDc0MjgyNDk2LDEwMDY2MzI5NjoxMDczNzU4MjA4LDExNzQ0MDUxMjoxNiwxMzQyMTc3Mjg6NTQwNjcyLDE1MDk5NDk0NDoxMDczNzU4MjI0LDE2Nzc3MjE2MDoxMDczNzQxODI0LDE4NDU0OTM3Njo1NDA2ODgsMjAxMzI2NTkyOjUyNDMwNCwyMTgxMDM4MDg6MCwyMzQ4ODEwMjQ6MTY0MDAsMjUxNjU4MjQwOjEwNzQyNjYxMTIsODM4ODYwODoxMDczNzU4MjA4LDI1MTY1ODI0OjU0MDY4OCw0MTk0MzA0MDoxNiw1ODcyMDI1NjoxMDczNzU4MjI0LDc1NDk3NDcyOjEwNzQyODI1MTIsOTIyNzQ2ODg6MTA3Mzc0MTgyNCwxMDkwNTE5MDQ6NTI0Mjg4LDEyNTgyOTEyMDoxMDc0MjY2MTI4LDE0MjYwNjMzNjo1MjQzMDQsMTU5MzgzNTUyOjAsMTc2MTYwNzY4OjE2Mzg0LDE5MjkzNzk4NDoxMDc0MjY2MTEyLDIwOTcxNTIwMDoxMDczNzQxODQwLDIyNjQ5MjQxNjo1NDA2NzIsMjQzMjY5NjMyOjEwNzQyODI0OTYsMjYwMDQ2ODQ4OjE2NDAwLDI2ODQzNTQ1NjowLDI4NTIxMjY3MjoxMDc0MjY2MTI4LDMwMTk4OTg4ODoxMDczNzU4MjI0LDMxODc2NzEwNDoxMDc0MjgyNDk2LDMzNTU0NDMyMDoxMDc0MjY2MTEyLDM1MjMyMTUzNjoxNiwzNjkwOTg3NTI6NTQwNjg4LDM4NTg3NTk2ODoxNjM4NCw0MDI2NTMxODQ6MTY0MDAsNDE5NDMwNDAwOjUyNDI4OCw0MzYyMDc2MTY6NTI0MzA0LDQ1Mjk4NDgzMjoxMDczNzQxODQwLDQ2OTc2MjA0ODo1NDA2NzIsNDg2NTM5MjY0OjEwNzM3NTgyMDgsNTAzMzE2NDgwOjEwNzM3NDE4MjQsNTIwMDkzNjk2OjEwNzQyODI1MTIsMjc2ODI0MDY0OjU0MDY4OCwyOTM2MDEyODA6NTI0Mjg4LDMxMDM3ODQ5NjoxMDc0MjY2MTEyLDMyNzE1NTcxMjoxNjM4NCwzNDM5MzI5Mjg6MTA3Mzc1ODIwOCwzNjA3MTAxNDQ6MTA3NDI4MjUxMiwzNzc0ODczNjA6MTYsMzk0MjY0NTc2OjEwNzM3NDE4MjQsNDExMDQxNzkyOjEwNzQyODI0OTYsNDI3ODE5MDA4OjEwNzM3NDE4NDAsNDQ0NTk2MjI0OjEwNzM3NTgyMjQsNDYxMzczNDQwOjUyNDMwNCw0NzgxNTA2NTY6MCw0OTQ5Mjc4NzI6MTY0MDAsNTExNzA1MDg4OjEwNzQyNjYxMjgsNTI4NDgyMzA0OjU0MDY3Mn0sezA6MjYwLDEwNDg1NzY6MCwyMDk3MTUyOjY3MTA5MTIwLDMxNDU3Mjg6NjU3OTYsNDE5NDMwNDo2NTU0MCw1MjQyODgwOjY3MTA4ODY4LDYyOTE0NTY6NjcxNzQ2NjAsNzM0MDAzMjo2NzE3NDQwMCw4Mzg4NjA4OjY3MTA4ODY0LDk0MzcxODQ6NjcxNzQ2NTYsMTA0ODU3NjA6NjU3OTIsMTE1MzQzMzY6NjcxNzQ0MDQsMTI1ODI5MTI6NjcxMDkxMjQsMTM2MzE0ODg6NjU1MzYsMTQ2ODAwNjQ6NCwxNTcyODY0MDoyNTYsNTI0Mjg4OjY3MTc0NjU2LDE1NzI4NjQ6NjcxNzQ0MDQsMjYyMTQ0MDowLDM2NzAwMTY6NjcxMDkxMjAsNDcxODU5Mjo2NzEwODg2OCw1NzY3MTY4OjY1NTM2LDY4MTU3NDQ6NjU1NDAsNzg2NDMyMDoyNjAsODkxMjg5Njo0LDk5NjE0NzI6MjU2LDExMDEwMDQ4OjY3MTc0NDAwLDEyMDU4NjI0OjY1Nzk2LDEzMTA3MjAwOjY1NzkyLDE0MTU1Nzc2OjY3MTA5MTI0LDE1MjA0MzUyOjY3MTc0NjYwLDE2MjUyOTI4OjY3MTA4ODY0LDE2Nzc3MjE2OjY3MTc0NjU2LDE3ODI1NzkyOjY1NTQwLDE4ODc0MzY4OjY1NTM2LDE5OTIyOTQ0OjY3MTA5MTIwLDIwOTcxNTIwOjI1NiwyMjAyMDA5Njo2NzE3NDY2MCwyMzA2ODY3Mjo2NzEwODg2OCwyNDExNzI0ODowLDI1MTY1ODI0OjY3MTA5MTI0LDI2MjE0NDAwOjY3MTA4ODY0LDI3MjYyOTc2OjQsMjgzMTE1NTI6NjU3OTIsMjkzNjAxMjg6NjcxNzQ0MDAsMzA0MDg3MDQ6MjYwLDMxNDU3MjgwOjY1Nzk2LDMyNTA1ODU2OjY3MTc0NDA0LDE3MzAxNTA0OjY3MTA4ODY0LDE4MzUwMDgwOjI2MCwxOTM5ODY1Njo2NzE3NDY1NiwyMDQ0NzIzMjowLDIxNDk1ODA4OjY1NTQwLDIyNTQ0Mzg0OjY3MTA5MTIwLDIzNTkyOTYwOjI1NiwyNDY0MTUzNjo2NzE3NDQwNCwyNTY5MDExMjo2NTUzNiwyNjczODY4ODo2NzE3NDY2MCwyNzc4NzI2NDo2NTc5NiwyODgzNTg0MDo2NzEwODg2OCwyOTg4NDQxNjo2NzEwOTEyNCwzMDkzMjk5Mjo2NzE3NDQwMCwzMTk4MTU2ODo0LDMzMDMwMTQ0OjY1NzkyfSx7MDoyMTUxNjgyMDQ4LDY1NTM2OjIxNDc0ODc4MDgsMTMxMDcyOjQxOTg0NjQsMTk2NjA4OjIxNTE2Nzc5NTIsMjYyMTQ0OjAsMzI3NjgwOjQxOTg0MDAsMzkzMjE2OjIxNDc0ODM3MTIsNDU4NzUyOjQxOTQzNjgsNTI0Mjg4OjIxNDc0ODM2NDgsNTg5ODI0OjQxOTQzMDQsNjU1MzYwOjY0LDcyMDg5NjoyMTQ3NDg3NzQ0LDc4NjQzMjoyMTUxNjc4MDE2LDg1MTk2ODo0MTYwLDkxNzUwNDo0MDk2LDk4MzA0MDoyMTUxNjgyMTEyLDMyNzY4OjIxNDc0ODc4MDgsOTgzMDQ6NjQsMTYzODQwOjIxNTE2NzgwMTYsMjI5Mzc2OjIxNDc0ODc3NDQsMjk0OTEyOjQxOTg0MDAsMzYwNDQ4OjIxNTE2ODIxMTIsNDI1OTg0OjAsNDkxNTIwOjIxNTE2Nzc5NTIsNTU3MDU2OjQwOTYsNjIyNTkyOjIxNTE2ODIwNDgsNjg4MTI4OjQxOTQzMDQsNzUzNjY0OjQxNjAsODE5MjAwOjIxNDc0ODM2NDgsODg0NzM2OjQxOTQzNjgsOTUwMjcyOjQxOTg0NjQsMTAxNTgwODoyMTQ3NDgzNzEyLDEwNDg1NzY6NDE5NDM2OCwxMTE0MTEyOjQxOTg0MDAsMTE3OTY0ODoyMTQ3NDgzNzEyLDEyNDUxODQ6MCwxMzEwNzIwOjQxNjAsMTM3NjI1NjoyMTUxNjc4MDE2LDE0NDE3OTI6MjE1MTY4MjA0OCwxNTA3MzI4OjIxNDc0ODc4MDgsMTU3Mjg2NDoyMTUxNjgyMTEyLDE2Mzg0MDA6MjE0NzQ4MzY0OCwxNzAzOTM2OjIxNTE2Nzc5NTIsMTc2OTQ3Mjo0MTk4NDY0LDE4MzUwMDg6MjE0NzQ4Nzc0NCwxOTAwNTQ0OjQxOTQzMDQsMTk2NjA4MDo2NCwyMDMxNjE2OjQwOTYsMTA4MTM0NDoyMTUxNjc3OTUyLDExNDY4ODA6MjE1MTY4MjExMiwxMjEyNDE2OjAsMTI3Nzk1Mjo0MTk4NDAwLDEzNDM0ODg6NDE5NDM2OCwxNDA5MDI0OjIxNDc0ODM2NDgsMTQ3NDU2MDoyMTQ3NDg3ODA4LDE1NDAwOTY6NjQsMTYwNTYzMjoyMTQ3NDgzNzEyLDE2NzExNjg6NDA5NiwxNzM2NzA0OjIxNDc0ODc3NDQsMTgwMjI0MDoyMTUxNjc4MDE2LDE4Njc3NzY6NDE2MCwxOTMzMzEyOjIxNTE2ODIwNDgsMTk5ODg0ODo0MTk0MzA0LDIwNjQzODQ6NDE5ODQ2NH0sezA6MTI4LDQwOTY6MTcwMzkzNjAsODE5MjoyNjIxNDQsMTIyODg6NTM2ODcwOTEyLDE2Mzg0OjUzNzEzMzE4NCwyMDQ4MDoxNjc3NzM0NCwyNDU3Njo1NTM2NDgyNTYsMjg2NzI6MjYyMjcyLDMyNzY4OjE2Nzc3MjE2LDM2ODY0OjUzNzEzMzA1Niw0MDk2MDo1MzY4NzEwNDAsNDUwNTY6NTUzOTEwNDAwLDQ5MTUyOjU1MzkxMDI3Miw1MzI0ODowLDU3MzQ0OjE3MDM5NDg4LDYxNDQwOjU1MzY0ODEyOCwyMDQ4OjE3MDM5NDg4LDYxNDQ6NTUzNjQ4MjU2LDEwMjQwOjEyOCwxNDMzNjoxNzAzOTM2MCwxODQzMjoyNjIxNDQsMjI1Mjg6NTM3MTMzMTg0LDI2NjI0OjU1MzkxMDI3MiwzMDcyMDo1MzY4NzA5MTIsMzQ4MTY6NTM3MTMzMDU2LDM4OTEyOjAsNDMwMDg6NTUzOTEwNDAwLDQ3MTA0OjE2Nzc3MzQ0LDUxMjAwOjUzNjg3MTA0MCw1NTI5Njo1NTM2NDgxMjgsNTkzOTI6MTY3NzcyMTYsNjM0ODg6MjYyMjcyLDY1NTM2OjI2MjE0NCw2OTYzMjoxMjgsNzM3Mjg6NTM2ODcwOTEyLDc3ODI0OjU1MzY0ODI1Niw4MTkyMDoxNjc3NzM0NCw4NjAxNjo1NTM5MTAyNzIsOTAxMTI6NTM3MTMzMTg0LDk0MjA4OjE2Nzc3MjE2LDk4MzA0OjU1MzkxMDQwMCwxMDI0MDA6NTUzNjQ4MTI4LDEwNjQ5NjoxNzAzOTM2MCwxMTA1OTI6NTM3MTMzMDU2LDExNDY4ODoyNjIyNzIsMTE4Nzg0OjUzNjg3MTA0MCwxMjI4ODA6MCwxMjY5NzY6MTcwMzk0ODgsNjc1ODQ6NTUzNjQ4MjU2LDcxNjgwOjE2Nzc3MjE2LDc1Nzc2OjE3MDM5MzYwLDc5ODcyOjUzNzEzMzE4NCw4Mzk2ODo1MzY4NzA5MTIsODgwNjQ6MTcwMzk0ODgsOTIxNjA6MTI4LDk2MjU2OjU1MzkxMDI3MiwxMDAzNTI6MjYyMjcyLDEwNDQ0ODo1NTM5MTA0MDAsMTA4NTQ0OjAsMTEyNjQwOjU1MzY0ODEyOCwxMTY3MzY6MTY3NzczNDQsMTIwODMyOjI2MjE0NCwxMjQ5Mjg6NTM3MTMzMDU2LDEyOTAyNDo1MzY4NzEwNDB9LHswOjI2ODQzNTQ2NCwyNTY6ODE5Miw1MTI6MjcwNTMyNjA4LDc2ODoyNzA1NDA4MDgsMTAyNDoyNjg0NDM2NDgsMTI4MDoyMDk3MTUyLDE1MzY6MjA5NzE2MCwxNzkyOjI2ODQzNTQ1NiwyMDQ4OjAsMjMwNDoyNjg0NDM2NTYsMjU2MDoyMTA1MzQ0LDI4MTY6OCwzMDcyOjI3MDUzMjYxNiwzMzI4OjIxMDUzNTIsMzU4NDo4MjAwLDM4NDA6MjcwNTQwODAwLDEyODoyNzA1MzI2MDgsMzg0OjI3MDU0MDgwOCw2NDA6OCw4OTY6MjA5NzE1MiwxMTUyOjIxMDUzNTIsMTQwODoyNjg0MzU0NjQsMTY2NDoyNjg0NDM2NDgsMTkyMDo4MjAwLDIxNzY6MjA5NzE2MCwyNDMyOjgxOTIsMjY4ODoyNjg0NDM2NTYsMjk0NDoyNzA1MzI2MTYsMzIwMDowLDM0NTY6MjcwNTQwODAwLDM3MTI6MjEwNTM0NCwzOTY4OjI2ODQzNTQ1Niw0MDk2OjI2ODQ0MzY0OCw0MzUyOjI3MDUzMjYxNiw0NjA4OjI3MDU0MDgwOCw0ODY0OjgyMDAsNTEyMDoyMDk3MTUyLDUzNzY6MjY4NDM1NDU2LDU2MzI6MjY4NDM1NDY0LDU4ODg6MjEwNTM0NCw2MTQ0OjIxMDUzNTIsNjQwMDowLDY2NTY6OCw2OTEyOjI3MDUzMjYwOCw3MTY4OjgxOTIsNzQyNDoyNjg0NDM2NTYsNzY4MDoyNzA1NDA4MDAsNzkzNjoyMDk3MTYwLDQyMjQ6OCw0NDgwOjIxMDUzNDQsNDczNjoyMDk3MTUyLDQ5OTI6MjY4NDM1NDY0LDUyNDg6MjY4NDQzNjQ4LDU1MDQ6ODIwMCw1NzYwOjI3MDU0MDgwOCw2MDE2OjI3MDUzMjYwOCw2MjcyOjI3MDU0MDgwMCw2NTI4OjI3MDUzMjYxNiw2Nzg0OjgxOTIsNzA0MDoyMTA1MzUyLDcyOTY6MjA5NzE2MCw3NTUyOjAsNzgwODoyNjg0MzU0NTYsODA2NDoyNjg0NDM2NTZ9LHswOjEwNDg1NzYsMTY6MzM1NTU0NTcsMzI6MTAyNCw0ODoxMDQ5NjAxLDY0OjM0NjA0MDMzLDgwOjAsOTY6MSwxMTI6MzQ2MDMwMDksMTI4OjMzNTU1NDU2LDE0NDoxMDQ4NTc3LDE2MDozMzU1NDQzMywxNzY6MzQ2MDQwMzIsMTkyOjM0NjAzMDA4LDIwODoxMDI1LDIyNDoxMDQ5NjAwLDI0MDozMzU1NDQzMiw4OjM0NjAzMDA5LDI0OjAsNDA6MzM1NTU0NTcsNTY6MzQ2MDQwMzIsNzI6MTA0ODU3Niw4ODozMzU1NDQzMywxMDQ6MzM1NTQ0MzIsMTIwOjEwMjUsMTM2OjEwNDk2MDEsMTUyOjMzNTU1NDU2LDE2ODozNDYwMzAwOCwxODQ6MTA0ODU3NywyMDA6MTAyNCwyMTY6MzQ2MDQwMzMsMjMyOjEsMjQ4OjEwNDk2MDAsMjU2OjMzNTU0NDMyLDI3MjoxMDQ4NTc2LDI4ODozMzU1NTQ1NywzMDQ6MzQ2MDMwMDksMzIwOjEwNDg1NzcsMzM2OjMzNTU1NDU2LDM1MjozNDYwNDAzMiwzNjg6MTA0OTYwMSwzODQ6MTAyNSw0MDA6MzQ2MDQwMzMsNDE2OjEwNDk2MDAsNDMyOjEsNDQ4OjAsNDY0OjM0NjAzMDA4LDQ4MDozMzU1NDQzMyw0OTY6MTAyNCwyNjQ6MTA0OTYwMCwyODA6MzM1NTU0NTcsMjk2OjM0NjAzMDA5LDMxMjoxLDMyODozMzU1NDQzMiwzNDQ6MTA0ODU3NiwzNjA6MTAyNSwzNzY6MzQ2MDQwMzIsMzkyOjMzNTU0NDMzLDQwODozNDYwMzAwOCw0MjQ6MCw0NDA6MzQ2MDQwMzMsNDU2OjEwNDk2MDEsNDcyOjEwMjQsNDg4OjMzNTU1NDU2LDUwNDoxMDQ4NTc3fSx7MDoxMzQyMTk4MDgsMToxMzEwNzIsMjoxMzQyMTc3MjgsMzozMiw0OjEzMTEwNCw1OjEzNDM1MDg4MCw2OjEzNDM1MDg0OCw3OjIwNDgsODoxMzQzNDg4MDAsOToxMzQyMTk3NzYsMTA6MTMzMTIwLDExOjEzNDM0ODgzMiwxMjoyMDgwLDEzOjAsMTQ6MTM0MjE3NzYwLDE1OjEzMzE1MiwyMTQ3NDgzNjQ4OjIwNDgsMjE0NzQ4MzY0OToxMzQzNTA4ODAsMjE0NzQ4MzY1MDoxMzQyMTk4MDgsMjE0NzQ4MzY1MToxMzQyMTc3MjgsMjE0NzQ4MzY1MjoxMzQzNDg4MDAsMjE0NzQ4MzY1MzoxMzMxMjAsMjE0NzQ4MzY1NDoxMzMxNTIsMjE0NzQ4MzY1NTozMiwyMTQ3NDgzNjU2OjEzNDIxNzc2MCwyMTQ3NDgzNjU3OjIwODAsMjE0NzQ4MzY1ODoxMzExMDQsMjE0NzQ4MzY1OToxMzQzNTA4NDgsMjE0NzQ4MzY2MDowLDIxNDc0ODM2NjE6MTM0MzQ4ODMyLDIxNDc0ODM2NjI6MTM0MjE5Nzc2LDIxNDc0ODM2NjM6MTMxMDcyLDE2OjEzMzE1MiwxNzoxMzQzNTA4NDgsMTg6MzIsMTk6MjA0OCwyMDoxMzQyMTk3NzYsMjE6MTM0MjE3NzYwLDIyOjEzNDM0ODgzMiwyMzoxMzEwNzIsMjQ6MCwyNToxMzExMDQsMjY6MTM0MzQ4ODAwLDI3OjEzNDIxOTgwOCwyODoxMzQzNTA4ODAsMjk6MTMzMTIwLDMwOjIwODAsMzE6MTM0MjE3NzI4LDIxNDc0ODM2NjQ6MTMxMDcyLDIxNDc0ODM2NjU6MjA0OCwyMTQ3NDgzNjY2OjEzNDM0ODgzMiwyMTQ3NDgzNjY3OjEzMzE1MiwyMTQ3NDgzNjY4OjMyLDIxNDc0ODM2Njk6MTM0MzQ4ODAwLDIxNDc0ODM2NzA6MTM0MjE3NzI4LDIxNDc0ODM2NzE6MTM0MjE5ODA4LDIxNDc0ODM2NzI6MTM0MzUwODgwLDIxNDc0ODM2NzM6MTM0MjE3NzYwLDIxNDc0ODM2NzQ6MTM0MjE5Nzc2LDIxNDc0ODM2NzU6MCwyMTQ3NDgzNjc2OjEzMzEyMCwyMTQ3NDgzNjc3OjIwODAsMjE0NzQ4MzY3ODoxMzExMDQsMjE0NzQ4MzY3OToxMzQzNTA4NDh9XSx1PVs0MTYwNzQ5NTY5LDUyODQ4MjMwNCwzMzAzMDE0NCwyMDY0Mzg0LDEyOTAyNCw4MDY0LDUwNCwyMTQ3NDgzNjc5XSxkPWEuREVTPXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkscj10LndvcmRzLGU9W10saT0wO2k8NTY7aSsrKXt2YXIgbj1jW2ldLTE7ZVtpXT1yW24+Pj41XT4+PjMxLW4lMzImMX1mb3IodmFyIG89dGhpcy5fc3ViS2V5cz1bXSxzPTA7czwxNjtzKyspe2Zvcih2YXIgYT1vW3NdPVtdLGY9bFtzXSxpPTA7aTwyNDtpKyspYVtpLzZ8MF18PWVbKGhbaV0tMStmKSUyOF08PDMxLWklNixhWzQrKGkvNnwwKV18PWVbMjgrKGhbaSsyNF0tMStmKSUyOF08PDMxLWklNjthWzBdPWFbMF08PDF8YVswXT4+PjMxO2Zvcih2YXIgaT0xO2k8NztpKyspYVtpXT1hW2ldPj4+NCooaS0xKSszO2FbN109YVs3XTw8NXxhWzddPj4+Mjd9Zm9yKHZhciB1PXRoaXMuX2ludlN1YktleXM9W10saT0wO2k8MTY7aSsrKXVbaV09b1sxNS1pXX0sZW5jcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9zdWJLZXlzKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9pbnZTdWJLZXlzKX0sX2RvQ3J5cHRCbG9jazpmdW5jdGlvbih0LGksbil7dGhpcy5fbEJsb2NrPXRbaV0sdGhpcy5fckJsb2NrPXRbaSsxXSxyLmNhbGwodGhpcyw0LDI1MjY0NTEzNSksci5jYWxsKHRoaXMsMTYsNjU1MzUpLGUuY2FsbCh0aGlzLDIsODU4OTkzNDU5KSxlLmNhbGwodGhpcyw4LDE2NzExOTM1KSxyLmNhbGwodGhpcywxLDE0MzE2NTU3NjUpO2Zvcih2YXIgbz0wO288MTY7bysrKXtmb3IodmFyIHM9bltvXSxhPXRoaXMuX2xCbG9jayxjPXRoaXMuX3JCbG9jayxoPTAsbD0wO2w8ODtsKyspaHw9ZltsXVsoKGNec1tsXSkmdVtsXSk+Pj4wXTt0aGlzLl9sQmxvY2s9Yyx0aGlzLl9yQmxvY2s9YV5ofXZhciBkPXRoaXMuX2xCbG9jazt0aGlzLl9sQmxvY2s9dGhpcy5fckJsb2NrLHRoaXMuX3JCbG9jaz1kLHIuY2FsbCh0aGlzLDEsMTQzMTY1NTc2NSksZS5jYWxsKHRoaXMsOCwxNjcxMTkzNSksZS5jYWxsKHRoaXMsMiw4NTg5OTM0NTkpLHIuY2FsbCh0aGlzLDE2LDY1NTM1KSxyLmNhbGwodGhpcyw0LDI1MjY0NTEzNSksdFtpXT10aGlzLl9sQmxvY2ssdFtpKzFdPXRoaXMuX3JCbG9ja30sa2V5U2l6ZToyLGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7aS5ERVM9cy5fY3JlYXRlSGVscGVyKGQpO3ZhciB2PWEuVHJpcGxlREVTPXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2tleSxyPXQud29yZHM7dGhpcy5fZGVzMT1kLmNyZWF0ZUVuY3J5cHRvcihvLmNyZWF0ZShyLnNsaWNlKDAsMikpKSx0aGlzLl9kZXMyPWQuY3JlYXRlRW5jcnlwdG9yKG8uY3JlYXRlKHIuc2xpY2UoMiw0KSkpLHRoaXMuX2RlczM9ZC5jcmVhdGVFbmNyeXB0b3Ioby5jcmVhdGUoci5zbGljZSg0LDYpKSl9LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2RlczEuZW5jcnlwdEJsb2NrKHQsciksdGhpcy5fZGVzMi5kZWNyeXB0QmxvY2sodCxyKSx0aGlzLl9kZXMzLmVuY3J5cHRCbG9jayh0LHIpfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9kZXMzLmRlY3J5cHRCbG9jayh0LHIpLHRoaXMuX2RlczIuZW5jcnlwdEJsb2NrKHQsciksdGhpcy5fZGVzMS5kZWNyeXB0QmxvY2sodCxyKX0sa2V5U2l6ZTo2LGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7aS5UcmlwbGVERVM9cy5fY3JlYXRlSGVscGVyKHYpfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcigpe2Zvcih2YXIgdD10aGlzLl9TLHI9dGhpcy5faSxlPXRoaXMuX2osaT0wLG49MDtuPDQ7bisrKXtyPShyKzEpJTI1NixlPShlK3Rbcl0pJTI1Njt2YXIgbz10W3JdO3Rbcl09dFtlXSx0W2VdPW8saXw9dFsodFtyXSt0W2VdKSUyNTZdPDwyNC04Km59cmV0dXJuIHRoaXMuX2k9cix0aGlzLl9qPWUsaX12YXIgZT10LGk9ZS5saWIsbj1pLlN0cmVhbUNpcGhlcixvPWUuYWxnbyxzPW8uUkM0PW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkscj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPXRoaXMuX1M9W10sbj0wO248MjU2O24rKylpW25dPW47Zm9yKHZhciBuPTAsbz0wO248MjU2O24rKyl7dmFyIHM9biVlLGE9cltzPj4+Ml0+Pj4yNC1zJTQqOCYyNTU7bz0obytpW25dK2EpJTI1Njt2YXIgYz1pW25dO2lbbl09aVtvXSxpW29dPWN9dGhpcy5faT10aGlzLl9qPTB9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3RbZV1ePXIuY2FsbCh0aGlzKX0sa2V5U2l6ZTo4LGl2U2l6ZTowfSk7ZS5SQzQ9bi5fY3JlYXRlSGVscGVyKHMpO3ZhciBhPW8uUkM0RHJvcD1zLmV4dGVuZCh7Y2ZnOnMuY2ZnLmV4dGVuZCh7ZHJvcDoxOTJ9KSxfZG9SZXNldDpmdW5jdGlvbigpe3MuX2RvUmVzZXQuY2FsbCh0aGlzKTtmb3IodmFyIHQ9dGhpcy5jZmcuZHJvcDt0PjA7dC0tKXIuY2FsbCh0aGlzKX19KTtlLlJDNERyb3A9bi5fY3JlYXRlSGVscGVyKGEpfSgpLHQubW9kZS5DVFJHbGFkbWFuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0KXtpZigyNTU9PT0odD4+MjQmMjU1KSl7dmFyIHI9dD4+MTYmMjU1LGU9dD4+OCYyNTUsaT0yNTUmdDsyNTU9PT1yPyhyPTAsMjU1PT09ZT8oZT0wLDI1NT09PWk/aT0wOisraSk6KytlKTorK3IsdD0wLHQrPXI8PDE2LHQrPWU8PDgsdCs9aX1lbHNlIHQrPTE8PDI0O3JldHVybiB0fWZ1bmN0aW9uIGUodCl7cmV0dXJuIDA9PT0odFswXT1yKHRbMF0pKSYmKHRbMV09cih0WzFdKSksdH12YXIgaT10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksbj1pLkVuY3J5cHRvcj1pLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemUsbz10aGlzLl9pdixzPXRoaXMuX2NvdW50ZXI7byYmKHM9dGhpcy5fY291bnRlcj1vLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCksZShzKTt2YXIgYT1zLnNsaWNlKDApO2kuZW5jcnlwdEJsb2NrKGEsMCk7Zm9yKHZhciBjPTA7YzxuO2MrKyl0W3IrY11ePWFbY119fSk7cmV0dXJuIGkuRGVjcnlwdG9yPW4saX0oKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIoKXtmb3IodmFyIHQ9dGhpcy5fWCxyPXRoaXMuX0MsZT0wO2U8ODtlKyspYVtlXT1yW2VdO3JbMF09clswXSsxMjk1MzA3NTk3K3RoaXMuX2J8MCxyWzFdPXJbMV0rMzU0NTA1MjM3MSsoclswXT4+PjA8YVswXT4+PjA/MTowKXwwLHJbMl09clsyXSs4ODYyNjMwOTIrKHJbMV0+Pj4wPGFbMV0+Pj4wPzE6MCl8MCxyWzNdPXJbM10rMTI5NTMwNzU5NysoclsyXT4+PjA8YVsyXT4+PjA/MTowKXwwLHJbNF09cls0XSszNTQ1MDUyMzcxKyhyWzNdPj4+MDxhWzNdPj4+MD8xOjApfDAscls1XT1yWzVdKzg4NjI2MzA5Misocls0XT4+PjA8YVs0XT4+PjA/MTowKXwwLHJbNl09cls2XSsxMjk1MzA3NTk3KyhyWzVdPj4+MDxhWzVdPj4+MD8xOjApfDAscls3XT1yWzddKzM1NDUwNTIzNzErKHJbNl0+Pj4wPGFbNl0+Pj4wPzE6MCl8MCx0aGlzLl9iPXJbN10+Pj4wPGFbN10+Pj4wPzE6MDtmb3IodmFyIGU9MDtlPDg7ZSsrKXt2YXIgaT10W2VdK3JbZV0sbj02NTUzNSZpLG89aT4+PjE2LHM9KChuKm4+Pj4xNykrbipvPj4+MTUpK28qbyxoPSgoNDI5NDkwMTc2MCZpKSppfDApKygoNjU1MzUmaSkqaXwwKTtjW2VdPXNeaH10WzBdPWNbMF0rKGNbN108PDE2fGNbN10+Pj4xNikrKGNbNl08PDE2fGNbNl0+Pj4xNil8MCx0WzFdPWNbMV0rKGNbMF08PDh8Y1swXT4+PjI0KStjWzddfDAsdFsyXT1jWzJdKyhjWzFdPDwxNnxjWzFdPj4+MTYpKyhjWzBdPDwxNnxjWzBdPj4+MTYpfDAsdFszXT1jWzNdKyhjWzJdPDw4fGNbMl0+Pj4yNCkrY1sxXXwwLHRbNF09Y1s0XSsoY1szXTw8MTZ8Y1szXT4+PjE2KSsoY1syXTw8MTZ8Y1syXT4+PjE2KXwwLHRbNV09Y1s1XSsoY1s0XTw8OHxjWzRdPj4+MjQpK2NbM118MCx0WzZdPWNbNl0rKGNbNV08PDE2fGNbNV0+Pj4xNikrKGNbNF08PDE2fGNbNF0+Pj4xNil8MCx0WzddPWNbN10rKGNbNl08PDh8Y1s2XT4+PjI0KStjWzVdfDB9dmFyIGU9dCxpPWUubGliLG49aS5TdHJlYW1DaXBoZXIsbz1lLmFsZ28scz1bXSxhPVtdLGM9W10saD1vLlJhYmJpdD1uLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYsaT0wO2k8NDtpKyspdFtpXT0xNjcxMTkzNSYodFtpXTw8OHx0W2ldPj4+MjQpfDQyNzgyNTUzNjAmKHRbaV08PDI0fHRbaV0+Pj44KTt2YXIgbj10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbz10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO3RoaXMuX2I9MDtmb3IodmFyIGk9MDtpPDQ7aSsrKXIuY2FsbCh0aGlzKTtmb3IodmFyIGk9MDtpPDg7aSsrKW9baV1ePW5baSs0JjddO2lmKGUpe3ZhciBzPWUud29yZHMsYT1zWzBdLGM9c1sxXSxoPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGw9MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCksZj1oPj4+MTZ8NDI5NDkwMTc2MCZsLHU9bDw8MTZ8NjU1MzUmaDtvWzBdXj1oLG9bMV1ePWYsb1syXV49bCxvWzNdXj11LG9bNF1ePWgsb1s1XV49ZixvWzZdXj1sLG9bN11ePXU7Zm9yKHZhciBpPTA7aTw0O2krKylyLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9YO3IuY2FsbCh0aGlzKSxzWzBdPWlbMF1eaVs1XT4+PjE2XmlbM108PDE2LHNbMV09aVsyXV5pWzddPj4+MTZeaVs1XTw8MTYsc1syXT1pWzRdXmlbMV0+Pj4xNl5pWzddPDwxNixzWzNdPWlbNl1eaVszXT4+PjE2XmlbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspc1tuXT0xNjcxMTkzNSYoc1tuXTw8OHxzW25dPj4+MjQpfDQyNzgyNTUzNjAmKHNbbl08PDI0fHNbbl0+Pj44KSx0W2Urbl1ePXNbbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZS5SYWJiaXQ9bi5fY3JlYXRlSGVscGVyKGgpfSgpLHQubW9kZS5DVFI9ZnVuY3Rpb24oKXt2YXIgcj10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksZT1yLkVuY3J5cHRvcj1yLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fY2lwaGVyLGk9ZS5ibG9ja1NpemUsbj10aGlzLl9pdixvPXRoaXMuX2NvdW50ZXI7biYmKG89dGhpcy5fY291bnRlcj1uLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCk7dmFyIHM9by5zbGljZSgwKTtlLmVuY3J5cHRCbG9jayhzLDApLG9baS0xXT1vW2ktMV0rMXwwO2Zvcih2YXIgYT0wO2E8aTthKyspdFtyK2FdXj1zW2FdfX0pO3JldHVybiByLkRlY3J5cHRvcj1lLHJ9KCksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7Zm9yKHZhciB0PXRoaXMuX1gscj10aGlzLl9DLGU9MDtlPDg7ZSsrKWFbZV09cltlXTtyWzBdPXJbMF0rMTI5NTMwNzU5Nyt0aGlzLl9ifDAsclsxXT1yWzFdKzM1NDUwNTIzNzErKHJbMF0+Pj4wPGFbMF0+Pj4wPzE6MCl8MCxyWzJdPXJbMl0rODg2MjYzMDkyKyhyWzFdPj4+MDxhWzFdPj4+MD8xOjApfDAsclszXT1yWzNdKzEyOTUzMDc1OTcrKHJbMl0+Pj4wPGFbMl0+Pj4wPzE6MCl8MCxyWzRdPXJbNF0rMzU0NTA1MjM3MSsoclszXT4+PjA8YVszXT4+PjA/MTowKXwwLHJbNV09cls1XSs4ODYyNjMwOTIrKHJbNF0+Pj4wPGFbNF0+Pj4wPzE6MCl8MCxyWzZdPXJbNl0rMTI5NTMwNzU5Nysocls1XT4+PjA8YVs1XT4+PjA/MTowKXwwLHJbN109cls3XSszNTQ1MDUyMzcxKyhyWzZdPj4+MDxhWzZdPj4+MD8xOjApfDAsdGhpcy5fYj1yWzddPj4+MDxhWzddPj4+MD8xOjA7Zm9yKHZhciBlPTA7ZTw4O2UrKyl7dmFyIGk9dFtlXStyW2VdLG49NjU1MzUmaSxvPWk+Pj4xNixzPSgobipuPj4+MTcpK24qbz4+PjE1KStvKm8saD0oKDQyOTQ5MDE3NjAmaSkqaXwwKSsoKDY1NTM1JmkpKml8MCk7Y1tlXT1zXmh9dFswXT1jWzBdKyhjWzddPDwxNnxjWzddPj4+MTYpKyhjWzZdPDwxNnxjWzZdPj4+MTYpfDAsdFsxXT1jWzFdKyhjWzBdPDw4fGNbMF0+Pj4yNCkrY1s3XXwwLHRbMl09Y1syXSsoY1sxXTw8MTZ8Y1sxXT4+PjE2KSsoY1swXTw8MTZ8Y1swXT4+PjE2KXwwLHRbM109Y1szXSsoY1syXTw8OHxjWzJdPj4+MjQpK2NbMV18MCx0WzRdPWNbNF0rKGNbM108PDE2fGNbM10+Pj4xNikrKGNbMl08PDE2fGNbMl0+Pj4xNil8MCx0WzVdPWNbNV0rKGNbNF08PDh8Y1s0XT4+PjI0KStjWzNdfDAsdFs2XT1jWzZdKyhjWzVdPDwxNnxjWzVdPj4+MTYpKyhjWzRdPDwxNnxjWzRdPj4+MTYpfDAsdFs3XT1jWzddKyhjWzZdPDw4fGNbNl0+Pj4yNCkrY1s1XXwwfXZhciBlPXQsaT1lLmxpYixuPWkuU3RyZWFtQ2lwaGVyLG89ZS5hbGdvLHM9W10sYT1bXSxjPVtdLGg9by5SYWJiaXRMZWdhY3k9bi5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYsaT10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbj10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO3RoaXMuX2I9MDtmb3IodmFyIG89MDtvPDQ7bysrKXIuY2FsbCh0aGlzKTtmb3IodmFyIG89MDtvPDg7bysrKW5bb11ePWlbbys0JjddO2lmKGUpe3ZhciBzPWUud29yZHMsYT1zWzBdLGM9c1sxXSxoPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGw9MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCksZj1oPj4+MTZ8NDI5NDkwMTc2MCZsLHU9bDw8MTZ8NjU1MzUmaDtuWzBdXj1oLG5bMV1ePWYsblsyXV49bCxuWzNdXj11LG5bNF1ePWgsbls1XV49ZixuWzZdXj1sLG5bN11ePXU7Zm9yKHZhciBvPTA7bzw0O28rKylyLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9YO3IuY2FsbCh0aGlzKSxzWzBdPWlbMF1eaVs1XT4+PjE2XmlbM108PDE2LHNbMV09aVsyXV5pWzddPj4+MTZeaVs1XTw8MTYsc1syXT1pWzRdXmlbMV0+Pj4xNl5pWzddPDwxNixzWzNdPWlbNl1eaVszXT4+PjE2XmlbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspc1tuXT0xNjcxMTkzNSYoc1tuXTw8OHxzW25dPj4+MjQpfDQyNzgyNTUzNjAmKHNbbl08PDI0fHNbbl0+Pj44KSx0W2Urbl1ePXNbbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZS5SYWJiaXRMZWdhY3k9bi5fY3JlYXRlSGVscGVyKGgpfSgpLHQucGFkLlplcm9QYWRkaW5nPXtwYWQ6ZnVuY3Rpb24odCxyKXt2YXIgZT00KnI7dC5jbGFtcCgpLHQuc2lnQnl0ZXMrPWUtKHQuc2lnQnl0ZXMlZXx8ZSl9LHVucGFkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcy0xOyEocltlPj4+Ml0+Pj4yNC1lJTQqOCYyNTUpOyllLS07dC5zaWdCeXRlcz1lKzF9fSx0fSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcnlwdG8tanMubWluLmpzLm1hcCJdfQ== +//------QC-SOURCE-SPLIT------ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/RankList/List.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'd5421HgLShFKIjj5f18m1mi', 'List'); +// Script/module/RankList/List.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StartAxisType = exports.ListType = void 0; +var ItemRender_1 = require("./ItemRender"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +/**列表排列方式 */ +var ListType; +(function (ListType) { + /**水平排列 */ + ListType[ListType["Horizontal"] = 1] = "Horizontal"; + /**垂直排列 */ + ListType[ListType["Vertical"] = 2] = "Vertical"; + /**网格排列 */ + ListType[ListType["Grid"] = 3] = "Grid"; +})(ListType = exports.ListType || (exports.ListType = {})); +/**网格布局中的方向 */ +var StartAxisType; +(function (StartAxisType) { + /**水平排列 */ + StartAxisType[StartAxisType["Horizontal"] = 1] = "Horizontal"; + /**垂直排列 */ + StartAxisType[StartAxisType["Vertical"] = 2] = "Vertical"; +})(StartAxisType = exports.StartAxisType || (exports.StartAxisType = {})); +/** + * 列表 + * 根据cocos_example的listView改动而来 + * @author chenkai 2020.7.8 + * @example + * 1.创建cocos的ScrollView组件,添加List,设置List属性即可 + * + */ +var List = /** @class */ (function (_super) { + __extends(List, _super); + function List() { + var _this = _super !== null && _super.apply(this, arguments) || this; + //==================== 属性面板 ========================= + /**列表选项 */ + _this.itemRender = null; + /**排列方式 */ + _this.type = ListType.Vertical; + /**网格布局中的方向 */ + _this.startAxis = StartAxisType.Horizontal; + /**列表项之间X间隔 */ + _this.spaceX = 0; + /**列表项之间Y间隔 */ + _this.spaceY = 0; + /**上间距 */ + _this.padding_top = 0; + /**下间距 */ + _this.padding_buttom = 0; + /**左间距 */ + _this.padding_left = 0; + _this._padding = 0; + /**右间距 */ + _this.padding_right = 0; + //====================== 滚动容器 =============================== + /**列表滚动容器 */ + _this.scrollView = null; + /**scrollView的内容容器 */ + _this.content = null; + //======================== 列表项 =========================== + /**列表项数据 */ + _this.itemDataList = []; + /**应创建的实例数量 */ + _this.spawnCount = 0; + /**存放列表项实例的数组 */ + _this.itemList = []; + /**item的高度 */ + _this.itemHeight = 0; + /**item的宽度 */ + _this.itemWidth = 0; + /**存放不再使用中的列表项 */ + _this.itemPool = []; + //======================= 计算参数 ========================== + /**距离scrollView中心点的距离,超过这个距离的item会被重置,一般设置为 scrollVIew.height/2 + item.heigt/2 + space,因为这个距离item正好超出scrollView显示范围 */ + _this.halfScrollView = 0; + /**上一次content的X值,用于和现在content的X值比较,得出是向左还是向右滚动 */ + _this.lastContentPosX = 0; + /**上一次content的Y值,用于和现在content的Y值比较,得出是向上还是向下滚动 */ + _this.lastContentPosY = 0; + /**网格行数 */ + _this.gridRow = 0; + /**网格列数 */ + _this.gridCol = 0; + /**刷新时间,单位s */ + _this.updateTimer = 0; + /**刷新间隔,单位s */ + _this.updateInterval = 0.1; + /**是否滚动容器 */ + _this.bScrolling = false; + /**刷新的函数 */ + _this.updateFun = function () { }; + return _this; + } + List.prototype.onLoad = function () { + this.itemHeight = this.itemRender.height; + this.itemWidth = this.itemRender.width; + this.scrollView = this.node.getComponent(cc.ScrollView); + this.content = this.scrollView.content; + this.content.anchorX = 0; + this.content.anchorY = 1; + this.content.removeAllChildren(); + this.scrollView.node.on("scrolling", this.onScrolling, this); + }; + /** + * 列表数据 (列表数据复制使用,如果列表数据改变,则需要重新设置一遍数据) + * @param itemDataList item数据列表 + */ + List.prototype.setData = function (itemDataList) { + this.itemDataList = itemDataList.slice(); + this.updateContent(); + }; + /**计算列表的各项参数 */ + List.prototype.countListParam = function () { + var dataLen = this.itemDataList.length; + if (this.type == ListType.Vertical) { + this.scrollView.horizontal = false; + this.scrollView.vertical = true; + this.content.width = this.content.parent.width; + this.content.height = dataLen * this.itemHeight + (dataLen - 1) * this.spaceY + this.padding_top + this.padding_buttom; + this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) + 2; //计算创建的item实例数量,比当前scrollView容器能放下的item数量再加上2个 + this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; //计算bufferZone,item的显示范围 + this.updateFun = this.updateV; + } + else if (this.type == ListType.Horizontal) { + this.scrollView.horizontal = true; + this.scrollView.vertical = false; + this.content.width = dataLen * this.itemWidth + (dataLen - 1) * this.spaceX + this.padding_left + this.padding_right; + this.content.height = this.content.parent.height; + this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) + 2; + this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX; + this.updateFun = this.udpateH; + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + this.scrollView.horizontal = false; + this.scrollView.vertical = true; + this.content.width = this.content.parent.width; + //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效 + if (this.padding_left + this.padding_right + this.itemWidth + this.spaceX > this.content.width) { + this.padding_left = 0; + this.padding_right = 0; + console.error("padding_left或padding_right过大"); + } + this.gridCol = Math.floor((this.content.width - this.padding_left - this.padding_right) / (this.itemWidth + this.spaceX)); + this.gridRow = Math.ceil(dataLen / this.gridCol); + this.content.height = this.gridRow * this.itemHeight + (this.gridRow - 1) * this.spaceY + this.padding_top + this.padding_buttom; + this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) * this.gridCol + this.gridCol * 2; + this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; + this.updateFun = this.updateGrid_V; + } + else if (this.startAxis == StartAxisType.Horizontal) { + this.scrollView.horizontal = true; + this.scrollView.vertical = false; + //计算高间隔 + this.content.height = this.content.parent.height; + //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效 + if (this.padding_top + this.padding_buttom + this.itemHeight + this.spaceY > this.content.height) { + this.padding_top = 0; + this.padding_buttom = 0; + console.error("padding_top或padding_buttom过大"); + } + this.gridRow = Math.floor((this.content.height - this.padding_top - this.padding_buttom) / (this.itemHeight + this.spaceY)); + this.gridCol = Math.ceil(dataLen / this.gridRow); + this.content.width = this.gridCol * this.itemWidth + (this.gridCol - 1) * this.spaceX + this.padding_left + this.padding_right; + this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) * this.gridRow + this.gridRow * 2; + this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX; + this.updateFun = this.updateGrid_H; + } + } + }; + /** + * 创建列表 + * @param startIndex 起始显示的数据索引 0表示第一项 + * @param offset scrollView偏移量 + */ + List.prototype.createList = function (startIndex, offset) { + //当需要显示的数据长度 > 虚拟列表长度, 删除最末尾几个数据时,列表需要重置位置到scrollView最底端 + if (this.itemDataList.length > this.spawnCount && (startIndex + this.spawnCount - 1) >= this.itemDataList.length) { + startIndex = this.itemDataList.length - this.spawnCount; + offset = this.scrollView.getMaxScrollOffset(); + //当需要显示的数据长度 <= 虚拟列表长度, 隐藏多余的虚拟列表项 + } + else if (this.itemDataList.length <= this.spawnCount) { + startIndex = 0; + } + for (var i = 0; i < this.spawnCount; i++) { + var item = void 0; + //需要显示的数据索引在数据范围内,则item实例显示出来 + if (i + startIndex < this.itemDataList.length) { + if (this.itemList[i] == null) { + item = this.getItem(); + this.itemList.push(item); + item.parent = this.content; + } + else { + item = this.itemList[i]; + } + //需要显示的数据索引超过了数据范围,则item实例隐藏起来 + } + else { + //item实例数量 > 需要显示的数据量 + if (this.itemList.length > (this.itemDataList.length - startIndex)) { + item = this.itemList.pop(); + item.removeFromParent(); + this.itemPool.push(item); + } + continue; + } + var itemRender = item.getComponent(ItemRender_1.default); + itemRender.itemIndex = i + startIndex; + itemRender.data = this.itemDataList[i + startIndex]; + itemRender.dataChanged(); + if (this.type == ListType.Vertical) { + //因为content的锚点X是0,所以item的x值是content.with/2表示居中,锚点Y是1,所以item的y值从content顶部向下是0到负无穷。所以item.y= -item.height/2时,是在content的顶部。 + item.setPosition(this.content.width / 2, -item.height * (0.5 + i + startIndex) - this.spaceY * (i + startIndex) - this.padding_top); + } + else if (this.type == ListType.Horizontal) { + item.setPosition(item.width * (0.5 + i + startIndex) + this.spaceX * (i + startIndex) + this.padding_left, -this.content.height / 2); + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + var row = Math.floor((i + startIndex) / this.gridCol); + var col = (i + startIndex) % this.gridCol; + item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top); + item.opacity = 255; + } + else if (this.startAxis == StartAxisType.Horizontal) { + var row = (i + startIndex) % this.gridRow; + var col = Math.floor((i + startIndex) / this.gridRow); + item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top); + item.opacity = 255; + } + } + } + this.scrollView.scrollToOffset(offset); + }; + /**获取一个列表项 */ + List.prototype.getItem = function () { + if (this.itemPool.length == 0) { + return cc.instantiate(this.itemRender); + } + else { + return this.itemPool.pop(); + } + }; + List.prototype.update = function (dt) { + if (this.bScrolling == false) { + return; + } + this.updateTimer += dt; + if (this.updateTimer < this.updateInterval) { + return; + } + this.updateTimer = 0; + this.bScrolling = false; + this.updateFun(); + }; + List.prototype.onScrolling = function () { + this.bScrolling = true; + }; + /**垂直排列 */ + List.prototype.updateV = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isUp = this.scrollView.content.y > this.lastContentPosY; + var offset = (this.itemHeight + this.spaceY) * items.length; + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isUp) { + //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界 + if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.y = item.y - offset; + } + } + else { + //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界 + if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.y = item.y + offset; + } + } + } + this.lastContentPosY = this.scrollView.content.y; + }; + /**水平排列 */ + List.prototype.udpateH = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isRight = this.scrollView.content.x > this.lastContentPosX; + var offset = (this.itemWidth + this.spaceX) * items.length; + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isRight) { + //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界 + if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.x = item.x - offset; + } + } + else { + //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界 + if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.x = item.x + offset; + } + } + } + this.lastContentPosX = this.scrollView.content.x; + }; + /**网格垂直排列 */ + List.prototype.updateGrid_V = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isUp = this.scrollView.content.y > this.lastContentPosY; + var offset = (this.itemHeight + this.spaceY) * (this.spawnCount / this.gridCol); + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isUp) { + //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界 + if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridCol) * this.gridCol; + if (this.itemDataList[itemIndex] != null) { + item.y = item.y - offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.y = item.y - offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + else { //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界 + if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridCol) * this.gridCol; + if (this.itemDataList[itemIndex] != null) { + item.y = item.y + offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.y = item.y + offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + } + this.lastContentPosY = this.scrollView.content.y; + }; + /**网格水平排列 */ + List.prototype.updateGrid_H = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isRight = this.scrollView.content.x > this.lastContentPosX; + var offset = (this.itemWidth + this.spaceX) * (this.spawnCount / this.gridRow); + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isRight) { + //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界 + if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridRow) * this.gridRow; + if (this.itemDataList[itemIndex] != null) { + item.x = item.x - offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.x = item.x - offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + else { + //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界 + if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridRow) * this.gridRow; + if (this.itemDataList[itemIndex] != null) { + item.x = item.x + offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.x = item.x + offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + } + this.lastContentPosX = this.scrollView.content.x; + }; + /**获取item在scrollView的局部坐标 */ + List.prototype.getPositionInView = function (item) { + var worldPos = item.parent.convertToWorldSpaceAR(item.position); + var viewPos = this.scrollView.node.convertToNodeSpaceAR(worldPos); + return viewPos; + }; + /**获取列表数据 */ + List.prototype.getListData = function () { + return this.itemDataList; + }; + /** + * 增加一项数据到列表的末尾 + * @param data 数据 + */ + List.prototype.addItem = function (data) { + this.itemDataList.push(data); + this.updateContent(); + }; + /** + * 增加一项数据到列表指定位置 + * @param index 位置,0表示第1项 + * @param data 数据 + */ + List.prototype.addItemAt = function (index, data) { + if (this.itemDataList[index] != null || this.itemDataList.length == index) { + this.itemDataList.splice(index, 1, data); + this.updateContent(); + } + }; + /** + * 删除一项数据 + * @param index 删除项的位置 ,0表示第1项 + */ + List.prototype.deleteItem = function (index) { + if (this.itemDataList[index] != null) { + this.itemDataList.splice(index, 1); + this.updateContent(); + } + }; + /** + * 改变一项数据 + * @param index 位置,0表示第1项 + * @param data 替换的数据 + */ + List.prototype.changeItem = function (index, data) { + if (this.itemDataList[index] != null) { + this.itemDataList[index] = data; + this.updateContent(); + } + }; + /**获取第一个Item的位置 */ + List.prototype.updateContent = function () { + //显示列表实例为0个 + if (this.itemList.length == 0) { + this.countListParam(); + this.createList(0, new cc.Vec2(0, 0)); + //显示列表的实例不为0个,则需要重新排列item实例数组 + } + else { + if (this.type == ListType.Vertical) { + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + } + else if (this.type == ListType.Horizontal) { + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + } + else if (this.startAxis == StartAxisType.Horizontal) { + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + } + } + this.countListParam(); + //获取第一个item实例需要显示的数据索引 + var startIndex = this.itemList[0].getComponent(ItemRender_1.default).itemIndex; + if (this.type == ListType.Grid && this.startAxis == StartAxisType.Vertical) { + startIndex += (startIndex + this.spawnCount) % this.gridCol; + } + else if (this.type == ListType.Grid && this.startAxis == StartAxisType.Horizontal) { + startIndex += (startIndex + this.spawnCount) % this.gridRow; + } + //getScrollOffset()和scrollToOffset()的x值是相反的 + var offset = this.scrollView.getScrollOffset(); + offset.x = -offset.x; + this.createList(startIndex, offset); + } + }; + /**销毁 */ + List.prototype.onDestroy = function () { + //清理列表项 + var len = this.itemList.length; + for (var i = 0; i < len; i++) { + if (cc.isValid(this.itemList[i], true)) { + this.itemList[i].destroy(); + } + } + this.itemList.length = 0; + //清理对象池 + len = this.itemPool.length; + for (var i = 0; i < len; i++) { + if (cc.isValid(this.itemPool[i], true)) { + this.itemPool[i].destroy(); + } + } + this.itemPool.length = 0; + //清理列表数据 + this.itemDataList.length = 0; + }; + __decorate([ + property({ type: cc.Node, tooltip: "列表项" }) + ], List.prototype, "itemRender", void 0); + __decorate([ + property({ type: cc.Enum(ListType), tooltip: "排列方式" }) + ], List.prototype, "type", void 0); + __decorate([ + property({ type: cc.Enum(StartAxisType), tooltip: "网格布局中的方向", visible: function () { return this.type == ListType.Grid; } }) + ], List.prototype, "startAxis", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "列表项X间隔", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "spaceX", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "列表项Y间隔", visible: function () { return this.type == ListType.Vertical || this.type == ListType.Grid; } }) + ], List.prototype, "spaceY", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "上间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } }) + ], List.prototype, "padding_top", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "下间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } }) + ], List.prototype, "padding_buttom", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "左间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "padding_left", void 0); + __decorate([ + property(cc.Integer) + ], List.prototype, "_padding", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "右间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "padding_right", void 0); + List = __decorate([ + ccclass + ], List); + return List; +}(cc.Component)); +exports.default = List; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFJhbmtMaXN0XFxMaXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRiwyQ0FBcUM7QUFFL0IsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFFNUMsWUFBWTtBQUNaLElBQVksUUFPWDtBQVBELFdBQVksUUFBUTtJQUNoQixVQUFVO0lBQ1YsbURBQWMsQ0FBQTtJQUNkLFVBQVU7SUFDViwrQ0FBWSxDQUFBO0lBQ1osVUFBVTtJQUNWLHVDQUFRLENBQUE7QUFDWixDQUFDLEVBUFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFPbkI7QUFFRCxjQUFjO0FBQ2QsSUFBWSxhQUtYO0FBTEQsV0FBWSxhQUFhO0lBQ3JCLFVBQVU7SUFDViw2REFBYyxDQUFBO0lBQ2QsVUFBVTtJQUNWLHlEQUFZLENBQUE7QUFDaEIsQ0FBQyxFQUxXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBS3hCO0FBRUQ7Ozs7Ozs7R0FPRztBQUVIO0lBQWtDLHdCQUFZO0lBQTlDO1FBQUEscUVBeWlCQztRQXZpQkcscURBQXFEO1FBQ3JELFVBQVU7UUFFSCxnQkFBVSxHQUFZLElBQUksQ0FBQztRQUVsQyxVQUFVO1FBRUgsVUFBSSxHQUFhLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFFMUMsY0FBYztRQUVQLGVBQVMsR0FBa0IsYUFBYSxDQUFDLFVBQVUsQ0FBQztRQUUzRCxjQUFjO1FBRVAsWUFBTSxHQUFXLENBQUMsQ0FBQztRQUUxQixjQUFjO1FBRVAsWUFBTSxHQUFXLENBQUMsQ0FBQztRQUUxQixTQUFTO1FBRUYsaUJBQVcsR0FBVyxDQUFDLENB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SSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs4Q0FDdEc7SUFLaEM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQzswQ0FDTztJQUk1QjtRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxnQkFBSyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7K0NBQ3JHO0lBMUNoQixJQUFJO1FBRHhCLE9BQU87T0FDYSxJQUFJLENBeWlCeEI7SUFBRCxXQUFDO0NBemlCRCxBQXlpQkMsQ0F6aUJpQyxFQUFFLENBQUMsU0FBUyxHQXlpQjdDO2tCQXppQm9CLElBQUkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgSXRlbVJlbmRlciBmcm9tIFwiLi9JdGVtUmVuZGVyXCJcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG4vKirliJfooajmjpLliJfmlrnlvI8gKi9cclxuZXhwb3J0IGVudW0gTGlzdFR5cGUge1xyXG4gICAgLyoq5rC05bmz5o6S5YiXICovXHJcbiAgICBIb3Jpem9udGFsID0gMSxcclxuICAgIC8qKuWeguebtOaOkuWIlyAqL1xyXG4gICAgVmVydGljYWwgPSAyLFxyXG4gICAgLyoq572R5qC85o6S5YiXICovXHJcbiAgICBHcmlkID0gM1xyXG59XHJcblxyXG4vKirnvZHmoLzluIPlsYDkuK3nmoTmlrnlkJEgKi9cclxuZXhwb3J0IGVudW0gU3RhcnRBeGlzVHlwZSB7XHJcbiAgICAvKirmsLTlubPmjpLliJcgKi9cclxuICAgIEhvcml6b250YWwgPSAxLFxyXG4gICAgLyoq5Z6C55u05o6S5YiXICovXHJcbiAgICBWZXJ0aWNhbCA9IDIsXHJcbn1cclxuXHJcbi8qKlxyXG4gKiDliJfooahcclxuICog5qC55o2uY29jb3NfZXhhbXBsZeeahGxpc3RWaWV35pS55Yqo6ICM5p2lXHJcbiAqIEBhdXRob3IgY2hlbmthaSAyMDIwLjcuOFxyXG4gKiBAZXhhbXBsZVxyXG4gKiAgMS7liJvlu7pjb2Nvc+eahFNjcm9sbFZpZXfnu4Tku7bvvIzmt7vliqBMaXN077yM6K6+572uTGlzdOWxnuaAp+WNs+WPr1xyXG4gKiAgXHJcbiAqL1xyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaXN0IGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICAvLz09PT09PT09PT09PT09PT09PT09IOWxnuaAp+mdouadvyA9PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICAvKirliJfooajpgInpobkgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLk5vZGUsIHRvb2x0aXA6IFwi5YiX6KGo6aG5XCIgfSlcclxuICAgIHB1YmxpYyBpdGVtUmVuZGVyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICAvKirmjpLliJfmlrnlvI8gKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkVudW0oTGlzdFR5cGUpLCB0b29sdGlwOiBcIuaOkuWIl+aWueW8j1wiIH0pXHJcbiAgICBwdWJsaWMgdHlwZTogTGlzdFR5cGUgPSBMaXN0VHlwZS5WZXJ0aWNhbDtcclxuXHJcbiAgICAvKirnvZHmoLzluIPlsYDkuK3nmoTmlrnlkJEgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkVudW0oU3RhcnRBeGlzVHlwZSksIHRvb2x0aXA6IFwi572R5qC85biD5bGA5Lit55qE5pa55ZCRXCIsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCB9IH0pXHJcbiAgICBwdWJsaWMgc3RhcnRBeGlzOiBTdGFydEF4aXNUeXBlID0gU3RhcnRBeGlzVHlwZS5Ib3Jpem9udGFsO1xyXG5cclxuICAgIC8qKuWIl+ihqOmhueS5i+mXtFjpl7TpmpQgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5YiX6KGo6aG5WOmXtOmalFwiLCB2aXNpYmxlKCkgeyByZXR1cm4gKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5Ib3Jpem9udGFsIHx8IHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkKSB9IH0pXHJcbiAgICBwdWJsaWMgc3BhY2VYOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKuWIl+ihqOmhueS5i+mXtFnpl7TpmpQgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5YiX6KGo6aG5WemXtOmalFwiLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy50eXBlID09IExpc3RUeXBlLlZlcnRpY2FsIHx8IHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkIH0gfSlcclxuICAgIHB1YmxpYyBzcGFjZVk6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoq5LiK6Ze06LedICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5JbnRlZ2VyLCB0b29sdGlwOiBcIuS4iumXtOi3nVwiLCB2aXNpYmxlKCkgeyByZXR1cm4gKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCB8fCB0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCkgfSB9KVxyXG4gICAgcHVibGljIHBhZGRpbmdfdG9wOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKuS4i+mXtOi3nSAqL1xyXG4gICAgQHByb3BlcnR5KHsgdHlwZTogY2MuSW50ZWdlciwgdG9vbHRpcDogXCLkuIvpl7Tot51cIiwgdmlzaWJsZSgpIHsgcmV0dXJuICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuVmVydGljYWwgfHwgdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIH0gfSlcclxuICAgIHB1YmxpYyBwYWRkaW5nX2J1dHRvbTogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKirlt6bpl7Tot50gKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5bem6Ze06LedXCIsIHZpc2libGUoKSB7IHJldHVybiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwgfHwgdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIH0gfSlcclxuICAgIHB1YmxpYyBwYWRkaW5nX2xlZnQ6IG51bWJlciA9IDA7XHJcblxyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoY2MuSW50ZWdlcilcclxuICAgIHB1YmxpYyBfcGFkZGluZzogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKirlj7Ppl7Tot50gKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5Y+z6Ze06LedXCIsIHZpc2libGUoKSB7IHJldHVybiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwgfHwgdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIH0gfSlcclxuICAgIHB1YmxpYyBwYWRkaW5nX3JpZ2h0OiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8vPT09PT09PT09PT09PT09PT09PT09PSDmu5rliqjlrrnlmaggPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAgLyoq5YiX6KGo5rua5Yqo5a655ZmoICovXHJcbiAgICBwdWJsaWMgc2Nyb2xsVmlldzogY2MuU2Nyb2xsVmlldyA9IG51bGw7XHJcbiAgICAvKipzY3JvbGxWaWV355qE5YaF5a655a655ZmoICovXHJcbiAgICBwcml2YXRlIGNvbnRlbnQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09IOWIl+ihqOmhuSA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgIC8qKuWIl+ihqOmhueaVsOaNriAqL1xyXG4gICAgcHJpdmF0ZSBpdGVtRGF0YUxpc3Q6IEFycmF5PGFueT4gPSBbXTtcclxuICAgIC8qKuW6lOWIm+W7uueahOWunuS+i+aVsOmHjyAqL1xyXG4gICAgcHJpdmF0ZSBzcGF3bkNvdW50OiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5a2Y5pS+5YiX6KGo6aG55a6e5L6L55qE5pWw57uEICovXHJcbiAgICBwcml2YXRlIGl0ZW1MaXN0OiBBcnJheTxjYy5Ob2RlPiA9IFtdO1xyXG4gICAgLyoqaXRlbeeahOmrmOW6piAqL1xyXG4gICAgcHJpdmF0ZSBpdGVtSGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gICAgLyoqaXRlbeeahOWuveW6piAqL1xyXG4gICAgcHJpdmF0ZSBpdGVtV2lkdGg6IG51bWJlciA9IDA7XHJcbiAgICAvKirlrZjmlL7kuI3lho3kvb/nlKjkuK3nmoTliJfooajpobkgKi9cclxuICAgIHByaXZhdGUgaXRlbVBvb2w6IEFycmF5PGNjLk5vZGU+ID0gW107XHJcblxyXG4gICAgLy89PT09PT09PT09PT09PT09PT09PT09PSDorqHnrpflj4LmlbAgPT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgIC8qKui3neemu3Njcm9sbFZpZXfkuK3lv4PngrnnmoTot53nprvvvIzotoXov4fov5nkuKrot53nprvnmoRpdGVt5Lya6KKr6YeN572u77yM5LiA6Iis6K6+572u5Li6IHNjcm9sbFZJZXcuaGVpZ2h0LzIgKyBpdGVtLmhlaWd0LzIgKyBzcGFjZe+8jOWboOS4uui/meS4qui3neemu2l0ZW3mraPlpb3otoXlh7pzY3JvbGxWaWV35pi+56S66IyD5Zu0ICovXHJcbiAgICBwcml2YXRlIGhhbGZTY3JvbGxWaWV3OiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5LiK5LiA5qyhY29udGVudOeahFjlgLzvvIznlKjkuo7lkoznjrDlnKhjb250ZW5055qEWOWAvOavlOi+g++8jOW+l+WHuuaYr+WQkeW3pui/mOaYr+WQkeWPs+a7muWKqCAqL1xyXG4gICAgcHJpdmF0ZSBsYXN0Q29udGVudFBvc1g6IG51bWJlciA9IDA7XHJcbiAgICAvKirkuIrkuIDmrKFjb250ZW5055qEWeWAvO+8jOeUqOS6juWSjOeOsOWcqGNvbnRlbnTnmoRZ5YC85q+U6L6D77yM5b6X5Ye65piv5ZCR5LiK6L+Y5piv5ZCR5LiL5rua5YqoICovXHJcbiAgICBwcml2YXRlIGxhc3RDb250ZW50UG9zWTogbnVtYmVyID0gMDtcclxuICAgIC8qKue9keagvOihjOaVsCAqL1xyXG4gICAgcHJpdmF0ZSBncmlkUm93OiBudW1iZXIgPSAwO1xyXG4gICAgLyoq572R5qC85YiX5pWwICovXHJcbiAgICBwcml2YXRlIGdyaWRDb2w6IG51bWJlciA9IDA7XHJcbiAgICAvKirliLfmlrDml7bpl7TvvIzljZXkvY1zICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZVRpbWVyOiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5Yi35paw6Ze06ZqU77yM5Y2V5L2NcyAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVJbnRlcnZhbDogbnVtYmVyID0gMC4xO1xyXG4gICAgLyoq5piv5ZCm5rua5Yqo5a655ZmoICovXHJcbiAgICBwcml2YXRlIGJTY3JvbGxpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIC8qKuWIt+aWsOeahOWHveaVsCAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVGdW46IEZ1bmN0aW9uID0gZnVuY3Rpb24gKCkgeyB9O1xyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICB0aGlzLml0ZW1IZWlnaHQgPSB0aGlzLml0ZW1SZW5kZXIuaGVpZ2h0O1xyXG4gICAgICAgIHRoaXMuaXRlbVdpZHRoID0gdGhpcy5pdGVtUmVuZGVyLndpZHRoO1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsVmlldyA9IHRoaXMubm9kZS5nZXRDb21wb25lbnQoY2MuU2Nyb2xsVmlldyk7XHJcbiAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQ7XHJcbiAgICAgICAgdGhpcy5jb250ZW50LmFuY2hvclggPSAwO1xyXG4gICAgICAgIHRoaXMuY29udGVudC5hbmNob3JZID0gMTtcclxuICAgICAgICB0aGlzLmNvbnRlbnQucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICB0aGlzLnNjcm9sbFZpZXcubm9kZS5vbihcInNjcm9sbGluZ1wiLCB0aGlzLm9uU2Nyb2xsaW5nLCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWIl+ihqOaVsOaNriAo5YiX6KGo5pWw5o2u5aSN5Yi25L2/55So77yM5aaC5p6c5YiX6KGo5pWw5o2u5pS55Y+Y77yM5YiZ6ZyA6KaB6YeN5paw6K6+572u5LiA6YGN5pWw5o2uKVxyXG4gICAgICogQHBhcmFtIGl0ZW1EYXRhTGlzdCBpdGVt5pWw5o2u5YiX6KGoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXREYXRhKGl0ZW1EYXRhTGlzdDogQXJyYXk8YW55Pikge1xyXG4gICAgICAgIHRoaXMuaXRlbURhdGFMaXN0ID0gaXRlbURhdGFMaXN0LnNsaWNlKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XHJcbiAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICAvKirorqHnrpfliJfooajnmoTlkITpobnlj4LmlbAgKi9cclxuICAgIHByaXZhdGUgY291bnRMaXN0UGFyYW0oKSB7XHJcbiAgICAgICAgbGV0IGRhdGFMZW4gPSB0aGlzLml0ZW1EYXRhTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcuaG9yaXpvbnRhbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcudmVydGljYWwgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQud2lkdGggPSB0aGlzLmNvbnRlbnQucGFyZW50LndpZHRoO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQuaGVpZ2h0ID0gZGF0YUxlbiAqIHRoaXMuaXRlbUhlaWdodCArIChkYXRhTGVuIC0gMSkgKiB0aGlzLnNwYWNlWSArIHRoaXMucGFkZGluZ190b3AgKyB0aGlzLnBhZGRpbmdfYnV0dG9tO1xyXG4gICAgICAgICAgICB0aGlzLnNwYXduQ291bnQgPSBNYXRoLnJvdW5kKHRoaXMuc2Nyb2xsVmlldy5ub2RlLmhlaWdodCAvICh0aGlzLml0ZW1IZWlnaHQgKyB0aGlzLnNwYWNlWSkpICsgMjsgLy/orqHnrpfliJvlu7rnmoRpdGVt5a6e5L6L5pWw6YeP77yM5q+U5b2T5YmNc2Nyb2xsVmlld+WuueWZqOiDveaUvuS4i+eahGl0ZW3mlbDph4/lho3liqDkuIoy5LiqXHJcbiAgICAgICAgICAgIHRoaXMuaGFsZlNjcm9sbFZpZXcgPSB0aGlzLnNjcm9sbFZpZXcubm9kZS5oZWlnaHQgLyAyICsgdGhpcy5pdGVtSGVpZ2h0IC8gMiArIHRoaXMuc3BhY2VZOyAvL+iuoeeul2J1ZmZlclpvbmXvvIxpdGVt55qE5pi+56S66IyD5Zu0XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRnVuID0gdGhpcy51cGRhdGVWO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxWaWV3Lmhvcml6b250YWwgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcudmVydGljYWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50LndpZHRoID0gZGF0YUxlbiAqIHRoaXMuaXRlbVdpZHRoICsgKGRhdGFMZW4gLSAxKSAqIHRoaXMuc3BhY2VYICsgdGhpcy5wYWRkaW5nX2xlZnQgKyB0aGlzLnBhZGRpbmdfcmlnaHQ7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudC5oZWlnaHQgPSB0aGlzLmNvbnRlbnQucGFyZW50LmhlaWdodDtcclxuICAgICAgICAgICAgdGhpcy5zcGF3bkNvdW50ID0gTWF0aC5yb3VuZCh0aGlzLnNjcm9sbFZpZXcubm9kZS53aWR0aCAvICh0aGlzLml0ZW1XaWR0aCArIHRoaXMuc3BhY2VYKSkgKyAyO1xyXG4gICAgICAgICAgICB0aGlzLmhhbGZTY3JvbGxWaWV3ID0gdGhpcy5zY3JvbGxWaWV3Lm5vZGUud2lkdGggLyAyICsgdGhpcy5pdGVtV2lkdGggLyAyICsgdGhpcy5zcGFjZVg7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRnVuID0gdGhpcy51ZHBhdGVIO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlldy5ob3Jpem9udGFsID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcudmVydGljYWwgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50LndpZHRoID0gdGhpcy5jb250ZW50LnBhcmVudC53aWR0aDtcclxuICAgICAgICAgICAgICAgIC8v5aaC5p6cbGVmdOWSjHJpZ2h06Ze06ZqU6L+H5aSn77yM5a+86Ie05pS+5LiN5LiL5LiA5LiqaXRlbe+8jOWImWxlZnTlkoxyaWdodOmDveiuvue9ruS4ujDvvIznm7jlvZPkuo7kuI3nlJ/mlYhcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhZGRpbmdfbGVmdCArIHRoaXMucGFkZGluZ19yaWdodCArIHRoaXMuaXRlbVdpZHRoICsgdGhpcy5zcGFjZVggPiB0aGlzLmNvbnRlbnQud2lkdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZGRpbmdfbGVmdCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWRkaW5nX3JpZ2h0ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwicGFkZGluZ19sZWZ05oiWcGFkZGluZ19yaWdodOi/h+Wkp1wiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRDb2wgPSBNYXRoLmZsb29yKCh0aGlzLmNvbnRlbnQud2lkdGggLSB0aGlzLnBhZGRpbmdfbGVmdCAtIHRoaXMucGFkZGluZ19yaWdodCkgLyAodGhpcy5pdGVtV2lkdGggKyB0aGlzLnNwYWNlWCkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkUm93ID0gTWF0aC5jZWlsKGRhdGFMZW4gLyB0aGlzLmdyaWRDb2wpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50LmhlaWdodCA9IHRoaXMuZ3JpZFJvdyAqIHRoaXMuaXRlbUhlaWdodCArICh0aGlzLmdyaWRSb3cgLSAxKSAqIHRoaXMuc3BhY2VZICsgdGhpcy5wYWRkaW5nX3RvcCArIHRoaXMucGFkZGluZ19idXR0b207XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNwYXduQ291bnQgPSBNYXRoLnJvdW5kKHRoaXMuc2Nyb2xsVmlldy5ub2RlLmhlaWdodCAvICh0aGlzLml0ZW1IZWlnaHQgKyB0aGlzLnNwYWNlWSkpICogdGhpcy5ncmlkQ29sICsgdGhpcy5ncmlkQ29sICogMjtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFsZlNjcm9sbFZpZXcgPSB0aGlzLnNjcm9sbFZpZXcubm9kZS5oZWlnaHQgLyAyICsgdGhpcy5pdGVtSGVpZ2h0IC8gMiArIHRoaXMuc3BhY2VZO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVGdW4gPSB0aGlzLnVwZGF0ZUdyaWRfVjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlldy5ob3Jpem9udGFsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlldy52ZXJ0aWNhbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgLy/orqHnrpfpq5jpl7TpmpRcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC5oZWlnaHQgPSB0aGlzLmNvbnRlbnQucGFyZW50LmhlaWdodDtcclxuICAgICAgICAgICAgICAgIC8v5aaC5p6cbGVmdOWSjHJpZ2h06Ze06ZqU6L+H5aSn77yM5a+86Ie05pS+5LiN5LiL5LiA5LiqaXRlbe+8jOWImWxlZnTlkoxyaWdodOmDveiuvue9ruS4ujDvvIznm7jlvZPkuo7kuI3nlJ/mlYhcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhZGRpbmdfdG9wICsgdGhpcy5wYWRkaW5nX2J1dHRvbSArIHRoaXMuaXRlbUhlaWdodCArIHRoaXMuc3BhY2VZID4gdGhpcy5jb250ZW50LmhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFkZGluZ190b3AgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFkZGluZ19idXR0b20gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJwYWRkaW5nX3RvcOaIlnBhZGRpbmdfYnV0dG9t6L+H5aSnXCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZFJvdyA9IE1hdGguZmxvb3IoKHRoaXMuY29udGVudC5oZWlnaHQgLSB0aGlzLnBhZGRpbmdfdG9wIC0gdGhpcy5wYWRkaW5nX2J1dHRvbSkgLyAodGhpcy5pdGVtSGVpZ2h0ICsgdGhpcy5zcGFjZVkpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZENvbCA9IE1hdGguY2VpbChkYXRhTGVuIC8gdGhpcy5ncmlkUm93KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC53aWR0aCA9IHRoaXMuZ3JpZENvbCAqIHRoaXMuaXRlbVdpZHRoICsgKHRoaXMuZ3JpZENvbCAtIDEpICogdGhpcy5zcGFjZVggKyB0aGlzLnBhZGRpbmdfbGVmdCArIHRoaXMucGFkZGluZ19yaWdodDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3Bhd25Db3VudCA9IE1hdGgucm91bmQodGhpcy5zY3JvbGxWaWV3Lm5vZGUud2lkdGggLyAodGhpcy5pdGVtV2lkdGggKyB0aGlzLnNwYWNlWCkpICogdGhpcy5ncmlkUm93ICsgdGhpcy5ncmlkUm93ICogMjtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFsZlNjcm9sbFZpZXcgPSB0aGlzLnNjcm9sbFZpZXcubm9kZS53aWR0aCAvIDIgKyB0aGlzLml0ZW1XaWR0aCAvIDIgKyB0aGlzLnNwYWNlWDtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRnVuID0gdGhpcy51cGRhdGVHcmlkX0g7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliJvlu7rliJfooaggXHJcbiAgICAgKiBAcGFyYW0gc3RhcnRJbmRleCDotbflp4vmmL7npLrnmoTmlbDmja7ntKLlvJUgMOihqOekuuesrOS4gOmhuVxyXG4gICAgICogQHBhcmFtIG9mZnNldCAgICAgc2Nyb2xsVmlld+WBj+enu+mHj1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNyZWF0ZUxpc3Qoc3RhcnRJbmRleDogbnVtYmVyLCBvZmZzZXQ6IGNjLlZlYzIpIHtcclxuICAgICAgICAvL+W9k+mcgOimgeaYvuekuueahOaVsOaNrumVv+W6piA+IOiZmuaLn+WIl+ihqOmVv+W6pu+8jCDliKDpmaTmnIDmnKvlsL7lh6DkuKrmlbDmja7ml7bvvIzliJfooajpnIDopoHph43nva7kvY3nva7liLBzY3JvbGxWaWV35pyA5bqV56uvXHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCA+IHRoaXMuc3Bhd25Db3VudCAmJiAoc3RhcnRJbmRleCArIHRoaXMuc3Bhd25Db3VudCAtIDEpID49IHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICBzdGFydEluZGV4ID0gdGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoIC0gdGhpcy5zcGF3bkNvdW50O1xyXG4gICAgICAgICAgICBvZmZzZXQgPSB0aGlzLnNjcm9sbFZpZXcuZ2V0TWF4U2Nyb2xsT2Zmc2V0KCk7XHJcblxyXG4gICAgICAgICAgICAvL+W9k+mcgOimgeaYvuekuueahOaVsOaNrumVv+W6piA8PSDomZrmi5/liJfooajplb/luqbvvIwg6ZqQ6JeP5aSa5L2Z55qE6Jma5ouf5YiX6KGo6aG5IFxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoIDw9IHRoaXMuc3Bhd25Db3VudCkge1xyXG4gICAgICAgICAgICBzdGFydEluZGV4ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zcGF3bkNvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW06IGNjLk5vZGU7XHJcbiAgICAgICAgICAgIC8v6ZyA6KaB5pi+56S655qE5pWw5o2u57Si5byV5Zyo5pWw5o2u6IyD5Zu05YaF77yM5YiZaXRlbeWunuS+i+aYvuekuuWHuuadpVxyXG4gICAgICAgICAgICBpZiAoaSArIHN0YXJ0SW5kZXggPCB0aGlzLml0ZW1EYXRhTGlzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1MaXN0W2ldID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gdGhpcy5nZXRJdGVtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ucGFyZW50ID0gdGhpcy5jb250ZW50O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gdGhpcy5pdGVtTGlzdFtpXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8v6ZyA6KaB5pi+56S655qE5pWw5o2u57Si5byV6LaF6L+H5LqG5pWw5o2u6IyD5Zu077yM5YiZaXRlbeWunuS+i+makOiXj+i1t+adpVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5a6e5L6L5pWw6YePID4g6ZyA6KaB5pi+56S655qE5pWw5o2u6YePXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtTGlzdC5sZW5ndGggPiAodGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoIC0gc3RhcnRJbmRleCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gdGhpcy5pdGVtTGlzdC5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1Qb29sLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpICsgc3RhcnRJbmRleDtcclxuICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaSArIHN0YXJ0SW5kZXhdO1xyXG4gICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLlZlcnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICAvL+WboOS4umNvbnRlbnTnmoTplJrngrlY5pivMO+8jOaJgOS7pWl0ZW3nmoR45YC85pivY29udGVudC53aXRoLzLooajnpLrlsYXkuK3vvIzplJrngrlZ5pivMe+8jOaJgOS7pWl0ZW3nmoR55YC85LuOY29udGVudOmhtumDqOWQkeS4i+aYrzDliLDotJ/ml6DnqbfjgILmiYDku6VpdGVtLnk9IC1pdGVtLmhlaWdodC8y5pe277yM5piv5ZyoY29udGVudOeahOmhtumDqOOAglxyXG4gICAgICAgICAgICAgICAgaXRlbS5zZXRQb3NpdGlvbih0aGlzLmNvbnRlbnQud2lkdGggLyAyLCAtaXRlbS5oZWlnaHQgKiAoMC41ICsgaSArIHN0YXJ0SW5kZXgpIC0gdGhpcy5zcGFjZVkgKiAoaSArIHN0YXJ0SW5kZXgpIC0gdGhpcy5wYWRkaW5nX3RvcCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0uc2V0UG9zaXRpb24oaXRlbS53aWR0aCAqICgwLjUgKyBpICsgc3RhcnRJbmRleCkgKyB0aGlzLnNwYWNlWCAqIChpICsgc3RhcnRJbmRleCkgKyB0aGlzLnBhZGRpbmdfbGVmdCwgLXRoaXMuY29udGVudC5oZWlnaHQgLyAyKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcm93ID0gTWF0aC5mbG9vcigoaSArIHN0YXJ0SW5kZXgpIC8gdGhpcy5ncmlkQ29sKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgY29sID0gKGkgKyBzdGFydEluZGV4KSAlIHRoaXMuZ3JpZENvbDtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnNldFBvc2l0aW9uKGl0ZW0ud2lkdGggKiAoMC41ICsgY29sKSArIHRoaXMuc3BhY2VYICogY29sICsgdGhpcy5wYWRkaW5nX2xlZnQsIC1pdGVtLmhlaWdodCAqICgwLjUgKyByb3cpIC0gdGhpcy5zcGFjZVkgKiByb3cgLSB0aGlzLnBhZGRpbmdfdG9wKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuSG9yaXpvbnRhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByb3cgPSAoaSArIHN0YXJ0SW5kZXgpICUgdGhpcy5ncmlkUm93O1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjb2wgPSBNYXRoLmZsb29yKChpICsgc3RhcnRJbmRleCkgLyB0aGlzLmdyaWRSb3cpO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc2V0UG9zaXRpb24oaXRlbS53aWR0aCAqICgwLjUgKyBjb2wpICsgdGhpcy5zcGFjZVggKiBjb2wgKyB0aGlzLnBhZGRpbmdfbGVmdCwgLWl0ZW0uaGVpZ2h0ICogKDAuNSArIHJvdykgLSB0aGlzLnNwYWNlWSAqIHJvdyAtIHRoaXMucGFkZGluZ190b3ApO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zY3JvbGxWaWV3LnNjcm9sbFRvT2Zmc2V0KG9mZnNldCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoq6I635Y+W5LiA5Liq5YiX6KGo6aG5ICovXHJcbiAgICBwcml2YXRlIGdldEl0ZW0oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbVBvb2wubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNjLmluc3RhbnRpYXRlKHRoaXMuaXRlbVJlbmRlcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbVBvb2wucG9wKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShkdCkge1xyXG4gICAgICAgIGlmICh0aGlzLmJTY3JvbGxpbmcgPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVwZGF0ZVRpbWVyICs9IGR0O1xyXG4gICAgICAgIGlmICh0aGlzLnVwZGF0ZVRpbWVyIDwgdGhpcy51cGRhdGVJbnRlcnZhbCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBkYXRlVGltZXIgPSAwO1xyXG4gICAgICAgIHRoaXMuYlNjcm9sbGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRnVuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TY3JvbGxpbmcoKSB7XHJcbiAgICAgICAgdGhpcy5iU2Nyb2xsaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKirlnoLnm7TmjpLliJcgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlVigpIHtcclxuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLml0ZW1MaXN0O1xyXG4gICAgICAgIGxldCBpdGVtO1xyXG4gICAgICAgIGxldCBidWZmZXJab25lID0gdGhpcy5oYWxmU2Nyb2xsVmlldztcclxuICAgICAgICBsZXQgaXNVcCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50LnkgPiB0aGlzLmxhc3RDb250ZW50UG9zWTtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gKHRoaXMuaXRlbUhlaWdodCArIHRoaXMuc3BhY2VZKSAqIGl0ZW1zLmxlbmd0aDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGl0ZW0gPSBpdGVtc1tpXTtcclxuICAgICAgICAgICAgbGV0IHZpZXdQb3MgPSB0aGlzLmdldFBvc2l0aW9uSW5WaWV3KGl0ZW0pO1xyXG4gICAgICAgICAgICBpZiAoaXNVcCkge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5LiK5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+S4iui+ueeVjO+8jOWwhml0ZW3np7vliqjliLDkuIvmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5LiL5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOS4i+i+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueSA+IGJ1ZmZlclpvbmUgJiYgaXRlbS55IC0gb2Zmc2V0IC0gdGhpcy5wYWRkaW5nX2J1dHRvbSA+IC10aGlzLmNvbnRlbnQuaGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggKyBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5LiL5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+S4i+i+ueeVjO+8jOWwhml0ZW3np7vliqjliLDkuIrmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5LiK5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOS4iui+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueSA8IC1idWZmZXJab25lICYmIGl0ZW0ueSArIG9mZnNldCArIHRoaXMucGFkZGluZ190b3AgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggLSBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvbnRlbnRQb3NZID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueTtcclxuICAgIH1cclxuXHJcbiAgICAvKirmsLTlubPmjpLliJcgKi9cclxuICAgIHByaXZhdGUgdWRwYXRlSCgpIHtcclxuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLml0ZW1MaXN0O1xyXG4gICAgICAgIGxldCBpdGVtO1xyXG4gICAgICAgIGxldCBidWZmZXJab25lID0gdGhpcy5oYWxmU2Nyb2xsVmlldztcclxuICAgICAgICBsZXQgaXNSaWdodCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50LnggPiB0aGlzLmxhc3RDb250ZW50UG9zWDtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gKHRoaXMuaXRlbVdpZHRoICsgdGhpcy5zcGFjZVgpICogaXRlbXMubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaXRlbSA9IGl0ZW1zW2ldO1xyXG4gICAgICAgICAgICBsZXQgdmlld1BvcyA9IHRoaXMuZ2V0UG9zaXRpb25JblZpZXcoaXRlbSk7XHJcbiAgICAgICAgICAgIGlmIChpc1JpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lj7Pmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35Y+z6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOW3puaWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlt6bmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5bem6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54ID4gYnVmZmVyWm9uZSAmJiBpdGVtLnggLSBvZmZzZXQgLSB0aGlzLnBhZGRpbmdfbGVmdCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVJlbmRlcjogSXRlbVJlbmRlciA9IGl0ZW0uZ2V0Q29tcG9uZW50KEl0ZW1SZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpdGVtUmVuZGVyLml0ZW1JbmRleCAtIGl0ZW1zLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGEgPSB0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YUNoYW5nZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnggPSBpdGVtLnggLSBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lt6bmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35bem6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOWPs+aWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlj7PmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5Y+z6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54IDwgLWJ1ZmZlclpvbmUgJiYgaXRlbS54ICsgb2Zmc2V0ICsgdGhpcy5wYWRkaW5nX3JpZ2h0IDwgdGhpcy5jb250ZW50LndpZHRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggKyBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS54ID0gaXRlbS54ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvbnRlbnRQb3NYID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueDtcclxuICAgIH1cclxuXHJcbiAgICAvKirnvZHmoLzlnoLnm7TmjpLliJcgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlR3JpZF9WKCkge1xyXG4gICAgICAgIGxldCBpdGVtcyA9IHRoaXMuaXRlbUxpc3Q7XHJcbiAgICAgICAgbGV0IGl0ZW06IGNjLk5vZGU7XHJcbiAgICAgICAgbGV0IGJ1ZmZlclpvbmUgPSB0aGlzLmhhbGZTY3JvbGxWaWV3O1xyXG4gICAgICAgIGxldCBpc1VwID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueSA+IHRoaXMubGFzdENvbnRlbnRQb3NZO1xyXG4gICAgICAgIGxldCBvZmZzZXQgPSAodGhpcy5pdGVtSGVpZ2h0ICsgdGhpcy5zcGFjZVkpICogKHRoaXMuc3Bhd25Db3VudCAvIHRoaXMuZ3JpZENvbCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpdGVtID0gaXRlbXNbaV07XHJcbiAgICAgICAgICAgIGxldCB2aWV3UG9zID0gdGhpcy5nZXRQb3NpdGlvbkluVmlldyhpdGVtKTtcclxuICAgICAgICAgICAgaWYgKGlzVXApIHtcclxuICAgICAgICAgICAgICAgIC8vaXRlbeS4iua7keaXtu+8jOi2heWHuuS6hnNjcm9sbFZpZXfkuIrovrnnlYzvvIzlsIZpdGVt56e75Yqo5Yiw5LiL5pa55aSN55So77yMaXRlbeenu+WKqOWIsOS4i+aWueeahOS9jee9ruW/hemhu+S4jei2hei/h2NvbnRlbnTnmoTkuIvovrnnlYxcclxuICAgICAgICAgICAgICAgIGlmICh2aWV3UG9zLnkgPiBidWZmZXJab25lICYmIGl0ZW0ueSAtIG9mZnNldCAtIHRoaXMucGFkZGluZ19idXR0b20gPiAtdGhpcy5jb250ZW50LmhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtUmVuZGVyOiBJdGVtUmVuZGVyID0gaXRlbS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1JbmRleCA9IGl0ZW1SZW5kZXIuaXRlbUluZGV4ICsgKHRoaXMuc3Bhd25Db3VudCAvIHRoaXMuZ3JpZENvbCkgKiB0aGlzLmdyaWRDb2w7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnkgPSBpdGVtLnkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGEgPSB0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnkgPSBpdGVtLnkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHsvL2l0ZW3kuIvmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35LiL6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOS4iuaWueWkjeeUqO+8jGl0ZW3np7vliqjliLDkuIrmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5LiK6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy55IDwgLWJ1ZmZlclpvbmUgJiYgaXRlbS55ICsgb2Zmc2V0ICsgdGhpcy5wYWRkaW5nX3RvcCA8IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVJlbmRlcjogSXRlbVJlbmRlciA9IGl0ZW0uZ2V0Q29tcG9uZW50KEl0ZW1SZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpdGVtUmVuZGVyLml0ZW1JbmRleCAtICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRDb2wpICogdGhpcy5ncmlkQ29sO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sYXN0Q29udGVudFBvc1kgPSB0aGlzLnNjcm9sbFZpZXcuY29udGVudC55O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKue9keagvOawtOW5s+aOkuWIlyAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVHcmlkX0goKSB7XHJcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5pdGVtTGlzdDtcclxuICAgICAgICBsZXQgaXRlbTtcclxuICAgICAgICBsZXQgYnVmZmVyWm9uZSA9IHRoaXMuaGFsZlNjcm9sbFZpZXc7XHJcbiAgICAgICAgbGV0IGlzUmlnaHQgPSB0aGlzLnNjcm9sbFZpZXcuY29udGVudC54ID4gdGhpcy5sYXN0Q29udGVudFBvc1g7XHJcbiAgICAgICAgbGV0IG9mZnNldCA9ICh0aGlzLml0ZW1XaWR0aCArIHRoaXMuc3BhY2VYKSAqICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRSb3cpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaXRlbSA9IGl0ZW1zW2ldO1xyXG4gICAgICAgICAgICBsZXQgdmlld1BvcyA9IHRoaXMuZ2V0UG9zaXRpb25JblZpZXcoaXRlbSk7XHJcbiAgICAgICAgICAgIGlmIChpc1JpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lj7Pmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35Y+z6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOW3puaWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlt6bmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5bem6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54ID4gYnVmZmVyWm9uZSAmJiBpdGVtLnggLSBvZmZzZXQgLSB0aGlzLnBhZGRpbmdfbGVmdCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVJlbmRlcjogSXRlbVJlbmRlciA9IGl0ZW0uZ2V0Q29tcG9uZW50KEl0ZW1SZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpdGVtUmVuZGVyLml0ZW1JbmRleCAtICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRSb3cpICogdGhpcy5ncmlkUm93O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS54ID0gaXRlbS54IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS54ID0gaXRlbS54IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lt6bmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35bem6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOWPs+aWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlj7PmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5Y+z6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54IDwgLWJ1ZmZlclpvbmUgJiYgaXRlbS54ICsgb2Zmc2V0ICsgdGhpcy5wYWRkaW5nX3JpZ2h0IDwgdGhpcy5jb250ZW50LndpZHRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggKyAodGhpcy5zcGF3bkNvdW50IC8gdGhpcy5ncmlkUm93KSAqIHRoaXMuZ3JpZFJvdztcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueCA9IGl0ZW0ueCArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YUNoYW5nZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueCA9IGl0ZW0ueCArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvbnRlbnRQb3NYID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueDtcclxuICAgIH1cclxuXHJcbiAgICAvKirojrflj5ZpdGVt5Zyoc2Nyb2xsVmlld+eahOWxgOmDqOWdkOaghyAqL1xyXG4gICAgcHJpdmF0ZSBnZXRQb3NpdGlvbkluVmlldyhpdGVtKSB7XHJcbiAgICAgICAgbGV0IHdvcmxkUG9zID0gaXRlbS5wYXJlbnQuY29udmVydFRvV29ybGRTcGFjZUFSKGl0ZW0ucG9zaXRpb24pO1xyXG4gICAgICAgIGxldCB2aWV3UG9zID0gdGhpcy5zY3JvbGxWaWV3Lm5vZGUuY29udmVydFRvTm9kZVNwYWNlQVIod29ybGRQb3MpO1xyXG4gICAgICAgIHJldHVybiB2aWV3UG9zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKuiOt+WPluWIl+ihqOaVsOaNriAqL1xyXG4gICAgcHVibGljIGdldExpc3REYXRhKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1EYXRhTGlzdDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWinuWKoOS4gOmhueaVsOaNruWIsOWIl+ihqOeahOacq+WwvlxyXG4gICAgICogQHBhcmFtIGRhdGEg5pWw5o2uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGRJdGVtKGRhdGE6IGFueSkge1xyXG4gICAgICAgIHRoaXMuaXRlbURhdGFMaXN0LnB1c2goZGF0YSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlop7liqDkuIDpobnmlbDmja7liLDliJfooajmjIflrprkvY3nva5cclxuICAgICAqIEBwYXJhbSBpbmRleCAgIOS9jee9ru+8jDDooajnpLrnrKwx6aG5XHJcbiAgICAgKiBAcGFyYW0gZGF0YSAg5pWw5o2uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGRJdGVtQXQoaW5kZXg6IG51bWJlciwgZGF0YTogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2luZGV4XSAhPSBudWxsIHx8IHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCA9PSBpbmRleCkge1xyXG4gICAgICAgICAgICB0aGlzLml0ZW1EYXRhTGlzdC5zcGxpY2UoaW5kZXgsIDEsIGRhdGEpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliKDpmaTkuIDpobnmlbDmja5cclxuICAgICAqIEBwYXJhbSBpbmRleCDliKDpmaTpobnnmoTkvY3nva4gLDDooajnpLrnrKwx6aG5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZWxldGVJdGVtKGluZGV4OiBudW1iZXIpIHtcclxuICAgICAgICBpZiAodGhpcy5pdGVtRGF0YUxpc3RbaW5kZXhdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5pdGVtRGF0YUxpc3Quc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pS55Y+Y5LiA6aG55pWw5o2uXHJcbiAgICAgKiBAcGFyYW0gaW5kZXggICDkvY3nva4sMOihqOekuuesrDHpoblcclxuICAgICAqIEBwYXJhbSBkYXRhICDmm7/mjaLnmoTmlbDmja5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNoYW5nZUl0ZW0oaW5kZXg6IG51bWJlciwgZGF0YTogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2luZGV4XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXRlbURhdGFMaXN0W2luZGV4XSA9IGRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKirojrflj5bnrKzkuIDkuKpJdGVt55qE5L2N572uICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZUNvbnRlbnQoKSB7XHJcbiAgICAgICAgLy/mmL7npLrliJfooajlrp7kvovkuLow5LiqXHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbUxpc3QubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5jb3VudExpc3RQYXJhbSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUxpc3QoMCwgbmV3IGNjLlZlYzIoMCwgMCkpO1xyXG4gICAgICAgICAgICAvL+aYvuekuuWIl+ihqOeahOWunuS+i+S4jeS4ujDkuKrvvIzliJnpnIDopoHph43mlrDmjpLliJdpdGVt5a6e5L6L5pWw57uEXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBiLnkgLSBhLnk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuSG9yaXpvbnRhbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhLnggLSBiLng7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1MaXN0LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhLnggLSBiLng7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi55IC0gYS55O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1MaXN0LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiLnkgLSBhLnk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS54IC0gYi54O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNvdW50TGlzdFBhcmFtKCk7XHJcblxyXG4gICAgICAgICAgICAvL+iOt+WPluesrOS4gOS4qml0ZW3lrp7kvovpnIDopoHmmL7npLrnmoTmlbDmja7ntKLlvJVcclxuICAgICAgICAgICAgdmFyIHN0YXJ0SW5kZXggPSB0aGlzLml0ZW1MaXN0WzBdLmdldENvbXBvbmVudChJdGVtUmVuZGVyKS5pdGVtSW5kZXg7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQgJiYgdGhpcy5zdGFydEF4aXMgPT0gU3RhcnRBeGlzVHlwZS5WZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICAgICAgc3RhcnRJbmRleCArPSAoc3RhcnRJbmRleCArIHRoaXMuc3Bhd25Db3VudCkgJSB0aGlzLmdyaWRDb2w7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQgJiYgdGhpcy5zdGFydEF4aXMgPT0gU3RhcnRBeGlzVHlwZS5Ib3Jpem9udGFsKSB7XHJcbiAgICAgICAgICAgICAgICBzdGFydEluZGV4ICs9IChzdGFydEluZGV4ICsgdGhpcy5zcGF3bkNvdW50KSAlIHRoaXMuZ3JpZFJvdztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9nZXRTY3JvbGxPZmZzZXQoKeWSjHNjcm9sbFRvT2Zmc2V0KCnnmoR45YC85piv55u45Y+N55qEXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQ6IGNjLlZlYzIgPSB0aGlzLnNjcm9sbFZpZXcuZ2V0U2Nyb2xsT2Zmc2V0KCk7XHJcbiAgICAgICAgICAgIG9mZnNldC54ID0gLSBvZmZzZXQueDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlTGlzdChzdGFydEluZGV4LCBvZmZzZXQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKirplIDmr4EgKi9cclxuICAgIHB1YmxpYyBvbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgLy/muIXnkIbliJfooajpoblcclxuICAgICAgICBsZXQgbGVuID0gdGhpcy5pdGVtTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoY2MuaXNWYWxpZCh0aGlzLml0ZW1MaXN0W2ldLCB0cnVlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdFtpXS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pdGVtTGlzdC5sZW5ndGggPSAwO1xyXG4gICAgICAgIC8v5riF55CG5a+56LGh5rGgXHJcbiAgICAgICAgbGVuID0gdGhpcy5pdGVtUG9vbC5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoY2MuaXNWYWxpZCh0aGlzLml0ZW1Qb29sW2ldLCB0cnVlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtUG9vbFtpXS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pdGVtUG9vbC5sZW5ndGggPSAwO1xyXG4gICAgICAgIC8v5riF55CG5YiX6KGo5pWw5o2uXHJcbiAgICAgICAgdGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoID0gMDtcclxuICAgIH1cclxufVxyXG4iXX0= +//------QC-SOURCE-SPLIT------ diff --git a/temp/quick-scripts/dst/__qc_index__.js b/temp/quick-scripts/dst/__qc_index__.js new file mode 100644 index 0000000..eb02f52 --- /dev/null +++ b/temp/quick-scripts/dst/__qc_index__.js @@ -0,0 +1,44 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/__qc_index__.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);} +require('./assets/Script/Block'); +require('./assets/Script/DynamicAtlasManager'); +require('./assets/Script/GameManager'); +require('./assets/Script/GameOver'); +require('./assets/Script/Load'); +require('./assets/Script/RankManager'); +require('./assets/Script/Sdk/DouyinEntranceView'); +require('./assets/Script/Sdk/MiniGameManager'); +require('./assets/Script/Sdk/MiniGameSdk'); +require('./assets/Script/module/Config/GameConfig'); +require('./assets/Script/module/Crypto/HttpUtil'); +require('./assets/Script/module/Crypto/crypto-js.min'); +require('./assets/Script/module/GameStart/GameAppStart'); +require('./assets/Script/module/Music/AudioManager'); +require('./assets/Script/module/Notification/Notification'); +require('./assets/Script/module/RankList/ItemRender'); +require('./assets/Script/module/RankList/List'); +require('./assets/Script/module/Share/share'); +require('./assets/Script/module/Storage/Storage'); +require('./assets/Script/module/Tool/GameTool'); +require('./assets/migration/use_v2.1-2.2.1_cc.Toggle_event'); + + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); \ No newline at end of file diff --git a/temp/quick-scripts/dst/__quick_compile__.js b/temp/quick-scripts/dst/__quick_compile__.js new file mode 100644 index 0000000..fc27c10 --- /dev/null +++ b/temp/quick-scripts/dst/__quick_compile__.js @@ -0,0 +1,267 @@ + +(function () { +var scripts = [{"deps":{"./assets/migration/use_v2.1-2.2.1_cc.Toggle_event":1,"./assets/Script/Sdk/MiniGameSdk":2,"./assets/Script/GameOver":3,"./assets/Script/GameManager":4,"./assets/Script/RankManager":5,"./assets/Script/Load":6,"./assets/Script/Block":7,"./assets/Script/DynamicAtlasManager":8,"./assets/Script/Sdk/MiniGameManager":9,"./assets/Script/module/Crypto/HttpUtil":10,"./assets/Script/module/Music/AudioManager":11,"./assets/Script/module/Config/GameConfig":12,"./assets/Script/module/Notification/Notification":13,"./assets/Script/module/RankList/ItemRender":14,"./assets/Script/module/GameStart/GameAppStart":15,"./assets/Script/module/Tool/GameTool":16,"./assets/Script/Sdk/DouyinEntranceView":17,"./assets/Script/module/Share/share":18,"./assets/Script/module/Storage/Storage":19,"./assets/Script/module/Crypto/crypto-js.min":20,"./assets/Script/module/RankList/List":21},"path":"preview-scripts/__qc_index__.js"},{"deps":{},"path":"preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js"},{"deps":{},"path":"preview-scripts/assets/Script/Sdk/MiniGameSdk.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameOver.js"},{"deps":{},"path":"preview-scripts/assets/Script/GameManager.js"},{"deps":{"./module/RankList/List":21},"path":"preview-scripts/assets/Script/RankManager.js"},{"deps":{},"path":"preview-scripts/assets/Script/Load.js"},{"deps":{},"path":"preview-scripts/assets/Script/Block.js"},{"deps":{},"path":"preview-scripts/assets/Script/DynamicAtlasManager.js"},{"deps":{"./MiniGameSdk":2},"path":"preview-scripts/assets/Script/Sdk/MiniGameManager.js"},{"deps":{"./crypto-js.min.js":20},"path":"preview-scripts/assets/Script/module/Crypto/HttpUtil.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Music/AudioManager.js"},{"deps":{"../Share/share":18},"path":"preview-scripts/assets/Script/module/Config/GameConfig.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Notification/Notification.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/RankList/ItemRender.js"},{"deps":{"../Config/GameConfig":12,"../Crypto/HttpUtil":10,"../Music/AudioManager":11,"../Notification/Notification":13,"../Storage/Storage":19,"../Tool/GameTool":16},"path":"preview-scripts/assets/Script/module/GameStart/GameAppStart.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Tool/GameTool.js"},{"deps":{"./MiniGameSdk":2},"path":"preview-scripts/assets/Script/Sdk/DouyinEntranceView.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Share/share.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Storage/Storage.js"},{"deps":{},"path":"preview-scripts/assets/Script/module/Crypto/crypto-js.min.js"},{"deps":{"./ItemRender":14},"path":"preview-scripts/assets/Script/module/RankList/List.js"}]; +var entries = ["preview-scripts/__qc_index__.js"]; +var bundleScript = 'preview-scripts/__qc_bundle__.js'; + +/** + * Notice: This file can not use ES6 (for IE 11) + */ +var modules = {}; +var name2path = {}; + +// Will generated by module.js plugin +// var scripts = ${scripts}; +// var entries = ${entries}; +// var bundleScript = ${bundleScript}; + +if (typeof global === 'undefined') { + window.global = window; +} + +var isJSB = typeof jsb !== 'undefined'; + +function getXMLHttpRequest () { + return window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject('MSXML2.XMLHTTP'); +} + +function downloadText(url, callback) { + if (isJSB) { + var result = jsb.fileUtils.getStringFromFile(url); + callback(null, result); + return; + } + + var xhr = getXMLHttpRequest(), + errInfo = 'Load text file failed: ' + url; + xhr.open('GET', url, true); + if (xhr.overrideMimeType) xhr.overrideMimeType('text\/plain; charset=utf-8'); + xhr.onload = function () { + if (xhr.readyState === 4) { + if (xhr.status === 200 || xhr.status === 0) { + callback(null, xhr.responseText); + } + else { + callback({status:xhr.status, errorMessage:errInfo + ', status: ' + xhr.status}); + } + } + else { + callback({status:xhr.status, errorMessage:errInfo + '(wrong readyState)'}); + } + }; + xhr.onerror = function(){ + callback({status:xhr.status, errorMessage:errInfo + '(error)'}); + }; + xhr.ontimeout = function(){ + callback({status:xhr.status, errorMessage:errInfo + '(time out)'}); + }; + xhr.send(null); +}; + +function loadScript (src, cb) { + if (typeof require !== 'undefined') { + require(src); + return cb(); + } + + // var timer = 'load ' + src; + // console.time(timer); + + var scriptElement = document.createElement('script'); + + function done() { + // console.timeEnd(timer); + // deallocation immediate whatever + scriptElement.remove(); + } + + scriptElement.onload = function () { + done(); + cb(); + }; + scriptElement.onerror = function () { + done(); + var error = 'Failed to load ' + src; + console.error(error); + cb(new Error(error)); + }; + scriptElement.setAttribute('type','text/javascript'); + scriptElement.setAttribute('charset', 'utf-8'); + scriptElement.setAttribute('src', src); + + document.head.appendChild(scriptElement); +} + +function loadScripts (srcs, cb) { + var n = srcs.length; + + srcs.forEach(function (src) { + loadScript(src, function () { + n--; + if (n === 0) { + cb(); + } + }); + }) +} + +function formatPath (path) { + let destPath = window.__quick_compile_project__.destPath; + if (destPath) { + let prefix = 'preview-scripts'; + if (destPath[destPath.length - 1] === '/') { + prefix += '/'; + } + path = path.replace(prefix, destPath); + } + return path; +} + +window.__quick_compile_project__ = { + destPath: '', + + registerModule: function (path, module) { + path = formatPath(path); + modules[path].module = module; + }, + + registerModuleFunc: function (path, func) { + path = formatPath(path); + modules[path].func = func; + + var sections = path.split('/'); + var name = sections[sections.length - 1]; + name = name.replace(/\.(?:js|ts|json)$/i, ''); + name2path[name] = path; + }, + + require: function (request, path) { + var m, requestScript; + + path = formatPath(path); + if (path) { + m = modules[path]; + if (!m) { + console.warn('Can not find module for path : ' + path); + return null; + } + } + + if (m) { + let depIndex = m.deps[request]; + // dependence script was excluded + if (depIndex === -1) { + return null; + } + else { + requestScript = scripts[ m.deps[request] ]; + } + } + + let requestPath = ''; + if (!requestScript) { + // search from name2path when request is a dynamic module name + if (/^[\w- .]*$/.test(request)) { + requestPath = name2path[request]; + } + + if (!requestPath) { + if (CC_JSB) { + return require(request); + } + else { + console.warn('Can not find deps [' + request + '] for path : ' + path); + return null; + } + } + } + else { + requestPath = formatPath(requestScript.path); + } + + let requestModule = modules[requestPath]; + if (!requestModule) { + console.warn('Can not find request module for path : ' + requestPath); + return null; + } + + if (!requestModule.module && requestModule.func) { + requestModule.func(); + } + + if (!requestModule.module) { + console.warn('Can not find requestModule.module for path : ' + path); + return null; + } + + return requestModule.module.exports; + }, + + run: function () { + entries.forEach(function (entry) { + entry = formatPath(entry); + var module = modules[entry]; + if (!module.module) { + module.func(); + } + }); + }, + + load: function (cb) { + var self = this; + + var srcs = scripts.map(function (script) { + var path = formatPath(script.path); + modules[path] = script; + + if (script.mtime) { + path += ("?mtime=" + script.mtime); + } + return path; + }); + + console.time && console.time('load __quick_compile_project__'); + // jsb can not analysis sourcemap, so keep separate files. + if (bundleScript && !isJSB) { + downloadText(formatPath(bundleScript), function (err, bundleSource) { + console.timeEnd && console.timeEnd('load __quick_compile_project__'); + if (err) { + console.error(err); + return; + } + + let evalTime = 'eval __quick_compile_project__ : ' + srcs.length + ' files'; + console.time && console.time(evalTime); + var sources = bundleSource.split('\n//------QC-SOURCE-SPLIT------\n'); + for (var i = 0; i < sources.length; i++) { + if (sources[i]) { + window.eval(sources[i]); + // not sure why new Function cannot set breakpoints precisely + // new Function(sources[i])() + } + } + self.run(); + console.timeEnd && console.timeEnd(evalTime); + cb(); + }) + } + else { + loadScripts(srcs, function () { + self.run(); + console.timeEnd && console.timeEnd('load __quick_compile_project__'); + cb(); + }); + } + } +}; + +// Polyfill for IE 11 +if (!('remove' in Element.prototype)) { + Element.prototype.remove = function () { + if (this.parentNode) { + this.parentNode.removeChild(this); + } + }; +} +})(); + \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/Block.js b/temp/quick-scripts/dst/assets/Script/Block.js new file mode 100644 index 0000000..bc73f57 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/Block.js @@ -0,0 +1,171 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Block.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'd63eeqXqS5GV5T/inM6K0aA', 'Block'); +// Script/Block.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +//出现块的类型,问题以及答案 +var BlockType = cc.Enum({ + problem_In: 1, + problem_Out: 2, + correct_In: 3, + correct_Out: 4, + err_In: 5, + err_Out: 6, +}); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var Block = /** @class */ (function (_super) { + __extends(Block, _super); + function Block() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.UI = null; + return _this; + // update (dt) { + // } + } + // LIFE-CYCLE CALLBACKS: + Block.prototype.onLoad = function () { + // this.init(); + this.GameManager = this.node.parent.parent.parent.getComponent("GameManager"); + this._touch = false; + this._start = false; + this._answer = false; + this._inside = true; + this.node.on(cc.Node.EventType.TOUCH_START, this.touchStart, this); + }; + Block.prototype.init = function (type, id) { + if (type == BlockType.correct_Out) { + } + }; + Block.prototype.setId = function (id) { + this._idNumber = id; + }; + Block.prototype.answerShow = function (texture) { + var _this = this; + this.node.getChildByName("texture").active = true; + var textureName = "texture" + texture; + // @ts-ignore + this.node.getChildByName("texture").getComponent(cc.Sprite).spriteFrame = this.UI._spriteFrames[textureName]; + cc.tween(this.node.getChildByName("texture")) + .to(0.01, { opacity: 255 }) + .delay(this.GameManager.config["showTime"] - 0.05) + .call(function () { + if (_this._inside) { + _this.node.getChildByName("texture").opacity = 0; + } + }) + .start(); + }; + Block.prototype.lockShow = function (type, inside) { + this.node.getChildByName("texture").active = false; + this._answer = type; + this._inside = inside; + this.node.getChildByName("lock").active = true; + this._touch = true; + }; + Block.prototype.lockHide = function () { + this.node.getChildByName("lock").active = false; + this._touch = false; + }; + Block.prototype.show = function (type, inside, texture) { + var _this = this; + // this._answer = type; + this._inside = inside; + if (inside) + this._answer = type; + var textureName = "texture" + texture; + this.node.getChildByName("texture").active = true; + //正确答案 + //@ts-ignore + this.node.getChildByName("texture").getComponent(cc.Sprite).spriteFrame = this.UI._spriteFrames[textureName]; + cc.tween(this.node.getChildByName("texture")) + .to(0.01, { opacity: 255 }) + // .delay(this.GameManager.config["showTime"]-0.1) + .call(function () { + if (inside) { + _this._touch = true; + } + }) + .start(); + }; + Block.prototype.set_Pos = function () { + this._start = true; + }; + Block.prototype.set_Touch = function (type) { + this._touch = type; + }; + Block.prototype.start = function () { + }; + //开始点击,提高层级 + Block.prototype.touchStart = function (event) { + if (this._touch) { + if (this._answer) { + this.node.getChildByName("yes").active = true; + var data = { "result": true, "type": this._inside, id: this._idNumber }; + cc.fx.Notifications.emit("result", data); + } + else { + this.node.getChildByName("err").active = true; + var data = { "result": false, "type": this._inside, id: this._idNumber }; + cc.fx.Notifications.emit("result", data); + } + } + }; + __decorate([ + property(cc.Asset) + ], Block.prototype, "UI", void 0); + Block = __decorate([ + ccclass + ], Block); + return Block; +}(cc.Component)); +exports.default = Block; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxCbG9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0JBQW9CO0FBQ3BCLHdFQUF3RTtBQUN4RSxtQkFBbUI7QUFDbkIsa0ZBQWtGO0FBQ2xGLDhCQUE4QjtBQUM5QixrRkFBa0Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRixlQUFlO0FBQ2YsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztJQUNwQixVQUFVLEVBQUUsQ0FBQztJQUNiLFdBQVcsRUFBRSxDQUFDO0lBQ2QsVUFBVSxFQUFDLENBQUM7SUFDWixXQUFXLEVBQUMsQ0FBQztJQUNiLE1BQU0sRUFBQyxDQUFDO0lBQ1IsT0FBTyxFQUFDLENBQUM7Q0FDWixDQUFDLENBQUM7QUFFRyxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFtQyx5QkFBWTtJQUEvQztRQUFBLHFFQW9IQztRQWpIRyxRQUFFLEdBQWEsSUFBSSxDQUFDOztRQThHcEIsZ0JBQWdCO1FBRWhCLElBQUk7SUFDUixDQUFDO0lBdkdHLHdCQUF3QjtJQUV4QixzQkFBTSxHQUFOO1FBQ0ksZUFBZTtRQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFF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QUMsQ0FBQztnQkFDbEUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQzthQUMzQztTQUNKO0lBRUwsQ0FBQztJQTVHRDtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO3FDQUNDO0lBSEgsS0FBSztRQUR6QixPQUFPO09BQ2EsS0FBSyxDQW9IekI7SUFBRCxZQUFDO0NBcEhELEFBb0hDLENBcEhrQyxFQUFFLENBQUMsU0FBUyxHQW9IOUM7a0JBcEhvQixLQUFLIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiLy8gTGVhcm4gVHlwZVNjcmlwdDpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvdHlwZXNjcmlwdC5odG1sXHJcbi8vIExlYXJuIEF0dHJpYnV0ZTpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvcmVmZXJlbmNlL2F0dHJpYnV0ZXMuaHRtbFxyXG4vLyBMZWFybiBsaWZlLWN5Y2xlIGNhbGxiYWNrczpcclxuLy8gIC0gaHR0cHM6Ly9kb2NzLmNvY29zLmNvbS9jcmVhdG9yL21hbnVhbC9lbi9zY3JpcHRpbmcvbGlmZS1jeWNsZS1jYWxsYmFja3MuaHRtbFxyXG5cclxuLy/lh7rnjrDlnZfnmoTnsbvlnovvvIzpl67popjku6Xlj4rnrZTmoYhcclxudmFyIEJsb2NrVHlwZSA9IGNjLkVudW0oe1xyXG4gICAgcHJvYmxlbV9JbjogMSwgIC8v5YaF5ZyI6Zeu6aKYXHJcbiAgICBwcm9ibGVtX091dDogMiwgLy/lpJblnIjpl67pophcclxuICAgIGNvcnJlY3RfSW46MywgICAgICAvL+WGheWciOato+ehruetlOahiFxyXG4gICAgY29ycmVjdF9PdXQ6NCwgICAgIC8v5aSW5ZyI5q2j56Gu562U5qGIXHJcbiAgICBlcnJfSW46NSwgICAgICAgICAgLy/lhoXlnIjplJnor6/nrZTmoYhcclxuICAgIGVycl9PdXQ6NiwgICAgICAgICAvL+WkluWciOmUmeivr+etlOahiFxyXG59KTtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmxvY2sgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5Bc3NldClcclxuICAgIFVJOiBjYy5Bc3NldCA9IG51bGw7XHJcblxyXG4gICAgX3RvdWNoOiBib29sZWFuO1xyXG4gICAgX3N0YXJ0OiBib29sZWFuO1xyXG4gICAgX2Fuc3dlcjogYm9vbGVhbjtcclxuICAgIF9pbnNpZGU6IGJvb2xlYW47XHJcbiAgICBfaWROdW1iZXI6IG51bWJlcjtcclxuICAgIEdhbWVNYW5hZ2VyOiBhbnk7XHJcbiAgICB0dWJlX0FycmF5OiBudW1iZXJbXVtdOy8v566h5a2Q5pWw57uEXHJcblxyXG4gICAgLy8gTElGRS1DWUNMRSBDQUxMQkFDS1M6XHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICAvLyB0aGlzLmluaXQoKTtcclxuICAgICAgICB0aGlzLkdhbWVNYW5hZ2VyID0gdGhpcy5ub2RlLnBhcmVudC5wYXJlbnQucGFyZW50LmdldENvbXBvbmVudChcIkdhbWVNYW5hZ2VyXCIpO1xyXG4gICAgICAgIHRoaXMuX3RvdWNoID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fc3RhcnQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9hbnN3ZXIgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9pbnNpZGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5UT1VDSF9TVEFSVCwgdGhpcy50b3VjaFN0YXJ0LCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KHR5cGUsaWQpe1xyXG4gICAgICAgIGlmKHR5cGUgPT0gQmxvY2tUeXBlLmNvcnJlY3RfT3V0KXtcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldElkKGlkKXtcclxuICAgICAgICB0aGlzLl9pZE51bWJlciA9IGlkO1xyXG4gICAgfVxyXG5cclxuICAgIGFuc3dlclNob3codGV4dHVyZSl7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGV4dHVyZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIGxldCB0ZXh0dXJlTmFtZSA9IFwidGV4dHVyZVwiK3RleHR1cmU7XHJcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRleHR1cmVcIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLlVJLl9zcHJpdGVGcmFtZXNbdGV4dHVyZU5hbWVdO1xyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRleHR1cmVcIikpXHJcbiAgICAgICAgLnRvKDAuMDEse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAuZGVsYXkodGhpcy5HYW1lTWFuYWdlci5jb25maWdbXCJzaG93VGltZVwiXS0wLjA1KVxyXG4gICAgICAgIC5jYWxsKCgpID0+e1xyXG4gICAgICAgICAgICBpZih0aGlzLl9pbnNpZGUpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGV4dHVyZVwiKS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnN0YXJ0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9ja1Nob3codHlwZSxpbnNpZGUpe1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRleHR1cmVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fYW5zd2VyID0gdHlwZTtcclxuICAgICAgICB0aGlzLl9pbnNpZGUgPSBpbnNpZGU7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibG9ja1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuX3RvdWNoID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBsb2NrSGlkZSgpe1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcImxvY2tcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fdG91Y2ggPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBzaG93KHR5cGUsaW5zaWRlLHRleHR1cmUpe1xyXG4gICAgICAgIC8vIHRoaXMuX2Fuc3dlciA9IHR5cGU7XHJcbiAgICAgICAgdGhpcy5faW5zaWRlID0gaW5zaWRlO1xyXG4gICAgICAgIGlmKGluc2lkZSkgdGhpcy5fYW5zd2VyID0gdHlwZTtcclxuICAgICAgICBsZXQgdGV4dHVyZU5hbWUgPSBcInRleHR1cmVcIit0ZXh0dXJlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRleHR1cmVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAvL+ato+ehruetlOahiFxyXG4gICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRleHR1cmVcIikuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSB0aGlzLlVJLl9zcHJpdGVGcmFtZXNbdGV4dHVyZU5hbWVdO1xyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRleHR1cmVcIikpXHJcbiAgICAgICAgLnRvKDAuMDEse29wYWNpdHk6MjU1fSlcclxuICAgICAgICAvLyAuZGVsYXkodGhpcy5HYW1lTWFuYWdlci5jb25maWdbXCJzaG93VGltZVwiXS0wLjEpXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIGlmKGluc2lkZSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl90b3VjaCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBzZXRfUG9zKCl7XHJcbiAgICAgICAgdGhpcy5fc3RhcnQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHNldF9Ub3VjaCh0eXBlKXtcclxuICAgICAgICB0aGlzLl90b3VjaCA9IHR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG5cclxuICAgIH1cclxuICAgIC8v5byA5aeL54K55Ye777yM5o+Q6auY5bGC57qnXHJcbiAgICB0b3VjaFN0YXJ0IChldmVudCkge1xyXG4gICAgICAgIGlmKHRoaXMuX3RvdWNoKXtcclxuICAgICAgICAgICAgaWYodGhpcy5fYW5zd2VyKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInllc1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB7XCJyZXN1bHRcIjp0cnVlLFwidHlwZVwiOnRoaXMuX2luc2lkZSxpZDp0aGlzLl9pZE51bWJlcn07XHJcbiAgICAgICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoXCJyZXN1bHRcIixkYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiZXJyXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcInJlc3VsdFwiOmZhbHNlLFwidHlwZVwiOnRoaXMuX2luc2lkZSxpZDp0aGlzLl9pZE51bWJlcn07XHJcbiAgICAgICAgICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoXCJyZXN1bHRcIixkYXRhKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgXHJcbiAgICB9XHJcblxyXG4gICAgLy8gdXBkYXRlIChkdCkge1xyXG5cclxuICAgIC8vIH1cclxufVxyXG4iXX0= \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/DynamicAtlasManager.js b/temp/quick-scripts/dst/assets/Script/DynamicAtlasManager.js new file mode 100644 index 0000000..4c209c5 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/DynamicAtlasManager.js @@ -0,0 +1,37 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/DynamicAtlasManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '5c9b8FZiaNLMrMDs9T3rByf', 'DynamicAtlasManager'); +// Script/DynamicAtlasManager.js + +"use strict"; + +cc.Class({ + "extends": cc.Component, + properties: {}, + onLoad: function onLoad() { + cc.dynamicAtlasManager.enabled = false; + } +}); + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEeW5hbWljQXRsYXNNYW5hZ2VyLmpzIl0sIm5hbWVzIjpbImNjIiwiQ2xhc3MiLCJDb21wb25lbnQiLCJwcm9wZXJ0aWVzIiwib25Mb2FkIiwiZHluYW1pY0F0bGFzTWFuYWdlciIsImVuYWJsZWQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUFBLEVBQUUsQ0FBQ0MsS0FBSCxDQUFTO0FBQ0wsYUFBU0QsRUFBRSxDQUFDRSxTQURQO0FBR0xDLEVBQUFBLFVBQVUsRUFBRSxFQUhQO0FBTUxDLEVBQUFBLE1BTkssb0JBTUs7QUFDTkosSUFBQUEsRUFBRSxDQUFDSyxtQkFBSCxDQUF1QkMsT0FBdkIsR0FBaUMsS0FBakM7QUFDSDtBQVJJLENBQVQiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbImNjLkNsYXNzKHtcclxuICAgIGV4dGVuZHM6IGNjLkNvbXBvbmVudCxcclxuXHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICB9LFxyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgY2MuZHluYW1pY0F0bGFzTWFuYWdlci5lbmFibGVkID0gZmFsc2U7XHJcbiAgICB9LFxyXG59KTtcclxuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/GameManager.js b/temp/quick-scripts/dst/assets/Script/GameManager.js new file mode 100644 index 0000000..a690c10 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/GameManager.js @@ -0,0 +1,558 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/GameManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'b0432BA295DjIOcuitdGKO1', 'GameManager'); +// Script/GameManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +// 主游戏控制类 +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var GameManager = /** @class */ (function (_super) { + __extends(GameManager, _super); + function GameManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.kuang1_Prefab = null; + _this.kuang2_Prefab = null; + _this.Block = null; + _this.TimeLabel = null; + _this.LevelLabel = null; + _this.Guide = null; + _this.progress = null; //-95 640 + _this.Top = null; //80 -725 + return _this; + } + GameManager.prototype.onLoad = function () { + this.guide_State = false; + this.level = cc.fx.GameConfig.GM_INFO.level; + this.guide_Level = cc.fx.GameConfig.GM_INFO.guide_Level; + this.LevelLabel.string = (this.level + 1) + ""; + this.progress.fillRange = cc.fx.GameConfig.GM_INFO.score / 24; + if (this.progress.fillRange >= 0.2) + this.Top.getChildByName("star1").active = true; + if (this.progress.fillRange >= 0.5) + this.Top.getChildByName("star2").active = true; + if (this.progress.fillRange >= 0.8) + this.Top.getChildByName("star3").active = true; + if ((this.level == 0 && this.guide_Level == 4) || + (this.level == 4 && this.guide_Level == 3) || + (this.level == 8 && this.guide_Level == 1)) { + this.openGuide(false); + } + else { + this.LevelLabel.node.active = true; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "第 轮"; + this.init(); + } + }; + GameManager.prototype.init = function () { + var _this = this; + if (this.level == 4 && this.guide_Level == 2) { + cc.fx.GameConfig.GM_INFO.guide_Level -= 1; + this.guide_State = true; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + // this.node.getChildByName("tip").active = true; + } + this.result = 0; + this.countTime = 6; + this.TimeLabel.string = cc.fx.GameTool.getTimeMargin(this.countTime); + this.createBlock(); + setTimeout(function () { + _this.createCustom(); + }, 1000); + }; + GameManager.prototype.openGuide = function (type) { + this.Guide.active = true; + this.guide_State = true; + // this.node.getChildByName("tip").active = true; + if (!type) + cc.fx.GameConfig.GM_INFO.guide_Level -= 1; + this.Guide.getChildByName("one").active = false; + this.Guide.getChildByName("two").active = false; + this.Guide.getChildByName("three").active = false; + this.Guide.getChildByName("four").active = false; + var name = "one"; + if (this.level == 0) { + name = "one"; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + } + else if (this.level == 4) { + name = "two"; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + } + else if (this.level == 8) { + name = "three"; + this.guide_State = false; + } + if (type) + name = "four"; + this.Guide.getChildByName(name).active = true; + cc.tween(this.Guide.getChildByName(name)) + .to(0.5, { opacity: 255 }) + .start(); + }; + GameManager.prototype.closeGuide = function () { + if (this.Guide.getChildByName("four").active) { + this.Guide.active = false; + cc.director.loadScene("GameScene"); + } + else { + this.Guide.active = false; + this.init(); + } + // + }; + //创建方块地图 + GameManager.prototype.createBlock = function () { + this.outside_Array = []; + this.inside_Array = []; + this.outside = []; + this.inside = []; + for (var i = 0; i < 16; i++) { + var block = cc.instantiate(this.kuang1_Prefab); + block.getComponent("Block").setId(i); + block.parent = this.Block.getChildByName("outside"); + var x = void 0, y = 0; + if (i < 5) { + x = -284 + 142 * i; + y = 259; + } + else if (i < 9) { + x = 284; + y = 259 - (i - 4) * 142; + } + else if (i < 13) { + x = 284 - (i - 8) * 142; + y = -309; + } + else if (i < 16) { + x = -284; + y = -309 + (i - 12) * 142; + } + block.setPosition(x, y); + this.outside_Array.push(block); + } + for (var j = 3; j < 12; j++) { + var block = cc.instantiate(this.kuang2_Prefab); + block.getComponent("Block").setId(j); + block.parent = this.Block.getChildByName("inside"); + block.setPosition(-132 + j % 3 * 132, 239 - parseInt(j / 3 + "") * 132); + this.inside_Array.push(block); + } + }; + //创建关卡 + GameManager.prototype.createCustom = function () { + //初始化关卡配置数据 + this.level = cc.fx.GameConfig.GM_INFO.level; + this.LevelLabel.string = (this.level + 1) + ""; + this.config = cc.fx.GameConfig.LEVEL_INFO[this.level]; + if (this.level == 4 && this.guide_Level == 2) { + this.config = cc.fx.GameConfig.LEVEL_INFO[6]; + } + this.pass = false; + //放正确答案和错误答案 + this.answerInsideTexture = Math.floor(Math.random() * 14 + 1); + //内圈错误答案随机 + this.insideTexture = []; + this.outsideTexture = []; + for (var k = 0; k < 14; k++) { + if ((k + 1) != this.answerInsideTexture) { + this.insideTexture.push(k + 1); + } + } + cc.fx.GameTool.shuffleArray(this.insideTexture); + this.answerOutsideTexture = this.insideTexture[11]; + //分配正确答案和错误答案位置 + if (this.config["inside"] > 0) { + this.result += 1; + var random = Math.random() * 100; + var arrayTemp = [0, 1, 2, 3, 5, 6, 7, 8]; + if (this.config["insideType"] == 1) { + if (random >= 50) + this.inside = [0, 1, 2]; + else + this.inside = [6, 7, 8]; + } + else if (this.config["insideType"] == 2) { + if (random >= 50) + this.inside = [0, 3, 6]; + else + this.inside = [2, 5, 8]; + } + else { + this.inside = cc.fx.GameTool.shuffleArray(arrayTemp); + this.inside.splice(this.config["inside"], this.inside.length - this.config["inside"]); + } + this.answerInside = this.inside[Math.floor(Math.random() * this.inside.length)]; + } + //分配外圈正确答案和错误答案位置 + if (this.config["outside"] > 0) { + this.result += 1; + if (this.config["outsideType"] == 1) { + this.outside = [1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15]; + } + else if (this.config["outsideType"] == 2) { + this.outside = [0, 4, 8, 12]; + } + else { + this.outside = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; + } + cc.fx.GameTool.shuffleArray(this.outside); + this.answerOutside = this.outside[Math.floor(Math.random() * this.outside.length)]; + if (this.config["outside"] == 2) { + for (var j = 0; j < 15; j++) { + this.outsideTexture.push(this.insideTexture[3]); + } + } + else if (this.config["outside"] == 3) { + this.outsideTexture = [this.insideTexture[5], this.insideTexture[6], this.insideTexture[5], this.insideTexture[6], this.insideTexture[5]]; + for (var j = 0; j < 10; j++) { + var randomTemp = Math.random() * 100; + if (randomTemp > 50) + this.outsideTexture.push(this.insideTexture[5]); + else + this.outsideTexture.push(this.insideTexture[6]); + } + cc.fx.GameTool.shuffleArray(this.outsideTexture); + } + else if (this.config["outside"] == 4) { + this.outsideTexture = [this.insideTexture[2], this.insideTexture[4], this.insideTexture[6], + this.insideTexture[2], this.insideTexture[4], this.insideTexture[6]]; + for (var j = 0; j < 9; j++) { + var randomTemp = Math.random() * 100; + if (randomTemp < 33) + this.outsideTexture.push(this.insideTexture[2]); + else if (randomTemp < 66) + this.outsideTexture.push(this.insideTexture[4]); + else + this.outsideTexture.push(this.insideTexture[6]); + } + cc.fx.GameTool.shuffleArray(this.outsideTexture); + } + } + this.runBlock(); + }; + //块执行图片出现消失动画 + GameManager.prototype.runBlock = function () { + var _this = this; + if (this.config["inside"] > 0) { + this.inside_Array[4].getComponent("Block").answerShow(this.answerInsideTexture); + setTimeout(function () { + var insideNumber = 0; + for (var i = 0; i < _this.inside.length; i++) { + if (_this.inside[i] == _this.answerInside) + _this.inside_Array[_this.inside[i]].getComponent("Block").show(true, true, _this.answerInsideTexture); + else { + _this.inside_Array[_this.inside[i]].getComponent("Block").show(false, true, _this.insideTexture[insideNumber]); + insideNumber += 1; + } + } + }, this.config["showTime"] * 1000); + } + if (this.config["outside"] > 0) { + this.outside_Array[this.answerOutside].getComponent("Block").answerShow(this.answerOutsideTexture); + if (this.config["outside"] > 1) { + var outsideNumber = 0; + for (var i = 0; i < this.outside_Array.length; i++) { + if (i == this.answerOutside) + this.outside_Array[i].getComponent("Block").show(true, false, this.answerOutsideTexture); + else { + this.outside_Array[i].getComponent("Block").show(false, false, this.outsideTexture[outsideNumber]); + outsideNumber += 1; + } + } + } + setTimeout(function () { + var outsideNumber = 0; + for (var i = 0; i < _this.outside_Array.length; i++) { + if (i == _this.answerOutside) + _this.outside_Array[i].getComponent("Block").lockShow(true, false); + else { + _this.outside_Array[i].getComponent("Block").lockShow(false, false); + outsideNumber += 1; + } + } + }, this.config["showTime"] * 1000); + } + setTimeout(function () { + if (!_this.guide_State) { + _this.startTime = cc.fx.GameTool.getTime(); + _this.schedule(_this.updateCountDownTime, 1); + } + }, this.config["showTime"] * 1000); + }; + //正确 + GameManager.prototype.openResult = function (result) { + var _this = this; + this.result -= 1; + //非引导状态 + if (!this.guide_State) { + this.flipBlock(result); + if (this.result == 0) { + this.unschedule(this.updateCountDownTime); + setTimeout(function () { + _this.setData(result); + }, 1000); + setTimeout(function () { + if (cc.fx.GameConfig.GM_INFO.level < cc.fx.GameConfig.LEVEL_INFO.length - 1) { + cc.fx.GameConfig.GM_INFO.level += 1; + cc.director.loadScene("GameScene"); + } + }, 2000); + } + } + //引导状态下 + else { + if (result.result) { + this.flipBlock(result); + setTimeout(function () { + if (_this.level == 4 && cc.fx.GameConfig.GM_INFO.guide_Level == 2) { + cc.director.loadScene("GameScene"); + } + else + _this.openGuide(true); + }, 1000); + } + } + }; + //翻转形状变成问号 + GameManager.prototype.flipBlock = function (result) { + if (result.type) { + var pos = this.changePos(true, result.id); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.userChoiceInner.push(pos.x, pos.y); + for (var i = 0; i < this.inside.length; i++) { + if (this.inside[i] == this.answerInside) { + this.inside_Array[4].getChildByName("texture").active = true; + this.inside_Array[4].getChildByName("texture").opacity = 255; + this.inside_Array[this.inside[i]].getChildByName("yes").active = true; + var pos_1 = this.changePos(true, this.inside_Array[this.inside[i]].getComponent("Block")._idNumber); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.rightChoiceInner.push(pos_1.x, pos_1.y); + } + this.inside_Array[this.inside[i]].getComponent("Block")._touch = false; + } + if (result.result) { + this.addScore(); + } + } + else { + var pos = this.changePos(false, result.id); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.userChoiceOuter.push(pos.x, pos.y); + for (var i = 0; i < this.outside_Array.length; i++) { + this.outside_Array[i].getComponent("Block").lockHide(); + this.outside_Array[i].getChildByName("texture").active = true; + if (i == this.answerOutside) { + this.outside_Array[i].getChildByName("yes").active = true; + this.outside_Array[i].getComponent("Block").show(true, false, this.answerOutsideTexture); + var pos_2 = this.changePos(false, this.outside_Array[i].getComponent("Block")._idNumber); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.rightChoiceOuter.push(pos_2.x, pos_2.y); + } + } + if (result.result) { + this.addScore(); + } + } + }; + //加分 加进度条,加星星 + GameManager.prototype.addScore = function () { + var _this = this; + if (!this.guide_State) { + cc.fx.GameConfig.GM_INFO.score += 1; + var progress = cc.fx.GameConfig.GM_INFO.score / 24; + if (progress >= 1) + progress = 1; + cc.tween(this.progress) + .to(0.2, { fillRange: progress }) + .call(function () { + if (_this.Top.getChildByName("star1").active == false && progress >= 0.2) { + _this.Top.getChildByName("star1").active = true; + _this.Top.getChildByName("star1").opacity = 0; + _this.Top.getChildByName("star1").scale = 0.1; + cc.tween(_this.Top.getChildByName("star1")) + .to(0.3, { opacity: 255, scale: 1.1 }) + .to(0.1, { opacity: 255, scale: 0.9 }) + .to(0.1, { opacity: 255, scale: 1 }) + .start(); + } + if (_this.Top.getChildByName("star2").active == false && progress >= 0.5) { + _this.Top.getChildByName("star2").active = true; + _this.Top.getChildByName("star2").opacity = 0; + _this.Top.getChildByName("star2").scale = 0.1; + cc.tween(_this.Top.getChildByName("star2")) + .to(0.3, { opacity: 255, scale: 1.1 }) + .to(0.1, { opacity: 255, scale: 0.9 }) + .to(0.1, { opacity: 255, scale: 1 }) + .start(); + } + if (_this.Top.getChildByName("star3").active == false && progress >= 0.8) { + _this.Top.getChildByName("star3").active = true; + _this.Top.getChildByName("star3").opacity = 0; + _this.Top.getChildByName("star3").scale = 0.1; + cc.tween(_this.Top.getChildByName("star3")) + .to(0.3, { opacity: 255, scale: 1.1 }) + .to(0.1, { opacity: 255, scale: 0.9 }) + .to(0.1, { opacity: 255, scale: 1 }) + .start(); + } + }) + .start(); + } + }; + //返回首页 + GameManager.prototype.backScene = function () { + cc.director.loadScene("LoadScene"); + }; + //重新开始 + GameManager.prototype.reStart = function () { + }; + //获取时间戳 + GameManager.prototype.getTime = function () { + var timestamp = new Date().getTime(); + return timestamp; + }; + //获胜 + GameManager.prototype.passLevel = function () { + }; + //失败 + GameManager.prototype.loseLevel = function (type) { + }; + GameManager.prototype.changePos = function (type, num) { + var x = 0; + var y = 0; + //内部 + if (type) { + y = parseInt(num / 3 + ""); + x = num % 3; + } + //外部 + else { + if (num < 5) { + y = 0; + x = num; + } + else if (num < 9) { + x = 5; + y = num - 4; + } + else if (num < 13) { + y = 4; + x = 12 - num; + } + else if (num < 16) { + x = 0; + y = 16 - num; + } + } + var jg = cc.v2(x, y); + return jg; + }; + //如果是倒计时 调用此方法 + GameManager.prototype.updateCountDownTime = function () { + if (this.countTime > 0) { + this.countTime -= 1; + // this.TimeLabel.string =this.countTime + ""; + this.TimeLabel.string = cc.fx.GameTool.getTimeMargin(this.countTime); + if (this.countTime <= 0) { + this.unschedule(this.updateCountDownTime); + this.node.getChildByName("Mask").active = true; + var data = { "result": false, "type": true, "id": null }; + if (this.config["inside"] > 0) + cc.fx.Notifications.emit("result", data); + var data2 = { "result": false, "type": false, "id": null }; + if (this.config["outside"] > 0) + cc.fx.Notifications.emit("result", data2); + } + } + }; + //上传每次操作数据 + GameManager.prototype.setData = function (result) { + cc.fx.GameConfig.CLICK_DATA.success = result.result; + cc.fx.GameConfig.CLICK_DATA.round = (cc.fx.GameConfig.GM_INFO.level + 1); + cc.fx.GameConfig.CLICK_DATA.duration = new Date().getTime() - this.startTime - 1000; + cc.fx.GameTool.setGameData(); + }; + GameManager.prototype.onEnable = function () { + cc.fx.Notifications.on("result", this.openResult, this); + }; + GameManager.prototype.onDisable = function () { + cc.fx.Notifications.off("result", this.openResult, this); + }; + GameManager.prototype.update = function (dt) { + }; + __decorate([ + property(cc.Prefab) + ], GameManager.prototype, "kuang1_Prefab", void 0); + __decorate([ + property(cc.Prefab) + ], GameManager.prototype, "kuang2_Prefab", void 0); + __decorate([ + property(cc.Node) + ], GameManager.prototype, "Block", void 0); + __decorate([ + property(cc.Label) + ], GameManager.prototype, "TimeLabel", void 0); + __decorate([ + property(cc.Label) + ], GameManager.prototype, "LevelLabel", void 0); + __decorate([ + property(cc.Node) + ], GameManager.prototype, "Guide", void 0); + __decorate([ + property(cc.Sprite) + ], GameManager.prototype, "progress", void 0); + __decorate([ + property(cc.Node) + ], GameManager.prototype, "Top", void 0); + GameManager = __decorate([ + ccclass + ], GameManager); + return GameManager; +}(cc.Component)); +exports.default = GameManager; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxTQUFTO0FBQ0gsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUM7SUFBeUMsK0JBQVk7SUFBckQ7UUFBQSxxRUE4ZUM7UUE1ZUcsbUJBQWEsR0FBYyxJQUFJLENBQUM7UUFFaEMsbUJBQWEsR0FBYyxJQUFJLENBQUM7UUFFaEMsV0FBSyxHQUFZLElBQUksQ0FBQztRQUV0QixlQUFTLEdBQWEsSUFBSSxDQUFDO1FBRTNCLGdCQUFVLEdBQWEsSUFBSSxDQUFDO1FBRTVCLFdBQUssR0FBWSxJQUFJLENBQUM7UUFHdEIsY0FBUSxHQUFjLElBQUksQ0FBQyxDQUFDLFNBQVM7UUFFckMsU0FBRyxHQUFZLElBQUksQ0FBQyxDQUFBLFNBQVM7O0lBNmRqQyxDQUFDO0lBbmNHLDRCQUFNLEdBQU47UUFDSSxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBQyxDQUFDLENBQUMsR0FBQyxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBQyxFQUFFLENBQUM7UUFDNUQsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFB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SUFFRCw4QkFBUSxHQUFSO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRTVELENBQUM7SUFDRCwrQkFBUyxHQUFUO1FBQ0ksRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFDRCw0QkFBTSxHQUFOLFVBQVEsRUFBRTtJQUVWLENBQUM7SUEzZUQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztzREFDWTtJQUVoQztRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDO3NEQUNZO0lBRWhDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7OENBQ0k7SUFFdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztrREFDUTtJQUUzQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO21EQUNTO0lBRTVCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7OENBQ0k7SUFHdEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQztpREFDTztJQUUzQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzRDQUNFO0lBakJILFdBQVc7UUFEL0IsT0FBTztPQUNhLFdBQVcsQ0E4ZS9CO0lBQUQsa0JBQUM7Q0E5ZUQsQUE4ZUMsQ0E5ZXdDLEVBQUUsQ0FBQyxTQUFTLEdBOGVwRDtrQkE5ZW9CLFdBQVciLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyDkuLvmuLjmiI/mjqfliLbnsbtcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIEBwcm9wZXJ0eShjYy5QcmVmYWIpXHJcbiAgICBrdWFuZzFfUHJlZmFiOiBjYy5QcmVmYWIgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlByZWZhYilcclxuICAgIGt1YW5nMl9QcmVmYWI6IGNjLlByZWZhYiA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIEJsb2NrOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIFRpbWVMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgTGV2ZWxMYWJlbDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBHdWlkZTogY2MuTm9kZSA9IG51bGw7XHJcblxyXG4gICAgQHByb3BlcnR5KGNjLlNwcml0ZSlcclxuICAgIHByb2dyZXNzOiBjYy5TcHJpdGUgPSBudWxsOyAvLy05NSA2NDBcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKSAgXHJcbiAgICBUb3A6IGNjLk5vZGUgPSBudWxsOy8vODAgLTcyNVxyXG5cclxuICAgIGNvdW50VGltZTogbnVtYmVyOyAgICAgIC8v5ri45oiP5oC7ZGFvamlzaGlcclxuICAgIHN0YXJ0VGltZTogbnVtYmVyOyAgICAgIC8v5ri45oiP5byA5aeL5pe26Ze077yM5pe26Ze05oizXHJcbiAgICBwYXVzZTogYm9vbGVhbiA7ICAgICAgICAvL+a4uOaIj+aaguWBnFxyXG4gICAgZ2FtZU92ZXI6IGJvb2xlYW4gOyAgICAgLy/muLjmiI/nu5PmnZ9cclxuICAgIHJlc3VsdDogbnVtYmVyOyAgICAgICAgIC8v5b2T5YmN5bCP5bGA57uT5p2f5qCH5p2GXHJcblxyXG4gICAgb3V0c2lkZV9BcnJheTogYW55OyAgICAgLy/lhoXlnIjmlbDnu4RcclxuICAgIGluc2lkZV9BcnJheTogYW55OyAgICAgIC8v5aSW5ZyI5pWw57uEXHJcbiAgICBsZXZlbDogbnVtYmVyOyAgICAgICAgICAvL+WFs+WNoeetiee6p1xyXG4gICAgZ3VpZGVfTGV2ZWw6IG51bWJlcjsgICAgLy/lvJXlr7znrYnnuqdcclxuICAgIGd1aWRlX1N0YXRlOiBib29sZWFuOyAgICAvL+W8leWvvOetiee6p1xyXG4gICAgY29uZmlnOiB7fTsgICAgICAgICAgICAgLy/lvZPliY3lhbPljaHphY3nva5cclxuICAgIGFuc3dlckluc2lkZTogbnVtYmVyOyAgIC8v5q2j56Gu562U5qGI5L2N572uXHJcbiAgICBhbnN3ZXJPdXRzaWRlOiBudW1iZXI7ICAvL+ato+ehruetlOahiOS9jee9rlxyXG4gICAgcGFzczogYm9vbGVhbjsgICAgICAgICAgLy/mmK/lkKbpgJrlhbNcclxuICAgIG91dHNpZGU6IGFueTsgICAgICAgICAgIC8v5aSW5ZyI5a6e6ZmF5omn6KGM5pWw57uEXHJcbiAgICBpbnNpZGU6IGFueTsgICAgICAgICAgICAvL+WGheWciOWunumZheaJp+ihjOaVsOe7hFxyXG4gICAgYW5zd2VySW5zaWRlVGV4dHVyZTogbnVtYmVyOyAgLy/kuonlj5bnrZTmoYjlm77niYdcclxuICAgIGFuc3dlck91dHNpZGVUZXh0dXJlOiBudW1iZXI7ICAvL+S6ieWPluetlOahiOWbvueJh1xyXG4gICAgaW5zaWRlVGV4dHVyZTogbnVtYmVyW107ICAgLy/plJnor6/nrZTmoYjmlbDnu4RcclxuICAgIG91dHNpZGVUZXh0dXJlOiBudW1iZXJbXTsgICAvL+mUmeivr+etlOahiOaVsOe7hFxyXG4gICAgXHJcbiAgXHJcblxyXG4gICAgb25Mb2FkICgpIHtcclxuICAgICAgICB0aGlzLmd1aWRlX1N0YXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5sZXZlbCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbDtcclxuICAgICAgICB0aGlzLmd1aWRlX0xldmVsID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmd1aWRlX0xldmVsO1xyXG4gICAgICAgIHRoaXMuTGV2ZWxMYWJlbC5zdHJpbmcgPSAodGhpcy5sZXZlbCsxKStcIlwiO1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3MuZmlsbFJhbmdlID0gY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnNjb3JlLzI0O1xyXG4gICAgICAgIGlmKHRoaXMucHJvZ3Jlc3MuZmlsbFJhbmdlPj0gMC4yKSB0aGlzLlRvcC5nZXRDaGlsZEJ5TmFtZShcInN0YXIxXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgaWYodGhpcy5wcm9ncmVzcy5maWxsUmFuZ2U+PSAwLjUpIHRoaXMuVG9wLmdldENoaWxkQnlOYW1lKFwic3RhcjJcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICBpZih0aGlzLnByb2dyZXNzLmZpbGxSYW5nZT49IDAuOCkgdGhpcy5Ub3AuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyM1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIGlmKCh0aGlzLmxldmVsID09IDAgJiYgdGhpcy5ndWlkZV9MZXZlbCA9PSA0KSB8fFxyXG4gICAgICAgICh0aGlzLmxldmVsID09IDQgJiYgdGhpcy5ndWlkZV9MZXZlbCA9PSAzKSB8fFxyXG4gICAgICAgICh0aGlzLmxldmVsID09IDggJiYgdGhpcy5ndWlkZV9MZXZlbCA9PSAxKSl7XHJcbiAgICAgICAgICAgIHRoaXMub3Blbkd1aWRlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5MZXZlbExhYmVsLm5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwibGlhbnhpXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCLnrKwgICAgICAgIOi9rlwiO1xyXG4gICAgICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCgpe1xyXG4gICAgICAgIGlmKHRoaXMubGV2ZWwgPT0gNCAmJiB0aGlzLmd1aWRlX0xldmVsID09IDIpIHtcclxuICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ3VpZGVfTGV2ZWwgLT0gMTtcclxuICAgICAgICAgICB0aGlzLmd1aWRlX1N0YXRlID0gdHJ1ZTtcclxuICAgICAgICAgICB0aGlzLkxldmVsTGFiZWwubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJUb3BcIikuZ2V0Q2hpbGRCeU5hbWUoXCJsaWFueGlcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBcIue7gyAgIOS5oFwiO1xyXG4gICAgICAgIC8vICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpcFwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5yZXN1bHQgPSAwO1xyXG4gICAgICAgIHRoaXMuY291bnRUaW1lID0gNjtcclxuICAgICAgICB0aGlzLlRpbWVMYWJlbC5zdHJpbmcgPSAgY2MuZnguR2FtZVRvb2wuZ2V0VGltZU1hcmdpbih0aGlzLmNvdW50VGltZSk7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVCbG9jaygpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUN1c3RvbSgpO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5HdWlkZSh0eXBlKXtcclxuICAgICAgICB0aGlzLkd1aWRlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5ndWlkZV9TdGF0ZSA9IHRydWU7XHJcbiAgICAgICAgLy8gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwidGlwXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgaWYoIXR5cGUpIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5ndWlkZV9MZXZlbCAtPSAxO1xyXG4gICAgICAgIHRoaXMuR3VpZGUuZ2V0Q2hpbGRCeU5hbWUoXCJvbmVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5HdWlkZS5nZXRDaGlsZEJ5TmFtZShcInR3b1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLkd1aWRlLmdldENoaWxkQnlOYW1lKFwidGhyZWVcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5HdWlkZS5nZXRDaGlsZEJ5TmFtZShcImZvdXJcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBcIm9uZVwiO1xyXG4gICAgICAgIGlmKHRoaXMubGV2ZWwgPT0gMCl7XHJcbiAgICAgICAgICAgIG5hbWUgPSBcIm9uZVwiO1xyXG4gICAgICAgICAgICB0aGlzLkxldmVsTGFiZWwubm9kZS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiVG9wXCIpLmdldENoaWxkQnlOYW1lKFwibGlhbnhpXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCLnu4MgICDkuaBcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLmxldmVsID09IDQpe1xyXG4gICAgICAgICAgICBuYW1lID0gXCJ0d29cIjtcclxuICAgICAgICAgICAgdGhpcy5MZXZlbExhYmVsLm5vZGUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcIlRvcFwiKS5nZXRDaGlsZEJ5TmFtZShcImxpYW54aVwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IFwi57uDICAg5LmgXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5sZXZlbCA9PSA4KXtcclxuICAgICAgICAgICAgbmFtZSA9IFwidGhyZWVcIjtcclxuICAgICAgICAgICAgdGhpcy5ndWlkZV9TdGF0ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih0eXBlKSBuYW1lID0gXCJmb3VyXCI7XHJcbiAgICAgICAgdGhpcy5HdWlkZS5nZXRDaGlsZEJ5TmFtZShuYW1lKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgIGNjLnR3ZWVuKHRoaXMuR3VpZGUuZ2V0Q2hpbGRCeU5hbWUobmFtZSkpXHJcbiAgICAgICAgLnRvKDAuNSx7b3BhY2l0eToyNTV9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlR3VpZGUoKXtcclxuICAgICAgICBpZih0aGlzLkd1aWRlLmdldENoaWxkQnlOYW1lKFwiZm91clwiKS5hY3RpdmUpe1xyXG4gICAgICAgICAgICB0aGlzLkd1aWRlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICBjYy5kaXJlY3Rvci5sb2FkU2NlbmUoXCJHYW1lU2NlbmVcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIHRoaXMuR3VpZGUuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBcclxuXHJcbiAgICB9XHJcblxyXG4gICAgLy/liJvlu7rmlrnlnZflnLDlm75cclxuICAgIGNyZWF0ZUJsb2NrKCl7XHJcbiAgICAgICAgdGhpcy5vdXRzaWRlX0FycmF5ID0gW107XHJcbiAgICAgICAgdGhpcy5pbnNpZGVfQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLm91dHNpZGUgPSBbXTtcclxuICAgICAgICB0aGlzLmluc2lkZSA9IFtdO1xyXG4gICAgICAgIGZvcihsZXQgaT0wOyBpPDE2OyBpKyspe1xyXG4gICAgICAgICAgICBsZXQgYmxvY2sgPSBjYy5pbnN0YW50aWF0ZSh0aGlzLmt1YW5nMV9QcmVmYWIpO1xyXG4gICAgICAgICAgICBibG9jay5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5zZXRJZChpKTtcclxuICAgICAgICAgICAgYmxvY2sucGFyZW50ID0gdGhpcy5CbG9jay5nZXRDaGlsZEJ5TmFtZShcIm91dHNpZGVcIik7XHJcbiAgICAgICAgICAgIGxldCB4LHkgPSAwO1xyXG4gICAgICAgICAgICBpZihpIDwgNSl7XHJcbiAgICAgICAgICAgICAgICB4ID0gLTI4NCArIDE0MippOyB5ID0gMjU5O1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKGkgPCA5KXtcclxuICAgICAgICAgICAgICAgIHggPSAyODQ7IHkgPSAyNTkgLSAoaS00KSoxNDI7XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2UgaWYoaSA8IDEzKXsgICAgXHJcbiAgICAgICAgICAgICAgICB4ID0gMjg0IC0gKGktOCkqMTQyOyB5ID0gLTMwOTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgZWxzZSBpZihpIDwgMTYpe1xyXG4gICAgICAgICAgICAgICAgeCA9IC0yODQ7IHkgPSAtMzA5ICsgKGktMTIpKjE0MjtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICAgICAgYmxvY2suc2V0UG9zaXRpb24oeCx5KTtcclxuICAgICAgICAgICAgdGhpcy5vdXRzaWRlX0FycmF5LnB1c2goYmxvY2spO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmb3IobGV0IGo9MzsgajwxMjsgaisrKXtcclxuICAgICAgICAgICAgbGV0IGJsb2NrID0gY2MuaW5zdGFudGlhdGUodGhpcy5rdWFuZzJfUHJlZmFiKTtcclxuICAgICAgICAgICAgYmxvY2suZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2V0SWQoaik7XHJcbiAgICAgICAgICAgIGJsb2NrLnBhcmVudCA9IHRoaXMuQmxvY2suZ2V0Q2hpbGRCeU5hbWUoXCJpbnNpZGVcIik7XHJcbiAgICAgICAgICAgIGJsb2NrLnNldFBvc2l0aW9uKC0xMzIraiUzKjEzMiwyMzktcGFyc2VJbnQoai8zICsgXCJcIikqMTMyKTtcclxuICAgICAgICAgICAgdGhpcy5pbnNpZGVfQXJyYXkucHVzaChibG9jayk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8v5Yib5bu65YWz5Y2hXHJcbiAgICBjcmVhdGVDdXN0b20oKXtcclxuICAgICAgICAvL+WIneWni+WMluWFs+WNoemFjee9ruaVsOaNrlxyXG4gICAgICAgIHRoaXMubGV2ZWwgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWw7XHJcbiAgICAgICAgdGhpcy5MZXZlbExhYmVsLnN0cmluZyA9ICh0aGlzLmxldmVsKzEpK1wiXCI7XHJcbiAgICAgICAgdGhpcy5jb25maWcgPSBjYy5meC5HYW1lQ29uZmlnLkxFVkVMX0lORk9bdGhpcy5sZXZlbF07XHJcbiAgICAgICAgaWYodGhpcy5sZXZlbCA9PSA0ICYmIHRoaXMuZ3VpZGVfTGV2ZWwgPT0gMikge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZyA9IGNjLmZ4LkdhbWVDb25maWcuTEVWRUxfSU5GT1s2XTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5wYXNzID0gZmFsc2U7XHJcbiAgICAgICAgLy/mlL7mraPnoa7nrZTmoYjlkozplJnor6/nrZTmoYhcclxuICAgICAgICB0aGlzLmFuc3dlckluc2lkZVRleHR1cmUgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMTQgKyAxKTtcclxuICAgICAgICAvL+WGheWciOmUmeivr+etlOahiOmaj+aculxyXG4gICAgICAgIHRoaXMuaW5zaWRlVGV4dHVyZSA9IFtdO1xyXG4gICAgICAgIHRoaXMub3V0c2lkZVRleHR1cmUgPSBbXTtcclxuICAgICAgICBmb3IobGV0IGs9MDsgazwxNDsgaysrKXtcclxuICAgICAgICAgICAgaWYoKGsrMSkgIT0gdGhpcy5hbnN3ZXJJbnNpZGVUZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zaWRlVGV4dHVyZS5wdXNoKGsrMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1ZmZsZUFycmF5KHRoaXMuaW5zaWRlVGV4dHVyZSk7XHJcbiAgICAgICAgdGhpcy5hbnN3ZXJPdXRzaWRlVGV4dHVyZSA9IHRoaXMuaW5zaWRlVGV4dHVyZVsxMV07XHJcblxyXG4gICAgICAgIC8v5YiG6YWN5q2j56Gu562U5qGI5ZKM6ZSZ6K+v562U5qGI5L2N572uXHJcbiAgICAgICAgaWYodGhpcy5jb25maWdbXCJpbnNpZGVcIl0gPiAwKXtcclxuICAgICAgICAgICAgdGhpcy5yZXN1bHQgKz0gMTtcclxuICAgICAgICAgICAgbGV0IHJhbmRvbSA9IE1hdGgucmFuZG9tKCkqMTAwO1xyXG4gICAgICAgICAgICBsZXQgYXJyYXlUZW1wID0gWzAsMSwyLDMsNSw2LDcsOF07XHJcbiAgIFxyXG4gICAgICAgICAgICBpZih0aGlzLmNvbmZpZ1tcImluc2lkZVR5cGVcIl0gPT0gMSl7XHJcbiAgICAgICAgICAgICAgICBpZihyYW5kb20gPj0gNTApIHRoaXMuaW5zaWRlID0gIFswLDEsMl07XHJcbiAgICAgICAgICAgICAgICBlbHNlIHRoaXMuaW5zaWRlID0gWzYsNyw4XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmKHRoaXMuY29uZmlnW1wiaW5zaWRlVHlwZVwiXSA9PSAyKXtcclxuICAgICAgICAgICAgICAgIGlmKHJhbmRvbSA+PSA1MCkgdGhpcy5pbnNpZGUgPSAgWzAsMyw2XTtcclxuICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5pbnNpZGUgPSBbMiw1LDhdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc2lkZSA9IGNjLmZ4LkdhbWVUb29sLnNodWZmbGVBcnJheShhcnJheVRlbXApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnNpZGUuc3BsaWNlKHRoaXMuY29uZmlnW1wiaW5zaWRlXCJdLHRoaXMuaW5zaWRlLmxlbmd0aC10aGlzLmNvbmZpZ1tcImluc2lkZVwiXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5hbnN3ZXJJbnNpZGUgPSB0aGlzLmluc2lkZVtNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqdGhpcy5pbnNpZGUubGVuZ3RoKV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8v5YiG6YWN5aSW5ZyI5q2j56Gu562U5qGI5ZKM6ZSZ6K+v562U5qGI5L2N572uXHJcbiAgICAgICAgaWYodGhpcy5jb25maWdbXCJvdXRzaWRlXCJdID4gMCl7XHJcbiAgICAgICAgICAgIHRoaXMucmVzdWx0ICs9IDE7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnW1wib3V0c2lkZVR5cGVcIl0gPT0gMSl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm91dHNpZGUgPSBbMSwyLDMsNSw2LDcsOSwxMCwxMSwxMywxNCwxNV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZih0aGlzLmNvbmZpZ1tcIm91dHNpZGVUeXBlXCJdID09IDIpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdXRzaWRlID0gWzAsNCw4LDEyXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdXRzaWRlID0gWzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTVdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnNodWZmbGVBcnJheSh0aGlzLm91dHNpZGUpO1xyXG4gICAgICAgICAgICB0aGlzLmFuc3dlck91dHNpZGUgPSB0aGlzLm91dHNpZGVbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKnRoaXMub3V0c2lkZS5sZW5ndGgpXTtcclxuICAgICAgICAgICAgaWYodGhpcy5jb25maWdbXCJvdXRzaWRlXCJdID09IDIpe1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBqPTA7IGo8MTU7IGorKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vdXRzaWRlVGV4dHVyZS5wdXNoKHRoaXMuaW5zaWRlVGV4dHVyZVszXSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZih0aGlzLmNvbmZpZ1tcIm91dHNpZGVcIl0gPT0gMyl7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm91dHNpZGVUZXh0dXJlID0gW3RoaXMuaW5zaWRlVGV4dHVyZVs1XSx0aGlzLmluc2lkZVRleHR1cmVbNl0sdGhpcy5pbnNpZGVUZXh0dXJlWzVdLHRoaXMuaW5zaWRlVGV4dHVyZVs2XSx0aGlzLmluc2lkZVRleHR1cmVbNV1dO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBqPTA7IGo8MTA7IGorKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJhbmRvbVRlbXAgPSBNYXRoLnJhbmRvbSgpKjEwMDtcclxuICAgICAgICAgICAgICAgICAgICBpZihyYW5kb21UZW1wPjUwKSB0aGlzLm91dHNpZGVUZXh0dXJlLnB1c2godGhpcy5pbnNpZGVUZXh0dXJlWzVdKTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHRoaXMub3V0c2lkZVRleHR1cmUucHVzaCh0aGlzLmluc2lkZVRleHR1cmVbNl0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2h1ZmZsZUFycmF5KHRoaXMub3V0c2lkZVRleHR1cmUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2UgaWYodGhpcy5jb25maWdbXCJvdXRzaWRlXCJdID09IDQpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdXRzaWRlVGV4dHVyZSA9IFt0aGlzLmluc2lkZVRleHR1cmVbMl0sdGhpcy5pbnNpZGVUZXh0dXJlWzRdLHRoaXMuaW5zaWRlVGV4dHVyZVs2XSxcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zaWRlVGV4dHVyZVsyXSx0aGlzLmluc2lkZVRleHR1cmVbNF0sdGhpcy5pbnNpZGVUZXh0dXJlWzZdXTtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaj0wOyBqPDk7IGorKyl7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJhbmRvbVRlbXAgPSBNYXRoLnJhbmRvbSgpKjEwMDtcclxuICAgICAgICAgICAgICAgICAgICBpZihyYW5kb21UZW1wPDMzKSB0aGlzLm91dHNpZGVUZXh0dXJlLnB1c2godGhpcy5pbnNpZGVUZXh0dXJlWzJdKTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmKHJhbmRvbVRlbXA8NjYpIHRoaXMub3V0c2lkZVRleHR1cmUucHVzaCh0aGlzLmluc2lkZVRleHR1cmVbNF0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgdGhpcy5vdXRzaWRlVGV4dHVyZS5wdXNoKHRoaXMuaW5zaWRlVGV4dHVyZVs2XSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zaHVmZmxlQXJyYXkodGhpcy5vdXRzaWRlVGV4dHVyZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ydW5CbG9jaygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8v5Z2X5omn6KGM5Zu+54mH5Ye6546w5raI5aSx5Yqo55S7XHJcbiAgICBydW5CbG9jaygpe1xyXG4gICAgICAgIGlmKHRoaXMuY29uZmlnW1wiaW5zaWRlXCJdID4gMCl7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zaWRlX0FycmF5WzRdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmFuc3dlclNob3codGhpcy5hbnN3ZXJJbnNpZGVUZXh0dXJlKTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgaW5zaWRlTnVtYmVyID0gMDtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuaW5zaWRlLmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5zaWRlW2ldID09IHRoaXMuYW5zd2VySW5zaWRlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2lkZV9BcnJheVt0aGlzLmluc2lkZVtpXV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2hvdyh0cnVlLHRydWUsdGhpcy5hbnN3ZXJJbnNpZGVUZXh0dXJlKTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2lkZV9BcnJheVt0aGlzLmluc2lkZVtpXV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2hvdyhmYWxzZSx0cnVlLHRoaXMuaW5zaWRlVGV4dHVyZVtpbnNpZGVOdW1iZXJdKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5zaWRlTnVtYmVyICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCB0aGlzLmNvbmZpZ1tcInNob3dUaW1lXCJdKjEwMDApO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYodGhpcy5jb25maWdbXCJvdXRzaWRlXCJdID4gMCl7XHJcbiAgICAgICAgICAgIHRoaXMub3V0c2lkZV9BcnJheVt0aGlzLmFuc3dlck91dHNpZGVdLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmFuc3dlclNob3codGhpcy5hbnN3ZXJPdXRzaWRlVGV4dHVyZSk7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnW1wib3V0c2lkZVwiXSA+IDEpe1xyXG4gICAgICAgICAgICAgICAgbGV0IG91dHNpZGVOdW1iZXIgPSAwO1xyXG4gICAgICAgICAgICAgICAgZm9yKGxldCBpPTA7IGk8dGhpcy5vdXRzaWRlX0FycmF5Lmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKGkgPT0gdGhpcy5hbnN3ZXJPdXRzaWRlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm91dHNpZGVfQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2hvdyh0cnVlLGZhbHNlLHRoaXMuYW5zd2VyT3V0c2lkZVRleHR1cmUpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm91dHNpZGVfQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikuc2hvdyhmYWxzZSxmYWxzZSx0aGlzLm91dHNpZGVUZXh0dXJlW291dHNpZGVOdW1iZXJdKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0c2lkZU51bWJlciArPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBvdXRzaWRlTnVtYmVyID0gMDtcclxuICAgICAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMub3V0c2lkZV9BcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihpID09IHRoaXMuYW5zd2VyT3V0c2lkZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vdXRzaWRlX0FycmF5W2ldLmdldENvbXBvbmVudChcIkJsb2NrXCIpLmxvY2tTaG93KHRydWUsZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm91dHNpZGVfQXJyYXlbaV0uZ2V0Q29tcG9uZW50KFwiQmxvY2tcIikubG9ja1Nob3coZmFsc2UsZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRzaWRlTnVtYmVyICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCB0aGlzLmNvbmZpZ1tcInNob3dUaW1lXCJdKjEwMDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYoIXRoaXMuZ3VpZGVfU3RhdGUpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydFRpbWUgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjaGVkdWxlKHRoaXMudXBkYXRlQ291bnREb3duVGltZSwxKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgfSwgdGhpcy5jb25maWdbXCJzaG93VGltZVwiXSoxMDAwKTtcclxuICAgIH1cclxuXHJcbiAgICAvL+ato+ehrlxyXG4gICAgb3BlblJlc3VsdChyZXN1bHQpe1xyXG4gICAgICAgIHRoaXMucmVzdWx0IC09IDE7XHJcbiAgICAgICAgLy/pnZ7lvJXlr7znirbmgIFcclxuICAgICAgICBpZighdGhpcy5ndWlkZV9TdGF0ZSl7XHJcbiAgICAgICAgICAgIHRoaXMuZmxpcEJsb2NrKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIGlmKHRoaXMucmVzdWx0ID09IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMudXBkYXRlQ291bnREb3duVGltZSk7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldERhdGEocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsIDwgY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPLmxlbmd0aC0xKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsICs9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LCAyMDAwKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAvL+W8leWvvOeKtuaAgeS4i1xyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKHJlc3VsdC5yZXN1bHQpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mbGlwQmxvY2socmVzdWx0KTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMubGV2ZWwgPT0gNCAmJiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ3VpZGVfTGV2ZWwgPT0gMil7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkdhbWVTY2VuZVwiKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB0aGlzLm9wZW5HdWlkZSh0cnVlKTtcclxuICAgICAgICAgICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgXHJcbiAgICB9XHJcblxyXG4gICAgLy/nv7vovazlvaLnirblj5jmiJDpl67lj7dcclxuICAgIGZsaXBCbG9jayhyZXN1bHQpe1xyXG4gICAgICAgIGlmKHJlc3VsdC50eXBlKXtcclxuICAgICAgICAgICAgbGV0IHBvcyA9IHRoaXMuY2hhbmdlUG9zKHRydWUscmVzdWx0LmlkKTtcclxuICAgICAgICAgICAgaWYoIXRoaXMuZ3VpZGVfU3RhdGUpIGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfREFUQS51c2VyQ2hvaWNlSW5uZXIucHVzaChwb3MueCxwb3MueSk7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMuaW5zaWRlLmxlbmd0aDtpKyspe1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbnNpZGVbaV0gPT0gdGhpcy5hbnN3ZXJJbnNpZGUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zaWRlX0FycmF5WzRdLmdldENoaWxkQnlOYW1lKFwidGV4dHVyZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zaWRlX0FycmF5WzRdLmdldENoaWxkQnlOYW1lKFwidGV4dHVyZVwiKS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zaWRlX0FycmF5W3RoaXMuaW5zaWRlW2ldXS5nZXRDaGlsZEJ5TmFtZShcInllc1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBwb3MgPSB0aGlzLmNoYW5nZVBvcyh0cnVlLHRoaXMuaW5zaWRlX0FycmF5W3RoaXMuaW5zaWRlW2ldXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5faWROdW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLmd1aWRlX1N0YXRlKSBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEucmlnaHRDaG9pY2VJbm5lci5wdXNoKHBvcy54LHBvcy55KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zaWRlX0FycmF5W3RoaXMuaW5zaWRlW2ldXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5fdG91Y2ggPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihyZXN1bHQucmVzdWx0KXtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRkU2NvcmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBsZXQgcG9zID0gdGhpcy5jaGFuZ2VQb3MoZmFsc2UscmVzdWx0LmlkKTtcclxuICAgICAgICAgICAgaWYoIXRoaXMuZ3VpZGVfU3RhdGUpIGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfREFUQS51c2VyQ2hvaWNlT3V0ZXIucHVzaChwb3MueCxwb3MueSk7XHJcbiAgICAgICAgICAgIGZvcihsZXQgaT0wOyBpPHRoaXMub3V0c2lkZV9BcnJheS5sZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgICAgIHRoaXMub3V0c2lkZV9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5sb2NrSGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdXRzaWRlX0FycmF5W2ldLmdldENoaWxkQnlOYW1lKFwidGV4dHVyZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYoaSA9PSB0aGlzLmFuc3dlck91dHNpZGUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3V0c2lkZV9BcnJheVtpXS5nZXRDaGlsZEJ5TmFtZShcInllc1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3V0c2lkZV9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5zaG93KHRydWUsZmFsc2UsdGhpcy5hbnN3ZXJPdXRzaWRlVGV4dHVyZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHBvcyA9IHRoaXMuY2hhbmdlUG9zKGZhbHNlLHRoaXMub3V0c2lkZV9BcnJheVtpXS5nZXRDb21wb25lbnQoXCJCbG9ja1wiKS5faWROdW1iZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmKCF0aGlzLmd1aWRlX1N0YXRlKSBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEucmlnaHRDaG9pY2VPdXRlci5wdXNoKHBvcy54LHBvcy55KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZihyZXN1bHQucmVzdWx0KXtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRkU2NvcmUoKTtcclxuICAgICAgICAgICAgfSBcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgLy/liqDliIYg5Yqg6L+b5bqm5p2h77yM5Yqg5pif5pifXHJcbiAgICBhZGRTY29yZSgpe1xyXG4gICAgICAgIGlmKCF0aGlzLmd1aWRlX1N0YXRlKXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnNjb3JlICs9IDE7XHJcbiAgICAgICAgICAgIHZhciBwcm9ncmVzcyA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5zY29yZS8yNDtcclxuICAgICAgICAgICAgaWYocHJvZ3Jlc3MgPj0gMSkgcHJvZ3Jlc3MgPSAxO1xyXG4gICAgICAgICAgICBjYy50d2Vlbih0aGlzLnByb2dyZXNzKVxyXG4gICAgICAgICAgICAudG8oMC4yLHtmaWxsUmFuZ2U6cHJvZ3Jlc3N9KVxyXG4gICAgICAgICAgICAuY2FsbCgoKT0+e1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5Ub3AuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyMVwiKS5hY3RpdmUgPT0gZmFsc2UgJiYgcHJvZ3Jlc3M+PSAwLjIpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuVG9wLmdldENoaWxkQnlOYW1lKFwic3RhcjFcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlRvcC5nZXRDaGlsZEJ5TmFtZShcInN0YXIxXCIpLm9wYWNpdHkgPSAwOyB0aGlzLlRvcC5nZXRDaGlsZEJ5TmFtZShcInN0YXIxXCIpLnNjYWxlID0gMC4xO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuVG9wLmdldENoaWxkQnlOYW1lKFwic3RhcjFcIikpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMyx7b3BhY2l0eToyNTUsc2NhbGU6MS4xfSlcclxuICAgICAgICAgICAgICAgICAgICAudG8oMC4xLHtvcGFjaXR5OjI1NSxzY2FsZTowLjl9KVxyXG4gICAgICAgICAgICAgICAgICAgIC50bygwLjEse29wYWNpdHk6MjU1LHNjYWxlOjF9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5Ub3AuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyMlwiKS5hY3RpdmUgPT0gZmFsc2UgJiYgcHJvZ3Jlc3M+PSAwLjUpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuVG9wLmdldENoaWxkQnlOYW1lKFwic3RhcjJcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlRvcC5nZXRDaGlsZEJ5TmFtZShcInN0YXIyXCIpLm9wYWNpdHkgPSAwOyB0aGlzLlRvcC5nZXRDaGlsZEJ5TmFtZShcInN0YXIyXCIpLnNjYWxlID0gMC4xO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuVG9wLmdldENoaWxkQnlOYW1lKFwic3RhcjJcIikpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMyx7b3BhY2l0eToyNTUsc2NhbGU6MS4xfSlcclxuICAgICAgICAgICAgICAgICAgICAudG8oMC4xLHtvcGFjaXR5OjI1NSxzY2FsZTowLjl9KVxyXG4gICAgICAgICAgICAgICAgICAgIC50bygwLjEse29wYWNpdHk6MjU1LHNjYWxlOjF9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5Ub3AuZ2V0Q2hpbGRCeU5hbWUoXCJzdGFyM1wiKS5hY3RpdmUgPT0gZmFsc2UgJiYgcHJvZ3Jlc3M+PSAwLjgpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuVG9wLmdldENoaWxkQnlOYW1lKFwic3RhcjNcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLlRvcC5nZXRDaGlsZEJ5TmFtZShcInN0YXIzXCIpLm9wYWNpdHkgPSAwOyB0aGlzLlRvcC5nZXRDaGlsZEJ5TmFtZShcInN0YXIzXCIpLnNjYWxlID0gMC4xO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnR3ZWVuKHRoaXMuVG9wLmdldENoaWxkQnlOYW1lKFwic3RhcjNcIikpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRvKDAuMyx7b3BhY2l0eToyNTUsc2NhbGU6MS4xfSlcclxuICAgICAgICAgICAgICAgICAgICAudG8oMC4xLHtvcGFjaXR5OjI1NSxzY2FsZTowLjl9KVxyXG4gICAgICAgICAgICAgICAgICAgIC50bygwLjEse29wYWNpdHk6MjU1LHNjYWxlOjF9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3RhcnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/ov5Tlm57pppbpobVcclxuICAgIGJhY2tTY2VuZSgpe1xyXG4gICAgICAgIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkxvYWRTY2VuZVwiKTtcclxuICAgIH1cclxuICAgIC8v6YeN5paw5byA5aeLXHJcbiAgICByZVN0YXJ0KCl7XHJcblxyXG4gICAgfVxyXG4gICAgLy/ojrflj5bml7bpl7TmiLNcclxuICAgIGdldFRpbWUoKXtcclxuICAgICAgICB2YXIgdGltZXN0YW1wID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgcmV0dXJuIHRpbWVzdGFtcDtcclxuICAgIH1cclxuICAgIC8v6I636IOcXHJcbiAgICBwYXNzTGV2ZWwoKXtcclxuXHJcbiAgICB9XHJcbiAgICAvL+Wksei0pVxyXG4gICAgbG9zZUxldmVsKHR5cGUpe1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZVBvcyh0eXBlLG51bSl7XHJcbiAgICAgICAgdmFyIHggPSAwOyB2YXIgeSA9IDA7XHJcbiAgICAgICAgLy/lhoXpg6hcclxuICAgICAgICBpZih0eXBlKXtcclxuICAgICAgICAgICAgeSA9IHBhcnNlSW50KG51bS8zK1wiXCIpO1xyXG4gICAgICAgICAgICB4ID0gbnVtJTM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8v5aSW6YOoXHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgaWYobnVtIDwgNSl7XHJcbiAgICAgICAgICAgICAgICB5PTA7IHg9bnVtO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKG51bSA8IDkpe1xyXG4gICAgICAgICAgICAgICAgeD01OyB5PW51bS00O1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKG51bSA8IDEzKXsgICAgXHJcbiAgICAgICAgICAgICAgICB5PTQ7IHg9MTItbnVtO1xyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICBlbHNlIGlmKG51bSA8IDE2KXtcclxuICAgICAgICAgICAgICAgIHg9MDsgeT0xNi1udW07XHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBqZyA9IGNjLnYyKHgseSk7XHJcbiAgICAgICAgcmV0dXJuIGpnO1xyXG4gICAgfVxyXG4gICAgLy/lpoLmnpzmmK/lgJLorqHml7Yg6LCD55So5q2k5pa55rOVXHJcbiAgICB1cGRhdGVDb3VudERvd25UaW1lICgpIHtcclxuICAgICAgICBpZiAodGhpcy5jb3VudFRpbWUgPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnRUaW1lIC09IDE7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuVGltZUxhYmVsLnN0cmluZyA9dGhpcy5jb3VudFRpbWUgKyBcIlwiO1xyXG4gICAgICAgICAgICB0aGlzLlRpbWVMYWJlbC5zdHJpbmcgPSAgY2MuZnguR2FtZVRvb2wuZ2V0VGltZU1hcmdpbih0aGlzLmNvdW50VGltZSk7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY291bnRUaW1lIDw9IDApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy51bnNjaGVkdWxlKHRoaXMudXBkYXRlQ291bnREb3duVGltZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJNYXNrXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHtcInJlc3VsdFwiOmZhbHNlLFwidHlwZVwiOnRydWUsXCJpZFwiOm51bGx9O1xyXG4gICAgICAgICAgICAgICAgaWYodGhpcy5jb25maWdbXCJpbnNpZGVcIl0gPiAwKSBjYy5meC5Ob3RpZmljYXRpb25zLmVtaXQoXCJyZXN1bHRcIixkYXRhKTtcclxuICAgICAgICAgICAgICAgIGxldCBkYXRhMiA9IHtcInJlc3VsdFwiOmZhbHNlLFwidHlwZVwiOmZhbHNlLFwiaWRcIjpudWxsfTtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMuY29uZmlnW1wib3V0c2lkZVwiXSA+IDApIGNjLmZ4Lk5vdGlmaWNhdGlvbnMuZW1pdChcInJlc3VsdFwiLGRhdGEyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8v5LiK5Lyg5q+P5qyh5pON5L2c5pWw5o2uXHJcbiAgICBzZXREYXRhKHJlc3VsdCl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5DTElDS19EQVRBLnN1Y2Nlc3MgPSByZXN1bHQucmVzdWx0O1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfREFUQS5yb3VuZCA9IChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8ubGV2ZWwgKyAxKTtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEuZHVyYXRpb24gPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHRoaXMuc3RhcnRUaW1lIC0gMTAwMDtcclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRHYW1lRGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRW5hYmxlICgpIHtcclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLm9uKFwicmVzdWx0XCIsIHRoaXMub3BlblJlc3VsdCwgdGhpcyk7XHJcblxyXG4gICAgfVxyXG4gICAgb25EaXNhYmxlICgpIHtcclxuICAgICAgICBjYy5meC5Ob3RpZmljYXRpb25zLm9mZihcInJlc3VsdFwiLCB0aGlzLm9wZW5SZXN1bHQsIHRoaXMpO1xyXG4gICAgfVxyXG4gICAgdXBkYXRlIChkdCkge1xyXG5cclxuICAgIH1cclxufVxyXG4iXX0= \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/GameOver.js b/temp/quick-scripts/dst/assets/Script/GameOver.js new file mode 100644 index 0000000..8438762 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/GameOver.js @@ -0,0 +1,163 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/GameOver.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '805c6nf399HWZeuWnNB9CTH', 'GameOver'); +// Script/GameOver.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.count = null; + _this.time = null; + _this.selfNode = null; + _this.one = null; + _this.two = null; + _this.three = null; + _this.four = null; + _this.five = null; + return _this; + } + // onLoad () {} + NewClass.prototype.start = function () { + this.init(); + }; + //初始化数据 + NewClass.prototype.init = function () { + this.listData = []; + this.selfData = null; + // this.getRank(); + }; + //打开排行榜 + NewClass.prototype.openRank = function () { + // alert("跳转"); + cc.director.loadScene("LoadScene"); + }; + //重新开始玩 + NewClass.prototype.again = function () { + // let levelTemp = cc.fx.GameConfig.GM_INFO.level; + cc.fx.GameConfig.GM_INFO_init(); + // if(cc.fx.GameConfig.GM_INFO.isCustom){ + // cc.fx.GameConfig.GM_INFO.level = levelTemp; + // } + cc.director.loadScene("GameScene"); + }; + //获取排行榜 + NewClass.prototype.getRank = function () { + var _this = this; + //获取排行榜数据 所需数据量 + var dataFile = { + length: 5 + }; + cc.fx.GameTool.getRank(dataFile, function (data) { return _this.getRankData(data); }); + }; + //设置排行信息 + NewClass.prototype.getRankData = function (data) { + if (data) { + cc.fx.GameTool.getRankData(data, this, 4); + cc.fx.GameTool.setPic(this.selfNode.getChildByName("pic").getChildByName("icon"), this.selfData.pic); + for (var i = 0; i <= 4; i++) { + this.setRank(i, this.listData[i]); + } + } + }; + //根据内容填充排行榜 + NewClass.prototype.setRank = function (num, data) { + var hitNode = null; + if (num == 0) { + hitNode = this.one; + } + else if (num == 1) { + hitNode = this.two; + } + else if (num == 2) { + hitNode = this.three; + } + else if (num == 3) { + hitNode = this.four; + } + else if (num == 4) { + hitNode = this.five; + } + if (hitNode) { + hitNode.active = true; + cc.fx.GameTool.subName(data.nickName, 4); + hitNode.getChildByName("name").getComponent(cc.Label).string = data.nickName; + hitNode.getChildByName("total").getComponent(cc.Label).string = data.totalSunCount; + cc.fx.GameTool.setPic(hitNode.getChildByName("pic").getChildByName("icon"), data.pic); + } + }; + __decorate([ + property(cc.Label) + ], NewClass.prototype, "count", void 0); + __decorate([ + property(cc.Label) + ], NewClass.prototype, "time", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "selfNode", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "one", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "two", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "three", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "four", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "five", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxHYW1lT3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDTSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUcxQztJQUFzQyw0QkFBWTtJQUFsRDtRQUFBLHFFQThGQztRQTVGRyxXQUFLLEdBQWEsSUFBSSxDQUFDO1FBRXZCLFVBQUksR0FBYSxJQUFJLENBQUM7UUFFdEIsY0FBUSxHQUFZLElBQUksQ0FBQztRQUV6QixTQUFHLEdBQVksSUFBSSxDQUFDO1FBRXBCLFNBQUcsR0FBWSxJQUFJLENBQUM7UUFFcEIsV0FBSyxHQUFZLElBQUksQ0FBQztRQUV0QixVQUFJLEdBQVksSUFBSSxDQUFDO1FBRXJCLFVBQUksR0FBWSxJQUFJLENBQUM7O0lBOEV6QixDQUFDO0lBekVHLGVBQWU7SUFDZix3QkFBSyxHQUFMO1FBQ0ksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFHRCxPQUFPO0lBQ1AsdUJBQUksR0FBSjtRQUNJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLGtCQUFrQjtJQUN0QixDQUFDO0lBQ0QsT0FBTztJQUNQLDJCQUFRLEdBQVI7UUFDSSxlQUFlO1FBQ2YsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELE9BQU87SUFDUCx3QkFBSyxHQUFMO1FBQ0ksa0RBQWtEO1FBQ2xELEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2hDLHlDQUF5QztRQUN6QyxrREFBa0Q7UUFDbEQsSUFBSTtRQUNKLEVBQUUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFD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Q0FBQyxJQUFJLENBQUM7eUNBQ0U7SUFFcEI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzt5Q0FDRTtJQUVwQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDOzJDQUNJO0lBRXRCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7MENBQ0c7SUFFckI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzswQ0FDRztJQWhCSixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBOEY1QjtJQUFELGVBQUM7Q0E5RkQsQUE4RkMsQ0E5RnFDLEVBQUUsQ0FBQyxTQUFTLEdBOEZqRDtrQkE5Rm9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcbiAgICBAcHJvcGVydHkoY2MuTGFiZWwpXHJcbiAgICBjb3VudDogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLkxhYmVsKVxyXG4gICAgdGltZTogY2MuTGFiZWwgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLk5vZGUpXHJcbiAgICBzZWxmTm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIG9uZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIHR3bzogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIHRocmVlOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKVxyXG4gICAgZm91cjogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGZpdmU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgbGlzdERhdGE6IGFueTtcclxuICAgIHNlbGZEYXRhOiBhbnk7XHJcbiAgICBlZmZpY2llbmN5OiBudW1iZXI7XHJcbiAgICBsZXZlbDogbnVtYmVyO1xyXG4gICAgLy8gb25Mb2FkICgpIHt9XHJcbiAgICBzdGFydCAoKSB7XHJcbiAgICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8v5Yid5aeL5YyW5pWw5o2uXHJcbiAgICBpbml0KCl7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YSA9IFtdO1xyXG4gICAgICAgIHRoaXMuc2VsZkRhdGEgPSBudWxsO1xyXG4gICAgICAgIC8vIHRoaXMuZ2V0UmFuaygpO1xyXG4gICAgfVxyXG4gICAgLy/miZPlvIDmjpLooYzmppxcclxuICAgIG9wZW5SYW5rKCl7XHJcbiAgICAgICAgLy8gYWxlcnQoXCLot7PovaxcIik7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiTG9hZFNjZW5lXCIpO1xyXG4gICAgfVxyXG4gICAgLy/ph43mlrDlvIDlp4vnjqlcclxuICAgIGFnYWluKCl7XHJcbiAgICAgICAgLy8gbGV0IGxldmVsVGVtcCA9IGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbDtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk9faW5pdCgpO1xyXG4gICAgICAgIC8vIGlmKGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5pc0N1c3RvbSl7XHJcbiAgICAgICAgLy8gICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IGxldmVsVGVtcDtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG5cclxuICAgIH1cclxuICAgIC8v6I635Y+W5o6S6KGM5qacXHJcbiAgICBnZXRSYW5rKCl7XHJcbiAgICAgICAgLy/ojrflj5bmjpLooYzmppzmlbDmja4gIOaJgOmcgOaVsOaNrumHj1xyXG4gICAgICAgIGxldCBkYXRhRmlsZSA9IHtcclxuICAgICAgICAgICAgbGVuZ3RoOjVcclxuICAgICAgICB9XHJcbiAgICAgICAgIGNjLmZ4LkdhbWVUb29sLmdldFJhbmsoZGF0YUZpbGUsZGF0YSA9PnRoaXMuZ2V0UmFua0RhdGEoZGF0YSkpO1xyXG4gICAgfVxyXG4gICAgLy/orr7nva7mjpLooYzkv6Hmga9cclxuICAgIGdldFJhbmtEYXRhKGRhdGEpe1xyXG4gICAgICAgIGlmKGRhdGEpe1xyXG4gICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0UmFua0RhdGEoZGF0YSx0aGlzLDQpO1xyXG4gICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0UGljKHRoaXMuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLHRoaXMuc2VsZkRhdGEucGljKTtcclxuICAgICAgICAgICAgZm9yKGxldCBpPTA7aTw9NDtpKyspe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRSYW5rKGksdGhpcy5saXN0RGF0YVtpXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+agueaNruWGheWuueWhq+WFheaOkuihjOamnFxyXG4gICAgc2V0UmFuayhudW0sZGF0YSl7XHJcbiAgICAgICAgdmFyIGhpdE5vZGUgPSBudWxsO1xyXG4gICAgICAgIGlmKG51bSA9PSAwKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMub25lO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSAxKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMudHdvO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSAyKXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMudGhyZWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYobnVtID09IDMpe1xyXG4gICAgICAgICAgICBoaXROb2RlID0gdGhpcy5mb3VyO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKG51bSA9PSA0KXtcclxuICAgICAgICAgICAgaGl0Tm9kZSA9IHRoaXMuZml2ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYoaGl0Tm9kZSl7XHJcbiAgICAgICAgICAgIGhpdE5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnN1Yk5hbWUoZGF0YS5uaWNrTmFtZSw0KTtcclxuICAgICAgICAgICAgaGl0Tm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLm5pY2tOYW1lO1xyXG4gICAgICAgICAgICBoaXROb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSBkYXRhLnRvdGFsU3VuQ291bnQ7XHJcbiAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5zZXRQaWMoaGl0Tm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksZGF0YS5waWMpO1xyXG4gICAgICAgIH1cclxuICAgIH0gICBcclxuXHJcblxyXG59XHJcbiJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/Load.js b/temp/quick-scripts/dst/assets/Script/Load.js new file mode 100644 index 0000000..163f7f1 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/Load.js @@ -0,0 +1,107 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Load.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '454adgphRpA6oq5lB6Cg1fK', 'Load'); +// Script/Load.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.localTest = false; + _this.clientTestVersion = "1.0.1"; + _this.testVersion = null; + return _this; + } + NewClass.prototype.start = function () { + cc.macro.ENABLE_MULTI_TOUCH = false; + window.initMgr(); + cc.fx.GameConfig.init(this.localTest); + // cc.fx.AudioManager.Instance.init(); + // this.testVersion.string = this.clientTestVersion; + }; + //开始游戏,跳转至引导页面 + NewClass.prototype.startGame = function () { + cc.fx.GameConfig.GM_INFO.isCustom = false; + cc.director.loadScene("GameScene"); + // cc.director.loadScene("GuideScene"); + }; + //备用,用来测试跳转 指定关卡 + NewClass.prototype.clickBtn = function (event, data) { + cc.fx.GameConfig.GM_INFO.level = parseInt(data); + cc.fx.GameConfig.GM_INFO.isCustom = true; + cc.director.loadScene("GameScene"); + }; + //打开排行榜 + NewClass.prototype.openRank = function () { + cc.director.loadScene("RankScene"); + }; + NewClass.prototype.showCustom = function () { + if (this.node.getChildByName("Custom").active) { + this.node.getChildByName("Custom").active = false; + } + else { + this.node.getChildByName("Custom").active = true; + } + }; + NewClass.prototype.update = function (dt) { + }; + __decorate([ + property(false) + ], NewClass.prototype, "localTest", void 0); + __decorate([ + property("") + ], NewClass.prototype, "clientTestVersion", void 0); + __decorate([ + property(cc.Label) + ], NewClass.prototype, "testVersion", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxMb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNNLElBQUEsS0FBd0MsRUFBRSxDQUFDLFVBQVUsRUFBcEQsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFBLEVBQUUsZ0JBQWdCLHNCQUFpQixDQUFDO0FBRzVEO0lBQXNDLDRCQUFZO0lBQWxEO1FBQUEscUVBZ0RDO1FBN0NHLGVBQVMsR0FBWSxLQUFLLENBQUM7UUFHM0IsdUJBQWlCLEdBQVcsT0FBTyxDQUFDO1FBR3BDLGlCQUFXLEdBQWEsSUFBSSxDQUFDOztJQXVDakMsQ0FBQztJQXJDRyx3QkFBSyxHQUFMO1FBQ0ksRUFBRSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDcEMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEMsc0NBQXNDO1FBQ3RDLG9EQUFvRDtJQUN4RCxDQUFDO0lBRUQsY0FBYztJQUNkLDRCQUFTLEdBQVQ7UUFDSSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQyx1Q0FBdUM7SUFDM0MsQ0FBQztJQUNELGdCQUFnQjtJQUNoQiwyQkFBUSxHQUFSLFVBQVMsS0FBSyxFQUFDLElBQUk7UUFDZixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUN6QyxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsT0FBTztJQUNQLDJCQUFRLEdBQVI7UUFDSSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsNkJBQVUsR0FBVjtRQUNJLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFDO1lBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDckQ7YUFDRztZQUNBLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7U0FDcEQ7SUFDTCxDQUFDO0lBRVMseUJBQU0sR0FBaEIsVUFBaUIsRUFBVTtJQUMzQixDQUFDO0lBNUNEO1FBREMsUUFBUSxDQUFDLEtBQUssQ0FBQzsrQ0FDVztJQUczQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUM7dURBQ3VCO0lBR3BDO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7aURBQ1U7SUFUWixRQUFRO1FBRDVCLE9BQU87T0FDYSxRQUFRLENBZ0Q1QjtJQUFELGVBQUM7Q0FoREQsQUFnREMsQ0FoRHFDLEVBQUUsQ0FBQyxTQUFTLEdBZ0RqRDtrQkFoRG9CLFFBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcclxuY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5LCByZXF1aXJlQ29tcG9uZW50fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOZXdDbGFzcyBleHRlbmRzIGNjLkNvbXBvbmVudCB7XHJcblxyXG4gICAgQHByb3BlcnR5KGZhbHNlKVxyXG4gICAgbG9jYWxUZXN0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQHByb3BlcnR5KFwiXCIpXHJcbiAgICBjbGllbnRUZXN0VmVyc2lvbjogc3RyaW5nID0gXCIxLjAuMVwiO1xyXG5cclxuICAgIEBwcm9wZXJ0eShjYy5MYWJlbClcclxuICAgIHRlc3RWZXJzaW9uOiBjYy5MYWJlbCA9IG51bGw7XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgICAgIGNjLm1hY3JvLkVOQUJMRV9NVUxUSV9UT1VDSCA9IGZhbHNlO1xyXG4gICAgICAgIHdpbmRvdy5pbml0TWdyKCk7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5pbml0KHRoaXMubG9jYWxUZXN0KTtcclxuICAgICAgICBcclxuICAgICAgICAvLyBjYy5meC5BdWRpb01hbmFnZXIuSW5zdGFuY2UuaW5pdCgpO1xyXG4gICAgICAgIC8vIHRoaXMudGVzdFZlcnNpb24uc3RyaW5nID0gdGhpcy5jbGllbnRUZXN0VmVyc2lvbjtcclxuICAgIH1cclxuXHJcbiAgICAvL+W8gOWni+a4uOaIj++8jOi3s+i9rOiHs+W8leWvvOmhtemdolxyXG4gICAgc3RhcnRHYW1lKCl7XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmlzQ3VzdG9tID0gZmFsc2U7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgICAgIC8vIGNjLmRpcmVjdG9yLmxvYWRTY2VuZShcIkd1aWRlU2NlbmVcIik7XHJcbiAgICB9XHJcbiAgICAvL+Wkh+eUqO+8jOeUqOadpea1i+ivlei3s+i9rCDmjIflrprlhbPljaFcclxuICAgIGNsaWNrQnRuKGV2ZW50LGRhdGEpe1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5sZXZlbCA9IHBhcnNlSW50KGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5pc0N1c3RvbSA9IHRydWU7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiR2FtZVNjZW5lXCIpO1xyXG4gICAgfSAgIFxyXG4gICAgLy/miZPlvIDmjpLooYzmppxcclxuICAgIG9wZW5SYW5rKCl7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiUmFua1NjZW5lXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dDdXN0b20oKXtcclxuICAgICAgICBpZih0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJDdXN0b21cIikuYWN0aXZlKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwiQ3VzdG9tXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJDdXN0b21cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIHByb3RlY3RlZCB1cGRhdGUoZHQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgfVxyXG59XHJcbiJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/RankManager.js b/temp/quick-scripts/dst/assets/Script/RankManager.js new file mode 100644 index 0000000..94f8b27 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/RankManager.js @@ -0,0 +1,189 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/RankManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'e74a999IDFOabyymZgXQIiy', 'RankManager'); +// Script/RankManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var List_1 = require("./module/RankList/List"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +//排行榜 +var RankManager = /** @class */ (function (_super) { + __extends(RankManager, _super); + function RankManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.Player = null; + _this.selfNode = null; + _this.phone = null; + return _this; + } + RankManager.prototype.onLoad = function () { + this.init(); + }; + //初始化数据 + RankManager.prototype.init = function () { + this.rankList = cc.find("ScrollView", this.node).getComponent(List_1.default); + this.Player.getChildByName("rank").active = false; + this.listData = []; + this.selfData = null; + this.rankNumber = 100; + this.rankTotal = 100; + this.selfNode.opacity = 0; + }; + RankManager.prototype.start = function () { + this.Player.active = false; + this.getRank(); + }; + //调用获取排行榜接口 + RankManager.prototype.getRank = function () { + var _this = this; + var dataFile = { + length: 100 + }; + cc.fx.GameTool.getRank(dataFile, function (data) { return _this.getRankData(data); }); + }; + //实际设置排行数据 + RankManager.prototype.getRankData = function (data) { + if (data) { + // console.log(data); + cc.fx.GameTool.getRankData(data, this, 6); + this.setPic(this.selfData.pic); + } + }; + //返回按钮 + RankManager.prototype.backClick = function () { + cc.director.loadScene("LoadScene"); + }; + //最上方用户动画 + RankManager.prototype.playerAction = function () { + var _this = this; + //-254 377 210 453 + this.Player.getChildByName("rank").active = false; + var time = 1; + this.tween = cc.tween(this.Player) + .to(2, { position: cc.v3(210, 453, 0) }) + .call(function () { + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; + }) + .start(); + time = (this.listData.length - this.rankNumber) / this.listData.length; + if (this.listData.length >= 99) { + if (this.rankNumber >= 99) { + time = (Math.random() * 49 + 1) / 100; + var matchId = cc.sys.localStorage.getItem("matchNumber"); + if (matchId == null || matchId == undefined) { + time = 0; + } + } + } + setTimeout(function () { + if (_this.tween) + _this.tween.stop(); + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; + }, time * 2000); + }; + //设置头像 处理的逻辑比较多,不用公共类的了 + RankManager.prototype.setPic = function (pic) { + var _this = this; + this.phone.node.parent.getChildByName("icon").active = false; + this.phone.node.active = false; + this.Player.active = true; + this.Player.opacity = 0; + this.Player.getChildByName("mask").getChildByName("icon").active = false; + this.Player.getChildByName("mask").getChildByName("phone").active = false; + fetch(pic) + .then(function (response) { + return response.headers.get('Content-Length'); + }) + .then(function (errNo) { + if (errNo == "5093") { + _this.phone.node.parent.getChildByName("icon").active = true; + _this.Player.getChildByName("mask").getChildByName("icon").active = true; + } + }) + .catch(function (error) { + console.error('Error fetching X-Info:', error); + }); + var self = this; + cc.assetManager.loadRemote(pic, { ext: '.png' }, function (err, texture) { + self.Player.opacity = 255; + if (texture) { + self.phone.node.active = true; + self.phone.spriteFrame = new cc.SpriteFrame(texture); + self.Player.getChildByName("mask").getChildByName("icon").active = false; + self.Player.getChildByName("mask").getChildByName("phone").active = true; + self.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite) + .spriteFrame = new cc.SpriteFrame(texture); + setTimeout(function () { + self.playerAction(); + }, 500); + } + else { + self.Player.getChildByName("mask").getChildByName("icon").active = true; + setTimeout(function () { + self.playerAction(); + }, 500); + } + }); + }; + __decorate([ + property(cc.Node) //用户上方头像 + ], RankManager.prototype, "Player", void 0); + __decorate([ + property(cc.Node) //用户最下方个人信息 + ], RankManager.prototype, "selfNode", void 0); + __decorate([ + property(cc.Sprite) //用户头像换图 + ], RankManager.prototype, "phone", void 0); + RankManager = __decorate([ + ccclass + ], RankManager); + return RankManager; +}(cc.Component)); +exports.default = RankManager; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxSYW5rTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSwrQ0FBMEM7QUFDcEMsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFDNUMsS0FBSztBQUVMO0lBQXlDLCtCQUFZO0lBQXJEO1FBQUEscUVBK0hDO1FBN0hHLFlBQU0sR0FBWSxJQUFJLENBQUM7UUFFdkIsY0FBUSxHQUFZLElBQUksQ0FBQztRQUV6QixXQUFLLEdBQWMsSUFBSSxDQUFDOztJQXlINUIsQ0FBQztJQWpIRyw0QkFBTSxHQUFOO1FBQ0ksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPO0lBQ1AsMEJBQUksR0FBSjtRQUNJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxjQUFJLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUUsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsMkJBQUssR0FBTDtRQUNJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJ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QUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMzQyxVQUFVLENBQUM7b0JBQ1AsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUN4QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDWDtpQkFDRztnQkFDQSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDeEUsVUFBVSxDQUFDO29CQUNQLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQ1g7UUFFTCxDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUEzSEQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFVLFFBQVE7K0NBQ2I7SUFFdkI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFVLFdBQVc7aURBQ2Q7SUFFekI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFRLFFBQVE7OENBQ1o7SUFOUCxXQUFXO1FBRC9CLE9BQU87T0FDYSxXQUFXLENBK0gvQjtJQUFELGtCQUFDO0NBL0hELEFBK0hDLENBL0h3QyxFQUFFLENBQUMsU0FBUyxHQStIcEQ7a0JBL0hvQixXQUFXIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCBMaXN0IGZyb20gXCIuL21vZHVsZS9SYW5rTGlzdC9MaXN0XCI7XHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcbi8v5o6S6KGM5qacXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJhbmtNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKSAgICAgICAgICAvL+eUqOaIt+S4iuaWueWktOWDj1xyXG4gICAgUGxheWVyOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIEBwcm9wZXJ0eShjYy5Ob2RlKSAgICAgICAgICAvL+eUqOaIt+acgOS4i+aWueS4quS6uuS/oeaBr1xyXG4gICAgc2VsZk5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgQHByb3BlcnR5KGNjLlNwcml0ZSkgICAgICAgIC8v55So5oi35aS05YOP5o2i5Zu+XHJcbiAgICBwaG9uZTogY2MuU3ByaXRlID0gbnVsbDtcclxuICAgIHByaXZhdGUgcmFua0xpc3Q6IExpc3Q7ICAgICAvL+aOkuihjOamnFxyXG4gICAgdHdlZW46IGNjLlR3ZWVuPGNjLk5vZGU+OyAgIC8v5pyA5LiK5pa555So5oi35aS05YOP5Yqo55S7XHJcbiAgICBsaXN0RGF0YTogYW55OyAgICAgICAgICAgICAgLy/mgLvliJfooajkv6Hmga9cclxuICAgIHNlbGZEYXRhOiBhbnk7ICAgICAgICAgICAgICAvL+iHquW3seS/oeaBr1xyXG4gICAgcmFua051bWJlcjogbnVtYmVyOyAgICAgICAgIC8v55So5oi36Ieq5bex5o6S5ZCNIOacieWPr+iDveS4jeWcqOaOkuihjOamnOWGhTk5K1xyXG4gICAgcmFua1RvdGFsOiBudW1iZXI7ICAgICAgICAgIC8v6I635Y+W5o6S6KGM5qac55So5oi35pWw6YePIOeOsOWcqOS4ujEwMFxyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICB0aGlzLmluaXQoKTtcclxuICAgIH1cclxuICAgIC8v5Yid5aeL5YyW5pWw5o2uXHJcbiAgICBpbml0KCl7XHJcbiAgICAgICAgdGhpcy5yYW5rTGlzdCA9IGNjLmZpbmQoXCJTY3JvbGxWaWV3XCIsIHRoaXMubm9kZSkuZ2V0Q29tcG9uZW50KExpc3QpO1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhID0gW107XHJcbiAgICAgICAgdGhpcy5zZWxmRGF0YSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5yYW5rTnVtYmVyID0gMTAwO1xyXG4gICAgICAgIHRoaXMucmFua1RvdGFsPSAxMDA7XHJcbiAgICAgICAgdGhpcy5zZWxmTm9kZS5vcGFjaXR5ID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCgpIHtcclxuICAgICAgICB0aGlzLlBsYXllci5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmdldFJhbmsoKTtcclxuICAgIH1cclxuICAgIC8v6LCD55So6I635Y+W5o6S6KGM5qac5o6l5Y+jXHJcbiAgICBnZXRSYW5rKCl7XHJcbiAgICAgICAgbGV0IGRhdGFGaWxlID0ge1xyXG4gICAgICAgICAgICBsZW5ndGg6MTAwXHJcbiAgICAgICAgfVxyXG4gICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRSYW5rKGRhdGFGaWxlLGRhdGEgPT50aGlzLmdldFJhbmtEYXRhKGRhdGEpKTtcclxuICAgIH1cclxuICAgIC8v5a6e6ZmF6K6+572u5o6S6KGM5pWw5o2uXHJcbiAgICBnZXRSYW5rRGF0YShkYXRhKXtcclxuICAgICAgICBpZihkYXRhKXtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICAgICAgICAgICBjYy5meC5HYW1lVG9vbC5nZXRSYW5rRGF0YShkYXRhLHRoaXMsNik7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGljKHRoaXMuc2VsZkRhdGEucGljKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvL+i/lOWbnuaMiemSrlxyXG4gICAgYmFja0NsaWNrKCl7XHJcbiAgICAgICAgY2MuZGlyZWN0b3IubG9hZFNjZW5lKFwiTG9hZFNjZW5lXCIpO1xyXG4gICAgfVxyXG4gICAgLy/mnIDkuIrmlrnnlKjmiLfliqjnlLtcclxuICAgIHBsYXllckFjdGlvbigpe1xyXG4gICAgICAgIC8vLTI1NCAzNzcgIDIxMCA0NTNcclxuICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IHRpbWUgPSAxO1xyXG4gICAgICAgIHRoaXMudHdlZW4gPSBjYy50d2Vlbih0aGlzLlBsYXllcilcclxuICAgICAgICAudG8oMix7cG9zaXRpb246Y2MudjMoMjEwLDQ1MywwKX0pXHJcbiAgICAgICAgLmNhbGwoKCkgPT57XHJcbiAgICAgICAgICAgIHRoaXMuUGxheWVyLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJudW1iZXJcIilcclxuICAgICAgICAgICAgLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gIHBhcnNlSW50KHRpbWUqMTAwICsgXCJcIikgKyBcIiVcIjtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5zdGFydCgpO1xyXG4gICAgICAgIHRpbWUgPSAodGhpcy5saXN0RGF0YS5sZW5ndGggLSB0aGlzLnJhbmtOdW1iZXIpL3RoaXMubGlzdERhdGEubGVuZ3RoO1xyXG4gICAgICAgIGlmKHRoaXMubGlzdERhdGEubGVuZ3RoID49IDk5KXtcclxuICAgICAgICAgICAgaWYodGhpcy5yYW5rTnVtYmVyID49IDk5KXtcclxuICAgICAgICAgICAgICAgIHRpbWUgPSAoTWF0aC5yYW5kb20oKSo0OSsxKS8xMDBcclxuICAgICAgICAgICAgICAgIHZhciBtYXRjaElkID0gY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibWF0Y2hOdW1iZXJcIik7XHJcbiAgICAgICAgICAgICAgICBpZihtYXRjaElkID09IG51bGwgfHwgbWF0Y2hJZCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICAgICAgICAgIHRpbWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0aGlzLnR3ZWVuKXRoaXMudHdlZW4uc3RvcCgpO1xyXG4gICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwibnVtYmVyXCIpXHJcbiAgICAgICAgICAgIC5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9ICBwYXJzZUludCh0aW1lKjEwMCArIFwiXCIpICsgXCIlXCI7XHJcbiAgICAgICAgfSwgdGltZSoyMDAwKTtcclxuXHJcbiAgICB9XHJcbiAgICAvL+iuvue9ruWktOWDjyAg5aSE55CG55qE6YC76L6R5q+U6L6D5aSa77yM5LiN55So5YWs5YWx57G755qE5LqGXHJcbiAgICBwdWJsaWMgc2V0UGljKHBpYyl7XHJcbiAgICAgICAgdGhpcy5waG9uZS5ub2RlLnBhcmVudC5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5waG9uZS5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuUGxheWVyLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5QbGF5ZXIub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgdGhpcy5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwaG9uZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBmZXRjaChwaWMpXHJcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtTGVuZ3RoJyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbihlcnJObyA9PiB7XHJcbiAgICAgICAgICAgIGlmKGVyck5vID09IFwiNTA5M1wiKXtcclxuICAgICAgICAgICAgICAgIHRoaXMucGhvbmUubm9kZS5wYXJlbnQuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIFgtSW5mbzonLCBlcnJvcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGNjLmFzc2V0TWFuYWdlci5sb2FkUmVtb3RlKHBpYywge2V4dDonLnBuZyd9LChlcnIsIHRleHR1cmU6Y2MuVGV4dHVyZTJEKSA9PiB7XHJcbiAgICAgICAgICAgIHNlbGYuUGxheWVyLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgIGlmKHRleHR1cmUpe1xyXG4gICAgICAgICAgICAgICAgc2VsZi5waG9uZS5ub2RlLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBzZWxmLnBob25lLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgICAgICAgICAgc2VsZi5QbGF5ZXIuZ2V0Q2hpbGRCeU5hbWUoXCJtYXNrXCIpLmdldENoaWxkQnlOYW1lKFwiaWNvblwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHNlbGYuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcInBob25lXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBzZWxmLlBsYXllci5nZXRDaGlsZEJ5TmFtZShcIm1hc2tcIikuZ2V0Q2hpbGRCeU5hbWUoXCJwaG9uZVwiKS5nZXRDb21wb25lbnQoY2MuU3ByaXRlKVxyXG4gICAgICAgICAgICAgICAgLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZi5wbGF5ZXJBY3Rpb24oKTtcclxuICAgICAgICAgICAgICAgIH0sIDUwMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIHNlbGYuUGxheWVyLmdldENoaWxkQnlOYW1lKFwibWFza1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNlbGYucGxheWVyQWN0aW9uKCk7XHJcbiAgICAgICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/Sdk/DouyinEntranceView.js b/temp/quick-scripts/dst/assets/Script/Sdk/DouyinEntranceView.js new file mode 100644 index 0000000..b15dc95 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/Sdk/DouyinEntranceView.js @@ -0,0 +1,80 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Sdk/DouyinEntranceView.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '8a024+q5K9MrpxcaTvucSDB', 'DouyinEntranceView'); +// Script/Sdk/DouyinEntranceView.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DouyinEntranceView = void 0; +var MiniGameSdk_1 = require("./MiniGameSdk"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var DouyinEntranceView = /** @class */ (function (_super) { + __extends(DouyinEntranceView, _super); + function DouyinEntranceView() { + return _super !== null && _super.apply(this, arguments) || this; + } + DouyinEntranceView.prototype.start = function () { + }; + DouyinEntranceView.prototype.update = function (deltaTime) { + }; + DouyinEntranceView.prototype.onCloseClick = function () { + this.node.active = false; + }; + DouyinEntranceView.prototype.onNavigateToDouyinClick = function () { + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.navigateToSidebar(function (success) { + if (success) { + console.log('跳转成功'); + } + else { + console.log('跳转失败'); + } + }); + }; + DouyinEntranceView = __decorate([ + ccclass + ], DouyinEntranceView); + return DouyinEntranceView; +}(cc.Component)); +exports.DouyinEntranceView = DouyinEntranceView; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXERvdXlpbkVudHJhbmNlVmlldy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTRDO0FBQ3RDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBSTVDO0lBQXdDLHNDQUFZO0lBQXBEOztJQXVCQSxDQUFDO0lBdEJHLGtDQUFLLEdBQUw7SUFFQSxDQUFDO0lBRUQsbUNBQU0sR0FBTixVQUFPLFNBQWlCO0lBRXhCLENBQUM7SUFFRCx5Q0FBWSxHQUFaO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxvREFBdUIsR0FBdkI7UUFFSSx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLFVBQUMsT0FBZ0I7WUFDNUQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QjtpQkFBTTtnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBdEJRLGtCQUFrQjtRQUQ5QixPQUFPO09BQ0ssa0JBQWtCLENBdUI5QjtJQUFELHlCQUFDO0NBdkJELEFBdUJDLENBdkJ1QyxFQUFFLENBQUMsU0FBUyxHQXVCbkQ7QUF2QlksZ0RBQWtCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9NaW5pR2FtZVNka1wiO1xyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuXHJcbkBjY2NsYXNzXHJcbmV4cG9ydCBjbGFzcyBEb3V5aW5FbnRyYW5jZVZpZXcgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgc3RhcnQoKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShkZWx0YVRpbWU6IG51bWJlcikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NlQ2xpY2soKSB7XHJcbiAgICAgICAgdGhpcy5ub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTmF2aWdhdGVUb0RvdXlpbkNsaWNrKCkge1xyXG5cclxuICAgICAgICBNaW5pR2FtZVNkay5CeXRlZGFuY2VTaWRlYmFyLm5hdmlnYXRlVG9TaWRlYmFyKChzdWNjZXNzOiBib29sZWFuKSA9PiB7IC8vIOi3s+i9rOWIsOaKlumfs+S+p+i+ueagj1xyXG4gICAgICAgICAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+i3s+i9rOaIkOWKnycpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+i3s+i9rOWksei0pScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/Sdk/MiniGameManager.js b/temp/quick-scripts/dst/assets/Script/Sdk/MiniGameManager.js new file mode 100644 index 0000000..8ce25b3 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/Sdk/MiniGameManager.js @@ -0,0 +1,361 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Sdk/MiniGameManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '0d272pXVChFDqi5FXTD2JlR', 'MiniGameManager'); +// Script/Sdk/MiniGameManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MiniGameManager = void 0; +var MiniGameSdk_1 = require("./MiniGameSdk"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var EWechatAD; +(function (EWechatAD) { + EWechatAD["CUMSTOM_01"] = "adunit-f7c2417eb2c2e473"; +})(EWechatAD || (EWechatAD = {})); +var MiniGameManager = /** @class */ (function (_super) { + __extends(MiniGameManager, _super); + function MiniGameManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.entranceView = null; + return _this; + } + MiniGameManager_1 = MiniGameManager; + Object.defineProperty(MiniGameManager, "instance", { + get: function () { + if (!MiniGameManager_1._instance) { + MiniGameManager_1._instance = new MiniGameManager_1(); + } + return MiniGameManager_1._instance; + }, + enumerable: false, + configurable: true + }); + MiniGameManager.prototype.start = function () { + // 禁用游戏入口视图 + // this.entranceView.active = false; + // MiniGameSdk.API.getUserProfile(this.setUserId); + // cc.fx.GameTool.setUserInfo(""); + this.onGetLoginCode(); + // 尝试获取游戏入口按钮,如果存在则直接返回,不进行后续操作 + // let buttonEntrance = this.node.getChildByName('Btns')?.getChildByName('Button_EntranceView'); + // if (buttonEntrance) { + // return; + // } + // 如果是字节跳动小游戏环境,检查侧边栏是否存在 + if (MiniGameSdk_1.MiniGameSdk.isBytedance()) { + //抖音环境,检测侧边栏存在 + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.checkSideBar(function (success) { + // 根据侧边栏存在性激活或禁用游戏入口按钮 + // buttonEntrance.active = success; + }); + } + else { + // 非抖音小游戏环境,直接激活游戏入口按钮 + // 非抖音环境,正常显示按钮 + // buttonEntrance.active = true; + } + // 设置监听器,以处理来自侧边栏的交互事件 + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.listenFromSidebar(function (success) { + // 如果交互成功,显示奖励提示 + if (success) { + MiniGameSdk_1.MiniGameSdk.API.showToast('侧边栏奖励', 5); + } + }); + }; + MiniGameManager.prototype.update = function (deltaTime) { + }; + /** + * 弹出广告横幅。 + * 此方法用于加载并显示广告横幅。它首先加载指定广告位的横幅广告,然后显示广告。 + * 加载广告和显示广告是通过MiniGameSdk.AdvertManager的实例方法来实现的。 + * + * @remarks + * 此方法提供了两种显示横幅广告的方式: + * 1. 默认方式:调用showBanner方法显示广告,系统会自动选择显示位置。 + * 2. 指定位置方式:可以通过传入额外的参数来指定广告显示在屏幕的顶部或底部,或者通过坐标指定显示位置。 + * + * 示例代码中注释掉了两种显示广告的具体方法,可以根据实际需求选择使用。 + */ + MiniGameManager.prototype.onShowBanner = function () { + // 加载指定广告位的横幅广告。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadBanner('adunit-4e7ef467e3eaab51'); + // 默认方式显示横幅广告。 + // 方法1:默认调用 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showBanner(); + // 示例:指定屏幕底部正中显示横幅广告。 + // 方法2:指定屏幕顶部或底部正中 + // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', MiniGameSdk.EAdBannerLocation.BOTTOM); + // 示例:通过坐标指定位置显示横幅广告。 + // 方法2:指定坐标 + // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', { top: 10, left: 10 }); + }; + /** + * 隐藏广告横幅的函数。 + * + * 该函数调用MiniGameSdk.AdvertManager实例的方法,用于隐藏广告横幅。 + * 当需要暂时停止展示广告或用户主动请求隐藏广告时,可以调用此函数。 + * + * @remarks + * 此函数不接受任何参数,也不返回任何值。 + * 它单纯地触发广告横幅的隐藏操作,具体实现依赖于AdvertManager的实现。 + */ + MiniGameManager.prototype.onHideBanner = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideBanner(); + }; + /** + * 显示插屏广告的函数。 + * + * 此函数调用MiniGameSdk.AdvertManager实例的方法,以显示一个指定的插屏广告。 + * 它使用了硬编码的广告单元标识符,这意味着它专为特定的广告位设计。 + * 在实际应用中,可能需要根据应用的配置或用户的特定条件来动态选择广告单元标识符。 + */ + MiniGameManager.prototype.onShowInterstitial = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showInterstitial('adunit-eadd67851d3050ad'); + }; + /** + * 调用广告管理器加载并展示自定义广告。 + * 此方法首先通过广告管理器的实例加载指定的自定义广告单元,然后展示这个自定义广告。 + * 加载和展示广告是广告管理系统中的常见操作,这里通过两步分别完成加载和展示的过程, + * 以确保广告在展示前正确且充分地被加载。 + */ + MiniGameManager.prototype.onShowCustom = function () { + // 加载指定的自定义广告单元。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadCustom(EWechatAD.CUMSTOM_01); + // 展示已加载的自定义广告。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showCustom(EWechatAD.CUMSTOM_01); + }; + /** + * 隐藏自定义广告。 + * + * 本函数调用MiniGameSdk.AdvertManager.instance.hideCustom()来隐藏自定义广告。 + * 这是对接广告管理系统的一部分,用于控制广告的显示与隐藏。 + * 在需要隐藏自定义广告的场景下,调用此函数即可实现相应功能。 + */ + MiniGameManager.prototype.onHideCustom = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideCustom(EWechatAD.CUMSTOM_01); + }; + /** + * 触发显示视频广告的函数。 + * 通过调用MiniGameSdk.AdvertManager.instance.showVideo方法,显示一个视频广告,并根据用户观看广告的情况执行相应的逻辑。 + * + * @remarks + * 此函数首先传入一个广告单元ID,用于标识要显示的视频广告。然后传入一个回调函数,该回调函数在用户观看广告后被调用,无论用户是完成了观看、拒绝了观看还是观看过程中发生了错误。 + * 回调函数接收两个参数:一个是用户观看广告的结果,另一个是用户观看的广告数量。根据观看结果的不同,显示不同的提示信息。 + */ + MiniGameManager.prototype.onShowVideo = function () { + // 广告单元ID,用于标识要显示的视频广告 + // 广告单元ID的样例 + //抖音形如: 1re3nfqkmy81m4m8ge + //微信形如: adunit-a7718f6e195e42fe + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showVideo('1re3nfqkmy81m4m8ge', function (res, count) { + // 输出用户观看的广告数量 + console.log('用户看的视频广告个数是:', count); + // 根据用户观看广告的结果,执行不同的逻辑 + switch (res) { + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ACCEPT: + // 用户完成了广告观看,显示奖励提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('用户看完广告,可以奖励'); + break; + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.REJECT: + // 用户拒绝了广告观看,显示不奖励提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('用户拒绝掉广告,不奖励'); + break; + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ERROR: + // 广告播放发生错误,显示错误提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('播放广告发生错误,不奖励'); + break; + default: + // 其他情况,不作处理 + break; + } + }); + }; + /** + * 引导用户分享应用给朋友。 + * + * 通过调用MiniGameSdk的API分享功能,向用户的朋友圈发送邀请,邀请他们一起玩游戏。 + * 这是一个重要的推广手段,可以增加应用的曝光度和用户量。 + * + * @remarks + * 此方法中调用的API依赖于特定的小游戏平台,因此在不同的平台上可能需要不同的实现。 + */ + MiniGameManager.prototype.onShare = function () { + MiniGameSdk_1.MiniGameSdk.API.shareAppToFriends('来玩游戏吧'); + }; + /** + * 显示一个toast提示。 + * + * 通过调用MiniGameSdk的API方法来显示一个简短的提示信息。toast是一种轻量级的提示方式,用于在界面上短暂地展示一些信息,不影响用户操作。 + * 这里使用了固定的提示文本 '这是一个toast',在实际应用中,可以根据需要动态设置提示文本。 + */ + MiniGameManager.prototype.onShowToast = function () { + MiniGameSdk_1.MiniGameSdk.API.showToast('这是一个toast'); + }; + /** + * 触发设备振动功能。 + * + * 该方法用于调用MiniGameSdk提供的API,以实现设备的振动功能。当需要提醒用户或提供触觉反馈时,可以调用此方法。 + * 例如,在游戏或应用中,当用户完成特定操作或发生特定事件时,可以通过振动给予用户反馈。 + * + * @remarks + * 此方法无参数,也不返回任何值。 + */ + MiniGameManager.prototype.onVirbrate = function () { + MiniGameSdk_1.MiniGameSdk.API.vibrate(); + }; + /** + * 重新启动游戏实例。 + * + * 此函数调用MiniGameSdk中的API重新启动游戏。重新启动操作可能是为了初始化游戏环境、重置游戏状态或处理其他需要重启的场景。 + * 调用此函数后,游戏将会重新开始,当前的游戏状态将会被清除。 + * + * @remarks + * 此函数不接受任何参数。 + * + * @returns 无返回值。 + */ + MiniGameManager.prototype.onReboot = function () { + MiniGameSdk_1.MiniGameSdk.API.reboot(); + }; + /** + * 当前函数用于在迷你游戏中实现退出功能。 + * 它调用了MiniGameSdk提供的API方法来触发退出操作。 + * 该方法通常在需要结束当前迷你游戏或返回到上一级菜单时被调用。 + */ + MiniGameManager.prototype.onExit = function () { + MiniGameSdk_1.MiniGameSdk.API.exit(); + }; + /** + * 显示分享菜单。 + * + * 通过调用MiniGameSdk的API方法,触发显示分享菜单的操作。此函数旨在提供一个统一的入口, + * 以便在需要时轻松调用分享功能,而无需直接与具体的SDK接口交互。 + * + * @remarks + * 此方法不接受任何参数,也不返回任何值。 + */ + MiniGameManager.prototype.onShowShareMenu = function () { + MiniGameSdk_1.MiniGameSdk.API.showShareMenu(); + }; + /** + * 导航到指定的小游戏。 + * + * 本函数用于触发导航到一个特定的小游戏。这需要提供目标小游戏的ID, + * 以便系统能够正确地将用户重定向到目标小游戏。 + * + * 注意:这里的'xxx'是占位符,实际使用时需要替换为具体的小游戏ID。 + */ + MiniGameManager.prototype.onNavigate = function () { + MiniGameSdk_1.MiniGameSdk.API.navigateTo('xxx'); // xxx替换为你的小游戏id + }; + /** + * 激活字节跳动入口视图。 + * + * 此方法用于将字节跳动入口视图设置为活跃状态。当需要在用户界面中显示字节跳动的入口时, + * 可以调用此方法来激活相应的视图元素,使其对用户可见。 + */ + MiniGameManager.prototype.onBytedanceEntranceView = function () { + // this.entranceView.active = true; + }; + /** + * 请求登录代码 + * + * 本函数用于触发小程序的登录流程,获取微信或头条等第三方平台的登录代码。 + * 这些代码可以用于后续的用户身份验证和数据同步流程。 + */ + MiniGameManager.prototype.onGetLoginCode = function () { + var _this = this; + // 调用MiniGameSdk的API登录方法,传入一个回调函数处理登录结果 + MiniGameSdk_1.MiniGameSdk.API.login(function (code, anonymousCode) { + // 打印微信或头条的登录代码 + console.log('Wechat Or Bytedance Code:', code); + // 打印头条的匿名登录代码 + // console.log('Bytedance Anonymous Code:', anonymousCode); + if (code) { + cc.fx.GameTool.getUserId(code, function (data) { return _this.setUserId(data); }); + } + }); + }; + MiniGameManager.prototype.setUserId = function (data) { + cc.fx.GameConfig.GM_INFO.userId = data.data.userId; + MiniGameSdk_1.MiniGameSdk.API.getUserInfo(this.setUserInfo); + }; + MiniGameManager.prototype.setUserInfo = function (data) { + console.log("获取到的用户信息", data.userInfo); + var useData = { + "gameId": cc.fx.GameConfig.GM_INFO.gameId, + "userId": cc.fx.GameConfig.GM_INFO.userId, + "nickName": data.userInfo.nickName, + "pic": data.userInfo.avatarUrl + }; + console.log("即将上传的用户信息:", cc.fx.GameConfig.GM_INFO.userId, data.userInfo.nickName, data.userInfo.avatarUrl); + console.log("Post数据:", useData); + cc.fx.HttpUtil.setUserInfo(useData, function (res) { + console.log("上传成功:", res); + }); + }; + /** + * 创建并显示游戏圈按钮 + * + * 本函数通过调用MiniGameSdk的GameClub实例方法,实现游戏俱乐部的创建和显示。 + * 它首先配置俱乐部的图标类型和位置大小,然后创建俱乐部,最后显示俱乐部。 + * 这样做是为了在小游戏内创建并展示一个游戏俱乐部的图标,供玩家加入或互动。 + */ + MiniGameManager.prototype.onCreateClub = function () { + // 配置俱乐部图标为绿色,设置图标的位置为顶部200像素,左侧0像素 + MiniGameSdk_1.MiniGameSdk.GameClub.instance.create(MiniGameSdk_1.MiniGameSdk.EGameClubIcon.GREEN, { top: 200, left: 0 }, { width: 50, height: 50 }); + // 显示游戏俱乐部图标 + MiniGameSdk_1.MiniGameSdk.GameClub.instance.show(); + }; + var MiniGameManager_1; + __decorate([ + property(cc.Node) + ], MiniGameManager.prototype, "entranceView", void 0); + MiniGameManager = MiniGameManager_1 = __decorate([ + ccclass + ], MiniGameManager); + return MiniGameManager; +}(cc.Component)); +exports.MiniGameManager = MiniGameManager; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXE1pbmlHYW1lTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQTRDO0FBQ3RDLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBQzVDLElBQUssU0FFSjtBQUZELFdBQUssU0FBUztJQUNWLG1EQUFzQyxDQUFBO0FBQzFDLENBQUMsRUFGSSxTQUFTLEtBQVQsU0FBUyxRQUViO0FBR0Q7SUFBcUMsbUNBQVk7SUFBakQ7UUFBQSxxRUEyVUM7UUF4VUcsa0JBQVksR0FBWSxJQUFJLENBQUM7O0lBd1VqQyxDQUFDO3dCQTNVWSxlQUFlO0lBa0J4QixzQkFBVywyQkFBUTthQUFuQjtZQUNJLElBQUksQ0FBQyxpQkFBZSxDQUFDLFNBQVMsRUFBRTtnQkFDNUIsaUJBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxpQkFBZSxFQUFFLENBQUM7YUFDckQ7WUFDRCxPQUFPLGlCQUFlLENBQUMsU0FBUyxDQUFDO1FBQ3JDLENBQUM7OztPQUFBO0lBRUQsK0JBQUssR0FBTDtRQUNJLFdBQVc7UUFDWCxvQ0FBb0M7UUFDcEMsa0RBQWtEO1FBQ2xELGtDQUFrQztRQUNsQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsK0JBQStCO1FBQy9CLGdHQUFnRztRQUNoRyx3QkFBd0I7UUFDeEIsY0FBYztRQUNkLElBQUk7UUFFSix5QkFBeUI7UUFFekIsSUFBSSx5QkFBVyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzNCLGNBQWM7WUFDZCx5QkFBVyxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxVQUFDLE9BQWdCO2dCQUN2RCxzQkFBc0I7Z0JBQ3RCLG1DQUFtQztZQUN2QyxDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxzQkFBc0I7WUFDdEIsZUFBZTtZQUNmLGdDQUFn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QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxzQ0FBWSxHQUFaO1FBQ0ksbUNBQW1DO1FBQ25DLHlCQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ2hDLHlCQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssRUFDL0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFDckIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLFlBQVk7UUFDWix5QkFBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekMsQ0FBQzs7SUF2VUQ7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzt5REFDVztJQUhwQixlQUFlO1FBRDNCLE9BQU87T0FDSyxlQUFlLENBMlUzQjtJQUFELHNCQUFDO0NBM1VELEFBMlVDLENBM1VvQyxFQUFFLENBQUMsU0FBUyxHQTJVaEQ7QUEzVVksMENBQWUiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgTWluaUdhbWVTZGsgfSBmcm9tIFwiLi9NaW5pR2FtZVNka1wiO1xyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5lbnVtIEVXZWNoYXRBRCB7XHJcbiAgICBDVU1TVE9NXzAxID0gJ2FkdW5pdC1mN2MyNDE3ZWIyYzJlNDczJ1xyXG59XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgY2xhc3MgTWluaUdhbWVNYW5hZ2VyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICBAcHJvcGVydHkoY2MuTm9kZSlcclxuICAgIGVudHJhbmNlVmlldzogY2MuTm9kZSA9IG51bGw7XHJcbiAgICAvKipcclxuICAgICAqIOW8gOWni+a4uOaIj+WJjeeahOWIneWni+WMluaTjeS9nOOAglxyXG4gICAgICog5Li76KaB6LSf6LSj5qOA5p+l5bm25aSE55CG5ri45oiP5YWl5Y+j5oyJ6ZKu55qE5r+A5rS754q25oCB77yM5Lul5Y+K5Zyo54m55a6a546v5aKD5LiL6K6+572u5L6n6L655qCP55qE55uR5ZCs5Zmo44CCXHJcbiAgICAgKiBcclxuICAgICAqIEByZW1hcmtzXHJcbiAgICAgKiDmraTmlrnms5XpppblhYjlsIbmuLjmiI/lhaXlj6Pop4blm77orr7kuLrpnZ7mv4DmtLvnirbmgIHvvIzku6Xlh4blpIfov5vooYzlkI7nu63nmoTmo4Dmn6Xlkozorr7nva7jgIJcclxuICAgICAqIOWmguaenOW9k+WJjeeOr+Wig+aYr+aKlumfs+Wwj+a4uOaIj++8jOS8muajgOafpeaYr+WQpuWtmOWcqOS+p+i+ueagj++8jOW5tuagueaNruajgOafpee7k+aenOa/gOa0u+aIluemgeeUqOa4uOaIj+WFpeWPo+aMiemSruOAglxyXG4gICAgICog5a+55LqO6Z2e5oqW6Z+z5bCP5ri45oiP546v5aKD77yM55u05o6l5r+A5rS75ri45oiP5YWl5Y+j5oyJ6ZKu44CCXHJcbiAgICAgKiDmraTlpJbvvIzml6Dorrrnjq/looPlpoLkvZXvvIzpg73kvJrorr7nva7kuIDkuKrnm5HlkKzlmajvvIzku6XlpITnkIbmnaXoh6rkvqfovrnmoI/nmoTkuovku7bvvIzlpoLmiJDlip/op6blj5Hml7bmmL7npLrlpZblirHmj5DnpLrjgIJcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfaWQ6YW55O1xyXG4gICAgcHJpdmF0ZSBfdXNlckRhdGE6YW55O1xyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogTWluaUdhbWVNYW5hZ2VyO1xyXG4gICAgc3RhdGljIGdldCBpbnN0YW5jZSgpOiBNaW5pR2FtZU1hbmFnZXIge1xyXG4gICAgICAgIGlmICghTWluaUdhbWVNYW5hZ2VyLl9pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICBNaW5pR2FtZU1hbmFnZXIuX2luc3RhbmNlID0gbmV3IE1pbmlHYW1lTWFuYWdlcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gTWluaUdhbWVNYW5hZ2VyLl9pbnN0YW5jZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCgpIHtcclxuICAgICAgICAvLyDnpoHnlKjmuLjmiI/lhaXlj6Pop4blm75cclxuICAgICAgICAvLyB0aGlzLmVudHJhbmNlVmlldy5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICAvLyBNaW5pR2FtZVNkay5BUEkuZ2V0VXNlclByb2ZpbGUodGhpcy5zZXRVc2VySWQpO1xyXG4gICAgICAgIC8vIGNjLmZ4LkdhbWVUb29sLnNldFVzZXJJbmZvKFwiXCIpO1xyXG4gICAgICAgIHRoaXMub25HZXRMb2dpbkNvZGUoKTtcclxuICAgICAgICAvLyDlsJ3or5Xojrflj5bmuLjmiI/lhaXlj6PmjInpkq7vvIzlpoLmnpzlrZjlnKjliJnnm7TmjqXov5Tlm57vvIzkuI3ov5vooYzlkI7nu63mk43kvZxcclxuICAgICAgICAvLyBsZXQgYnV0dG9uRW50cmFuY2UgPSB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoJ0J0bnMnKT8uZ2V0Q2hpbGRCeU5hbWUoJ0J1dHRvbl9FbnRyYW5jZVZpZXcnKTtcclxuICAgICAgICAvLyBpZiAoYnV0dG9uRW50cmFuY2UpIHtcclxuICAgICAgICAvLyAgICAgcmV0dXJuO1xyXG4gICAgICAgIC8vIH1cclxuXHJcbiAgICAgICAgLy8g5aaC5p6c5piv5a2X6IqC6Lez5Yqo5bCP5ri45oiP546v5aKD77yM5qOA5p+l5L6n6L655qCP5piv5ZCm5a2Y5ZyoXHJcblxyXG4gICAgICAgIGlmIChNaW5pR2FtZVNkay5pc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgIC8v5oqW6Z+z546v5aKD77yM5qOA5rWL5L6n6L655qCP5a2Y5ZyoXHJcbiAgICAgICAgICAgIE1pbmlHYW1lU2RrLkJ5dGVkYW5jZVNpZGViYXIuY2hlY2tTaWRlQmFyKChzdWNjZXNzOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyDmoLnmja7kvqfovrnmoI/lrZjlnKjmgKfmv4DmtLvmiJbnpoHnlKjmuLjmiI/lhaXlj6PmjInpkq5cclxuICAgICAgICAgICAgICAgIC8vIGJ1dHRvbkVudHJhbmNlLmFjdGl2ZSA9IHN1Y2Nlc3M7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIOmdnuaKlumfs+Wwj+a4uOaIj+eOr+Wig++8jOebtOaOpea/gOa0u+a4uOaIj+WFpeWPo+aMiemSrlxyXG4gICAgICAgICAgICAvLyDpnZ7mipbpn7Pnjq/looPvvIzmraPluLjmmL7npLrmjInpkq5cclxuICAgICAgICAgICAgLy8gYnV0dG9uRW50cmFuY2UuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIOiuvue9ruebkeWQrOWZqO+8jOS7peWkhOeQhuadpeiHquS+p+i+ueagj+eahOS6pOS6kuS6i+S7tlxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkJ5dGVkYW5jZVNpZGViYXIubGlzdGVuRnJvbVNpZGViYXIoKHN1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgLy8g5aaC5p6c5Lqk5LqS5oiQ5Yqf77yM5pi+56S65aWW5Yqx5o+Q56S6XHJcbiAgICAgICAgICAgIGlmIChzdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KCfkvqfovrnmoI/lpZblirEnLCA1KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShkZWx0YVRpbWU6IG51bWJlcikge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOW8ueWHuuW5v+WRiuaoquW5heOAglxyXG4gICAgICog5q2k5pa55rOV55So5LqO5Yqg6L295bm25pi+56S65bm/5ZGK5qiq5bmF44CC5a6D6aaW5YWI5Yqg6L295oyH5a6a5bm/5ZGK5L2N55qE5qiq5bmF5bm/5ZGK77yM54S25ZCO5pi+56S65bm/5ZGK44CCXHJcbiAgICAgKiDliqDovb3lub/lkYrlkozmmL7npLrlub/lkYrmmK/pgJrov4dNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2Vy55qE5a6e5L6L5pa55rOV5p2l5a6e546w55qE44CCXHJcbiAgICAgKiBcclxuICAgICAqIEByZW1hcmtzXHJcbiAgICAgKiDmraTmlrnms5Xmj5DkvpvkuobkuKTnp43mmL7npLrmqKrluYXlub/lkYrnmoTmlrnlvI/vvJpcclxuICAgICAqIDEuIOm7mOiupOaWueW8j++8muiwg+eUqHNob3dCYW5uZXLmlrnms5XmmL7npLrlub/lkYrvvIzns7vnu5/kvJroh6rliqjpgInmi6nmmL7npLrkvY3nva7jgIJcclxuICAgICAqIDIuIOaMh+WumuS9jee9ruaWueW8j++8muWPr+S7pemAmui/h+S8oOWFpemineWklueahOWPguaVsOadpeaMh+WumuW5v+WRiuaYvuekuuWcqOWxj+W5leeahOmhtumDqOaIluW6lemDqO+8jOaIluiAhemAmui/h+WdkOagh+aMh+WumuaYvuekuuS9jee9ruOAglxyXG4gICAgICogXHJcbiAgICAgKiDnpLrkvovku6PnoIHkuK3ms6jph4rmjonkuobkuKTnp43mmL7npLrlub/lkYrnmoTlhbfkvZPmlrnms5XvvIzlj6/ku6XmoLnmja7lrp7pmYXpnIDmsYLpgInmi6nkvb/nlKjjgIJcclxuICAgICAqL1xyXG4gICAgb25TaG93QmFubmVyKCkge1xyXG4gICAgICAgIC8vIOWKoOi9veaMh+WumuW5v+WRiuS9jeeahOaoquW5heW5v+WRiuOAglxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2UubG9hZEJhbm5lcignYWR1bml0LTRlN2VmNDY3ZTNlYWFiNTEnKTtcclxuXHJcbiAgICAgICAgLy8g6buY6K6k5pa55byP5pi+56S65qiq5bmF5bm/5ZGK44CCXHJcbiAgICAgICAgLy8g5pa55rOVMe+8mum7mOiupOiwg+eUqFxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0Jhbm5lcigpO1xyXG5cclxuICAgICAgICAvLyDnpLrkvovvvJrmjIflrprlsY/luZXlupXpg6jmraPkuK3mmL7npLrmqKrluYXlub/lkYrjgIJcclxuICAgICAgICAvLyDmlrnms5Uy77ya5oyH5a6a5bGP5bmV6aG26YOo5oiW5bqV6YOo5q2j5LitXHJcbiAgICAgICAgLy8gTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5zaG93QmFubmVyKCdhZHVuaXQtNGU3ZWY0NjdlM2VhYWI1MScsIE1pbmlHYW1lU2RrLkVBZEJhbm5lckxvY2F0aW9uLkJPVFRPTSk7IFxyXG5cclxuICAgICAgICAvLyDnpLrkvovvvJrpgJrov4flnZDmoIfmjIflrprkvY3nva7mmL7npLrmqKrluYXlub/lkYrjgIJcclxuICAgICAgICAvLyDmlrnms5Uy77ya5oyH5a6a5Z2Q5qCHXHJcbiAgICAgICAgLy8gTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5zaG93QmFubmVyKCdhZHVuaXQtNGU3ZWY0NjdlM2VhYWI1MScsIHsgdG9wOiAxMCwgbGVmdDogMTAgfSk7IFxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6ZqQ6JeP5bm/5ZGK5qiq5bmF55qE5Ye95pWw44CCXHJcbiAgICAgKiBcclxuICAgICAqIOivpeWHveaVsOiwg+eUqE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXLlrp7kvovnmoTmlrnms5XvvIznlKjkuo7pmpDol4/lub/lkYrmqKrluYXjgIJcclxuICAgICAqIOW9k+mcgOimgeaaguaXtuWBnOatouWxleekuuW5v+WRiuaIlueUqOaIt+S4u+WKqOivt+axgumakOiXj+W5v+WRiuaXtu+8jOWPr+S7peiwg+eUqOatpOWHveaVsOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5Ye95pWw5LiN5o6l5Y+X5Lu75L2V5Y+C5pWw77yM5Lmf5LiN6L+U5Zue5Lu75L2V5YC844CCXHJcbiAgICAgKiDlroPljZXnuq/lnLDop6blj5Hlub/lkYrmqKrluYXnmoTpmpDol4/mk43kvZzvvIzlhbfkvZPlrp7njrDkvp3otZbkuo5BZHZlcnRNYW5hZ2Vy55qE5a6e546w44CCXHJcbiAgICAgKi9cclxuICAgIG9uSGlkZUJhbm5lcigpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLmhpZGVCYW5uZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOaYvuekuuaPkuWxj+W5v+WRiueahOWHveaVsOOAglxyXG4gICAgICogXHJcbiAgICAgKiDmraTlh73mlbDosIPnlKhNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2Vy5a6e5L6L55qE5pa55rOV77yM5Lul5pi+56S65LiA5Liq5oyH5a6a55qE5o+S5bGP5bm/5ZGK44CCXHJcbiAgICAgKiDlroPkvb/nlKjkuobnoaznvJbnoIHnmoTlub/lkYrljZXlhYPmoIfor4bnrKbvvIzov5nmhI/lkbPnnYDlroPkuJPkuLrnibnlrprnmoTlub/lkYrkvY3orr7orqHjgIJcclxuICAgICAqIOWcqOWunumZheW6lOeUqOS4re+8jOWPr+iDvemcgOimgeagueaNruW6lOeUqOeahOmFjee9ruaIlueUqOaIt+eahOeJueWumuadoeS7tuadpeWKqOaAgemAieaLqeW5v+WRiuWNleWFg+agh+ivhuespuOAglxyXG4gICAgICovXHJcbiAgICBvblNob3dJbnRlcnN0aXRpYWwoKSB7XHJcbiAgICAgICAgTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5zaG93SW50ZXJzdGl0aWFsKCdhZHVuaXQtZWFkZDY3ODUxZDMwNTBhZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6LCD55So5bm/5ZGK566h55CG5Zmo5Yqg6L295bm25bGV56S66Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgKiDmraTmlrnms5XpppblhYjpgJrov4flub/lkYrnrqHnkIblmajnmoTlrp7kvovliqDovb3mjIflrprnmoToh6rlrprkuYnlub/lkYrljZXlhYPvvIznhLblkI7lsZXnpLrov5nkuKroh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAqIOWKoOi9veWSjOWxleekuuW5v+WRiuaYr+W5v+WRiueuoeeQhuezu+e7n+S4reeahOW4uOingeaTjeS9nO+8jOi/memHjOmAmui/h+S4pOatpeWIhuWIq+WujOaIkOWKoOi9veWSjOWxleekuueahOi/h+eoi++8jFxyXG4gICAgICog5Lul56Gu5L+d5bm/5ZGK5Zyo5bGV56S65YmN5q2j56Gu5LiU5YWF5YiG5Zyw6KKr5Yqg6L2944CCXHJcbiAgICAgKi9cclxuICAgIG9uU2hvd0N1c3RvbSgpIHtcclxuICAgICAgICAvLyDliqDovb3mjIflrprnmoToh6rlrprkuYnlub/lkYrljZXlhYPjgIJcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLmxvYWRDdXN0b20oRVdlY2hhdEFELkNVTVNUT01fMDEpO1xyXG4gICAgICAgIC8vIOWxleekuuW3suWKoOi9veeahOiHquWumuS5ieW5v+WRiuOAglxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd0N1c3RvbShFV2VjaGF0QUQuQ1VNU1RPTV8wMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDpmpDol4/oh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAqIFxyXG4gICAgICog5pys5Ye95pWw6LCD55SoTWluaUdhbWVTZGsuQWR2ZXJ0TWFuYWdlci5pbnN0YW5jZS5oaWRlQ3VzdG9tKCnmnaXpmpDol4/oh6rlrprkuYnlub/lkYrjgIJcclxuICAgICAqIOi/meaYr+WvueaOpeW5v+WRiueuoeeQhuezu+e7n+eahOS4gOmDqOWIhu+8jOeUqOS6juaOp+WItuW5v+WRiueahOaYvuekuuS4jumakOiXj+OAglxyXG4gICAgICog5Zyo6ZyA6KaB6ZqQ6JeP6Ieq5a6a5LmJ5bm/5ZGK55qE5Zy65pmv5LiL77yM6LCD55So5q2k5Ye95pWw5Y2z5Y+v5a6e546w55u45bqU5Yqf6IO944CCXHJcbiAgICAgKi9cclxuICAgIG9uSGlkZUN1c3RvbSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLmhpZGVDdXN0b20oRVdlY2hhdEFELkNVTVNUT01fMDEpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6Kem5Y+R5pi+56S66KeG6aKR5bm/5ZGK55qE5Ye95pWw44CCXHJcbiAgICAgKiDpgJrov4fosIPnlKhNaW5pR2FtZVNkay5BZHZlcnRNYW5hZ2VyLmluc3RhbmNlLnNob3dWaWRlb+aWueazle+8jOaYvuekuuS4gOS4quinhumikeW5v+WRiu+8jOW5tuagueaNrueUqOaIt+ingueci+W5v+WRiueahOaDheWGteaJp+ihjOebuOW6lOeahOmAu+i+keOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5Ye95pWw6aaW5YWI5Lyg5YWl5LiA5Liq5bm/5ZGK5Y2V5YWDSUTvvIznlKjkuo7moIfor4bopoHmmL7npLrnmoTop4bpopHlub/lkYrjgILnhLblkI7kvKDlhaXkuIDkuKrlm57osIPlh73mlbDvvIzor6Xlm57osIPlh73mlbDlnKjnlKjmiLfop4LnnIvlub/lkYrlkI7ooqvosIPnlKjvvIzml6DorrrnlKjmiLfmmK/lrozmiJDkuobop4LnnIvjgIHmi5Lnu53kuobop4LnnIvov5jmmK/op4LnnIvov4fnqIvkuK3lj5HnlJ/kuobplJnor6/jgIJcclxuICAgICAqIOWbnuiwg+WHveaVsOaOpeaUtuS4pOS4quWPguaVsO+8muS4gOS4quaYr+eUqOaIt+ingueci+W5v+WRiueahOe7k+aenO+8jOWPpuS4gOS4quaYr+eUqOaIt+ingueci+eahOW5v+WRiuaVsOmHj+OAguagueaNruingueci+e7k+aenOeahOS4jeWQjO+8jOaYvuekuuS4jeWQjOeahOaPkOekuuS/oeaBr+OAglxyXG4gICAgICovXHJcbiAgICBvblNob3dWaWRlbygpIHtcclxuICAgICAgICAvLyDlub/lkYrljZXlhYNJRO+8jOeUqOS6juagh+ivhuimgeaYvuekuueahOinhumikeW5v+WRilxyXG4gICAgICAgIC8vIOW5v+WRiuWNleWFg0lE55qE5qC35L6LXHJcbiAgICAgICAgLy/mipbpn7PlvaLlpoI6IDFyZTNuZnFrbXk4MW00bThnZVxyXG4gICAgICAgIC8v5b6u5L+h5b2i5aaCOiBhZHVuaXQtYTc3MThmNmUxOTVlNDJmZVxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFkdmVydE1hbmFnZXIuaW5zdGFuY2Uuc2hvd1ZpZGVvKCcxcmUzbmZxa215ODFtNG04Z2UnLCAocmVzOiBNaW5pR2FtZVNkay5FQWRWaWRlb1Jlc3VsdCwgY291bnQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAvLyDovpPlh7rnlKjmiLfop4LnnIvnmoTlub/lkYrmlbDph49cclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ+eUqOaIt+eci+eahOinhumikeW5v+WRiuS4quaVsOaYrzonLCBjb3VudCk7XHJcblxyXG4gICAgICAgICAgICAvLyDmoLnmja7nlKjmiLfop4LnnIvlub/lkYrnmoTnu5PmnpzvvIzmiafooYzkuI3lkIznmoTpgLvovpFcclxuICAgICAgICAgICAgc3dpdGNoIChyZXMpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgTWluaUdhbWVTZGsuRUFkVmlkZW9SZXN1bHQuQUNDRVBUOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOeUqOaIt+WujOaIkOS6huW5v+WRiuingueci++8jOaYvuekuuWlluWKseaPkOekulxyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoJ+eUqOaIt+eci+WujOW5v+WRiu+8jOWPr+S7peWlluWKsScpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBNaW5pR2FtZVNkay5FQWRWaWRlb1Jlc3VsdC5SRUpFQ1Q6XHJcbiAgICAgICAgICAgICAgICAgICAgLy8g55So5oi35ouS57ud5LqG5bm/5ZGK6KeC55yL77yM5pi+56S65LiN5aWW5Yqx5o+Q56S6XHJcbiAgICAgICAgICAgICAgICAgICAgTWluaUdhbWVTZGsuQVBJLnNob3dUb2FzdCgn55So5oi35ouS57ud5o6J5bm/5ZGK77yM5LiN5aWW5YqxJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlIE1pbmlHYW1lU2RrLkVBZFZpZGVvUmVzdWx0LkVSUk9SOlxyXG4gICAgICAgICAgICAgICAgICAgIC8vIOW5v+WRiuaSreaUvuWPkeeUn+mUmeivr++8jOaYvuekuumUmeivr+aPkOekulxyXG4gICAgICAgICAgICAgICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaG93VG9hc3QoJ+aSreaUvuW5v+WRiuWPkeeUn+mUmeivr++8jOS4jeWlluWKsScpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAvLyDlhbbku5bmg4XlhrXvvIzkuI3kvZzlpITnkIZcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5byV5a+855So5oi35YiG5Lqr5bqU55So57uZ5pyL5Y+L44CCXHJcbiAgICAgKiBcclxuICAgICAqIOmAmui/h+iwg+eUqE1pbmlHYW1lU2Rr55qEQVBJ5YiG5Lqr5Yqf6IO977yM5ZCR55So5oi355qE5pyL5Y+L5ZyI5Y+R6YCB6YKA6K+377yM6YKA6K+35LuW5Lus5LiA6LW3546p5ri45oiP44CCXHJcbiAgICAgKiDov5nmmK/kuIDkuKrph43opoHnmoTmjqjlub/miYvmrrXvvIzlj6/ku6Xlop7liqDlupTnlKjnmoTmm53lhYnluqblkoznlKjmiLfph4/jgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOaWueazleS4reiwg+eUqOeahEFQSeS+nei1luS6jueJueWumueahOWwj+a4uOaIj+W5s+WPsO+8jOWboOatpOWcqOS4jeWQjOeahOW5s+WPsOS4iuWPr+iDvemcgOimgeS4jeWQjOeahOWunueOsOOAglxyXG4gICAgICovXHJcbiAgICBvblNoYXJlKCkge1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5zaGFyZUFwcFRvRnJpZW5kcygn5p2l546p5ri45oiP5ZCnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmmL7npLrkuIDkuKp0b2FzdOaPkOekuuOAglxyXG4gICAgICogXHJcbiAgICAgKiDpgJrov4fosIPnlKhNaW5pR2FtZVNka+eahEFQSeaWueazleadpeaYvuekuuS4gOS4queugOefreeahOaPkOekuuS/oeaBr+OAgnRvYXN05piv5LiA56eN6L276YeP57qn55qE5o+Q56S65pa55byP77yM55So5LqO5Zyo55WM6Z2i5LiK55+t5pqC5Zyw5bGV56S65LiA5Lqb5L+h5oGv77yM5LiN5b2x5ZON55So5oi35pON5L2c44CCXHJcbiAgICAgKiDov5nph4zkvb/nlKjkuoblm7rlrprnmoTmj5DnpLrmlofmnKwgJ+i/meaYr+S4gOS4qnRvYXN0J++8jOWcqOWunumZheW6lOeUqOS4re+8jOWPr+S7peagueaNrumcgOimgeWKqOaAgeiuvue9ruaPkOekuuaWh+acrOOAglxyXG4gICAgICovXHJcbiAgICBvblNob3dUb2FzdCgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1RvYXN0KCfov5nmmK/kuIDkuKp0b2FzdCcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6Kem5Y+R6K6+5aSH5oyv5Yqo5Yqf6IO944CCXHJcbiAgICAgKiBcclxuICAgICAqIOivpeaWueazleeUqOS6juiwg+eUqE1pbmlHYW1lU2Rr5o+Q5L6b55qEQVBJ77yM5Lul5a6e546w6K6+5aSH55qE5oyv5Yqo5Yqf6IO944CC5b2T6ZyA6KaB5o+Q6YaS55So5oi35oiW5o+Q5L6b6Kem6KeJ5Y+N6aaI5pe277yM5Y+v5Lul6LCD55So5q2k5pa55rOV44CCXHJcbiAgICAgKiDkvovlpoLvvIzlnKjmuLjmiI/miJblupTnlKjkuK3vvIzlvZPnlKjmiLflrozmiJDnibnlrprmk43kvZzmiJblj5HnlJ/nibnlrprkuovku7bml7bvvIzlj6/ku6XpgJrov4fmjK/liqjnu5nkuojnlKjmiLflj43ppojjgIJcclxuICAgICAqIFxyXG4gICAgICogQHJlbWFya3NcclxuICAgICAqIOatpOaWueazleaXoOWPguaVsO+8jOS5n+S4jei/lOWbnuS7u+S9leWAvOOAglxyXG4gICAgICovXHJcbiAgICBvblZpcmJyYXRlKCkge1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS52aWJyYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDph43mlrDlkK/liqjmuLjmiI/lrp7kvovjgIJcclxuICAgICAqIFxyXG4gICAgICog5q2k5Ye95pWw6LCD55SoTWluaUdhbWVTZGvkuK3nmoRBUEnph43mlrDlkK/liqjmuLjmiI/jgILph43mlrDlkK/liqjmk43kvZzlj6/og73mmK/kuLrkuobliJ3lp4vljJbmuLjmiI/njq/looPjgIHph43nva7muLjmiI/nirbmgIHmiJblpITnkIblhbbku5bpnIDopoHph43lkK/nmoTlnLrmma/jgIJcclxuICAgICAqIOiwg+eUqOatpOWHveaVsOWQju+8jOa4uOaIj+WwhuS8mumHjeaWsOW8gOWni++8jOW9k+WJjeeahOa4uOaIj+eKtuaAgeWwhuS8muiiq+a4hemZpOOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5Ye95pWw5LiN5o6l5Y+X5Lu75L2V5Y+C5pWw44CCXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIOaXoOi/lOWbnuWAvOOAglxyXG4gICAgICovXHJcbiAgICBvblJlYm9vdCgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkucmVib290KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlvZPliY3lh73mlbDnlKjkuo7lnKjov7fkvaDmuLjmiI/kuK3lrp7njrDpgIDlh7rlip/og73jgIJcclxuICAgICAqIOWug+iwg+eUqOS6hk1pbmlHYW1lU2Rr5o+Q5L6b55qEQVBJ5pa55rOV5p2l6Kem5Y+R6YCA5Ye65pON5L2c44CCXHJcbiAgICAgKiDor6Xmlrnms5XpgJrluLjlnKjpnIDopoHnu5PmnZ/lvZPliY3ov7fkvaDmuLjmiI/miJbov5Tlm57liLDkuIrkuIDnuqfoj5zljZXml7booqvosIPnlKjjgIJcclxuICAgICAqL1xyXG4gICAgb25FeGl0KCkge1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5leGl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmmL7npLrliIbkuqvoj5zljZXjgIJcclxuICAgICAqIFxyXG4gICAgICog6YCa6L+H6LCD55SoTWluaUdhbWVTZGvnmoRBUEnmlrnms5XvvIzop6blj5HmmL7npLrliIbkuqvoj5zljZXnmoTmk43kvZzjgILmraTlh73mlbDml6jlnKjmj5DkvpvkuIDkuKrnu5/kuIDnmoTlhaXlj6PvvIxcclxuICAgICAqIOS7peS+v+WcqOmcgOimgeaXtui9u+advuiwg+eUqOWIhuS6q+WKn+iDve+8jOiAjOaXoOmcgOebtOaOpeS4juWFt+S9k+eahFNES+aOpeWPo+S6pOS6kuOAglxyXG4gICAgICogXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICog5q2k5pa55rOV5LiN5o6l5Y+X5Lu75L2V5Y+C5pWw77yM5Lmf5LiN6L+U5Zue5Lu75L2V5YC844CCXHJcbiAgICAgKi9cclxuICAgIG9uU2hvd1NoYXJlTWVudSgpIHtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuc2hvd1NoYXJlTWVudSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5a+86Iiq5Yiw5oyH5a6a55qE5bCP5ri45oiP44CCXHJcbiAgICAgKiBcclxuICAgICAqIOacrOWHveaVsOeUqOS6juinpuWPkeWvvOiIquWIsOS4gOS4queJueWumueahOWwj+a4uOaIj+OAgui/memcgOimgeaPkOS+m+ebruagh+Wwj+a4uOaIj+eahElE77yMXHJcbiAgICAgKiDku6Xkvr/ns7vnu5/og73lpJ/mraPnoa7lnLDlsIbnlKjmiLfph43lrprlkJHliLDnm67moIflsI/muLjmiI/jgIJcclxuICAgICAqIFxyXG4gICAgICog5rOo5oSP77ya6L+Z6YeM55qEJ3h4eCfmmK/ljaDkvY3nrKbvvIzlrp7pmYXkvb/nlKjml7bpnIDopoHmm7/mjaLkuLrlhbfkvZPnmoTlsI/muLjmiI9JROOAglxyXG4gICAgICovXHJcbiAgICBvbk5hdmlnYXRlKCkge1xyXG4gICAgICAgIE1pbmlHYW1lU2RrLkFQSS5uYXZpZ2F0ZVRvKCd4eHgnKTsgLy8geHh45pu/5o2i5Li65L2g55qE5bCP5ri45oiPaWRcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOa/gOa0u+Wtl+iKgui3s+WKqOWFpeWPo+inhuWbvuOAglxyXG4gICAgICogXHJcbiAgICAgKiDmraTmlrnms5XnlKjkuo7lsIblrZfoioLot7PliqjlhaXlj6Pop4blm77orr7nva7kuLrmtLvot4PnirbmgIHjgILlvZPpnIDopoHlnKjnlKjmiLfnlYzpnaLkuK3mmL7npLrlrZfoioLot7PliqjnmoTlhaXlj6Pml7bvvIxcclxuICAgICAqIOWPr+S7peiwg+eUqOatpOaWueazleadpea/gOa0u+ebuOW6lOeahOinhuWbvuWFg+e0oO+8jOS9v+WFtuWvueeUqOaIt+WPr+ingeOAglxyXG4gICAgICovXHJcbiAgICBvbkJ5dGVkYW5jZUVudHJhbmNlVmlldygpIHtcclxuICAgICAgICAvLyB0aGlzLmVudHJhbmNlVmlldy5hY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6K+35rGC55m75b2V5Luj56CBXHJcbiAgICAgKiBcclxuICAgICAqIOacrOWHveaVsOeUqOS6juinpuWPkeWwj+eoi+W6j+eahOeZu+W9lea1geeoi++8jOiOt+WPluW+ruS/oeaIluWktOadoeetieesrOS4ieaWueW5s+WPsOeahOeZu+W9leS7o+eggeOAglxyXG4gICAgICog6L+Z5Lqb5Luj56CB5Y+v5Lul55So5LqO5ZCO57ut55qE55So5oi36Lqr5Lu96aqM6K+B5ZKM5pWw5o2u5ZCM5q2l5rWB56iL44CCXHJcbiAgICAgKi9cclxuICAgIG9uR2V0TG9naW5Db2RlKCkge1xyXG4gICAgICAgIC8vIOiwg+eUqE1pbmlHYW1lU2Rr55qEQVBJ55m75b2V5pa55rOV77yM5Lyg5YWl5LiA5Liq5Zue6LCD5Ye95pWw5aSE55CG55m75b2V57uT5p6cXHJcbiAgICAgICAgTWluaUdhbWVTZGsuQVBJLmxvZ2luKChjb2RlOiBzdHJpbmcsIGFub255bW91c0NvZGU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAvLyDmiZPljbDlvq7kv6HmiJblpLTmnaHnmoTnmbvlvZXku6PnoIFcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ1dlY2hhdCBPciBCeXRlZGFuY2UgQ29kZTonLCBjb2RlKTtcclxuICAgICAgICAgICAgLy8g5omT5Y2w5aS05p2h55qE5Yy/5ZCN55m75b2V5Luj56CBXHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdCeXRlZGFuY2UgQW5vbnltb3VzIENvZGU6JywgYW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgIGlmKGNvZGUpe1xyXG4gICAgICAgICAgICAgICAgY2MuZnguR2FtZVRvb2wuZ2V0VXNlcklkKGNvZGUsIGRhdGEgPT4gdGhpcy5zZXRVc2VySWQoZGF0YSkpOyBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFVzZXJJZChkYXRhKXtcclxuICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID0gZGF0YS5kYXRhLnVzZXJJZDtcclxuICAgICAgICBNaW5pR2FtZVNkay5BUEkuZ2V0VXNlckluZm8odGhpcy5zZXRVc2VySW5mbyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0VXNlckluZm8oZGF0YSl7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLojrflj5bliLDnmoTnlKjmiLfkv6Hmga9cIixkYXRhLnVzZXJJbmZvKTtcclxuICAgICAgICB2YXIgdXNlRGF0YSA9IHtcclxuICAgICAgICAgICAgXCJnYW1lSWRcIjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVJZCxcclxuICAgICAgICAgICAgXCJ1c2VySWRcIjogY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCxcclxuICAgICAgICAgICAgXCJuaWNrTmFtZVwiOmRhdGEudXNlckluZm8ubmlja05hbWUsXHJcbiAgICAgICAgICAgIFwicGljXCI6IGRhdGEudXNlckluZm8uYXZhdGFyVXJsXHJcbiAgICAgICAgICAgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5Y2z5bCG5LiK5Lyg55qE55So5oi35L+h5oGvOlwiLGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VySWQsZGF0YS51c2VySW5mby5uaWNrTmFtZSxkYXRhLnVzZXJJbmZvLmF2YXRhclVybCk7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJQb3N05pWw5o2uOlwiLHVzZURhdGEpO1xyXG4gICAgICAgIGNjLmZ4Lkh0dHBVdGlsLnNldFVzZXJJbmZvKHVzZURhdGEsKHJlcyk9PntcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLkuIrkvKDmiJDlip86XCIscmVzKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWIm+W7uuW5tuaYvuekuua4uOaIj+WciOaMiemSrlxyXG4gICAgICogXHJcbiAgICAgKiDmnKzlh73mlbDpgJrov4fosIPnlKhNaW5pR2FtZVNka+eahEdhbWVDbHVi5a6e5L6L5pa55rOV77yM5a6e546w5ri45oiP5L+x5LmQ6YOo55qE5Yib5bu65ZKM5pi+56S644CCXHJcbiAgICAgKiDlroPpppblhYjphY3nva7kv7HkuZDpg6jnmoTlm77moIfnsbvlnovlkozkvY3nva7lpKflsI/vvIznhLblkI7liJvlu7rkv7HkuZDpg6jvvIzmnIDlkI7mmL7npLrkv7HkuZDpg6jjgIJcclxuICAgICAqIOi/meagt+WBmuaYr+S4uuS6huWcqOWwj+a4uOaIj+WGheWIm+W7uuW5tuWxleekuuS4gOS4qua4uOaIj+S/seS5kOmDqOeahOWbvuagh++8jOS+m+eOqeWutuWKoOWFpeaIluS6kuWKqOOAglxyXG4gICAgICovXHJcbiAgICBvbkNyZWF0ZUNsdWIoKSB7XHJcbiAgICAgICAgLy8g6YWN572u5L+x5LmQ6YOo5Zu+5qCH5Li657u/6Imy77yM6K6+572u5Zu+5qCH55qE5L2N572u5Li66aG26YOoMjAw5YOP57Sg77yM5bem5L6nMOWDj+e0oFxyXG4gICAgICAgIE1pbmlHYW1lU2RrLkdhbWVDbHViLmluc3RhbmNlLmNyZWF0ZShcclxuICAgICAgICAgICAgTWluaUdhbWVTZGsuRUdhbWVDbHViSWNvbi5HUkVFTixcclxuICAgICAgICAgICAgeyB0b3A6IDIwMCwgbGVmdDogMCB9LFxyXG4gICAgICAgICAgICB7IHdpZHRoOiA1MCwgaGVpZ2h0OiA1MCB9KTtcclxuICAgICAgICAvLyDmmL7npLrmuLjmiI/kv7HkuZDpg6jlm77moIdcclxuICAgICAgICBNaW5pR2FtZVNkay5HYW1lQ2x1Yi5pbnN0YW5jZS5zaG93KCk7XHJcbiAgICB9XHJcbn1cclxuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/Sdk/MiniGameSdk.js b/temp/quick-scripts/dst/assets/Script/Sdk/MiniGameSdk.js new file mode 100644 index 0000000..d89d95f --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/Sdk/MiniGameSdk.js @@ -0,0 +1,1124 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/Sdk/MiniGameSdk.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'c1af9nd7gNA95YJ04h9DdNX', 'MiniGameSdk'); +// Script/Sdk/MiniGameSdk.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MiniGameSdk = void 0; +/** + * 小游戏平台SDK工具封装,目前只支持微信和抖音平台 + */ +var MiniGameSdk; +(function (MiniGameSdk) { + function isWechat() { + //@ts-ignore + return window.wx !== null && window.wx !== undefined; + } + MiniGameSdk.isWechat = isWechat; + function isBytedance() { + //@ts-ignore + return window.tt !== null && window.tt !== undefined; + } + MiniGameSdk.isBytedance = isBytedance; + function getSysWinSize() { + var sys; + if (isWechat()) { + // @ts-ignore + sys = wx.getSystemInfoSync(); + } + else if (isBytedance()) { + // @ts-ignore + sys = tt.getSystemInfoSync(); + } + var size = { width: 0, height: 0 }; + if (sys) { + size.width = sys.windowWidth; + size.height = sys.windowHeight; + } + return size; + } + /** + * 插屏广告。微信抖音都支持! + */ + var ADInterstitial = /** @class */ (function () { + function ADInterstitial(adUid) { + this._adUid = adUid; + } + Object.defineProperty(ADInterstitial.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADInterstitial.prototype.show = function () { + var _this = this; + var _a, _b; + // @ts-ignore + if (isWechat() && !wx.createInterstitialAd) { + console.warn('wechat unsupport interstitial AD!'); + this._interstitial = null; + return; + } + // @ts-ignore + if (isBytedance() && !tt.createInterstitialAd) { + console.warn('bytedance unsupport interstitial AD!'); + this._interstitial = null; + return; + } + if (this._interstitial) { + this._interstitial.load(); + } + else { + if (isWechat()) { + // @ts-ignore + this._interstitial = wx.createInterstitialAd({ adUnitId: this._adUid }); + } + else if (isBytedance()) { + // @ts-ignore + this._interstitial = tt.createInterstitialAd({ adUnitId: this._adUid }); + } + else { + this._interstitial = null; + } + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.onLoad(function () { + console.log('load interstitial ad success'); + _this._interstitial.show().catch(function (err) { + console.log('catch interstitial ad error:', err); + }); + }); + (_b = this._interstitial) === null || _b === void 0 ? void 0 : _b.onError(function (err) { + console.log('interstitial ad on error:', err); + }); + } + }; + ADInterstitial.prototype.destory = function () { + var _a; + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADInterstitial; + }()); + var ADBanner = /** @class */ (function () { + /** + * 抖音和微信都支持 + * 横幅广告。预估宽度默认为300,预估高度为140。如果你不确定就按默认值来。 + * @param adUid 广告UID,后端配置 + * @param isTop 是否在屏幕顶部展示。内部会自动居中计算位置。 + * @param bannerWidth 横幅广告的预估宽度。默认300 + * @param autoShow 广告加载完成后是否立刻显示,默认为不显示 + */ + function ADBanner(adUid, param, bannerWidth, autoShow) { + if (bannerWidth === void 0) { bannerWidth = 300; } + if (autoShow === void 0) { autoShow = false; } + this._adUid = adUid; + this.create(autoShow, bannerWidth, param); // 默认300比较合适 + } + Object.defineProperty(ADBanner.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADBanner.prototype.create = function (autoShow, bannerWidth, param) { + var _this = this; + var _a, _b; + if (!isWechat() && !isBytedance()) { + this._banner = null; + return; + } + this.destroy(); + var winSize = getSysWinSize(); + var height = bannerWidth * 0.4; + var top = 0, left = 0; + if (typeof param === "boolean") { + left = (winSize.width - bannerWidth) / 2; + top = param ? 5 : (winSize.height - height); + } + else { + left = param.left; + top = param.top; + } + var params = { + adUnitId: this._adUid, + adIntervals: 30, + style: { left: left, top: top, width: bannerWidth } + }; + if (isWechat()) { + // @ts-ignore + this._banner = wx.createBannerAd(params); + } + else if (isBytedance()) { + // @ts-ignore + this._banner = tt.createBannerAd(params); + } + else { + this._banner = null; + } + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.onError(function (err) { + console.log('ad banner error:', err); + }); + (_b = this._banner) === null || _b === void 0 ? void 0 : _b.onLoad(function () { + autoShow && _this._banner.show(); + }); + }; + ADBanner.prototype.show = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.show(); + }; + ADBanner.prototype.hide = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.hide(); + }; + ADBanner.prototype.destroy = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADBanner; + }()); + var ADCustom = /** @class */ (function () { + /** + * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持! + * @param adUid 广告UID,后端配置 + * @param top 从左上角开始,距离屏幕顶部的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。 + * @param left 从左上角开始,距离屏幕最左边的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。 + * @param scale 原生模板广告的尺寸,默认为1,即100%。此值在微信服务后端广告中获得,默认为100%,目前有100%,90%,80%三种,一般情况不用修改。若有修改,记得传入值,例如90%就传入0.9。 + */ + function ADCustom(adUid, top, left, scale) { + if (top === void 0) { top = 0; } + if (left === void 0) { left = 0; } + if (scale === void 0) { scale = 1.0; } + this._adUid = adUid; + this.createCustomAd(top, left, scale); + } + Object.defineProperty(ADCustom.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADCustom.prototype.createCustomAd = function (top, left, scale) { + var _a; + if (!isWechat()) { // only wechat support custom ad + this._adCustom = null; + console.log('Only wechat support Custom Ad'); + return; + } + this.destroy(); + // 原生模板5个应用宽度为375,若设置了缩放比例,则宽度也需要设置 + // let width = 375 * this._scale; + // let newLeft = (sys.windowWidth - width) / 2; + // let newTop = sys.windowHeight / 2; // 120是预估高度 + // @ts-ignore + this._adCustom = wx.createCustomAd({ + adUnitId: this._adUid, + style: { left: left, top: top, fixed: true } + }); + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.onError(function (err) { + console.log('ad custom error:', err); + }); + }; + ADCustom.prototype.show = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.show(); + }; + ADCustom.prototype.hide = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.hide(); + }; + ADCustom.prototype.destroy = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADCustom; + }()); + /** + * 视频广告用户点击行为结果 + */ + var EAdVideoResult; + (function (EAdVideoResult) { + /** + * 用户看完了广告,游戏可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["ACCEPT"] = 0] = "ACCEPT"; + /** + * 用户中途关闭了广告,即未看完状态。不可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["REJECT"] = 1] = "REJECT"; + /** + * 广告组件内部发生了错误。不可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["ERROR"] = 2] = "ERROR"; + })(EAdVideoResult = MiniGameSdk.EAdVideoResult || (MiniGameSdk.EAdVideoResult = {})); + var ADVideo = /** @class */ (function () { + function ADVideo(adUid) { + this._adVideo = null; + this._adUid = adUid; + } + Object.defineProperty(ADVideo.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + /** + * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount + * @param onResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 + * @param target onResult的拥有者 + * @param maxVideoCount 可以连续看最大视频个数,可最大化商业效率。默认为3个。 + * @returns + */ + ADVideo.prototype.show = function (onResult, target, maxVideoCount) { + var _this = this; + var _a, _b, _c, _d, _e; + if (maxVideoCount === void 0) { maxVideoCount = 3; } + var callback = function (state, count) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, state, count); + }; + if (!isWechat() && !isBytedance()) { + callback(EAdVideoResult.ACCEPT, 1); + this._adVideo = null; + return; + } + var onAdVideoClosed = function (res) { + var _a; + (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.offClose(onAdVideoClosed); + if (isWechat()) { + if (res && res.isEnded || res === undefined) { + callback(EAdVideoResult.ACCEPT, 1); + } + else { + callback(EAdVideoResult.REJECT, 0); + } + } + else if (isBytedance()) { + var resConverted = res; + if (resConverted && resConverted.count > 0) { + callback(EAdVideoResult.ACCEPT, resConverted.count); + } + else { + callback(EAdVideoResult.REJECT, 0); + } + } + }; + (_a = this._adVideo) === null || _a === void 0 ? void 0 : _a.offClose(onAdVideoClosed); + if (isWechat()) { + // @ts-ignore + this._adVideo = wx.createRewardedVideoAd({ + adUnitId: this._adUid + }); + } + else if (isBytedance()) { + // @ts-ignore + this._adVideo = tt.createRewardedVideoAd({ + adUnitId: this._adUid, + multiton: true, + multitonRewardMsg: ['多1次奖励', '再多一次奖励', '再多一次奖励'], + multitonRewardTimes: maxVideoCount, + }); + } + else { + this._adVideo = null; + } + (_b = this._adVideo) === null || _b === void 0 ? void 0 : _b.onLoad(function () { + console.log('Ad load success'); + }); + (_c = this._adVideo) === null || _c === void 0 ? void 0 : _c.onError(function (err) { + console.log('Ad video error:', err); + callback(EAdVideoResult.ERROR, 0); + }); + (_d = this._adVideo) === null || _d === void 0 ? void 0 : _d.onClose(onAdVideoClosed); + (_e = this._adVideo) === null || _e === void 0 ? void 0 : _e.show().catch(function () { + var _a; + (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.load().then(function () { var _a; return (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.show(); }).catch(function (err) { + console.log('Catch video ad error:', err); + callback(EAdVideoResult.ERROR, 0); + }); + }); + }; + ADVideo.prototype.destory = function () { + var _a; + (_a = this._adVideo) === null || _a === void 0 ? void 0 : _a.destory(); + }; + return ADVideo; + }()); + var EAdBannerLocation; + (function (EAdBannerLocation) { + /** + * 屏幕顶部 + */ + EAdBannerLocation[EAdBannerLocation["TOP"] = 0] = "TOP"; + /** + * 屏幕底部 + */ + EAdBannerLocation[EAdBannerLocation["BOTTOM"] = 1] = "BOTTOM"; + })(EAdBannerLocation = MiniGameSdk.EAdBannerLocation || (MiniGameSdk.EAdBannerLocation = {})); + var AdvertManager = /** @class */ (function () { + function AdvertManager() { + this._customs = {}; + } + Object.defineProperty(AdvertManager, "instance", { + get: function () { + if (!AdvertManager._instance) { + AdvertManager._instance = new AdvertManager(); + } + return AdvertManager._instance; + }, + enumerable: false, + configurable: true + }); + /** + * 预加载横幅广告,不会显示。只有你在调用showBanner时才会显示。 + * 可重复调用,但是会销毁上一次的实例。一般情况,全局有一个就行了,太多占用内存,而且没必要。 + * @param adUid 广告UID + * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置 + * @param scale 默认为跟屏幕一样的宽度,可以通过设置缩放比例来调整大小。当然,平台有规定最大或最小宽度,函数内部会自动计算。 + */ + AdvertManager.prototype.loadBanner = function (adUid, location, scale) { + var _a; + if (location === void 0) { location = EAdBannerLocation.TOP; } + if (scale === void 0) { scale = 1.0; } + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + var size = getSysWinSize(); + // 当 style.width 小于 300 时,会取作 300。 当 style.width 大于屏幕宽度时,会取作屏幕宽度。 + var width = size.width * scale; + width = width < 300 ? 300 : width; // 最小值矫正 + width = width > size.width ? size.width : width; //最大值矫正 + this._banner = typeof location === 'number' ? new ADBanner(adUid, location === EAdBannerLocation.TOP, width, false) : new ADBanner(adUid, location, width, false); + }; + /** + * 显示横幅广告 + */ + AdvertManager.prototype.showBanner = function () { + if (this._banner) { + this._banner.show(); + } + else { + console.warn('MiniGameSDK: banner is null, you must call loadBanner(...) first!'); + } + }; + /** + * 隐藏横幅广告 + */ + AdvertManager.prototype.hideBanner = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.hide(); + }; + /** + * 弹出插屏广告 + * @param adUid 广告单元id + */ + AdvertManager.prototype.showInterstitial = function (adUid) { + var _a; + if (this._interstitial && this._interstitial.aduid === adUid) { + this._interstitial.show(); + } + else { + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.destory(); + this._interstitial = new ADInterstitial(adUid); + this._interstitial.show(); + } + }; + /** + * 加载原生模板广告,不会显示。只有你在调用showCustom时才会显示。 + * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持本函数,会调用无效! + * @param adUid 广告ID + * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置 + * @param scale 缩放比例,默认是1,即不缩放。这个缩放并不是自己填,而是根据微信MP后台你配置的原生模板广告的缩放比例填,目前有100%,90%,80%三种,一般情况不用修改。若有后台修改,记得传入值,例如90%就传入0.9。 + */ + AdvertManager.prototype.loadCustom = function (adUid, location, scale) { + if (location === void 0) { location = { top: 0, left: 0 }; } + if (scale === void 0) { scale = 1; } + // this._custom?.destroy(); + // this._custom = new ADCustom(adUid, location.top, location.left, scale); + if (this._customs[adUid]) { + console.log(adUid + " has been loaded."); + return; + } + this._customs[adUid] = new ADCustom(adUid, location.top, location.left, scale); + }; + /** + * 显示自定义广告。 + * @param adUid 广告的唯一标识符。使用此标识符来查找和显示特定的自定义广告。 + * + * 此方法尝试根据提供的adUid显示一个自定义广告。如果给定的adUid对应的自定义广告已加载, + * 则调用该广告的显示方法。如果广告未加载,则在控制台输出警告信息。 + */ + AdvertManager.prototype.showCustom = function (adUid) { + if (this._customs[adUid]) { + this._customs[adUid].show(); + } + else { + console.warn("You have not load " + adUid + " of Custom AD, can not show!"); + } + }; + /** + * 隐藏指定的自定义广告单元 + * + * 此方法用于隐藏通过广告单元标识符(adUid)指定的自定义广告。如果指定的广告单元已加载并显示, + * 则将其隐藏;如果广告单元未加载,则在控制台输出警告信息。 + * + * @param adUid 广告单元标识符,用于唯一标识一个自定义广告单元。 + */ + AdvertManager.prototype.hideCustom = function (adUid) { + if (this._customs[adUid]) { + this._customs[adUid].hide(); + } + else { + console.warn("You have not load " + adUid + " of Custom AD, can not hide!"); + } + }; + /** + * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount + * @param adUid 广告ID。如果与上一次UID不同,则内部会重新创建实例。开发者完全不用关心这个细节。 + * @param onVideoResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 + * @param target onVideoResult的拥有者 + * @param maxVideoCount 最大视频个数。默认是3,仅对抖音平台生效。微信平台看完视频count的结果永远是1或0 + */ + AdvertManager.prototype.showVideo = function (adUid, onVideoResult, target, maxVideoCount) { + var _a; + if (maxVideoCount === void 0) { maxVideoCount = 3; } + if (this._video && this._video.aduid === adUid) { + this._video.show(onVideoResult, target, maxVideoCount); + } + else { + (_a = this._video) === null || _a === void 0 ? void 0 : _a.destory(); + this._video = new ADVideo(adUid); + this._video.show(onVideoResult, target, maxVideoCount); + } + }; + /** + * 销毁内部所有实例,清空内存 + */ + AdvertManager.prototype.destroyAll = function () { + var _a, _b, _c, _d; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + this._banner = null; + (_b = this._interstitial) === null || _b === void 0 ? void 0 : _b.destory(); + this._interstitial = null; + (_c = this._video) === null || _c === void 0 ? void 0 : _c.destory(); + this._video = null; + if (this._customs) { + for (var val in this._customs) { + (_d = this._customs[val]) === null || _d === void 0 ? void 0 : _d.destroy(); + } + this._customs = {}; + } + }; + return AdvertManager; + }()); + MiniGameSdk.AdvertManager = AdvertManager; + var EGameClubIcon; + (function (EGameClubIcon) { + /** 绿色图标 */ + EGameClubIcon["GREEN"] = "green"; + /** 红色图标 */ + EGameClubIcon["WHITE"] = "white"; + /** 有黑色圆角背景的白色图标 */ + EGameClubIcon["DARK"] = "dark"; + /** 有白色圆角背景的绿色图标 */ + EGameClubIcon["LIGHT"] = "light"; + })(EGameClubIcon = MiniGameSdk.EGameClubIcon || (MiniGameSdk.EGameClubIcon = {})); + var GameClub = /** @class */ (function () { + function GameClub() { + } + Object.defineProperty(GameClub, "instance", { + get: function () { + if (!this._instance) { + this._instance = new GameClub(); + } + return this._instance; + }, + enumerable: false, + configurable: true + }); + /** + * 创建游戏圈按钮 + * @param icon + * @param position + * @param size + * @param openLink + */ + GameClub.prototype.create = function (icon, position, size, openLink) { + if (icon === void 0) { icon = EGameClubIcon.GREEN; } + if (position === void 0) { position = { top: 0, left: 0 }; } + if (size === void 0) { size = { width: 40, height: 40 }; } + if (isWechat()) { + // @ts-ignore + this._club = wx.createGameClubButton({ + icon: icon, + style: { + left: position.left, + top: position.top, + width: size.width, + height: size.height + }, + openlink: openLink + }); + } + }; + GameClub.prototype.show = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.show(); + }; + GameClub.prototype.hide = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.hide(); + }; + GameClub.prototype.destory = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return GameClub; + }()); + MiniGameSdk.GameClub = GameClub; + /** + * 振动类型 + */ + var EVirbrateType; + (function (EVirbrateType) { + /** + * 短振动 + */ + EVirbrateType[EVirbrateType["SHORT"] = 0] = "SHORT"; + /** + * 长振动 + */ + EVirbrateType[EVirbrateType["LONG"] = 1] = "LONG"; + })(EVirbrateType = MiniGameSdk.EVirbrateType || (MiniGameSdk.EVirbrateType = {})); + /** + * 平台常用API合集 + */ + var API = /** @class */ (function () { + function API() { + } + /** + * 分享app给朋友,微信小游戏分享是没有onSuccess回调的。 + * @param title 标题 + * @param description 细节描述信息 + * @param imageUrl 图片地址 + * @param query 查询信息 + * @param onSuccess 抖音会回调,微信不会回调 + */ + API.shareAppToFriends = function (title, description, imageUrl, query, onSuccess) { + if (description === void 0) { description = ''; } + if (isWechat()) { + try { + //@ts-ignore + wx.shareAppMessage({ + title: title, + imageUrl: imageUrl, + query: query, + }); + } + catch (err) { + console.log("share faild: " + err); + } + } + if (isBytedance()) { + //@ts-ignore + tt.shareAppMessage({ + title: title, + desc: description, + imageUrl: imageUrl !== null && imageUrl !== void 0 ? imageUrl : '', + query: query !== null && query !== void 0 ? query : '', + success: function (res) { + console.log('share success:', res); + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + }, + fail: function (res) { + console.log('share fail:', res); + } + }); + } + }; + /** + * 显示提示信息 + * @param title 标题 + * @param duration 时长(单位:秒) + * @returns + */ + API.showToast = function (title, duration) { + if (duration === void 0) { duration = 2; } + if (isWechat()) { + // @ts-ignore + wx.showToast({ + title: title, + icon: 'success', + duration: duration * 1000 + }); + } + if (isBytedance()) { + //@ts-ignore + tt.showToast({ + title: title, + duration: duration * 1000, + success: function (res) { + console.log("" + res); + }, + fail: function (res) { + console.log("showToast\u8C03\u7528\u5931\u8D25"); + }, + }); + } + }; + /** + * 设备震动效果,默认为短震动。注意:可能一些机型不会生效,具体看平台方的说明 + * @param type MiniGameSdk.API.EVirbrateType + */ + API.vibrate = function (type) { + if (type === void 0) { type = EVirbrateType.SHORT; } + if (isWechat()) { + switch (type) { + case EVirbrateType.SHORT: + //@ts-ignore + wx.vibrateShort({ + success: function (res) { + console.log('vibrate success:', res); + }, + fail: function (res) { + console.log('vibrateShort failed', res); + }, + }); + break; + case EVirbrateType.LONG: + //@ts-ignore + wx.vibrateLong({ + success: function (res) { + console.log('vibrate success', res); + }, + fail: function (res) { + console.log("vibrateLong failed", res); + }, + }); + break; + default: + break; + } + } + if (isBytedance()) { + switch (type) { + case EVirbrateType.SHORT: + //@ts-ignore + tt.vibrateShort({ + success: function (res) { + console.log('vibrate success:', res); + }, + fail: function (res) { + console.log('vibrateShort failed', res); + }, + }); + break; + case EVirbrateType.LONG: + //@ts-ignore + tt.vibrateLong({ + success: function (res) { + console.log('vibrate success', res); + }, + fail: function (res) { + console.log("vibrateLong failed", res); + }, + }); + break; + default: + break; + } + } + }; + /** + * 重启小游戏 + */ + API.reboot = function () { + if (isWechat()) { + //@ts-ignore + wx.restartMiniProgram({ + success: function () { + console.log('restart success'); + }, + fail: function () { + console.log('restart failed'); + } + }); + } + if (isBytedance()) { + try { + // @ts-ignore + tt.restartMiniProgramSync(); + } + catch (error) { + console.log("restartMiniProgramSync", error); + } + } + }; + /** + * 退出小游戏 + */ + API.exit = function () { + if (isWechat()) { + //@ts-ignore + wx.exitMiniProgram({ + success: function () { + console.log('exit success'); + }, + fail: function () { + console.log('exit failed'); + } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.exitMiniProgram({ + success: function (res) { + console.log("exit success:", res === null || res === void 0 ? void 0 : res.data); + }, + fail: function (res) { + console.log("exit fail:", res === null || res === void 0 ? void 0 : res.errMsg); + }, + }); + } + }; + /** + * 显示转发按钮。通常在刚进入游戏的时候调用。 + * 主要是打开平台“...”这个按钮里面的分享菜单,一般默认是关闭的,需要调用这个函数打开。可以让用户分享你的游戏入口。 + */ + API.showShareMenu = function () { + if (isWechat()) { + //@ts-ignore + wx.showShareMenu({ + withShareTicket: true, + menus: ['shareAppMessage', 'shareTimeline'], + success: function () { }, + fail: function () { }, + complete: function () { } + }); + } + if (isBytedance()) { + //@ts-ignore + tt.showShareMenu({ + success: function (res) { + console.log("show menu is showing"); + }, + fail: function (err) { + console.log("showShareMenu:", err.errMsg); + }, + complete: function (res) { + console.log("showShareMenu complete"); + }, + }); + } + }; + /** + * 微信小游戏:跳转到另外一款小游戏 + * 抖音小游戏:跳转到指定的视频界面 + * @param targetId 微信小游戏appid或者视频界面 + */ + API.navigateTo = function (targetId, onSuccess) { + if (isWechat()) { + // @ts-ignore + wx.navigateToMiniProgram({ + appId: targetId, + extraData: { + foo: 'bar' + }, + envVersion: 'develop', + success: function (res) { + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.navigateToVideoView({ + videoId: targetId, + success: function (res) { + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + }, + fail: function (err) { + console.log("bytedance navigateToVideoView fail", err); + }, + }); + } + }; + /** + * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session + * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null + */ + API.login = function (callback) { + var loginPlatform = function () { + if (isWechat()) { + //@ts-ignore + wx.login({ + success: function (res) { + if (res.code) { + API._loginCode = res.code; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + } + else { + console.log('login error:', res.errMsg); + } + }, + fail: function () { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log('login fail'); + } + }); + } + else if (isBytedance()) { + //@ts-ignore + tt.login({ + force: true, + success: function (res) { + var _a, _b; + console.log("login " + res.code + " " + res.anonymousCode); + if (res.code) { + API._loginCode = (_a = res.code) === null || _a === void 0 ? void 0 : _a.toString(); + API._loginAnonymousCode = (_b = res.anonymousCode) === null || _b === void 0 ? void 0 : _b.toString(); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + } + else { + console.log('login error:', res.errMsg); + } + }, + fail: function (res) { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log("login fail", res); + }, + }); + } + else { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log('not mini game platform, login codes are all null'); + } + }; + if (!API._loginCode) { + loginPlatform(); + } + else { + if (isWechat()) { + //@ts-ignore + wx.checkSession({ + success: function () { + console.log("session is valid, use current code:", API._loginCode); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + }, + fail: function () { + console.log("session expired"); + loginPlatform(); + } + }); + } + else if (isBytedance()) { + //@ts-ignore + tt.checkSession({ + success: function () { + console.log("session is valid, user current code: " + API._loginCode + ", " + API._loginAnonymousCode); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + }, + fail: function () { + console.log("session expired"); + loginPlatform(); + }, + }); + } + else { + console.log('not mini game platform, login null'); + callback === null || callback === void 0 ? void 0 : callback(null, null); + } + } + }; + /** + * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session + * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null + */ + API.getUserInfo = function (callback) { + //@ts-ignore + tt.getUserInfo({ + withCredentials: true, + success: function (res) { + API._userInfo = res; + callback(API._userInfo); + }, + fail: function (err) { + callback(err); + } + }); + }; + /** + * 调用微信云函数。由于参数需要自定义,所以为any,需要自行解释。函数只完成通道和处理一场的作用 + * @param callback 返回云函数调用结果。需要检查返回参数是否为空,失败的时候为空 + * @param name 云函数的名字 + * @param data 云函数的内容 + */ + API.callWechatCloudFunction = function (callback, name, data) { + if (!isWechat()) { + console.log('Not wechat platform, not support callWechatCloudFunction'); + return; + } + this.login(function (code, anonymousCode) { + if (!API._hasInitWechatCloudFunction) { + //@ts-ignore + wx.cloud.init(); + API._hasInitWechatCloudFunction = true; + } + //@ts-ignore + wx.cloud.callFunction({ + name: name, + data: data, + success: function (res) { return callback === null || callback === void 0 ? void 0 : callback(res); }, + fail: function (err) { + console.log('wechat cloud function error:', err); + callback === null || callback === void 0 ? void 0 : callback(null); + } + }); + }); + }; + /** + * 存储用户信息,数据量不能大。可以考虑用于分数排行榜。用户之间可共享排行数据。 + * @param key + * @param value + */ + API.setUserCloudStorage = function (key, value) { + if (isWechat()) { + // @ts-ignore + wx.setUserCloudStorage({ + KVDataList: [{ key: key, value: value }], + success: function () { return console.log("set cloud storage success:" + key + ", value:" + value); }, + fail: function (err) { return console.log('set cloud storage error:', err); } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.setUserCloudStorage({ + KVDataList: [{ key: key, value: value, }], + success: function () { return console.log("set cloud storage success:" + key + ", value:" + value); }, + fail: function (err) { return console.log('set cloud storage error:', err); } + }); + } + }; + API._loginCode = null; + API._loginAnonymousCode = null; + API._hasInitWechatCloudFunction = false; + API._userInfo = null; + return API; + }()); + MiniGameSdk.API = API; + /** + * 抖音侧边栏专属接口 + */ + var BytedanceSidebar = /** @class */ (function () { + function BytedanceSidebar() { + } + /** + * 本游戏在抖音环境下启动监控,需要放在全局环境中,保证能第一时间启动。因为可能监听抖音失败(抖音小游戏官方的说明)! + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + */ + BytedanceSidebar.listenFromSidebar = function (onResult, target) { + if (!isBytedance()) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + // @ts-ignore + tt.onShow(function (res) { + console.log('onShow launch res:', res); + if (res.scene === '021036') { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + console.log('launch from sidebar'); + } + else { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + console.log('NOT launch from douyin sidebar!'); + } + }); + // @ts-ignore + var options = tt.getLaunchOptionsSync(); + if (options && options.scene === '021036') { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + } + }; + /** + * 检测抖音侧边栏是否存在 + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + * @returns + */ + BytedanceSidebar.checkSideBar = function (onResult, target) { + if (!isBytedance()) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + //@ts-ignore + tt.checkScene({ + scene: "sidebar", + success: function (res) { + console.log("check scene success: ", res.isExist); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, res.isExist); + }, + fail: function (res) { + console.log("check scene fail:", res); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + } + }); + }; + /** + * 跳转到抖音侧边栏 + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + * @returns + */ + BytedanceSidebar.navigateToSidebar = function (onResult, target) { + if (!isBytedance()) { + console.log("not douyin platform!"); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + // @ts-ignore + tt.navigateToScene({ + scene: "sidebar", + success: function () { + console.log("navigate success"); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + }, + fail: function (res) { + console.log("navigate failed reason:", res); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + }, + }); + }; + return BytedanceSidebar; + }()); + MiniGameSdk.BytedanceSidebar = BytedanceSidebar; +})(MiniGameSdk = exports.MiniGameSdk || (exports.MiniGameSdk = {})); + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxTZGtcXE1pbmlHYW1lU2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsSUFBaUIsV0FBVyxDQXNtQzNCO0FBdG1DRCxXQUFpQixXQUFXO0lBWXhCLFNBQWdCLFFBQVE7UUFDcEIsWUFBWTtRQUNaLE9BQU8sTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxTQUFTLENBQUM7SUFDekQsQ0FBQztJQUhlLG9CQUFRLFdBR3ZCLENBQUE7SUFFRCxTQUFnQixXQUFXO1FBQ3ZCLFlBQVk7UUFDWixPQUFPLE1BQU0sQ0FBQyxFQUFFLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDO0lBQ3pELENBQUM7SUFIZSx1QkFBVyxjQUcxQixDQUFBO0lBR0QsU0FBUyxhQUFhO1FBQ2xCLElBQUksR0FBUSxDQUFDO1FBQ2IsSUFBSSxRQUFRLEVBQUUsRUFBRTtZQUNaLGFBQWE7WUFDYixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDaEM7YUFBTSxJQUFJLFdBQVcsRUFBRSxFQUFFO1lBQ3RCLGFBQWE7WUFDYixHQUFHLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDaEM7UUFFRCxJQUFJLElBQUksR0FBVSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzFDLElBQUksR0FBRyxFQUFFO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztTQUNsQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNIO1FBUUksd0JBQVksS0FBYTtZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtB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c0IsQ0FBQyxDQUFDO2dCQUNwQyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQzlCLE9BQU87YUFDVjtZQUVELGFBQWE7WUFDYixFQUFFLENBQUMsZUFBZSxDQUFDO2dCQUNmLEtBQUssRUFBRSxTQUFTO2dCQUNoQixPQUFPLEVBQUU7b0JBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO29CQUNoQyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2pDLENBQUM7Z0JBQ0QsSUFBSSxFQUFFLFVBQUMsR0FBUTtvQkFDWCxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUM1QyxRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ2xDLENBQUM7YUFDSixDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0wsdUJBQUM7SUFBRCxDQW5GQSxBQW1GQyxJQUFBO0lBbkZZLDRCQUFnQixtQkFtRjVCLENBQUE7QUFFTCxDQUFDLEVBdG1DZ0IsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFzbUMzQiIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiDlsI/muLjmiI/lubPlj7BTREvlt6XlhbflsIHoo4XvvIznm67liY3lj6rmlK/mjIHlvq7kv6Hlkozmipbpn7PlubPlj7BcclxuICovXHJcbmV4cG9ydCBuYW1lc3BhY2UgTWluaUdhbWVTZGsge1xyXG5cclxuICAgIGludGVyZmFjZSBJU2l6ZSB7XHJcbiAgICAgICAgd2lkdGg6IG51bWJlcjtcclxuICAgICAgICBoZWlnaHQ6IG51bWJlcjtcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgaW50ZXJmYWNlIElQb3NpdGlvbiB7XHJcbiAgICAgICAgdG9wOiBudW1iZXI7XHJcbiAgICAgICAgbGVmdDogbnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBmdW5jdGlvbiBpc1dlY2hhdCgpOiBib29sZWFuIHtcclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICByZXR1cm4gd2luZG93Lnd4ICE9PSBudWxsICYmIHdpbmRvdy53eCAhPT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBmdW5jdGlvbiBpc0J5dGVkYW5jZSgpOiBib29sZWFuIHtcclxuICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICByZXR1cm4gd2luZG93LnR0ICE9PSBudWxsICYmIHdpbmRvdy50dCAhPT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBnZXRTeXNXaW5TaXplKCk6IElTaXplIHtcclxuICAgICAgICBsZXQgc3lzOiBhbnk7XHJcbiAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBzeXMgPSB3eC5nZXRTeXN0ZW1JbmZvU3luYygpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHN5cyA9IHR0LmdldFN5c3RlbUluZm9TeW5jKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgc2l6ZTogSVNpemUgPSB7IHdpZHRoOiAwLCBoZWlnaHQ6IDAgfTtcclxuICAgICAgICBpZiAoc3lzKSB7XHJcbiAgICAgICAgICAgIHNpemUud2lkdGggPSBzeXMud2luZG93V2lkdGg7XHJcbiAgICAgICAgICAgIHNpemUuaGVpZ2h0ID0gc3lzLndpbmRvd0hlaWdodDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBzaXplO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5o+S5bGP5bm/5ZGK44CC5b6u5L+h5oqW6Z+z6YO95pSv5oyB77yBXHJcbiAgICAgKi9cclxuICAgIGNsYXNzIEFESW50ZXJzdGl0aWFsIHtcclxuICAgICAgICBwcml2YXRlIF9hZFVpZDogc3RyaW5nO1xyXG4gICAgICAgIHByaXZhdGUgX2ludGVyc3RpdGlhbDogYW55O1xyXG5cclxuICAgICAgICBnZXQgYWR1aWQoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZFVpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0cnVjdG9yKGFkVWlkOiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRVaWQgPSBhZFVpZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNob3coKSB7XHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkgJiYgIXd4LmNyZWF0ZUludGVyc3RpdGlhbEFkKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ3dlY2hhdCB1bnN1cHBvcnQgaW50ZXJzdGl0aWFsIEFEIScpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICBpZiAoaXNCeXRlZGFuY2UoKSAmJiAhdHQuY3JlYXRlSW50ZXJzdGl0aWFsQWQpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybignYnl0ZWRhbmNlIHVuc3VwcG9ydCBpbnRlcnN0aXRpYWwgQUQhJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX2ludGVyc3RpdGlhbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsLmxvYWQoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IHd4LmNyZWF0ZUludGVyc3RpdGlhbEFkKHsgYWRVbml0SWQ6IHRoaXMuX2FkVWlkIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbCA9IHR0LmNyZWF0ZUludGVyc3RpdGlhbEFkKHsgYWRVbml0SWQ6IHRoaXMuX2FkVWlkIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbD8ub25Mb2FkKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbG9hZCBpbnRlcnN0aXRpYWwgYWQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbC5zaG93KCkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjYXRjaCBpbnRlcnN0aXRpYWwgYWQgZXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbD8ub25FcnJvcigoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnaW50ZXJzdGl0aWFsIGFkIG9uIGVycm9yOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBkZXN0b3J5KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWw/LmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xhc3MgQURCYW5uZXIge1xyXG4gICAgICAgIHByaXZhdGUgX2FkVWlkOiBzdHJpbmc7XHJcbiAgICAgICAgcHJpdmF0ZSBfYmFubmVyOiBhbnk7XHJcblxyXG4gICAgICAgIGdldCBhZHVpZCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5oqW6Z+z5ZKM5b6u5L+h6YO95pSv5oyBXHJcbiAgICAgICAgICog5qiq5bmF5bm/5ZGK44CC6aKE5Lyw5a695bqm6buY6K6k5Li6MzAw77yM6aKE5Lyw6auY5bqm5Li6MTQw44CC5aaC5p6c5L2g5LiN56Gu5a6a5bCx5oyJ6buY6K6k5YC85p2l44CCXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRilVJRO+8jOWQjuerr+mFjee9rlxyXG4gICAgICAgICAqIEBwYXJhbSBpc1RvcCDmmK/lkKblnKjlsY/luZXpobbpg6jlsZXnpLrjgILlhoXpg6jkvJroh6rliqjlsYXkuK3orqHnrpfkvY3nva7jgIJcclxuICAgICAgICAgKiBAcGFyYW0gYmFubmVyV2lkdGgg5qiq5bmF5bm/5ZGK55qE6aKE5Lyw5a695bqm44CC6buY6K6kMzAwXHJcbiAgICAgICAgICogQHBhcmFtIGF1dG9TaG93IOW5v+WRiuWKoOi9veWujOaIkOWQjuaYr+WQpueri+WIu+aYvuekuu+8jOm7mOiupOS4uuS4jeaYvuekulxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0cnVjdG9yKGFkVWlkOiBzdHJpbmcsIHBhcmFtOiBib29sZWFuIHwgSVBvc2l0aW9uLCBiYW5uZXJXaWR0aDogbnVtYmVyID0gMzAwLCBhdXRvU2hvdzogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FkVWlkID0gYWRVaWQ7XHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlKGF1dG9TaG93LCBiYW5uZXJXaWR0aCwgcGFyYW0pOyAvLyDpu5jorqQzMDDmr5TovoPlkIjpgIJcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByaXZhdGUgY3JlYXRlKGF1dG9TaG93OiBib29sZWFuLCBiYW5uZXJXaWR0aDogbnVtYmVyLCBwYXJhbTogYm9vbGVhbiB8IElQb3NpdGlvbikge1xyXG4gICAgICAgICAgICBpZiAoIWlzV2VjaGF0KCkgJiYgIWlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2Jhbm5lciA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xyXG5cclxuICAgICAgICAgICAgbGV0IHdpblNpemUgPSBnZXRTeXNXaW5TaXplKCk7XHJcblxyXG4gICAgICAgICAgICBsZXQgaGVpZ2h0ID0gYmFubmVyV2lkdGggKiAwLjQ7XHJcbiAgICAgICAgICAgIGxldCB0b3AgPSAwLCBsZWZ0ID0gMDtcclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcGFyYW0gPT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgICAgICAgICAgICBsZWZ0ID0gKHdpblNpemUud2lkdGggLSBiYW5uZXJXaWR0aCkgLyAyXHJcbiAgICAgICAgICAgICAgICB0b3AgPSBwYXJhbSA/IDUgOiAod2luU2l6ZS5oZWlnaHQgLSBoZWlnaHQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGVmdCA9IHBhcmFtLmxlZnQ7XHJcbiAgICAgICAgICAgICAgICB0b3AgPSBwYXJhbS50b3A7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgICAgICAgICAgICBhZFVuaXRJZDogdGhpcy5fYWRVaWQsXHJcbiAgICAgICAgICAgICAgICBhZEludGVydmFsczogMzAsLy8g6Ieq5Yqo5Yi35paw6aKR546H5LiN6IO95bCP5LqOMzDnp5JcclxuICAgICAgICAgICAgICAgIHN0eWxlOiB7IGxlZnQ6IGxlZnQsIHRvcDogdG9wLCB3aWR0aDogYmFubmVyV2lkdGggfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gd3guY3JlYXRlQmFubmVyQWQocGFyYW1zKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9iYW5uZXIgPSB0dC5jcmVhdGVCYW5uZXJBZChwYXJhbXMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5vbkVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2FkIGJhbm5lciBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8ub25Mb2FkKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIGF1dG9TaG93ICYmIHRoaXMuX2Jhbm5lci5zaG93KCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2hvdygpIHtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5zaG93KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBoaWRlKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/LmhpZGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRlc3Ryb3koKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8uZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGFzcyBBREN1c3RvbSB7XHJcbiAgICAgICAgcHJpdmF0ZSBfYWRVaWQ6IHN0cmluZztcclxuICAgICAgICBwcml2YXRlIF9hZEN1c3RvbTogYW55O1xyXG5cclxuICAgICAgICBnZXQgYWR1aWQoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hZFVpZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog55Sx5LqO5Y6f55Sf5qih5p2/5bm/5ZGK5Zyo5b6u5L+h5pyN5Yqh5ZCO56uv5Y+v5Lul5a6a5Yi25a695bqm5aSn5bCP77yM5Liq5pWw77yM57yp5pS+5q+U5L6L562J77yM5omA5Lul5L2N572u6LCD5pW06KaB5qC55o2u6K6+572u55qE5a695bqm5p2l5a6a44CC5oqW6Z+z5LiN5pSv5oyB77yBXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRilVJRO+8jOWQjuerr+mFjee9rlxyXG4gICAgICAgICAqIEBwYXJhbSB0b3Ag5LuO5bem5LiK6KeS5byA5aeL77yM6Led56a75bGP5bmV6aG26YOo55qE6Led56a744CC5rOo5oSP77ya6L+Z5Liq5pWw5o2u5Li66K6+5aSH5bGP5bmV5a695bqmd2lkdGjjgILlpoLmnpzpnIDopoHojrflj5blsY/luZXnmoTlg4/ntKDvvIzpnIDopoHkuZjku6Xorr7lpIflg4/ntKDmr5RQaXhlbC1SYXRpb++8jOS+i+WmgmlQaG9uZSAxMyBQcm/nmoRQaXhlbC1SYXRpb+S4ujPvvIzlg4/ntKDkuLpXaWR0aCoz44CCXHJcbiAgICAgICAgICogQHBhcmFtIGxlZnQg5LuO5bem5LiK6KeS5byA5aeL77yM6Led56a75bGP5bmV5pyA5bem6L6555qE6Led56a744CC5rOo5oSP77ya6L+Z5Liq5pWw5o2u5Li66K6+5aSH5bGP5bmV5a695bqmd2lkdGjjgILlpoLmnpzpnIDopoHojrflj5blsY/luZXnmoTlg4/ntKDvvIzpnIDopoHkuZjku6Xorr7lpIflg4/ntKDmr5RQaXhlbC1SYXRpb++8jOS+i+WmgmlQaG9uZSAxMyBQcm/nmoRQaXhlbC1SYXRpb+S4ujPvvIzlg4/ntKDkuLpXaWR0aCoz44CCXHJcbiAgICAgICAgICogQHBhcmFtIHNjYWxlIOWOn+eUn+aooeadv+W5v+WRiueahOWwuuWvuO+8jOm7mOiupOS4ujHvvIzljbMxMDAl44CC5q2k5YC85Zyo5b6u5L+h5pyN5Yqh5ZCO56uv5bm/5ZGK5Lit6I635b6X77yM6buY6K6k5Li6MTAwJe+8jOebruWJjeaciTEwMCXvvIw5MCXvvIw4MCXkuInnp43vvIzkuIDoiKzmg4XlhrXkuI3nlKjkv67mlLnjgILoi6XmnInkv67mlLnvvIzorrDlvpfkvKDlhaXlgLzvvIzkvovlpoI5MCXlsLHkvKDlhaUwLjnjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBjb25zdHJ1Y3RvcihhZFVpZDogc3RyaW5nLCB0b3A6IG51bWJlciA9IDAsIGxlZnQ6IG51bWJlciA9IDAsIHNjYWxlOiBudW1iZXIgPSAxLjApIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRVaWQgPSBhZFVpZDtcclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVDdXN0b21BZCh0b3AsIGxlZnQsIHNjYWxlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByaXZhdGUgY3JlYXRlQ3VzdG9tQWQodG9wOiBudW1iZXIsIGxlZnQ6IG51bWJlciwgc2NhbGU6IG51bWJlcikge1xyXG4gICAgICAgICAgICBpZiAoIWlzV2VjaGF0KCkpIHsgLy8gb25seSB3ZWNoYXQgc3VwcG9ydCBjdXN0b20gYWRcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkQ3VzdG9tID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdPbmx5IHdlY2hhdCBzdXBwb3J0IEN1c3RvbSBBZCcpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgLy8g5Y6f55Sf5qih5p2/NeS4quW6lOeUqOWuveW6puS4ujM3Ne+8jOiLpeiuvue9ruS6hue8qeaUvuavlOS+i++8jOWImeWuveW6puS5n+mcgOimgeiuvue9rlxyXG4gICAgICAgICAgICAvLyBsZXQgd2lkdGggPSAzNzUgKiB0aGlzLl9zY2FsZTtcclxuICAgICAgICAgICAgLy8gbGV0IG5ld0xlZnQgPSAoc3lzLndpbmRvd1dpZHRoIC0gd2lkdGgpIC8gMjtcclxuICAgICAgICAgICAgLy8gbGV0IG5ld1RvcCA9IHN5cy53aW5kb3dIZWlnaHQgLyAyOyAvLyAxMjDmmK/pooTkvLDpq5jluqZcclxuXHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20gPSB3eC5jcmVhdGVDdXN0b21BZCh7XHJcbiAgICAgICAgICAgICAgICBhZFVuaXRJZDogdGhpcy5fYWRVaWQsXHJcbiAgICAgICAgICAgICAgICBzdHlsZTogeyBsZWZ0OiBsZWZ0LCB0b3A6IHRvcCwgZml4ZWQ6IHRydWUgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FkQ3VzdG9tPy5vbkVycm9yKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2FkIGN1c3RvbSBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2hvdygpIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRDdXN0b20/LnNob3coKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGhpZGUoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FkQ3VzdG9tPy5oaWRlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZXN0cm95KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hZEN1c3RvbT8uZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDop4bpopHlub/lkYrnlKjmiLfngrnlh7vooYzkuLrnu5PmnpxcclxuICAgICAqL1xyXG4gICAgZXhwb3J0IGVudW0gRUFkVmlkZW9SZXN1bHQge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOeUqOaIt+eci+WujOS6huW5v+WRiu+8jOa4uOaIj+WPr+WPkeaUvuWlluWKseOAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIEFDQ0VQVCxcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog55So5oi35Lit6YCU5YWz6Zet5LqG5bm/5ZGK77yM5Y2z5pyq55yL5a6M54q25oCB44CC5LiN5Y+v5Y+R5pS+5aWW5Yqx44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgUkVKRUNULFxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlub/lkYrnu4Tku7blhoXpg6jlj5HnlJ/kuobplJnor6/jgILkuI3lj6/lj5HmlL7lpZblirHjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBFUlJPUixcclxuICAgIH1cclxuXHJcbiAgICBjbGFzcyBBRFZpZGVvIHtcclxuICAgICAgICBwcml2YXRlIF9hZFVpZDogc3RyaW5nO1xyXG4gICAgICAgIHByaXZhdGUgX2FkVmlkZW86IGFueSA9IG51bGw7XHJcblxyXG4gICAgICAgIGdldCBhZHVpZCgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3RydWN0b3IoYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICB0aGlzLl9hZFVpZCA9IGFkVWlkO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog55Sx5LqO5b6u5L+h5ZKM5oqW6Z+z6KeG6aKR5bm/5ZGK5py65Yi25LiN5ZCM77yM5b6u5L+h5Y+v5Lul55yL55qE6KeG6aKR5bm/5ZGK5Liq5pWw5Y+q5pyJMOWSjDHkuKrvvIzmipbpn7PlubPlj7DliJnlj6/ku6XnnIswfm1heFZpZGVvQ291bnRcclxuICAgICAgICAgKiBAcGFyYW0gb25SZXN1bHQg5Lik5Liq5Y+C5pWw77ya56ys5LiA5LiqcmVz5pivRUFkVmlkZW9SZXN1bHTlrprkuYnvvIznrKzkuoxjb3VudOaYr+eUqOaIt+eci+S6huWkmuWwkeS4quinhumikeW5v+WRiuOAglxyXG4gICAgICAgICAqIEBwYXJhbSB0YXJnZXQgb25SZXN1bHTnmoTmi6XmnInogIVcclxuICAgICAgICAgKiBAcGFyYW0gbWF4VmlkZW9Db3VudCDlj6/ku6Xov57nu63nnIvmnIDlpKfop4bpopHkuKrmlbDvvIzlj6/mnIDlpKfljJbllYbkuJrmlYjnjofjgILpu5jorqTkuLoz5Liq44CCXHJcbiAgICAgICAgICogQHJldHVybnMgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc2hvdyhvblJlc3VsdDogKHJlczogRUFkVmlkZW9SZXN1bHQsIGNvdW50OiBudW1iZXIpID0+IHZvaWQsIHRhcmdldD86IGFueSwgbWF4VmlkZW9Db3VudDogbnVtYmVyID0gMyk6IHZvaWQge1xyXG4gICAgICAgICAgICBsZXQgY2FsbGJhY2sgPSAoc3RhdGU6IEVBZFZpZGVvUmVzdWx0LCBjb3VudDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIHN0YXRlLCBjb3VudCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghaXNXZWNoYXQoKSAmJiAhaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soRUFkVmlkZW9SZXN1bHQuQUNDRVBULCAxKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8gPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgb25BZFZpZGVvQ2xvc2VkID0gKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vZmZDbG9zZShvbkFkVmlkZW9DbG9zZWQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzICYmIHJlcy5pc0VuZGVkIHx8IHJlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LkFDQ0VQVCwgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soRUFkVmlkZW9SZXN1bHQuUkVKRUNULCAwKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgcmVzQ29udmVydGVkID0gcmVzIGFzIHsgaXNFbmRlZDogYm9vbGVhbiwgY291bnQ6IG51bWJlciB9O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNDb252ZXJ0ZWQgJiYgcmVzQ29udmVydGVkLmNvdW50ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhFQWRWaWRlb1Jlc3VsdC5BQ0NFUFQsIHJlc0NvbnZlcnRlZC5jb3VudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soRUFkVmlkZW9SZXN1bHQuUkVKRUNULCAwKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8/Lm9mZkNsb3NlKG9uQWRWaWRlb0Nsb3NlZCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbyA9IHd4LmNyZWF0ZVJld2FyZGVkVmlkZW9BZCh7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRVbml0SWQ6IHRoaXMuX2FkVWlkXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvID0gdHQuY3JlYXRlUmV3YXJkZWRWaWRlb0FkKHtcclxuICAgICAgICAgICAgICAgICAgICBhZFVuaXRJZDogdGhpcy5fYWRVaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgbXVsdGl0b246IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbXVsdGl0b25SZXdhcmRNc2c6IFsn5aSaMeasoeWlluWKsScsICflho3lpJrkuIDmrKHlpZblirEnLCAn5YaN5aSa5LiA5qyh5aWW5YqxJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgbXVsdGl0b25SZXdhcmRUaW1lczogbWF4VmlkZW9Db3VudCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWRWaWRlbyA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5vbkxvYWQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0FkIGxvYWQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8/Lm9uRXJyb3IoKGVycjogeyBlcnJNc2c6IHN0cmluZywgZXJyQ29kZTogbnVtYmVyIH0pID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBZCB2aWRlbyBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2soRUFkVmlkZW9SZXN1bHQuRVJST1IsIDApO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8/Lm9uQ2xvc2Uob25BZFZpZGVvQ2xvc2VkKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8/LnNob3coKS5jYXRjaCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5sb2FkKCkudGhlbigoKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkVmlkZW8/LnNob3coKSkuY2F0Y2goKGVycjogeyBlcnJNc2c6IHN0cmluZywgZXJyQ29kZTogbnVtYmVyIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0NhdGNoIHZpZGVvIGFkIGVycm9yOicsIGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVBZFZpZGVvUmVzdWx0LkVSUk9SLCAwKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZXN0b3J5KCkge1xyXG4gICAgICAgICAgICB0aGlzLl9hZFZpZGVvPy5kZXN0b3J5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGV4cG9ydCBlbnVtIEVBZEJhbm5lckxvY2F0aW9uIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlsY/luZXpobbpg6hcclxuICAgICAgICAgKi9cclxuICAgICAgICBUT1AsXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWxj+W5leW6lemDqFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIEJPVFRPTSxcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgY2xhc3MgQWR2ZXJ0TWFuYWdlciB7XHJcblxyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogQWR2ZXJ0TWFuYWdlcjtcclxuXHJcbiAgICAgICAgc3RhdGljIGdldCBpbnN0YW5jZSgpOiBBZHZlcnRNYW5hZ2VyIHtcclxuICAgICAgICAgICAgaWYgKCFBZHZlcnRNYW5hZ2VyLl9pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICAgICAgQWR2ZXJ0TWFuYWdlci5faW5zdGFuY2UgPSBuZXcgQWR2ZXJ0TWFuYWdlcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBBZHZlcnRNYW5hZ2VyLl9pbnN0YW5jZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByaXZhdGUgX3ZpZGVvOiBBRFZpZGVvO1xyXG4gICAgICAgIHByaXZhdGUgX2ludGVyc3RpdGlhbDogQURJbnRlcnN0aXRpYWw7XHJcbiAgICAgICAgcHJpdmF0ZSBfYmFubmVyOiBBREJhbm5lcjtcclxuICAgICAgICBwcml2YXRlIF9jdXN0b21zOiBSZWNvcmQ8c3RyaW5nLCBBREN1c3RvbT4gPSB7fTtcclxuXHJcbiAgICAgICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDpooTliqDovb3mqKrluYXlub/lkYrvvIzkuI3kvJrmmL7npLrjgILlj6rmnInkvaDlnKjosIPnlKhzaG93QmFubmVy5pe25omN5Lya5pi+56S644CCXHJcbiAgICAgICAgICog5Y+v6YeN5aSN6LCD55So77yM5L2G5piv5Lya6ZSA5q+B5LiK5LiA5qyh55qE5a6e5L6L44CC5LiA6Iis5oOF5Ya177yM5YWo5bGA5pyJ5LiA5Liq5bCx6KGM5LqG77yM5aSq5aSa5Y2g55So5YaF5a2Y77yM6ICM5LiU5rKh5b+F6KaB44CCXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRilVJRFxyXG4gICAgICAgICAqIEBwYXJhbSBsb2NhdGlvbiDkvY3nva7mnInkuKTnp43mg4XlhrXvvJox44CB5Y+v5Lul5Lyg5YWl5p6a5Li+5YC877yM6buY6K6k5LiK5pa5OyAy44CB5Y+v5Lul6Ieq5a6a5LmJ5L2N572u5Lyg5YWlSVBvc2l0aW9u77yM5rOo5oSPSVBvc2l0aW9u5Lit55qEdG9w5ZKMbGVmdOi3n+W5s+WPsOeahHRvcCxsZWZ05piv5LiA6Ie077yI5rKh5pyJ5LmY5Lul6K6+5aSH5YOP57Sg5q+UcmF0aW/vvInvvIzpnIDopoHlvIDlj5HogIXoh6rlt7HosIPor5XkvY3nva5cclxuICAgICAgICAgKiBAcGFyYW0gc2NhbGUg6buY6K6k5Li66Lef5bGP5bmV5LiA5qC355qE5a695bqm77yM5Y+v5Lul6YCa6L+H6K6+572u57yp5pS+5q+U5L6L5p2l6LCD5pW05aSn5bCP44CC5b2T54S277yM5bmz5Y+w5pyJ6KeE5a6a5pyA5aSn5oiW5pyA5bCP5a695bqm77yM5Ye95pWw5YaF6YOo5Lya6Ieq5Yqo6K6h566X44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIGxvYWRCYW5uZXIoYWRVaWQ6IHN0cmluZywgbG9jYXRpb246IEVBZEJhbm5lckxvY2F0aW9uIHwgSVBvc2l0aW9uID0gRUFkQmFubmVyTG9jYXRpb24uVE9QLCBzY2FsZTogbnVtYmVyID0gMS4wKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Jhbm5lcj8uZGVzdHJveSgpO1xyXG4gICAgICAgICAgICBsZXQgc2l6ZTogSVNpemUgPSBnZXRTeXNXaW5TaXplKCk7XHJcbiAgICAgICAgICAgIC8vIOW9kyBzdHlsZS53aWR0aCDlsI/kuo4gMzAwIOaXtu+8jOS8muWPluS9nCAzMDDjgIIg5b2TIHN0eWxlLndpZHRoIOWkp+S6juWxj+W5leWuveW6puaXtu+8jOS8muWPluS9nOWxj+W5leWuveW6puOAglxyXG4gICAgICAgICAgICBsZXQgd2lkdGggPSBzaXplLndpZHRoICogc2NhbGU7XHJcbiAgICAgICAgICAgIHdpZHRoID0gd2lkdGggPCAzMDAgPyAzMDAgOiB3aWR0aDsgLy8g5pyA5bCP5YC855+r5q2jXHJcbiAgICAgICAgICAgIHdpZHRoID0gd2lkdGggPiBzaXplLndpZHRoID8gc2l6ZS53aWR0aCA6IHdpZHRoOyAvL+acgOWkp+WAvOefq+ato1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXIgPSB0eXBlb2YgbG9jYXRpb24gPT09ICdudW1iZXInID8gbmV3IEFEQmFubmVyKGFkVWlkLCBsb2NhdGlvbiA9PT0gRUFkQmFubmVyTG9jYXRpb24uVE9QLCB3aWR0aCwgZmFsc2UpIDogbmV3IEFEQmFubmVyKGFkVWlkLCBsb2NhdGlvbiwgd2lkdGgsIGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuuaoquW5heW5v+WRilxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBzaG93QmFubmVyKCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fYmFubmVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9iYW5uZXIuc2hvdygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdNaW5pR2FtZVNESzogYmFubmVyIGlzIG51bGwsIHlvdSBtdXN0IGNhbGwgbG9hZEJhbm5lciguLi4pIGZpcnN0IScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDpmpDol4/mqKrluYXlub/lkYpcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgaGlkZUJhbm5lcigpIHtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyPy5oaWRlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlvLnlh7rmj5LlsY/lub/lkYpcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGK5Y2V5YWDaWRcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgc2hvd0ludGVyc3RpdGlhbChhZFVpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9pbnRlcnN0aXRpYWwgJiYgdGhpcy5faW50ZXJzdGl0aWFsLmFkdWlkID09PSBhZFVpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsLnNob3coKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbD8uZGVzdG9yeSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJzdGl0aWFsID0gbmV3IEFESW50ZXJzdGl0aWFsKGFkVWlkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbC5zaG93KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWKoOi9veWOn+eUn+aooeadv+W5v+WRiu+8jOS4jeS8muaYvuekuuOAguWPquacieS9oOWcqOiwg+eUqHNob3dDdXN0b23ml7bmiY3kvJrmmL7npLrjgIJcclxuICAgICAgICAgKiDnlLHkuo7ljp/nlJ/mqKHmnb/lub/lkYrlnKjlvq7kv6HmnI3liqHlkI7nq6/lj6/ku6XlrprliLblrr3luqblpKflsI/vvIzkuKrmlbDvvIznvKnmlL7mr5TkvovnrYnvvIzmiYDku6XkvY3nva7osIPmlbTopoHmoLnmja7orr7nva7nmoTlrr3luqbmnaXlrprjgILmipbpn7PkuI3mlK/mjIHmnKzlh73mlbDvvIzkvJrosIPnlKjml6DmlYjvvIFcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGKSURcclxuICAgICAgICAgKiBAcGFyYW0gbG9jYXRpb24g5L2N572u5pyJ5Lik56eN5oOF5Ya177yaMeOAgeWPr+S7peS8oOWFpeaemuS4vuWAvO+8jOm7mOiupOS4iuaWuTsgMuOAgeWPr+S7peiHquWumuS5ieS9jee9ruS8oOWFpUlQb3NpdGlvbu+8jOazqOaEj0lQb3NpdGlvbuS4reeahHRvcOWSjGxlZnTot5/lubPlj7DnmoR0b3AsbGVmdOaYr+S4gOiHtO+8iOayoeacieS5mOS7peiuvuWkh+WDj+e0oOavlHJhdGlv77yJ77yM6ZyA6KaB5byA5Y+R6ICF6Ieq5bex6LCD6K+V5L2N572uXHJcbiAgICAgICAgICogQHBhcmFtIHNjYWxlIOe8qeaUvuavlOS+i++8jOm7mOiupOaYrzHvvIzljbPkuI3nvKnmlL7jgILov5nkuKrnvKnmlL7lubbkuI3mmK/oh6rlt7HloavvvIzogIzmmK/moLnmja7lvq7kv6FNUOWQjuWPsOS9oOmFjee9rueahOWOn+eUn+aooeadv+W5v+WRiueahOe8qeaUvuavlOS+i+Whq++8jOebruWJjeaciTEwMCXvvIw5MCXvvIw4MCXkuInnp43vvIzkuIDoiKzmg4XlhrXkuI3nlKjkv67mlLnjgILoi6XmnInlkI7lj7Dkv67mlLnvvIzorrDlvpfkvKDlhaXlgLzvvIzkvovlpoI5MCXlsLHkvKDlhaUwLjnjgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgbG9hZEN1c3RvbShhZFVpZDogc3RyaW5nLCBsb2NhdGlvbjogSVBvc2l0aW9uID0geyB0b3A6IDAsIGxlZnQ6IDAgfSwgc2NhbGU6IG51bWJlciA9IDEpIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5fY3VzdG9tPy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuX2N1c3RvbSA9IG5ldyBBREN1c3RvbShhZFVpZCwgbG9jYXRpb24udG9wLCBsb2NhdGlvbi5sZWZ0LCBzY2FsZSk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9jdXN0b21zW2FkVWlkXSkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYCR7YWRVaWR9IGhhcyBiZWVuIGxvYWRlZC5gKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5fY3VzdG9tc1thZFVpZF0gPSBuZXcgQURDdXN0b20oYWRVaWQsIGxvY2F0aW9uLnRvcCwgbG9jYXRpb24ubGVmdCwgc2NhbGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5pi+56S66Ieq5a6a5LmJ5bm/5ZGK44CCXHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiueahOWUr+S4gOagh+ivhuespuOAguS9v+eUqOatpOagh+ivhuespuadpeafpeaJvuWSjOaYvuekuueJueWumueahOiHquWumuS5ieW5v+WRiuOAglxyXG4gICAgICAgICAqIFxyXG4gICAgICAgICAqIOatpOaWueazleWwneivleagueaNruaPkOS+m+eahGFkVWlk5pi+56S65LiA5Liq6Ieq5a6a5LmJ5bm/5ZGK44CC5aaC5p6c57uZ5a6a55qEYWRVaWTlr7nlupTnmoToh6rlrprkuYnlub/lkYrlt7LliqDovb3vvIxcclxuICAgICAgICAgKiDliJnosIPnlKjor6Xlub/lkYrnmoTmmL7npLrmlrnms5XjgILlpoLmnpzlub/lkYrmnKrliqDovb3vvIzliJnlnKjmjqfliLblj7DovpPlh7rorablkYrkv6Hmga/jgIJcclxuICAgICAgICAgKi9cclxuICAgICAgICBwdWJsaWMgc2hvd0N1c3RvbShhZFVpZDogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9jdXN0b21zW2FkVWlkXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY3VzdG9tc1thZFVpZF0uc2hvdygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBZb3UgaGF2ZSBub3QgbG9hZCAke2FkVWlkfSBvZiBDdXN0b20gQUQsIGNhbiBub3Qgc2hvdyFgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog6ZqQ6JeP5oyH5a6a55qE6Ieq5a6a5LmJ5bm/5ZGK5Y2V5YWDXHJcbiAgICAgICAgICogXHJcbiAgICAgICAgICog5q2k5pa55rOV55So5LqO6ZqQ6JeP6YCa6L+H5bm/5ZGK5Y2V5YWD5qCH6K+G56ym77yIYWRVaWTvvInmjIflrprnmoToh6rlrprkuYnlub/lkYrjgILlpoLmnpzmjIflrprnmoTlub/lkYrljZXlhYPlt7LliqDovb3lubbmmL7npLrvvIxcclxuICAgICAgICAgKiDliJnlsIblhbbpmpDol4/vvJvlpoLmnpzlub/lkYrljZXlhYPmnKrliqDovb3vvIzliJnlnKjmjqfliLblj7DovpPlh7rorablkYrkv6Hmga/jgIJcclxuICAgICAgICAgKiBcclxuICAgICAgICAgKiBAcGFyYW0gYWRVaWQg5bm/5ZGK5Y2V5YWD5qCH6K+G56ym77yM55So5LqO5ZSv5LiA5qCH6K+G5LiA5Liq6Ieq5a6a5LmJ5bm/5ZGK5Y2V5YWD44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcHVibGljIGhpZGVDdXN0b20oYWRVaWQ6IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fY3VzdG9tc1thZFVpZF0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2N1c3RvbXNbYWRVaWRdLmhpZGUoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgWW91IGhhdmUgbm90IGxvYWQgJHthZFVpZH0gb2YgQ3VzdG9tIEFELCBjYW4gbm90IGhpZGUhYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOeUseS6juW+ruS/oeWSjOaKlumfs+inhumikeW5v+WRiuacuuWItuS4jeWQjO+8jOW+ruS/oeWPr+S7peeci+eahOinhumikeW5v+WRiuS4quaVsOWPquaciTDlkowx5Liq77yM5oqW6Z+z5bmz5Y+w5YiZ5Y+v5Lul55yLMH5tYXhWaWRlb0NvdW50XHJcbiAgICAgICAgICogQHBhcmFtIGFkVWlkIOW5v+WRiklE44CC5aaC5p6c5LiO5LiK5LiA5qyhVUlE5LiN5ZCM77yM5YiZ5YaF6YOo5Lya6YeN5paw5Yib5bu65a6e5L6L44CC5byA5Y+R6ICF5a6M5YWo5LiN55So5YWz5b+D6L+Z5Liq57uG6IqC44CCXHJcbiAgICAgICAgICogQHBhcmFtIG9uVmlkZW9SZXN1bHQg5Lik5Liq5Y+C5pWw77ya56ys5LiA5LiqcmVz5pivRUFkVmlkZW9SZXN1bHTlrprkuYnvvIznrKzkuoxjb3VudOaYr+eUqOaIt+eci+S6huWkmuWwkeS4quinhumikeW5v+WRiuOAgiBcclxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IG9uVmlkZW9SZXN1bHTnmoTmi6XmnInogIVcclxuICAgICAgICAgKiBAcGFyYW0gbWF4VmlkZW9Db3VudCDmnIDlpKfop4bpopHkuKrmlbDjgILpu5jorqTmmK8z77yM5LuF5a+55oqW6Z+z5bmz5Y+w55Sf5pWI44CC5b6u5L+h5bmz5Y+w55yL5a6M6KeG6aKRY291bnTnmoTnu5PmnpzmsLjov5zmmK8x5oiWMFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBzaG93VmlkZW8oYWRVaWQ6IHN0cmluZywgb25WaWRlb1Jlc3VsdDogKHJlczogRUFkVmlkZW9SZXN1bHQsIGNvdW50OiBudW1iZXIpID0+IHZvaWQsIHRhcmdldD86IGFueSwgbWF4VmlkZW9Db3VudDogbnVtYmVyID0gMykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5fdmlkZW8gJiYgdGhpcy5fdmlkZW8uYWR1aWQgPT09IGFkVWlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl92aWRlby5zaG93KG9uVmlkZW9SZXN1bHQsIHRhcmdldCwgbWF4VmlkZW9Db3VudCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl92aWRlbz8uZGVzdG9yeSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmlkZW8gPSBuZXcgQURWaWRlbyhhZFVpZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl92aWRlby5zaG93KG9uVmlkZW9SZXN1bHQsIHRhcmdldCwgbWF4VmlkZW9Db3VudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmUgOavgeWGhemDqOaJgOacieWunuS+i++8jOa4heepuuWGheWtmFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHB1YmxpYyBkZXN0cm95QWxsKCkge1xyXG4gICAgICAgICAgICB0aGlzLl9iYW5uZXI/LmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgdGhpcy5fYmFubmVyID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2ludGVyc3RpdGlhbD8uZGVzdG9yeSgpO1xyXG4gICAgICAgICAgICB0aGlzLl9pbnRlcnN0aXRpYWwgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fdmlkZW8/LmRlc3RvcnkoKTtcclxuICAgICAgICAgICAgdGhpcy5fdmlkZW8gPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX2N1c3RvbXMpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IHZhbCBpbiB0aGlzLl9jdXN0b21zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VzdG9tc1t2YWxdPy5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jdXN0b21zID0ge307XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IGVudW0gRUdhbWVDbHViSWNvbiB7XHJcbiAgICAgICAgLyoqIOe7v+iJsuWbvuaghyAqL1xyXG4gICAgICAgIEdSRUVOID0gJ2dyZWVuJyxcclxuXHJcbiAgICAgICAgLyoqIOe6ouiJsuWbvuaghyAqL1xyXG4gICAgICAgIFdISVRFID0gJ3doaXRlJyxcclxuXHJcbiAgICAgICAgLyoqIOaciem7keiJsuWchuinkuiDjOaZr+eahOeZveiJsuWbvuaghyAqL1xyXG4gICAgICAgIERBUksgPSAnZGFyaycsXHJcblxyXG4gICAgICAgIC8qKiDmnInnmb3oibLlnIbop5Log4zmma/nmoTnu7/oibLlm77moIcgKi9cclxuICAgICAgICBMSUdIVCA9ICdsaWdodCdcclxuICAgIH1cclxuXHJcbiAgICBleHBvcnQgY2xhc3MgR2FtZUNsdWIge1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogR2FtZUNsdWI7XHJcblxyXG4gICAgICAgIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogR2FtZUNsdWIge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2luc3RhbmNlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBHYW1lQ2x1YigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHByaXZhdGUgX2NsdWI6IGFueTtcclxuXHJcbiAgICAgICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHtcclxuXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDliJvlu7rmuLjmiI/lnIjmjInpkq5cclxuICAgICAgICAgKiBAcGFyYW0gaWNvbiBcclxuICAgICAgICAgKiBAcGFyYW0gcG9zaXRpb24gXHJcbiAgICAgICAgICogQHBhcmFtIHNpemUgXHJcbiAgICAgICAgICogQHBhcmFtIG9wZW5MaW5rIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNyZWF0ZShpY29uOiBFR2FtZUNsdWJJY29uID0gRUdhbWVDbHViSWNvbi5HUkVFTiwgcG9zaXRpb246IElQb3NpdGlvbiA9IHsgdG9wOiAwLCBsZWZ0OiAwIH0sIHNpemU6IElTaXplID0geyB3aWR0aDogNDAsIGhlaWdodDogNDAgfSwgb3Blbkxpbms/OiBzdHJpbmcpIHtcclxuICAgICAgICAgICAgaWYgKGlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NsdWIgPSB3eC5jcmVhdGVHYW1lQ2x1YkJ1dHRvbih7XHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogaWNvbixcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBwb3NpdGlvbi5sZWZ0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IHBvc2l0aW9uLnRvcCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHNpemUud2lkdGgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogc2l6ZS5oZWlnaHRcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG9wZW5saW5rOiBvcGVuTGlua1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHNob3coKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsdWI/LnNob3coKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGhpZGUoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsdWI/LmhpZGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGRlc3RvcnkoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsdWI/LmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5oyv5Yqo57G75Z6LXHJcbiAgICAgKi9cclxuICAgIGV4cG9ydCBlbnVtIEVWaXJicmF0ZVR5cGUge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOefreaMr+WKqFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIFNIT1JULFxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDplb/mjK/liqhcclxuICAgICAgICAgKi9cclxuICAgICAgICBMT05HXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlubPlj7DluLjnlKhBUEnlkIjpm4ZcclxuICAgICAqL1xyXG4gICAgZXhwb3J0IGNsYXNzIEFQSSB7XHJcbiAgICAgICAgcHJpdmF0ZSBzdGF0aWMgX2xvZ2luQ29kZTogc3RyaW5nID0gbnVsbDtcclxuICAgICAgICBwcml2YXRlIHN0YXRpYyBfbG9naW5Bbm9ueW1vdXNDb2RlOiBzdHJpbmcgPSBudWxsO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF9oYXNJbml0V2VjaGF0Q2xvdWRGdW5jdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgICAgIHByaXZhdGUgc3RhdGljIF91c2VySW5mbzogYW55ID0gbnVsbDtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5YiG5LqrYXBw57uZ5pyL5Y+L77yM5b6u5L+h5bCP5ri45oiP5YiG5Lqr5piv5rKh5pyJb25TdWNjZXNz5Zue6LCD55qE44CCXHJcbiAgICAgICAgICogQHBhcmFtIHRpdGxlIOagh+mimFxyXG4gICAgICAgICAqIEBwYXJhbSBkZXNjcmlwdGlvbiDnu4boioLmj4/ov7Dkv6Hmga8gXHJcbiAgICAgICAgICogQHBhcmFtIGltYWdlVXJsIOWbvueJh+WcsOWdgFxyXG4gICAgICAgICAqIEBwYXJhbSBxdWVyeSDmn6Xor6Lkv6Hmga9cclxuICAgICAgICAgKiBAcGFyYW0gb25TdWNjZXNzIOaKlumfs+S8muWbnuiwg++8jOW+ruS/oeS4jeS8muWbnuiwg1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzaGFyZUFwcFRvRnJpZW5kcyh0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nID0gJycsIGltYWdlVXJsPzogc3RyaW5nLCBxdWVyeT86IHN0cmluZywgb25TdWNjZXNzPzogKCkgPT4gdm9pZCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICB3eC5zaGFyZUFwcE1lc3NhZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlVXJsOiBpbWFnZVVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHF1ZXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHNoYXJlIGZhaWxkOiAke2Vycn1gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgdHQuc2hhcmVBcHBNZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogZGVzY3JpcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgaW1hZ2VVcmw6IGltYWdlVXJsID8/ICcnLFxyXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSA/PyAnJyxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzaGFyZSBzdWNjZXNzOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uU3VjY2Vzcz8uKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzaGFyZSBmYWlsOicsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuuaPkOekuuS/oeaBr1xyXG4gICAgICAgICAqIEBwYXJhbSB0aXRsZSDmoIfpophcclxuICAgICAgICAgKiBAcGFyYW0gZHVyYXRpb24g5pe26ZW/77yI5Y2V5L2N77ya56eS77yJXHJcbiAgICAgICAgICogQHJldHVybnMgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIHNob3dUb2FzdCh0aXRsZTogc3RyaW5nLCBkdXJhdGlvbjogbnVtYmVyID0gMikge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgd3guc2hvd1RvYXN0KHtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbiAqIDEwMDBcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0dC5zaG93VG9hc3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogZHVyYXRpb24gKiAxMDAwLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYCR7cmVzfWApO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2hvd1RvYXN06LCD55So5aSx6LSlYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDorr7lpIfpnIfliqjmlYjmnpzvvIzpu5jorqTkuLrnn63pnIfliqjjgILms6jmhI/vvJrlj6/og73kuIDkupvmnLrlnovkuI3kvJrnlJ/mlYjvvIzlhbfkvZPnnIvlubPlj7DmlrnnmoTor7TmmI5cclxuICAgICAgICAgKiBAcGFyYW0gdHlwZSBNaW5pR2FtZVNkay5BUEkuRVZpcmJyYXRlVHlwZVxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyB2aWJyYXRlKHR5cGU6IEVWaXJicmF0ZVR5cGUgPSBFVmlyYnJhdGVUeXBlLlNIT1JUKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVWaXJicmF0ZVR5cGUuU0hPUlQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3eC52aWJyYXRlU2hvcnQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlIHN1Y2Nlc3M6JywgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGVTaG9ydCBmYWlsZWQnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVZpcmJyYXRlVHlwZS5MT05HOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvL0B0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgICAgICAgICAgd3gudmlicmF0ZUxvbmcoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd2aWJyYXRlIHN1Y2Nlc3MnLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgdmlicmF0ZUxvbmcgZmFpbGVkYCwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVZpcmJyYXRlVHlwZS5TSE9SVDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR0LnZpYnJhdGVTaG9ydCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGUgc3VjY2VzczonLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygndmlicmF0ZVNob3J0IGZhaWxlZCcsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFVmlyYnJhdGVUeXBlLkxPTkc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0dC52aWJyYXRlTG9uZyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3ZpYnJhdGUgc3VjY2VzcycsIHJlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFpbChyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGB2aWJyYXRlTG9uZyBmYWlsZWRgLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDph43lkK/lsI/muLjmiI9cclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgcmVib290KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5yZXN0YXJ0TWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3Jlc3RhcnQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWw6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3Jlc3RhcnQgZmFpbGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHR0LnJlc3RhcnRNaW5pUHJvZ3JhbVN5bmMoKTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coYHJlc3RhcnRNaW5pUHJvZ3JhbVN5bmNgLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOmAgOWHuuWwj+a4uOaIj1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBleGl0KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5leGl0TWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2V4aXQgc3VjY2VzcycpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZXhpdCBmYWlsZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHR0LmV4aXRNaW5pUHJvZ3JhbSh7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyhyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImV4aXQgc3VjY2VzczpcIiwgcmVzPy5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJleGl0IGZhaWw6XCIsIHJlcz8uZXJyTXNnKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOaYvuekuui9rOWPkeaMiemSruOAgumAmuW4uOWcqOWImui/m+WFpea4uOaIj+eahOaXtuWAmeiwg+eUqOOAglxyXG4gICAgICAgICAqIOS4u+imgeaYr+aJk+W8gOW5s+WPsOKAnC4uLuKAnei/meS4quaMiemSrumHjOmdoueahOWIhuS6q+iPnOWNle+8jOS4gOiIrOm7mOiupOaYr+WFs+mXreeahO+8jOmcgOimgeiwg+eUqOi/meS4quWHveaVsOaJk+W8gOOAguWPr+S7peiuqeeUqOaIt+WIhuS6q+S9oOeahOa4uOaIj+WFpeWPo+OAglxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzaG93U2hhcmVNZW51KCkge1xyXG4gICAgICAgICAgICBpZiAoaXNXZWNoYXQoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5zaG93U2hhcmVNZW51KHtcclxuICAgICAgICAgICAgICAgICAgICB3aXRoU2hhcmVUaWNrZXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgbWVudXM6IFsnc2hhcmVBcHBNZXNzYWdlJywgJ3NoYXJlVGltZWxpbmUnXSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKCkgPT4geyB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7IH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB0dC5zaG93U2hhcmVNZW51KHtcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwic2hvdyBtZW51IGlzIHNob3dpbmdcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsKGVycjogYW55KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwic2hvd1NoYXJlTWVudTpcIiwgZXJyLmVyck1zZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZShyZXM6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInNob3dTaGFyZU1lbnUgY29tcGxldGVcIik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiDlvq7kv6HlsI/muLjmiI/vvJrot7PovazliLDlj6blpJbkuIDmrL7lsI/muLjmiI9cclxuICAgICAgICAgKiDmipbpn7PlsI/muLjmiI/vvJrot7PovazliLDmjIflrprnmoTop4bpopHnlYzpnaJcclxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0SWQg5b6u5L+h5bCP5ri45oiPYXBwaWTmiJbogIXop4bpopHnlYzpnaJcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgbmF2aWdhdGVUbyh0YXJnZXRJZDogc3RyaW5nLCBvblN1Y2Nlc3M/OiAoKSA9PiB2b2lkKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5uYXZpZ2F0ZVRvTWluaVByb2dyYW0oe1xyXG4gICAgICAgICAgICAgICAgICAgIGFwcElkOiB0YXJnZXRJZCxcclxuICAgICAgICAgICAgICAgICAgICBleHRyYURhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9vOiAnYmFyJ1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZW52VmVyc2lvbjogJ2RldmVsb3AnLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25TdWNjZXNzPy4oKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHR0Lm5hdmlnYXRlVG9WaWRlb1ZpZXcoe1xyXG4gICAgICAgICAgICAgICAgICAgIHZpZGVvSWQ6IHRhcmdldElkLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvblN1Y2Nlc3M/LigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmFpbDogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYnl0ZWRhbmNlIG5hdmlnYXRlVG9WaWRlb1ZpZXcgZmFpbFwiLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWwj+a4uOaIj+W5s+WPsOeZu+W9leWKn+iDveOAguW+ruS/oei/lOWbnmNvZGXvvIzmipbpn7Pov5Tlm55jb2Rl5ZKMYW5vbnltb3VzQ29kZeOAgueUqOS6jueZu+W9leeahOWHreivge+8jOmcgOimgeaKiui/meS4qmNvZGXkvKDlm57kvaDnmoTmnI3liqHlmajnqIvluo/kuK3ljrvosIPnlKhjb2RlMlNlc3Npb25cclxuICAgICAgICAgKiBAcGFyYW0gY2FsbGJhY2sgKGNvZGUsIGFub255bW91c0NvZGUpIOesrOS4gOS4quWPguaVsOS4umNvZGXvvIzlvq7kv6Hlkozmipbpn7Ppg73mlK/mjIHvvJvnrKzkuozkuKrlj4LmlbDkuLrljL/lkI3orr7lpIdJRO+8jOS7heaKlumfs+aUr+aMge+8jOWksei0pemDvei/lOWbnm51bGxcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgbG9naW4oY2FsbGJhY2s6IChjb2RlOiBzdHJpbmcsIGFub255bW91c0NvZGU6IHN0cmluZykgPT4gdm9pZCkge1xyXG4gICAgICAgICAgICBsZXQgbG9naW5QbGF0Zm9ybSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgd3gubG9naW4oe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiB7IGNvZGU6IGFueTsgZXJyTXNnOiBhbnk7IH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMuY29kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Db2RlID0gcmVzLmNvZGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkFub255bW91c0NvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrPy4oQVBJLl9sb2dpbkNvZGUsIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2xvZ2luIGVycm9yOicsIHJlcy5lcnJNc2cpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmYWlsOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbG9naW4gZmFpbCcpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAgICAgICAgIHR0LmxvZ2luKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2U6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBsb2dpbiAke3Jlcy5jb2RlfSAke3Jlcy5hbm9ueW1vdXNDb2RlfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5jb2RlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkNvZGUgPSByZXMuY29kZT8udG9TdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSA9IHJlcy5hbm9ueW1vdXNDb2RlPy50b1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrPy4oQVBJLl9sb2dpbkNvZGUsIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2xvZ2luIGVycm9yOicsIHJlcy5lcnJNc2cpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Db2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrPy4oQVBJLl9sb2dpbkNvZGUsIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBsb2dpbiBmYWlsYCwgcmVzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQVBJLl9sb2dpbkNvZGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlID0gbnVsbDtcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ25vdCBtaW5pIGdhbWUgcGxhdGZvcm0sIGxvZ2luIGNvZGVzIGFyZSBhbGwgbnVsbCcpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgIGlmICghQVBJLl9sb2dpbkNvZGUpIHtcclxuICAgICAgICAgICAgICAgIGxvZ2luUGxhdGZvcm0oKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgd3guY2hlY2tTZXNzaW9uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcygpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzZXNzaW9uIGlzIHZhbGlkLCB1c2UgY3VycmVudCBjb2RlOmAsIEFQSS5fbG9naW5Db2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrPy4oQVBJLl9sb2dpbkNvZGUsIEFQSS5fbG9naW5Bbm9ueW1vdXNDb2RlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmFpbCgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzZXNzaW9uIGV4cGlyZWRgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2luUGxhdGZvcm0oKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0J5dGVkYW5jZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgdHQuY2hlY2tTZXNzaW9uKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2VzcygpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzZXNzaW9uIGlzIHZhbGlkLCB1c2VyIGN1cnJlbnQgY29kZTogJHtBUEkuX2xvZ2luQ29kZX0sICR7QVBJLl9sb2dpbkFub255bW91c0NvZGV9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKEFQSS5fbG9naW5Db2RlLCBBUEkuX2xvZ2luQW5vbnltb3VzQ29kZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhgc2Vzc2lvbiBleHBpcmVkYCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpblBsYXRmb3JtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbm90IG1pbmkgZ2FtZSBwbGF0Zm9ybSwgbG9naW4gbnVsbCcpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrPy4obnVsbCwgbnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICog5bCP5ri45oiP5bmz5Y+w55m75b2V5Yqf6IO944CC5b6u5L+h6L+U5ZueY29kZe+8jOaKlumfs+i/lOWbnmNvZGXlkoxhbm9ueW1vdXNDb2Rl44CC55So5LqO55m75b2V55qE5Yet6K+B77yM6ZyA6KaB5oqK6L+Z5LiqY29kZeS8oOWbnuS9oOeahOacjeWKoeWZqOeoi+W6j+S4reWOu+iwg+eUqGNvZGUyU2Vzc2lvblxyXG4gICAgICAgICAqIEBwYXJhbSBjYWxsYmFjayAoY29kZSwgYW5vbnltb3VzQ29kZSkg56ys5LiA5Liq5Y+C5pWw5Li6Y29kZe+8jOW+ruS/oeWSjOaKlumfs+mDveaUr+aMge+8m+esrOS6jOS4quWPguaVsOS4uuWMv+WQjeiuvuWkh0lE77yM5LuF5oqW6Z+z5pSv5oyB77yM5aSx6LSl6YO96L+U5ZuebnVsbFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBnZXRVc2VySW5mbyhjYWxsYmFjazogKHVzZXJJbmZvOiBhbnkpID0+IHZvaWQpIHtcclxuICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHR0LmdldFVzZXJJbmZvKHtcclxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5fdXNlckluZm8gPSByZXM7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soQVBJLl91c2VySW5mbyk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogKGVycjogYW55KSA9PntcclxuICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhlcnIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOiwg+eUqOW+ruS/oeS6keWHveaVsOOAgueUseS6juWPguaVsOmcgOimgeiHquWumuS5ie+8jOaJgOS7peS4umFuee+8jOmcgOimgeiHquihjOino+mHiuOAguWHveaVsOWPquWujOaIkOmAmumBk+WSjOWkhOeQhuS4gOWcuueahOS9nOeUqFxyXG4gICAgICAgICAqIEBwYXJhbSBjYWxsYmFjayDov5Tlm57kupHlh73mlbDosIPnlKjnu5PmnpzjgILpnIDopoHmo4Dmn6Xov5Tlm57lj4LmlbDmmK/lkKbkuLrnqbrvvIzlpLHotKXnmoTml7blgJnkuLrnqbpcclxuICAgICAgICAgKiBAcGFyYW0gbmFtZSDkupHlh73mlbDnmoTlkI3lrZdcclxuICAgICAgICAgKiBAcGFyYW0gZGF0YSDkupHlh73mlbDnmoTlhoXlrrlcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgY2FsbFdlY2hhdENsb3VkRnVuY3Rpb24oY2FsbGJhY2s6IChyZXM6IGFueSkgPT4gdm9pZCwgbmFtZTogc3RyaW5nLCBkYXRhOiB7fSkge1xyXG4gICAgICAgICAgICBpZiAoIWlzV2VjaGF0KCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdOb3Qgd2VjaGF0IHBsYXRmb3JtLCBub3Qgc3VwcG9ydCBjYWxsV2VjaGF0Q2xvdWRGdW5jdGlvbicpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmxvZ2luKChjb2RlOiBzdHJpbmcsIGFub255bW91c0NvZGU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFBUEkuX2hhc0luaXRXZWNoYXRDbG91ZEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICAgICAgd3guY2xvdWQuaW5pdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIEFQSS5faGFzSW5pdFdlY2hhdENsb3VkRnVuY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy9AdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5jbG91ZC5jYWxsRnVuY3Rpb24oe1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzOiAocmVzOiBhbnkpID0+IGNhbGxiYWNrPy4ocmVzKSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3dlY2hhdCBjbG91ZCBmdW5jdGlvbiBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaz8uKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOWtmOWCqOeUqOaIt+S/oeaBr++8jOaVsOaNrumHj+S4jeiDveWkp+OAguWPr+S7peiAg+iZkeeUqOS6juWIhuaVsOaOkuihjOamnOOAgueUqOaIt+S5i+mXtOWPr+WFseS6q+aOkuihjOaVsOaNruOAglxyXG4gICAgICAgICAqIEBwYXJhbSBrZXkgXHJcbiAgICAgICAgICogQHBhcmFtIHZhbHVlIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHN0YXRpYyBzZXRVc2VyQ2xvdWRTdG9yYWdlKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGlmIChpc1dlY2hhdCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgICAgICB3eC5zZXRVc2VyQ2xvdWRTdG9yYWdlKHtcclxuICAgICAgICAgICAgICAgICAgICBLVkRhdGFMaXN0OiBbeyBrZXk6IGtleSwgdmFsdWU6IHZhbHVlIH1dLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IGNvbnNvbGUubG9nKGBzZXQgY2xvdWQgc3RvcmFnZSBzdWNjZXNzOiR7a2V5fSwgdmFsdWU6JHt2YWx1ZX1gKSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IGNvbnNvbGUubG9nKCdzZXQgY2xvdWQgc3RvcmFnZSBlcnJvcjonLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGlzQnl0ZWRhbmNlKCkpIHtcclxuICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICAgIHR0LnNldFVzZXJDbG91ZFN0b3JhZ2Uoe1xyXG4gICAgICAgICAgICAgICAgICAgIEtWRGF0YUxpc3Q6IFt7IGtleToga2V5LCB2YWx1ZTogdmFsdWUsIH1dLFxyXG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M6ICgpID0+IGNvbnNvbGUubG9nKGBzZXQgY2xvdWQgc3RvcmFnZSBzdWNjZXNzOiR7a2V5fSwgdmFsdWU6JHt2YWx1ZX1gKSxcclxuICAgICAgICAgICAgICAgICAgICBmYWlsOiAoZXJyOiBhbnkpID0+IGNvbnNvbGUubG9nKCdzZXQgY2xvdWQgc3RvcmFnZSBlcnJvcjonLCBlcnIpXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmipbpn7PkvqfovrnmoI/kuJPlsZ7mjqXlj6NcclxuICAgICAqL1xyXG4gICAgZXhwb3J0IGNsYXNzIEJ5dGVkYW5jZVNpZGViYXIge1xyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOacrOa4uOaIj+WcqOaKlumfs+eOr+Wig+S4i+WQr+WKqOebkeaOp++8jOmcgOimgeaUvuWcqOWFqOWxgOeOr+Wig+S4re+8jOS/neivgeiDveesrOS4gOaXtumXtOWQr+WKqOOAguWboOS4uuWPr+iDveebkeWQrOaKlumfs+Wksei0pe+8iOaKlumfs+Wwj+a4uOaIj+WumOaWueeahOivtOaYju+8ie+8gVxyXG4gICAgICAgICAqIEBwYXJhbSBvblJlc3VsdCDljIXlkKvkuIDkuKpib29sZWFu5Y+C5pWw55qE5Ye95pWwXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldCDkuIrov7Dlh73mlbDnmoTmi6XmnInogIXvvIzlpoLmnpzmmK/nsbvnmoTmiJDlkZjlh73mlbDvvIzpnIDopoHkvKDlhaV0aGlz44CC5pmu6YCa5oiW5Yy/5ZCN5Ye95pWw5b+955Wl5Y2z5Y+v44CCXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIGxpc3RlbkZyb21TaWRlYmFyKG9uUmVzdWx0OiAoc3VjY2VzczogYm9vbGVhbikgPT4gdm9pZCwgdGFyZ2V0PzogYW55KSB7XHJcbiAgICAgICAgICAgIGlmICghaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0dC5vblNob3coKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnb25TaG93IGxhdW5jaCByZXM6JywgcmVzKTtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMuc2NlbmUgPT09ICcwMjEwMzYnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCB0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnbGF1bmNoIGZyb20gc2lkZWJhcicpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnTk9UIGxhdW5jaCBmcm9tIGRvdXlpbiBzaWRlYmFyIScpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgbGV0IG9wdGlvbnMgPSB0dC5nZXRMYXVuY2hPcHRpb25zU3luYygpO1xyXG4gICAgICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnNjZW5lID09PSAnMDIxMDM2Jykge1xyXG4gICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCB0cnVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICog5qOA5rWL5oqW6Z+z5L6n6L655qCP5piv5ZCm5a2Y5ZyoXHJcbiAgICAgICAgICogQHBhcmFtIG9uUmVzdWx0IOWMheWQq+S4gOS4qmJvb2xlYW7lj4LmlbDnmoTlh73mlbBcclxuICAgICAgICAgKiBAcGFyYW0gdGFyZ2V0IOS4iui/sOWHveaVsOeahOaLpeacieiAhe+8jOWmguaenOaYr+exu+eahOaIkOWRmOWHveaVsO+8jOmcgOimgeS8oOWFpXRoaXPjgILmma7pgJrmiJbljL/lkI3lh73mlbDlv73nlaXljbPlj6/jgIJcclxuICAgICAgICAgKiBAcmV0dXJucyBcclxuICAgICAgICAgKi9cclxuICAgICAgICBzdGF0aWMgY2hlY2tTaWRlQmFyKG9uUmVzdWx0OiAoc3VjY2VzczogYm9vbGVhbikgPT4gdm9pZCwgdGFyZ2V0PzogYW55KSB7XHJcbiAgICAgICAgICAgIGlmICghaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgb25SZXN1bHQ/LmNhbGwodGFyZ2V0LCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICB0dC5jaGVja1NjZW5lKHtcclxuICAgICAgICAgICAgICAgIHNjZW5lOiBcInNpZGViYXJcIixcclxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2hlY2sgc2NlbmUgc3VjY2VzczogXCIsIHJlcy5pc0V4aXN0KTtcclxuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdD8uY2FsbCh0YXJnZXQsIDxib29sZWFuPnJlcy5pc0V4aXN0KTtcclxuXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjaGVjayBzY2VuZSBmYWlsOlwiLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qKlxyXG4gICAgICAgICAqIOi3s+i9rOWIsOaKlumfs+S+p+i+ueagj1xyXG4gICAgICAgICAqIEBwYXJhbSBvblJlc3VsdCDljIXlkKvkuIDkuKpib29sZWFu5Y+C5pWw55qE5Ye95pWwXHJcbiAgICAgICAgICogQHBhcmFtIHRhcmdldCDkuIrov7Dlh73mlbDnmoTmi6XmnInogIXvvIzlpoLmnpzmmK/nsbvnmoTmiJDlkZjlh73mlbDvvIzpnIDopoHkvKDlhaV0aGlz44CC5pmu6YCa5oiW5Yy/5ZCN5Ye95pWw5b+955Wl5Y2z5Y+v44CCXHJcbiAgICAgICAgICogQHJldHVybnMgXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgc3RhdGljIG5hdmlnYXRlVG9TaWRlYmFyKG9uUmVzdWx0OiAoc3VjY2VzczogYm9vbGVhbikgPT4gdm9pZCwgdGFyZ2V0PzogYW55KSB7XHJcbiAgICAgICAgICAgIGlmICghaXNCeXRlZGFuY2UoKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJub3QgZG91eWluIHBsYXRmb3JtIVwiKTtcclxuICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgICAgIHR0Lm5hdmlnYXRlVG9TY2VuZSh7XHJcbiAgICAgICAgICAgICAgICBzY2VuZTogXCJzaWRlYmFyXCIsXHJcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJuYXZpZ2F0ZSBzdWNjZXNzXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgdHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZmFpbDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJuYXZpZ2F0ZSBmYWlsZWQgcmVhc29uOlwiLCByZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0Py5jYWxsKHRhcmdldCwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufSJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/Config/GameConfig.js b/temp/quick-scripts/dst/assets/Script/module/Config/GameConfig.js new file mode 100644 index 0000000..ecd63fd --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/module/Config/GameConfig.js @@ -0,0 +1,303 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Config/GameConfig.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'c5692vnhwNF5J9nI7VNKQNW', 'GameConfig'); +// Script/module/Config/GameConfig.ts + +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GameConfig = void 0; +var share_1 = require("../Share/share"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var GameConfig = /** @class */ (function () { + function GameConfig() { + } + GameConfig_1 = GameConfig; + Object.defineProperty(GameConfig, "Instance", { + // static LEVEL_INFO: { + // id: string; //地图ID + // start: string[][]; //起始状态 + // goal: string[][]; //目标状态 + // middle: string[][][]; //中间状态 + // steps: number; //最大步数 + // }[]; + //游戏内信息 + get: function () { + if (this._instance == null) { + this._instance = new GameConfig_1(); + } + return this._instance; + }, + enumerable: false, + configurable: true + }); + //getSeedRandom + GameConfig.init = function (Authentication) { + this.CLICK_init(); + this.LEVEL_INFO_init(); + this.GM_INFO_init(); + var self = this; + //GAME_DATA 废弃了,暂时不删除以防后面修改回 一整局传一次 + this.GAME_DATA = []; + share_1.WeChat.setShare(location.href); + if (!Authentication) + self.Authentication(); + }; + //数据备用 + GameConfig.GM_INFO_init = function () { + this.GM_INFO = { + isCustom: false, + mean_Time: 0, + total: 0, + currSeed: 200000, + gameId: "100019", + userId: 0, + guide: true, + url: "https://api.sparkus.cn", + success: false, + matchId: null, + custom: 0, + round: 0, + level: 0, + guide_Level: 4, + startTime: -1, + random: 0, + stepTimeList: 0, + successList: [], + fen: 0, + score: 0, + igniteCount: 0, + min_Steps: 0, + min_Time: 0 //每一把上次距离洪峰到来时间 + }; + }; + GameConfig.GM_INFO_SET = function (key, value) { + this.GM_INFO[key] = value; + }; + GameConfig.CLICK_init = function () { + this.CLICK_DATA = + { + type: 1, + success: false, + round: 0, + duration: 0, + rightChoiceOuter: [], + userChoiceOuter: [], + rightChoiceInner: [], + userChoiceInner: [], + }; + }; + GameConfig.CLICK_SET = function (key, value) { + this.CLICK_DATA[key] = value; + }; + GameConfig.LEVEL_INFO_init = function () { + this.LEVEL_INFO = [{ + "id": "1", + "inside": 3, + "insideType": 1, + "outside": 0, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "2", + "inside": 3, + "insideType": 2, + "outside": 0, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "3", + "inside": 3, + "insideType": 3, + "outside": 0, + "outsideType": 1, + "showTime": 1, + }, + { + "id": "4", + "inside": 4, + "insideType": 3, + "outside": 0, + "outsideType": 1, + "showTime": 1, + }, + { + "id": "5", + "inside": 0, + "insideType": 1, + "outside": 1, + "outsideType": 1, + "showTime": 0.9, + }, + { + "id": "6", + "inside": 0, + "insideType": 1, + "outside": 1, + "outsideType": 2, + "showTime": 0.9, + }, + { + "id": "7", + "inside": 0, + "insideType": 1, + "outside": 2, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "8", + "inside": 0, + "insideType": 1, + "outside": 3, + "outsideType": 2, + "showTime": 1.2, + }, + { + "id": "9", + "inside": 3, + "insideType": 1, + "outside": 1, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "10", + "inside": 3, + "insideType": 2, + "outside": 1, + "outsideType": 2, + "showTime": 1.2, + }, + { + "id": "11", + "inside": 3, + "insideType": 1, + "outside": 2, + "outsideType": 1, + "showTime": 1.8, + }, + { + "id": "12", + "inside": 3, + "insideType": 2, + "outside": 2, + "outsideType": 2, + "showTime": 1.8, + }, + { + "id": "13", + "inside": 4, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.8, + }, + { + "id": "14", + "inside": 4, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.8, + }, + { + "id": "15", + "inside": 5, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.5, + }, + { + "id": "16", + "inside": 5, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.5, + } + ]; + this.GUIDE_INFO = [ + { + "id": "1", + "inside": 3, + "insideType": 1, + "outside": 0, + "outsideType": 1, + "showTime": 10000, + }, + { + "id": "5", + "inside": 0, + "insideType": 1, + "outside": 1, + "outsideType": 1, + "showTime": 10000, + }, + { + "id": "7", + "inside": 0, + "insideType": 1, + "outside": 2, + "outsideType": 1, + "showTime": 10000, + }, + ]; + // this.LEVEL_INFO = [{"id":"0001", //地图ID + // "start":[['r'], ['b'], ['g']], //起始状态 + // "goal":[[], ['r', 'g'], ['b']], //目标状态 + // "middle":[[['b', 'r', 'g'], [], []], [['g'], ['b'], ['r']], [['r', 'b'], ['g'], []]],//中间状态 + // "steps":17 //最大步数 + // }]; + // 0 12 3 + // 312 0 0 2 3 1 13 2 0 + // [2], [1], [3] + // [[2, 1, 3], [], []] + // [[], [2, 3], [1]] + // [[1, 2], [], [3]] + // [[[1], [2, 3], []], + // [[1], [], [3, 2]]] + }; + GameConfig.Authentication = function () { + cc.fx.GameTool.Authentication(); + }; + var GameConfig_1; + //所有控制信息都通过GameAppStart内控制 + GameConfig._instance = null; + GameConfig = GameConfig_1 = __decorate([ + ccclass('GameConfig') + ], GameConfig); + return GameConfig; +}()); +exports.GameConfig = GameConfig; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENvbmZpZ1xcR2FtZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBd0M7QUFJbEMsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFFNUM7SUFBQTtJQXVVQSxDQUFDO21CQXZVWSxVQUFVO0lBdUVuQixzQkFBVyxzQkFBUTtRQVZuQix1QkFBdUI7UUFDdkIseUJBQXlCO1FBQ3pCLGdDQUFnQztRQUNoQywrQkFBK0I7UUFDL0IsMkNBQTJDO1FBQzNDLDRCQUE0QjtRQUM1QixPQUFPO1FBR1AsT0FBTzthQUNQO1lBRUksSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksRUFDMUI7Z0JBQ0ksSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFlBQVUsRUFBRSxDQUFDO2FBQ3JDO1lBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzFCLENBQUM7OztPQUFBO0lBQ0QsZUFBZTtJQUNSLGVBQUksR0FBWCxVQUFZLGNBQWM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQ2hCLENBQUE7UUFFRCxjQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFHLENBQUMsY0FBYztZQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsTUFBTTtJQUNDLHVCQUFZLEdBQW5CO1FBQ0ksSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNYLFFBQVEsRUFBRSxLQUFLO1lBQ2YsU0FB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QzVDLDZDQUE2QztRQUM3Qyw2Q0FBNkM7UUFDN0MsMEdBQTBHO1FBQzFHLHlCQUF5QjtRQUN6QixNQUFNO1FBR04sVUFBVTtRQUNWLDhCQUE4QjtRQUc5QixnQkFBZ0I7UUFDaEIsc0JBQXNCO1FBR3RCLG9CQUFvQjtRQUNwQixvQkFBb0I7UUFDcEIsdUJBQXVCO1FBQ3ZCLHFCQUFxQjtJQUN6QixDQUFDO0lBR00seUJBQWMsR0FBckI7UUFDSSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNwQyxDQUFDOztJQXJVRCwwQkFBMEI7SUFDWCxvQkFBUyxHQUFnQixJQUFJLENBQUM7SUFGcEMsVUFBVTtRQUR0QixPQUFPLENBQUMsWUFBWSxDQUFDO09BQ1QsVUFBVSxDQXVVdEI7SUFBRCxpQkFBQztDQXZVRCxBQXVVQyxJQUFBO0FBdlVZLGdDQUFVIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2VDaGF0IH0gZnJvbSBcIi4uL1NoYXJlL3NoYXJlXCI7XHJcbmltcG9ydCB7IEdhbWVUb29sIH0gZnJvbSBcIi4uL1Rvb2wvR2FtZVRvb2xcIjtcclxuXHJcblxyXG5jb25zdCB7IGNjY2xhc3MsIHByb3BlcnR5IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5AY2NjbGFzcygnR2FtZUNvbmZpZycpXHJcbmV4cG9ydCBjbGFzcyBHYW1lQ29uZmlnICB7XHJcbiAgICAvL+aJgOacieaOp+WItuS/oeaBr+mDvemAmui/h0dhbWVBcHBTdGFydOWGheaOp+WItlxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlIDogR2FtZUNvbmZpZyA9IG51bGw7XHJcblxyXG4gICAgc3RhdGljIEdBTUVfREFUQTogYW55W107XHJcbiAgICAvL+WFs+WNoeaVsOaNrlxyXG5cclxuXHJcblxyXG4gICAgc3RhdGljIExFVkVMX0lORk86IHtcclxuICAgICAgICBpZDogc3RyaW5nOyAvL+mavuW6pmlkXHJcbiAgICAgICAgaW5zaWRlOiBudW1iZXI7IC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgaW5zaWRlVHlwZTogbnVtYmVyOyAvL+WGheWciOaOkuWIl+W9ouW8jywx77ya5LiA5o6S77yMMu+8muS4gOWIl++8jDPvvJrpmo/mnLpcclxuICAgICAgICBvdXRzaWRlOiBudW1iZXI7IC8v5aSW5ZyI562U5qGI56eN57G75Liq5pWw77yM5aSn5LqOMeaXtu+8jOWhq+a7oeWFtuS7luWbvuahiFxyXG4gICAgICAgIG91dHNpZGVUeXBlOiBudW1iZXI7IC8v5aSW5ZyI5o6S5YiX5b2i5byP77yMMe+8mumdnuWbm+inku+8jDLvvJrlm5vop5IsMzrpmo/mnLpcclxuICAgICAgICBzaG93VGltZTogbnVtYmVyOyAgIC8v5pi+56S65pe26Ze0XHJcbiAgICB9W107XHJcbiAgc3RhdGljIENMSUNLX0RBVEE6IHtcclxuICAgIHR5cGU6IG51bWJlcjsgLy/kuIrkvKDmlbDmja7nsbvlnotcclxuICAgIHN1Y2Nlc3M6IGJvb2xlYW47IC8v5piv5ZCm5q2j56GuXHJcbiAgICByb3VuZDogbnVtYmVyOyAvL+WbnuWQiOaVsOi9ruasoVxyXG4gICAgZHVyYXRpb246IG51bWJlcjsgLy/mnKzova7nlKjml7ZcclxuICAgIHJpZ2h0Q2hvaWNlT3V0ZXI6IGFueVtdOyAvL+WklumDqOato+ehrumAiemhueWdkOagh1xyXG4gICAgdXNlckNob2ljZU91dGVyOiBhbnlbXTsgLy/lpJbpg6jnjqnlrrbpgInpobnlnZDmoIdcclxuICAgIHJpZ2h0Q2hvaWNlSW5uZXI6IGFueVtdOyAvL+WGhemDqOato+ehrumAiemhueWdkOagh1xyXG4gICAgdXNlckNob2ljZUlubmVyOiBhbnlbXTtcclxuICB9O1xyXG4gIHN0YXRpYyBHVUlERV9JTkZPOiB7XHJcbiAgICBpZDogc3RyaW5nOyAvL+mavuW6pmlkXHJcbiAgICBpbnNpZGU6IG51bWJlcjsgLy/lhoXlnIjnrZTmoYjkuKrmlbBcclxuICAgIGluc2lkZVR5cGU6IG51bWJlcjsgLy/lhoXlnIjmjpLliJflvaLlvI8sMe+8muS4gOaOku+8jDLvvJrkuIDliJfvvIwz77ya6ZqP5py6XHJcbiAgICBvdXRzaWRlOiBudW1iZXI7IC8v5aSW5ZyI562U5qGI56eN57G75Liq5pWw77yM5aSn5LqOMeaXtu+8jOWhq+a7oeWFtuS7luWbvuahiFxyXG4gICAgb3V0c2lkZVR5cGU6IG51bWJlcjsgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgc2hvd1RpbWU6IG51bWJlcjtcclxuICB9W107XHJcbiAgc3RhdGljIEdNX0lORk86IHtcclxuICAgIGlzQ3VzdG9tOiBib29sZWFuOyAvL+mAieaLqeWFs+WNoeaooeW8j1xyXG4gICAgbWVhbl9UaW1lOiBudW1iZXI7IC8v5bmz5Z2H5pS+566t6YCf5bqmXHJcbiAgICB0b3RhbDogbnVtYmVyOyAvL+aAu+WFseWvueeahOS4quaVsFxyXG4gICAgY3VyclNlZWQ6IG51bWJlcjsgLy/nlKjkuo7pmo/mnLrmlbDnp43lrZBcclxuICAgIGdhbWVJZDogc3RyaW5nOyAvL+a4uOaIj0lEXHJcbiAgICB1c2VySWQ6IG51bWJlcjsgLy/nlKjmiLdJRFxyXG4gICAgZ3VpZGU6IGJvb2xlYW47IC8v5piv5ZCm5pyJ5byV5a+8XHJcbiAgICB1cmw6IHN0cmluZzsgLy/orr/pl67ln5/lkI1cclxuICAgIHN1Y2Nlc3M6IGJvb2xlYW47IC8v55So5oi35ri45oiP5oiQ5Yqf5LiO5ZCmXHJcbiAgICBtYXRjaElkOiBhbnk7IC8v55So5LqO5Z+L54K55LiK5Lyg55qESURcclxuICAgIGN1c3RvbTogbnVtYmVyOyAvL+eUqOS6jua1i+ivlei3s+WFs+WNoVxyXG4gICAgcm91bmQ6IG51bWJlcjsgLy/lm57lkIjmlbBcclxuICAgIGxldmVsOiBudW1iZXI7IC8v5YW35L2T5ri45oiP6Zq+5bqmXHJcbiAgICBndWlkZV9MZXZlbDogbnVtYmVyOyAvL+W8leWvvOetiee6p1xyXG4gICAgc3RhcnRUaW1lOiBudW1iZXI7IC8v546p5a6256ys5LiA5q2l5pON5L2cXHJcbiAgICByYW5kb206IG51bWJlcjsgLy/lvZPliY3pmr7luqbpmo/mnLrmlbBcclxuICAgIHN0ZXBUaW1lTGlzdDogbnVtYmVyOyAvL+aVtOWxgOa4uOaIj+eUqOaXtu+8jOeUseS6jua2ieWPiuWcuuaZr+WIh+aNou+8jOaVsOaNrumcgOimgeS/neeVmVxyXG4gICAgc3VjY2Vzc0xpc3Q6IGFueVtdOyAvL+aVtOWxgOiDnOi0n1xyXG4gICAgZmVuOiBudW1iZXI7IC8v5bCP5bGA5b6X5YiGXHJcbiAgICBzY29yZTogbnVtYmVyOyAvL+aAu+W+l+WIhlxyXG4gICAgaWduaXRlQ291bnQ6IG51bWJlcjsgLy/njqnlrrbmgLvorqHmiJDlip/ngrnngavmlbBcclxuICAgIG1pbl9TdGVwczogbnVtYmVyOyAvL+avj+asoeS4iuS4gOaKiuacgOWwj+atpeaVsFxyXG4gICAgbWluX1RpbWU6IG51bWJlcjsgLy/mr4/kuIDmiorkuIrmrKHot53nprvmtKrls7DliLDmnaXml7bpl7RcclxuICB9O1xyXG5cclxuICAgIC8vIHN0YXRpYyBMRVZFTF9JTkZPOiB7XHJcbiAgICAvLyAgICAgaWQ6IHN0cmluZzsgLy/lnLDlm75JRFxyXG4gICAgLy8gICAgIHN0YXJ0OiBzdHJpbmdbXVtdOyAvL+i1t+Wni+eKtuaAgVxyXG4gICAgLy8gICAgIGdvYWw6IHN0cmluZ1tdW107IC8v55uu5qCH54q25oCBXHJcbiAgICAvLyAgICAgbWlkZGxlOiBzdHJpbmdbXVtdW107IC8v5Lit6Ze054q25oCBICAgICAgICBcclxuICAgIC8vICAgICBzdGVwczogbnVtYmVyOyAvL+acgOWkp+atpeaVsFxyXG4gICAgLy8gfVtdO1xyXG5cclxuXHJcbiAgICAvL+a4uOaIj+WGheS/oeaBr1xyXG4gICAgc3RhdGljIGdldCBJbnN0YW5jZSgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2luc3RhbmNlID09IG51bGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBHYW1lQ29uZmlnKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcclxuICAgIH1cclxuICAgIC8vZ2V0U2VlZFJhbmRvbVxyXG4gICAgc3RhdGljIGluaXQoQXV0aGVudGljYXRpb24pe1xyXG4gICAgICAgIHRoaXMuQ0xJQ0tfaW5pdCgpO1xyXG4gICAgICAgIHRoaXMuTEVWRUxfSU5GT19pbml0KCk7XHJcbiAgICAgICAgdGhpcy5HTV9JTkZPX2luaXQoKTtcclxuICAgICAgICB2YXIgc2VsZiA9IHRoaXM7XHJcbiAgICAgICAgLy9HQU1FX0RBVEEg5bqf5byD5LqG77yM5pqC5pe25LiN5Yig6Zmk5Lul6Ziy5ZCO6Z2i5L+u5pS55ZueIOS4gOaVtOWxgOS8oOS4gOasoVxyXG4gICAgICAgIHRoaXMuR0FNRV9EQVRBID0gW1xyXG4gICAgICAgIF1cclxuXHJcbiAgICAgICAgV2VDaGF0LnNldFNoYXJlKGxvY2F0aW9uLmhyZWYpO1xyXG4gICAgICAgIGlmKCFBdXRoZW50aWNhdGlvbikgc2VsZi5BdXRoZW50aWNhdGlvbigpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAvL+aVsOaNruWkh+eUqFxyXG4gICAgc3RhdGljIEdNX0lORk9faW5pdCgpIHtcclxuICAgICAgICB0aGlzLkdNX0lORk8gPSB7XHJcbiAgICAgICAgICAgIGlzQ3VzdG9tOiBmYWxzZSwgICAgICAgICAgICAgLy/pgInmi6nlhbPljaHmqKHlvI9cclxuICAgICAgICAgICAgbWVhbl9UaW1lOiAwLCAgICAgICAgICAgICAgICAvL+W5s+Wdh+aUvueuremAn+W6plxyXG4gICAgICAgICAgICB0b3RhbDogMCwgICAgICAgICAgICAgICAgICAgIC8v5oC75YWx5a+555qE5Liq5pWwXHJcbiAgICAgICAgICAgIGN1cnJTZWVkOiAyMDAwMDAsICAgICAgICAgICAvL+eUqOS6jumaj+acuuaVsOenjeWtkFxyXG4gICAgICAgICAgICBnYW1lSWQ6IFwiMTAwMDE5XCIsICAgICAgICAgICAvL+a4uOaIj0lEXHJcbiAgICAgICAgICAgIHVzZXJJZDogMCwgICAgICAgICAgICAgICAgICAvL+eUqOaIt0lEXHJcbiAgICAgICAgICAgIGd1aWRlOiB0cnVlLCAgICAgICAgICAgICAgICAgLy/mmK/lkKbmnInlvJXlr7xcclxuICAgICAgICAgICAgdXJsOiBcImh0dHBzOi8vYXBpLnNwYXJrdXMuY25cIiwvL+iuv+mXruWfn+WQjVxyXG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSwgICAgICAgICAgICAgLy/nlKjmiLfmuLjmiI/miJDlip/kuI7lkKZcclxuICAgICAgICAgICAgbWF0Y2hJZDogbnVsbCwgICAgICAgICAgICAgIC8v55So5LqO5Z+L54K55LiK5Lyg55qESURcclxuICAgICAgICAgICAgY3VzdG9tOiAwLCAgICAgICAgICAgICAgICAgIC8v55So5LqO5rWL6K+V6Lez5YWz5Y2hXHJcbiAgICAgICAgICAgIHJvdW5kOjAsICAgICAgICAgICAgICAgICAgICAvL+WbnuWQiOaVsFxyXG4gICAgICAgICAgICBsZXZlbDogMCwgICAgICAgICAgICAgICAgICAgLy/lhbfkvZPmuLjmiI/pmr7luqZcclxuICAgICAgICAgICAgZ3VpZGVfTGV2ZWw6NCwgICAgICAgICAgICAgIC8v5byV5a+8562J57qnXHJcbiAgICAgICAgICAgIHN0YXJ0VGltZTotMSwgICAgICAgICAgICAgICAvL+eOqeWutuesrOS4gOatpeaTjeS9nFxyXG4gICAgICAgICAgICByYW5kb206MCwgICAgICAgICAgICAgICAgICAgLy/lvZPliY3pmr7luqbpmo/mnLrmlbBcclxuICAgICAgICAgICAgc3RlcFRpbWVMaXN0OjAsICAgICAgICAgICAgIC8v5pW05bGA5ri45oiP55So5pe277yM55Sx5LqO5raJ5Y+K5Zy65pmv5YiH5o2i77yM5pWw5o2u6ZyA6KaB5L+d55WZXHJcbiAgICAgICAgICAgIHN1Y2Nlc3NMaXN0OltdLCAgICAgICAgICAgICAgLy/mlbTlsYDog5zotJ9cclxuICAgICAgICAgICAgZmVuOjAsICAgICAgICAgICAgICAgICAgICAgIC8v5bCP5bGA5b6X5YiGXHJcbiAgICAgICAgICAgIHNjb3JlOjAsICAgICAgICAgICAgICAgICAgICAvL+aAu+W+l+WIhlxyXG4gICAgICAgICAgICBpZ25pdGVDb3VudDogMCwgICAgICAgICAgICAgLy/njqnlrrbmgLvorqHmiJDlip/ngrnngavmlbBcclxuICAgICAgICAgICAgbWluX1N0ZXBzOjAsICAgICAgICAgICAgICAgIC8v5q+P5qyh5LiK5LiA5oqK5pyA5bCP5q2l5pWwXHJcbiAgICAgICAgICAgIG1pbl9UaW1lOjAgICAgICAgICAgICAgICAgICAvL+avj+S4gOaKiuS4iuasoei3neemu+a0quWzsOWIsOadpeaXtumXtFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgfVxyXG4gICAgc3RhdGljIEdNX0lORk9fU0VUKGtleSx2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuR01fSU5GT1trZXldID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgQ0xJQ0tfaW5pdCgpIHtcclxuICAgICAgICB0aGlzLkNMSUNLX0RBVEEgPVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogMSwgICAgICAgICAgICAvL+S4iuS8oOaVsOaNruexu+Wei1xyXG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSwgICAgIC8v5piv5ZCm5q2j56GuXHJcbiAgICAgICAgICAgIHJvdW5kOiAwLCAgICAgICAgICAgLy/lm57lkIjmlbDova7mrKFcclxuICAgICAgICAgICAgZHVyYXRpb246MCwgICAgICAgICAvL+acrOi9rueUqOaXtlxyXG4gICAgICAgICAgICByaWdodENob2ljZU91dGVyOltdLC8v5aSW6YOo5q2j56Gu6YCJ6aG55Z2Q5qCHXHJcbiAgICAgICAgICAgIHVzZXJDaG9pY2VPdXRlcjpbXSwgLy/lpJbpg6jnjqnlrrbpgInpobnlnZDmoIdcclxuICAgICAgICAgICAgcmlnaHRDaG9pY2VJbm5lcjpbXSwvL+WGhemDqOato+ehrumAiemhueWdkOagh1xyXG4gICAgICAgICAgICB1c2VyQ2hvaWNlSW5uZXI6W10sIC8v5YaF6YOo546p5a626YCJ6aG55Z2Q5qCHXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBDTElDS19TRVQoa2V5LHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5DTElDS19EQVRBW2tleV0gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgTEVWRUxfSU5GT19pbml0KCkge1xyXG4gICAgICAgIHRoaXMuTEVWRUxfSU5GTyA9IFt7XHJcbiAgICAgICAgICAgICBcImlkXCI6XCIxXCIsICAgICAgICAgIC8v6Zq+5bqmaWRcclxuICAgICAgICAgICAgIFwiaW5zaWRlXCI6MywgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgICBcImluc2lkZVR5cGVcIjoxLCAgICAvL+WGheWciOaOkuWIl+W9ouW8jywx77ya5LiA5o6S77yMMu+8muS4gOWIl++8jDPvvJrpmo/mnLpcclxuICAgICAgICAgICAgIFwib3V0c2lkZVwiOjAsICAgICAgIC8v5aSW5ZyI562U5qGI56eN57G75Liq5pWw77yM5aSn5LqOMeaXtu+8jOWhq+a7oeWFtuS7luWbvuahiFxyXG4gICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjEsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICAgXCJzaG93VGltZVwiOjEuMiwgICAgICAvL+aYvuekuuaXtumXtO+8jOenkuS4uuWNleS9jVxyXG4gICAgICAgICAgIH0sXHJcbiAgICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIyXCIsICAgICAgICAgIC8v6Zq+5bqmaWRcclxuICAgICAgICAgICAgXCJpbnNpZGVcIjozLCAgICAgICAgLy/lhoXlnIjnrZTmoYjkuKrmlbBcclxuICAgICAgICAgICAgXCJpbnNpZGVUeXBlXCI6MiwgICAgLy/lhoXlnIjmjpLliJflvaLlvI8sMe+8muS4gOaOku+8jDLvvJrkuIDliJfvvIwz77ya6ZqP5py6XHJcbiAgICAgICAgICAgIFwib3V0c2lkZVwiOjAsICAgICAgIC8v5aSW5ZyI562U5qGI56eN57G75Liq5pWw77yM5aSn5LqOMeaXtu+8jOWhq+a7oeWFtuS7luWbvuahiFxyXG4gICAgICAgICAgICBcIm91dHNpZGVUeXBlXCI6MSwgICAvL+WkluWciOaOkuWIl+W9ouW8j++8jDHvvJrpnZ7lm5vop5LvvIwy77ya5Zub6KeSLDM66ZqP5py6XHJcbiAgICAgICAgICAgIFwic2hvd1RpbWVcIjoxLjIsICAgICAgLy/mmL7npLrml7bpl7TvvIznp5LkuLrljZXkvY1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwiaWRcIjpcIjNcIiwgICAgICAgICAgLy/pmr7luqZpZFxyXG4gICAgICAgICAgICBcImluc2lkZVwiOjMsICAgICAgICAvL+WGheWciOetlOahiOS4quaVsFxyXG4gICAgICAgICAgICBcImluc2lkZVR5cGVcIjozLCAgICAvL+WGheWciOaOkuWIl+W9ouW8jywx77ya5LiA5o6S77yMMu+8muS4gOWIl++8jDPvvJrpmo/mnLpcclxuICAgICAgICAgICAgXCJvdXRzaWRlXCI6MCwgICAgICAgLy/lpJblnIjnrZTmoYjnp43nsbvkuKrmlbDvvIzlpKfkuo4x5pe277yM5aGr5ruh5YW25LuW5Zu+5qGIXHJcbiAgICAgICAgICAgIFwib3V0c2lkZVR5cGVcIjoxLCAgIC8v5aSW5ZyI5o6S5YiX5b2i5byP77yMMe+8mumdnuWbm+inku+8jDLvvJrlm5vop5IsMzrpmo/mnLpcclxuICAgICAgICAgICAgXCJzaG93VGltZVwiOjEsICAgICAgLy/mmL7npLrml7bpl7TvvIznp5LkuLrljZXkvY1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwiaWRcIjpcIjRcIiwgICAgICAgICAgLy/pmr7luqZpZFxyXG4gICAgICAgICAgICBcImluc2lkZVwiOjQsICAgICAgICAvL+WGheWciOetlOahiOS4quaVsFxyXG4gICAgICAgICAgICBcImluc2lkZVR5cGVcIjozLCAgICAvL+WGheWciOaOkuWIl+W9ouW8jywx77ya5LiA5o6S77yMMu+8muS4gOWIl++8jDPvvJrpmo/mnLpcclxuICAgICAgICAgICAgXCJvdXRzaWRlXCI6MCwgICAgICAgLy/lpJblnIjnrZTmoYjnp43nsbvkuKrmlbDvvIzlpKfkuo4x5pe277yM5aGr5ruh5YW25LuW5Zu+5qGIXHJcbiAgICAgICAgICAgIFwib3V0c2lkZVR5cGVcIjoxLCAgIC8v5aSW5ZyI5o6S5YiX5b2i5byP77yMMe+8mumdnuWbm+inku+8jDLvvJrlm5vop5IsMzrpmo/mnLpcclxuICAgICAgICAgICAgXCJzaG93VGltZVwiOjEsICAgICAgLy/mmL7npLrml7bpl7TvvIznp5LkuLrljZXkvY1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwiaWRcIjpcIjVcIiwgICAgICAgICAgLy/pmr7luqZpZFxyXG4gICAgICAgICAgICBcImluc2lkZVwiOjAsICAgICAgICAvL+WGheWciOetlOahiOS4quaVsFxyXG4gICAgICAgICAgICBcImluc2lkZVR5cGVcIjoxLCAgICAvL+WGheWciOaOkuWIl+W9ouW8jywx77ya5LiA5o6S77yMMu+8muS4gOWIl++8jDPvvJrpmo/mnLpcclxuICAgICAgICAgICAgXCJvdXRzaWRlXCI6MSwgICAgICAgLy/lpJblnIjnrZTmoYjnp43nsbvkuKrmlbDvvIzlpKfkuo4x5pe277yM5aGr5ruh5YW25LuW5Zu+5qGIXHJcbiAgICAgICAgICAgIFwib3V0c2lkZVR5cGVcIjoxLCAgIC8v5aSW5ZyI5o6S5YiX5b2i5byP77yMMe+8mumdnuWbm+inku+8jDLvvJrlm5vop5IsMzrpmo/mnLpcclxuICAgICAgICAgICAgXCJzaG93VGltZVwiOjAuOSwgICAgICAvL+aYvuekuuaXtumXtO+8jOenkuS4uuWNleS9jVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJpZFwiOlwiNlwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6MCwgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjEsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjoxLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjIsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MC45LCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCI3XCIsICAgICAgICAgIC8v6Zq+5bqmaWRcclxuICAgICAgICAgICAgXCJpbnNpZGVcIjowLCAgICAgICAgLy/lhoXlnIjnrZTmoYjkuKrmlbBcclxuICAgICAgICAgICAgXCJpbnNpZGVUeXBlXCI6MSwgICAgLy/lhoXlnIjmjpLliJflvaLlvI8sMe+8muS4gOaOku+8jDLvvJrkuIDliJfvvIwz77ya6ZqP5py6XHJcbiAgICAgICAgICAgIFwib3V0c2lkZVwiOjIsICAgICAgIC8v5aSW5ZyI562U5qGI56eN57G75Liq5pWw77yM5aSn5LqOMeaXtu+8jOWhq+a7oeWFtuS7luWbvuahiFxyXG4gICAgICAgICAgICBcIm91dHNpZGVUeXBlXCI6MSwgICAvL+WkluWciOaOkuWIl+W9ouW8j++8jDHvvJrpnZ7lm5vop5LvvIwy77ya5Zub6KeSLDM66ZqP5py6XHJcbiAgICAgICAgICAgIFwic2hvd1RpbWVcIjoxLjIsICAgICAgLy/mmL7npLrml7bpl7TvvIznp5LkuLrljZXkvY1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIFwiaWRcIjpcIjhcIiwgICAgICAgICAgLy/pmr7luqZpZFxyXG4gICAgICAgICAgICBcImluc2lkZVwiOjAsICAgICAgICAvL+WGheWciOetlOahiOS4quaVsFxyXG4gICAgICAgICAgICBcImluc2lkZVR5cGVcIjoxLCAgICAvL+WGheWciOaOkuWIl+W9ouW8jywx77ya5LiA5o6S77yMMu+8muS4gOWIl++8jDPvvJrpmo/mnLpcclxuICAgICAgICAgICAgXCJvdXRzaWRlXCI6MywgICAgICAgLy/lpJblnIjnrZTmoYjnp43nsbvkuKrmlbDvvIzlpKfkuo4x5pe277yM5aGr5ruh5YW25LuW5Zu+5qGIXHJcbiAgICAgICAgICAgIFwib3V0c2lkZVR5cGVcIjoyLCAgIC8v5aSW5ZyI5o6S5YiX5b2i5byP77yMMe+8mumdnuWbm+inku+8jDLvvJrlm5vop5IsMzrpmo/mnLpcclxuICAgICAgICAgICAgXCJzaG93VGltZVwiOjEuMiwgICAgICAvL+aYvuekuuaXtumXtO+8jOenkuS4uuWNleS9jVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgXCJpZFwiOlwiOVwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6MywgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjEsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjoxLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjEsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS4yLCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIxMFwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6MywgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjIsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjoxLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjIsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS4yLCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIxMVwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6MywgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjEsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjoyLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjEsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS44LCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIxMlwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6MywgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjIsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjoyLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjIsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS44LCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIxM1wiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6NCwgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjMsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjozLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjMsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS44LCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIxNFwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6NCwgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjMsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjozLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjMsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS44LCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIxNVwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6NSwgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjMsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjozLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjMsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS41LCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBcImlkXCI6XCIxNlwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgIFwiaW5zaWRlXCI6NSwgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjMsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICBcIm91dHNpZGVcIjozLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjMsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICBcInNob3dUaW1lXCI6MS41LCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG5cclxuICAgICAgICB0aGlzLkdVSURFX0lORk8gPVtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIFwiaWRcIjpcIjFcIiwgICAgICAgICAgLy/pmr7luqZpZFxyXG4gICAgICAgICAgICAgIFwiaW5zaWRlXCI6MywgICAgICAgIC8v5YaF5ZyI562U5qGI5Liq5pWwXHJcbiAgICAgICAgICAgICAgXCJpbnNpZGVUeXBlXCI6MSwgICAgLy/lhoXlnIjmjpLliJflvaLlvI8sMe+8muS4gOaOku+8jDLvvJrkuIDliJfvvIwz77ya6ZqP5py6XHJcbiAgICAgICAgICAgICAgXCJvdXRzaWRlXCI6MCwgICAgICAgLy/lpJblnIjnrZTmoYjnp43nsbvkuKrmlbDvvIzlpKfkuo4x5pe277yM5aGr5ruh5YW25LuW5Zu+5qGIXHJcbiAgICAgICAgICAgICAgXCJvdXRzaWRlVHlwZVwiOjEsICAgLy/lpJblnIjmjpLliJflvaLlvI/vvIwx77ya6Z2e5Zub6KeS77yMMu+8muWbm+inkiwzOumaj+aculxyXG4gICAgICAgICAgICAgIFwic2hvd1RpbWVcIjoxMDAwMCwgICAgICAvL+aYvuekuuaXtumXtO+8jOenkuS4uuWNleS9jVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJpZFwiOlwiNVwiLCAgICAgICAgICAvL+mavuW6pmlkXHJcbiAgICAgICAgICAgICAgXCJpbnNpZGVcIjowLCAgICAgICAgLy/lhoXlnIjnrZTmoYjkuKrmlbBcclxuICAgICAgICAgICAgICBcImluc2lkZVR5cGVcIjoxLCAgICAvL+WGheWciOaOkuWIl+W9ouW8jywx77ya5LiA5o6S77yMMu+8muS4gOWIl++8jDPvvJrpmo/mnLpcclxuICAgICAgICAgICAgICBcIm91dHNpZGVcIjoxLCAgICAgICAvL+WkluWciOetlOahiOenjeexu+S4quaVsO+8jOWkp+S6jjHml7bvvIzloavmu6Hlhbbku5blm77moYhcclxuICAgICAgICAgICAgICBcIm91dHNpZGVUeXBlXCI6MSwgICAvL+WkluWciOaOkuWIl+W9ouW8j++8jDHvvJrpnZ7lm5vop5LvvIwy77ya5Zub6KeSLDM66ZqP5py6XHJcbiAgICAgICAgICAgICAgXCJzaG93VGltZVwiOjEwMDAwLCAgICAgIC8v5pi+56S65pe26Ze077yM56eS5Li65Y2V5L2NXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImlkXCI6XCI3XCIsICAgICAgICAgIC8v6Zq+5bqmaWRcclxuICAgICAgICAgICAgICBcImluc2lkZVwiOjAsICAgICAgICAvL+WGheWciOetlOahiOS4quaVsFxyXG4gICAgICAgICAgICAgIFwiaW5zaWRlVHlwZVwiOjEsICAgIC8v5YaF5ZyI5o6S5YiX5b2i5byPLDHvvJrkuIDmjpLvvIwy77ya5LiA5YiX77yMM++8mumaj+aculxyXG4gICAgICAgICAgICAgIFwib3V0c2lkZVwiOjIsICAgICAgIC8v5aSW5ZyI562U5qGI56eN57G75Liq5pWw77yM5aSn5LqOMeaXtu+8jOWhq+a7oeWFtuS7luWbvuahiFxyXG4gICAgICAgICAgICAgIFwib3V0c2lkZVR5cGVcIjoxLCAgIC8v5aSW5ZyI5o6S5YiX5b2i5byP77yMMe+8mumdnuWbm+inku+8jDLvvJrlm5vop5IsMzrpmo/mnLpcclxuICAgICAgICAgICAgICBcInNob3dUaW1lXCI6MTAwMDAsICAgICAgLy/mmL7npLrml7bpl7TvvIznp5LkuLrljZXkvY1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICBdXHJcbiAgICAgICAgXHJcbiAgICAgICAgLy8gdGhpcy5MRVZFTF9JTkZPID0gW3tcImlkXCI6XCIwMDAxXCIsICAgLy/lnLDlm75JRFxyXG4gICAgICAgIC8vICAgICBcInN0YXJ0XCI6W1snciddLCBbJ2InXSwgWydnJ11dLCAgLy/otbflp4vnirbmgIFcclxuICAgICAgICAvLyAgICAgXCJnb2FsXCI6W1tdLCBbJ3InLCAnZyddLCBbJ2InXV0sIC8v55uu5qCH54q25oCBXHJcbiAgICAgICAgLy8gICAgIFwibWlkZGxlXCI6W1tbJ2InLCAncicsICdnJ10sIFtdLCBbXV0sIFtbJ2cnXSwgWydiJ10sIFsnciddXSwgW1sncicsICdiJ10sIFsnZyddLCBbXV1dLC8v5Lit6Ze054q25oCBICAgICAgICBcclxuICAgICAgICAvLyAgICAgXCJzdGVwc1wiOjE3ICAvL+acgOWkp+atpeaVsFxyXG4gICAgICAgIC8vIH1dO1xyXG5cclxuICAgIFxyXG4gICAgICAgIC8vIDAgIDEyIDNcclxuICAgICAgICAvLyAzMTIgMCAgMCAgIDIgMyAxICAgICAxMyAyIDBcclxuXHJcblxyXG4gICAgICAgIC8vIFsyXSwgWzFdLCBbM11cclxuICAgICAgICAvLyBbWzIsIDEsIDNdLCBbXSwgW11dXHJcblxyXG5cclxuICAgICAgICAvLyBbW10sIFsyLCAzXSwgWzFdXVxyXG4gICAgICAgIC8vIFtbMSwgMl0sIFtdLCBbM11dXHJcbiAgICAgICAgLy8gW1tbMV0sIFsyLCAzXSwgW11dLCBcclxuICAgICAgICAvLyBbWzFdLCBbXSwgWzMsIDJdXV1cclxuICAgIH1cclxuXHJcblxyXG4gICAgc3RhdGljIEF1dGhlbnRpY2F0aW9uKCl7XHJcbiAgICAgICAgY2MuZnguR2FtZVRvb2wuQXV0aGVudGljYXRpb24oKTtcclxuICAgIH1cclxufVxyXG5cclxuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/Crypto/HttpUtil.js b/temp/quick-scripts/dst/assets/Script/module/Crypto/HttpUtil.js new file mode 100644 index 0000000..5817a39 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/module/Crypto/HttpUtil.js @@ -0,0 +1,387 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Crypto/HttpUtil.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '771a32aQBNGVKd3+66gyTKA', 'HttpUtil'); +// Script/module/Crypto/HttpUtil.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var CryptoJS = require("./crypto-js.min.js"); //引用AES源码js +var BASE_URL = "https://api.sparkus.cn"; +//只负责网络接口 次类只负责和后端交互,不负责处理数据 数据处理在GameTool +var HttpUtil = /** @class */ (function (_super) { + __extends(HttpUtil, _super); + function HttpUtil() { + return _super !== null && _super.apply(this, arguments) || this; + } + HttpUtil_1 = HttpUtil; + //排行榜 + HttpUtil.rankData = function (type, callback, data) { + return __awaiter(this, void 0, Promise, function () { + var time, url; + return __generator(this, function (_a) { + time = Math.floor((new Date().getTime()) / 1000); + url = HttpUtil_1.apiSign("/api/get/rank/data?gameId=" + config.gameId + "&dataType=" + type + "&time=" + time, data); + this.post(url, data, callback, 0); + return [2 /*return*/]; + }); + }); + }; + HttpUtil.uploadUserLogData = function (data, callback) { + return __awaiter(this, void 0, Promise, function () { + var url; + return __generator(this, function (_a) { + url = '/log/collect/data'; + this.post(url, data, callback, 3); + return [2 /*return*/]; + }); + }); + }; + //暂时用不到 + HttpUtil.getUserRecord = function (data, callback) { + return __awaiter(this, void 0, Promise, function () { + var time, url; + return __generator(this, function (_a) { + time = Math.floor((new Date().getTime()) / 1000); + url = HttpUtil_1.apiSign("/api/get/user/data?gameId=" + config.gameId + "&time=" + time, data); + this.post(url, data, callback, 0); + return [2 /*return*/]; + }); + }); + }; + HttpUtil.get = function (url, callback, count) { + return __awaiter(this, void 0, void 0, function () { + var repeat, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + repeat = count ? count : 0; + return [4 /*yield*/, this.fetchData(url, null, 'GET', repeat)]; + case 1: + response = _a.sent(); + callback && callback(response); + return [2 /*return*/]; + } + }); + }); + }; + HttpUtil.post = function (url, data, callback, count) { + return __awaiter(this, void 0, void 0, function () { + var repeat, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + repeat = count ? count : 0; + return [4 /*yield*/, this.fetchData(url, data, 'POST', repeat)]; + case 1: + response = _a.sent(); + callback && callback(response); + return [2 /*return*/]; + } + }); + }); + }; + HttpUtil.fetchData = function (url, data, method, repeat) { + return __awaiter(this, void 0, void 0, function () { + var fullUrl, headers, options, response, error_1, timeOut; + var _this = this; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + fullUrl = "" + BASE_URL + url; + headers = { 'Content-Type': 'application/json' }; + options = { + method: method, + headers: headers, + body: data ? JSON.stringify(data) : null, + }; + _a.label = 1; + case 1: + _a.trys.push([1, 4, , 5]); + return [4 /*yield*/, this.fetchWithTimeout(fullUrl, options)]; + case 2: + response = _a.sent(); + if (!response.ok) { + throw new Error("HTTP_______________error! status: " + response.status); + } + return [4 /*yield*/, response.json()]; + case 3: return [2 /*return*/, _a.sent()]; + case 4: + error_1 = _a.sent(); + console.error('Fetch_______________error:', error_1); + if (repeat > 0) { + repeat -= 1; + timeOut = (3 - repeat) * 5000; + setTimeout(function () { return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, this.fetchData(url, data, method, repeat)]; + case 1: + response = _a.sent(); + return [2 /*return*/]; + } + }); + }); }, timeOut); + } + else { + return [2 /*return*/, null]; + } + return [3 /*break*/, 5]; + case 5: return [2 /*return*/]; + } + }); + }); + }; + HttpUtil.fetchWithTimeout = function (resource, options) { + if (options === void 0) { options = {}; } + return __awaiter(this, void 0, void 0, function () { + var controller, id, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + controller = new AbortController(); + id = setTimeout(function () { return controller.abort(); }, 5000); + return [4 /*yield*/, fetch(resource, __assign(__assign({}, options), { signal: controller.signal }))]; + case 1: + response = _a.sent(); + clearTimeout(id); + return [2 /*return*/, response]; + } + }); + }); + }; + /** + * + * @param url {string} 接口地址 + * @param params {object} 需要加密的参数对象 + */ + HttpUtil.apiSign = function (url, params) { + if (params === void 0) { params = {}; } + var convertUrl = url.trim(); + if (convertUrl.indexOf('?') === -1) { + convertUrl += '?'; + } + // 传入参数转换拼接字符串 + var postStr = getQueryString(params); + var signedStr = genSignStr(convertUrl, postStr); + var encryptStr = "sign=" + signedStr; + var encryptSignStr = fxCry.encryptByDES(encryptStr, config.secretKey); + encryptSignStr = encodeURIComponent(encryptSignStr); + return urlencode(convertUrl) + "&_p=" + encryptSignStr; + }; + var HttpUtil_1; + HttpUtil = HttpUtil_1 = __decorate([ + ccclass + ], HttpUtil); + return HttpUtil; +}(cc.Component)); +exports.default = HttpUtil; +function responseHandler(response) { + return response.data; +} +// 响应拦截器 +// Rq.interceptors.response.use(responseHandler) +var config = { + gameId: "100019", + secretKey: "15ELeamO", + EK: "hui231%1" +}; +var Crypoto = /** @class */ (function () { + function Crypoto() { + // 加密的向明值,自己根据项目实际情况定,需要跟后端开发保持一致 + this.keyHex = this.getHetKey(); + } + Crypoto.prototype.getHetKey = function () { + return CryptoJS.enc.Utf8.parse(config.EK); + }; + /** DES加密 */ + Crypoto.prototype.encryptByDES = function (message, secret) { + if (!message) { + return message; + } + var key = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var encrypted = CryptoJS.DES.encrypt(message, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return encrypted.toString(); + }; + /** DES解密 */ + Crypoto.prototype.decryptByDES = function (message, secret) { + var key = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var decrypted = CryptoJS.DES.decrypt({ + ciphertext: CryptoJS.enc.Base64.parse(message) + }, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return decrypted.toString(CryptoJS.enc.Utf8); + }; + /** hmacSHA256加密 */ + Crypoto.prototype.hmacSha256 = function (message, secret) { + var keyHex = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var hash = CryptoJS.HmacSHA256(message, keyHex); + return hash.toString(); + }; + /** hmacSHA256验证 */ + Crypoto.prototype.verifyHmacSha256 = function (message, signature) { + var hash = CryptoJS.HmacSHA256(message, this.keyHex); + return hash.toString() === signature; + }; + /** CBC加密 */ + Crypoto.prototype.encryptCBC = function (word) { + if (!word) { + return word; + } + var srcs = CryptoJS.enc.Utf8.parse(word); + var encrypted = CryptoJS.AES.encrypt(srcs, this.keyHex, { + iv: this.keyHex, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.ZeroPadding + }); + return encrypted.toString(); + }; + /** CBC解密 */ + Crypoto.prototype.decryptCBC = function (word) { + if (!word) { + return word; + } + var encryptedHexStr = CryptoJS.enc.Hex.parse(word); + var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr); + var decrypt = CryptoJS.AES.decrypt(srcs, this.keyHex, { + iv: this.keyHex, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.ZeroPadding + }); + var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); + return decryptedStr.toString(); + }; + return Crypoto; +}()); +var fxCry = new Crypoto(); +function isEmpty(data) { + return data === "" || data === null || data === undefined || data.length === 0 || JSON.stringify(data) == "{}"; +} +function getQueryString(obj) { + // 首先对对象的键进行排序并过滤空值 + var sortedKeys = Object.keys(obj).sort(); + var sortedObj = {}; + for (var i = 0; i < sortedKeys.length; i++) { + if (isEmpty(obj[sortedKeys[i]])) { + continue; + } + sortedObj[sortedKeys[i]] = obj[sortedKeys[i]]; + } + // 然后将排序后的对象转换为查询字符串 + var params = []; + for (var key in sortedObj) { + params.push(encodeURIComponent(key) + "=" + encodeURIComponent(sortedObj[key])); + } + return params.join('&'); +} +/** + * 组装签名字符串 + * @param string url: 请求地址 + * @param string postStr: post参数的a=1&b=2 + * @returns + */ +function genSignStr(url, postStr) { + var lessUrl = url.replace('?', ''); + lessUrl = lessUrl + "&" + postStr; + return encodeURIComponent(fxCry.hmacSha256(lessUrl)); +} +// 对参数进行统一urlencode +function urlencode(url) { + var _a = url.split("?", 2), baseUrl = _a[0], queryString = _a[1]; + var params = new URLSearchParams(queryString); + return baseUrl + "?" + params.toString(); +} + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENyeXB0b1xcSHR0cFV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDTSxJQUFBLEtBQXNCLEVBQUUsQ0FBQyxVQUFVLEVBQWxDLE9BQU8sYUFBQSxFQUFFLFFBQVEsY0FBaUIsQ0FBQztBQUMxQyw2Q0FBZ0QsQ0FBRSxXQUFXO0FBRTdELElBQU0sUUFBUSxHQUFHLHdCQUF3QixDQUFDO0FBQzFDLDBDQUEwQztBQUUxQztJQUFzQyw0QkFBWTtJQUFsRDs7SUFpR0EsQ0FBQztpQkFqR29CLFFBQVE7SUFDekIsS0FBSztJQUNRLGlCQUFRLEdBQXJCLFVBQXNCLElBQUksRUFBQyxRQUFRLEVBQUMsSUFBSTt1Q0FBRyxPQUFPOzs7Z0JBQzFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO2dCQUNoRCxHQUFHLEdBQUcsVUFBUSxDQUFDLE9BQU8sQ0FBQywrQkFBNkIsTUFBTSxDQUFDLE1BQU0sa0JBQWEsSUFBSSxjQUFTLElBQU0sRUFBRSxJQUFJLENBQUMsQ0FBQTtnQkFDOUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUMsQ0FBQzs7OztLQUNoQztJQUVZLDBCQUFpQixHQUE5QixVQUErQixJQUFJLEVBQUMsUUFBUTt1Q0FBRyxPQUFPOzs7Z0JBQzlDLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUMsSUFBSSxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUMsQ0FBQzs7OztLQUNoQztJQUNELE9BQU87SUFDTSxzQkFBYSxHQUEx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QUksa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFHLENBQUMsQ0FBQztLQUNqRjtJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBR0Q7Ozs7O0dBS0c7QUFFSCxTQUFTLFVBQVUsQ0FBQyxHQUFXLEVBQUUsT0FBZTtJQUM5QyxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNsQyxPQUFPLEdBQUcsT0FBTyxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUE7SUFDakMsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7QUFDdEQsQ0FBQztBQUNELG1CQUFtQjtBQUNuQixTQUFTLFNBQVMsQ0FBQyxHQUFXO0lBQ3RCLElBQUEsS0FBeUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQXpDLE9BQU8sUUFBQSxFQUFFLFdBQVcsUUFBcUIsQ0FBQztJQUNqRCxJQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNoRCxPQUFVLE9BQU8sU0FBSSxNQUFNLENBQUMsUUFBUSxFQUFJLENBQUM7QUFDM0MsQ0FBQyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5jb25zdCB7Y2NjbGFzcywgcHJvcGVydHl9ID0gY2MuX2RlY29yYXRvcjtcclxuaW1wb3J0IENyeXB0b0pTID0gcmVxdWlyZSgnLi9jcnlwdG8tanMubWluLmpzJyk7ICAvL+W8leeUqEFFU+a6kOeggWpzXHJcblxyXG5jb25zdCBCQVNFX1VSTCA9IFwiaHR0cHM6Ly9hcGkuc3Bhcmt1cy5jblwiO1xyXG4vL+WPqui0n+i0o+e9kee7nOaOpeWPoyDmrKHnsbvlj6rotJ/otKPlkozlkI7nq6/kuqTkupLvvIzkuI3otJ/otKPlpITnkIbmlbDmja4g5pWw5o2u5aSE55CG5ZyoR2FtZVRvb2xcclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSHR0cFV0aWwgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgLy/mjpLooYzmppxcclxuICAgIHN0YXRpYyBhc3luYyByYW5rRGF0YSh0eXBlLGNhbGxiYWNrLGRhdGEpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICBjb25zdCB0aW1lID0gTWF0aC5mbG9vcigobmV3IERhdGUoKS5nZXRUaW1lKCkpIC8gMTAwMClcclxuICAgICAgY29uc3QgdXJsID0gSHR0cFV0aWwuYXBpU2lnbihgL2FwaS9nZXQvcmFuay9kYXRhP2dhbWVJZD0ke2NvbmZpZy5nYW1lSWR9JmRhdGFUeXBlPSR7dHlwZX0mdGltZT0ke3RpbWV9YCwgZGF0YSlcclxuICAgICAgdGhpcy5wb3N0KHVybCxkYXRhLGNhbGxiYWNrLDApO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgc3RhdGljIGFzeW5jIHVwbG9hZFVzZXJMb2dEYXRhKGRhdGEsY2FsbGJhY2spOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICBjb25zdCB1cmwgPSAnL2xvZy9jb2xsZWN0L2RhdGEnO1xyXG4gICAgICB0aGlzLnBvc3QodXJsLGRhdGEsY2FsbGJhY2ssMyk7XHJcbiAgICB9XHJcbiAgICAvL+aaguaXtueUqOS4jeWIsFxyXG4gICAgc3RhdGljIGFzeW5jIGdldFVzZXJSZWNvcmQoZGF0YSxjYWxsYmFjayk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgIGNvbnN0IHRpbWUgPSBNYXRoLmZsb29yKChuZXcgRGF0ZSgpLmdldFRpbWUoKSkgLyAxMDAwKVxyXG4gICAgICBjb25zdCB1cmwgPSBIdHRwVXRpbC5hcGlTaWduKGAvYXBpL2dldC91c2VyL2RhdGE/Z2FtZUlkPSR7Y29uZmlnLmdhbWVJZH0mdGltZT0ke3RpbWV9YCwgZGF0YSlcclxuICAgICAgdGhpcy5wb3N0KHVybCxkYXRhLGNhbGxiYWNrLDApO1xyXG4gICAgfVxyXG5cclxuICBzdGF0aWMgYXN5bmMgZ2V0KHVybCwgY2FsbGJhY2ssY291bnQpIHtcclxuICAgIGxldCByZXBlYXQgPSBjb3VudD9jb3VudDowO1xyXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLmZldGNoRGF0YSh1cmwsIG51bGwsICdHRVQnLHJlcGVhdCk7XHJcbiAgICBjYWxsYmFjayAmJiBjYWxsYmFjayhyZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgYXN5bmMgcG9zdCh1cmwsIGRhdGEsIGNhbGxiYWNrLGNvdW50KSB7XHJcbiAgICBsZXQgcmVwZWF0ID0gY291bnQ/Y291bnQ6MDtcclxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy5mZXRjaERhdGEodXJsLCBkYXRhLCAnUE9TVCcscmVwZWF0KTtcclxuICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKHJlc3BvbnNlKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBhc3luYyBmZXRjaERhdGEodXJsLCBkYXRhLCBtZXRob2QscmVwZWF0KSB7XHJcbiAgICBjb25zdCBmdWxsVXJsID0gYCR7QkFTRV9VUkx9JHt1cmx9YDtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgIG1ldGhvZCxcclxuICAgICAgaGVhZGVycyxcclxuICAgICAgYm9keTogZGF0YSA/IEpTT04uc3RyaW5naWZ5KGRhdGEpIDogbnVsbCxcclxuICAgIH07XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgdmFyIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5mZXRjaFdpdGhUaW1lb3V0KGZ1bGxVcmwsb3B0aW9ucyk7XHJcbiAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSFRUUF9fX19fX19fX19fX19fX2Vycm9yISBzdGF0dXM6ICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uKCk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdGZXRjaF9fX19fX19fX19fX19fX2Vycm9yOicsIGVycm9yKTtcclxuICAgICAgaWYocmVwZWF0ID4gMCl7XHJcbiAgICAgICAgcmVwZWF0IC09IDE7XHJcbiAgICAgICAgY29uc3QgdGltZU91dCA9ICgzLXJlcGVhdCkqNTAwMDtcclxuICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIHJlc3BvbnNlID0gYXdhaXQgdGhpcy5mZXRjaERhdGEodXJsLCBkYXRhLCBtZXRob2QscmVwZWF0KTtcclxuICAgICAgICB9LCB0aW1lT3V0KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSBcclxuXHJcbiAgc3RhdGljIGFzeW5jIGZldGNoV2l0aFRpbWVvdXQocmVzb3VyY2UsIG9wdGlvbnMgPSB7fSkge1xyXG4gICAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xyXG4gICAgICBjb25zdCBpZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCA1MDAwKTtcclxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChyZXNvdXJjZSwge1xyXG4gICAgICAuLi5vcHRpb25zLFxyXG4gICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsXHJcbiAgICAgIH0pO1xyXG4gICAgICBjbGVhclRpbWVvdXQoaWQpO1xyXG5cclxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gKiBcclxuICogQHBhcmFtIHVybCB7c3RyaW5nfSDmjqXlj6PlnLDlnYBcclxuICogQHBhcmFtIHBhcmFtcyB7b2JqZWN0fSDpnIDopoHliqDlr4bnmoTlj4LmlbDlr7nosaFcclxuICovXHJcbiAgc3RhdGljIGFwaVNpZ24odXJsOiBzdHJpbmcsIHBhcmFtcyA9IHt9KSB7XHJcblxyXG4gICAgbGV0IGNvbnZlcnRVcmwgPSB1cmwudHJpbSgpXHJcbiAgICBpZiAoY29udmVydFVybC5pbmRleE9mKCc/JykgPT09IC0xKSB7XHJcbiAgICAgIGNvbnZlcnRVcmwgKz0gJz8nXHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vIOS8oOWFpeWPguaVsOi9rOaNouaLvOaOpeWtl+espuS4slxyXG4gICAgbGV0IHBvc3RTdHIgPSAgZ2V0UXVlcnlTdHJpbmcocGFyYW1zKVxyXG4gIFxyXG4gICAgY29uc3Qgc2lnbmVkU3RyID0gZ2VuU2lnblN0cihjb252ZXJ0VXJsLCBwb3N0U3RyKVxyXG4gICAgY29uc3QgZW5jcnlwdFN0ciA9IGBzaWduPSR7c2lnbmVkU3RyfWBcclxuXHJcbiAgICBsZXQgZW5jcnlwdFNpZ25TdHIgPSBmeENyeS5lbmNyeXB0QnlERVMoZW5jcnlwdFN0ciwgY29uZmlnLnNlY3JldEtleSlcclxuICAgIGVuY3J5cHRTaWduU3RyID0gZW5jb2RlVVJJQ29tcG9uZW50KGVuY3J5cHRTaWduU3RyKVxyXG5cclxuICAgIHJldHVybiBgJHt1cmxlbmNvZGUoY29udmVydFVybCl9Jl9wPSR7ZW5jcnlwdFNpZ25TdHJ9YFxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcmVzcG9uc2VIYW5kbGVyKHJlc3BvbnNlOiB7IGRhdGE6IGFueSB9KSB7XHJcbiAgcmV0dXJuIHJlc3BvbnNlLmRhdGFcclxufVxyXG4vLyDlk43lupTmi6bmiKrlmahcclxuLy8gUnEuaW50ZXJjZXB0b3JzLnJlc3BvbnNlLnVzZShyZXNwb25zZUhhbmRsZXIpXHJcbmNvbnN0IGNvbmZpZyA9IHtcclxuICBnYW1lSWQ6IFwiMTAwMDE5XCIsXHJcbiAgc2VjcmV0S2V5OiBcIjE1RUxlYW1PXCIsXHJcbiAgRUs6XCJodWkyMzElMVwiXHJcbn07XHJcblxyXG5pbnRlcmZhY2UgQ3J5cG90b1R5cGUge1xyXG4gIGVuY3J5cHRCeURFUzogYW55XHJcbiAgZGVjcnlwdEJ5REVTOiBhbnlcclxuICBobWFjU2hhMjU2OiBhbnlcclxufVxyXG4gXHJcbmNsYXNzIENyeXBvdG8gaW1wbGVtZW50cyBDcnlwb3RvVHlwZSB7XHJcbiAgICAvLyDliqDlr4bnmoTlkJHmmI7lgLzvvIzoh6rlt7HmoLnmja7pobnnm67lrp7pmYXmg4XlhrXlrprvvIzpnIDopoHot5/lkI7nq6/lvIDlj5Hkv53mjIHkuIDoh7RcclxuICAgIHByaXZhdGUga2V5SGV4ID0gdGhpcy5nZXRIZXRLZXkoKVxyXG4gICAgcHJpdmF0ZSBnZXRIZXRLZXkoKSB7XHJcbiAgICAgICAgcmV0dXJuIENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKGNvbmZpZy5FSyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIERFU+WKoOWvhiAqL1xyXG4gICAgZW5jcnlwdEJ5REVTKG1lc3NhZ2U6IHN0cmluZywgc2VjcmV0Pzogc3RyaW5nKSB7XHJcbiAgICAgIGlmKCFtZXNzYWdlKSB7XHJcbiAgICAgICAgcmV0dXJuIG1lc3NhZ2VcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBrZXkgPSBzZWNyZXQ/IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHNlY3JldCk6IHRoaXMua2V5SGV4XHJcbiAgICAgIGNvbnN0IGVuY3J5cHRlZCA9IENyeXB0b0pTLkRFUy5lbmNyeXB0KG1lc3NhZ2UsIGtleSwge1xyXG4gICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuRUNCLFxyXG4gICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGVuY3J5cHRlZC50b1N0cmluZygpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqIERFU+ino+WvhiAqL1xyXG4gICAgZGVjcnlwdEJ5REVTKG1lc3NhZ2U6IHN0cmluZywgc2VjcmV0Pzogc3RyaW5nKSB7XHJcbiAgICAgIGNvbnN0IGtleSA9IHNlY3JldD8gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2Uoc2VjcmV0KTogdGhpcy5rZXlIZXhcclxuXHJcbiAgICAgIGNvbnN0IGRlY3J5cHRlZCA9IENyeXB0b0pTLkRFUy5kZWNyeXB0KHtcclxuICAgICAgICBjaXBoZXJ0ZXh0OiBDcnlwdG9KUy5lbmMuQmFzZTY0LnBhcnNlKG1lc3NhZ2UpXHJcbiAgICAgIH0sIGtleSwge1xyXG4gICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuRUNCLFxyXG4gICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xyXG4gICAgICB9KVxyXG5cclxuICAgICAgcmV0dXJuIGRlY3J5cHRlZC50b1N0cmluZyhDcnlwdG9KUy5lbmMuVXRmOClcclxuICAgIH1cclxuXHJcbiAgICAvKiogaG1hY1NIQTI1NuWKoOWvhiAqL1xyXG4gICAgaG1hY1NoYTI1NihtZXNzYWdlOiBzdHJpbmcsIHNlY3JldD86IHN0cmluZykge1xyXG4gICAgICBjb25zdCBrZXlIZXggPSBzZWNyZXQ/IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHNlY3JldCk6IHRoaXMua2V5SGV4XHJcbiAgICAgIFxyXG4gICAgICBjb25zdCBoYXNoID0gQ3J5cHRvSlMuSG1hY1NIQTI1NihtZXNzYWdlLCBrZXlIZXgpO1xyXG4gICAgICByZXR1cm4gaGFzaC50b1N0cmluZygpXHJcbiAgICB9XHJcblxyXG4gICAgLyoqIGhtYWNTSEEyNTbpqozor4EgKi9cclxuICAgIHZlcmlmeUhtYWNTaGEyNTYobWVzc2FnZTogc3RyaW5nLCBzaWduYXR1cmU6IHN0cmluZykge1xyXG4gICAgICBjb25zdCBoYXNoID0gQ3J5cHRvSlMuSG1hY1NIQTI1NihtZXNzYWdlLCB0aGlzLmtleUhleCk7XHJcbiAgICAgIHJldHVybiBoYXNoLnRvU3RyaW5nKCkgPT09IHNpZ25hdHVyZVxyXG4gICAgfVxyXG4gXHJcbiAgICAvKiogQ0JD5Yqg5a+GICovXHJcbiAgICBlbmNyeXB0Q0JDKHdvcmQ6IHN0cmluZykge1xyXG4gICAgICAgIGlmICghd29yZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gd29yZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgc3JjcyA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHdvcmQpO1xyXG4gICAgICAgIGNvbnN0IGVuY3J5cHRlZCA9IENyeXB0b0pTLkFFUy5lbmNyeXB0KHNyY3MsIHRoaXMua2V5SGV4LCB7XHJcbiAgICAgICAgICAgIGl2OiB0aGlzLmtleUhleCxcclxuICAgICAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXHJcbiAgICAgICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5aZXJvUGFkZGluZ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBlbmNyeXB0ZWQudG9TdHJpbmcoKTsgXHJcbiAgICB9XHJcbiBcclxuICAgIC8qKiBDQkPop6Plr4YgKi9cclxuICAgIGRlY3J5cHRDQkMod29yZDogc3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKCF3b3JkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB3b3JkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBlbmNyeXB0ZWRIZXhTdHIgPSBDcnlwdG9KUy5lbmMuSGV4LnBhcnNlKHdvcmQpO1xyXG4gICAgICAgIGNvbnN0IHNyY3MgPSBDcnlwdG9KUy5lbmMuQmFzZTY0LnN0cmluZ2lmeShlbmNyeXB0ZWRIZXhTdHIpO1xyXG4gICAgICAgIGNvbnN0IGRlY3J5cHQgPSBDcnlwdG9KUy5BRVMuZGVjcnlwdChzcmNzLCB0aGlzLmtleUhleCwge1xyXG4gICAgICAgICAgICBpdjogdGhpcy5rZXlIZXgsXHJcbiAgICAgICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0JDLFxyXG4gICAgICAgICAgICBwYWRkaW5nOiBDcnlwdG9KUy5wYWQuWmVyb1BhZGRpbmdcclxuICAgICAgICB9KTtcclxuICAgICAgICBjb25zdCBkZWNyeXB0ZWRTdHIgPSBkZWNyeXB0LnRvU3RyaW5nKENyeXB0b0pTLmVuYy5VdGY4KTtcclxuICAgICAgICByZXR1cm4gZGVjcnlwdGVkU3RyLnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbn1cclxuY29uc3QgZnhDcnkgPSBuZXcgQ3J5cG90bygpO1xyXG5cclxuZnVuY3Rpb24gaXNFbXB0eShkYXRhKSB7XHJcbiAgcmV0dXJuIGRhdGEgPT09IFwiXCIgfHwgZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQgfHwgZGF0YS5sZW5ndGggPT09IDAgfHwgSlNPTi5zdHJpbmdpZnkoZGF0YSkgPT0gXCJ7fVwiXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFF1ZXJ5U3RyaW5nKG9iaikge1xyXG4gIC8vIOmmluWFiOWvueWvueixoeeahOmUrui/m+ihjOaOkuW6j+W5tui/h+a7pOepuuWAvFxyXG4gIGNvbnN0IHNvcnRlZEtleXMgPSBPYmplY3Qua2V5cyhvYmopLnNvcnQoKTtcclxuICBjb25zdCBzb3J0ZWRPYmogPSB7fTtcclxuICBmb3IgKGxldCBpID0gMDsgaSA8IHNvcnRlZEtleXMubGVuZ3RoOyBpKyspIHtcclxuICAgIGlmIChpc0VtcHR5KG9ialtzb3J0ZWRLZXlzW2ldXSkpIHtcclxuICAgICAgY29udGludWU7XHJcbiAgICB9XHJcbiAgICBzb3J0ZWRPYmpbc29ydGVkS2V5c1tpXV0gPSBvYmpbc29ydGVkS2V5c1tpXV07XHJcbiAgfVxyXG4gIFxyXG4gIC8vIOeEtuWQjuWwhuaOkuW6j+WQjueahOWvueixoei9rOaNouS4uuafpeivouWtl+espuS4slxyXG4gIGNvbnN0IHBhcmFtcyA9IFtdO1xyXG4gIGZvciAoY29uc3Qga2V5IGluIHNvcnRlZE9iaikge1xyXG4gICAgcGFyYW1zLnB1c2goYCR7ZW5jb2RlVVJJQ29tcG9uZW50KGtleSl9PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHNvcnRlZE9ialtrZXldKX1gKTtcclxuICB9XHJcbiAgcmV0dXJuIHBhcmFtcy5qb2luKCcmJyk7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICog57uE6KOF562+5ZCN5a2X56ym5LiyXHJcbiAqIEBwYXJhbSBzdHJpbmcgdXJsOiDor7fmsYLlnLDlnYAgXHJcbiAqIEBwYXJhbSBzdHJpbmcgcG9zdFN0cjogcG9zdOWPguaVsOeahGE9MSZiPTIgXHJcbiAqIEByZXR1cm5zIFxyXG4gKi9cclxuXHJcbmZ1bmN0aW9uIGdlblNpZ25TdHIodXJsOiBzdHJpbmcsIHBvc3RTdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgbGV0IGxlc3NVcmwgPSB1cmwucmVwbGFjZSgnPycsICcnKVxyXG4gIGxlc3NVcmwgPSBsZXNzVXJsICsgXCImXCIgKyBwb3N0U3RyXHJcbiAgcmV0dXJuIGVuY29kZVVSSUNvbXBvbmVudChmeENyeS5obWFjU2hhMjU2KGxlc3NVcmwpKVxyXG59XHJcbi8vIOWvueWPguaVsOi/m+ihjOe7n+S4gHVybGVuY29kZVxyXG5mdW5jdGlvbiB1cmxlbmNvZGUodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGNvbnN0IFtiYXNlVXJsLCBxdWVyeVN0cmluZ10gPSB1cmwuc3BsaXQoXCI/XCIsIDIpO1xyXG4gIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocXVlcnlTdHJpbmcpO1xyXG4gIHJldHVybiBgJHtiYXNlVXJsfT8ke3BhcmFtcy50b1N0cmluZygpfWA7XHJcbn1cclxuXHJcblxyXG5cclxuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/Crypto/crypto-js.min.js b/temp/quick-scripts/dst/assets/Script/module/Crypto/crypto-js.min.js new file mode 100644 index 0000000..c0fd98e --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/module/Crypto/crypto-js.min.js @@ -0,0 +1,2350 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Crypto/crypto-js.min.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); +// Script/module/Crypto/crypto-js.min.js + +"use strict"; + +!function (t, r) { + "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r(); +}(void 0, function () { + var t = t || function (t, r) { + var e = Object.create || function () { + function t() {} + + return function (r) { + var e; + return t.prototype = r, e = new t(), t.prototype = null, e; + }; + }(), + i = {}, + n = i.lib = {}, + o = n.Base = function () { + return { + extend: function extend(t) { + var r = e(this); + return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { + r.$super.init.apply(this, arguments); + }), r.init.prototype = r, r.$super = this, r; + }, + create: function create() { + var t = this.extend(); + return t.init.apply(t, arguments), t; + }, + init: function init() {}, + mixIn: function mixIn(t) { + for (var r in t) { + t.hasOwnProperty(r) && (this[r] = t[r]); + } + + t.hasOwnProperty("toString") && (this.toString = t.toString); + }, + clone: function clone() { + return this.init.prototype.extend(this); + } + }; + }(), + s = n.WordArray = o.extend({ + init: function init(t, e) { + t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length; + }, + toString: function toString(t) { + return (t || c).stringify(this); + }, + concat: function concat(t) { + var r = this.words, + e = t.words, + i = this.sigBytes, + n = t.sigBytes; + if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { + var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; + r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8; + } else for (var o = 0; o < n; o += 4) { + r[i + o >>> 2] = e[o >>> 2]; + } + return this.sigBytes += n, this; + }, + clamp: function clamp() { + var r = this.words, + e = this.sigBytes; + r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4); + }, + clone: function clone() { + var t = o.clone.call(this); + return t.words = this.words.slice(0), t; + }, + random: function random(r) { + for (var e, i = [], n = function n(r) { + var r = r, + e = 987654321, + i = 4294967295; + return function () { + e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; + var n = (e << 16) + r & i; + return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1); + }; + }, o = 0; o < r; o += 4) { + var a = n(4294967296 * (e || t.random())); + e = 987654071 * a(), i.push(4294967296 * a() | 0); + } + + return new s.init(i, r); + } + }), + a = i.enc = {}, + c = a.Hex = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)); + } + + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i += 2) { + e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; + } + + return new s.init(e, r / 2); + } + }, + h = a.Latin1 = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push(String.fromCharCode(o)); + } + + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i++) { + e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; + } + + return new s.init(e, r); + } + }, + l = a.Utf8 = { + stringify: function stringify(t) { + try { + return decodeURIComponent(escape(h.stringify(t))); + } catch (t) { + throw new Error("Malformed UTF-8 data"); + } + }, + parse: function parse(t) { + return h.parse(unescape(encodeURIComponent(t))); + } + }, + f = n.BufferedBlockAlgorithm = o.extend({ + reset: function reset() { + this._data = new s.init(), this._nDataBytes = 0; + }, + _append: function _append(t) { + "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; + }, + _process: function _process(r) { + var e = this._data, + i = e.words, + n = e.sigBytes, + o = this.blockSize, + a = 4 * o, + c = n / a; + c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); + var h = c * o, + l = t.min(4 * h, n); + + if (h) { + for (var f = 0; f < h; f += o) { + this._doProcessBlock(i, f); + } + + var u = i.splice(0, h); + e.sigBytes -= l; + } + + return new s.init(u, l); + }, + clone: function clone() { + var t = o.clone.call(this); + return t._data = this._data.clone(), t; + }, + _minBufferSize: 0 + }), + u = (n.Hasher = f.extend({ + cfg: o.extend(), + init: function init(t) { + this.cfg = this.cfg.extend(t), this.reset(); + }, + reset: function reset() { + f.reset.call(this), this._doReset(); + }, + update: function update(t) { + return this._append(t), this._process(), this; + }, + finalize: function finalize(t) { + t && this._append(t); + + var r = this._doFinalize(); + + return r; + }, + blockSize: 16, + _createHelper: function _createHelper(t) { + return function (r, e) { + return new t.init(e).finalize(r); + }; + }, + _createHmacHelper: function _createHmacHelper(t) { + return function (r, e) { + return new u.HMAC.init(t, e).finalize(r); + }; + } + }), i.algo = {}); + + return i; + }(Math); + + return function () { + function r(t, r, e) { + for (var i = [], o = 0, s = 0; s < r; s++) { + if (s % 4) { + var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, + c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; + i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++; + } + } + + return n.create(i, o); + } + + var e = t, + i = e.lib, + n = i.WordArray, + o = e.enc; + o.Base64 = { + stringify: function stringify(t) { + var r = t.words, + e = t.sigBytes, + i = this._map; + t.clamp(); + + for (var n = [], o = 0; o < e; o += 3) { + for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++) { + n.push(i.charAt(h >>> 6 * (3 - l) & 63)); + } + } + + var f = i.charAt(64); + if (f) for (; n.length % 4;) { + n.push(f); + } + return n.join(""); + }, + parse: function parse(t) { + var e = t.length, + i = this._map, + n = this._reverseMap; + + if (!n) { + n = this._reverseMap = []; + + for (var o = 0; o < i.length; o++) { + n[i.charCodeAt(o)] = o; + } + } + + var s = i.charAt(64); + + if (s) { + var a = t.indexOf(s); + a !== -1 && (e = a); + } + + return r(t, e, n); + }, + _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" + }; + }(), function (r) { + function e(t, r, e, i, n, o, s) { + var a = t + (r & e | ~r & i) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + function i(t, r, e, i, n, o, s) { + var a = t + (r & i | e & ~i) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + function n(t, r, e, i, n, o, s) { + var a = t + (r ^ e ^ i) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + function o(t, r, e, i, n, o, s) { + var a = t + (e ^ (r | ~i)) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + var s = t, + a = s.lib, + c = a.WordArray, + h = a.Hasher, + l = s.algo, + f = []; + !function () { + for (var t = 0; t < 64; t++) { + f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0; + } + }(); + var u = l.MD5 = h.extend({ + _doReset: function _doReset() { + this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var s = 0; s < 16; s++) { + var a = r + s, + c = t[a]; + t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8); + } + + var h = this._hash.words, + l = t[r + 0], + u = t[r + 1], + d = t[r + 2], + v = t[r + 3], + p = t[r + 4], + _ = t[r + 5], + y = t[r + 6], + g = t[r + 7], + B = t[r + 8], + w = t[r + 9], + k = t[r + 10], + S = t[r + 11], + m = t[r + 12], + x = t[r + 13], + b = t[r + 14], + H = t[r + 15], + z = h[0], + A = h[1], + C = h[2], + D = h[3]; + z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = 8 * this._nDataBytes, + n = 8 * t.sigBytes; + e[n >>> 5] |= 128 << 24 - n % 32; + var o = r.floor(i / 4294967296), + s = i; + e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); + + for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { + var l = c[h]; + c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); + } + + return a; + }, + clone: function clone() { + var t = h.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u); + }(Math), function () { + var r = t, + e = r.lib, + i = e.WordArray, + n = e.Hasher, + o = r.algo, + s = [], + a = o.SHA1 = n.extend({ + _doReset: function _doReset() { + this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { + if (h < 16) s[h] = 0 | t[r + h];else { + var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; + s[h] = l << 1 | l >>> 31; + } + var f = (i << 5 | i >>> 27) + c + s[h]; + f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f; + } + + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash; + }, + clone: function clone() { + var t = n.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a); + }(), function (r) { + var e = t, + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.algo, + a = [], + c = []; + !function () { + function t(t) { + for (var e = r.sqrt(t), i = 2; i <= e; i++) { + if (!(t % i)) return !1; + } + + return !0; + } + + function e(t) { + return 4294967296 * (t - (0 | t)) | 0; + } + + for (var i = 2, n = 0; n < 64;) { + t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++; + } + }(); + var h = [], + l = s.SHA256 = o.extend({ + _doReset: function _doReset() { + this._hash = new n.init(a.slice(0)); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { + if (d < 16) h[d] = 0 | t[r + d];else { + var v = h[d - 15], + p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, + _ = h[d - 2], + y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; + h[d] = p + h[d - 7] + y + h[d - 16]; + } + var g = a & l ^ ~a & f, + B = i & n ^ i & o ^ n & o, + w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), + k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), + S = u + k + g + c[d] + h[d], + m = w + B; + u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0; + } + + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = 8 * this._nDataBytes, + n = 8 * t.sigBytes; + return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash; + }, + clone: function clone() { + var t = o.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l); + }(Math), function () { + function r(t) { + return t << 8 & 4278255360 | t >>> 8 & 16711935; + } + + var e = t, + i = e.lib, + n = i.WordArray, + o = e.enc; + o.Utf16 = o.Utf16BE = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { + var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; + i.push(String.fromCharCode(o)); + } + + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i++) { + e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; + } + + return n.create(e, 2 * r); + } + }; + o.Utf16LE = { + stringify: function stringify(t) { + for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { + var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); + n.push(String.fromCharCode(s)); + } + + return n.join(""); + }, + parse: function parse(t) { + for (var e = t.length, i = [], o = 0; o < e; o++) { + i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); + } + + return n.create(i, 2 * e); + } + }; + }(), function () { + if ("function" == typeof ArrayBuffer) { + var r = t, + e = r.lib, + i = e.WordArray, + n = i.init, + o = i.init = function (t) { + if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { + for (var r = t.byteLength, e = [], i = 0; i < r; i++) { + e[i >>> 2] |= t[i] << 24 - i % 4 * 8; + } + + n.call(this, e, r); + } else n.apply(this, arguments); + }; + + o.prototype = i; + } + }(), function (r) { + function e(t, r, e) { + return t ^ r ^ e; + } + + function i(t, r, e) { + return t & r | ~t & e; + } + + function n(t, r, e) { + return (t | ~r) ^ e; + } + + function o(t, r, e) { + return t & e | r & ~e; + } + + function s(t, r, e) { + return t ^ (r | ~e); + } + + function a(t, r) { + return t << r | t >>> 32 - r; + } + + var c = t, + h = c.lib, + l = h.WordArray, + f = h.Hasher, + u = c.algo, + d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), + v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), + p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), + _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), + y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), + g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), + B = u.RIPEMD160 = f.extend({ + _doReset: function _doReset() { + this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var c = 0; c < 16; c++) { + var h = r + c, + l = t[h]; + t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); + } + + var f, + u, + B, + w, + k, + S, + m, + x, + b, + H, + z = this._hash.words, + A = y.words, + C = g.words, + D = d.words, + R = v.words, + E = p.words, + M = _.words; + S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; + + for (var F, c = 0; c < 80; c += 1) { + F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; + } + + F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); + + for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { + var a = o[s]; + o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8); + } + + return n; + }, + clone: function clone() { + var t = f.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + + c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B); + }(Math), function () { + var r = t, + e = r.lib, + i = e.Base, + n = r.enc, + o = n.Utf8, + s = r.algo; + s.HMAC = i.extend({ + init: function init(t, r) { + t = this._hasher = new t.init(), "string" == typeof r && (r = o.parse(r)); + var e = t.blockSize, + i = 4 * e; + r.sigBytes > i && (r = t.finalize(r)), r.clamp(); + + for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++) { + a[h] ^= 1549556828, c[h] ^= 909522486; + } + + n.sigBytes = s.sigBytes = i, this.reset(); + }, + reset: function reset() { + var t = this._hasher; + t.reset(), t.update(this._iKey); + }, + update: function update(t) { + return this._hasher.update(t), this; + }, + finalize: function finalize(t) { + var r = this._hasher, + e = r.finalize(t); + r.reset(); + var i = r.finalize(this._oKey.clone().concat(e)); + return i; + } + }); + }(), function () { + var r = t, + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.SHA1, + a = o.HMAC, + c = o.PBKDF2 = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { + var u = i.update(r).finalize(s); + i.reset(); + + for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { + p = i.finalize(p), i.reset(); + + for (var y = p.words, g = 0; g < v; g++) { + d[g] ^= y[g]; + } + } + + o.concat(u), h[0]++; + } + + return o.sigBytes = 4 * l, o; + } + }); + + r.PBKDF2 = function (t, r, e) { + return c.create(e).compute(t, r); + }; + }(), function () { + var r = t, + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.MD5, + a = o.EvpKDF = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { + h && i.update(h); + var h = i.update(t).finalize(r); + i.reset(); + + for (var l = 1; l < c; l++) { + h = i.finalize(h), i.reset(); + } + + o.concat(h); + } + + return o.sigBytes = 4 * a, o; + } + }); + + r.EvpKDF = function (t, r, e) { + return a.create(e).compute(t, r); + }; + }(), function () { + var r = t, + e = r.lib, + i = e.WordArray, + n = r.algo, + o = n.SHA256, + s = n.SHA224 = o.extend({ + _doReset: function _doReset() { + this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); + }, + _doFinalize: function _doFinalize() { + var t = o._doFinalize.call(this); + + return t.sigBytes -= 4, t; + } + }); + r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s); + }(), function (r) { + var e = t, + i = e.lib, + n = i.Base, + o = i.WordArray, + s = e.x64 = {}; + s.Word = n.extend({ + init: function init(t, r) { + this.high = t, this.low = r; + } + }), s.WordArray = n.extend({ + init: function init(t, e) { + t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length; + }, + toX32: function toX32() { + for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { + var n = t[i]; + e.push(n.high), e.push(n.low); + } + + return o.create(e, this.sigBytes); + }, + clone: function clone() { + for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++) { + r[i] = r[i].clone(); + } + + return t; + } + }); + }(), function (r) { + var e = t, + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.x64, + a = s.Word, + c = e.algo, + h = [], + l = [], + f = []; + !function () { + for (var t = 1, r = 0, e = 0; e < 24; e++) { + h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; + var i = r % 5, + n = (2 * t + 3 * r) % 5; + t = i, r = n; + } + + for (var t = 0; t < 5; t++) { + for (var r = 0; r < 5; r++) { + l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; + } + } + + for (var o = 1, s = 0; s < 24; s++) { + for (var c = 0, u = 0, d = 0; d < 7; d++) { + if (1 & o) { + var v = (1 << d) - 1; + v < 32 ? u ^= 1 << v : c ^= 1 << v - 32; + } + + 128 & o ? o = o << 1 ^ 113 : o <<= 1; + } + + f[s] = a.create(c, u); + } + }(); + var u = []; + !function () { + for (var t = 0; t < 25; t++) { + u[t] = a.create(); + } + }(); + var d = c.SHA3 = o.extend({ + cfg: o.cfg.extend({ + outputLength: 512 + }), + _doReset: function _doReset() { + for (var t = this._state = [], r = 0; r < 25; r++) { + t[r] = new a.init(); + } + + this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { + var o = t[r + 2 * n], + s = t[r + 2 * n + 1]; + o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); + var a = e[n]; + a.high ^= s, a.low ^= o; + } + + for (var c = 0; c < 24; c++) { + for (var d = 0; d < 5; d++) { + for (var v = 0, p = 0, _ = 0; _ < 5; _++) { + var a = e[d + 5 * _]; + v ^= a.high, p ^= a.low; + } + + var y = u[d]; + y.high = v, y.low = p; + } + + for (var d = 0; d < 5; d++) { + for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { + var a = e[d + 5 * _]; + a.high ^= v, a.low ^= p; + } + } + + for (var S = 1; S < 25; S++) { + var a = e[S], + m = a.high, + x = a.low, + b = h[S]; + if (b < 32) var v = m << b | x >>> 32 - b, + p = x << b | m >>> 32 - b;else var v = x << b - 32 | m >>> 64 - b, + p = m << b - 32 | x >>> 64 - b; + var H = u[l[S]]; + H.high = v, H.low = p; + } + + var z = u[0], + A = e[0]; + z.high = A.high, z.low = A.low; + + for (var d = 0; d < 5; d++) { + for (var _ = 0; _ < 5; _++) { + var S = d + 5 * _, + a = e[S], + C = u[S], + D = u[(d + 1) % 5 + 5 * _], + R = u[(d + 2) % 5 + 5 * _]; + a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low; + } + } + + var a = e[0], + E = f[c]; + a.high ^= E.high, a.low ^= E.low; + } + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = (8 * this._nDataBytes, 8 * t.sigBytes), + o = 32 * this.blockSize; + e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); + + for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { + var f = s[l], + u = f.high, + d = f.low; + u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u); + } + + return new n.init(h, a); + }, + clone: function clone() { + for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++) { + r[e] = r[e].clone(); + } + + return t; + } + }); + e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d); + }(Math), function () { + function r() { + return s.create.apply(s, arguments); + } + + var e = t, + i = e.lib, + n = i.Hasher, + o = e.x64, + s = o.Word, + a = o.WordArray, + c = e.algo, + h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], + l = []; + !function () { + for (var t = 0; t < 80; t++) { + l[t] = r(); + } + }(); + var f = c.SHA512 = n.extend({ + _doReset: function _doReset() { + this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { + var Z = l[T]; + if (T < 16) var q = Z.high = 0 | t[r + 2 * T], + G = Z.low = 0 | t[r + 2 * T + 1];else { + var J = l[T - 15], + $ = J.high, + Q = J.low, + V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, + Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), + tt = l[T - 2], + rt = tt.high, + et = tt.low, + it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, + nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), + ot = l[T - 7], + st = ot.high, + at = ot.low, + ct = l[T - 16], + ht = ct.high, + lt = ct.low, + G = Y + at, + q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), + G = G + nt, + q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), + G = G + lt, + q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); + Z.high = q, Z.low = G; + } + + var ft = O & I ^ ~O & X, + ut = U & K ^ ~U & L, + dt = C & R ^ C & M ^ R & M, + vt = D & E ^ D & F ^ E & F, + pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), + _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), + yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), + gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), + Bt = h[T], + wt = Bt.high, + kt = Bt.low, + St = N + gt, + mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), + St = St + ut, + mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), + St = St + kt, + mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), + St = St + G, + mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), + xt = _t + vt, + bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); + + j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0; + } + + v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0); + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); + + var n = this._hash.toX32(); + + return n; + }, + clone: function clone() { + var t = n.clone.call(this); + return t._hash = this._hash.clone(), t; + }, + blockSize: 32 + }); + e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f); + }(), function () { + var r = t, + e = r.x64, + i = e.Word, + n = e.WordArray, + o = r.algo, + s = o.SHA512, + a = o.SHA384 = s.extend({ + _doReset: function _doReset() { + this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]); + }, + _doFinalize: function _doFinalize() { + var t = s._doFinalize.call(this); + + return t.sigBytes -= 16, t; + } + }); + r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a); + }(), t.lib.Cipher || function (r) { + var e = t, + i = e.lib, + n = i.Base, + o = i.WordArray, + s = i.BufferedBlockAlgorithm, + a = e.enc, + c = (a.Utf8, a.Base64), + h = e.algo, + l = h.EvpKDF, + f = i.Cipher = s.extend({ + cfg: n.extend(), + createEncryptor: function createEncryptor(t, r) { + return this.create(this._ENC_XFORM_MODE, t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.create(this._DEC_XFORM_MODE, t, r); + }, + init: function init(t, r, e) { + this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset(); + }, + reset: function reset() { + s.reset.call(this), this._doReset(); + }, + process: function process(t) { + return this._append(t), this._process(); + }, + finalize: function finalize(t) { + t && this._append(t); + + var r = this._doFinalize(); + + return r; + }, + keySize: 4, + ivSize: 4, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: function () { + function t(t) { + return "string" == typeof t ? m : w; + } + + return function (r) { + return { + encrypt: function encrypt(e, i, n) { + return t(i).encrypt(r, e, i, n); + }, + decrypt: function decrypt(e, i, n) { + return t(i).decrypt(r, e, i, n); + } + }; + }; + }() + }), + u = (i.StreamCipher = f.extend({ + _doFinalize: function _doFinalize() { + var t = this._process(!0); + + return t; + }, + blockSize: 1 + }), e.mode = {}), + d = i.BlockCipherMode = n.extend({ + createEncryptor: function createEncryptor(t, r) { + return this.Encryptor.create(t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.Decryptor.create(t, r); + }, + init: function init(t, r) { + this._cipher = t, this._iv = r; + } + }), + v = u.CBC = function () { + function t(t, e, i) { + var n = this._iv; + + if (n) { + var o = n; + this._iv = r; + } else var o = this._prevBlock; + + for (var s = 0; s < i; s++) { + t[e + s] ^= o[s]; + } + } + + var e = d.extend(); + return e.Encryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, + n = i.blockSize; + t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n); + } + }), e.Decryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, + n = i.blockSize, + o = r.slice(e, e + n); + i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o; + } + }), e; + }(), + p = e.pad = {}, + _ = p.Pkcs7 = { + pad: function pad(t, r) { + for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4) { + s.push(n); + } + + var c = o.create(s, i); + t.concat(c); + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, + y = (i.BlockCipher = f.extend({ + cfg: f.cfg.extend({ + mode: v, + padding: _ + }), + reset: function reset() { + f.reset.call(this); + var t = this.cfg, + r = t.iv, + e = t.mode; + if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor;else { + var i = e.createDecryptor; + this._minBufferSize = 1; + } + this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + this._mode.processBlock(t, r); + }, + _doFinalize: function _doFinalize() { + var t = this.cfg.padding; + + if (this._xformMode == this._ENC_XFORM_MODE) { + t.pad(this._data, this.blockSize); + + var r = this._process(!0); + } else { + var r = this._process(!0); + + t.unpad(r); + } + + return r; + }, + blockSize: 4 + }), i.CipherParams = n.extend({ + init: function init(t) { + this.mixIn(t); + }, + toString: function toString(t) { + return (t || this.formatter).stringify(this); + } + })), + g = e.format = {}, + B = g.OpenSSL = { + stringify: function stringify(t) { + var r = t.ciphertext, + e = t.salt; + if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r);else var i = r; + return i.toString(c); + }, + parse: function parse(t) { + var r = c.parse(t), + e = r.words; + + if (1398893684 == e[0] && 1701076831 == e[1]) { + var i = o.create(e.slice(2, 4)); + e.splice(0, 4), r.sigBytes -= 16; + } + + return y.create({ + ciphertext: r, + salt: i + }); + } + }, + w = i.SerializableCipher = n.extend({ + cfg: n.extend({ + format: B + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = t.createEncryptor(e, i), + o = n.finalize(r), + s = n.cfg; + return y.create({ + ciphertext: o, + key: e, + iv: s.iv, + algorithm: t, + mode: s.mode, + padding: s.padding, + blockSize: t.blockSize, + formatter: i.format + }); + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = t.createDecryptor(e, i).finalize(r.ciphertext); + return n; + }, + _parse: function _parse(t, r) { + return "string" == typeof t ? r.parse(t, this) : t; + } + }), + k = e.kdf = {}, + S = k.OpenSSL = { + execute: function execute(t, r, e, i) { + i || (i = o.random(8)); + var n = l.create({ + keySize: r + e + }).compute(t, i), + s = o.create(n.words.slice(r), 4 * e); + return n.sigBytes = 4 * r, y.create({ + key: n, + iv: s, + salt: i + }); + } + }, + m = i.PasswordBasedCipher = w.extend({ + cfg: w.cfg.extend({ + kdf: S + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = i.kdf.execute(e, t.keySize, t.ivSize); + i.iv = n.iv; + var o = w.encrypt.call(this, t, r, n.key, i); + return o.mixIn(n), o; + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); + i.iv = n.iv; + var o = w.decrypt.call(this, t, r, n.key, i); + return o; + } + }); + }(), t.mode.CFB = function () { + function r(t, r, e, i) { + var n = this._iv; + + if (n) { + var o = n.slice(0); + this._iv = void 0; + } else var o = this._prevBlock; + + i.encryptBlock(o, 0); + + for (var s = 0; s < e; s++) { + t[r + s] ^= o[s]; + } + } + + var e = t.lib.BlockCipherMode.extend(); + return e.Encryptor = e.extend({ + processBlock: function processBlock(t, e) { + var i = this._cipher, + n = i.blockSize; + r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n); + } + }), e.Decryptor = e.extend({ + processBlock: function processBlock(t, e) { + var i = this._cipher, + n = i.blockSize, + o = t.slice(e, e + n); + r.call(this, t, e, n, i), this._prevBlock = o; + } + }), e; + }(), t.mode.ECB = function () { + var r = t.lib.BlockCipherMode.extend(); + return r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + this._cipher.encryptBlock(t, r); + } + }), r.Decryptor = r.extend({ + processBlock: function processBlock(t, r) { + this._cipher.decryptBlock(t, r); + } + }), r; + }(), t.pad.AnsiX923 = { + pad: function pad(t, r) { + var e = t.sigBytes, + i = 4 * r, + n = i - e % i, + o = e + n - 1; + t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n; + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, t.pad.Iso10126 = { + pad: function pad(r, e) { + var i = 4 * e, + n = i - r.sigBytes % i; + r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)); + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, t.pad.Iso97971 = { + pad: function pad(r, e) { + r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e); + }, + unpad: function unpad(r) { + t.pad.ZeroPadding.unpad(r), r.sigBytes--; + } + }, t.mode.OFB = function () { + var r = t.lib.BlockCipherMode.extend(), + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, + i = e.blockSize, + n = this._iv, + o = this._keystream; + n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); + + for (var s = 0; s < i; s++) { + t[r + s] ^= o[s]; + } + } + }); + return r.Decryptor = e, r; + }(), t.pad.NoPadding = { + pad: function pad() {}, + unpad: function unpad() {} + }, function (r) { + var e = t, + i = e.lib, + n = i.CipherParams, + o = e.enc, + s = o.Hex, + a = e.format; + a.Hex = { + stringify: function stringify(t) { + return t.ciphertext.toString(s); + }, + parse: function parse(t) { + var r = s.parse(t); + return n.create({ + ciphertext: r + }); + } + }; + }(), function () { + var r = t, + e = r.lib, + i = e.BlockCipher, + n = r.algo, + o = [], + s = [], + a = [], + c = [], + h = [], + l = [], + f = [], + u = [], + d = [], + v = []; + !function () { + for (var t = [], r = 0; r < 256; r++) { + r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; + } + + for (var e = 0, i = 0, r = 0; r < 256; r++) { + var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; + n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; + var p = t[e], + _ = t[p], + y = t[_], + g = 257 * t[n] ^ 16843008 * n; + a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; + var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; + f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1; + } + }(); + + var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], + _ = n.AES = i.extend({ + _doReset: function _doReset() { + if (!this._nRounds || this._keyPriorReset !== this._key) { + for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++) { + if (a < e) s[a] = r[a];else { + var c = s[a - 1]; + a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c; + } + } + + for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { + var a = n - l; + if (l % 4) var c = s[a];else var c = s[a - 4]; + l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]]; + } + } + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o); + }, + decryptBlock: function decryptBlock(t, r) { + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e; + }, + _doCryptBlock: function _doCryptBlock(t, r, e, i, n, o, s, a) { + for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { + var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], + _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], + y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], + g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; + + h = p, l = _, f = y, u = g; + } + + var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], + _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], + y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], + g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; + + t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g; + }, + keySize: 8 + }); + + r.AES = i._createHelper(_); + }(), function () { + function r(t, r) { + var e = (this._lBlock >>> t ^ this._rBlock) & r; + this._rBlock ^= e, this._lBlock ^= e << t; + } + + function e(t, r) { + var e = (this._rBlock >>> t ^ this._lBlock) & r; + this._lBlock ^= e, this._rBlock ^= e << t; + } + + var i = t, + n = i.lib, + o = n.WordArray, + s = n.BlockCipher, + a = i.algo, + c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], + h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], + l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], + f = [{ + 0: 8421888, + 268435456: 32768, + 536870912: 8421378, + 805306368: 2, + 1073741824: 512, + 1342177280: 8421890, + 1610612736: 8389122, + 1879048192: 8388608, + 2147483648: 514, + 2415919104: 8389120, + 2684354560: 33280, + 2952790016: 8421376, + 3221225472: 32770, + 3489660928: 8388610, + 3758096384: 0, + 4026531840: 33282, + 134217728: 0, + 402653184: 8421890, + 671088640: 33282, + 939524096: 32768, + 1207959552: 8421888, + 1476395008: 512, + 1744830464: 8421378, + 2013265920: 2, + 2281701376: 8389120, + 2550136832: 33280, + 2818572288: 8421376, + 3087007744: 8389122, + 3355443200: 8388610, + 3623878656: 32770, + 3892314112: 514, + 4160749568: 8388608, + 1: 32768, + 268435457: 2, + 536870913: 8421888, + 805306369: 8388608, + 1073741825: 8421378, + 1342177281: 33280, + 1610612737: 512, + 1879048193: 8389122, + 2147483649: 8421890, + 2415919105: 8421376, + 2684354561: 8388610, + 2952790017: 33282, + 3221225473: 514, + 3489660929: 8389120, + 3758096385: 32770, + 4026531841: 0, + 134217729: 8421890, + 402653185: 8421376, + 671088641: 8388608, + 939524097: 512, + 1207959553: 32768, + 1476395009: 8388610, + 1744830465: 2, + 2013265921: 33282, + 2281701377: 32770, + 2550136833: 8389122, + 2818572289: 514, + 3087007745: 8421888, + 3355443201: 8389120, + 3623878657: 0, + 3892314113: 33280, + 4160749569: 8421378 + }, { + 0: 1074282512, + 16777216: 16384, + 33554432: 524288, + 50331648: 1074266128, + 67108864: 1073741840, + 83886080: 1074282496, + 100663296: 1073758208, + 117440512: 16, + 134217728: 540672, + 150994944: 1073758224, + 167772160: 1073741824, + 184549376: 540688, + 201326592: 524304, + 218103808: 0, + 234881024: 16400, + 251658240: 1074266112, + 8388608: 1073758208, + 25165824: 540688, + 41943040: 16, + 58720256: 1073758224, + 75497472: 1074282512, + 92274688: 1073741824, + 109051904: 524288, + 125829120: 1074266128, + 142606336: 524304, + 159383552: 0, + 176160768: 16384, + 192937984: 1074266112, + 209715200: 1073741840, + 226492416: 540672, + 243269632: 1074282496, + 260046848: 16400, + 268435456: 0, + 285212672: 1074266128, + 301989888: 1073758224, + 318767104: 1074282496, + 335544320: 1074266112, + 352321536: 16, + 369098752: 540688, + 385875968: 16384, + 402653184: 16400, + 419430400: 524288, + 436207616: 524304, + 452984832: 1073741840, + 469762048: 540672, + 486539264: 1073758208, + 503316480: 1073741824, + 520093696: 1074282512, + 276824064: 540688, + 293601280: 524288, + 310378496: 1074266112, + 327155712: 16384, + 343932928: 1073758208, + 360710144: 1074282512, + 377487360: 16, + 394264576: 1073741824, + 411041792: 1074282496, + 427819008: 1073741840, + 444596224: 1073758224, + 461373440: 524304, + 478150656: 0, + 494927872: 16400, + 511705088: 1074266128, + 528482304: 540672 + }, { + 0: 260, + 1048576: 0, + 2097152: 67109120, + 3145728: 65796, + 4194304: 65540, + 5242880: 67108868, + 6291456: 67174660, + 7340032: 67174400, + 8388608: 67108864, + 9437184: 67174656, + 10485760: 65792, + 11534336: 67174404, + 12582912: 67109124, + 13631488: 65536, + 14680064: 4, + 15728640: 256, + 524288: 67174656, + 1572864: 67174404, + 2621440: 0, + 3670016: 67109120, + 4718592: 67108868, + 5767168: 65536, + 6815744: 65540, + 7864320: 260, + 8912896: 4, + 9961472: 256, + 11010048: 67174400, + 12058624: 65796, + 13107200: 65792, + 14155776: 67109124, + 15204352: 67174660, + 16252928: 67108864, + 16777216: 67174656, + 17825792: 65540, + 18874368: 65536, + 19922944: 67109120, + 20971520: 256, + 22020096: 67174660, + 23068672: 67108868, + 24117248: 0, + 25165824: 67109124, + 26214400: 67108864, + 27262976: 4, + 28311552: 65792, + 29360128: 67174400, + 30408704: 260, + 31457280: 65796, + 32505856: 67174404, + 17301504: 67108864, + 18350080: 260, + 19398656: 67174656, + 20447232: 0, + 21495808: 65540, + 22544384: 67109120, + 23592960: 256, + 24641536: 67174404, + 25690112: 65536, + 26738688: 67174660, + 27787264: 65796, + 28835840: 67108868, + 29884416: 67109124, + 30932992: 67174400, + 31981568: 4, + 33030144: 65792 + }, { + 0: 2151682048, + 65536: 2147487808, + 131072: 4198464, + 196608: 2151677952, + 262144: 0, + 327680: 4198400, + 393216: 2147483712, + 458752: 4194368, + 524288: 2147483648, + 589824: 4194304, + 655360: 64, + 720896: 2147487744, + 786432: 2151678016, + 851968: 4160, + 917504: 4096, + 983040: 2151682112, + 32768: 2147487808, + 98304: 64, + 163840: 2151678016, + 229376: 2147487744, + 294912: 4198400, + 360448: 2151682112, + 425984: 0, + 491520: 2151677952, + 557056: 4096, + 622592: 2151682048, + 688128: 4194304, + 753664: 4160, + 819200: 2147483648, + 884736: 4194368, + 950272: 4198464, + 1015808: 2147483712, + 1048576: 4194368, + 1114112: 4198400, + 1179648: 2147483712, + 1245184: 0, + 1310720: 4160, + 1376256: 2151678016, + 1441792: 2151682048, + 1507328: 2147487808, + 1572864: 2151682112, + 1638400: 2147483648, + 1703936: 2151677952, + 1769472: 4198464, + 1835008: 2147487744, + 1900544: 4194304, + 1966080: 64, + 2031616: 4096, + 1081344: 2151677952, + 1146880: 2151682112, + 1212416: 0, + 1277952: 4198400, + 1343488: 4194368, + 1409024: 2147483648, + 1474560: 2147487808, + 1540096: 64, + 1605632: 2147483712, + 1671168: 4096, + 1736704: 2147487744, + 1802240: 2151678016, + 1867776: 4160, + 1933312: 2151682048, + 1998848: 4194304, + 2064384: 4198464 + }, { + 0: 128, + 4096: 17039360, + 8192: 262144, + 12288: 536870912, + 16384: 537133184, + 20480: 16777344, + 24576: 553648256, + 28672: 262272, + 32768: 16777216, + 36864: 537133056, + 40960: 536871040, + 45056: 553910400, + 49152: 553910272, + 53248: 0, + 57344: 17039488, + 61440: 553648128, + 2048: 17039488, + 6144: 553648256, + 10240: 128, + 14336: 17039360, + 18432: 262144, + 22528: 537133184, + 26624: 553910272, + 30720: 536870912, + 34816: 537133056, + 38912: 0, + 43008: 553910400, + 47104: 16777344, + 51200: 536871040, + 55296: 553648128, + 59392: 16777216, + 63488: 262272, + 65536: 262144, + 69632: 128, + 73728: 536870912, + 77824: 553648256, + 81920: 16777344, + 86016: 553910272, + 90112: 537133184, + 94208: 16777216, + 98304: 553910400, + 102400: 553648128, + 106496: 17039360, + 110592: 537133056, + 114688: 262272, + 118784: 536871040, + 122880: 0, + 126976: 17039488, + 67584: 553648256, + 71680: 16777216, + 75776: 17039360, + 79872: 537133184, + 83968: 536870912, + 88064: 17039488, + 92160: 128, + 96256: 553910272, + 100352: 262272, + 104448: 553910400, + 108544: 0, + 112640: 553648128, + 116736: 16777344, + 120832: 262144, + 124928: 537133056, + 129024: 536871040 + }, { + 0: 268435464, + 256: 8192, + 512: 270532608, + 768: 270540808, + 1024: 268443648, + 1280: 2097152, + 1536: 2097160, + 1792: 268435456, + 2048: 0, + 2304: 268443656, + 2560: 2105344, + 2816: 8, + 3072: 270532616, + 3328: 2105352, + 3584: 8200, + 3840: 270540800, + 128: 270532608, + 384: 270540808, + 640: 8, + 896: 2097152, + 1152: 2105352, + 1408: 268435464, + 1664: 268443648, + 1920: 8200, + 2176: 2097160, + 2432: 8192, + 2688: 268443656, + 2944: 270532616, + 3200: 0, + 3456: 270540800, + 3712: 2105344, + 3968: 268435456, + 4096: 268443648, + 4352: 270532616, + 4608: 270540808, + 4864: 8200, + 5120: 2097152, + 5376: 268435456, + 5632: 268435464, + 5888: 2105344, + 6144: 2105352, + 6400: 0, + 6656: 8, + 6912: 270532608, + 7168: 8192, + 7424: 268443656, + 7680: 270540800, + 7936: 2097160, + 4224: 8, + 4480: 2105344, + 4736: 2097152, + 4992: 268435464, + 5248: 268443648, + 5504: 8200, + 5760: 270540808, + 6016: 270532608, + 6272: 270540800, + 6528: 270532616, + 6784: 8192, + 7040: 2105352, + 7296: 2097160, + 7552: 0, + 7808: 268435456, + 8064: 268443656 + }, { + 0: 1048576, + 16: 33555457, + 32: 1024, + 48: 1049601, + 64: 34604033, + 80: 0, + 96: 1, + 112: 34603009, + 128: 33555456, + 144: 1048577, + 160: 33554433, + 176: 34604032, + 192: 34603008, + 208: 1025, + 224: 1049600, + 240: 33554432, + 8: 34603009, + 24: 0, + 40: 33555457, + 56: 34604032, + 72: 1048576, + 88: 33554433, + 104: 33554432, + 120: 1025, + 136: 1049601, + 152: 33555456, + 168: 34603008, + 184: 1048577, + 200: 1024, + 216: 34604033, + 232: 1, + 248: 1049600, + 256: 33554432, + 272: 1048576, + 288: 33555457, + 304: 34603009, + 320: 1048577, + 336: 33555456, + 352: 34604032, + 368: 1049601, + 384: 1025, + 400: 34604033, + 416: 1049600, + 432: 1, + 448: 0, + 464: 34603008, + 480: 33554433, + 496: 1024, + 264: 1049600, + 280: 33555457, + 296: 34603009, + 312: 1, + 328: 33554432, + 344: 1048576, + 360: 1025, + 376: 34604032, + 392: 33554433, + 408: 34603008, + 424: 0, + 440: 34604033, + 456: 1049601, + 472: 1024, + 488: 33555456, + 504: 1048577 + }, { + 0: 134219808, + 1: 131072, + 2: 134217728, + 3: 32, + 4: 131104, + 5: 134350880, + 6: 134350848, + 7: 2048, + 8: 134348800, + 9: 134219776, + 10: 133120, + 11: 134348832, + 12: 2080, + 13: 0, + 14: 134217760, + 15: 133152, + 2147483648: 2048, + 2147483649: 134350880, + 2147483650: 134219808, + 2147483651: 134217728, + 2147483652: 134348800, + 2147483653: 133120, + 2147483654: 133152, + 2147483655: 32, + 2147483656: 134217760, + 2147483657: 2080, + 2147483658: 131104, + 2147483659: 134350848, + 2147483660: 0, + 2147483661: 134348832, + 2147483662: 134219776, + 2147483663: 131072, + 16: 133152, + 17: 134350848, + 18: 32, + 19: 2048, + 20: 134219776, + 21: 134217760, + 22: 134348832, + 23: 131072, + 24: 0, + 25: 131104, + 26: 134348800, + 27: 134219808, + 28: 134350880, + 29: 133120, + 30: 2080, + 31: 134217728, + 2147483664: 131072, + 2147483665: 2048, + 2147483666: 134348832, + 2147483667: 133152, + 2147483668: 32, + 2147483669: 134348800, + 2147483670: 134217728, + 2147483671: 134219808, + 2147483672: 134350880, + 2147483673: 134217760, + 2147483674: 134219776, + 2147483675: 0, + 2147483676: 133120, + 2147483677: 2080, + 2147483678: 131104, + 2147483679: 134350848 + }], + u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], + d = a.DES = s.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { + var n = c[i] - 1; + e[i] = r[n >>> 5] >>> 31 - n % 32 & 1; + } + + for (var o = this._subKeys = [], s = 0; s < 16; s++) { + for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++) { + a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; + } + + a[0] = a[0] << 1 | a[0] >>> 31; + + for (var i = 1; i < 7; i++) { + a[i] = a[i] >>> 4 * (i - 1) + 3; + } + + a[7] = a[7] << 5 | a[7] >>> 27; + } + + for (var u = this._invSubKeys = [], i = 0; i < 16; i++) { + u[i] = o[15 - i]; + } + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._subKeys); + }, + decryptBlock: function decryptBlock(t, r) { + this._doCryptBlock(t, r, this._invSubKeys); + }, + _doCryptBlock: function _doCryptBlock(t, i, n) { + this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); + + for (var o = 0; o < 16; o++) { + for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++) { + h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; + } + + this._lBlock = c, this._rBlock = a ^ h; + } + + var d = this._lBlock; + this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock; + }, + keySize: 2, + ivSize: 2, + blockSize: 2 + }); + i.DES = s._createHelper(d); + var v = a.TripleDES = s.extend({ + _doReset: function _doReset() { + var t = this._key, + r = t.words; + this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))); + }, + encryptBlock: function encryptBlock(t, r) { + this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r); + }, + decryptBlock: function decryptBlock(t, r) { + this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r); + }, + keySize: 6, + ivSize: 2, + blockSize: 2 + }); + i.TripleDES = s._createHelper(v); + }(), function () { + function r() { + for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { + r = (r + 1) % 256, e = (e + t[r]) % 256; + var o = t[r]; + t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n; + } + + return this._i = r, this._j = e, i; + } + + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = o.RC4 = n.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++) { + i[n] = n; + } + + for (var n = 0, o = 0; n < 256; n++) { + var s = n % e, + a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; + o = (o + i[n] + a) % 256; + var c = i[n]; + i[n] = i[o], i[o] = c; + } + + this._i = this._j = 0; + }, + _doProcessBlock: function _doProcessBlock(t, e) { + t[e] ^= r.call(this); + }, + keySize: 8, + ivSize: 0 + }); + e.RC4 = n._createHelper(s); + var a = o.RC4Drop = s.extend({ + cfg: s.cfg.extend({ + drop: 192 + }), + _doReset: function _doReset() { + s._doReset.call(this); + + for (var t = this.cfg.drop; t > 0; t--) { + r.call(this); + } + } + }); + e.RC4Drop = n._createHelper(a); + }(), t.mode.CTRGladman = function () { + function r(t) { + if (255 === (t >> 24 & 255)) { + var r = t >> 16 & 255, + e = t >> 8 & 255, + i = 255 & t; + 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i; + } else t += 1 << 24; + + return t; + } + + function e(t) { + return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t; + } + + var i = t.lib.BlockCipherMode.extend(), + n = i.Encryptor = i.extend({ + processBlock: function processBlock(t, r) { + var i = this._cipher, + n = i.blockSize, + o = this._iv, + s = this._counter; + o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); + var a = s.slice(0); + i.encryptBlock(a, 0); + + for (var c = 0; c < n; c++) { + t[r + c] ^= a[c]; + } + } + }); + return i.Decryptor = n, i; + }(), function () { + function r() { + for (var t = this._X, r = this._C, e = 0; e < 8; e++) { + a[e] = r[e]; + } + + r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; + + for (var e = 0; e < 8; e++) { + var i = t[e] + r[e], + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + c[e] = s ^ h; + } + + t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; + } + + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.Rabbit = n.extend({ + _doReset: function _doReset() { + for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++) { + t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); + } + + var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], + o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; + this._b = 0; + + for (var i = 0; i < 4; i++) { + r.call(this); + } + + for (var i = 0; i < 8; i++) { + o[i] ^= n[i + 4 & 7]; + } + + if (e) { + var s = e.words, + a = s[0], + c = s[1], + h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), + l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), + f = h >>> 16 | 4294901760 & l, + u = l << 16 | 65535 & h; + o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; + + for (var i = 0; i < 4; i++) { + r.call(this); + } + } + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + + for (var n = 0; n < 4; n++) { + s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + } + }, + blockSize: 4, + ivSize: 2 + }); + e.Rabbit = n._createHelper(h); + }(), t.mode.CTR = function () { + var r = t.lib.BlockCipherMode.extend(), + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, + i = e.blockSize, + n = this._iv, + o = this._counter; + n && (o = this._counter = n.slice(0), this._iv = void 0); + var s = o.slice(0); + e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; + + for (var a = 0; a < i; a++) { + t[r + a] ^= s[a]; + } + } + }); + return r.Decryptor = e, r; + }(), function () { + function r() { + for (var t = this._X, r = this._C, e = 0; e < 8; e++) { + a[e] = r[e]; + } + + r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; + + for (var e = 0; e < 8; e++) { + var i = t[e] + r[e], + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + c[e] = s ^ h; + } + + t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; + } + + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.RabbitLegacy = n.extend({ + _doReset: function _doReset() { + var t = this._key.words, + e = this.cfg.iv, + i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], + n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; + this._b = 0; + + for (var o = 0; o < 4; o++) { + r.call(this); + } + + for (var o = 0; o < 8; o++) { + n[o] ^= i[o + 4 & 7]; + } + + if (e) { + var s = e.words, + a = s[0], + c = s[1], + h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), + l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), + f = h >>> 16 | 4294901760 & l, + u = l << 16 | 65535 & h; + n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; + + for (var o = 0; o < 4; o++) { + r.call(this); + } + } + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + + for (var n = 0; n < 4; n++) { + s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + } + }, + blockSize: 4, + ivSize: 2 + }); + e.RabbitLegacy = n._createHelper(h); + }(), t.pad.ZeroPadding = { + pad: function pad(t, r) { + var e = 4 * r; + t.clamp(), t.sigBytes += e - (t.sigBytes % e || e); + }, + unpad: function unpad(t) { + for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);) { + e--; + } + + t.sigBytes = e + 1; + } + }, t; +}); //# sourceMappingURL=crypto-js.min.js.map + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXENyeXB0b1xcY3J5cHRvLWpzLm1pbi5qcyJdLCJuYW1lcyI6WyJ0IiwiciIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJDcnlwdG9KUyIsImUiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm90b3R5cGUiLCJpIiwibiIsImxpYiIsIm8iLCJCYXNlIiwiZXh0ZW5kIiwibWl4SW4iLCJoYXNPd25Qcm9wZXJ0eSIsImluaXQiLCIkc3VwZXIiLCJhcHBseSIsImFyZ3VtZW50cyIsInRvU3RyaW5nIiwiY2xvbmUiLCJzIiwiV29yZEFycmF5Iiwid29yZHMiLCJzaWdCeXRlcyIsImxlbmd0aCIsImMiLCJzdHJpbmdpZnkiLCJjb25jYXQiLCJjbGFtcCIsImNlaWwiLCJjYWxsIiwic2xpY2UiLCJyYW5kb20iLCJhIiwicHVzaCIsImVuYyIsIkhleCIsImpvaW4iLCJwYXJzZSIsInBhcnNlSW50Iiwic3Vic3RyIiwiaCIsIkxhdGluMSIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImNoYXJDb2RlQXQiLCJsIiwiVXRmOCIsImRlY29kZVVSSUNvbXBvbmVudCIsImVzY2FwZSIsIkVycm9yIiwidW5lc2NhcGUiLCJlbmNvZGVVUklDb21wb25lbnQiLCJmIiwiQnVmZmVyZWRCbG9ja0FsZ29yaXRobSIsInJlc2V0IiwiX2RhdGEiLCJfbkRhdGFCeXRlcyIsIl9hcHBlbmQiLCJfcHJvY2VzcyIsImJsb2NrU2l6ZSIsIm1heCIsIl9taW5CdWZmZXJTaXplIiwibWluIiwiX2RvUHJvY2Vzc0Jsb2NrIiwidSIsInNwbGljZSIsIkhhc2hlciIsImNmZyIsIl9kb1Jlc2V0IiwidXBkYXRlIiwiZmluYWxpemUiLCJfZG9GaW5hbGl6ZSIsIl9jcmVhdGVIZWxwZXIiLCJfY3JlYXRlSG1hY0hlbHBlciIsIkhNQUMiLCJhbGdvIiwiTWF0aCIsIkJhc2U2NCIsIl9tYXAiLCJjaGFyQXQiLCJfcmV2ZXJzZU1hcCIsImluZGV4T2YiLCJhYnMiLCJzaW4iLCJNRDUiLCJfaGFzaCIsImQiLCJ2IiwicCIsIl8iLCJ5IiwiZyIsIkIiLCJ3IiwiayIsIlMiLCJtIiwieCIsImIiLCJIIiwieiIsIkEiLCJDIiwiRCIsImZsb29yIiwiSG1hY01ENSIsIlNIQTEiLCJIbWFjU0hBMSIsInNxcnQiLCJwb3ciLCJTSEEyNTYiLCJIbWFjU0hBMjU2IiwiVXRmMTYiLCJVdGYxNkJFIiwiVXRmMTZMRSIsIkFycmF5QnVmZmVyIiwiVWludDhBcnJheSIsIkludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5IiwiSW50MTZBcnJheSIsIlVpbnQxNkFycmF5IiwiSW50MzJBcnJheSIsIlVpbnQzMkFycmF5IiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiYnVmZmVyIiwiYnl0ZU9mZnNldCIsImJ5dGVMZW5ndGgiLCJSSVBFTUQxNjAiLCJSIiwiRSIsIk0iLCJGIiwiSG1hY1JJUEVNRDE2MCIsIl9oYXNoZXIiLCJfb0tleSIsIl9pS2V5IiwiUEJLREYyIiwia2V5U2l6ZSIsImhhc2hlciIsIml0ZXJhdGlvbnMiLCJjb21wdXRlIiwiRXZwS0RGIiwiU0hBMjI0IiwiSG1hY1NIQTIyNCIsIng2NCIsIldvcmQiLCJoaWdoIiwibG93IiwidG9YMzIiLCJTSEEzIiwib3V0cHV0TGVuZ3RoIiwiX3N0YXRlIiwiSG1hY1NIQTMiLCJTSEE1MTIiLCJQIiwiVyIsIk8iLCJVIiwiSSIsIksiLCJYIiwiTCIsImoiLCJOIiwiVCIsIloiLCJxIiwiRyIsIkoiLCIkIiwiUSIsIlYiLCJZIiwidHQiLCJydCIsImV0IiwiaXQiLCJudCIsIm90Iiwic3QiLCJhdCIsImN0IiwiaHQiLCJsdCIsImZ0IiwidXQiLCJkdCIsInZ0IiwicHQiLCJfdCIsInl0IiwiZ3QiLCJCdCIsInd0Iiwia3QiLCJTdCIsIm10IiwieHQiLCJidCIsIkhtYWNTSEE1MTIiLCJTSEEzODQiLCJIbWFjU0hBMzg0IiwiQ2lwaGVyIiwiY3JlYXRlRW5jcnlwdG9yIiwiX0VOQ19YRk9STV9NT0RFIiwiY3JlYXRlRGVjcnlwdG9yIiwiX0RFQ19YRk9STV9NT0RFIiwiX3hmb3JtTW9kZSIsIl9rZXkiLCJwcm9jZXNzIiwiaXZTaXplIiwiZW5jcnlwdCIsImRlY3J5cHQiLCJTdHJlYW1DaXBoZXIiLCJtb2RlIiwiQmxvY2tDaXBoZXJNb2RlIiwiRW5jcnlwdG9yIiwiRGVjcnlwdG9yIiwiX2NpcGhlciIsIl9pdiIsIkNCQyIsIl9wcmV2QmxvY2siLCJwcm9jZXNzQmxvY2siLCJlbmNyeXB0QmxvY2siLCJkZWNyeXB0QmxvY2siLCJwYWQiLCJQa2NzNyIsInVucGFkIiwiQmxvY2tDaXBoZXIiLCJwYWRkaW5nIiwiaXYiLCJfbW9kZSIsIl9fY3JlYXRvciIsIkNpcGhlclBhcmFtcyIsImZvcm1hdHRlciIsImZvcm1hdCIsIk9wZW5TU0wiLCJjaXBoZXJ0ZXh0Iiwic2FsdCIsIlNlcmlhbGl6YWJsZUNpcGhlciIsImtleSIsImFsZ29yaXRobSIsIl9wYXJzZSIsImtkZiIsImV4ZWN1dGUiLCJQYXNzd29yZEJhc2VkQ2lwaGVyIiwiQ0ZCIiwiRUNCIiwiQW5zaVg5MjMiLCJJc28xMDEyNiIsIklzbzk3OTcxIiwiWmVyb1BhZGRpbmciLCJPRkIiLCJfa2V5c3RyZWFtIiwiTm9QYWRkaW5nIiwiQUVTIiwiX25Sb3VuZHMiLCJfa2V5UHJpb3JSZXNldCIsIl9rZXlTY2hlZHVsZSIsIl9pbnZLZXlTY2hlZHVsZSIsIl9kb0NyeXB0QmxvY2siLCJfbEJsb2NrIiwiX3JCbG9jayIsIkRFUyIsIl9zdWJLZXlzIiwiX2ludlN1YktleXMiLCJUcmlwbGVERVMiLCJfZGVzMSIsIl9kZXMyIiwiX2RlczMiLCJfUyIsIl9pIiwiX2oiLCJSQzQiLCJSQzREcm9wIiwiZHJvcCIsIkNUUkdsYWRtYW4iLCJfY291bnRlciIsIl9YIiwiX0MiLCJfYiIsIlJhYmJpdCIsIkNUUiIsIlJhYmJpdExlZ2FjeSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxDQUFDLFVBQVNBLENBQVQsRUFBV0MsQ0FBWCxFQUFhO0FBQUMs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RUFBYSxDQUFiLEVBQWUsQ0FBZixFQUFpQixDQUFqQixFQUFtQixDQUFuQixFQUFxQixFQUFyQixFQUF3QixFQUF4QixFQUEyQixFQUEzQixFQUE4QixFQUE5QixFQUFpQyxDQUFqQyxFQUFtQyxDQUFuQyxFQUFxQyxDQUFyQyxFQUF1QyxDQUF2QyxFQUF5QyxDQUF6QyxFQUEyQyxDQUEzQyxFQUE2QyxDQUE3QyxFQUErQyxFQUEvQyxFQUFrRCxFQUFsRCxFQUFxRCxDQUFyRCxFQUF1RCxDQUF2RCxFQUF5RCxFQUF6RCxFQUE0RCxDQUE1RCxFQUE4RCxFQUE5RCxFQUFpRSxFQUFqRSxFQUFvRSxDQUFwRSxFQUFzRSxFQUF0RSxFQUF5RSxDQUF6RSxFQUEyRSxFQUEzRSxFQUE4RSxFQUE5RSxFQUFpRixFQUFqRixFQUFvRixFQUFwRixFQUF1RixDQUF2RixFQUF5RixDQUF6RixFQUEyRixFQUEzRixFQUE4RixDQUE5RixFQUFnRyxFQUFoRyxFQUFtRyxFQUFuRyxFQUFzRyxFQUF0RyxFQUF5RyxDQUF6RyxFQUEyRyxFQUEzRyxFQUE4RyxDQUE5RyxFQUFnSCxDQUFoSCxFQUFrSCxFQUFsSCxFQUFxSCxDQUFySCxFQUF1SCxDQUF2SCxFQUF5SCxFQUF6SCxFQUE0SCxFQUE1SCxFQUErSCxFQUEvSCxFQUFrSSxFQUFsSSxFQUFxSSxFQUFySSxFQUF3SSxFQUF4SSxFQUEySSxDQUEzSSxFQUE2SSxDQUE3SSxFQUErSSxDQUEvSSxFQUFpSixFQUFqSixFQUFvSixDQUFwSixFQUFzSixDQUF0SixFQUF3SixDQUF4SixFQUEwSixDQUExSixFQUE0SixDQUE1SixFQUE4SixFQUE5SixFQUFpSyxDQUFqSyxFQUFtSyxFQUFuSyxFQUFzSyxDQUF0SyxFQUF3SyxFQUF4SyxFQUEySyxDQUEzSyxFQUE2SyxDQUE3SyxFQUErSyxFQUEvSyxFQUFrTCxFQUFsTCxFQUFxTCxDQUFyTCxFQUF1TCxFQUF2TCxFQUEwTCxFQUExTCxFQUE2TCxFQUE3TCxFQUFnTSxFQUFoTSxFQUFtTSxDQUFuTSxFQUFxTSxDQUFyTSxFQUF1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ckIsQ0FBQyxHQUFDLENBQWI7QUFBZTtBQUExSyxHQURueVgsRUFDKzhYUCxDQUR0OVg7QUFDdzlYLENBRGpoZixDQUFELEVBRUEiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIiFmdW5jdGlvbih0LHIpe1wib2JqZWN0XCI9PXR5cGVvZiBleHBvcnRzP21vZHVsZS5leHBvcnRzPWV4cG9ydHM9cigpOlwiZnVuY3Rpb25cIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10scik6dC5DcnlwdG9KUz1yKCl9KHRoaXMsZnVuY3Rpb24oKXt2YXIgdD10fHxmdW5jdGlvbih0LHIpe3ZhciBlPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe31yZXR1cm4gZnVuY3Rpb24ocil7dmFyIGU7cmV0dXJuIHQucHJvdG90eXBlPXIsZT1uZXcgdCx0LnByb3RvdHlwZT1udWxsLGV9fSgpLGk9e30sbj1pLmxpYj17fSxvPW4uQmFzZT1mdW5jdGlvbigpe3JldHVybntleHRlbmQ6ZnVuY3Rpb24odCl7dmFyIHI9ZSh0aGlzKTtyZXR1cm4gdCYmci5taXhJbih0KSxyLmhhc093blByb3BlcnR5KFwiaW5pdFwiKSYmdGhpcy5pbml0IT09ci5pbml0fHwoci5pbml0PWZ1bmN0aW9uKCl7ci4kc3VwZXIuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxyLmluaXQucHJvdG90eXBlPXIsci4kc3VwZXI9dGhpcyxyfSxjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmV4dGVuZCgpO3JldHVybiB0LmluaXQuYXBwbHkodCxhcmd1bWVudHMpLHR9LGluaXQ6ZnVuY3Rpb24oKXt9LG1peEluOmZ1bmN0aW9uKHQpe2Zvcih2YXIgciBpbiB0KXQuaGFzT3duUHJvcGVydHkocikmJih0aGlzW3JdPXRbcl0pO3QuaGFzT3duUHJvcGVydHkoXCJ0b1N0cmluZ1wiKSYmKHRoaXMudG9TdHJpbmc9dC50b1N0cmluZyl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdC5wcm90b3R5cGUuZXh0ZW5kKHRoaXMpfX19KCkscz1uLldvcmRBcnJheT1vLmV4dGVuZCh7aW5pdDpmdW5jdGlvbih0LGUpe3Q9dGhpcy53b3Jkcz10fHxbXSxlIT1yP3RoaXMuc2lnQnl0ZXM9ZTp0aGlzLnNpZ0J5dGVzPTQqdC5sZW5ndGh9LHRvU3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybih0fHxjKS5zdHJpbmdpZnkodGhpcyl9LGNvbmNhdDpmdW5jdGlvbih0KXt2YXIgcj10aGlzLndvcmRzLGU9dC53b3JkcyxpPXRoaXMuc2lnQnl0ZXMsbj10LnNpZ0J5dGVzO2lmKHRoaXMuY2xhbXAoKSxpJTQpZm9yKHZhciBvPTA7bzxuO28rKyl7dmFyIHM9ZVtvPj4+Ml0+Pj4yNC1vJTQqOCYyNTU7cltpK28+Pj4yXXw9czw8MjQtKGkrbyklNCo4fWVsc2UgZm9yKHZhciBvPTA7bzxuO28rPTQpcltpK28+Pj4yXT1lW28+Pj4yXTtyZXR1cm4gdGhpcy5zaWdCeXRlcys9bix0aGlzfSxjbGFtcDpmdW5jdGlvbigpe3ZhciByPXRoaXMud29yZHMsZT10aGlzLnNpZ0J5dGVzO3JbZT4+PjJdJj00Mjk0OTY3Mjk1PDwzMi1lJTQqOCxyLmxlbmd0aD10LmNlaWwoZS80KX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1vLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQud29yZHM9dGhpcy53b3Jkcy5zbGljZSgwKSx0fSxyYW5kb206ZnVuY3Rpb24ocil7Zm9yKHZhciBlLGk9W10sbj1mdW5jdGlvbihyKXt2YXIgcj1yLGU9OTg3NjU0MzIxLGk9NDI5NDk2NzI5NTtyZXR1cm4gZnVuY3Rpb24oKXtlPTM2OTY5Kig2NTUzNSZlKSsoZT4+MTYpJmkscj0xOGUzKig2NTUzNSZyKSsocj4+MTYpJmk7dmFyIG49KGU8PDE2KStyJmk7cmV0dXJuIG4vPTQyOTQ5NjcyOTYsbis9LjUsbioodC5yYW5kb20oKT4uNT8xOi0xKX19LG89MDtvPHI7bys9NCl7dmFyIGE9big0Mjk0OTY3Mjk2KihlfHx0LnJhbmRvbSgpKSk7ZT05ODc2NTQwNzEqYSgpLGkucHVzaCg0Mjk0OTY3Mjk2KmEoKXwwKX1yZXR1cm4gbmV3IHMuaW5pdChpLHIpfX0pLGE9aS5lbmM9e30sYz1hLkhleD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPVtdLG49MDtuPGU7bisrKXt2YXIgbz1yW24+Pj4yXT4+PjI0LW4lNCo4JjI1NTtpLnB1c2goKG8+Pj40KS50b1N0cmluZygxNikpLGkucHVzaCgoMTUmbykudG9TdHJpbmcoMTYpKX1yZXR1cm4gaS5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGgsZT1bXSxpPTA7aTxyO2krPTIpZVtpPj4+M118PXBhcnNlSW50KHQuc3Vic3RyKGksMiksMTYpPDwyNC1pJTgqNDtyZXR1cm4gbmV3IHMuaW5pdChlLHIvMil9fSxoPWEuTGF0aW4xPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQud29yZHMsZT10LnNpZ0J5dGVzLGk9W10sbj0wO248ZTtuKyspe3ZhciBvPXJbbj4+PjJdPj4+MjQtbiU0KjgmMjU1O2kucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG8pKX1yZXR1cm4gaS5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGgsZT1bXSxpPTA7aTxyO2krKyllW2k+Pj4yXXw9KDI1NSZ0LmNoYXJDb2RlQXQoaSkpPDwyNC1pJTQqODtyZXR1cm4gbmV3IHMuaW5pdChlLHIpfX0sbD1hLlV0Zjg9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlc2NhcGUoaC5zdHJpbmdpZnkodCkpKX1jYXRjaCh0KXt0aHJvdyBuZXcgRXJyb3IoXCJNYWxmb3JtZWQgVVRGLTggZGF0YVwiKX19LHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBoLnBhcnNlKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudCh0KSkpfX0sZj1uLkJ1ZmZlcmVkQmxvY2tBbGdvcml0aG09by5leHRlbmQoe3Jlc2V0OmZ1bmN0aW9uKCl7dGhpcy5fZGF0YT1uZXcgcy5pbml0LHRoaXMuX25EYXRhQnl0ZXM9MH0sX2FwcGVuZDpmdW5jdGlvbih0KXtcInN0cmluZ1wiPT10eXBlb2YgdCYmKHQ9bC5wYXJzZSh0KSksdGhpcy5fZGF0YS5jb25jYXQodCksdGhpcy5fbkRhdGFCeXRlcys9dC5zaWdCeXRlc30sX3Byb2Nlc3M6ZnVuY3Rpb24ocil7dmFyIGU9dGhpcy5fZGF0YSxpPWUud29yZHMsbj1lLnNpZ0J5dGVzLG89dGhpcy5ibG9ja1NpemUsYT00Km8sYz1uL2E7Yz1yP3QuY2VpbChjKTp0Lm1heCgoMHxjKS10aGlzLl9taW5CdWZmZXJTaXplLDApO3ZhciBoPWMqbyxsPXQubWluKDQqaCxuKTtpZihoKXtmb3IodmFyIGY9MDtmPGg7Zis9byl0aGlzLl9kb1Byb2Nlc3NCbG9jayhpLGYpO3ZhciB1PWkuc3BsaWNlKDAsaCk7ZS5zaWdCeXRlcy09bH1yZXR1cm4gbmV3IHMuaW5pdCh1LGwpfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW8uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5fZGF0YT10aGlzLl9kYXRhLmNsb25lKCksdH0sX21pbkJ1ZmZlclNpemU6MH0pLHU9KG4uSGFzaGVyPWYuZXh0ZW5kKHtjZmc6by5leHRlbmQoKSxpbml0OmZ1bmN0aW9uKHQpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZCh0KSx0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7Zi5yZXNldC5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX0sdXBkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hcHBlbmQodCksdGhpcy5fcHJvY2VzcygpLHRoaXN9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3QmJnRoaXMuX2FwcGVuZCh0KTt2YXIgcj10aGlzLl9kb0ZpbmFsaXplKCk7cmV0dXJuIHJ9LGJsb2NrU2l6ZToxNixfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihyLGUpe3JldHVybiBuZXcgdC5pbml0KGUpLmZpbmFsaXplKHIpfX0sX2NyZWF0ZUhtYWNIZWxwZXI6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHIsZSl7cmV0dXJuIG5ldyB1LkhNQUMuaW5pdCh0LGUpLmZpbmFsaXplKHIpfX19KSxpLmFsZ289e30pO3JldHVybiBpfShNYXRoKTtyZXR1cm4gZnVuY3Rpb24oKXtmdW5jdGlvbiByKHQscixlKXtmb3IodmFyIGk9W10sbz0wLHM9MDtzPHI7cysrKWlmKHMlNCl7dmFyIGE9ZVt0LmNoYXJDb2RlQXQocy0xKV08PHMlNCoyLGM9ZVt0LmNoYXJDb2RlQXQocyldPj4+Ni1zJTQqMjtpW28+Pj4yXXw9KGF8Yyk8PDI0LW8lNCo4LG8rK31yZXR1cm4gbi5jcmVhdGUoaSxvKX12YXIgZT10LGk9ZS5saWIsbj1pLldvcmRBcnJheSxvPWUuZW5jO28uQmFzZTY0PXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7dmFyIHI9dC53b3JkcyxlPXQuc2lnQnl0ZXMsaT10aGlzLl9tYXA7dC5jbGFtcCgpO2Zvcih2YXIgbj1bXSxvPTA7bzxlO28rPTMpZm9yKHZhciBzPXJbbz4+PjJdPj4+MjQtbyU0KjgmMjU1LGE9cltvKzE+Pj4yXT4+PjI0LShvKzEpJTQqOCYyNTUsYz1yW28rMj4+PjJdPj4+MjQtKG8rMiklNCo4JjI1NSxoPXM8PDE2fGE8PDh8YyxsPTA7bDw0JiZvKy43NSpsPGU7bCsrKW4ucHVzaChpLmNoYXJBdChoPj4+NiooMy1sKSY2MykpO3ZhciBmPWkuY2hhckF0KDY0KTtpZihmKWZvcig7bi5sZW5ndGglNDspbi5wdXNoKGYpO3JldHVybiBuLmpvaW4oXCJcIil9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoLGk9dGhpcy5fbWFwLG49dGhpcy5fcmV2ZXJzZU1hcDtpZighbil7bj10aGlzLl9yZXZlcnNlTWFwPVtdO2Zvcih2YXIgbz0wO288aS5sZW5ndGg7bysrKW5baS5jaGFyQ29kZUF0KG8pXT1vfXZhciBzPWkuY2hhckF0KDY0KTtpZihzKXt2YXIgYT10LmluZGV4T2Yocyk7YSE9PS0xJiYoZT1hKX1yZXR1cm4gcih0LGUsbil9LF9tYXA6XCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVwifX0oKSxmdW5jdGlvbihyKXtmdW5jdGlvbiBlKHQscixlLGksbixvLHMpe3ZhciBhPXQrKHImZXx+ciZpKStuK3M7cmV0dXJuKGE8PG98YT4+PjMyLW8pK3J9ZnVuY3Rpb24gaSh0LHIsZSxpLG4sbyxzKXt2YXIgYT10KyhyJml8ZSZ+aSkrbitzO3JldHVybihhPDxvfGE+Pj4zMi1vKStyfWZ1bmN0aW9uIG4odCxyLGUsaSxuLG8scyl7dmFyIGE9dCsocl5lXmkpK24rcztyZXR1cm4oYTw8b3xhPj4+MzItbykrcn1mdW5jdGlvbiBvKHQscixlLGksbixvLHMpe3ZhciBhPXQrKGVeKHJ8fmkpKStuK3M7cmV0dXJuKGE8PG98YT4+PjMyLW8pK3J9dmFyIHM9dCxhPXMubGliLGM9YS5Xb3JkQXJyYXksaD1hLkhhc2hlcixsPXMuYWxnbyxmPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8NjQ7dCsrKWZbdF09NDI5NDk2NzI5NipyLmFicyhyLnNpbih0KzEpKXwwfSgpO3ZhciB1PWwuTUQ1PWguZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IGMuaW5pdChbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4XSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgcz0wO3M8MTY7cysrKXt2YXIgYT1yK3MsYz10W2FdO3RbYV09MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCl9dmFyIGg9dGhpcy5faGFzaC53b3JkcyxsPXRbciswXSx1PXRbcisxXSxkPXRbcisyXSx2PXRbciszXSxwPXRbcis0XSxfPXRbcis1XSx5PXRbcis2XSxnPXRbcis3XSxCPXRbcis4XSx3PXRbcis5XSxrPXRbcisxMF0sUz10W3IrMTFdLG09dFtyKzEyXSx4PXRbcisxM10sYj10W3IrMTRdLEg9dFtyKzE1XSx6PWhbMF0sQT1oWzFdLEM9aFsyXSxEPWhbM107ej1lKHosQSxDLEQsbCw3LGZbMF0pLEQ9ZShELHosQSxDLHUsMTIsZlsxXSksQz1lKEMsRCx6LEEsZCwxNyxmWzJdKSxBPWUoQSxDLEQseix2LDIyLGZbM10pLHo9ZSh6LEEsQyxELHAsNyxmWzRdKSxEPWUoRCx6LEEsQyxfLDEyLGZbNV0pLEM9ZShDLEQseixBLHksMTcsZls2XSksQT1lKEEsQyxELHosZywyMixmWzddKSx6PWUoeixBLEMsRCxCLDcsZls4XSksRD1lKEQseixBLEMsdywxMixmWzldKSxDPWUoQyxELHosQSxrLDE3LGZbMTBdKSxBPWUoQSxDLEQseixTLDIyLGZbMTFdKSx6PWUoeixBLEMsRCxtLDcsZlsxMl0pLEQ9ZShELHosQSxDLHgsMTIsZlsxM10pLEM9ZShDLEQseixBLGIsMTcsZlsxNF0pLEE9ZShBLEMsRCx6LEgsMjIsZlsxNV0pLHo9aSh6LEEsQyxELHUsNSxmWzE2XSksRD1pKEQseixBLEMseSw5LGZbMTddKSxDPWkoQyxELHosQSxTLDE0LGZbMThdKSxBPWkoQSxDLEQseixsLDIwLGZbMTldKSx6PWkoeixBLEMsRCxfLDUsZlsyMF0pLEQ9aShELHosQSxDLGssOSxmWzIxXSksQz1pKEMsRCx6LEEsSCwxNCxmWzIyXSksQT1pKEEsQyxELHoscCwyMCxmWzIzXSksej1pKHosQSxDLEQsdyw1LGZbMjRdKSxEPWkoRCx6LEEsQyxiLDksZlsyNV0pLEM9aShDLEQseixBLHYsMTQsZlsyNl0pLEE9aShBLEMsRCx6LEIsMjAsZlsyN10pLHo9aSh6LEEsQyxELHgsNSxmWzI4XSksRD1pKEQseixBLEMsZCw5LGZbMjldKSxDPWkoQyxELHosQSxnLDE0LGZbMzBdKSxBPWkoQSxDLEQseixtLDIwLGZbMzFdKSx6PW4oeixBLEMsRCxfLDQsZlszMl0pLEQ9bihELHosQSxDLEIsMTEsZlszM10pLEM9bihDLEQseixBLFMsMTYsZlszNF0pLEE9bihBLEMsRCx6LGIsMjMsZlszNV0pLHo9bih6LEEsQyxELHUsNCxmWzM2XSksRD1uKEQseixBLEMscCwxMSxmWzM3XSksQz1uKEMsRCx6LEEsZywxNixmWzM4XSksQT1uKEEsQyxELHosaywyMyxmWzM5XSksej1uKHosQSxDLEQseCw0LGZbNDBdKSxEPW4oRCx6LEEsQyxsLDExLGZbNDFdKSxDPW4oQyxELHosQSx2LDE2LGZbNDJdKSxBPW4oQSxDLEQseix5LDIzLGZbNDNdKSx6PW4oeixBLEMsRCx3LDQsZls0NF0pLEQ9bihELHosQSxDLG0sMTEsZls0NV0pLEM9bihDLEQseixBLEgsMTYsZls0Nl0pLEE9bihBLEMsRCx6LGQsMjMsZls0N10pLHo9byh6LEEsQyxELGwsNixmWzQ4XSksRD1vKEQseixBLEMsZywxMCxmWzQ5XSksQz1vKEMsRCx6LEEsYiwxNSxmWzUwXSksQT1vKEEsQyxELHosXywyMSxmWzUxXSksej1vKHosQSxDLEQsbSw2LGZbNTJdKSxEPW8oRCx6LEEsQyx2LDEwLGZbNTNdKSxDPW8oQyxELHosQSxrLDE1LGZbNTRdKSxBPW8oQSxDLEQseix1LDIxLGZbNTVdKSx6PW8oeixBLEMsRCxCLDYsZls1Nl0pLEQ9byhELHosQSxDLEgsMTAsZls1N10pLEM9byhDLEQseixBLHksMTUsZls1OF0pLEE9byhBLEMsRCx6LHgsMjEsZls1OV0pLHo9byh6LEEsQyxELHAsNixmWzYwXSksRD1vKEQseixBLEMsUywxMCxmWzYxXSksQz1vKEMsRCx6LEEsZCwxNSxmWzYyXSksQT1vKEEsQyxELHosdywyMSxmWzYzXSksaFswXT1oWzBdK3p8MCxoWzFdPWhbMV0rQXwwLGhbMl09aFsyXStDfDAsaFszXT1oWzNdK0R8MH0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxpPTgqdGhpcy5fbkRhdGFCeXRlcyxuPTgqdC5zaWdCeXRlcztlW24+Pj41XXw9MTI4PDwyNC1uJTMyO3ZhciBvPXIuZmxvb3IoaS80Mjk0OTY3Mjk2KSxzPWk7ZVsobis2ND4+Pjk8PDQpKzE1XT0xNjcxMTkzNSYobzw8OHxvPj4+MjQpfDQyNzgyNTUzNjAmKG88PDI0fG8+Pj44KSxlWyhuKzY0Pj4+OTw8NCkrMTRdPTE2NzExOTM1JihzPDw4fHM+Pj4yNCl8NDI3ODI1NTM2MCYoczw8MjR8cz4+PjgpLHQuc2lnQnl0ZXM9NCooZS5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgYT10aGlzLl9oYXNoLGM9YS53b3JkcyxoPTA7aDw0O2grKyl7dmFyIGw9Y1toXTtjW2hdPTE2NzExOTM1JihsPDw4fGw+Pj4yNCl8NDI3ODI1NTM2MCYobDw8MjR8bD4+PjgpfXJldHVybiBhfSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWguY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtzLk1ENT1oLl9jcmVhdGVIZWxwZXIodSkscy5IbWFjTUQ1PWguX2NyZWF0ZUhtYWNIZWxwZXIodSl9KE1hdGgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5Xb3JkQXJyYXksbj1lLkhhc2hlcixvPXIuYWxnbyxzPVtdLGE9by5TSEExPW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IGkuaW5pdChbMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUzNzc1MjBdKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuX2hhc2gud29yZHMsaT1lWzBdLG49ZVsxXSxvPWVbMl0sYT1lWzNdLGM9ZVs0XSxoPTA7aDw4MDtoKyspe2lmKGg8MTYpc1toXT0wfHRbcitoXTtlbHNle3ZhciBsPXNbaC0zXV5zW2gtOF1ec1toLTE0XV5zW2gtMTZdO3NbaF09bDw8MXxsPj4+MzF9dmFyIGY9KGk8PDV8aT4+PjI3KStjK3NbaF07Zis9aDwyMD8obiZvfH5uJmEpKzE1MTg1MDAyNDk6aDw0MD8obl5vXmEpKzE4NTk3NzUzOTM6aDw2MD8obiZvfG4mYXxvJmEpLTE4OTQwMDc1ODg6KG5eb15hKS04OTk0OTc1MTQsYz1hLGE9byxvPW48PDMwfG4+Pj4yLG49aSxpPWZ9ZVswXT1lWzBdK2l8MCxlWzFdPWVbMV0rbnwwLGVbMl09ZVsyXStvfDAsZVszXT1lWzNdK2F8MCxlWzRdPWVbNF0rY3wwfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2RhdGEscj10LndvcmRzLGU9OCp0aGlzLl9uRGF0YUJ5dGVzLGk9OCp0LnNpZ0J5dGVzO3JldHVybiByW2k+Pj41XXw9MTI4PDwyNC1pJTMyLHJbKGkrNjQ+Pj45PDw0KSsxNF09TWF0aC5mbG9vcihlLzQyOTQ5NjcyOTYpLHJbKGkrNjQ+Pj45PDw0KSsxNV09ZSx0LnNpZ0J5dGVzPTQqci5sZW5ndGgsdGhpcy5fcHJvY2VzcygpLHRoaXMuX2hhc2h9LGNsb25lOmZ1bmN0aW9uKCl7dmFyIHQ9bi5jbG9uZS5jYWxsKHRoaXMpO3JldHVybiB0Ll9oYXNoPXRoaXMuX2hhc2guY2xvbmUoKSx0fX0pO3IuU0hBMT1uLl9jcmVhdGVIZWxwZXIoYSksci5IbWFjU0hBMT1uLl9jcmVhdGVIbWFjSGVscGVyKGEpfSgpLGZ1bmN0aW9uKHIpe3ZhciBlPXQsaT1lLmxpYixuPWkuV29yZEFycmF5LG89aS5IYXNoZXIscz1lLmFsZ28sYT1bXSxjPVtdOyFmdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7Zm9yKHZhciBlPXIuc3FydCh0KSxpPTI7aTw9ZTtpKyspaWYoISh0JWkpKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGUodCl7cmV0dXJuIDQyOTQ5NjcyOTYqKHQtKDB8dCkpfDB9Zm9yKHZhciBpPTIsbj0wO248NjQ7KXQoaSkmJihuPDgmJihhW25dPWUoci5wb3coaSwuNSkpKSxjW25dPWUoci5wb3coaSwxLzMpKSxuKyspLGkrK30oKTt2YXIgaD1bXSxsPXMuU0hBMjU2PW8uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IG4uaW5pdChhLnNsaWNlKDApKX0sX2RvUHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPXRoaXMuX2hhc2gud29yZHMsaT1lWzBdLG49ZVsxXSxvPWVbMl0scz1lWzNdLGE9ZVs0XSxsPWVbNV0sZj1lWzZdLHU9ZVs3XSxkPTA7ZDw2NDtkKyspe2lmKGQ8MTYpaFtkXT0wfHRbcitkXTtlbHNle3ZhciB2PWhbZC0xNV0scD0odjw8MjV8dj4+PjcpXih2PDwxNHx2Pj4+MTgpXnY+Pj4zLF89aFtkLTJdLHk9KF88PDE1fF8+Pj4xNyleKF88PDEzfF8+Pj4xOSleXz4+PjEwO2hbZF09cCtoW2QtN10reStoW2QtMTZdfXZhciBnPWEmbF5+YSZmLEI9aSZuXmkmb15uJm8sdz0oaTw8MzB8aT4+PjIpXihpPDwxOXxpPj4+MTMpXihpPDwxMHxpPj4+MjIpLGs9KGE8PDI2fGE+Pj42KV4oYTw8MjF8YT4+PjExKV4oYTw8N3xhPj4+MjUpLFM9dStrK2crY1tkXStoW2RdLG09dytCO3U9ZixmPWwsbD1hLGE9cytTfDAscz1vLG89bixuPWksaT1TK218MH1lWzBdPWVbMF0raXwwLGVbMV09ZVsxXStufDAsZVsyXT1lWzJdK298MCxlWzNdPWVbM10rc3wwLGVbNF09ZVs0XSthfDAsZVs1XT1lWzVdK2x8MCxlWzZdPWVbNl0rZnwwLGVbN109ZVs3XSt1fDB9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxlPXQud29yZHMsaT04KnRoaXMuX25EYXRhQnl0ZXMsbj04KnQuc2lnQnl0ZXM7cmV0dXJuIGVbbj4+PjVdfD0xMjg8PDI0LW4lMzIsZVsobis2ND4+Pjk8PDQpKzE0XT1yLmZsb29yKGkvNDI5NDk2NzI5NiksZVsobis2ND4+Pjk8PDQpKzE1XT1pLHQuc2lnQnl0ZXM9NCplLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCksdGhpcy5faGFzaH0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgdD1vLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIHQuX2hhc2g9dGhpcy5faGFzaC5jbG9uZSgpLHR9fSk7ZS5TSEEyNTY9by5fY3JlYXRlSGVscGVyKGwpLGUuSG1hY1NIQTI1Nj1vLl9jcmVhdGVIbWFjSGVscGVyKGwpfShNYXRoKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIHQ8PDgmNDI3ODI1NTM2MHx0Pj4+OCYxNjcxMTkzNX12YXIgZT10LGk9ZS5saWIsbj1pLldvcmRBcnJheSxvPWUuZW5jO28uVXRmMTY9by5VdGYxNkJFPXtzdHJpbmdpZnk6ZnVuY3Rpb24odCl7Zm9yKHZhciByPXQud29yZHMsZT10LnNpZ0J5dGVzLGk9W10sbj0wO248ZTtuKz0yKXt2YXIgbz1yW24+Pj4yXT4+PjE2LW4lNCo4JjY1NTM1O2kucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKG8pKX1yZXR1cm4gaS5qb2luKFwiXCIpfSxwYXJzZTpmdW5jdGlvbih0KXtmb3IodmFyIHI9dC5sZW5ndGgsZT1bXSxpPTA7aTxyO2krKyllW2k+Pj4xXXw9dC5jaGFyQ29kZUF0KGkpPDwxNi1pJTIqMTY7cmV0dXJuIG4uY3JlYXRlKGUsMipyKX19O28uVXRmMTZMRT17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LndvcmRzLGk9dC5zaWdCeXRlcyxuPVtdLG89MDtvPGk7bys9Mil7dmFyIHM9cihlW28+Pj4yXT4+PjE2LW8lNCo4JjY1NTM1KTtuLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShzKSl9cmV0dXJuIG4uam9pbihcIlwiKX0scGFyc2U6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLGk9W10sbz0wO288ZTtvKyspaVtvPj4+MV18PXIodC5jaGFyQ29kZUF0KG8pPDwxNi1vJTIqMTYpO3JldHVybiBuLmNyZWF0ZShpLDIqZSl9fX0oKSxmdW5jdGlvbigpe2lmKFwiZnVuY3Rpb25cIj09dHlwZW9mIEFycmF5QnVmZmVyKXt2YXIgcj10LGU9ci5saWIsaT1lLldvcmRBcnJheSxuPWkuaW5pdCxvPWkuaW5pdD1mdW5jdGlvbih0KXtpZih0IGluc3RhbmNlb2YgQXJyYXlCdWZmZXImJih0PW5ldyBVaW50OEFycmF5KHQpKSwodCBpbnN0YW5jZW9mIEludDhBcnJheXx8XCJ1bmRlZmluZWRcIiE9dHlwZW9mIFVpbnQ4Q2xhbXBlZEFycmF5JiZ0IGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl8fHQgaW5zdGFuY2VvZiBJbnQxNkFycmF5fHx0IGluc3RhbmNlb2YgVWludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBJbnQzMkFycmF5fHx0IGluc3RhbmNlb2YgVWludDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXkpJiYodD1uZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsdC5ieXRlTGVuZ3RoKSksdCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpe2Zvcih2YXIgcj10LmJ5dGVMZW5ndGgsZT1bXSxpPTA7aTxyO2krKyllW2k+Pj4yXXw9dFtpXTw8MjQtaSU0Kjg7bi5jYWxsKHRoaXMsZSxyKX1lbHNlIG4uYXBwbHkodGhpcyxhcmd1bWVudHMpfTtvLnByb3RvdHlwZT1pfX0oKSxmdW5jdGlvbihyKXtmdW5jdGlvbiBlKHQscixlKXtyZXR1cm4gdF5yXmV9ZnVuY3Rpb24gaSh0LHIsZSl7cmV0dXJuIHQmcnx+dCZlfWZ1bmN0aW9uIG4odCxyLGUpe3JldHVybih0fH5yKV5lfWZ1bmN0aW9uIG8odCxyLGUpe3JldHVybiB0JmV8ciZ+ZX1mdW5jdGlvbiBzKHQscixlKXtyZXR1cm4gdF4ocnx+ZSl9ZnVuY3Rpb24gYSh0LHIpe3JldHVybiB0PDxyfHQ+Pj4zMi1yfXZhciBjPXQsaD1jLmxpYixsPWguV29yZEFycmF5LGY9aC5IYXNoZXIsdT1jLmFsZ28sZD1sLmNyZWF0ZShbMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYsMiw0LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSksdj1sLmNyZWF0ZShbNSwxNCw3LDAsOSwyLDExLDQsMTMsNiwxNSw4LDEsMTAsMywxMiw2LDExLDMsNywwLDEzLDUsMTAsMTQsMTUsOCwxMiw0LDksMSwyLDE1LDUsMSwzLDcsMTQsNiw5LDExLDgsMTIsMiwxMCwwLDQsMTMsOCw2LDQsMSwzLDExLDE1LDAsNSwxMiwyLDEzLDksNywxMCwxNCwxMiwxNSwxMCw0LDEsNSw4LDcsNiwyLDEzLDE0LDAsMyw5LDExXSkscD1sLmNyZWF0ZShbMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEyLDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0pLF89bC5jcmVhdGUoWzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcsMTIsOCw5LDExLDcsNywxMiw3LDYsMTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwxNCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdKSx5PWwuY3JlYXRlKFswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdKSxnPWwuY3JlYXRlKFsxMzUyODI5OTI2LDE1NDg2MDM2ODQsMTgzNjA3MjY5MSwyMDUzOTk0MjE3LDBdKSxCPXUuUklQRU1EMTYwPWYuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bC5jcmVhdGUoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgYz0wO2M8MTY7YysrKXt2YXIgaD1yK2MsbD10W2hdO3RbaF09MTY3MTE5MzUmKGw8PDh8bD4+PjI0KXw0Mjc4MjU1MzYwJihsPDwyNHxsPj4+OCl9dmFyIGYsdSxCLHcsayxTLG0seCxiLEgsej10aGlzLl9oYXNoLndvcmRzLEE9eS53b3JkcyxDPWcud29yZHMsRD1kLndvcmRzLFI9di53b3JkcyxFPXAud29yZHMsTT1fLndvcmRzO1M9Zj16WzBdLG09dT16WzFdLHg9Qj16WzJdLGI9dz16WzNdLEg9az16WzRdO2Zvcih2YXIgRixjPTA7Yzw4MDtjKz0xKUY9Zit0W3IrRFtjXV18MCxGKz1jPDE2P2UodSxCLHcpK0FbMF06YzwzMj9pKHUsQix3KStBWzFdOmM8NDg/bih1LEIsdykrQVsyXTpjPDY0P28odSxCLHcpK0FbM106cyh1LEIsdykrQVs0XSxGfD0wLEY9YShGLEVbY10pLEY9RitrfDAsZj1rLGs9dyx3PWEoQiwxMCksQj11LHU9RixGPVMrdFtyK1JbY11dfDAsRis9YzwxNj9zKG0seCxiKStDWzBdOmM8MzI/byhtLHgsYikrQ1sxXTpjPDQ4P24obSx4LGIpK0NbMl06Yzw2ND9pKG0seCxiKStDWzNdOmUobSx4LGIpK0NbNF0sRnw9MCxGPWEoRixNW2NdKSxGPUYrSHwwLFM9SCxIPWIsYj1hKHgsMTApLHg9bSxtPUY7Rj16WzFdK0IrYnwwLHpbMV09elsyXSt3K0h8MCx6WzJdPXpbM10raytTfDAselszXT16WzRdK2YrbXwwLHpbNF09elswXSt1K3h8MCx6WzBdPUZ9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxyPXQud29yZHMsZT04KnRoaXMuX25EYXRhQnl0ZXMsaT04KnQuc2lnQnl0ZXM7cltpPj4+NV18PTEyODw8MjQtaSUzMixyWyhpKzY0Pj4+OTw8NCkrMTRdPTE2NzExOTM1JihlPDw4fGU+Pj4yNCl8NDI3ODI1NTM2MCYoZTw8MjR8ZT4+PjgpLHQuc2lnQnl0ZXM9NCooci5sZW5ndGgrMSksdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgbj10aGlzLl9oYXNoLG89bi53b3JkcyxzPTA7czw1O3MrKyl7dmFyIGE9b1tzXTtvW3NdPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpfXJldHVybiBufSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PWYuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH19KTtjLlJJUEVNRDE2MD1mLl9jcmVhdGVIZWxwZXIoQiksYy5IbWFjUklQRU1EMTYwPWYuX2NyZWF0ZUhtYWNIZWxwZXIoQil9KE1hdGgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5CYXNlLG49ci5lbmMsbz1uLlV0Zjgscz1yLmFsZ287cy5ITUFDPWkuZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQscil7dD10aGlzLl9oYXNoZXI9bmV3IHQuaW5pdCxcInN0cmluZ1wiPT10eXBlb2YgciYmKHI9by5wYXJzZShyKSk7dmFyIGU9dC5ibG9ja1NpemUsaT00KmU7ci5zaWdCeXRlcz5pJiYocj10LmZpbmFsaXplKHIpKSxyLmNsYW1wKCk7Zm9yKHZhciBuPXRoaXMuX29LZXk9ci5jbG9uZSgpLHM9dGhpcy5faUtleT1yLmNsb25lKCksYT1uLndvcmRzLGM9cy53b3JkcyxoPTA7aDxlO2grKylhW2hdXj0xNTQ5NTU2ODI4LGNbaF1ePTkwOTUyMjQ4NjtuLnNpZ0J5dGVzPXMuc2lnQnl0ZXM9aSx0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5faGFzaGVyO3QucmVzZXQoKSx0LnVwZGF0ZSh0aGlzLl9pS2V5KX0sdXBkYXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9oYXNoZXIudXBkYXRlKHQpLHRoaXN9LGZpbmFsaXplOmZ1bmN0aW9uKHQpe3ZhciByPXRoaXMuX2hhc2hlcixlPXIuZmluYWxpemUodCk7ci5yZXNldCgpO3ZhciBpPXIuZmluYWxpemUodGhpcy5fb0tleS5jbG9uZSgpLmNvbmNhdChlKSk7cmV0dXJuIGl9fSl9KCksZnVuY3Rpb24oKXt2YXIgcj10LGU9ci5saWIsaT1lLkJhc2Usbj1lLldvcmRBcnJheSxvPXIuYWxnbyxzPW8uU0hBMSxhPW8uSE1BQyxjPW8uUEJLREYyPWkuZXh0ZW5kKHtjZmc6aS5leHRlbmQoe2tleVNpemU6NCxoYXNoZXI6cyxpdGVyYXRpb25zOjF9KSxpbml0OmZ1bmN0aW9uKHQpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZCh0KX0sY29tcHV0ZTpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLmNmZyxpPWEuY3JlYXRlKGUuaGFzaGVyLHQpLG89bi5jcmVhdGUoKSxzPW4uY3JlYXRlKFsxXSksYz1vLndvcmRzLGg9cy53b3JkcyxsPWUua2V5U2l6ZSxmPWUuaXRlcmF0aW9ucztjLmxlbmd0aDxsOyl7dmFyIHU9aS51cGRhdGUocikuZmluYWxpemUocyk7aS5yZXNldCgpO2Zvcih2YXIgZD11LndvcmRzLHY9ZC5sZW5ndGgscD11LF89MTtfPGY7XysrKXtwPWkuZmluYWxpemUocCksaS5yZXNldCgpO2Zvcih2YXIgeT1wLndvcmRzLGc9MDtnPHY7ZysrKWRbZ11ePXlbZ119by5jb25jYXQodSksaFswXSsrfXJldHVybiBvLnNpZ0J5dGVzPTQqbCxvfX0pO3IuUEJLREYyPWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gYy5jcmVhdGUoZSkuY29tcHV0ZSh0LHIpfX0oKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuQmFzZSxuPWUuV29yZEFycmF5LG89ci5hbGdvLHM9by5NRDUsYT1vLkV2cEtERj1pLmV4dGVuZCh7Y2ZnOmkuZXh0ZW5kKHtrZXlTaXplOjQsaGFzaGVyOnMsaXRlcmF0aW9uczoxfSksaW5pdDpmdW5jdGlvbih0KXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQodCl9LGNvbXB1dGU6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5jZmcsaT1lLmhhc2hlci5jcmVhdGUoKSxvPW4uY3JlYXRlKCkscz1vLndvcmRzLGE9ZS5rZXlTaXplLGM9ZS5pdGVyYXRpb25zO3MubGVuZ3RoPGE7KXtoJiZpLnVwZGF0ZShoKTt2YXIgaD1pLnVwZGF0ZSh0KS5maW5hbGl6ZShyKTtpLnJlc2V0KCk7Zm9yKHZhciBsPTE7bDxjO2wrKyloPWkuZmluYWxpemUoaCksaS5yZXNldCgpO28uY29uY2F0KGgpfXJldHVybiBvLnNpZ0J5dGVzPTQqYSxvfX0pO3IuRXZwS0RGPWZ1bmN0aW9uKHQscixlKXtyZXR1cm4gYS5jcmVhdGUoZSkuY29tcHV0ZSh0LHIpfX0oKSxmdW5jdGlvbigpe3ZhciByPXQsZT1yLmxpYixpPWUuV29yZEFycmF5LG49ci5hbGdvLG89bi5TSEEyNTYscz1uLlNIQTIyND1vLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBpLmluaXQoWzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2ODM5LDMyMDQwNzU0MjhdKX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD1vLl9kb0ZpbmFsaXplLmNhbGwodGhpcyk7cmV0dXJuIHQuc2lnQnl0ZXMtPTQsdH19KTtyLlNIQTIyND1vLl9jcmVhdGVIZWxwZXIocyksci5IbWFjU0hBMjI0PW8uX2NyZWF0ZUhtYWNIZWxwZXIocyl9KCksZnVuY3Rpb24ocil7dmFyIGU9dCxpPWUubGliLG49aS5CYXNlLG89aS5Xb3JkQXJyYXkscz1lLng2ND17fTtzLldvcmQ9bi5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCxyKXt0aGlzLmhpZ2g9dCx0aGlzLmxvdz1yfX0pLHMuV29yZEFycmF5PW4uZXh0ZW5kKHtpbml0OmZ1bmN0aW9uKHQsZSl7dD10aGlzLndvcmRzPXR8fFtdLGUhPXI/dGhpcy5zaWdCeXRlcz1lOnRoaXMuc2lnQnl0ZXM9OCp0Lmxlbmd0aH0sdG9YMzI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy53b3JkcyxyPXQubGVuZ3RoLGU9W10saT0wO2k8cjtpKyspe3ZhciBuPXRbaV07ZS5wdXNoKG4uaGlnaCksZS5wdXNoKG4ubG93KX1yZXR1cm4gby5jcmVhdGUoZSx0aGlzLnNpZ0J5dGVzKX0sY2xvbmU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9bi5jbG9uZS5jYWxsKHRoaXMpLHI9dC53b3Jkcz10aGlzLndvcmRzLnNsaWNlKDApLGU9ci5sZW5ndGgsaT0wO2k8ZTtpKyspcltpXT1yW2ldLmNsb25lKCk7cmV0dXJuIHR9fSl9KCksZnVuY3Rpb24ocil7dmFyIGU9dCxpPWUubGliLG49aS5Xb3JkQXJyYXksbz1pLkhhc2hlcixzPWUueDY0LGE9cy5Xb3JkLGM9ZS5hbGdvLGg9W10sbD1bXSxmPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0xLHI9MCxlPTA7ZTwyNDtlKyspe2hbdCs1KnJdPShlKzEpKihlKzIpLzIlNjQ7dmFyIGk9ciU1LG49KDIqdCszKnIpJTU7dD1pLHI9bn1mb3IodmFyIHQ9MDt0PDU7dCsrKWZvcih2YXIgcj0wO3I8NTtyKyspbFt0KzUqcl09cisoMip0KzMqciklNSo1O2Zvcih2YXIgbz0xLHM9MDtzPDI0O3MrKyl7Zm9yKHZhciBjPTAsdT0wLGQ9MDtkPDc7ZCsrKXtpZigxJm8pe3ZhciB2PSgxPDxkKS0xO3Y8MzI/dV49MTw8djpjXj0xPDx2LTMyfTEyOCZvP289bzw8MV4xMTM6bzw8PTF9ZltzXT1hLmNyZWF0ZShjLHUpfX0oKTt2YXIgdT1bXTshZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDI1O3QrKyl1W3RdPWEuY3JlYXRlKCl9KCk7dmFyIGQ9Yy5TSEEzPW8uZXh0ZW5kKHtjZmc6by5jZmcuZXh0ZW5kKHtvdXRwdXRMZW5ndGg6NTEyfSksX2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fc3RhdGU9W10scj0wO3I8MjU7cisrKXRbcl09bmV3IGEuaW5pdDt0aGlzLmJsb2NrU2l6ZT0oMTYwMC0yKnRoaXMuY2ZnLm91dHB1dExlbmd0aCkvMzJ9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe2Zvcih2YXIgZT10aGlzLl9zdGF0ZSxpPXRoaXMuYmxvY2tTaXplLzIsbj0wO248aTtuKyspe3ZhciBvPXRbcisyKm5dLHM9dFtyKzIqbisxXTtvPTE2NzExOTM1JihvPDw4fG8+Pj4yNCl8NDI3ODI1NTM2MCYobzw8MjR8bz4+PjgpLHM9MTY3MTE5MzUmKHM8PDh8cz4+PjI0KXw0Mjc4MjU1MzYwJihzPDwyNHxzPj4+OCk7dmFyIGE9ZVtuXTthLmhpZ2hePXMsYS5sb3dePW99Zm9yKHZhciBjPTA7YzwyNDtjKyspe2Zvcih2YXIgZD0wO2Q8NTtkKyspe2Zvcih2YXIgdj0wLHA9MCxfPTA7Xzw1O18rKyl7dmFyIGE9ZVtkKzUqX107dl49YS5oaWdoLHBePWEubG93fXZhciB5PXVbZF07eS5oaWdoPXYseS5sb3c9cH1mb3IodmFyIGQ9MDtkPDU7ZCsrKWZvcih2YXIgZz11WyhkKzQpJTVdLEI9dVsoZCsxKSU1XSx3PUIuaGlnaCxrPUIubG93LHY9Zy5oaWdoXih3PDwxfGs+Pj4zMSkscD1nLmxvd14oazw8MXx3Pj4+MzEpLF89MDtfPDU7XysrKXt2YXIgYT1lW2QrNSpfXTthLmhpZ2hePXYsYS5sb3dePXB9Zm9yKHZhciBTPTE7UzwyNTtTKyspe3ZhciBhPWVbU10sbT1hLmhpZ2gseD1hLmxvdyxiPWhbU107aWYoYjwzMil2YXIgdj1tPDxifHg+Pj4zMi1iLHA9eDw8YnxtPj4+MzItYjtlbHNlIHZhciB2PXg8PGItMzJ8bT4+PjY0LWIscD1tPDxiLTMyfHg+Pj42NC1iO3ZhciBIPXVbbFtTXV07SC5oaWdoPXYsSC5sb3c9cH12YXIgej11WzBdLEE9ZVswXTt6LmhpZ2g9QS5oaWdoLHoubG93PUEubG93O2Zvcih2YXIgZD0wO2Q8NTtkKyspZm9yKHZhciBfPTA7Xzw1O18rKyl7dmFyIFM9ZCs1Kl8sYT1lW1NdLEM9dVtTXSxEPXVbKGQrMSklNSs1Kl9dLFI9dVsoZCsyKSU1KzUqX107YS5oaWdoPUMuaGlnaF5+RC5oaWdoJlIuaGlnaCxhLmxvdz1DLmxvd15+RC5sb3cmUi5sb3d9dmFyIGE9ZVswXSxFPWZbY107YS5oaWdoXj1FLmhpZ2gsYS5sb3dePUUubG93fX0sX2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9kYXRhLGU9dC53b3JkcyxpPSg4KnRoaXMuX25EYXRhQnl0ZXMsOCp0LnNpZ0J5dGVzKSxvPTMyKnRoaXMuYmxvY2tTaXplO2VbaT4+PjVdfD0xPDwyNC1pJTMyLGVbKHIuY2VpbCgoaSsxKS9vKSpvPj4+NSktMV18PTEyOCx0LnNpZ0J5dGVzPTQqZS5sZW5ndGgsdGhpcy5fcHJvY2VzcygpO2Zvcih2YXIgcz10aGlzLl9zdGF0ZSxhPXRoaXMuY2ZnLm91dHB1dExlbmd0aC84LGM9YS84LGg9W10sbD0wO2w8YztsKyspe3ZhciBmPXNbbF0sdT1mLmhpZ2gsZD1mLmxvdzt1PTE2NzExOTM1Jih1PDw4fHU+Pj4yNCl8NDI3ODI1NTM2MCYodTw8MjR8dT4+PjgpLGQ9MTY3MTE5MzUmKGQ8PDh8ZD4+PjI0KXw0Mjc4MjU1MzYwJihkPDwyNHxkPj4+OCksaC5wdXNoKGQpLGgucHVzaCh1KX1yZXR1cm4gbmV3IG4uaW5pdChoLGEpfSxjbG9uZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1vLmNsb25lLmNhbGwodGhpcykscj10Ll9zdGF0ZT10aGlzLl9zdGF0ZS5zbGljZSgwKSxlPTA7ZTwyNTtlKyspcltlXT1yW2VdLmNsb25lKCk7cmV0dXJuIHR9fSk7ZS5TSEEzPW8uX2NyZWF0ZUhlbHBlcihkKSxlLkhtYWNTSEEzPW8uX2NyZWF0ZUhtYWNIZWxwZXIoZCl9KE1hdGgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcigpe3JldHVybiBzLmNyZWF0ZS5hcHBseShzLGFyZ3VtZW50cyl9dmFyIGU9dCxpPWUubGliLG49aS5IYXNoZXIsbz1lLng2NCxzPW8uV29yZCxhPW8uV29yZEFycmF5LGM9ZS5hbGdvLGg9W3IoMTExNjM1MjQwOCwzNjA5NzY3NDU4KSxyKDE4OTk0NDc0NDEsNjAyODkxNzI1KSxyKDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSkscigzOTIxMDA5NTczLDIxNzMyOTU1NDgpLHIoOTYxOTg3MTYzLDQwODE2Mjg0NzIpLHIoMTUwODk3MDk5MywzMDUzODM0MjY1KSxyKDI0NTM2MzU3NDgsMjkzNzY3MTU3OSkscigyODcwNzYzMjIxLDM2NjQ2MDk1NjApLHIoMzYyNDM4MTA4MCwyNzM0ODgzMzk0KSxyKDMxMDU5ODQwMSwxMTY0OTk2NTQyKSxyKDYwNzIyNTI3OCwxMzIzNjEwNzY0KSxyKDE0MjY4ODE5ODcsMzU5MDMwNDk5NCkscigxOTI1MDc4Mzg4LDQwNjgxODIzODMpLHIoMjE2MjA3ODIwNiw5OTEzMzYxMTMpLHIoMjYxNDg4ODEwMyw2MzM4MDMzMTcpLHIoMzI0ODIyMjU4MCwzNDc5Nzc0ODY4KSxyKDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCkscig0MDIyMjI0Nzc0LDk0NDcxMTEzOSkscigyNjQzNDcwNzgsMjM0MTI2Mjc3Mykscig2MDQ4MDc2MjgsMjAwNzgwMDkzMykscig3NzAyNTU5ODMsMTQ5NTk5MDkwMSkscigxMjQ5MTUwMTIyLDE4NTY0MzEyMzUpLHIoMTU1NTA4MTY5MiwzMTc1MjE4MTMyKSxyKDE5OTYwNjQ5ODYsMjE5ODk1MDgzNykscigyNTU0MjIwODgyLDM5OTk3MTkzMzkpLHIoMjgyMTgzNDM0OSw3NjY3ODQwMTYpLHIoMjk1Mjk5NjgwOCwyNTY2NTk0ODc5KSxyKDMyMTAzMTM2NzEsMzIwMzMzNzk1NikscigzMzM2NTcxODkxLDEwMzQ0NTcwMjYpLHIoMzU4NDUyODcxMSwyNDY2OTQ4OTAxKSxyKDExMzkyNjk5MywzNzU4MzI2MzgzKSxyKDMzODI0MTg5NSwxNjg3MTc5MzYpLHIoNjY2MzA3MjA1LDExODgxNzk5NjQpLHIoNzczNTI5OTEyLDE1NDYwNDU3MzQpLHIoMTI5NDc1NzM3MiwxNTIyODA1NDg1KSxyKDEzOTYxODIyOTEsMjY0MzgzMzgyMykscigxNjk1MTgzNzAwLDIzNDM1MjczOTApLHIoMTk4NjY2MTA1MSwxMDE0NDc3NDgwKSxyKDIxNzcwMjYzNTAsMTIwNjc1OTE0MikscigyNDU2OTU2MDM3LDM0NDA3NzYyNykscigyNzMwNDg1OTIxLDEyOTA4NjM0NjApLHIoMjgyMDMwMjQxMSwzMTU4NDU0MjczKSxyKDMyNTk3MzA4MDAsMzUwNTk1MjY1NykscigzMzQ1NzY0NzcxLDEwNjIxNzAwOCkscigzNTE2MDY1ODE3LDM2MDYwMDgzNDQpLHIoMzYwMDM1MjgwNCwxNDMyNzI1Nzc2KSxyKDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCkscigyNzU0MjMzNDQsODUxMTY5NzIwKSxyKDQzMDIyNzczNCwzMTAwODIzNzUyKSxyKDUwNjk0ODYxNiwxMzYzMjU4MTk1KSxyKDY1OTA2MDU1NiwzNzUwNjg1NTkzKSxyKDg4Mzk5Nzg3NywzNzg1MDUwMjgwKSxyKDk1ODEzOTU3MSwzMzE4MzA3NDI3KSxyKDEzMjI4MjIyMTgsMzgxMjcyMzQwMykscigxNTM3MDAyMDYzLDIwMDMwMzQ5OTUpLHIoMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5KSxyKDE5NTU1NjIyMjIsMTU3NTk5MDAxMikscigyMDI0MTA0ODE1LDExMjU1OTI5MjgpLHIoMjIyNzczMDQ1MiwyNzE2OTA0MzA2KSxyKDIzNjE4NTI0MjQsNDQyNzc2MDQ0KSxyKDI0Mjg0MzY0NzQsNTkzNjk4MzQ0KSxyKDI3NTY3MzQxODcsMzczMzExMDI0OSkscigzMjA0MDMxNDc5LDI5OTkzNTE1NzMpLHIoMzMyOTMyNTI5OCwzODE1OTIwNDI3KSxyKDMzOTE1Njk2MTQsMzkyODM4MzkwMCkscigzNTE1MjY3MjcxLDU2NjI4MDcxMSkscigzOTQwMTg3NjA2LDM0NTQwNjk1MzQpLHIoNDExODYzMDI3MSw0MDAwMjM5OTkyKSxyKDExNjQxODQ3NCwxOTE0MTM4NTU0KSxyKDE3NDI5MjQyMSwyNzMxMDU1MjcwKSxyKDI4OTM4MDM1NiwzMjAzOTkzMDA2KSxyKDQ2MDM5MzI2OSwzMjA2MjAzMTUpLHIoNjg1NDcxNzMzLDU4NzQ5NjgzNikscig4NTIxNDI5NzEsMTA4Njc5Mjg1MSkscigxMDE3MDM2Mjk4LDM2NTU0MzEwMCkscigxMTI2MDAwNTgwLDI2MTgyOTc2NzYpLHIoMTI4ODAzMzQ3MCwzNDA5ODU1MTU4KSxyKDE1MDE1MDU5NDgsNDIzNDUwOTg2NikscigxNjA3MTY3OTE1LDk4NzE2NzQ2OCkscigxODE2NDAyMzE2LDEyNDYxODk1OTEpXSxsPVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8ODA7dCsrKWxbdF09cigpfSgpO3ZhciBmPWMuU0hBNTEyPW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IGEuaW5pdChbbmV3IHMuaW5pdCgxNzc5MDMzNzAzLDQwODkyMzU3MjApLG5ldyBzLmluaXQoMzE0NDEzNDI3NywyMjI3ODczNTk1KSxuZXcgcy5pbml0KDEwMTM5MDQyNDIsNDI3MTE3NTcyMyksbmV3IHMuaW5pdCgyNzczNDgwNzYyLDE1OTU3NTAxMjkpLG5ldyBzLmluaXQoMTM1OTg5MzExOSwyOTE3NTY1MTM3KSxuZXcgcy5pbml0KDI2MDA4MjI5MjQsNzI1NTExMTk5KSxuZXcgcy5pbml0KDUyODczNDYzNSw0MjE1Mzg5NTQ3KSxuZXcgcy5pbml0KDE1NDE0NTkyMjUsMzI3MDMzMjA5KV0pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXtmb3IodmFyIGU9dGhpcy5faGFzaC53b3JkcyxpPWVbMF0sbj1lWzFdLG89ZVsyXSxzPWVbM10sYT1lWzRdLGM9ZVs1XSxmPWVbNl0sdT1lWzddLGQ9aS5oaWdoLHY9aS5sb3cscD1uLmhpZ2gsXz1uLmxvdyx5PW8uaGlnaCxnPW8ubG93LEI9cy5oaWdoLHc9cy5sb3csaz1hLmhpZ2gsUz1hLmxvdyxtPWMuaGlnaCx4PWMubG93LGI9Zi5oaWdoLEg9Zi5sb3csej11LmhpZ2gsQT11LmxvdyxDPWQsRD12LFI9cCxFPV8sTT15LEY9ZyxQPUIsVz13LE89ayxVPVMsST1tLEs9eCxYPWIsTD1ILGo9eixOPUEsVD0wO1Q8ODA7VCsrKXt2YXIgWj1sW1RdO2lmKFQ8MTYpdmFyIHE9Wi5oaWdoPTB8dFtyKzIqVF0sRz1aLmxvdz0wfHRbcisyKlQrMV07ZWxzZXt2YXIgSj1sW1QtMTVdLCQ9Si5oaWdoLFE9Si5sb3csVj0oJD4+PjF8UTw8MzEpXigkPj4+OHxRPDwyNCleJD4+PjcsWT0oUT4+PjF8JDw8MzEpXihRPj4+OHwkPDwyNCleKFE+Pj43fCQ8PDI1KSx0dD1sW1QtMl0scnQ9dHQuaGlnaCxldD10dC5sb3csaXQ9KHJ0Pj4+MTl8ZXQ8PDEzKV4ocnQ8PDN8ZXQ+Pj4yOSlecnQ+Pj42LG50PShldD4+PjE5fHJ0PDwxMyleKGV0PDwzfHJ0Pj4+MjkpXihldD4+PjZ8cnQ8PDI2KSxvdD1sW1QtN10sc3Q9b3QuaGlnaCxhdD1vdC5sb3csY3Q9bFtULTE2XSxodD1jdC5oaWdoLGx0PWN0LmxvdyxHPVkrYXQscT1WK3N0KyhHPj4+MDxZPj4+MD8xOjApLEc9RytudCxxPXEraXQrKEc+Pj4wPG50Pj4+MD8xOjApLEc9RytsdCxxPXEraHQrKEc+Pj4wPGx0Pj4+MD8xOjApO1ouaGlnaD1xLFoubG93PUd9dmFyIGZ0PU8mSV5+TyZYLHV0PVUmS15+VSZMLGR0PUMmUl5DJk1eUiZNLHZ0PUQmRV5EJkZeRSZGLHB0PShDPj4+Mjh8RDw8NCleKEM8PDMwfEQ+Pj4yKV4oQzw8MjV8RD4+PjcpLF90PShEPj4+Mjh8Qzw8NCleKEQ8PDMwfEM+Pj4yKV4oRDw8MjV8Qz4+PjcpLHl0PShPPj4+MTR8VTw8MTgpXihPPj4+MTh8VTw8MTQpXihPPDwyM3xVPj4+OSksZ3Q9KFU+Pj4xNHxPPDwxOCleKFU+Pj4xOHxPPDwxNCleKFU8PDIzfE8+Pj45KSxCdD1oW1RdLHd0PUJ0LmhpZ2gsa3Q9QnQubG93LFN0PU4rZ3QsbXQ9ait5dCsoU3Q+Pj4wPE4+Pj4wPzE6MCksU3Q9U3QrdXQsbXQ9bXQrZnQrKFN0Pj4+MDx1dD4+PjA/MTowKSxTdD1TdCtrdCxtdD1tdCt3dCsoU3Q+Pj4wPGt0Pj4+MD8xOjApLFN0PVN0K0csbXQ9bXQrcSsoU3Q+Pj4wPEc+Pj4wPzE6MCkseHQ9X3QrdnQsYnQ9cHQrZHQrKHh0Pj4+MDxfdD4+PjA/MTowKTtqPVgsTj1MLFg9SSxMPUssST1PLEs9VSxVPVcrU3R8MCxPPVArbXQrKFU+Pj4wPFc+Pj4wPzE6MCl8MCxQPU0sVz1GLE09UixGPUUsUj1DLEU9RCxEPVN0K3h0fDAsQz1tdCtidCsoRD4+PjA8U3Q+Pj4wPzE6MCl8MH12PWkubG93PXYrRCxpLmhpZ2g9ZCtDKyh2Pj4+MDxEPj4+MD8xOjApLF89bi5sb3c9XytFLG4uaGlnaD1wK1IrKF8+Pj4wPEU+Pj4wPzE6MCksZz1vLmxvdz1nK0Ysby5oaWdoPXkrTSsoZz4+PjA8Rj4+PjA/MTowKSx3PXMubG93PXcrVyxzLmhpZ2g9QitQKyh3Pj4+MDxXPj4+MD8xOjApLFM9YS5sb3c9UytVLGEuaGlnaD1rK08rKFM+Pj4wPFU+Pj4wPzE6MCkseD1jLmxvdz14K0ssYy5oaWdoPW0rSSsoeD4+PjA8Sz4+PjA/MTowKSxIPWYubG93PUgrTCxmLmhpZ2g9YitYKyhIPj4+MDxMPj4+MD8xOjApLEE9dS5sb3c9QStOLHUuaGlnaD16K2orKEE+Pj4wPE4+Pj4wPzE6MCl9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fZGF0YSxyPXQud29yZHMsZT04KnRoaXMuX25EYXRhQnl0ZXMsaT04KnQuc2lnQnl0ZXM7cltpPj4+NV18PTEyODw8MjQtaSUzMixyWyhpKzEyOD4+PjEwPDw1KSszMF09TWF0aC5mbG9vcihlLzQyOTQ5NjcyOTYpLHJbKGkrMTI4Pj4+MTA8PDUpKzMxXT1lLHQuc2lnQnl0ZXM9NCpyLmxlbmd0aCx0aGlzLl9wcm9jZXNzKCk7dmFyIG49dGhpcy5faGFzaC50b1gzMigpO3JldHVybiBufSxjbG9uZTpmdW5jdGlvbigpe3ZhciB0PW4uY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gdC5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksdH0sYmxvY2tTaXplOjMyfSk7ZS5TSEE1MTI9bi5fY3JlYXRlSGVscGVyKGYpLGUuSG1hY1NIQTUxMj1uLl9jcmVhdGVIbWFjSGVscGVyKGYpfSgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIueDY0LGk9ZS5Xb3JkLG49ZS5Xb3JkQXJyYXksbz1yLmFsZ28scz1vLlNIQTUxMixhPW8uU0hBMzg0PXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3RoaXMuX2hhc2g9bmV3IG4uaW5pdChbbmV3IGkuaW5pdCgzNDE4MDcwMzY1LDMyMzgzNzEwMzIpLG5ldyBpLmluaXQoMTY1NDI3MDI1MCw5MTQxNTA2NjMpLG5ldyBpLmluaXQoMjQzODUyOTM3MCw4MTI3MDI5OTkpLG5ldyBpLmluaXQoMzU1NDYyMzYwLDQxNDQ5MTI2OTcpLG5ldyBpLmluaXQoMTczMTQwNTQxNSw0MjkwNzc1ODU3KSxuZXcgaS5pbml0KDIzOTQxODAyMzEsMTc1MDYwMzAyNSksbmV3IGkuaW5pdCgzNjc1MDA4NTI1LDE2OTQwNzY4MzkpLG5ldyBpLmluaXQoMTIwMzA2MjgxMywzMjA0MDc1NDI4KV0pfSxfZG9GaW5hbGl6ZTpmdW5jdGlvbigpe3ZhciB0PXMuX2RvRmluYWxpemUuY2FsbCh0aGlzKTtyZXR1cm4gdC5zaWdCeXRlcy09MTYsdH19KTtyLlNIQTM4ND1zLl9jcmVhdGVIZWxwZXIoYSksci5IbWFjU0hBMzg0PXMuX2NyZWF0ZUhtYWNIZWxwZXIoYSl9KCksdC5saWIuQ2lwaGVyfHxmdW5jdGlvbihyKXt2YXIgZT10LGk9ZS5saWIsbj1pLkJhc2Usbz1pLldvcmRBcnJheSxzPWkuQnVmZmVyZWRCbG9ja0FsZ29yaXRobSxhPWUuZW5jLGM9KGEuVXRmOCxhLkJhc2U2NCksaD1lLmFsZ28sbD1oLkV2cEtERixmPWkuQ2lwaGVyPXMuZXh0ZW5kKHtjZmc6bi5leHRlbmQoKSxjcmVhdGVFbmNyeXB0b3I6ZnVuY3Rpb24odCxyKXtyZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5fRU5DX1hGT1JNX01PREUsdCxyKX0sY3JlYXRlRGVjcnlwdG9yOmZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMuY3JlYXRlKHRoaXMuX0RFQ19YRk9STV9NT0RFLHQscil9LGluaXQ6ZnVuY3Rpb24odCxyLGUpe3RoaXMuY2ZnPXRoaXMuY2ZnLmV4dGVuZChlKSx0aGlzLl94Zm9ybU1vZGU9dCx0aGlzLl9rZXk9cix0aGlzLnJlc2V0KCl9LHJlc2V0OmZ1bmN0aW9uKCl7cy5yZXNldC5jYWxsKHRoaXMpLHRoaXMuX2RvUmVzZXQoKX0scHJvY2VzczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYXBwZW5kKHQpLHRoaXMuX3Byb2Nlc3MoKX0sZmluYWxpemU6ZnVuY3Rpb24odCl7dCYmdGhpcy5fYXBwZW5kKHQpO3ZhciByPXRoaXMuX2RvRmluYWxpemUoKTtyZXR1cm4gcn0sa2V5U2l6ZTo0LGl2U2l6ZTo0LF9FTkNfWEZPUk1fTU9ERToxLF9ERUNfWEZPUk1fTU9ERToyLF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P206d31yZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJue2VuY3J5cHQ6ZnVuY3Rpb24oZSxpLG4pe3JldHVybiB0KGkpLmVuY3J5cHQocixlLGksbil9LGRlY3J5cHQ6ZnVuY3Rpb24oZSxpLG4pe3JldHVybiB0KGkpLmRlY3J5cHQocixlLGksbil9fX19KCl9KSx1PShpLlN0cmVhbUNpcGhlcj1mLmV4dGVuZCh7X2RvRmluYWxpemU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9wcm9jZXNzKCEwKTtyZXR1cm4gdH0sYmxvY2tTaXplOjF9KSxlLm1vZGU9e30pLGQ9aS5CbG9ja0NpcGhlck1vZGU9bi5leHRlbmQoe2NyZWF0ZUVuY3J5cHRvcjpmdW5jdGlvbih0LHIpe3JldHVybiB0aGlzLkVuY3J5cHRvci5jcmVhdGUodCxyKX0sY3JlYXRlRGVjcnlwdG9yOmZ1bmN0aW9uKHQscil7cmV0dXJuIHRoaXMuRGVjcnlwdG9yLmNyZWF0ZSh0LHIpfSxpbml0OmZ1bmN0aW9uKHQscil7dGhpcy5fY2lwaGVyPXQsdGhpcy5faXY9cn19KSx2PXUuQ0JDPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGUsaSl7dmFyIG49dGhpcy5faXY7aWYobil7dmFyIG89bjt0aGlzLl9pdj1yfWVsc2UgdmFyIG89dGhpcy5fcHJldkJsb2NrO2Zvcih2YXIgcz0wO3M8aTtzKyspdFtlK3NdXj1vW3NdfXZhciBlPWQuZXh0ZW5kKCk7cmV0dXJuIGUuRW5jcnlwdG9yPWUuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24ocixlKXt2YXIgaT10aGlzLl9jaXBoZXIsbj1pLmJsb2NrU2l6ZTt0LmNhbGwodGhpcyxyLGUsbiksaS5lbmNyeXB0QmxvY2socixlKSx0aGlzLl9wcmV2QmxvY2s9ci5zbGljZShlLGUrbil9fSksZS5EZWNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbihyLGUpe3ZhciBpPXRoaXMuX2NpcGhlcixuPWkuYmxvY2tTaXplLG89ci5zbGljZShlLGUrbik7aS5kZWNyeXB0QmxvY2socixlKSx0LmNhbGwodGhpcyxyLGUsbiksdGhpcy5fcHJldkJsb2NrPW99fSksZX0oKSxwPWUucGFkPXt9LF89cC5Qa2NzNz17cGFkOmZ1bmN0aW9uKHQscil7Zm9yKHZhciBlPTQqcixpPWUtdC5zaWdCeXRlcyVlLG49aTw8MjR8aTw8MTZ8aTw8OHxpLHM9W10sYT0wO2E8aTthKz00KXMucHVzaChuKTt2YXIgYz1vLmNyZWF0ZShzLGkpO3QuY29uY2F0KGMpfSx1bnBhZDpmdW5jdGlvbih0KXt2YXIgcj0yNTUmdC53b3Jkc1t0LnNpZ0J5dGVzLTE+Pj4yXTt0LnNpZ0J5dGVzLT1yfX0seT0oaS5CbG9ja0NpcGhlcj1mLmV4dGVuZCh7Y2ZnOmYuY2ZnLmV4dGVuZCh7bW9kZTp2LHBhZGRpbmc6X30pLHJlc2V0OmZ1bmN0aW9uKCl7Zi5yZXNldC5jYWxsKHRoaXMpO3ZhciB0PXRoaXMuY2ZnLHI9dC5pdixlPXQubW9kZTtpZih0aGlzLl94Zm9ybU1vZGU9PXRoaXMuX0VOQ19YRk9STV9NT0RFKXZhciBpPWUuY3JlYXRlRW5jcnlwdG9yO2Vsc2V7dmFyIGk9ZS5jcmVhdGVEZWNyeXB0b3I7dGhpcy5fbWluQnVmZmVyU2l6ZT0xfXRoaXMuX21vZGUmJnRoaXMuX21vZGUuX19jcmVhdG9yPT1pP3RoaXMuX21vZGUuaW5pdCh0aGlzLHImJnIud29yZHMpOih0aGlzLl9tb2RlPWkuY2FsbChlLHRoaXMsciYmci53b3JkcyksdGhpcy5fbW9kZS5fX2NyZWF0b3I9aSl9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX21vZGUucHJvY2Vzc0Jsb2NrKHQscil9LF9kb0ZpbmFsaXplOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jZmcucGFkZGluZztpZih0aGlzLl94Zm9ybU1vZGU9PXRoaXMuX0VOQ19YRk9STV9NT0RFKXt0LnBhZCh0aGlzLl9kYXRhLHRoaXMuYmxvY2tTaXplKTt2YXIgcj10aGlzLl9wcm9jZXNzKCEwKX1lbHNle3ZhciByPXRoaXMuX3Byb2Nlc3MoITApO3QudW5wYWQocil9cmV0dXJuIHJ9LGJsb2NrU2l6ZTo0fSksaS5DaXBoZXJQYXJhbXM9bi5leHRlbmQoe2luaXQ6ZnVuY3Rpb24odCl7dGhpcy5taXhJbih0KX0sdG9TdHJpbmc6ZnVuY3Rpb24odCl7cmV0dXJuKHR8fHRoaXMuZm9ybWF0dGVyKS5zdHJpbmdpZnkodGhpcyl9fSkpLGc9ZS5mb3JtYXQ9e30sQj1nLk9wZW5TU0w9e3N0cmluZ2lmeTpmdW5jdGlvbih0KXt2YXIgcj10LmNpcGhlcnRleHQsZT10LnNhbHQ7aWYoZSl2YXIgaT1vLmNyZWF0ZShbMTM5ODg5MzY4NCwxNzAxMDc2ODMxXSkuY29uY2F0KGUpLmNvbmNhdChyKTtlbHNlIHZhciBpPXI7cmV0dXJuIGkudG9TdHJpbmcoYyl9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciByPWMucGFyc2UodCksZT1yLndvcmRzO2lmKDEzOTg4OTM2ODQ9PWVbMF0mJjE3MDEwNzY4MzE9PWVbMV0pe3ZhciBpPW8uY3JlYXRlKGUuc2xpY2UoMiw0KSk7ZS5zcGxpY2UoMCw0KSxyLnNpZ0J5dGVzLT0xNn1yZXR1cm4geS5jcmVhdGUoe2NpcGhlcnRleHQ6cixzYWx0Oml9KX19LHc9aS5TZXJpYWxpemFibGVDaXBoZXI9bi5leHRlbmQoe2NmZzpuLmV4dGVuZCh7Zm9ybWF0OkJ9KSxlbmNyeXB0OmZ1bmN0aW9uKHQscixlLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpO3ZhciBuPXQuY3JlYXRlRW5jcnlwdG9yKGUsaSksbz1uLmZpbmFsaXplKHIpLHM9bi5jZmc7cmV0dXJuIHkuY3JlYXRlKHtjaXBoZXJ0ZXh0Om8sa2V5OmUsaXY6cy5pdixhbGdvcml0aG06dCxtb2RlOnMubW9kZSxwYWRkaW5nOnMucGFkZGluZyxibG9ja1NpemU6dC5ibG9ja1NpemUsZm9ybWF0dGVyOmkuZm9ybWF0fSl9LGRlY3J5cHQ6ZnVuY3Rpb24odCxyLGUsaSl7aT10aGlzLmNmZy5leHRlbmQoaSkscj10aGlzLl9wYXJzZShyLGkuZm9ybWF0KTt2YXIgbj10LmNyZWF0ZURlY3J5cHRvcihlLGkpLmZpbmFsaXplKHIuY2lwaGVydGV4dCk7cmV0dXJuIG59LF9wYXJzZTpmdW5jdGlvbih0LHIpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0P3IucGFyc2UodCx0aGlzKTp0fX0pLGs9ZS5rZGY9e30sUz1rLk9wZW5TU0w9e2V4ZWN1dGU6ZnVuY3Rpb24odCxyLGUsaSl7aXx8KGk9by5yYW5kb20oOCkpO3ZhciBuPWwuY3JlYXRlKHtrZXlTaXplOnIrZX0pLmNvbXB1dGUodCxpKSxzPW8uY3JlYXRlKG4ud29yZHMuc2xpY2UociksNCplKTtyZXR1cm4gbi5zaWdCeXRlcz00KnIseS5jcmVhdGUoe2tleTpuLGl2OnMsc2FsdDppfSl9fSxtPWkuUGFzc3dvcmRCYXNlZENpcGhlcj13LmV4dGVuZCh7Y2ZnOncuY2ZnLmV4dGVuZCh7a2RmOlN9KSxlbmNyeXB0OmZ1bmN0aW9uKHQscixlLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpO3ZhciBuPWkua2RmLmV4ZWN1dGUoZSx0LmtleVNpemUsdC5pdlNpemUpO2kuaXY9bi5pdjt2YXIgbz13LmVuY3J5cHQuY2FsbCh0aGlzLHQscixuLmtleSxpKTtyZXR1cm4gby5taXhJbihuKSxvfSxkZWNyeXB0OmZ1bmN0aW9uKHQscixlLGkpe2k9dGhpcy5jZmcuZXh0ZW5kKGkpLHI9dGhpcy5fcGFyc2UocixpLmZvcm1hdCk7dmFyIG49aS5rZGYuZXhlY3V0ZShlLHQua2V5U2l6ZSx0Lml2U2l6ZSxyLnNhbHQpO2kuaXY9bi5pdjt2YXIgbz13LmRlY3J5cHQuY2FsbCh0aGlzLHQscixuLmtleSxpKTtyZXR1cm4gb319KX0oKSx0Lm1vZGUuQ0ZCPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0LHIsZSxpKXt2YXIgbj10aGlzLl9pdjtpZihuKXt2YXIgbz1uLnNsaWNlKDApO3RoaXMuX2l2PXZvaWQgMH1lbHNlIHZhciBvPXRoaXMuX3ByZXZCbG9jaztpLmVuY3J5cHRCbG9jayhvLDApO2Zvcih2YXIgcz0wO3M8ZTtzKyspdFtyK3NdXj1vW3NdfXZhciBlPXQubGliLkJsb2NrQ2lwaGVyTW9kZS5leHRlbmQoKTtyZXR1cm4gZS5FbmNyeXB0b3I9ZS5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3ZhciBpPXRoaXMuX2NpcGhlcixuPWkuYmxvY2tTaXplO3IuY2FsbCh0aGlzLHQsZSxuLGkpLHRoaXMuX3ByZXZCbG9jaz10LnNsaWNlKGUsZStuKX19KSxlLkRlY3J5cHRvcj1lLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQsZSl7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemUsbz10LnNsaWNlKGUsZStuKTtyLmNhbGwodGhpcyx0LGUsbixpKSx0aGlzLl9wcmV2QmxvY2s9b319KSxlfSgpLHQubW9kZS5FQ0I9ZnVuY3Rpb24oKXt2YXIgcj10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCk7cmV0dXJuIHIuRW5jcnlwdG9yPXIuZXh0ZW5kKHtwcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9jaXBoZXIuZW5jcnlwdEJsb2NrKHQscil9fSksci5EZWNyeXB0b3I9ci5leHRlbmQoe3Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2NpcGhlci5kZWNyeXB0QmxvY2sodCxyKX19KSxyfSgpLHQucGFkLkFuc2lYOTIzPXtwYWQ6ZnVuY3Rpb24odCxyKXt2YXIgZT10LnNpZ0J5dGVzLGk9NCpyLG49aS1lJWksbz1lK24tMTt0LmNsYW1wKCksdC53b3Jkc1tvPj4+Ml18PW48PDI0LW8lNCo4LHQuc2lnQnl0ZXMrPW59LHVucGFkOmZ1bmN0aW9uKHQpe3ZhciByPTI1NSZ0LndvcmRzW3Quc2lnQnl0ZXMtMT4+PjJdO3Quc2lnQnl0ZXMtPXJ9fSx0LnBhZC5Jc28xMDEyNj17cGFkOmZ1bmN0aW9uKHIsZSl7dmFyIGk9NCplLG49aS1yLnNpZ0J5dGVzJWk7ci5jb25jYXQodC5saWIuV29yZEFycmF5LnJhbmRvbShuLTEpKS5jb25jYXQodC5saWIuV29yZEFycmF5LmNyZWF0ZShbbjw8MjRdLDEpKX0sdW5wYWQ6ZnVuY3Rpb24odCl7dmFyIHI9MjU1JnQud29yZHNbdC5zaWdCeXRlcy0xPj4+Ml07dC5zaWdCeXRlcy09cn19LHQucGFkLklzbzk3OTcxPXtwYWQ6ZnVuY3Rpb24ocixlKXtyLmNvbmNhdCh0LmxpYi5Xb3JkQXJyYXkuY3JlYXRlKFsyMTQ3NDgzNjQ4XSwxKSksdC5wYWQuWmVyb1BhZGRpbmcucGFkKHIsZSl9LHVucGFkOmZ1bmN0aW9uKHIpe3QucGFkLlplcm9QYWRkaW5nLnVucGFkKHIpLHIuc2lnQnl0ZXMtLX19LHQubW9kZS5PRkI9ZnVuY3Rpb24oKXt2YXIgcj10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksZT1yLkVuY3J5cHRvcj1yLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fY2lwaGVyLGk9ZS5ibG9ja1NpemUsbj10aGlzLl9pdixvPXRoaXMuX2tleXN0cmVhbTtuJiYobz10aGlzLl9rZXlzdHJlYW09bi5zbGljZSgwKSx0aGlzLl9pdj12b2lkIDApLGUuZW5jcnlwdEJsb2NrKG8sMCk7Zm9yKHZhciBzPTA7czxpO3MrKyl0W3Irc11ePW9bc119fSk7cmV0dXJuIHIuRGVjcnlwdG9yPWUscn0oKSx0LnBhZC5Ob1BhZGRpbmc9e3BhZDpmdW5jdGlvbigpe30sdW5wYWQ6ZnVuY3Rpb24oKXt9fSxmdW5jdGlvbihyKXt2YXIgZT10LGk9ZS5saWIsbj1pLkNpcGhlclBhcmFtcyxvPWUuZW5jLHM9by5IZXgsYT1lLmZvcm1hdDthLkhleD17c3RyaW5naWZ5OmZ1bmN0aW9uKHQpe3JldHVybiB0LmNpcGhlcnRleHQudG9TdHJpbmcocyl9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciByPXMucGFyc2UodCk7cmV0dXJuIG4uY3JlYXRlKHtjaXBoZXJ0ZXh0OnJ9KX19fSgpLGZ1bmN0aW9uKCl7dmFyIHI9dCxlPXIubGliLGk9ZS5CbG9ja0NpcGhlcixuPXIuYWxnbyxvPVtdLHM9W10sYT1bXSxjPVtdLGg9W10sbD1bXSxmPVtdLHU9W10sZD1bXSx2PVtdOyFmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxyPTA7cjwyNTY7cisrKXI8MTI4P3Rbcl09cjw8MTp0W3JdPXI8PDFeMjgzO2Zvcih2YXIgZT0wLGk9MCxyPTA7cjwyNTY7cisrKXt2YXIgbj1pXmk8PDFeaTw8Ml5pPDwzXmk8PDQ7bj1uPj4+OF4yNTUmbl45OSxvW2VdPW4sc1tuXT1lO3ZhciBwPXRbZV0sXz10W3BdLHk9dFtfXSxnPTI1Nyp0W25dXjE2ODQzMDA4Km47YVtlXT1nPDwyNHxnPj4+OCxjW2VdPWc8PDE2fGc+Pj4xNixoW2VdPWc8PDh8Zz4+PjI0LGxbZV09Zzt2YXIgZz0xNjg0MzAwOSp5XjY1NTM3Kl9eMjU3KnBeMTY4NDMwMDgqZTtmW25dPWc8PDI0fGc+Pj44LHVbbl09Zzw8MTZ8Zz4+PjE2LGRbbl09Zzw8OHxnPj4+MjQsdltuXT1nLGU/KGU9cF50W3RbdFt5XnBdXV0saV49dFt0W2ldXSk6ZT1pPTF9fSgpO3ZhciBwPVswLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0XSxfPW4uQUVTPWkuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2lmKCF0aGlzLl9uUm91bmRzfHx0aGlzLl9rZXlQcmlvclJlc2V0IT09dGhpcy5fa2V5KXtmb3IodmFyIHQ9dGhpcy5fa2V5UHJpb3JSZXNldD10aGlzLl9rZXkscj10LndvcmRzLGU9dC5zaWdCeXRlcy80LGk9dGhpcy5fblJvdW5kcz1lKzYsbj00KihpKzEpLHM9dGhpcy5fa2V5U2NoZWR1bGU9W10sYT0wO2E8bjthKyspaWYoYTxlKXNbYV09clthXTtlbHNle3ZhciBjPXNbYS0xXTthJWU/ZT42JiZhJWU9PTQmJihjPW9bYz4+PjI0XTw8MjR8b1tjPj4+MTYmMjU1XTw8MTZ8b1tjPj4+OCYyNTVdPDw4fG9bMjU1JmNdKTooYz1jPDw4fGM+Pj4yNCxjPW9bYz4+PjI0XTw8MjR8b1tjPj4+MTYmMjU1XTw8MTZ8b1tjPj4+OCYyNTVdPDw4fG9bMjU1JmNdLGNePXBbYS9lfDBdPDwyNCksc1thXT1zW2EtZV1eY31mb3IodmFyIGg9dGhpcy5faW52S2V5U2NoZWR1bGU9W10sbD0wO2w8bjtsKyspe3ZhciBhPW4tbDtpZihsJTQpdmFyIGM9c1thXTtlbHNlIHZhciBjPXNbYS00XTtsPDR8fGE8PTQ/aFtsXT1jOmhbbF09ZltvW2M+Pj4yNF1dXnVbb1tjPj4+MTYmMjU1XV1eZFtvW2M+Pj44JjI1NV1dXnZbb1syNTUmY11dfX19LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2RvQ3J5cHRCbG9jayh0LHIsdGhpcy5fa2V5U2NoZWR1bGUsYSxjLGgsbCxvKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGU9dFtyKzFdO3RbcisxXT10W3IrM10sdFtyKzNdPWUsdGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9pbnZLZXlTY2hlZHVsZSxmLHUsZCx2LHMpO3ZhciBlPXRbcisxXTt0W3IrMV09dFtyKzNdLHRbciszXT1lfSxfZG9DcnlwdEJsb2NrOmZ1bmN0aW9uKHQscixlLGksbixvLHMsYSl7Zm9yKHZhciBjPXRoaXMuX25Sb3VuZHMsaD10W3JdXmVbMF0sbD10W3IrMV1eZVsxXSxmPXRbcisyXV5lWzJdLHU9dFtyKzNdXmVbM10sZD00LHY9MTt2PGM7disrKXt2YXIgcD1pW2g+Pj4yNF1ebltsPj4+MTYmMjU1XV5vW2Y+Pj44JjI1NV1ec1syNTUmdV1eZVtkKytdLF89aVtsPj4+MjRdXm5bZj4+PjE2JjI1NV1eb1t1Pj4+OCYyNTVdXnNbMjU1JmhdXmVbZCsrXSx5PWlbZj4+PjI0XV5uW3U+Pj4xNiYyNTVdXm9baD4+PjgmMjU1XV5zWzI1NSZsXV5lW2QrK10sZz1pW3U+Pj4yNF1ebltoPj4+MTYmMjU1XV5vW2w+Pj44JjI1NV1ec1syNTUmZl1eZVtkKytdO2g9cCxsPV8sZj15LHU9Z312YXIgcD0oYVtoPj4+MjRdPDwyNHxhW2w+Pj4xNiYyNTVdPDwxNnxhW2Y+Pj44JjI1NV08PDh8YVsyNTUmdV0pXmVbZCsrXSxfPShhW2w+Pj4yNF08PDI0fGFbZj4+PjE2JjI1NV08PDE2fGFbdT4+PjgmMjU1XTw8OHxhWzI1NSZoXSleZVtkKytdLHk9KGFbZj4+PjI0XTw8MjR8YVt1Pj4+MTYmMjU1XTw8MTZ8YVtoPj4+OCYyNTVdPDw4fGFbMjU1JmxdKV5lW2QrK10sZz0oYVt1Pj4+MjRdPDwyNHxhW2g+Pj4xNiYyNTVdPDwxNnxhW2w+Pj44JjI1NV08PDh8YVsyNTUmZl0pXmVbZCsrXTt0W3JdPXAsdFtyKzFdPV8sdFtyKzJdPXksdFtyKzNdPWd9LGtleVNpemU6OH0pO3IuQUVTPWkuX2NyZWF0ZUhlbHBlcihfKX0oKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIodCxyKXt2YXIgZT0odGhpcy5fbEJsb2NrPj4+dF50aGlzLl9yQmxvY2spJnI7dGhpcy5fckJsb2NrXj1lLHRoaXMuX2xCbG9ja149ZTw8dH1mdW5jdGlvbiBlKHQscil7dmFyIGU9KHRoaXMuX3JCbG9jaz4+PnRedGhpcy5fbEJsb2NrKSZyO3RoaXMuX2xCbG9ja149ZSx0aGlzLl9yQmxvY2tePWU8PHQ7XG59dmFyIGk9dCxuPWkubGliLG89bi5Xb3JkQXJyYXkscz1uLkJsb2NrQ2lwaGVyLGE9aS5hbGdvLGM9WzU3LDQ5LDQxLDMzLDI1LDE3LDksMSw1OCw1MCw0MiwzNCwyNiwxOCwxMCwyLDU5LDUxLDQzLDM1LDI3LDE5LDExLDMsNjAsNTIsNDQsMzYsNjMsNTUsNDcsMzksMzEsMjMsMTUsNyw2Miw1NCw0NiwzOCwzMCwyMiwxNCw2LDYxLDUzLDQ1LDM3LDI5LDIxLDEzLDUsMjgsMjAsMTIsNF0saD1bMTQsMTcsMTEsMjQsMSw1LDMsMjgsMTUsNiwyMSwxMCwyMywxOSwxMiw0LDI2LDgsMTYsNywyNywyMCwxMywyLDQxLDUyLDMxLDM3LDQ3LDU1LDMwLDQwLDUxLDQ1LDMzLDQ4LDQ0LDQ5LDM5LDU2LDM0LDUzLDQ2LDQyLDUwLDM2LDI5LDMyXSxsPVsxLDIsNCw2LDgsMTAsMTIsMTQsMTUsMTcsMTksMjEsMjMsMjUsMjcsMjhdLGY9W3swOjg0MjE4ODgsMjY4NDM1NDU2OjMyNzY4LDUzNjg3MDkxMjo4NDIxMzc4LDgwNTMwNjM2ODoyLDEwNzM3NDE4MjQ6NTEyLDEzNDIxNzcyODA6ODQyMTg5MCwxNjEwNjEyNzM2OjgzODkxMjIsMTg3OTA0ODE5Mjo4Mzg4NjA4LDIxNDc0ODM2NDg6NTE0LDI0MTU5MTkxMDQ6ODM4OTEyMCwyNjg0MzU0NTYwOjMzMjgwLDI5NTI3OTAwMTY6ODQyMTM3NiwzMjIxMjI1NDcyOjMyNzcwLDM0ODk2NjA5Mjg6ODM4ODYxMCwzNzU4MDk2Mzg0OjAsNDAyNjUzMTg0MDozMzI4MiwxMzQyMTc3Mjg6MCw0MDI2NTMxODQ6ODQyMTg5MCw2NzEwODg2NDA6MzMyODIsOTM5NTI0MDk2OjMyNzY4LDEyMDc5NTk1NTI6ODQyMTg4OCwxNDc2Mzk1MDA4OjUxMiwxNzQ0ODMwNDY0Ojg0MjEzNzgsMjAxMzI2NTkyMDoyLDIyODE3MDEzNzY6ODM4OTEyMCwyNTUwMTM2ODMyOjMzMjgwLDI4MTg1NzIyODg6ODQyMTM3NiwzMDg3MDA3NzQ0OjgzODkxMjIsMzM1NTQ0MzIwMDo4Mzg4NjEwLDM2MjM4Nzg2NTY6MzI3NzAsMzg5MjMxNDExMjo1MTQsNDE2MDc0OTU2ODo4Mzg4NjA4LDE6MzI3NjgsMjY4NDM1NDU3OjIsNTM2ODcwOTEzOjg0MjE4ODgsODA1MzA2MzY5OjgzODg2MDgsMTA3Mzc0MTgyNTo4NDIxMzc4LDEzNDIxNzcyODE6MzMyODAsMTYxMDYxMjczNzo1MTIsMTg3OTA0ODE5Mzo4Mzg5MTIyLDIxNDc0ODM2NDk6ODQyMTg5MCwyNDE1OTE5MTA1Ojg0MjEzNzYsMjY4NDM1NDU2MTo4Mzg4NjEwLDI5NTI3OTAwMTc6MzMyODIsMzIyMTIyNTQ3Mzo1MTQsMzQ4OTY2MDkyOTo4Mzg5MTIwLDM3NTgwOTYzODU6MzI3NzAsNDAyNjUzMTg0MTowLDEzNDIxNzcyOTo4NDIxODkwLDQwMjY1MzE4NTo4NDIxMzc2LDY3MTA4ODY0MTo4Mzg4NjA4LDkzOTUyNDA5Nzo1MTIsMTIwNzk1OTU1MzozMjc2OCwxNDc2Mzk1MDA5OjgzODg2MTAsMTc0NDgzMDQ2NToyLDIwMTMyNjU5MjE6MzMyODIsMjI4MTcwMTM3NzozMjc3MCwyNTUwMTM2ODMzOjgzODkxMjIsMjgxODU3MjI4OTo1MTQsMzA4NzAwNzc0NTo4NDIxODg4LDMzNTU0NDMyMDE6ODM4OTEyMCwzNjIzODc4NjU3OjAsMzg5MjMxNDExMzozMzI4MCw0MTYwNzQ5NTY5Ojg0MjEzNzh9LHswOjEwNzQyODI1MTIsMTY3NzcyMTY6MTYzODQsMzM1NTQ0MzI6NTI0Mjg4LDUwMzMxNjQ4OjEwNzQyNjYxMjgsNjcxMDg4NjQ6MTA3Mzc0MTg0MCw4Mzg4NjA4MDoxMDc0MjgyNDk2LDEwMDY2MzI5NjoxMDczNzU4MjA4LDExNzQ0MDUxMjoxNiwxMzQyMTc3Mjg6NTQwNjcyLDE1MDk5NDk0NDoxMDczNzU4MjI0LDE2Nzc3MjE2MDoxMDczNzQxODI0LDE4NDU0OTM3Njo1NDA2ODgsMjAxMzI2NTkyOjUyNDMwNCwyMTgxMDM4MDg6MCwyMzQ4ODEwMjQ6MTY0MDAsMjUxNjU4MjQwOjEwNzQyNjYxMTIsODM4ODYwODoxMDczNzU4MjA4LDI1MTY1ODI0OjU0MDY4OCw0MTk0MzA0MDoxNiw1ODcyMDI1NjoxMDczNzU4MjI0LDc1NDk3NDcyOjEwNzQyODI1MTIsOTIyNzQ2ODg6MTA3Mzc0MTgyNCwxMDkwNTE5MDQ6NTI0Mjg4LDEyNTgyOTEyMDoxMDc0MjY2MTI4LDE0MjYwNjMzNjo1MjQzMDQsMTU5MzgzNTUyOjAsMTc2MTYwNzY4OjE2Mzg0LDE5MjkzNzk4NDoxMDc0MjY2MTEyLDIwOTcxNTIwMDoxMDczNzQxODQwLDIyNjQ5MjQxNjo1NDA2NzIsMjQzMjY5NjMyOjEwNzQyODI0OTYsMjYwMDQ2ODQ4OjE2NDAwLDI2ODQzNTQ1NjowLDI4NTIxMjY3MjoxMDc0MjY2MTI4LDMwMTk4OTg4ODoxMDczNzU4MjI0LDMxODc2NzEwNDoxMDc0MjgyNDk2LDMzNTU0NDMyMDoxMDc0MjY2MTEyLDM1MjMyMTUzNjoxNiwzNjkwOTg3NTI6NTQwNjg4LDM4NTg3NTk2ODoxNjM4NCw0MDI2NTMxODQ6MTY0MDAsNDE5NDMwNDAwOjUyNDI4OCw0MzYyMDc2MTY6NTI0MzA0LDQ1Mjk4NDgzMjoxMDczNzQxODQwLDQ2OTc2MjA0ODo1NDA2NzIsNDg2NTM5MjY0OjEwNzM3NTgyMDgsNTAzMzE2NDgwOjEwNzM3NDE4MjQsNTIwMDkzNjk2OjEwNzQyODI1MTIsMjc2ODI0MDY0OjU0MDY4OCwyOTM2MDEyODA6NTI0Mjg4LDMxMDM3ODQ5NjoxMDc0MjY2MTEyLDMyNzE1NTcxMjoxNjM4NCwzNDM5MzI5Mjg6MTA3Mzc1ODIwOCwzNjA3MTAxNDQ6MTA3NDI4MjUxMiwzNzc0ODczNjA6MTYsMzk0MjY0NTc2OjEwNzM3NDE4MjQsNDExMDQxNzkyOjEwNzQyODI0OTYsNDI3ODE5MDA4OjEwNzM3NDE4NDAsNDQ0NTk2MjI0OjEwNzM3NTgyMjQsNDYxMzczNDQwOjUyNDMwNCw0NzgxNTA2NTY6MCw0OTQ5Mjc4NzI6MTY0MDAsNTExNzA1MDg4OjEwNzQyNjYxMjgsNTI4NDgyMzA0OjU0MDY3Mn0sezA6MjYwLDEwNDg1NzY6MCwyMDk3MTUyOjY3MTA5MTIwLDMxNDU3Mjg6NjU3OTYsNDE5NDMwNDo2NTU0MCw1MjQyODgwOjY3MTA4ODY4LDYyOTE0NTY6NjcxNzQ2NjAsNzM0MDAzMjo2NzE3NDQwMCw4Mzg4NjA4OjY3MTA4ODY0LDk0MzcxODQ6NjcxNzQ2NTYsMTA0ODU3NjA6NjU3OTIsMTE1MzQzMzY6NjcxNzQ0MDQsMTI1ODI5MTI6NjcxMDkxMjQsMTM2MzE0ODg6NjU1MzYsMTQ2ODAwNjQ6NCwxNTcyODY0MDoyNTYsNTI0Mjg4OjY3MTc0NjU2LDE1NzI4NjQ6NjcxNzQ0MDQsMjYyMTQ0MDowLDM2NzAwMTY6NjcxMDkxMjAsNDcxODU5Mjo2NzEwODg2OCw1NzY3MTY4OjY1NTM2LDY4MTU3NDQ6NjU1NDAsNzg2NDMyMDoyNjAsODkxMjg5Njo0LDk5NjE0NzI6MjU2LDExMDEwMDQ4OjY3MTc0NDAwLDEyMDU4NjI0OjY1Nzk2LDEzMTA3MjAwOjY1NzkyLDE0MTU1Nzc2OjY3MTA5MTI0LDE1MjA0MzUyOjY3MTc0NjYwLDE2MjUyOTI4OjY3MTA4ODY0LDE2Nzc3MjE2OjY3MTc0NjU2LDE3ODI1NzkyOjY1NTQwLDE4ODc0MzY4OjY1NTM2LDE5OTIyOTQ0OjY3MTA5MTIwLDIwOTcxNTIwOjI1NiwyMjAyMDA5Njo2NzE3NDY2MCwyMzA2ODY3Mjo2NzEwODg2OCwyNDExNzI0ODowLDI1MTY1ODI0OjY3MTA5MTI0LDI2MjE0NDAwOjY3MTA4ODY0LDI3MjYyOTc2OjQsMjgzMTE1NTI6NjU3OTIsMjkzNjAxMjg6NjcxNzQ0MDAsMzA0MDg3MDQ6MjYwLDMxNDU3MjgwOjY1Nzk2LDMyNTA1ODU2OjY3MTc0NDA0LDE3MzAxNTA0OjY3MTA4ODY0LDE4MzUwMDgwOjI2MCwxOTM5ODY1Njo2NzE3NDY1NiwyMDQ0NzIzMjowLDIxNDk1ODA4OjY1NTQwLDIyNTQ0Mzg0OjY3MTA5MTIwLDIzNTkyOTYwOjI1NiwyNDY0MTUzNjo2NzE3NDQwNCwyNTY5MDExMjo2NTUzNiwyNjczODY4ODo2NzE3NDY2MCwyNzc4NzI2NDo2NTc5NiwyODgzNTg0MDo2NzEwODg2OCwyOTg4NDQxNjo2NzEwOTEyNCwzMDkzMjk5Mjo2NzE3NDQwMCwzMTk4MTU2ODo0LDMzMDMwMTQ0OjY1NzkyfSx7MDoyMTUxNjgyMDQ4LDY1NTM2OjIxNDc0ODc4MDgsMTMxMDcyOjQxOTg0NjQsMTk2NjA4OjIxNTE2Nzc5NTIsMjYyMTQ0OjAsMzI3NjgwOjQxOTg0MDAsMzkzMjE2OjIxNDc0ODM3MTIsNDU4NzUyOjQxOTQzNjgsNTI0Mjg4OjIxNDc0ODM2NDgsNTg5ODI0OjQxOTQzMDQsNjU1MzYwOjY0LDcyMDg5NjoyMTQ3NDg3NzQ0LDc4NjQzMjoyMTUxNjc4MDE2LDg1MTk2ODo0MTYwLDkxNzUwNDo0MDk2LDk4MzA0MDoyMTUxNjgyMTEyLDMyNzY4OjIxNDc0ODc4MDgsOTgzMDQ6NjQsMTYzODQwOjIxNTE2NzgwMTYsMjI5Mzc2OjIxNDc0ODc3NDQsMjk0OTEyOjQxOTg0MDAsMzYwNDQ4OjIxNTE2ODIxMTIsNDI1OTg0OjAsNDkxNTIwOjIxNTE2Nzc5NTIsNTU3MDU2OjQwOTYsNjIyNTkyOjIxNTE2ODIwNDgsNjg4MTI4OjQxOTQzMDQsNzUzNjY0OjQxNjAsODE5MjAwOjIxNDc0ODM2NDgsODg0NzM2OjQxOTQzNjgsOTUwMjcyOjQxOTg0NjQsMTAxNTgwODoyMTQ3NDgzNzEyLDEwNDg1NzY6NDE5NDM2OCwxMTE0MTEyOjQxOTg0MDAsMTE3OTY0ODoyMTQ3NDgzNzEyLDEyNDUxODQ6MCwxMzEwNzIwOjQxNjAsMTM3NjI1NjoyMTUxNjc4MDE2LDE0NDE3OTI6MjE1MTY4MjA0OCwxNTA3MzI4OjIxNDc0ODc4MDgsMTU3Mjg2NDoyMTUxNjgyMTEyLDE2Mzg0MDA6MjE0NzQ4MzY0OCwxNzAzOTM2OjIxNTE2Nzc5NTIsMTc2OTQ3Mjo0MTk4NDY0LDE4MzUwMDg6MjE0NzQ4Nzc0NCwxOTAwNTQ0OjQxOTQzMDQsMTk2NjA4MDo2NCwyMDMxNjE2OjQwOTYsMTA4MTM0NDoyMTUxNjc3OTUyLDExNDY4ODA6MjE1MTY4MjExMiwxMjEyNDE2OjAsMTI3Nzk1Mjo0MTk4NDAwLDEzNDM0ODg6NDE5NDM2OCwxNDA5MDI0OjIxNDc0ODM2NDgsMTQ3NDU2MDoyMTQ3NDg3ODA4LDE1NDAwOTY6NjQsMTYwNTYzMjoyMTQ3NDgzNzEyLDE2NzExNjg6NDA5NiwxNzM2NzA0OjIxNDc0ODc3NDQsMTgwMjI0MDoyMTUxNjc4MDE2LDE4Njc3NzY6NDE2MCwxOTMzMzEyOjIxNTE2ODIwNDgsMTk5ODg0ODo0MTk0MzA0LDIwNjQzODQ6NDE5ODQ2NH0sezA6MTI4LDQwOTY6MTcwMzkzNjAsODE5MjoyNjIxNDQsMTIyODg6NTM2ODcwOTEyLDE2Mzg0OjUzNzEzMzE4NCwyMDQ4MDoxNjc3NzM0NCwyNDU3Njo1NTM2NDgyNTYsMjg2NzI6MjYyMjcyLDMyNzY4OjE2Nzc3MjE2LDM2ODY0OjUzNzEzMzA1Niw0MDk2MDo1MzY4NzEwNDAsNDUwNTY6NTUzOTEwNDAwLDQ5MTUyOjU1MzkxMDI3Miw1MzI0ODowLDU3MzQ0OjE3MDM5NDg4LDYxNDQwOjU1MzY0ODEyOCwyMDQ4OjE3MDM5NDg4LDYxNDQ6NTUzNjQ4MjU2LDEwMjQwOjEyOCwxNDMzNjoxNzAzOTM2MCwxODQzMjoyNjIxNDQsMjI1Mjg6NTM3MTMzMTg0LDI2NjI0OjU1MzkxMDI3MiwzMDcyMDo1MzY4NzA5MTIsMzQ4MTY6NTM3MTMzMDU2LDM4OTEyOjAsNDMwMDg6NTUzOTEwNDAwLDQ3MTA0OjE2Nzc3MzQ0LDUxMjAwOjUzNjg3MTA0MCw1NTI5Njo1NTM2NDgxMjgsNTkzOTI6MTY3NzcyMTYsNjM0ODg6MjYyMjcyLDY1NTM2OjI2MjE0NCw2OTYzMjoxMjgsNzM3Mjg6NTM2ODcwOTEyLDc3ODI0OjU1MzY0ODI1Niw4MTkyMDoxNjc3NzM0NCw4NjAxNjo1NTM5MTAyNzIsOTAxMTI6NTM3MTMzMTg0LDk0MjA4OjE2Nzc3MjE2LDk4MzA0OjU1MzkxMDQwMCwxMDI0MDA6NTUzNjQ4MTI4LDEwNjQ5NjoxNzAzOTM2MCwxMTA1OTI6NTM3MTMzMDU2LDExNDY4ODoyNjIyNzIsMTE4Nzg0OjUzNjg3MTA0MCwxMjI4ODA6MCwxMjY5NzY6MTcwMzk0ODgsNjc1ODQ6NTUzNjQ4MjU2LDcxNjgwOjE2Nzc3MjE2LDc1Nzc2OjE3MDM5MzYwLDc5ODcyOjUzNzEzMzE4NCw4Mzk2ODo1MzY4NzA5MTIsODgwNjQ6MTcwMzk0ODgsOTIxNjA6MTI4LDk2MjU2OjU1MzkxMDI3MiwxMDAzNTI6MjYyMjcyLDEwNDQ0ODo1NTM5MTA0MDAsMTA4NTQ0OjAsMTEyNjQwOjU1MzY0ODEyOCwxMTY3MzY6MTY3NzczNDQsMTIwODMyOjI2MjE0NCwxMjQ5Mjg6NTM3MTMzMDU2LDEyOTAyNDo1MzY4NzEwNDB9LHswOjI2ODQzNTQ2NCwyNTY6ODE5Miw1MTI6MjcwNTMyNjA4LDc2ODoyNzA1NDA4MDgsMTAyNDoyNjg0NDM2NDgsMTI4MDoyMDk3MTUyLDE1MzY6MjA5NzE2MCwxNzkyOjI2ODQzNTQ1NiwyMDQ4OjAsMjMwNDoyNjg0NDM2NTYsMjU2MDoyMTA1MzQ0LDI4MTY6OCwzMDcyOjI3MDUzMjYxNiwzMzI4OjIxMDUzNTIsMzU4NDo4MjAwLDM4NDA6MjcwNTQwODAwLDEyODoyNzA1MzI2MDgsMzg0OjI3MDU0MDgwOCw2NDA6OCw4OTY6MjA5NzE1MiwxMTUyOjIxMDUzNTIsMTQwODoyNjg0MzU0NjQsMTY2NDoyNjg0NDM2NDgsMTkyMDo4MjAwLDIxNzY6MjA5NzE2MCwyNDMyOjgxOTIsMjY4ODoyNjg0NDM2NTYsMjk0NDoyNzA1MzI2MTYsMzIwMDowLDM0NTY6MjcwNTQwODAwLDM3MTI6MjEwNTM0NCwzOTY4OjI2ODQzNTQ1Niw0MDk2OjI2ODQ0MzY0OCw0MzUyOjI3MDUzMjYxNiw0NjA4OjI3MDU0MDgwOCw0ODY0OjgyMDAsNTEyMDoyMDk3MTUyLDUzNzY6MjY4NDM1NDU2LDU2MzI6MjY4NDM1NDY0LDU4ODg6MjEwNTM0NCw2MTQ0OjIxMDUzNTIsNjQwMDowLDY2NTY6OCw2OTEyOjI3MDUzMjYwOCw3MTY4OjgxOTIsNzQyNDoyNjg0NDM2NTYsNzY4MDoyNzA1NDA4MDAsNzkzNjoyMDk3MTYwLDQyMjQ6OCw0NDgwOjIxMDUzNDQsNDczNjoyMDk3MTUyLDQ5OTI6MjY4NDM1NDY0LDUyNDg6MjY4NDQzNjQ4LDU1MDQ6ODIwMCw1NzYwOjI3MDU0MDgwOCw2MDE2OjI3MDUzMjYwOCw2MjcyOjI3MDU0MDgwMCw2NTI4OjI3MDUzMjYxNiw2Nzg0OjgxOTIsNzA0MDoyMTA1MzUyLDcyOTY6MjA5NzE2MCw3NTUyOjAsNzgwODoyNjg0MzU0NTYsODA2NDoyNjg0NDM2NTZ9LHswOjEwNDg1NzYsMTY6MzM1NTU0NTcsMzI6MTAyNCw0ODoxMDQ5NjAxLDY0OjM0NjA0MDMzLDgwOjAsOTY6MSwxMTI6MzQ2MDMwMDksMTI4OjMzNTU1NDU2LDE0NDoxMDQ4NTc3LDE2MDozMzU1NDQzMywxNzY6MzQ2MDQwMzIsMTkyOjM0NjAzMDA4LDIwODoxMDI1LDIyNDoxMDQ5NjAwLDI0MDozMzU1NDQzMiw4OjM0NjAzMDA5LDI0OjAsNDA6MzM1NTU0NTcsNTY6MzQ2MDQwMzIsNzI6MTA0ODU3Niw4ODozMzU1NDQzMywxMDQ6MzM1NTQ0MzIsMTIwOjEwMjUsMTM2OjEwNDk2MDEsMTUyOjMzNTU1NDU2LDE2ODozNDYwMzAwOCwxODQ6MTA0ODU3NywyMDA6MTAyNCwyMTY6MzQ2MDQwMzMsMjMyOjEsMjQ4OjEwNDk2MDAsMjU2OjMzNTU0NDMyLDI3MjoxMDQ4NTc2LDI4ODozMzU1NTQ1NywzMDQ6MzQ2MDMwMDksMzIwOjEwNDg1NzcsMzM2OjMzNTU1NDU2LDM1MjozNDYwNDAzMiwzNjg6MTA0OTYwMSwzODQ6MTAyNSw0MDA6MzQ2MDQwMzMsNDE2OjEwNDk2MDAsNDMyOjEsNDQ4OjAsNDY0OjM0NjAzMDA4LDQ4MDozMzU1NDQzMyw0OTY6MTAyNCwyNjQ6MTA0OTYwMCwyODA6MzM1NTU0NTcsMjk2OjM0NjAzMDA5LDMxMjoxLDMyODozMzU1NDQzMiwzNDQ6MTA0ODU3NiwzNjA6MTAyNSwzNzY6MzQ2MDQwMzIsMzkyOjMzNTU0NDMzLDQwODozNDYwMzAwOCw0MjQ6MCw0NDA6MzQ2MDQwMzMsNDU2OjEwNDk2MDEsNDcyOjEwMjQsNDg4OjMzNTU1NDU2LDUwNDoxMDQ4NTc3fSx7MDoxMzQyMTk4MDgsMToxMzEwNzIsMjoxMzQyMTc3MjgsMzozMiw0OjEzMTEwNCw1OjEzNDM1MDg4MCw2OjEzNDM1MDg0OCw3OjIwNDgsODoxMzQzNDg4MDAsOToxMzQyMTk3NzYsMTA6MTMzMTIwLDExOjEzNDM0ODgzMiwxMjoyMDgwLDEzOjAsMTQ6MTM0MjE3NzYwLDE1OjEzMzE1MiwyMTQ3NDgzNjQ4OjIwNDgsMjE0NzQ4MzY0OToxMzQzNTA4ODAsMjE0NzQ4MzY1MDoxMzQyMTk4MDgsMjE0NzQ4MzY1MToxMzQyMTc3MjgsMjE0NzQ4MzY1MjoxMzQzNDg4MDAsMjE0NzQ4MzY1MzoxMzMxMjAsMjE0NzQ4MzY1NDoxMzMxNTIsMjE0NzQ4MzY1NTozMiwyMTQ3NDgzNjU2OjEzNDIxNzc2MCwyMTQ3NDgzNjU3OjIwODAsMjE0NzQ4MzY1ODoxMzExMDQsMjE0NzQ4MzY1OToxMzQzNTA4NDgsMjE0NzQ4MzY2MDowLDIxNDc0ODM2NjE6MTM0MzQ4ODMyLDIxNDc0ODM2NjI6MTM0MjE5Nzc2LDIxNDc0ODM2NjM6MTMxMDcyLDE2OjEzMzE1MiwxNzoxMzQzNTA4NDgsMTg6MzIsMTk6MjA0OCwyMDoxMzQyMTk3NzYsMjE6MTM0MjE3NzYwLDIyOjEzNDM0ODgzMiwyMzoxMzEwNzIsMjQ6MCwyNToxMzExMDQsMjY6MTM0MzQ4ODAwLDI3OjEzNDIxOTgwOCwyODoxMzQzNTA4ODAsMjk6MTMzMTIwLDMwOjIwODAsMzE6MTM0MjE3NzI4LDIxNDc0ODM2NjQ6MTMxMDcyLDIxNDc0ODM2NjU6MjA0OCwyMTQ3NDgzNjY2OjEzNDM0ODgzMiwyMTQ3NDgzNjY3OjEzMzE1MiwyMTQ3NDgzNjY4OjMyLDIxNDc0ODM2Njk6MTM0MzQ4ODAwLDIxNDc0ODM2NzA6MTM0MjE3NzI4LDIxNDc0ODM2NzE6MTM0MjE5ODA4LDIxNDc0ODM2NzI6MTM0MzUwODgwLDIxNDc0ODM2NzM6MTM0MjE3NzYwLDIxNDc0ODM2NzQ6MTM0MjE5Nzc2LDIxNDc0ODM2NzU6MCwyMTQ3NDgzNjc2OjEzMzEyMCwyMTQ3NDgzNjc3OjIwODAsMjE0NzQ4MzY3ODoxMzExMDQsMjE0NzQ4MzY3OToxMzQzNTA4NDh9XSx1PVs0MTYwNzQ5NTY5LDUyODQ4MjMwNCwzMzAzMDE0NCwyMDY0Mzg0LDEyOTAyNCw4MDY0LDUwNCwyMTQ3NDgzNjc5XSxkPWEuREVTPXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkscj10LndvcmRzLGU9W10saT0wO2k8NTY7aSsrKXt2YXIgbj1jW2ldLTE7ZVtpXT1yW24+Pj41XT4+PjMxLW4lMzImMX1mb3IodmFyIG89dGhpcy5fc3ViS2V5cz1bXSxzPTA7czwxNjtzKyspe2Zvcih2YXIgYT1vW3NdPVtdLGY9bFtzXSxpPTA7aTwyNDtpKyspYVtpLzZ8MF18PWVbKGhbaV0tMStmKSUyOF08PDMxLWklNixhWzQrKGkvNnwwKV18PWVbMjgrKGhbaSsyNF0tMStmKSUyOF08PDMxLWklNjthWzBdPWFbMF08PDF8YVswXT4+PjMxO2Zvcih2YXIgaT0xO2k8NztpKyspYVtpXT1hW2ldPj4+NCooaS0xKSszO2FbN109YVs3XTw8NXxhWzddPj4+Mjd9Zm9yKHZhciB1PXRoaXMuX2ludlN1YktleXM9W10saT0wO2k8MTY7aSsrKXVbaV09b1sxNS1pXX0sZW5jcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9zdWJLZXlzKX0sZGVjcnlwdEJsb2NrOmZ1bmN0aW9uKHQscil7dGhpcy5fZG9DcnlwdEJsb2NrKHQscix0aGlzLl9pbnZTdWJLZXlzKX0sX2RvQ3J5cHRCbG9jazpmdW5jdGlvbih0LGksbil7dGhpcy5fbEJsb2NrPXRbaV0sdGhpcy5fckJsb2NrPXRbaSsxXSxyLmNhbGwodGhpcyw0LDI1MjY0NTEzNSksci5jYWxsKHRoaXMsMTYsNjU1MzUpLGUuY2FsbCh0aGlzLDIsODU4OTkzNDU5KSxlLmNhbGwodGhpcyw4LDE2NzExOTM1KSxyLmNhbGwodGhpcywxLDE0MzE2NTU3NjUpO2Zvcih2YXIgbz0wO288MTY7bysrKXtmb3IodmFyIHM9bltvXSxhPXRoaXMuX2xCbG9jayxjPXRoaXMuX3JCbG9jayxoPTAsbD0wO2w8ODtsKyspaHw9ZltsXVsoKGNec1tsXSkmdVtsXSk+Pj4wXTt0aGlzLl9sQmxvY2s9Yyx0aGlzLl9yQmxvY2s9YV5ofXZhciBkPXRoaXMuX2xCbG9jazt0aGlzLl9sQmxvY2s9dGhpcy5fckJsb2NrLHRoaXMuX3JCbG9jaz1kLHIuY2FsbCh0aGlzLDEsMTQzMTY1NTc2NSksZS5jYWxsKHRoaXMsOCwxNjcxMTkzNSksZS5jYWxsKHRoaXMsMiw4NTg5OTM0NTkpLHIuY2FsbCh0aGlzLDE2LDY1NTM1KSxyLmNhbGwodGhpcyw0LDI1MjY0NTEzNSksdFtpXT10aGlzLl9sQmxvY2ssdFtpKzFdPXRoaXMuX3JCbG9ja30sa2V5U2l6ZToyLGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7aS5ERVM9cy5fY3JlYXRlSGVscGVyKGQpO3ZhciB2PWEuVHJpcGxlREVTPXMuZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2tleSxyPXQud29yZHM7dGhpcy5fZGVzMT1kLmNyZWF0ZUVuY3J5cHRvcihvLmNyZWF0ZShyLnNsaWNlKDAsMikpKSx0aGlzLl9kZXMyPWQuY3JlYXRlRW5jcnlwdG9yKG8uY3JlYXRlKHIuc2xpY2UoMiw0KSkpLHRoaXMuX2RlczM9ZC5jcmVhdGVFbmNyeXB0b3Ioby5jcmVhdGUoci5zbGljZSg0LDYpKSl9LGVuY3J5cHRCbG9jazpmdW5jdGlvbih0LHIpe3RoaXMuX2RlczEuZW5jcnlwdEJsb2NrKHQsciksdGhpcy5fZGVzMi5kZWNyeXB0QmxvY2sodCxyKSx0aGlzLl9kZXMzLmVuY3J5cHRCbG9jayh0LHIpfSxkZWNyeXB0QmxvY2s6ZnVuY3Rpb24odCxyKXt0aGlzLl9kZXMzLmRlY3J5cHRCbG9jayh0LHIpLHRoaXMuX2RlczIuZW5jcnlwdEJsb2NrKHQsciksdGhpcy5fZGVzMS5kZWNyeXB0QmxvY2sodCxyKX0sa2V5U2l6ZTo2LGl2U2l6ZToyLGJsb2NrU2l6ZToyfSk7aS5UcmlwbGVERVM9cy5fY3JlYXRlSGVscGVyKHYpfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcigpe2Zvcih2YXIgdD10aGlzLl9TLHI9dGhpcy5faSxlPXRoaXMuX2osaT0wLG49MDtuPDQ7bisrKXtyPShyKzEpJTI1NixlPShlK3Rbcl0pJTI1Njt2YXIgbz10W3JdO3Rbcl09dFtlXSx0W2VdPW8saXw9dFsodFtyXSt0W2VdKSUyNTZdPDwyNC04Km59cmV0dXJuIHRoaXMuX2k9cix0aGlzLl9qPWUsaX12YXIgZT10LGk9ZS5saWIsbj1pLlN0cmVhbUNpcGhlcixvPWUuYWxnbyxzPW8uUkM0PW4uZXh0ZW5kKHtfZG9SZXNldDpmdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9rZXkscj10LndvcmRzLGU9dC5zaWdCeXRlcyxpPXRoaXMuX1M9W10sbj0wO248MjU2O24rKylpW25dPW47Zm9yKHZhciBuPTAsbz0wO248MjU2O24rKyl7dmFyIHM9biVlLGE9cltzPj4+Ml0+Pj4yNC1zJTQqOCYyNTU7bz0obytpW25dK2EpJTI1Njt2YXIgYz1pW25dO2lbbl09aVtvXSxpW29dPWN9dGhpcy5faT10aGlzLl9qPTB9LF9kb1Byb2Nlc3NCbG9jazpmdW5jdGlvbih0LGUpe3RbZV1ePXIuY2FsbCh0aGlzKX0sa2V5U2l6ZTo4LGl2U2l6ZTowfSk7ZS5SQzQ9bi5fY3JlYXRlSGVscGVyKHMpO3ZhciBhPW8uUkM0RHJvcD1zLmV4dGVuZCh7Y2ZnOnMuY2ZnLmV4dGVuZCh7ZHJvcDoxOTJ9KSxfZG9SZXNldDpmdW5jdGlvbigpe3MuX2RvUmVzZXQuY2FsbCh0aGlzKTtmb3IodmFyIHQ9dGhpcy5jZmcuZHJvcDt0PjA7dC0tKXIuY2FsbCh0aGlzKX19KTtlLlJDNERyb3A9bi5fY3JlYXRlSGVscGVyKGEpfSgpLHQubW9kZS5DVFJHbGFkbWFuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcih0KXtpZigyNTU9PT0odD4+MjQmMjU1KSl7dmFyIHI9dD4+MTYmMjU1LGU9dD4+OCYyNTUsaT0yNTUmdDsyNTU9PT1yPyhyPTAsMjU1PT09ZT8oZT0wLDI1NT09PWk/aT0wOisraSk6KytlKTorK3IsdD0wLHQrPXI8PDE2LHQrPWU8PDgsdCs9aX1lbHNlIHQrPTE8PDI0O3JldHVybiB0fWZ1bmN0aW9uIGUodCl7cmV0dXJuIDA9PT0odFswXT1yKHRbMF0pKSYmKHRbMV09cih0WzFdKSksdH12YXIgaT10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksbj1pLkVuY3J5cHRvcj1pLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGk9dGhpcy5fY2lwaGVyLG49aS5ibG9ja1NpemUsbz10aGlzLl9pdixzPXRoaXMuX2NvdW50ZXI7byYmKHM9dGhpcy5fY291bnRlcj1vLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCksZShzKTt2YXIgYT1zLnNsaWNlKDApO2kuZW5jcnlwdEJsb2NrKGEsMCk7Zm9yKHZhciBjPTA7YzxuO2MrKyl0W3IrY11ePWFbY119fSk7cmV0dXJuIGkuRGVjcnlwdG9yPW4saX0oKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHIoKXtmb3IodmFyIHQ9dGhpcy5fWCxyPXRoaXMuX0MsZT0wO2U8ODtlKyspYVtlXT1yW2VdO3JbMF09clswXSsxMjk1MzA3NTk3K3RoaXMuX2J8MCxyWzFdPXJbMV0rMzU0NTA1MjM3MSsoclswXT4+PjA8YVswXT4+PjA/MTowKXwwLHJbMl09clsyXSs4ODYyNjMwOTIrKHJbMV0+Pj4wPGFbMV0+Pj4wPzE6MCl8MCxyWzNdPXJbM10rMTI5NTMwNzU5NysoclsyXT4+PjA8YVsyXT4+PjA/MTowKXwwLHJbNF09cls0XSszNTQ1MDUyMzcxKyhyWzNdPj4+MDxhWzNdPj4+MD8xOjApfDAscls1XT1yWzVdKzg4NjI2MzA5Misocls0XT4+PjA8YVs0XT4+PjA/MTowKXwwLHJbNl09cls2XSsxMjk1MzA3NTk3KyhyWzVdPj4+MDxhWzVdPj4+MD8xOjApfDAscls3XT1yWzddKzM1NDUwNTIzNzErKHJbNl0+Pj4wPGFbNl0+Pj4wPzE6MCl8MCx0aGlzLl9iPXJbN10+Pj4wPGFbN10+Pj4wPzE6MDtmb3IodmFyIGU9MDtlPDg7ZSsrKXt2YXIgaT10W2VdK3JbZV0sbj02NTUzNSZpLG89aT4+PjE2LHM9KChuKm4+Pj4xNykrbipvPj4+MTUpK28qbyxoPSgoNDI5NDkwMTc2MCZpKSppfDApKygoNjU1MzUmaSkqaXwwKTtjW2VdPXNeaH10WzBdPWNbMF0rKGNbN108PDE2fGNbN10+Pj4xNikrKGNbNl08PDE2fGNbNl0+Pj4xNil8MCx0WzFdPWNbMV0rKGNbMF08PDh8Y1swXT4+PjI0KStjWzddfDAsdFsyXT1jWzJdKyhjWzFdPDwxNnxjWzFdPj4+MTYpKyhjWzBdPDwxNnxjWzBdPj4+MTYpfDAsdFszXT1jWzNdKyhjWzJdPDw4fGNbMl0+Pj4yNCkrY1sxXXwwLHRbNF09Y1s0XSsoY1szXTw8MTZ8Y1szXT4+PjE2KSsoY1syXTw8MTZ8Y1syXT4+PjE2KXwwLHRbNV09Y1s1XSsoY1s0XTw8OHxjWzRdPj4+MjQpK2NbM118MCx0WzZdPWNbNl0rKGNbNV08PDE2fGNbNV0+Pj4xNikrKGNbNF08PDE2fGNbNF0+Pj4xNil8MCx0WzddPWNbN10rKGNbNl08PDh8Y1s2XT4+PjI0KStjWzVdfDB9dmFyIGU9dCxpPWUubGliLG49aS5TdHJlYW1DaXBoZXIsbz1lLmFsZ28scz1bXSxhPVtdLGM9W10saD1vLlJhYmJpdD1uLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYsaT0wO2k8NDtpKyspdFtpXT0xNjcxMTkzNSYodFtpXTw8OHx0W2ldPj4+MjQpfDQyNzgyNTUzNjAmKHRbaV08PDI0fHRbaV0+Pj44KTt2YXIgbj10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbz10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO3RoaXMuX2I9MDtmb3IodmFyIGk9MDtpPDQ7aSsrKXIuY2FsbCh0aGlzKTtmb3IodmFyIGk9MDtpPDg7aSsrKW9baV1ePW5baSs0JjddO2lmKGUpe3ZhciBzPWUud29yZHMsYT1zWzBdLGM9c1sxXSxoPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGw9MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCksZj1oPj4+MTZ8NDI5NDkwMTc2MCZsLHU9bDw8MTZ8NjU1MzUmaDtvWzBdXj1oLG9bMV1ePWYsb1syXV49bCxvWzNdXj11LG9bNF1ePWgsb1s1XV49ZixvWzZdXj1sLG9bN11ePXU7Zm9yKHZhciBpPTA7aTw0O2krKylyLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9YO3IuY2FsbCh0aGlzKSxzWzBdPWlbMF1eaVs1XT4+PjE2XmlbM108PDE2LHNbMV09aVsyXV5pWzddPj4+MTZeaVs1XTw8MTYsc1syXT1pWzRdXmlbMV0+Pj4xNl5pWzddPDwxNixzWzNdPWlbNl1eaVszXT4+PjE2XmlbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspc1tuXT0xNjcxMTkzNSYoc1tuXTw8OHxzW25dPj4+MjQpfDQyNzgyNTUzNjAmKHNbbl08PDI0fHNbbl0+Pj44KSx0W2Urbl1ePXNbbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZS5SYWJiaXQ9bi5fY3JlYXRlSGVscGVyKGgpfSgpLHQubW9kZS5DVFI9ZnVuY3Rpb24oKXt2YXIgcj10LmxpYi5CbG9ja0NpcGhlck1vZGUuZXh0ZW5kKCksZT1yLkVuY3J5cHRvcj1yLmV4dGVuZCh7cHJvY2Vzc0Jsb2NrOmZ1bmN0aW9uKHQscil7dmFyIGU9dGhpcy5fY2lwaGVyLGk9ZS5ibG9ja1NpemUsbj10aGlzLl9pdixvPXRoaXMuX2NvdW50ZXI7biYmKG89dGhpcy5fY291bnRlcj1uLnNsaWNlKDApLHRoaXMuX2l2PXZvaWQgMCk7dmFyIHM9by5zbGljZSgwKTtlLmVuY3J5cHRCbG9jayhzLDApLG9baS0xXT1vW2ktMV0rMXwwO2Zvcih2YXIgYT0wO2E8aTthKyspdFtyK2FdXj1zW2FdfX0pO3JldHVybiByLkRlY3J5cHRvcj1lLHJ9KCksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7Zm9yKHZhciB0PXRoaXMuX1gscj10aGlzLl9DLGU9MDtlPDg7ZSsrKWFbZV09cltlXTtyWzBdPXJbMF0rMTI5NTMwNzU5Nyt0aGlzLl9ifDAsclsxXT1yWzFdKzM1NDUwNTIzNzErKHJbMF0+Pj4wPGFbMF0+Pj4wPzE6MCl8MCxyWzJdPXJbMl0rODg2MjYzMDkyKyhyWzFdPj4+MDxhWzFdPj4+MD8xOjApfDAsclszXT1yWzNdKzEyOTUzMDc1OTcrKHJbMl0+Pj4wPGFbMl0+Pj4wPzE6MCl8MCxyWzRdPXJbNF0rMzU0NTA1MjM3MSsoclszXT4+PjA8YVszXT4+PjA/MTowKXwwLHJbNV09cls1XSs4ODYyNjMwOTIrKHJbNF0+Pj4wPGFbNF0+Pj4wPzE6MCl8MCxyWzZdPXJbNl0rMTI5NTMwNzU5Nysocls1XT4+PjA8YVs1XT4+PjA/MTowKXwwLHJbN109cls3XSszNTQ1MDUyMzcxKyhyWzZdPj4+MDxhWzZdPj4+MD8xOjApfDAsdGhpcy5fYj1yWzddPj4+MDxhWzddPj4+MD8xOjA7Zm9yKHZhciBlPTA7ZTw4O2UrKyl7dmFyIGk9dFtlXStyW2VdLG49NjU1MzUmaSxvPWk+Pj4xNixzPSgobipuPj4+MTcpK24qbz4+PjE1KStvKm8saD0oKDQyOTQ5MDE3NjAmaSkqaXwwKSsoKDY1NTM1JmkpKml8MCk7Y1tlXT1zXmh9dFswXT1jWzBdKyhjWzddPDwxNnxjWzddPj4+MTYpKyhjWzZdPDwxNnxjWzZdPj4+MTYpfDAsdFsxXT1jWzFdKyhjWzBdPDw4fGNbMF0+Pj4yNCkrY1s3XXwwLHRbMl09Y1syXSsoY1sxXTw8MTZ8Y1sxXT4+PjE2KSsoY1swXTw8MTZ8Y1swXT4+PjE2KXwwLHRbM109Y1szXSsoY1syXTw8OHxjWzJdPj4+MjQpK2NbMV18MCx0WzRdPWNbNF0rKGNbM108PDE2fGNbM10+Pj4xNikrKGNbMl08PDE2fGNbMl0+Pj4xNil8MCx0WzVdPWNbNV0rKGNbNF08PDh8Y1s0XT4+PjI0KStjWzNdfDAsdFs2XT1jWzZdKyhjWzVdPDwxNnxjWzVdPj4+MTYpKyhjWzRdPDwxNnxjWzRdPj4+MTYpfDAsdFs3XT1jWzddKyhjWzZdPDw4fGNbNl0+Pj4yNCkrY1s1XXwwfXZhciBlPXQsaT1lLmxpYixuPWkuU3RyZWFtQ2lwaGVyLG89ZS5hbGdvLHM9W10sYT1bXSxjPVtdLGg9by5SYWJiaXRMZWdhY3k9bi5leHRlbmQoe19kb1Jlc2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fa2V5LndvcmRzLGU9dGhpcy5jZmcuaXYsaT10aGlzLl9YPVt0WzBdLHRbM108PDE2fHRbMl0+Pj4xNix0WzFdLHRbMF08PDE2fHRbM10+Pj4xNix0WzJdLHRbMV08PDE2fHRbMF0+Pj4xNix0WzNdLHRbMl08PDE2fHRbMV0+Pj4xNl0sbj10aGlzLl9DPVt0WzJdPDwxNnx0WzJdPj4+MTYsNDI5NDkwMTc2MCZ0WzBdfDY1NTM1JnRbMV0sdFszXTw8MTZ8dFszXT4+PjE2LDQyOTQ5MDE3NjAmdFsxXXw2NTUzNSZ0WzJdLHRbMF08PDE2fHRbMF0+Pj4xNiw0Mjk0OTAxNzYwJnRbMl18NjU1MzUmdFszXSx0WzFdPDwxNnx0WzFdPj4+MTYsNDI5NDkwMTc2MCZ0WzNdfDY1NTM1JnRbMF1dO3RoaXMuX2I9MDtmb3IodmFyIG89MDtvPDQ7bysrKXIuY2FsbCh0aGlzKTtmb3IodmFyIG89MDtvPDg7bysrKW5bb11ePWlbbys0JjddO2lmKGUpe3ZhciBzPWUud29yZHMsYT1zWzBdLGM9c1sxXSxoPTE2NzExOTM1JihhPDw4fGE+Pj4yNCl8NDI3ODI1NTM2MCYoYTw8MjR8YT4+PjgpLGw9MTY3MTE5MzUmKGM8PDh8Yz4+PjI0KXw0Mjc4MjU1MzYwJihjPDwyNHxjPj4+OCksZj1oPj4+MTZ8NDI5NDkwMTc2MCZsLHU9bDw8MTZ8NjU1MzUmaDtuWzBdXj1oLG5bMV1ePWYsblsyXV49bCxuWzNdXj11LG5bNF1ePWgsbls1XV49ZixuWzZdXj1sLG5bN11ePXU7Zm9yKHZhciBvPTA7bzw0O28rKylyLmNhbGwodGhpcyl9fSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24odCxlKXt2YXIgaT10aGlzLl9YO3IuY2FsbCh0aGlzKSxzWzBdPWlbMF1eaVs1XT4+PjE2XmlbM108PDE2LHNbMV09aVsyXV5pWzddPj4+MTZeaVs1XTw8MTYsc1syXT1pWzRdXmlbMV0+Pj4xNl5pWzddPDwxNixzWzNdPWlbNl1eaVszXT4+PjE2XmlbMV08PDE2O2Zvcih2YXIgbj0wO248NDtuKyspc1tuXT0xNjcxMTkzNSYoc1tuXTw8OHxzW25dPj4+MjQpfDQyNzgyNTUzNjAmKHNbbl08PDI0fHNbbl0+Pj44KSx0W2Urbl1ePXNbbl19LGJsb2NrU2l6ZTo0LGl2U2l6ZToyfSk7ZS5SYWJiaXRMZWdhY3k9bi5fY3JlYXRlSGVscGVyKGgpfSgpLHQucGFkLlplcm9QYWRkaW5nPXtwYWQ6ZnVuY3Rpb24odCxyKXt2YXIgZT00KnI7dC5jbGFtcCgpLHQuc2lnQnl0ZXMrPWUtKHQuc2lnQnl0ZXMlZXx8ZSl9LHVucGFkOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10LndvcmRzLGU9dC5zaWdCeXRlcy0xOyEocltlPj4+Ml0+Pj4yNC1lJTQqOCYyNTUpOyllLS07dC5zaWdCeXRlcz1lKzF9fSx0fSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1jcnlwdG8tanMubWluLmpzLm1hcCJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/GameStart/GameAppStart.js b/temp/quick-scripts/dst/assets/Script/module/GameStart/GameAppStart.js new file mode 100644 index 0000000..09a7304 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/module/GameStart/GameAppStart.js @@ -0,0 +1,121 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/GameStart/GameAppStart.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '61d4ccY2ztLMYIh8WvqPPAw', 'GameAppStart'); +// Script/module/GameStart/GameAppStart.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var GameConfig_1 = require("../Config/GameConfig"); +var HttpUtil_1 = require("../Crypto/HttpUtil"); +var AudioManager_1 = require("../Music/AudioManager"); +var Notification_1 = require("../Notification/Notification"); +var Storage_1 = require("../Storage/Storage"); +var GameTool_1 = require("../Tool/GameTool"); +window.initMgr = function () { + if (cc.fx) { + return; + } + cc.fx = {}; + //基础状态信息 + cc.fx.StateInfo = { + debugMode: true, + networkConnected: true, + networkType: 'none', + isOnForeground: true //当前是否是在前台 + }; + //应用系统信息 + //配置文件 + cc.fx.GameConfig = GameConfig_1.GameConfig; + cc.fx.HttpUtil = HttpUtil_1.default; + cc.fx.GameTool = GameTool_1.GameTool; + cc.fx.AudioManager = AudioManager_1.default; + cc.fx.Notifications = Notification_1.Notifications; + cc.fx.StorageMessage = Storage_1.StorageMessage; + cc.fx.ShareInfo = { + queryId: -1 //分享id + }; + cc.fx.Message = { + control: "10001", + startGame: "10002", + next: "10003", + changePath: "10004", + changeMap: "10005", + nextWater: "10006", + addEnd: "10007", + setData: "10008", + guideNext: "10009", + showResult: "10010", + removeTip: "10011" //执行撤回或者后退动作,移除提示 + }; + /* + * 客户端埋点分享类型 + */ + cc.fx.BurialShareType = { + Default: "default", + Invite: "invite", + DailyInviteRoomJoin: 'invite_join_room', + DailyInviteFriend: 'invite_friend', + DailyInviteGroup: 'invate_group', + DailyInviteGroupAlive: 'invate_alive', + DailyInviteGroupReward: 'invate_rewared', + DailyInviteGroupBox: 'invate_box', + DailyInviteGroupBall: 'invate_ball', + MatchResult: 'matchResult', + MatchFix5: 'MatchFix5', + MatchFix20: 'MatchFix20', + MatchFix100: 'MatchFix100', + MatchFix500: 'MatchFix500', + NewerRedEnvelope: 'newerRedEnvelope', + CoinRoomResult: 'coinRoomResult', + HighRate: "highRate", + CoinRoomWinStreak: 'coinRoomWinStreak', + CoinRoomBankruptcy1: 'coinRoomBankruptcy1', + CoinRoomBankruptcy2: 'coinRoomBankruptcy2', + CoinRoomBankruptcy3: 'coinRoomBankruptcy3', + }; + /* + * 分享到哪儿给奖励 group frined all + */ + cc.fx.ShareWhereReward = { + Group: "group", + Friend: "friend", + All: "all", + }; + //用于存储消息的ID + cc.fx.storageType = cc.Enum({ + storageTypeCustom: 1000101, + }); + //用于存储提示语 按照步骤提示 + cc.fx.tipType = cc.Enum({ + tipOne: '神农氏回到家中,开始整理今天收集来的物品。当他第一次拿出或说出一种植物时,请告诉他这是新植物。', + tipTwo: '如果他拿出或说出的植物你今天看到过,请告诉他上次是看到的;如果你听他说过,则请告诉他上次是听到的。', + tipErrNew: '这是这局游戏第一次出现{植物}', + tipErrOld: '{植物}刚才出现过呢', + tipErrHear: '上次遇到{植物}时,似乎不是听到的吧', + tipErrSee: '上次遇到{植物}时,似乎不是看到的吧', + tipErrLast: '之前确实看到过{植物},但最近一次似乎不是看到的呢', + }); +}; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXEdhbWVTdGFydFxcR2FtZUFwcFN0YXJ0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWtEO0FBQ2xELCtDQUEwQztBQUMxQyxzREFBaUQ7QUFDakQsNkRBQTZEO0FBQzdELDhDQUFvRDtBQUNwRCw2Q0FBNEM7QUFHNUMsTUFBTSxDQUFDLE9BQU8sR0FBRztJQUNiLElBQUcsRUFBRSxDQUFDLEVBQUUsRUFDUjtRQUNJLE9BQU87S0FDVjtJQUNELEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBR1gsUUFBUTtJQUNSLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHO1FBQ2QsU0FBUyxFQUFFLElBQUk7UUFDZixnQkFBZ0IsRUFBRSxJQUFJO1FBQ3RCLFdBQVcsRUFBRSxNQUFNO1FBQ25CLGNBQWMsRUFBRSxJQUFJLENBQU0sVUFBVTtLQUN2QyxDQUFDO0lBRUYsUUFBUTtJQUNSLE1BQU07SUFFTixFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsR0FBRyx1QkFBVSxDQUFDO0lBQzlCLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxHQUFHLGtCQUFRLENBQUM7SUFDMUIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEdBQUcsbUJBQVEsQ0FBQztJQUMxQixFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksR0FBRyxzQkFBWSxDQUFDO0lBQ2xDLEVBQUUsQ0FBQyxFQUFFLENBQUMsYUFBYSxHQUFHLDRCQUFhLENBQUM7SUFDcEMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEdBQUcsd0JBQWMsQ0FBQztJQUV0QyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsR0FBRztRQUNkLE9BQU8sRUFBRyxDQUFDLENBQUMsQ0FBYyxNQUFNO0tBQ25DLENBQUM7SUFFRixFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRztRQUNaLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFNBQVMsRUFBQyxPQUFPO1FBQ2pCLElBQUksRUFBRSxPQUFPO1FBQ2IsVUFBVSxFQUFFLE9BQU87UUFDbkIsU0FBUyxFQUFFLE9BQU87UUFDbEIsU0FBUyxFQUFFLE9BQU87UUFDbEIsTUFBTSxFQUFFLE9BQU87UUFDZixPQUFPLEVBQUUsT0FBTztRQUNoQixTQUFTLEVBQUUsT0FBTztRQUNsQixVQUFVLEVBQUUsT0FBTztRQUNuQixTQUFTLEVBQUUsT0FBTyxDQUFVLGlCQUFpQjtLQUNoRCxDQUFBO0lBRUQ7O01BRUU7SUFDRixFQUFFLENBQUMsRUFBRSxDQUFDLGVBQWUsR0FBRztRQUNwQixPQUFPLEVBQUcsU0FBUztRQUNuQixNQUFNLEVBQUcsUUFBUTtRQUVqQixtQkFBbUIsRUFBQyxrQkFBa0I7UUFDdEMsaUJBQWlCLEVBQUcsZUFBZTtRQUNuQyxnQkFBZ0IsRUFBRyxjQUFjO1FBQ2pDLHFCQUFxQixFQUFFLGNBQWM7UUFDckMsc0JBQXNCLEVBQUUsZ0JBQWdCO1FBQ3hDLG1CQUFtQixFQUFFLFlBQVk7UUFDakMsb0JBQW9CLEVBQUUsYUFBYTtRQUVuQyxXQUFXLEVBQUcsYUFBYTtRQUMzQixTQUFTLEVBQUUsV0FBVztRQUN0QixVQUFVLEVBQUUsWUFBWTtRQUN4QixXQUFXLEVBQUUsYUFBYTtRQUMxQixXQUFXLEVBQUUsYUFBYTtRQUMxQixnQkFBZ0IsRUFBRSxrQkFBa0I7UUFDcEMsY0FBYyxFQUFFLGdCQUFnQjtRQUNoQyxRQUFRLEVBQUcsVUFBVTtRQUNyQixpQkFBaUIsRUFBRSxtQkFBbUI7UUFDdEMsbUJBQW1CLEVBQUUscUJBQXFCO1FBQzFDLG1CQUFtQixFQUFFLHFCQUFxQjtRQUMxQyxtQkFBbUIsRUFBRSxxQkFBcUI7S0FDN0MsQ0FBQztJQUVGOztPQUVHO0lBQ0gsRUFBRSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsR0FBRztRQUNyQixLQUFLLEVBQUUsT0FBTztRQUNkLE1BQU0sRUFBRyxRQUFRO1FBQ2pCLEdBQUcsRUFBRyxLQUFLO0tBQ2QsQ0FBQztJQUVGLFdBQVc7SUFDWCxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBQzNCLGlCQUFpQixFQUFFLE9BQU87S0FDN0IsQ0FBQyxDQUFDO0lBRUEsaUJBQWlCO0lBQ2pCLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDcEIsTUFBTSxFQUFFLGlEQUFpRDtRQUN6RCxNQUFNLEVBQUUsbURBQW1EO1FBQzNELFNBQVMsRUFBRSxpQkFBaUI7UUFDNUIsU0FBUyxFQUFFLFlBQVk7UUFDdkIsVUFBVSxFQUFFLG9CQUFvQjtRQUNoQyxTQUFTLEVBQUUsb0JBQW9CO1FBQy9CLFVBQVUsRUFBRSwyQkFBMkI7S0FFMUMsQ0FBQyxDQUFDO0FBRVAsQ0FBQyxDQUFDIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2FtZUNvbmZpZyB9IGZyb20gXCIuLi9Db25maWcvR2FtZUNvbmZpZ1wiO1xyXG5pbXBvcnQgSHR0cFV0aWwgZnJvbSBcIi4uL0NyeXB0by9IdHRwVXRpbFwiO1xyXG5pbXBvcnQgQXVkaW9NYW5hZ2VyIGZyb20gXCIuLi9NdXNpYy9BdWRpb01hbmFnZXJcIjtcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9ucyB9IGZyb20gXCIuLi9Ob3RpZmljYXRpb24vTm90aWZpY2F0aW9uXCI7XHJcbmltcG9ydCB7IFN0b3JhZ2VNZXNzYWdlIH0gZnJvbSBcIi4uL1N0b3JhZ2UvU3RvcmFnZVwiO1xyXG5pbXBvcnQgeyBHYW1lVG9vbCB9IGZyb20gXCIuLi9Ub29sL0dhbWVUb29sXCI7XHJcblxyXG5cclxud2luZG93LmluaXRNZ3IgPSBmdW5jdGlvbigpIHtcclxuICAgIGlmKGNjLmZ4KVxyXG4gICAge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNjLmZ4ID0ge307XHJcblxyXG5cclxuICAgIC8v5Z+656GA54q25oCB5L+h5oGvXHJcbiAgICBjYy5meC5TdGF0ZUluZm8gPSB7XHJcbiAgICAgICAgZGVidWdNb2RlOiB0cnVlLFxyXG4gICAgICAgIG5ldHdvcmtDb25uZWN0ZWQ6IHRydWUsICAgLy/nvZHnu5znirbmgIFcclxuICAgICAgICBuZXR3b3JrVHlwZTogJ25vbmUnLCAgICAgIC8v572R57uc57G75Z6LXHJcbiAgICAgICAgaXNPbkZvcmVncm91bmQ6IHRydWUgICAgICAvL+W9k+WJjeaYr+WQpuaYr+WcqOWJjeWPsFxyXG4gICAgfTtcclxuXHJcbiAgICAvL+W6lOeUqOezu+e7n+S/oeaBr1xyXG4gICAgLy/phY3nva7mlofku7ZcclxuXHJcbiAgICBjYy5meC5HYW1lQ29uZmlnID0gR2FtZUNvbmZpZztcclxuICAgIGNjLmZ4Lkh0dHBVdGlsID0gSHR0cFV0aWw7XHJcbiAgICBjYy5meC5HYW1lVG9vbCA9IEdhbWVUb29sO1xyXG4gICAgY2MuZnguQXVkaW9NYW5hZ2VyID0gQXVkaW9NYW5hZ2VyO1xyXG4gICAgY2MuZnguTm90aWZpY2F0aW9ucyA9IE5vdGlmaWNhdGlvbnM7XHJcbiAgICBjYy5meC5TdG9yYWdlTWVzc2FnZSA9IFN0b3JhZ2VNZXNzYWdlO1xyXG5cclxuICAgIGNjLmZ4LlNoYXJlSW5mbyA9IHtcclxuICAgICAgICBxdWVyeUlkIDogLTEgICAgICAgICAgICAgIC8v5YiG5LqraWRcclxuICAgIH07XHJcblxyXG4gICAgY2MuZnguTWVzc2FnZSA9IHtcclxuICAgICAgICBjb250cm9sOiBcIjEwMDAxXCIsICAgICAgIC8v5Lyg6YCS5pON5L2c5o6n5Yi2XHJcbiAgICAgICAgc3RhcnRHYW1lOlwiMTAwMDJcIiwgICAgICAvL+S8oOmAkuW8gOWni+W7uuetkVxyXG4gICAgICAgIG5leHQ6IFwiMTAwMDNcIiAsICAgICAgICAgIC8v5Lyg6YCS5omn6KGM5LiL5LiA5Liq5qC85a2Q5rSq5rC05rWB6L+HXHJcbiAgICAgICAgY2hhbmdlUGF0aDogXCIxMDAwNFwiLCAgICAgICAvL+S8oOmAkuaTjeS9nOaOp+WItlxyXG4gICAgICAgIGNoYW5nZU1hcDogXCIxMDAwNVwiLCAgICAgICAgIC8v5pS55Y+Y6YKj5Zyw5Zu+XHJcbiAgICAgICAgbmV4dFdhdGVyOiBcIjEwMDA2XCIgLCAgICAgICAgICAvL+S8oOmAkuaJp+ihjOS4i+S4gOS4quagvOWtkOa0quawtOa1gei/h1xyXG4gICAgICAgIGFkZEVuZDogXCIxMDAwN1wiICwgICAgICAgICAgLy/mt7vliqDnu5PmnZ/ngrlcclxuICAgICAgICBzZXREYXRhOiBcIjEwMDA4XCIgLCAgICAgICAgIC8v5LiK5Lyg5YiG5pWwXHJcbiAgICAgICAgZ3VpZGVOZXh0OiBcIjEwMDA5XCIgLCAgICAgICAgLy/lvJXlr7zov5vlhaXkuIvkuIDmraVcclxuICAgICAgICBzaG93UmVzdWx0OiBcIjEwMDEwXCIsICAgICAgICAgIC8v5bGV56S65rK75rC057uT5p6cXHJcbiAgICAgICAgcmVtb3ZlVGlwOiBcIjEwMDExXCIgICAgICAgICAgLy/miafooYzmkqTlm57miJbogIXlkI7pgIDliqjkvZzvvIznp7vpmaTmj5DnpLpcclxuICAgIH1cclxuXHJcbiAgICAvKlxyXG4gICAgICAgICog5a6i5oi356uv5Z+L54K55YiG5Lqr57G75Z6LXHJcbiAgICAqL1xyXG4gICAgY2MuZnguQnVyaWFsU2hhcmVUeXBlID0ge1xyXG4gICAgICAgIERlZmF1bHQgOiBcImRlZmF1bHRcIiwgICAgICAgIC8v6buY6K6k5YiG5Lqr57G75Z6LLOWIhuS6q+WIsOe+pFxyXG4gICAgICAgIEludml0ZSA6IFwiaW52aXRlXCIsICAgICAgICAgIC8vIOmCgOivt+WlveWPi1xyXG5cclxuICAgICAgICBEYWlseUludml0ZVJvb21Kb2luOidpbnZpdGVfam9pbl9yb29tJywgLy/pgoDor7flpb3lj4vliqDlhaVcclxuICAgICAgICBEYWlseUludml0ZUZyaWVuZCA6ICdpbnZpdGVfZnJpZW5kJywgLy8g5pel5bi46YKA6K+35aW95Y+LXHJcbiAgICAgICAgRGFpbHlJbnZpdGVHcm91cCA6ICdpbnZhdGVfZ3JvdXAnLCAvLyDml6XluLjliIbkuqvnvqRcclxuICAgICAgICBEYWlseUludml0ZUdyb3VwQWxpdmU6ICdpbnZhdGVfYWxpdmUnLCAvL+aXpeW4uOWIhuS6q+e+pOWkjea0u1xyXG4gICAgICAgIERhaWx5SW52aXRlR3JvdXBSZXdhcmQ6ICdpbnZhdGVfcmV3YXJlZCcsLy/liIbkuqvlpZblirHnv7vlgI1cclxuICAgICAgICBEYWlseUludml0ZUdyb3VwQm94OiAnaW52YXRlX2JveCcsICAvL+WuneeuseWIhuS6q+WlluWKsVxyXG4gICAgICAgIERhaWx5SW52aXRlR3JvdXBCYWxsOiAnaW52YXRlX2JhbGwnLCAgLy/liIbkuqvpooblj5bnkIPnkINcclxuXHJcbiAgICAgICAgTWF0Y2hSZXN1bHQgOiAnbWF0Y2hSZXN1bHQnLCAgLy8g5q+U6LWb57uT566X5YiG5LqrXHJcbiAgICAgICAgTWF0Y2hGaXg1OiAnTWF0Y2hGaXg1JywgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDXlhYPnuqLljIXotZtcclxuICAgICAgICBNYXRjaEZpeDIwOiAnTWF0Y2hGaXgyMCcsICAgICAgICAgICAgICAgICAgICAgICAgLy8gMjDlhYPnuqLljIXotZtcclxuICAgICAgICBNYXRjaEZpeDEwMDogJ01hdGNoRml4MTAwJywgICAgICAgICAgICAgICAgICAgICAgLy8gMTAw5YWD57qi5YyF6LWbXHJcbiAgICAgICAgTWF0Y2hGaXg1MDA6ICdNYXRjaEZpeDUwMCcsICAgICAgICAgICAgICAgICAgICAgIC8vIDUwMOWFg+e6ouWMhei1m1xyXG4gICAgICAgIE5ld2VyUmVkRW52ZWxvcGU6ICduZXdlclJlZEVudmVsb3BlJywgICAgICAgICAgICAvLyDmlrDmiYvnuqLljIVcclxuICAgICAgICBDb2luUm9vbVJlc3VsdDogJ2NvaW5Sb29tUmVzdWx0JywgICAgICAgICAgICAgICAgLy8g6YeR5biB5qGM57uT566XXHJcbiAgICAgICAgSGlnaFJhdGUgOiBcImhpZ2hSYXRlXCIsLy/pq5jlgI3liIbkuqtcclxuICAgICAgICBDb2luUm9vbVdpblN0cmVhazogJ2NvaW5Sb29tV2luU3RyZWFrJywgICAgICAgICAvLyDov57og5xcclxuICAgICAgICBDb2luUm9vbUJhbmtydXB0Y3kxOiAnY29pblJvb21CYW5rcnVwdGN5MScsICAgICAgICAgLy8g6YeR5biB5qGM56C05LqnXHJcbiAgICAgICAgQ29pblJvb21CYW5rcnVwdGN5MjogJ2NvaW5Sb29tQmFua3J1cHRjeTInLCAgICAgICAgIC8vIOmHkeW4geahjOegtOS6p1xyXG4gICAgICAgIENvaW5Sb29tQmFua3J1cHRjeTM6ICdjb2luUm9vbUJhbmtydXB0Y3kzJywgICAgICAgICAvLyDph5HluIHmoYznoLTkuqdcclxuICAgIH07XHJcblxyXG4gICAgLypcclxuICAgICAqIOWIhuS6q+WIsOWTquWEv+e7meWlluWKsSBncm91cCBmcmluZWQgYWxsXHJcbiAgICAgKi9cclxuICAgIGNjLmZ4LlNoYXJlV2hlcmVSZXdhcmQgPSB7XHJcbiAgICAgICAgR3JvdXAgOlwiZ3JvdXBcIiwgLy/lvq7kv6HnvqRcclxuICAgICAgICBGcmllbmQgOiBcImZyaWVuZFwiLC8v5aW95Y+LXHJcbiAgICAgICAgQWxsIDogXCJhbGxcIiwgLy/kuI3ljLrliIZcclxuICAgIH07XHJcblxyXG4gICAgLy/nlKjkuo7lrZjlgqjmtojmga/nmoRJRFxyXG4gICAgY2MuZnguc3RvcmFnZVR5cGUgPSBjYy5FbnVtKHtcclxuXHQgICAgc3RvcmFnZVR5cGVDdXN0b206IDEwMDAxMDEsIC8v55So5LqO5a2Y5YKo5YWz5Y2h562J57qnXHJcblx0fSk7XHJcblxyXG4gICAgLy/nlKjkuo7lrZjlgqjmj5DnpLror60gIOaMieeFp+atpemqpOaPkOekulxyXG4gICAgY2MuZngudGlwVHlwZSA9IGNjLkVudW0oe1xyXG4gICAgICAgIHRpcE9uZTogJ+elnuWGnOawj+WbnuWIsOWutuS4re+8jOW8gOWni+aVtOeQhuS7iuWkqeaUtumbhuadpeeahOeJqeWTgeOAguW9k+S7luesrOS4gOasoeaLv+WHuuaIluivtOWHuuS4gOenjeakjeeJqeaXtu+8jOivt+WRiuivieS7lui/meaYr+aWsOakjeeJqeOAgicsXHJcbiAgICAgICAgdGlwVHdvOiAn5aaC5p6c5LuW5ou/5Ye65oiW6K+05Ye655qE5qSN54mp5L2g5LuK5aSp55yL5Yiw6L+H77yM6K+35ZGK6K+J5LuW5LiK5qyh5piv55yL5Yiw55qE77yb5aaC5p6c5L2g5ZCs5LuW6K+06L+H77yM5YiZ6K+35ZGK6K+J5LuW5LiK5qyh5piv5ZCs5Yiw55qE44CCJywgLy/nlKjkuo7lrZjlgqjlhbPljaHnrYnnuqdcclxuICAgICAgICB0aXBFcnJOZXc6ICfov5nmmK/ov5nlsYDmuLjmiI/nrKzkuIDmrKHlh7rnjrB75qSN54mpfScsXHJcbiAgICAgICAgdGlwRXJyT2xkOiAne+akjeeJqX3liJrmiY3lh7rnjrDov4flkaInLFxyXG4gICAgICAgIHRpcEVyckhlYXI6ICfkuIrmrKHpgYfliLB75qSN54mpfeaXtu+8jOS8vOS5juS4jeaYr+WQrOWIsOeahOWQpycsXHJcbiAgICAgICAgdGlwRXJyU2VlOiAn5LiK5qyh6YGH5Yiwe+akjeeJqX3ml7bvvIzkvLzkuY7kuI3mmK/nnIvliLDnmoTlkKcnLFxyXG4gICAgICAgIHRpcEVyckxhc3Q6ICfkuYvliY3noa7lrp7nnIvliLDov4d75qSN54mpfe+8jOS9huacgOi/keS4gOasoeS8vOS5juS4jeaYr+eci+WIsOeahOWRoicsXHJcblxyXG4gICAgfSk7XHJcblxyXG59OyJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/Music/AudioManager.js b/temp/quick-scripts/dst/assets/Script/module/Music/AudioManager.js new file mode 100644 index 0000000..7f583d0 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/module/Music/AudioManager.js @@ -0,0 +1,272 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Music/AudioManager.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '58403/n16JCa5sZhNMjZzGo', 'AudioManager'); +// Script/module/Music/AudioManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var AudioManager = /** @class */ (function (_super) { + __extends(AudioManager, _super); + function AudioManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + //背景音乐 + _this.audioGameBgm0 = null; + _this.chehui = null; + _this.jineng = null; + _this.qingkong = null; + _this.fangxiang = null; + _this.build = null; + _this.win = null; + _this.lose = null; + return _this; + } + AudioManager_1 = AudioManager; + AudioManager.prototype.onLoad = function () { + if (AudioManager_1._instance == null) { + AudioManager_1._instance = this; + cc.game.addPersistRootNode(this.node); + } + else { + return; + } + this.reward = false; + this.finish = false; + this.rewardCount = 0; + this.ctor(); + this.preload(); + }; + AudioManager.prototype.ctor = function () { + this.mAudioMap = {}; + /** + * 默认音量大小 + * @type {number} + */ + this.bgMusicVolume = 0.1; + this.effectMusicVolume = 1; + this.mMusicSwitch = 1; + this.mEffectSwitch = 1; + }; + AudioManager.prototype.play = function (audioSource, loop, callback, isBgMusic) { + // if (isBgMusic && !this.mMusicSwitch) return; + // if (!isBgMusic && !this.mEffectSwitch) return; + var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume; + // if (cc.sys.isBrowser) { + // if(audioSource == this.brickSound){ + // volume = 0.1; + // } + volume = 1; + cc.audioEngine.setEffectsVolume(1); + cc.audioEngine.setMusicVolume(1); + if (audioSource.name == "lose") { + cc.audioEngine.setEffectsVolume(0.5); + } + else { + cc.audioEngine.setEffectsVolume(1); + } + var context = cc.audioEngine.playEffect(audioSource, loop); + if (callback) { + cc.audioEngine.setFinishCallback(context, function () { + callback.call(this); + }.bind(this)); + } + // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src); + this.mAudioMap[audioSource] = context; + return audioSource; + // } else { + // return audioSource; + // } + }; + AudioManager.prototype.save = function () { + // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch); + // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch); + }; + // static get Instance() + // { + // if (this._instance == null) + // { + // this._instance = new AudioManager(); + // } + // return this._instance; + // } + AudioManager.prototype.preload = function () { + if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { + return; + } + var musics = [ + this.audioGameBgm0, + ]; + musics.forEach(function (path) { + }); + }; + AudioManager.prototype.getAudioMusicSwitch = function () { + return this.mMusicSwitch; + }; + AudioManager.prototype.getAudioEffectSwitch = function () { + return this.mEffectSwitch; + }; + AudioManager.prototype.trunAudioSound = function (on) { + this.switchMusic(on); + this.switchEffect(on); + }; + AudioManager.prototype.switchMusic = function (on) { + if (this.mMusicSwitch != (on ? 1 : 0)) { + this.mMusicSwitch = 1 - this.mMusicSwitch; + // this.save(); + } + if (on) { + this.playMusicGame(); + } + else { + this.stopMusic(); + } + }; + AudioManager.prototype.switchEffect = function (on) { + if (this.mEffectSwitch != (on ? 1 : 0)) { + this.mEffectSwitch = 1 - this.mEffectSwitch; + // this.save(); + } + }; + AudioManager.prototype.onHide = function () { + cc.audioEngine.pauseAll(); + }; + AudioManager.prototype.onShow = function () { + cc.audioEngine.resumeAll(); + }; + //播放音效 + AudioManager.prototype.playEffect = function (name, callback) { + if (this[name]) + return this.play(this[name], false, callback, this.mEffectSwitch); + }; + AudioManager.prototype.playMusic = function (key, callback, loop) { + loop = typeof loop == 'undefined' || loop ? true : false; + this.stopMusic(); + this.mMusicKey = this.play(key, loop, callback, true); + }; + /** + * 游戏背景音乐 + */ + AudioManager.prototype.playMusicGame = function () { + this.playMusic(this.audioGameBgm0, {}, true); + }; + /** + * 停止背景音乐播放 + */ + AudioManager.prototype.stopMusic = function () { + // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey); + var context = this.mAudioMap[this.mMusicKey]; + if (typeof (context) != 'undefined') { + if (cc.sys.isBrowser) { + cc.audioEngine.stop(context); + } + else { + context.stop(); + } + cc.audioEngine.stop(context); + } + }; + /* + * 游戏开始音效 + * + */ + AudioManager.prototype.playGameStart = function () { + }; + /* + * 失败的游戏结束 + */ + AudioManager.prototype.playGameOver = function () { + }; + /* + * 成功的游戏结束 + */ + AudioManager.prototype.playGameResultFailed = function () { + }; + /* + * 成功的游戏结束 + */ + AudioManager.prototype.playGameResultSuccess = function () { + }; + /** + * 报警的音效 + */ + /** + * 按钮 + */ + AudioManager.prototype.playAudioButton = function () { + // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch); + }; + var AudioManager_1; + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "audioGameBgm0", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "chehui", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "jineng", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "qingkong", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "fangxiang", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "build", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "win", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "lose", void 0); + AudioManager = AudioManager_1 = __decorate([ + ccclass + ], AudioManager); + return AudioManager; +}(cc.Component)); +exports.default = AudioManager; +; +// export { AudioManager }; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE11c2ljXFxBdWRpb01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRU0sSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFFMUM7SUFBMEMsZ0NBQVk7SUFBdEQ7UUFBQSxxRUE4T0M7UUE1T0csTUFBTTtRQUVOLG1CQUFhLEdBQWlCLElBQUksQ0FBQztRQUduQyxZQUFNLEdBQWlCLElBQUksQ0FBQztRQUU1QixZQUFNLEdBQWlCLElBQUksQ0FBQztRQUU1QixjQUFRLEdBQWlCLElBQUksQ0FBQztRQUU5QixlQUFTLEdBQWlCLElBQUksQ0FBQztRQUUvQixXQUFLLEdBQWlCLElBQUksQ0FBQztRQUUzQixTQUFHLEdBQWlCLElBQUksQ0FBQztRQUV6QixVQUFJLEdBQWlCLElBQUksQ0FBQzs7SUEyTjlCLENBQUM7cUJBOU9vQixZQUFZO0lBbUM3Qiw2QkFBTSxHQUFOO1FBQ0ksSUFBSSxjQUFZLENBQUMsU0FBUyxJQUFJLElBQUksRUFBRTtZQUNoQyxjQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUM5QixFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QzthQUNJO1lBQ0QsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRVosSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCwyQkFBSSxHQUFKO1FBQ0ksSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENB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QUUsQ0FBQyxTQUFTLENBQUM7a0RBQ087SUFFOUI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzttREFDUTtJQUUvQjtRQURDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDOytDQUNJO0lBRTNCO1FBREMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUM7NkNBQ0U7SUFFekI7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQzs4Q0FDRztJQW5CVCxZQUFZO1FBRGhDLE9BQU87T0FDYSxZQUFZLENBOE9oQztJQUFELG1CQUFDO0NBOU9ELEFBOE9DLENBOU95QyxFQUFFLENBQUMsU0FBUyxHQThPckQ7a0JBOU9vQixZQUFZO0FBOE9oQyxDQUFDO0FBRUYsMkJBQTJCIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xuQGNjY2xhc3NcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1ZGlvTWFuYWdlciBleHRlbmRzIGNjLkNvbXBvbmVudCB7XG4gICAgc3RhdGljIF9pbnN0YW5jZTogYW55O1xuICAgIC8v6IOM5pmv6Z+z5LmQXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBhdWRpb0dhbWVCZ20wOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuXG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBjaGVodWk6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBqaW5lbmc6IGNjLkF1ZGlvQ2xpcCA9IG51bGw7XG4gICAgQHByb3BlcnR5KGNjLkF1ZGlvQ2xpcClcbiAgICBxaW5na29uZzogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGZhbmd4aWFuZzogY2MuQXVkaW9DbGlwID0gbnVsbDtcbiAgICBAcHJvcGVydHkoY2MuQXVkaW9DbGlwKVxuICAgIGJ1aWxkOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgd2luOiBjYy5BdWRpb0NsaXAgPSBudWxsO1xuICAgIEBwcm9wZXJ0eShjYy5BdWRpb0NsaXApXG4gICAgbG9zZTogY2MuQXVkaW9DbGlwID0gbnVsbDtcblxuXG5cblxuICAgIG1BdWRpb01hcDoge307XG4gICAgYmdNdXNpY1ZvbHVtZTogbnVtYmVyO1xuICAgIGVmZmVjdE11c2ljVm9sdW1lOiBudW1iZXI7XG4gICAgbU11c2ljU3dpdGNoOiBudW1iZXI7XG4gICAgbUVmZmVjdFN3aXRjaDogbnVtYmVyO1xuICAgIGJyaWNrU291bmQ6IGFueTtcbiAgICByZXdhcmQ6IGJvb2xlYW47XG4gICAgZmluaXNoOiBib29sZWFuO1xuICAgIHJld2FyZENvdW50OiBudW1iZXI7XG4gICAgbU11c2ljS2V5OiBhbnk7XG5cbiAgICBvbkxvYWQoKSB7XG4gICAgICAgIGlmIChBdWRpb01hbmFnZXIuX2luc3RhbmNlID09IG51bGwpIHtcbiAgICAgICAgICAgIEF1ZGlvTWFuYWdlci5faW5zdGFuY2UgPSB0aGlzO1xuICAgICAgICAgICAgY2MuZ2FtZS5hZGRQZXJzaXN0Um9vdE5vZGUodGhpcy5ub2RlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJld2FyZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmZpbmlzaCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJld2FyZENvdW50ID0gMDtcbiAgICAgICAgdGhpcy5jdG9yKCk7XG5cbiAgICAgICAgdGhpcy5wcmVsb2FkKCk7XG4gICAgfVxuXG4gICAgY3RvciAoKSB7XG4gICAgICAgIHRoaXMubUF1ZGlvTWFwID0ge307XG4gICAgICAgIC8qKlxuICAgICAgICAgKiDpu5jorqTpn7Pph4/lpKflsI9cbiAgICAgICAgICogQHR5cGUge251bWJlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuYmdNdXNpY1ZvbHVtZSA9IDAuMTtcbiAgICAgICAgdGhpcy5lZmZlY3RNdXNpY1ZvbHVtZSA9IDE7XG5cbiAgICAgICAgdGhpcy5tTXVzaWNTd2l0Y2ggPSAxO1xuICAgICAgICB0aGlzLm1FZmZlY3RTd2l0Y2ggPSAxO1xuICAgIH1cbiAgICBwbGF5IChhdWRpb1NvdXJjZSwgbG9vcCwgY2FsbGJhY2ssIGlzQmdNdXNpYykge1xuICAgICAgICAvLyBpZiAoaXNCZ011c2ljICYmICF0aGlzLm1NdXNpY1N3aXRjaCkgcmV0dXJuO1xuICAgICAgICAvLyBpZiAoIWlzQmdNdXNpYyAmJiAhdGhpcy5tRWZmZWN0U3dpdGNoKSByZXR1cm47XG4gICAgICAgIHZhciB2b2x1bWUgPSBpc0JnTXVzaWMgPyB0aGlzLmJnTXVzaWNWb2x1bWUgOiB0aGlzLmVmZmVjdE11c2ljVm9sdW1lO1xuXG4gICAgICAgIC8vIGlmIChjYy5zeXMuaXNCcm93c2VyKSB7XG4gICAgICAgICAgICAvLyBpZihhdWRpb1NvdXJjZSA9PSB0aGlzLmJyaWNrU291bmQpe1xuICAgICAgICAgICAgLy8gICAgIHZvbHVtZSA9IDAuMTtcbiAgICAgICAgICAgIC8vIH0gXG4gICAgICAgICAgICB2b2x1bWUgPSAxO1xuICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RWZmZWN0c1ZvbHVtZSgxKTtcbiAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnNldE11c2ljVm9sdW1lKDEpO1xuICAgICAgICAgICAgaWYoYXVkaW9Tb3VyY2UubmFtZSA9PSBcImxvc2VcIil7XG4gICAgICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RWZmZWN0c1ZvbHVtZSgwLjUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZXtcbiAgICAgICAgICAgICAgICBjYy5hdWRpb0VuZ2luZS5zZXRFZmZlY3RzVm9sdW1lKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGNvbnRleHQgPSBjYy5hdWRpb0VuZ2luZS5wbGF5RWZmZWN0KGF1ZGlvU291cmNlLCBsb29wKTtcbiAgICAgICAgICAgIGlmIChjYWxsYmFjayl7XG4gICAgICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc2V0RmluaXNoQ2FsbGJhY2soY29udGV4dCwgZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzKTtcbiAgICAgICAgICAgICAgICB9LmJpbmQodGhpcykpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gY2Mud3d4Lk91dFB1dC5sb2coJ3BsYXkgYXVkaW8gZWZmZWN0IGlzQnJvd3NlcjogJyArIGNvbnRleHQuc3JjKTtcblxuICAgICAgICAgICAgdGhpcy5tQXVkaW9NYXBbYXVkaW9Tb3VyY2VdID0gY29udGV4dDtcbiAgICAgICAgICAgIHJldHVybiBhdWRpb1NvdXJjZTtcbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgLy8gICAgIHJldHVybiBhdWRpb1NvdXJjZTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIHNhdmUgKCkge1xuICAgICAgICAvLyBjYy53d3guU3RvcmFnZS5zZXRJdGVtKGNjLnd3eC5TdG9yYWdlLktleV9TZXR0aW5nX011c2ljX1ZvbHVtZSwgdGhpcy5tTXVzaWNTd2l0Y2gpO1xuICAgICAgICAvLyBjYy53d3guU3RvcmFnZS5zZXRJdGVtKGNjLnd3eC5TdG9yYWdlLktleV9TZXR0aW5nX0VmZmVjdF9Wb2x1bWUsIHRoaXMubUVmZmVjdFN3aXRjaCk7XG4gICAgfVxuXG4gICAgLy8gc3RhdGljIGdldCBJbnN0YW5jZSgpXG4gICAgLy8ge1xuICAgIC8vICAgICBpZiAodGhpcy5faW5zdGFuY2UgPT0gbnVsbClcbiAgICAvLyAgICAge1xuICAgIC8vICAgICAgICAgdGhpcy5faW5zdGFuY2UgPSBuZXcgQXVkaW9NYW5hZ2VyKCk7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlO1xuICAgIC8vIH1cblxuICAgIHByZWxvYWQgKCkge1xuICAgICAgICBpZiAoIShjYy5zeXMucGxhdGZvcm0gPT09IGNjLnN5cy5XRUNIQVRfR0FNRSkpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdmFyIG11c2ljcyA9IFtcbiAgICAgICAgICAgIHRoaXMuYXVkaW9HYW1lQmdtMCxcbiAgICAgICAgXTtcbiAgICAgICAgbXVzaWNzLmZvckVhY2goZnVuY3Rpb24ocGF0aCkge1xuICAgICAgICB9KVxuICAgIH1cblxuICAgIGdldEF1ZGlvTXVzaWNTd2l0Y2goKVxuICAgIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubU11c2ljU3dpdGNoO1xuXG4gICAgfVxuICAgIGdldEF1ZGlvRWZmZWN0U3dpdGNoKClcbiAgICB7XG4gICAgICAgIHJldHVybiB0aGlzLm1FZmZlY3RTd2l0Y2g7XG4gICAgfVxuICAgIHRydW5BdWRpb1NvdW5kKG9uKVxuICAgIHtcbiAgICAgICAgdGhpcy5zd2l0Y2hNdXNpYyhvbik7XG4gICAgICAgIHRoaXMuc3dpdGNoRWZmZWN0KG9uKVxuICAgIH1cbiAgICBzd2l0Y2hNdXNpYyAob24pIHtcbiAgICAgICAgaWYgKHRoaXMubU11c2ljU3dpdGNoICE9IChvbj8xOjApKVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLm1NdXNpY1N3aXRjaCA9IDEtdGhpcy5tTXVzaWNTd2l0Y2g7XG4gICAgICAgICAgICAvLyB0aGlzLnNhdmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZihvbilcbiAgICAgICAge1xuICAgICAgICAgICAgdGhpcy5wbGF5TXVzaWNHYW1lKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZVxuICAgICAgICB7XG4gICAgICAgICAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHN3aXRjaEVmZmVjdCAob24pIHtcbiAgICAgICAgaWYgKHRoaXMubUVmZmVjdFN3aXRjaCAhPSAob24/MTowKSl7XG4gICAgICAgICAgICB0aGlzLm1FZmZlY3RTd2l0Y2ggPSAxLXRoaXMubUVmZmVjdFN3aXRjaDtcbiAgICAgICAgICAgIC8vIHRoaXMuc2F2ZSgpO1xuXG4gICAgICAgIH1cbiAgICB9XG4gICAgb25IaWRlICgpIHtcbiAgICAgICAgY2MuYXVkaW9FbmdpbmUucGF1c2VBbGwoKTtcbiAgICB9XG5cbiAgICBvblNob3cgKCkge1xuICAgICAgICBjYy5hdWRpb0VuZ2luZS5yZXN1bWVBbGwoKTtcbiAgICB9XG5cbiAgICAvL+aSreaUvumfs+aViFxuICAgIHBsYXlFZmZlY3QobmFtZSxjYWxsYmFjayl7XG4gICAgICAgIGlmKHRoaXNbbmFtZV0pXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wbGF5KHRoaXNbbmFtZV0sIGZhbHNlLGNhbGxiYWNrLHRoaXMubUVmZmVjdFN3aXRjaCk7XG4gICAgfVxuICAgIHBsYXlNdXNpYyAoa2V5LCBjYWxsYmFjaywgbG9vcCkge1xuICAgICAgICBsb29wID0gdHlwZW9mIGxvb3AgPT0gJ3VuZGVmaW5lZCcgIHx8IGxvb3AgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHRoaXMuc3RvcE11c2ljKCk7XG4gICAgICAgIHRoaXMubU11c2ljS2V5ID0gdGhpcy5wbGF5KGtleSwgbG9vcCwgY2FsbGJhY2ssIHRydWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiDmuLjmiI/og4zmma/pn7PkuZBcbiAgICAgKi9cbiAgICBwbGF5TXVzaWNHYW1lICgpIHtcbiAgICAgICAgdGhpcy5wbGF5TXVzaWModGhpcy5hdWRpb0dhbWVCZ20wLHt9LHRydWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiDlgZzmraLog4zmma/pn7PkuZDmkq3mlL5cbiAgICAgKi9cbiAgICBzdG9wTXVzaWMgKCkge1xuICAgICAgICAvLyBjYy53d3guT3V0UHV0LmxvZygnc3RvcE11c2ljIGF1ZGlvIGVmZmVjdCB3eDogJyArIHRoaXMubU11c2ljS2V5KTtcblxuICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMubUF1ZGlvTWFwW3RoaXMubU11c2ljS2V5XTtcblxuICAgICAgICBpZiAodHlwZW9mKGNvbnRleHQpICE9ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBpZiAoY2Muc3lzLmlzQnJvd3Nlcikge1xuICAgICAgICAgICAgICAgIGNjLmF1ZGlvRW5naW5lLnN0b3AoY29udGV4dCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRleHQuc3RvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2MuYXVkaW9FbmdpbmUuc3RvcChjb250ZXh0KTtcblxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLypcbiAgICAqIOa4uOaIj+W8gOWni+mfs+aViFxuICAgICpcbiAgICAqL1xuICAgIHBsYXlHYW1lU3RhcnQoKVxuICAgIHtcbiAgICBcbiAgICB9XG4gICAgLypcbiAgICAqIOWksei0peeahOa4uOaIj+e7k+adn1xuICAgICovXG4gICAgcGxheUdhbWVPdmVyKClcbiAgICB7XG5cbiAgICB9XG4gICAgLypcbiAgICAgICAgKiDmiJDlip/nmoTmuLjmiI/nu5PmnZ9cbiAgICAgICAgKi9cbiAgICBwbGF5R2FtZVJlc3VsdEZhaWxlZCgpXG4gICAge1xuXG4gICAgfVxuICAgIC8qXG4gICAgKiDmiJDlip/nmoTmuLjmiI/nu5PmnZ9cbiAgICAqL1xuICAgIHBsYXlHYW1lUmVzdWx0U3VjY2VzcygpXG4gICAge1xuXG4gICAgfVxuICAgIC8qKlxuICAgICAqIOaKpeitpueahOmfs+aViFxuICAgICAqL1xuXG4gICAgLyoqXG4gICAgICog5oyJ6ZKuXG4gICAgICovXG4gICAgcGxheUF1ZGlvQnV0dG9uICgpIHtcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMucGxheSh0aGlzLmF1ZGlvQnV0dG9uQ2xpY2ssIGZhbHNlLG51bGwsdGhpcy5tRWZmZWN0U3dpdGNoKTtcbiAgICB9XG59O1xuXG4vLyBleHBvcnQgeyBBdWRpb01hbmFnZXIgfTtcbiJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/Notification/Notification.js b/temp/quick-scripts/dst/assets/Script/module/Notification/Notification.js new file mode 100644 index 0000000..be69590 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/module/Notification/Notification.js @@ -0,0 +1,74 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Notification/Notification.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '55403VjGlpPL564gsdiZBg3', 'Notification'); +// Script/module/Notification/Notification.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Notifications = void 0; +//全局通知 +var Notifications = { + _eventMap: [], + on: function (masgId, callback, target) { + if (this._eventMap[masgId] === undefined) { + this._eventMap[masgId] = []; + } + this._eventMap[masgId].push({ callback: callback, target: target }); + }, + emit: function (masgId, parameter) { + var array = this._eventMap[masgId]; + if (array === undefined) + return; + for (var i = 0; i < array.length; i++) { + var element = array[i]; + if (element) + element.callback.call(element.target, parameter); + } + }, + off: function (masgId, callback) { + var array = this._eventMap[masgId]; + if (array === undefined) + return; + for (var i = 0; i < array.length; i++) { + var element = array[i]; + if (element && element.callback === callback) { + array[i] = undefined; + break; + } + } + }, + offMasgId: function (masgId) { + this._eventMap[masgId] = undefined; + }, + removeAllMsg: function () { + for (var k in this._eventMap) { + if (this._eventMap[k]) { + this.offMasgId(k); + } + } + } +}; +exports.Notifications = Notifications; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXE5vdGlmaWNhdGlvblxcTm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE1BQU07QUFDTixJQUFJLGFBQWEsR0FBRztJQUNoQixTQUFTLEVBQUUsRUFBRTtJQUNiLEVBQUUsRUFBRSxVQUFVLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTTtRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQy9CO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUFJLEVBQUUsVUFBVSxNQUFNLEVBQUUsU0FBUztRQUM3QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBRWhDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU87Z0JBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUNqRTtJQUNMLENBQUM7SUFFRCxHQUFHLEVBQUUsVUFBVSxNQUFNLEVBQUUsUUFBUTtRQUMzQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25DLElBQUksS0FBSyxLQUFLLFNBQVM7WUFBRSxPQUFPO1FBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRTtnQkFDMUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztnQkFDckIsTUFBTTthQUNUO1NBQ0o7SUFDTCxDQUFDO0lBRUQsU0FBUyxFQUFFLFVBQVUsTUFBTTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsWUFBWSxFQUFFO1FBQ1YsS0FBSyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQjtTQUNKO0lBQ0wsQ0FBQztDQUNKLENBQUM7QUFDTyxzQ0FBYSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v5YWo5bGA6YCa55+lXG52YXIgTm90aWZpY2F0aW9ucyA9IHtcbiAgICBfZXZlbnRNYXA6IFtdLFxuICAgIG9uOiBmdW5jdGlvbiAobWFzZ0lkLCBjYWxsYmFjaywgdGFyZ2V0KSB7XG4gICAgICAgIGlmICh0aGlzLl9ldmVudE1hcFttYXNnSWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50TWFwW21hc2dJZF0gPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdLnB1c2goeyBjYWxsYmFjazogY2FsbGJhY2ssIHRhcmdldDogdGFyZ2V0IH0pO1xuICAgIH0sXG5cbiAgICBlbWl0OiBmdW5jdGlvbiAobWFzZ0lkLCBwYXJhbWV0ZXIpIHtcbiAgICAgICAgbGV0IGFycmF5ID0gdGhpcy5fZXZlbnRNYXBbbWFzZ0lkXTtcbiAgICAgICAgaWYgKGFycmF5ID09PSB1bmRlZmluZWQpIHJldHVybjtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9IGFycmF5W2ldO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQpIGVsZW1lbnQuY2FsbGJhY2suY2FsbChlbGVtZW50LnRhcmdldCwgcGFyYW1ldGVyKTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBvZmY6IGZ1bmN0aW9uIChtYXNnSWQsIGNhbGxiYWNrKSB7XG4gICAgICAgIGxldCBhcnJheSA9IHRoaXMuX2V2ZW50TWFwW21hc2dJZF07XG4gICAgICAgIGlmIChhcnJheSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBlbGVtZW50ID0gYXJyYXlbaV07XG4gICAgICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNhbGxiYWNrID09PSBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGFycmF5W2ldID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSxcblxuICAgIG9mZk1hc2dJZDogZnVuY3Rpb24gKG1hc2dJZCkge1xuICAgICAgICB0aGlzLl9ldmVudE1hcFttYXNnSWRdID0gdW5kZWZpbmVkO1xuICAgIH0sXG5cbiAgICByZW1vdmVBbGxNc2c6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZm9yIChsZXQgayBpbiB0aGlzLl9ldmVudE1hcCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuX2V2ZW50TWFwW2tdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vZmZNYXNnSWQoayk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59O1xuZXhwb3J0IHsgTm90aWZpY2F0aW9ucyB9OyJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/RankList/ItemRender.js b/temp/quick-scripts/dst/assets/Script/module/RankList/ItemRender.js new file mode 100644 index 0000000..ad12462 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/module/RankList/ItemRender.js @@ -0,0 +1,127 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/RankList/ItemRender.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'ca0f9k0oBVDbpQC+OMNTF3m', 'ItemRender'); +// Script/module/RankList/ItemRender.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var ItemRender = /** @class */ (function (_super) { + __extends(ItemRender, _super); + function ItemRender() { + var _this = _super !== null && _super.apply(this, arguments) || this; + /**数据 */ + _this.data = null; + /**索引 0表示第一项*/ + _this.itemIndex = 0; + return _this; + } + /**数据改变时调用 */ + ItemRender.prototype.dataChanged = function () { + cc.fx.GameTool.subName(this.data.name, 6); + this.node.getChildByName("rankLab").getComponent(cc.Label).string = this.data.rank + ""; + this.node.getChildByName("nameLab").getComponent(cc.Label).string = this.data.name + ""; + this.node.getChildByName("totalLab").getComponent(cc.Label).string = this.data.total; + var timeTemp = cc.fx.GameTool.getTimeShenNong(this.data.time); + // this.node.getChildByName("timeLab").getComponent(cc.Label).string = timeTemp + ""; + this.node.getChildByName("rank").getChildByName("one").active = false; + this.node.getChildByName("rank").getChildByName("two").active = false; + this.node.getChildByName("rank").getChildByName("three").active = false; + if (this.data.rank == 1) { + this.node.getChildByName("rank").getChildByName("one").active = true; + this.node.getChildByName("rankLab").active = false; + } + else if (this.data.rank == 2) { + this.node.getChildByName("rank").getChildByName("two").active = true; + this.node.getChildByName("rankLab").active = false; + } + else if (this.data.rank == 3) { + this.node.getChildByName("rank").getChildByName("three").active = true; + this.node.getChildByName("rankLab").active = false; + } + else { + this.node.getChildByName("rankLab").active = true; + } + this.setPic(); + }; + ItemRender.prototype.setPic = function () { + var _this = this; + this.node.getChildByName("pic").getChildByName("icon").active = false; + this.node.getChildByName("pic").getChildByName("pic").active = false; + var self = this; + var url = this.data.pic; + fetch(url) + .then(function (response) { + return response.headers.get('Content-Length'); + }) + .then(function (errNo) { + // console.log(this.data.rank,'X-Info:', errNo); // 输出X-ErrNo的值 + if (errNo == "5093") { + // console.log(this.data.rank,"没头像"); + _this.node.getChildByName("pic").getChildByName("icon").active = true; + } + }) + .catch(function (error) { + // console.error('Error fetching X-Info:', error); + }); + cc.assetManager.loadRemote(url, { ext: '.png' }, function (err, texture) { + if (texture) { + _this.node.getChildByName("pic").getChildByName("pic").active = true; + var sprite = _this.node.getChildByName("pic").getChildByName("pic").getComponent(cc.Sprite); + sprite.spriteFrame = new cc.SpriteFrame(texture); + // console.log(this.data.rank,"设置头像成功",err); + } + else { + // console.log("设置头像失败",url); + console.log(err, texture); + } + }); + }; + ItemRender = __decorate([ + ccclass + ], ItemRender); + return ItemRender; +}(cc.Component)); +exports.default = ItemRender; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFJhbmtMaXN0XFxJdGVtUmVuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdNLElBQUEsS0FBd0IsRUFBRSxDQUFDLFVBQVUsRUFBbkMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFrQixDQUFDO0FBRzVDO0lBQXdDLDhCQUFZO0lBQXBEO1FBQUEscUVBcUVDO1FBcEVHLFFBQVE7UUFDRCxVQUFJLEdBQU8sSUFBSSxDQUFDO1FBQ3ZCLGNBQWM7UUFDUCxlQUFTLEdBQVUsQ0FBQyxDQUFDOztJQWlFaEMsQ0FBQztJQS9ERyxhQUFhO0lBQ04sZ0NBQVcsR0FBbEI7UUFDSSxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3hGLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNyRixJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMs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LENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsRUFBQyxVQUFDLEdBQUcsRUFBRSxPQUFvQjtZQUNuRSxJQUFHLE9BQU8sRUFBQztnQkFDUCxLQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFFLElBQUksQ0FBQztnQkFDbkUsSUFBSSxNQUFNLEdBQUcsS0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNGLE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqRCw0Q0FBNEM7YUFDL0M7aUJBQ0c7Z0JBQ0EsNkJBQTZCO2dCQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBQyxPQUFPLENBQUMsQ0FBQTthQUMzQjtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQWxFZ0IsVUFBVTtRQUQ5QixPQUFPO09BQ2EsVUFBVSxDQXFFOUI7SUFBRCxpQkFBQztDQXJFRCxBQXFFQyxDQXJFdUMsRUFBRSxDQUFDLFNBQVMsR0FxRW5EO2tCQXJFb0IsVUFBVSIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5pbXBvcnQgTGlzdCwgeyBMaXN0VHlwZSB9IGZyb20gXCIuL0xpc3RcIjtcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBJdGVtUmVuZGVyIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIC8qKuaVsOaNriAqL1xyXG4gICAgcHVibGljIGRhdGE6YW55ID0gbnVsbDtcclxuICAgIC8qKue0ouW8lSAw6KGo56S656ys5LiA6aG5Ki9cclxuICAgIHB1YmxpYyBpdGVtSW5kZXg6bnVtYmVyID0gMDsgICAgXHJcblxyXG4gICAgLyoq5pWw5o2u5pS55Y+Y5pe26LCD55SoICovXHJcbiAgICBwdWJsaWMgZGF0YUNoYW5nZWQoKXtcclxuICAgICAgICBjYy5meC5HYW1lVG9vbC5zdWJOYW1lKHRoaXMuZGF0YS5uYW1lLDYpO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aGlzLmRhdGEucmFuayArIFwiXCI7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwibmFtZUxhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGF0YS5uYW1lICsgXCJcIjtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0b3RhbExhYlwiKS5nZXRDb21wb25lbnQoY2MuTGFiZWwpLnN0cmluZyA9IHRoaXMuZGF0YS50b3RhbDtcclxuICAgICAgICBsZXQgdGltZVRlbXAgPSBjYy5meC5HYW1lVG9vbC5nZXRUaW1lU2hlbk5vbmcodGhpcy5kYXRhLnRpbWUpO1xyXG4gICAgICAgIC8vIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInRpbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0aW1lVGVtcCArIFwiXCI7XHJcbiAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBpZih0aGlzLmRhdGEucmFuayA9PSAxKXtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcIm9uZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHRoaXMuZGF0YS5yYW5rID09IDIpe1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidHdvXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtMYWJcIikuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5kYXRhLnJhbmsgPT0gMyl7XHJcbiAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJ0aHJlZVwiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmFjdGl2ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0UGljKCk7XHJcbiAgICB9ICAgXHJcbiAgICBcclxuICAgIHB1YmxpYyBzZXRQaWMoKXtcclxuICAgICAgICB0aGlzLm5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJwaWNcIikuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uXCIpLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5hY3RpdmU9IGZhbHNlO1xyXG4gICAgICAgIHZhciBzZWxmID0gdGhpcztcclxuICAgICAgICBsZXQgdXJsID0gdGhpcy5kYXRhLnBpYztcclxuICAgICAgICBmZXRjaCh1cmwpXHJcbiAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ0NvbnRlbnQtTGVuZ3RoJyk7XHJcbiAgICAgICAgfSlcclxuXHJcbiAgICAgICAgLnRoZW4oZXJyTm8gPT4ge1xyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEucmFuaywnWC1JbmZvOicsIGVyck5vKTsgLy8g6L6T5Ye6WC1FcnJOb+eahOWAvFxyXG4gICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmRhdGEucmFuayxcIuayoeWktOWDj1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIHRoaXMubm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5hY3RpdmU9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB2YXIgc3ByaXRlID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKFwicGljXCIpLmdldENoaWxkQnlOYW1lKFwicGljXCIpLmdldENvbXBvbmVudChjYy5TcHJpdGUpO1xyXG4gICAgICAgICAgICAgICAgc3ByaXRlLnNwcml0ZUZyYW1lID0gbmV3IGNjLlNwcml0ZUZyYW1lKHRleHR1cmUpO1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5kYXRhLnJhbmssXCLorr7nva7lpLTlg4/miJDlip9cIixlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIuiuvue9ruWktOWDj+Wksei0pVwiLHVybCk7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIsdGV4dHVyZSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG5cclxufVxyXG4iXX0= \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/RankList/List.js b/temp/quick-scripts/dst/assets/Script/module/RankList/List.js new file mode 100644 index 0000000..5a03bef --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/module/RankList/List.js @@ -0,0 +1,644 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/RankList/List.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, 'd5421HgLShFKIjj5f18m1mi', 'List'); +// Script/module/RankList/List.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StartAxisType = exports.ListType = void 0; +var ItemRender_1 = require("./ItemRender"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +/**列表排列方式 */ +var ListType; +(function (ListType) { + /**水平排列 */ + ListType[ListType["Horizontal"] = 1] = "Horizontal"; + /**垂直排列 */ + ListType[ListType["Vertical"] = 2] = "Vertical"; + /**网格排列 */ + ListType[ListType["Grid"] = 3] = "Grid"; +})(ListType = exports.ListType || (exports.ListType = {})); +/**网格布局中的方向 */ +var StartAxisType; +(function (StartAxisType) { + /**水平排列 */ + StartAxisType[StartAxisType["Horizontal"] = 1] = "Horizontal"; + /**垂直排列 */ + StartAxisType[StartAxisType["Vertical"] = 2] = "Vertical"; +})(StartAxisType = exports.StartAxisType || (exports.StartAxisType = {})); +/** + * 列表 + * 根据cocos_example的listView改动而来 + * @author chenkai 2020.7.8 + * @example + * 1.创建cocos的ScrollView组件,添加List,设置List属性即可 + * + */ +var List = /** @class */ (function (_super) { + __extends(List, _super); + function List() { + var _this = _super !== null && _super.apply(this, arguments) || this; + //==================== 属性面板 ========================= + /**列表选项 */ + _this.itemRender = null; + /**排列方式 */ + _this.type = ListType.Vertical; + /**网格布局中的方向 */ + _this.startAxis = StartAxisType.Horizontal; + /**列表项之间X间隔 */ + _this.spaceX = 0; + /**列表项之间Y间隔 */ + _this.spaceY = 0; + /**上间距 */ + _this.padding_top = 0; + /**下间距 */ + _this.padding_buttom = 0; + /**左间距 */ + _this.padding_left = 0; + _this._padding = 0; + /**右间距 */ + _this.padding_right = 0; + //====================== 滚动容器 =============================== + /**列表滚动容器 */ + _this.scrollView = null; + /**scrollView的内容容器 */ + _this.content = null; + //======================== 列表项 =========================== + /**列表项数据 */ + _this.itemDataList = []; + /**应创建的实例数量 */ + _this.spawnCount = 0; + /**存放列表项实例的数组 */ + _this.itemList = []; + /**item的高度 */ + _this.itemHeight = 0; + /**item的宽度 */ + _this.itemWidth = 0; + /**存放不再使用中的列表项 */ + _this.itemPool = []; + //======================= 计算参数 ========================== + /**距离scrollView中心点的距离,超过这个距离的item会被重置,一般设置为 scrollVIew.height/2 + item.heigt/2 + space,因为这个距离item正好超出scrollView显示范围 */ + _this.halfScrollView = 0; + /**上一次content的X值,用于和现在content的X值比较,得出是向左还是向右滚动 */ + _this.lastContentPosX = 0; + /**上一次content的Y值,用于和现在content的Y值比较,得出是向上还是向下滚动 */ + _this.lastContentPosY = 0; + /**网格行数 */ + _this.gridRow = 0; + /**网格列数 */ + _this.gridCol = 0; + /**刷新时间,单位s */ + _this.updateTimer = 0; + /**刷新间隔,单位s */ + _this.updateInterval = 0.1; + /**是否滚动容器 */ + _this.bScrolling = false; + /**刷新的函数 */ + _this.updateFun = function () { }; + return _this; + } + List.prototype.onLoad = function () { + this.itemHeight = this.itemRender.height; + this.itemWidth = this.itemRender.width; + this.scrollView = this.node.getComponent(cc.ScrollView); + this.content = this.scrollView.content; + this.content.anchorX = 0; + this.content.anchorY = 1; + this.content.removeAllChildren(); + this.scrollView.node.on("scrolling", this.onScrolling, this); + }; + /** + * 列表数据 (列表数据复制使用,如果列表数据改变,则需要重新设置一遍数据) + * @param itemDataList item数据列表 + */ + List.prototype.setData = function (itemDataList) { + this.itemDataList = itemDataList.slice(); + this.updateContent(); + }; + /**计算列表的各项参数 */ + List.prototype.countListParam = function () { + var dataLen = this.itemDataList.length; + if (this.type == ListType.Vertical) { + this.scrollView.horizontal = false; + this.scrollView.vertical = true; + this.content.width = this.content.parent.width; + this.content.height = dataLen * this.itemHeight + (dataLen - 1) * this.spaceY + this.padding_top + this.padding_buttom; + this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) + 2; //计算创建的item实例数量,比当前scrollView容器能放下的item数量再加上2个 + this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; //计算bufferZone,item的显示范围 + this.updateFun = this.updateV; + } + else if (this.type == ListType.Horizontal) { + this.scrollView.horizontal = true; + this.scrollView.vertical = false; + this.content.width = dataLen * this.itemWidth + (dataLen - 1) * this.spaceX + this.padding_left + this.padding_right; + this.content.height = this.content.parent.height; + this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) + 2; + this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX; + this.updateFun = this.udpateH; + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + this.scrollView.horizontal = false; + this.scrollView.vertical = true; + this.content.width = this.content.parent.width; + //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效 + if (this.padding_left + this.padding_right + this.itemWidth + this.spaceX > this.content.width) { + this.padding_left = 0; + this.padding_right = 0; + console.error("padding_left或padding_right过大"); + } + this.gridCol = Math.floor((this.content.width - this.padding_left - this.padding_right) / (this.itemWidth + this.spaceX)); + this.gridRow = Math.ceil(dataLen / this.gridCol); + this.content.height = this.gridRow * this.itemHeight + (this.gridRow - 1) * this.spaceY + this.padding_top + this.padding_buttom; + this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) * this.gridCol + this.gridCol * 2; + this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; + this.updateFun = this.updateGrid_V; + } + else if (this.startAxis == StartAxisType.Horizontal) { + this.scrollView.horizontal = true; + this.scrollView.vertical = false; + //计算高间隔 + this.content.height = this.content.parent.height; + //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效 + if (this.padding_top + this.padding_buttom + this.itemHeight + this.spaceY > this.content.height) { + this.padding_top = 0; + this.padding_buttom = 0; + console.error("padding_top或padding_buttom过大"); + } + this.gridRow = Math.floor((this.content.height - this.padding_top - this.padding_buttom) / (this.itemHeight + this.spaceY)); + this.gridCol = Math.ceil(dataLen / this.gridRow); + this.content.width = this.gridCol * this.itemWidth + (this.gridCol - 1) * this.spaceX + this.padding_left + this.padding_right; + this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) * this.gridRow + this.gridRow * 2; + this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX; + this.updateFun = this.updateGrid_H; + } + } + }; + /** + * 创建列表 + * @param startIndex 起始显示的数据索引 0表示第一项 + * @param offset scrollView偏移量 + */ + List.prototype.createList = function (startIndex, offset) { + //当需要显示的数据长度 > 虚拟列表长度, 删除最末尾几个数据时,列表需要重置位置到scrollView最底端 + if (this.itemDataList.length > this.spawnCount && (startIndex + this.spawnCount - 1) >= this.itemDataList.length) { + startIndex = this.itemDataList.length - this.spawnCount; + offset = this.scrollView.getMaxScrollOffset(); + //当需要显示的数据长度 <= 虚拟列表长度, 隐藏多余的虚拟列表项 + } + else if (this.itemDataList.length <= this.spawnCount) { + startIndex = 0; + } + for (var i = 0; i < this.spawnCount; i++) { + var item = void 0; + //需要显示的数据索引在数据范围内,则item实例显示出来 + if (i + startIndex < this.itemDataList.length) { + if (this.itemList[i] == null) { + item = this.getItem(); + this.itemList.push(item); + item.parent = this.content; + } + else { + item = this.itemList[i]; + } + //需要显示的数据索引超过了数据范围,则item实例隐藏起来 + } + else { + //item实例数量 > 需要显示的数据量 + if (this.itemList.length > (this.itemDataList.length - startIndex)) { + item = this.itemList.pop(); + item.removeFromParent(); + this.itemPool.push(item); + } + continue; + } + var itemRender = item.getComponent(ItemRender_1.default); + itemRender.itemIndex = i + startIndex; + itemRender.data = this.itemDataList[i + startIndex]; + itemRender.dataChanged(); + if (this.type == ListType.Vertical) { + //因为content的锚点X是0,所以item的x值是content.with/2表示居中,锚点Y是1,所以item的y值从content顶部向下是0到负无穷。所以item.y= -item.height/2时,是在content的顶部。 + item.setPosition(this.content.width / 2, -item.height * (0.5 + i + startIndex) - this.spaceY * (i + startIndex) - this.padding_top); + } + else if (this.type == ListType.Horizontal) { + item.setPosition(item.width * (0.5 + i + startIndex) + this.spaceX * (i + startIndex) + this.padding_left, -this.content.height / 2); + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + var row = Math.floor((i + startIndex) / this.gridCol); + var col = (i + startIndex) % this.gridCol; + item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top); + item.opacity = 255; + } + else if (this.startAxis == StartAxisType.Horizontal) { + var row = (i + startIndex) % this.gridRow; + var col = Math.floor((i + startIndex) / this.gridRow); + item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top); + item.opacity = 255; + } + } + } + this.scrollView.scrollToOffset(offset); + }; + /**获取一个列表项 */ + List.prototype.getItem = function () { + if (this.itemPool.length == 0) { + return cc.instantiate(this.itemRender); + } + else { + return this.itemPool.pop(); + } + }; + List.prototype.update = function (dt) { + if (this.bScrolling == false) { + return; + } + this.updateTimer += dt; + if (this.updateTimer < this.updateInterval) { + return; + } + this.updateTimer = 0; + this.bScrolling = false; + this.updateFun(); + }; + List.prototype.onScrolling = function () { + this.bScrolling = true; + }; + /**垂直排列 */ + List.prototype.updateV = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isUp = this.scrollView.content.y > this.lastContentPosY; + var offset = (this.itemHeight + this.spaceY) * items.length; + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isUp) { + //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界 + if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.y = item.y - offset; + } + } + else { + //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界 + if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.y = item.y + offset; + } + } + } + this.lastContentPosY = this.scrollView.content.y; + }; + /**水平排列 */ + List.prototype.udpateH = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isRight = this.scrollView.content.x > this.lastContentPosX; + var offset = (this.itemWidth + this.spaceX) * items.length; + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isRight) { + //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界 + if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.x = item.x - offset; + } + } + else { + //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界 + if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.x = item.x + offset; + } + } + } + this.lastContentPosX = this.scrollView.content.x; + }; + /**网格垂直排列 */ + List.prototype.updateGrid_V = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isUp = this.scrollView.content.y > this.lastContentPosY; + var offset = (this.itemHeight + this.spaceY) * (this.spawnCount / this.gridCol); + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isUp) { + //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界 + if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridCol) * this.gridCol; + if (this.itemDataList[itemIndex] != null) { + item.y = item.y - offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.y = item.y - offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + else { //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界 + if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridCol) * this.gridCol; + if (this.itemDataList[itemIndex] != null) { + item.y = item.y + offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.y = item.y + offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + } + this.lastContentPosY = this.scrollView.content.y; + }; + /**网格水平排列 */ + List.prototype.updateGrid_H = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isRight = this.scrollView.content.x > this.lastContentPosX; + var offset = (this.itemWidth + this.spaceX) * (this.spawnCount / this.gridRow); + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isRight) { + //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界 + if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridRow) * this.gridRow; + if (this.itemDataList[itemIndex] != null) { + item.x = item.x - offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.x = item.x - offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + else { + //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界 + if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridRow) * this.gridRow; + if (this.itemDataList[itemIndex] != null) { + item.x = item.x + offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.x = item.x + offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + } + this.lastContentPosX = this.scrollView.content.x; + }; + /**获取item在scrollView的局部坐标 */ + List.prototype.getPositionInView = function (item) { + var worldPos = item.parent.convertToWorldSpaceAR(item.position); + var viewPos = this.scrollView.node.convertToNodeSpaceAR(worldPos); + return viewPos; + }; + /**获取列表数据 */ + List.prototype.getListData = function () { + return this.itemDataList; + }; + /** + * 增加一项数据到列表的末尾 + * @param data 数据 + */ + List.prototype.addItem = function (data) { + this.itemDataList.push(data); + this.updateContent(); + }; + /** + * 增加一项数据到列表指定位置 + * @param index 位置,0表示第1项 + * @param data 数据 + */ + List.prototype.addItemAt = function (index, data) { + if (this.itemDataList[index] != null || this.itemDataList.length == index) { + this.itemDataList.splice(index, 1, data); + this.updateContent(); + } + }; + /** + * 删除一项数据 + * @param index 删除项的位置 ,0表示第1项 + */ + List.prototype.deleteItem = function (index) { + if (this.itemDataList[index] != null) { + this.itemDataList.splice(index, 1); + this.updateContent(); + } + }; + /** + * 改变一项数据 + * @param index 位置,0表示第1项 + * @param data 替换的数据 + */ + List.prototype.changeItem = function (index, data) { + if (this.itemDataList[index] != null) { + this.itemDataList[index] = data; + this.updateContent(); + } + }; + /**获取第一个Item的位置 */ + List.prototype.updateContent = function () { + //显示列表实例为0个 + if (this.itemList.length == 0) { + this.countListParam(); + this.createList(0, new cc.Vec2(0, 0)); + //显示列表的实例不为0个,则需要重新排列item实例数组 + } + else { + if (this.type == ListType.Vertical) { + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + } + else if (this.type == ListType.Horizontal) { + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + } + else if (this.startAxis == StartAxisType.Horizontal) { + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + } + } + this.countListParam(); + //获取第一个item实例需要显示的数据索引 + var startIndex = this.itemList[0].getComponent(ItemRender_1.default).itemIndex; + if (this.type == ListType.Grid && this.startAxis == StartAxisType.Vertical) { + startIndex += (startIndex + this.spawnCount) % this.gridCol; + } + else if (this.type == ListType.Grid && this.startAxis == StartAxisType.Horizontal) { + startIndex += (startIndex + this.spawnCount) % this.gridRow; + } + //getScrollOffset()和scrollToOffset()的x值是相反的 + var offset = this.scrollView.getScrollOffset(); + offset.x = -offset.x; + this.createList(startIndex, offset); + } + }; + /**销毁 */ + List.prototype.onDestroy = function () { + //清理列表项 + var len = this.itemList.length; + for (var i = 0; i < len; i++) { + if (cc.isValid(this.itemList[i], true)) { + this.itemList[i].destroy(); + } + } + this.itemList.length = 0; + //清理对象池 + len = this.itemPool.length; + for (var i = 0; i < len; i++) { + if (cc.isValid(this.itemPool[i], true)) { + this.itemPool[i].destroy(); + } + } + this.itemPool.length = 0; + //清理列表数据 + this.itemDataList.length = 0; + }; + __decorate([ + property({ type: cc.Node, tooltip: "列表项" }) + ], List.prototype, "itemRender", void 0); + __decorate([ + property({ type: cc.Enum(ListType), tooltip: "排列方式" }) + ], List.prototype, "type", void 0); + __decorate([ + property({ type: cc.Enum(StartAxisType), tooltip: "网格布局中的方向", visible: function () { return this.type == ListType.Grid; } }) + ], List.prototype, "startAxis", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "列表项X间隔", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "spaceX", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "列表项Y间隔", visible: function () { return this.type == ListType.Vertical || this.type == ListType.Grid; } }) + ], List.prototype, "spaceY", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "上间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } }) + ], List.prototype, "padding_top", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "下间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } }) + ], List.prototype, "padding_buttom", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "左间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "padding_left", void 0); + __decorate([ + property(cc.Integer) + ], List.prototype, "_padding", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "右间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "padding_right", void 0); + List = __decorate([ + ccclass + ], List); + return List; +}(cc.Component)); +exports.default = List; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFJhbmtMaXN0XFxMaXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvQkFBb0I7QUFDcEIsd0VBQXdFO0FBQ3hFLG1CQUFtQjtBQUNuQixrRkFBa0Y7QUFDbEYsOEJBQThCO0FBQzlCLGtGQUFrRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRiwyQ0FBcUM7QUFFL0IsSUFBQSxLQUF3QixFQUFFLENBQUMsVUFBVSxFQUFuQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWtCLENBQUM7QUFFNUMsWUFBWTtBQUNaLElBQVksUUFPWDtBQVBELFdBQVksUUFBUTtJQUNoQixVQUFVO0lBQ1YsbURBQWMsQ0FBQTtJQUNkLFVBQVU7SUFDViwrQ0FBWSxDQUFBO0lBQ1osVUFBVTtJQUNWLHVDQUFRLENBQUE7QUFDWixDQUFDLEVBUFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFPbkI7QUFFRCxjQUFjO0FBQ2QsSUFBWSxhQUtYO0FBTEQsV0FBWSxhQUFhO0lBQ3JCLFVBQVU7SUFDViw2REFBYyxDQUFBO0lBQ2QsVUFBVTtJQUNWLHlEQUFZLENBQUE7QUFDaEIsQ0FBQyxFQUxXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBS3hCO0FBRUQ7Ozs7Ozs7R0FPRztBQUVIO0lBQWtDLHdCQUFZO0lBQTlDO1FBQUEscUVBeWlCQztRQXZpQkcscURBQXFEO1FBQ3JELFVBQVU7UUFFSCxnQkFBVSxHQUFZLElBQUksQ0FBQztRQUVsQyxVQUFVO1FBRUgsVUFBSSxHQUFhLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFFMUMsY0FBYztRQUVQLGVBQVMsR0FBa0IsYUFBYSxDQUFDLFVBQVUsQ0FBQztRQUUzRCxjQUFjO1FBRVAsWUFBTSxHQUFXLENBQUMsQ0FBQztRQUUxQixjQUFjO1FBRVAsWUFBTSxHQUFXLENBQUMsQ0FBQztRQUUxQixTQUFTO1FBRUYsaUJBQVcsR0FBVyxDQUFDLENB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SSxDQUFDLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs4Q0FDdEc7SUFLaEM7UUFEQyxRQUFRLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQzswQ0FDTztJQUk1QjtRQURDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxnQkFBSyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFBLENBQUMsQ0FBQyxFQUFFLENBQUM7K0NBQ3JHO0lBMUNoQixJQUFJO1FBRHhCLE9BQU87T0FDYSxJQUFJLENBeWlCeEI7SUFBRCxXQUFDO0NBemlCRCxBQXlpQkMsQ0F6aUJpQyxFQUFFLENBQUMsU0FBUyxHQXlpQjdDO2tCQXppQm9CLElBQUkiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMZWFybiBUeXBlU2NyaXB0OlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy90eXBlc2NyaXB0Lmh0bWxcclxuLy8gTGVhcm4gQXR0cmlidXRlOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9yZWZlcmVuY2UvYXR0cmlidXRlcy5odG1sXHJcbi8vIExlYXJuIGxpZmUtY3ljbGUgY2FsbGJhY2tzOlxyXG4vLyAgLSBodHRwczovL2RvY3MuY29jb3MuY29tL2NyZWF0b3IvbWFudWFsL2VuL3NjcmlwdGluZy9saWZlLWN5Y2xlLWNhbGxiYWNrcy5odG1sXHJcblxyXG5pbXBvcnQgSXRlbVJlbmRlciBmcm9tIFwiLi9JdGVtUmVuZGVyXCJcclxuXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHkgfSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG4vKirliJfooajmjpLliJfmlrnlvI8gKi9cclxuZXhwb3J0IGVudW0gTGlzdFR5cGUge1xyXG4gICAgLyoq5rC05bmz5o6S5YiXICovXHJcbiAgICBIb3Jpem9udGFsID0gMSxcclxuICAgIC8qKuWeguebtOaOkuWIlyAqL1xyXG4gICAgVmVydGljYWwgPSAyLFxyXG4gICAgLyoq572R5qC85o6S5YiXICovXHJcbiAgICBHcmlkID0gM1xyXG59XHJcblxyXG4vKirnvZHmoLzluIPlsYDkuK3nmoTmlrnlkJEgKi9cclxuZXhwb3J0IGVudW0gU3RhcnRBeGlzVHlwZSB7XHJcbiAgICAvKirmsLTlubPmjpLliJcgKi9cclxuICAgIEhvcml6b250YWwgPSAxLFxyXG4gICAgLyoq5Z6C55u05o6S5YiXICovXHJcbiAgICBWZXJ0aWNhbCA9IDIsXHJcbn1cclxuXHJcbi8qKlxyXG4gKiDliJfooahcclxuICog5qC55o2uY29jb3NfZXhhbXBsZeeahGxpc3RWaWV35pS55Yqo6ICM5p2lXHJcbiAqIEBhdXRob3IgY2hlbmthaSAyMDIwLjcuOFxyXG4gKiBAZXhhbXBsZVxyXG4gKiAgMS7liJvlu7pjb2Nvc+eahFNjcm9sbFZpZXfnu4Tku7bvvIzmt7vliqBMaXN077yM6K6+572uTGlzdOWxnuaAp+WNs+WPr1xyXG4gKiAgXHJcbiAqL1xyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaXN0IGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuXHJcbiAgICAvLz09PT09PT09PT09PT09PT09PT09IOWxnuaAp+mdouadvyA9PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAgICAvKirliJfooajpgInpobkgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLk5vZGUsIHRvb2x0aXA6IFwi5YiX6KGo6aG5XCIgfSlcclxuICAgIHB1YmxpYyBpdGVtUmVuZGVyOiBjYy5Ob2RlID0gbnVsbDtcclxuXHJcbiAgICAvKirmjpLliJfmlrnlvI8gKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkVudW0oTGlzdFR5cGUpLCB0b29sdGlwOiBcIuaOkuWIl+aWueW8j1wiIH0pXHJcbiAgICBwdWJsaWMgdHlwZTogTGlzdFR5cGUgPSBMaXN0VHlwZS5WZXJ0aWNhbDtcclxuXHJcbiAgICAvKirnvZHmoLzluIPlsYDkuK3nmoTmlrnlkJEgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkVudW0oU3RhcnRBeGlzVHlwZSksIHRvb2x0aXA6IFwi572R5qC85biD5bGA5Lit55qE5pa55ZCRXCIsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCB9IH0pXHJcbiAgICBwdWJsaWMgc3RhcnRBeGlzOiBTdGFydEF4aXNUeXBlID0gU3RhcnRBeGlzVHlwZS5Ib3Jpem9udGFsO1xyXG5cclxuICAgIC8qKuWIl+ihqOmhueS5i+mXtFjpl7TpmpQgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5YiX6KGo6aG5WOmXtOmalFwiLCB2aXNpYmxlKCkgeyByZXR1cm4gKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5Ib3Jpem9udGFsIHx8IHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkKSB9IH0pXHJcbiAgICBwdWJsaWMgc3BhY2VYOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKuWIl+ihqOmhueS5i+mXtFnpl7TpmpQgKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5YiX6KGo6aG5WemXtOmalFwiLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy50eXBlID09IExpc3RUeXBlLlZlcnRpY2FsIHx8IHRoaXMudHlwZSA9PSBMaXN0VHlwZS5HcmlkIH0gfSlcclxuICAgIHB1YmxpYyBzcGFjZVk6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLyoq5LiK6Ze06LedICovXHJcbiAgICBAcHJvcGVydHkoeyB0eXBlOiBjYy5JbnRlZ2VyLCB0b29sdGlwOiBcIuS4iumXtOi3nVwiLCB2aXNpYmxlKCkgeyByZXR1cm4gKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCB8fCB0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCkgfSB9KVxyXG4gICAgcHVibGljIHBhZGRpbmdfdG9wOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKuS4i+mXtOi3nSAqL1xyXG4gICAgQHByb3BlcnR5KHsgdHlwZTogY2MuSW50ZWdlciwgdG9vbHRpcDogXCLkuIvpl7Tot51cIiwgdmlzaWJsZSgpIHsgcmV0dXJuICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuVmVydGljYWwgfHwgdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIH0gfSlcclxuICAgIHB1YmxpYyBwYWRkaW5nX2J1dHRvbTogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKirlt6bpl7Tot50gKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5bem6Ze06LedXCIsIHZpc2libGUoKSB7IHJldHVybiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwgfHwgdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIH0gfSlcclxuICAgIHB1YmxpYyBwYWRkaW5nX2xlZnQ6IG51bWJlciA9IDA7XHJcblxyXG5cclxuXHJcbiAgICBAcHJvcGVydHkoY2MuSW50ZWdlcilcclxuICAgIHB1YmxpYyBfcGFkZGluZzogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKirlj7Ppl7Tot50gKi9cclxuICAgIEBwcm9wZXJ0eSh7IHR5cGU6IGNjLkludGVnZXIsIHRvb2x0aXA6IFwi5Y+z6Ze06LedXCIsIHZpc2libGUoKSB7IHJldHVybiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwgfHwgdGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIH0gfSlcclxuICAgIHB1YmxpYyBwYWRkaW5nX3JpZ2h0OiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8vPT09PT09PT09PT09PT09PT09PT09PSDmu5rliqjlrrnlmaggPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gICAgLyoq5YiX6KGo5rua5Yqo5a655ZmoICovXHJcbiAgICBwdWJsaWMgc2Nyb2xsVmlldzogY2MuU2Nyb2xsVmlldyA9IG51bGw7XHJcbiAgICAvKipzY3JvbGxWaWV355qE5YaF5a655a655ZmoICovXHJcbiAgICBwcml2YXRlIGNvbnRlbnQ6IGNjLk5vZGUgPSBudWxsO1xyXG5cclxuICAgIC8vPT09PT09PT09PT09PT09PT09PT09PT09IOWIl+ihqOmhuSA9PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgIC8qKuWIl+ihqOmhueaVsOaNriAqL1xyXG4gICAgcHJpdmF0ZSBpdGVtRGF0YUxpc3Q6IEFycmF5PGFueT4gPSBbXTtcclxuICAgIC8qKuW6lOWIm+W7uueahOWunuS+i+aVsOmHjyAqL1xyXG4gICAgcHJpdmF0ZSBzcGF3bkNvdW50OiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5a2Y5pS+5YiX6KGo6aG55a6e5L6L55qE5pWw57uEICovXHJcbiAgICBwcml2YXRlIGl0ZW1MaXN0OiBBcnJheTxjYy5Ob2RlPiA9IFtdO1xyXG4gICAgLyoqaXRlbeeahOmrmOW6piAqL1xyXG4gICAgcHJpdmF0ZSBpdGVtSGVpZ2h0OiBudW1iZXIgPSAwO1xyXG4gICAgLyoqaXRlbeeahOWuveW6piAqL1xyXG4gICAgcHJpdmF0ZSBpdGVtV2lkdGg6IG51bWJlciA9IDA7XHJcbiAgICAvKirlrZjmlL7kuI3lho3kvb/nlKjkuK3nmoTliJfooajpobkgKi9cclxuICAgIHByaXZhdGUgaXRlbVBvb2w6IEFycmF5PGNjLk5vZGU+ID0gW107XHJcblxyXG4gICAgLy89PT09PT09PT09PT09PT09PT09PT09PSDorqHnrpflj4LmlbAgPT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICAgIC8qKui3neemu3Njcm9sbFZpZXfkuK3lv4PngrnnmoTot53nprvvvIzotoXov4fov5nkuKrot53nprvnmoRpdGVt5Lya6KKr6YeN572u77yM5LiA6Iis6K6+572u5Li6IHNjcm9sbFZJZXcuaGVpZ2h0LzIgKyBpdGVtLmhlaWd0LzIgKyBzcGFjZe+8jOWboOS4uui/meS4qui3neemu2l0ZW3mraPlpb3otoXlh7pzY3JvbGxWaWV35pi+56S66IyD5Zu0ICovXHJcbiAgICBwcml2YXRlIGhhbGZTY3JvbGxWaWV3OiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5LiK5LiA5qyhY29udGVudOeahFjlgLzvvIznlKjkuo7lkoznjrDlnKhjb250ZW5055qEWOWAvOavlOi+g++8jOW+l+WHuuaYr+WQkeW3pui/mOaYr+WQkeWPs+a7muWKqCAqL1xyXG4gICAgcHJpdmF0ZSBsYXN0Q29udGVudFBvc1g6IG51bWJlciA9IDA7XHJcbiAgICAvKirkuIrkuIDmrKFjb250ZW5055qEWeWAvO+8jOeUqOS6juWSjOeOsOWcqGNvbnRlbnTnmoRZ5YC85q+U6L6D77yM5b6X5Ye65piv5ZCR5LiK6L+Y5piv5ZCR5LiL5rua5YqoICovXHJcbiAgICBwcml2YXRlIGxhc3RDb250ZW50UG9zWTogbnVtYmVyID0gMDtcclxuICAgIC8qKue9keagvOihjOaVsCAqL1xyXG4gICAgcHJpdmF0ZSBncmlkUm93OiBudW1iZXIgPSAwO1xyXG4gICAgLyoq572R5qC85YiX5pWwICovXHJcbiAgICBwcml2YXRlIGdyaWRDb2w6IG51bWJlciA9IDA7XHJcbiAgICAvKirliLfmlrDml7bpl7TvvIzljZXkvY1zICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZVRpbWVyOiBudW1iZXIgPSAwO1xyXG4gICAgLyoq5Yi35paw6Ze06ZqU77yM5Y2V5L2NcyAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVJbnRlcnZhbDogbnVtYmVyID0gMC4xO1xyXG4gICAgLyoq5piv5ZCm5rua5Yqo5a655ZmoICovXHJcbiAgICBwcml2YXRlIGJTY3JvbGxpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIC8qKuWIt+aWsOeahOWHveaVsCAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVGdW46IEZ1bmN0aW9uID0gZnVuY3Rpb24gKCkgeyB9O1xyXG5cclxuICAgIG9uTG9hZCgpIHtcclxuICAgICAgICB0aGlzLml0ZW1IZWlnaHQgPSB0aGlzLml0ZW1SZW5kZXIuaGVpZ2h0O1xyXG4gICAgICAgIHRoaXMuaXRlbVdpZHRoID0gdGhpcy5pdGVtUmVuZGVyLndpZHRoO1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsVmlldyA9IHRoaXMubm9kZS5nZXRDb21wb25lbnQoY2MuU2Nyb2xsVmlldyk7XHJcbiAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQ7XHJcbiAgICAgICAgdGhpcy5jb250ZW50LmFuY2hvclggPSAwO1xyXG4gICAgICAgIHRoaXMuY29udGVudC5hbmNob3JZID0gMTtcclxuICAgICAgICB0aGlzLmNvbnRlbnQucmVtb3ZlQWxsQ2hpbGRyZW4oKTtcclxuICAgICAgICB0aGlzLnNjcm9sbFZpZXcubm9kZS5vbihcInNjcm9sbGluZ1wiLCB0aGlzLm9uU2Nyb2xsaW5nLCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWIl+ihqOaVsOaNriAo5YiX6KGo5pWw5o2u5aSN5Yi25L2/55So77yM5aaC5p6c5YiX6KGo5pWw5o2u5pS55Y+Y77yM5YiZ6ZyA6KaB6YeN5paw6K6+572u5LiA6YGN5pWw5o2uKVxyXG4gICAgICogQHBhcmFtIGl0ZW1EYXRhTGlzdCBpdGVt5pWw5o2u5YiX6KGoXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXREYXRhKGl0ZW1EYXRhTGlzdDogQXJyYXk8YW55Pikge1xyXG4gICAgICAgIHRoaXMuaXRlbURhdGFMaXN0ID0gaXRlbURhdGFMaXN0LnNsaWNlKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XHJcbiAgICAgICBcclxuICAgIH1cclxuXHJcbiAgICAvKirorqHnrpfliJfooajnmoTlkITpobnlj4LmlbAgKi9cclxuICAgIHByaXZhdGUgY291bnRMaXN0UGFyYW0oKSB7XHJcbiAgICAgICAgbGV0IGRhdGFMZW4gPSB0aGlzLml0ZW1EYXRhTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcuaG9yaXpvbnRhbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcudmVydGljYWwgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQud2lkdGggPSB0aGlzLmNvbnRlbnQucGFyZW50LndpZHRoO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQuaGVpZ2h0ID0gZGF0YUxlbiAqIHRoaXMuaXRlbUhlaWdodCArIChkYXRhTGVuIC0gMSkgKiB0aGlzLnNwYWNlWSArIHRoaXMucGFkZGluZ190b3AgKyB0aGlzLnBhZGRpbmdfYnV0dG9tO1xyXG4gICAgICAgICAgICB0aGlzLnNwYXduQ291bnQgPSBNYXRoLnJvdW5kKHRoaXMuc2Nyb2xsVmlldy5ub2RlLmhlaWdodCAvICh0aGlzLml0ZW1IZWlnaHQgKyB0aGlzLnNwYWNlWSkpICsgMjsgLy/orqHnrpfliJvlu7rnmoRpdGVt5a6e5L6L5pWw6YeP77yM5q+U5b2T5YmNc2Nyb2xsVmlld+WuueWZqOiDveaUvuS4i+eahGl0ZW3mlbDph4/lho3liqDkuIoy5LiqXHJcbiAgICAgICAgICAgIHRoaXMuaGFsZlNjcm9sbFZpZXcgPSB0aGlzLnNjcm9sbFZpZXcubm9kZS5oZWlnaHQgLyAyICsgdGhpcy5pdGVtSGVpZ2h0IC8gMiArIHRoaXMuc3BhY2VZOyAvL+iuoeeul2J1ZmZlclpvbmXvvIxpdGVt55qE5pi+56S66IyD5Zu0XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRnVuID0gdGhpcy51cGRhdGVWO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxWaWV3Lmhvcml6b250YWwgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcudmVydGljYWwgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50LndpZHRoID0gZGF0YUxlbiAqIHRoaXMuaXRlbVdpZHRoICsgKGRhdGFMZW4gLSAxKSAqIHRoaXMuc3BhY2VYICsgdGhpcy5wYWRkaW5nX2xlZnQgKyB0aGlzLnBhZGRpbmdfcmlnaHQ7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGVudC5oZWlnaHQgPSB0aGlzLmNvbnRlbnQucGFyZW50LmhlaWdodDtcclxuICAgICAgICAgICAgdGhpcy5zcGF3bkNvdW50ID0gTWF0aC5yb3VuZCh0aGlzLnNjcm9sbFZpZXcubm9kZS53aWR0aCAvICh0aGlzLml0ZW1XaWR0aCArIHRoaXMuc3BhY2VYKSkgKyAyO1xyXG4gICAgICAgICAgICB0aGlzLmhhbGZTY3JvbGxWaWV3ID0gdGhpcy5zY3JvbGxWaWV3Lm5vZGUud2lkdGggLyAyICsgdGhpcy5pdGVtV2lkdGggLyAyICsgdGhpcy5zcGFjZVg7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRnVuID0gdGhpcy51ZHBhdGVIO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlldy5ob3Jpem9udGFsID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFZpZXcudmVydGljYWwgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50LndpZHRoID0gdGhpcy5jb250ZW50LnBhcmVudC53aWR0aDtcclxuICAgICAgICAgICAgICAgIC8v5aaC5p6cbGVmdOWSjHJpZ2h06Ze06ZqU6L+H5aSn77yM5a+86Ie05pS+5LiN5LiL5LiA5LiqaXRlbe+8jOWImWxlZnTlkoxyaWdodOmDveiuvue9ruS4ujDvvIznm7jlvZPkuo7kuI3nlJ/mlYhcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhZGRpbmdfbGVmdCArIHRoaXMucGFkZGluZ19yaWdodCArIHRoaXMuaXRlbVdpZHRoICsgdGhpcy5zcGFjZVggPiB0aGlzLmNvbnRlbnQud2lkdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhZGRpbmdfbGVmdCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWRkaW5nX3JpZ2h0ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwicGFkZGluZ19sZWZ05oiWcGFkZGluZ19yaWdodOi/h+Wkp1wiKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWRDb2wgPSBNYXRoLmZsb29yKCh0aGlzLmNvbnRlbnQud2lkdGggLSB0aGlzLnBhZGRpbmdfbGVmdCAtIHRoaXMucGFkZGluZ19yaWdodCkgLyAodGhpcy5pdGVtV2lkdGggKyB0aGlzLnNwYWNlWCkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkUm93ID0gTWF0aC5jZWlsKGRhdGFMZW4gLyB0aGlzLmdyaWRDb2wpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50LmhlaWdodCA9IHRoaXMuZ3JpZFJvdyAqIHRoaXMuaXRlbUhlaWdodCArICh0aGlzLmdyaWRSb3cgLSAxKSAqIHRoaXMuc3BhY2VZICsgdGhpcy5wYWRkaW5nX3RvcCArIHRoaXMucGFkZGluZ19idXR0b207XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNwYXduQ291bnQgPSBNYXRoLnJvdW5kKHRoaXMuc2Nyb2xsVmlldy5ub2RlLmhlaWdodCAvICh0aGlzLml0ZW1IZWlnaHQgKyB0aGlzLnNwYWNlWSkpICogdGhpcy5ncmlkQ29sICsgdGhpcy5ncmlkQ29sICogMjtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFsZlNjcm9sbFZpZXcgPSB0aGlzLnNjcm9sbFZpZXcubm9kZS5oZWlnaHQgLyAyICsgdGhpcy5pdGVtSGVpZ2h0IC8gMiArIHRoaXMuc3BhY2VZO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVGdW4gPSB0aGlzLnVwZGF0ZUdyaWRfVjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlldy5ob3Jpem9udGFsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVmlldy52ZXJ0aWNhbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgLy/orqHnrpfpq5jpl7TpmpRcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC5oZWlnaHQgPSB0aGlzLmNvbnRlbnQucGFyZW50LmhlaWdodDtcclxuICAgICAgICAgICAgICAgIC8v5aaC5p6cbGVmdOWSjHJpZ2h06Ze06ZqU6L+H5aSn77yM5a+86Ie05pS+5LiN5LiL5LiA5LiqaXRlbe+8jOWImWxlZnTlkoxyaWdodOmDveiuvue9ruS4ujDvvIznm7jlvZPkuo7kuI3nlJ/mlYhcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnBhZGRpbmdfdG9wICsgdGhpcy5wYWRkaW5nX2J1dHRvbSArIHRoaXMuaXRlbUhlaWdodCArIHRoaXMuc3BhY2VZID4gdGhpcy5jb250ZW50LmhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFkZGluZ190b3AgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFkZGluZ19idXR0b20gPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJwYWRkaW5nX3RvcOaIlnBhZGRpbmdfYnV0dG9t6L+H5aSnXCIpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZFJvdyA9IE1hdGguZmxvb3IoKHRoaXMuY29udGVudC5oZWlnaHQgLSB0aGlzLnBhZGRpbmdfdG9wIC0gdGhpcy5wYWRkaW5nX2J1dHRvbSkgLyAodGhpcy5pdGVtSGVpZ2h0ICsgdGhpcy5zcGFjZVkpKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZENvbCA9IE1hdGguY2VpbChkYXRhTGVuIC8gdGhpcy5ncmlkUm93KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC53aWR0aCA9IHRoaXMuZ3JpZENvbCAqIHRoaXMuaXRlbVdpZHRoICsgKHRoaXMuZ3JpZENvbCAtIDEpICogdGhpcy5zcGFjZVggKyB0aGlzLnBhZGRpbmdfbGVmdCArIHRoaXMucGFkZGluZ19yaWdodDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3Bhd25Db3VudCA9IE1hdGgucm91bmQodGhpcy5zY3JvbGxWaWV3Lm5vZGUud2lkdGggLyAodGhpcy5pdGVtV2lkdGggKyB0aGlzLnNwYWNlWCkpICogdGhpcy5ncmlkUm93ICsgdGhpcy5ncmlkUm93ICogMjtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFsZlNjcm9sbFZpZXcgPSB0aGlzLnNjcm9sbFZpZXcubm9kZS53aWR0aCAvIDIgKyB0aGlzLml0ZW1XaWR0aCAvIDIgKyB0aGlzLnNwYWNlWDtcclxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRnVuID0gdGhpcy51cGRhdGVHcmlkX0g7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliJvlu7rliJfooaggXHJcbiAgICAgKiBAcGFyYW0gc3RhcnRJbmRleCDotbflp4vmmL7npLrnmoTmlbDmja7ntKLlvJUgMOihqOekuuesrOS4gOmhuVxyXG4gICAgICogQHBhcmFtIG9mZnNldCAgICAgc2Nyb2xsVmlld+WBj+enu+mHj1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNyZWF0ZUxpc3Qoc3RhcnRJbmRleDogbnVtYmVyLCBvZmZzZXQ6IGNjLlZlYzIpIHtcclxuICAgICAgICAvL+W9k+mcgOimgeaYvuekuueahOaVsOaNrumVv+W6piA+IOiZmuaLn+WIl+ihqOmVv+W6pu+8jCDliKDpmaTmnIDmnKvlsL7lh6DkuKrmlbDmja7ml7bvvIzliJfooajpnIDopoHph43nva7kvY3nva7liLBzY3JvbGxWaWV35pyA5bqV56uvXHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCA+IHRoaXMuc3Bhd25Db3VudCAmJiAoc3RhcnRJbmRleCArIHRoaXMuc3Bhd25Db3VudCAtIDEpID49IHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICBzdGFydEluZGV4ID0gdGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoIC0gdGhpcy5zcGF3bkNvdW50O1xyXG4gICAgICAgICAgICBvZmZzZXQgPSB0aGlzLnNjcm9sbFZpZXcuZ2V0TWF4U2Nyb2xsT2Zmc2V0KCk7XHJcblxyXG4gICAgICAgICAgICAvL+W9k+mcgOimgeaYvuekuueahOaVsOaNrumVv+W6piA8PSDomZrmi5/liJfooajplb/luqbvvIwg6ZqQ6JeP5aSa5L2Z55qE6Jma5ouf5YiX6KGo6aG5IFxyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoIDw9IHRoaXMuc3Bhd25Db3VudCkge1xyXG4gICAgICAgICAgICBzdGFydEluZGV4ID0gMDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zcGF3bkNvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGl0ZW06IGNjLk5vZGU7XHJcbiAgICAgICAgICAgIC8v6ZyA6KaB5pi+56S655qE5pWw5o2u57Si5byV5Zyo5pWw5o2u6IyD5Zu05YaF77yM5YiZaXRlbeWunuS+i+aYvuekuuWHuuadpVxyXG4gICAgICAgICAgICBpZiAoaSArIHN0YXJ0SW5kZXggPCB0aGlzLml0ZW1EYXRhTGlzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1MaXN0W2ldID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gdGhpcy5nZXRJdGVtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ucGFyZW50ID0gdGhpcy5jb250ZW50O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gdGhpcy5pdGVtTGlzdFtpXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8v6ZyA6KaB5pi+56S655qE5pWw5o2u57Si5byV6LaF6L+H5LqG5pWw5o2u6IyD5Zu077yM5YiZaXRlbeWunuS+i+makOiXj+i1t+adpVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5a6e5L6L5pWw6YePID4g6ZyA6KaB5pi+56S655qE5pWw5o2u6YePXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtTGlzdC5sZW5ndGggPiAodGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoIC0gc3RhcnRJbmRleCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gdGhpcy5pdGVtTGlzdC5wb3AoKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnJlbW92ZUZyb21QYXJlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1Qb29sLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpICsgc3RhcnRJbmRleDtcclxuICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaSArIHN0YXJ0SW5kZXhdO1xyXG4gICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLlZlcnRpY2FsKSB7XHJcbiAgICAgICAgICAgICAgICAvL+WboOS4umNvbnRlbnTnmoTplJrngrlY5pivMO+8jOaJgOS7pWl0ZW3nmoR45YC85pivY29udGVudC53aXRoLzLooajnpLrlsYXkuK3vvIzplJrngrlZ5pivMe+8jOaJgOS7pWl0ZW3nmoR55YC85LuOY29udGVudOmhtumDqOWQkeS4i+aYrzDliLDotJ/ml6DnqbfjgILmiYDku6VpdGVtLnk9IC1pdGVtLmhlaWdodC8y5pe277yM5piv5ZyoY29udGVudOeahOmhtumDqOOAglxyXG4gICAgICAgICAgICAgICAgaXRlbS5zZXRQb3NpdGlvbih0aGlzLmNvbnRlbnQud2lkdGggLyAyLCAtaXRlbS5oZWlnaHQgKiAoMC41ICsgaSArIHN0YXJ0SW5kZXgpIC0gdGhpcy5zcGFjZVkgKiAoaSArIHN0YXJ0SW5kZXgpIC0gdGhpcy5wYWRkaW5nX3RvcCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0uc2V0UG9zaXRpb24oaXRlbS53aWR0aCAqICgwLjUgKyBpICsgc3RhcnRJbmRleCkgKyB0aGlzLnNwYWNlWCAqIChpICsgc3RhcnRJbmRleCkgKyB0aGlzLnBhZGRpbmdfbGVmdCwgLXRoaXMuY29udGVudC5oZWlnaHQgLyAyKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgcm93ID0gTWF0aC5mbG9vcigoaSArIHN0YXJ0SW5kZXgpIC8gdGhpcy5ncmlkQ29sKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgY29sID0gKGkgKyBzdGFydEluZGV4KSAlIHRoaXMuZ3JpZENvbDtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnNldFBvc2l0aW9uKGl0ZW0ud2lkdGggKiAoMC41ICsgY29sKSArIHRoaXMuc3BhY2VYICogY29sICsgdGhpcy5wYWRkaW5nX2xlZnQsIC1pdGVtLmhlaWdodCAqICgwLjUgKyByb3cpIC0gdGhpcy5zcGFjZVkgKiByb3cgLSB0aGlzLnBhZGRpbmdfdG9wKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuSG9yaXpvbnRhbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciByb3cgPSAoaSArIHN0YXJ0SW5kZXgpICUgdGhpcy5ncmlkUm93O1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBjb2wgPSBNYXRoLmZsb29yKChpICsgc3RhcnRJbmRleCkgLyB0aGlzLmdyaWRSb3cpO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uc2V0UG9zaXRpb24oaXRlbS53aWR0aCAqICgwLjUgKyBjb2wpICsgdGhpcy5zcGFjZVggKiBjb2wgKyB0aGlzLnBhZGRpbmdfbGVmdCwgLWl0ZW0uaGVpZ2h0ICogKDAuNSArIHJvdykgLSB0aGlzLnNwYWNlWSAqIHJvdyAtIHRoaXMucGFkZGluZ190b3ApO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zY3JvbGxWaWV3LnNjcm9sbFRvT2Zmc2V0KG9mZnNldCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoq6I635Y+W5LiA5Liq5YiX6KGo6aG5ICovXHJcbiAgICBwcml2YXRlIGdldEl0ZW0oKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbVBvb2wubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNjLmluc3RhbnRpYXRlKHRoaXMuaXRlbVJlbmRlcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbVBvb2wucG9wKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZShkdCkge1xyXG4gICAgICAgIGlmICh0aGlzLmJTY3JvbGxpbmcgPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVwZGF0ZVRpbWVyICs9IGR0O1xyXG4gICAgICAgIGlmICh0aGlzLnVwZGF0ZVRpbWVyIDwgdGhpcy51cGRhdGVJbnRlcnZhbCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBkYXRlVGltZXIgPSAwO1xyXG4gICAgICAgIHRoaXMuYlNjcm9sbGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRnVuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TY3JvbGxpbmcoKSB7XHJcbiAgICAgICAgdGhpcy5iU2Nyb2xsaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKirlnoLnm7TmjpLliJcgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlVigpIHtcclxuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLml0ZW1MaXN0O1xyXG4gICAgICAgIGxldCBpdGVtO1xyXG4gICAgICAgIGxldCBidWZmZXJab25lID0gdGhpcy5oYWxmU2Nyb2xsVmlldztcclxuICAgICAgICBsZXQgaXNVcCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50LnkgPiB0aGlzLmxhc3RDb250ZW50UG9zWTtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gKHRoaXMuaXRlbUhlaWdodCArIHRoaXMuc3BhY2VZKSAqIGl0ZW1zLmxlbmd0aDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGl0ZW0gPSBpdGVtc1tpXTtcclxuICAgICAgICAgICAgbGV0IHZpZXdQb3MgPSB0aGlzLmdldFBvc2l0aW9uSW5WaWV3KGl0ZW0pO1xyXG4gICAgICAgICAgICBpZiAoaXNVcCkge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5LiK5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+S4iui+ueeVjO+8jOWwhml0ZW3np7vliqjliLDkuIvmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5LiL5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOS4i+i+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueSA+IGJ1ZmZlclpvbmUgJiYgaXRlbS55IC0gb2Zmc2V0IC0gdGhpcy5wYWRkaW5nX2J1dHRvbSA+IC10aGlzLmNvbnRlbnQuaGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggKyBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy9pdGVt5LiL5ruR5pe277yM6LaF5Ye65LqGc2Nyb2xsVmlld+S4i+i+ueeVjO+8jOWwhml0ZW3np7vliqjliLDkuIrmlrnlpI3nlKjvvIxpdGVt56e75Yqo5Yiw5LiK5pa555qE5L2N572u5b+F6aG75LiN6LaF6L+HY29udGVudOeahOS4iui+ueeVjFxyXG4gICAgICAgICAgICAgICAgaWYgKHZpZXdQb3MueSA8IC1idWZmZXJab25lICYmIGl0ZW0ueSArIG9mZnNldCArIHRoaXMucGFkZGluZ190b3AgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggLSBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvbnRlbnRQb3NZID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueTtcclxuICAgIH1cclxuXHJcbiAgICAvKirmsLTlubPmjpLliJcgKi9cclxuICAgIHByaXZhdGUgdWRwYXRlSCgpIHtcclxuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLml0ZW1MaXN0O1xyXG4gICAgICAgIGxldCBpdGVtO1xyXG4gICAgICAgIGxldCBidWZmZXJab25lID0gdGhpcy5oYWxmU2Nyb2xsVmlldztcclxuICAgICAgICBsZXQgaXNSaWdodCA9IHRoaXMuc2Nyb2xsVmlldy5jb250ZW50LnggPiB0aGlzLmxhc3RDb250ZW50UG9zWDtcclxuICAgICAgICBsZXQgb2Zmc2V0ID0gKHRoaXMuaXRlbVdpZHRoICsgdGhpcy5zcGFjZVgpICogaXRlbXMubGVuZ3RoO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaXRlbSA9IGl0ZW1zW2ldO1xyXG4gICAgICAgICAgICBsZXQgdmlld1BvcyA9IHRoaXMuZ2V0UG9zaXRpb25JblZpZXcoaXRlbSk7XHJcbiAgICAgICAgICAgIGlmIChpc1JpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lj7Pmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35Y+z6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOW3puaWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlt6bmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5bem6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54ID4gYnVmZmVyWm9uZSAmJiBpdGVtLnggLSBvZmZzZXQgLSB0aGlzLnBhZGRpbmdfbGVmdCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVJlbmRlcjogSXRlbVJlbmRlciA9IGl0ZW0uZ2V0Q29tcG9uZW50KEl0ZW1SZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpdGVtUmVuZGVyLml0ZW1JbmRleCAtIGl0ZW1zLmxlbmd0aDtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGEgPSB0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YUNoYW5nZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtLnggPSBpdGVtLnggLSBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lt6bmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35bem6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOWPs+aWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlj7PmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5Y+z6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54IDwgLWJ1ZmZlclpvbmUgJiYgaXRlbS54ICsgb2Zmc2V0ICsgdGhpcy5wYWRkaW5nX3JpZ2h0IDwgdGhpcy5jb250ZW50LndpZHRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggKyBpdGVtcy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS54ID0gaXRlbS54ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvbnRlbnRQb3NYID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueDtcclxuICAgIH1cclxuXHJcbiAgICAvKirnvZHmoLzlnoLnm7TmjpLliJcgKi9cclxuICAgIHByaXZhdGUgdXBkYXRlR3JpZF9WKCkge1xyXG4gICAgICAgIGxldCBpdGVtcyA9IHRoaXMuaXRlbUxpc3Q7XHJcbiAgICAgICAgbGV0IGl0ZW06IGNjLk5vZGU7XHJcbiAgICAgICAgbGV0IGJ1ZmZlclpvbmUgPSB0aGlzLmhhbGZTY3JvbGxWaWV3O1xyXG4gICAgICAgIGxldCBpc1VwID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueSA+IHRoaXMubGFzdENvbnRlbnRQb3NZO1xyXG4gICAgICAgIGxldCBvZmZzZXQgPSAodGhpcy5pdGVtSGVpZ2h0ICsgdGhpcy5zcGFjZVkpICogKHRoaXMuc3Bhd25Db3VudCAvIHRoaXMuZ3JpZENvbCk7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpdGVtID0gaXRlbXNbaV07XHJcbiAgICAgICAgICAgIGxldCB2aWV3UG9zID0gdGhpcy5nZXRQb3NpdGlvbkluVmlldyhpdGVtKTtcclxuICAgICAgICAgICAgaWYgKGlzVXApIHtcclxuICAgICAgICAgICAgICAgIC8vaXRlbeS4iua7keaXtu+8jOi2heWHuuS6hnNjcm9sbFZpZXfkuIrovrnnlYzvvIzlsIZpdGVt56e75Yqo5Yiw5LiL5pa55aSN55So77yMaXRlbeenu+WKqOWIsOS4i+aWueeahOS9jee9ruW/hemhu+S4jei2hei/h2NvbnRlbnTnmoTkuIvovrnnlYxcclxuICAgICAgICAgICAgICAgIGlmICh2aWV3UG9zLnkgPiBidWZmZXJab25lICYmIGl0ZW0ueSAtIG9mZnNldCAtIHRoaXMucGFkZGluZ19idXR0b20gPiAtdGhpcy5jb250ZW50LmhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtUmVuZGVyOiBJdGVtUmVuZGVyID0gaXRlbS5nZXRDb21wb25lbnQoSXRlbVJlbmRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1JbmRleCA9IGl0ZW1SZW5kZXIuaXRlbUluZGV4ICsgKHRoaXMuc3Bhd25Db3VudCAvIHRoaXMuZ3JpZENvbCkgKiB0aGlzLmdyaWRDb2w7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnkgPSBpdGVtLnkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGEgPSB0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLmRhdGFDaGFuZ2VkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDI1NTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnkgPSBpdGVtLnkgLSBvZmZzZXQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuaXRlbUluZGV4ID0gaXRlbUluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHsvL2l0ZW3kuIvmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35LiL6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOS4iuaWueWkjeeUqO+8jGl0ZW3np7vliqjliLDkuIrmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5LiK6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy55IDwgLWJ1ZmZlclpvbmUgJiYgaXRlbS55ICsgb2Zmc2V0ICsgdGhpcy5wYWRkaW5nX3RvcCA8IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVJlbmRlcjogSXRlbVJlbmRlciA9IGl0ZW0uZ2V0Q29tcG9uZW50KEl0ZW1SZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpdGVtUmVuZGVyLml0ZW1JbmRleCAtICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRDb2wpICogdGhpcy5ncmlkQ29sO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS55ID0gaXRlbS55ICsgb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sYXN0Q29udGVudFBvc1kgPSB0aGlzLnNjcm9sbFZpZXcuY29udGVudC55O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKue9keagvOawtOW5s+aOkuWIlyAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVHcmlkX0goKSB7XHJcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5pdGVtTGlzdDtcclxuICAgICAgICBsZXQgaXRlbTtcclxuICAgICAgICBsZXQgYnVmZmVyWm9uZSA9IHRoaXMuaGFsZlNjcm9sbFZpZXc7XHJcbiAgICAgICAgbGV0IGlzUmlnaHQgPSB0aGlzLnNjcm9sbFZpZXcuY29udGVudC54ID4gdGhpcy5sYXN0Q29udGVudFBvc1g7XHJcbiAgICAgICAgbGV0IG9mZnNldCA9ICh0aGlzLml0ZW1XaWR0aCArIHRoaXMuc3BhY2VYKSAqICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRSb3cpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaXRlbSA9IGl0ZW1zW2ldO1xyXG4gICAgICAgICAgICBsZXQgdmlld1BvcyA9IHRoaXMuZ2V0UG9zaXRpb25JblZpZXcoaXRlbSk7XHJcbiAgICAgICAgICAgIGlmIChpc1JpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lj7Pmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35Y+z6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOW3puaWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlt6bmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5bem6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54ID4gYnVmZmVyWm9uZSAmJiBpdGVtLnggLSBvZmZzZXQgLSB0aGlzLnBhZGRpbmdfbGVmdCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbVJlbmRlcjogSXRlbVJlbmRlciA9IGl0ZW0uZ2V0Q29tcG9uZW50KEl0ZW1SZW5kZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtSW5kZXggPSBpdGVtUmVuZGVyLml0ZW1JbmRleCAtICh0aGlzLnNwYXduQ291bnQgLyB0aGlzLmdyaWRSb3cpICogdGhpcy5ncmlkUm93O1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLml0ZW1EYXRhTGlzdFtpdGVtSW5kZXhdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS54ID0gaXRlbS54IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhID0gdGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5kYXRhQ2hhbmdlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLm9wYWNpdHkgPSAyNTU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS54ID0gaXRlbS54IC0gb2Zmc2V0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtUmVuZGVyLml0ZW1JbmRleCA9IGl0ZW1JbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvL2l0ZW3lt6bmu5Hml7bvvIzotoXlh7rkuoZzY3JvbGxWaWV35bem6L6555WM77yM5bCGaXRlbeenu+WKqOWIsOWPs+aWueWkjeeUqO+8jGl0ZW3np7vliqjliLDlj7PmlrnnmoTkvY3nva7lv4XpobvkuI3otoXov4djb250ZW5055qE5Y+z6L6555WMXHJcbiAgICAgICAgICAgICAgICBpZiAodmlld1Bvcy54IDwgLWJ1ZmZlclpvbmUgJiYgaXRlbS54ICsgb2Zmc2V0ICsgdGhpcy5wYWRkaW5nX3JpZ2h0IDwgdGhpcy5jb250ZW50LndpZHRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1SZW5kZXI6IEl0ZW1SZW5kZXIgPSBpdGVtLmdldENvbXBvbmVudChJdGVtUmVuZGVyKTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbUluZGV4ID0gaXRlbVJlbmRlci5pdGVtSW5kZXggKyAodGhpcy5zcGF3bkNvdW50IC8gdGhpcy5ncmlkUm93KSAqIHRoaXMuZ3JpZFJvdztcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pdGVtRGF0YUxpc3RbaXRlbUluZGV4XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueCA9IGl0ZW0ueCArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YSA9IHRoaXMuaXRlbURhdGFMaXN0W2l0ZW1JbmRleF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1SZW5kZXIuZGF0YUNoYW5nZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ueCA9IGl0ZW0ueCArIG9mZnNldDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVJlbmRlci5pdGVtSW5kZXggPSBpdGVtSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0ub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdENvbnRlbnRQb3NYID0gdGhpcy5zY3JvbGxWaWV3LmNvbnRlbnQueDtcclxuICAgIH1cclxuXHJcbiAgICAvKirojrflj5ZpdGVt5Zyoc2Nyb2xsVmlld+eahOWxgOmDqOWdkOaghyAqL1xyXG4gICAgcHJpdmF0ZSBnZXRQb3NpdGlvbkluVmlldyhpdGVtKSB7XHJcbiAgICAgICAgbGV0IHdvcmxkUG9zID0gaXRlbS5wYXJlbnQuY29udmVydFRvV29ybGRTcGFjZUFSKGl0ZW0ucG9zaXRpb24pO1xyXG4gICAgICAgIGxldCB2aWV3UG9zID0gdGhpcy5zY3JvbGxWaWV3Lm5vZGUuY29udmVydFRvTm9kZVNwYWNlQVIod29ybGRQb3MpO1xyXG4gICAgICAgIHJldHVybiB2aWV3UG9zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKuiOt+WPluWIl+ihqOaVsOaNriAqL1xyXG4gICAgcHVibGljIGdldExpc3REYXRhKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1EYXRhTGlzdDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOWinuWKoOS4gOmhueaVsOaNruWIsOWIl+ihqOeahOacq+WwvlxyXG4gICAgICogQHBhcmFtIGRhdGEg5pWw5o2uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGRJdGVtKGRhdGE6IGFueSkge1xyXG4gICAgICAgIHRoaXMuaXRlbURhdGFMaXN0LnB1c2goZGF0YSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlop7liqDkuIDpobnmlbDmja7liLDliJfooajmjIflrprkvY3nva5cclxuICAgICAqIEBwYXJhbSBpbmRleCAgIOS9jee9ru+8jDDooajnpLrnrKwx6aG5XHJcbiAgICAgKiBAcGFyYW0gZGF0YSAg5pWw5o2uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGRJdGVtQXQoaW5kZXg6IG51bWJlciwgZGF0YTogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2luZGV4XSAhPSBudWxsIHx8IHRoaXMuaXRlbURhdGFMaXN0Lmxlbmd0aCA9PSBpbmRleCkge1xyXG4gICAgICAgICAgICB0aGlzLml0ZW1EYXRhTGlzdC5zcGxpY2UoaW5kZXgsIDEsIGRhdGEpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliKDpmaTkuIDpobnmlbDmja5cclxuICAgICAqIEBwYXJhbSBpbmRleCDliKDpmaTpobnnmoTkvY3nva4gLDDooajnpLrnrKwx6aG5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkZWxldGVJdGVtKGluZGV4OiBudW1iZXIpIHtcclxuICAgICAgICBpZiAodGhpcy5pdGVtRGF0YUxpc3RbaW5kZXhdICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5pdGVtRGF0YUxpc3Quc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pS55Y+Y5LiA6aG55pWw5o2uXHJcbiAgICAgKiBAcGFyYW0gaW5kZXggICDkvY3nva4sMOihqOekuuesrDHpoblcclxuICAgICAqIEBwYXJhbSBkYXRhICDmm7/mjaLnmoTmlbDmja5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNoYW5nZUl0ZW0oaW5kZXg6IG51bWJlciwgZGF0YTogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbURhdGFMaXN0W2luZGV4XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXRlbURhdGFMaXN0W2luZGV4XSA9IGRhdGE7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKirojrflj5bnrKzkuIDkuKpJdGVt55qE5L2N572uICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZUNvbnRlbnQoKSB7XHJcbiAgICAgICAgLy/mmL7npLrliJfooajlrp7kvovkuLow5LiqXHJcbiAgICAgICAgaWYgKHRoaXMuaXRlbUxpc3QubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5jb3VudExpc3RQYXJhbSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUxpc3QoMCwgbmV3IGNjLlZlYzIoMCwgMCkpO1xyXG4gICAgICAgICAgICAvL+aYvuekuuWIl+ihqOeahOWunuS+i+S4jeS4ujDkuKrvvIzliJnpnIDopoHph43mlrDmjpLliJdpdGVt5a6e5L6L5pWw57uEXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudHlwZSA9PSBMaXN0VHlwZS5WZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBiLnkgLSBhLnk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuSG9yaXpvbnRhbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhLnggLSBiLng7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT0gTGlzdFR5cGUuR3JpZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRBeGlzID09IFN0YXJ0QXhpc1R5cGUuVmVydGljYWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1MaXN0LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhLnggLSBiLng7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYi55IC0gYS55O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXJ0QXhpcyA9PSBTdGFydEF4aXNUeXBlLkhvcml6b250YWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1MaXN0LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBiLnkgLSBhLnk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdC5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYS54IC0gYi54O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNvdW50TGlzdFBhcmFtKCk7XHJcblxyXG4gICAgICAgICAgICAvL+iOt+WPluesrOS4gOS4qml0ZW3lrp7kvovpnIDopoHmmL7npLrnmoTmlbDmja7ntKLlvJVcclxuICAgICAgICAgICAgdmFyIHN0YXJ0SW5kZXggPSB0aGlzLml0ZW1MaXN0WzBdLmdldENvbXBvbmVudChJdGVtUmVuZGVyKS5pdGVtSW5kZXg7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQgJiYgdGhpcy5zdGFydEF4aXMgPT0gU3RhcnRBeGlzVHlwZS5WZXJ0aWNhbCkge1xyXG4gICAgICAgICAgICAgICAgc3RhcnRJbmRleCArPSAoc3RhcnRJbmRleCArIHRoaXMuc3Bhd25Db3VudCkgJSB0aGlzLmdyaWRDb2w7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09IExpc3RUeXBlLkdyaWQgJiYgdGhpcy5zdGFydEF4aXMgPT0gU3RhcnRBeGlzVHlwZS5Ib3Jpem9udGFsKSB7XHJcbiAgICAgICAgICAgICAgICBzdGFydEluZGV4ICs9IChzdGFydEluZGV4ICsgdGhpcy5zcGF3bkNvdW50KSAlIHRoaXMuZ3JpZFJvdztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9nZXRTY3JvbGxPZmZzZXQoKeWSjHNjcm9sbFRvT2Zmc2V0KCnnmoR45YC85piv55u45Y+N55qEXHJcbiAgICAgICAgICAgIHZhciBvZmZzZXQ6IGNjLlZlYzIgPSB0aGlzLnNjcm9sbFZpZXcuZ2V0U2Nyb2xsT2Zmc2V0KCk7XHJcbiAgICAgICAgICAgIG9mZnNldC54ID0gLSBvZmZzZXQueDtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlTGlzdChzdGFydEluZGV4LCBvZmZzZXQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKirplIDmr4EgKi9cclxuICAgIHB1YmxpYyBvbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgLy/muIXnkIbliJfooajpoblcclxuICAgICAgICBsZXQgbGVuID0gdGhpcy5pdGVtTGlzdC5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoY2MuaXNWYWxpZCh0aGlzLml0ZW1MaXN0W2ldLCB0cnVlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtTGlzdFtpXS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pdGVtTGlzdC5sZW5ndGggPSAwO1xyXG4gICAgICAgIC8v5riF55CG5a+56LGh5rGgXHJcbiAgICAgICAgbGVuID0gdGhpcy5pdGVtUG9vbC5sZW5ndGg7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoY2MuaXNWYWxpZCh0aGlzLml0ZW1Qb29sW2ldLCB0cnVlKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtUG9vbFtpXS5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pdGVtUG9vbC5sZW5ndGggPSAwO1xyXG4gICAgICAgIC8v5riF55CG5YiX6KGo5pWw5o2uXHJcbiAgICAgICAgdGhpcy5pdGVtRGF0YUxpc3QubGVuZ3RoID0gMDtcclxuICAgIH1cclxufVxyXG4iXX0= \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/Share/share.js b/temp/quick-scripts/dst/assets/Script/module/Share/share.js new file mode 100644 index 0000000..aae47ca --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/module/Share/share.js @@ -0,0 +1,156 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Share/share.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '7290caA39xMWZc2phTMKovP', 'share'); +// Script/module/Share/share.ts + +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.WeChat = void 0; +var shareConfig = { + gameId: "100019", + shareLine: "zDLsruVI", + EK: "hui231%1" +}; +// 微信操作类 +var WeChat = /** @class */ (function () { + function WeChat() { + } + WeChat.setShare = function (url) { + var urlTemp = this.removeQueryParams(url); + shareConfig.shareLine = urlTemp; + if (cc.sys.platform == cc.sys.WECHAT_GAME) { + WeChat.getSignature(url); + } + }; + WeChat.getResult = function (res) { + if (res) { + var data = res.data; + wx.config({ + debug: false, + appId: data.appId, + timestamp: data.timestamp, + nonceStr: data.nonceStr, + signature: data.signature, + jsApiList: ['onMenuShareTimeline', 'updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareAppMessage'] + }); + wx.checkJsApi({ + jsApiList: ['updateAppMessageShareData'], + success: function (res) { + setTimeout(function () { + WeChat.changeShare(); + }, 100); + setTimeout(function () { + WeChat.changeShare(); + }, 200); + } + }); + } + }; + WeChat.changeShare = function () { + wx.ready(function () { + wx.updateAppMessageShareData({ + title: '逻辑性认知测评', + desc: '你的认知灵活性和选择注意有问题吗', + link: shareConfig.shareLine, + imgUrl: 'https://static.sparkus.cn/public/shennong.jpg', + success: function () { + // 设置成功 + console.log("分享好友成功回调"); + } + }); + setTimeout(function () { + wx.updateTimelineShareData({ + title: '逻辑性认知测评', + link: shareConfig.shareLine, + imgUrl: 'https://static.sparkus.cn/public/shennong.jpg', + success: function () { + // 设置成功 + console.log("分享朋友圈成功回调"); + } + }); + }, 500); + }); + }; + WeChat.getSignature = function (url) { + return new Promise(function (resolve) { + WeChat.getShareInfo((encodeURIComponent(url)), WeChat.getResult); + }); + }; + WeChat.getShareInfo = function (shareUrl, callback) { + return __awaiter(this, void 0, Promise, function () { + var time, url; + return __generator(this, function (_a) { + time = Math.floor((new Date().getTime()) / 1000); + url = cc.fx.HttpUtil.apiSign("/api/share/cfg?gameId=" + shareConfig.gameId + "&time=" + time + "&url=" + shareUrl, {}); + return [2 /*return*/, cc.fx.HttpUtil.get(url, callback, 0)]; + }); + }); + }; + WeChat.containsNanana = function (str) { + return /test/i.test(str); + }; + WeChat.removeQueryParams = function (url) { + return url.replace(/\?.*$/, ''); + }; + return WeChat; +}()); +exports.WeChat = WeChat; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFNoYXJlXFxzaGFyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFJLFdBQVcsR0FBRztJQUNkLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFNBQVMsRUFBRSxVQUFVO0lBQ3JCLEVBQUUsRUFBQyxVQUFVO0NBQ2QsQ0FBQztBQVdKLFFBQVE7QUFDUjtJQUFBO0lBa0ZBLENBQUM7SUFqRlUsZUFBUSxHQUFmLFVBQWdCLEdBQUc7UUFDZixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7UUFDaEMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRTtZQUN2QyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzVCO0lBRUwsQ0FBQztJQUVNLGdCQUFTLEdBQWhCLFVBQWlCLEdBQUc7UUFDaEIsSUFBRyxHQUFHLEVBQUM7WUFDSCxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ3BCLEVBQUUsQ0FBQyxNQUFNLENBQUM7Z0JBQ04sS0FBSyxFQUFFLEtBQUs7Z0JBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUN6QixTQUFTLEVBQUUsQ0FBQyxxQkFBcUIsRUFBQywyQkFBMkIsRUFBRSx5QkFBeUIsRUFBRSx1QkFBdUIsQ0FBQzthQUNySCxDQUFDLENBQUM7WUFDSCxFQUFFLENBQUMsVUFBVSxDQUFDO2dCQUNWLFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDO2dCQUN4QyxPQUFPLEVBQUUsVUFBUyxHQUFHO29CQUNqQixVQUFVLENBQUM7d0JBQ1AsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUN6QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ1IsVUFBVSxDQUFDO3dCQUNQLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDekIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNaLENBQUM7YUFDSixDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFFTSxrQkFBVyxHQUFsQjtRQUNJLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDTCxFQUFFLENBQUMseUJBQXlCLENBQUM7Z0JBQ3pCLEtBQUssRUFBRSxTQUFTO2dCQUNoQixJQUFJLEVBQUUsa0JBQWtCO2dCQUN4QixJQUFJLEVBQUUsV0FBVyxDQUFDLFNBQVM7Z0JBQzNCLE1BQU0sRUFBRSwrQ0FBK0M7Z0JBQ3ZELE9BQU8sRUFBRTtvQkFDUCxPQUFPO29CQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFCLENBQUM7YUFDSixDQUFDLENBQUM7WUFDSCxVQUFVLENBQUM7Z0JBQ1AsRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUN2QixLQUFLLEVBQUUsU0FBUztvQkFDaEIsSUFBSSxFQUFFLFdBQVcsQ0FBQyxTQUFTO29CQUMzQixNQUFNLEVBQUUsK0NBQStDO29CQUN2RCxPQUFPLEVBQUU7d0JBQ1AsT0FBTzt3QkFDUCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUMzQixDQUFDO2lCQUNGLENBQUMsQ0FBQTtZQUNSLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVaLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLG1CQUFZLEdBQW5CLFVBQW9CLEdBQVc7UUFDM0IsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU87WUFDdkIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNZLG1CQUFZLEdBQXpCLFVBQTBCLFFBQWdCLEVBQUUsUUFBaUI7dUNBQUcsT0FBTzs7O2dCQUM3RCxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtnQkFDaEQsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQywyQkFBeUIsV0FBVyxDQUFDLE1BQU0sY0FBUyxJQUFJLGFBQVEsUUFBVSxFQUFDLEVBQUUsQ0FBQyxDQUFBO2dCQUNqSCxzQkFBTyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUMsRUFBQzs7O0tBQzdDO0lBR00scUJBQWMsR0FBckIsVUFBc0IsR0FBRztRQUNyQixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLHdCQUFpQixHQUF4QixVQUF5QixHQUFHO1FBQ3hCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVMLGFBQUM7QUFBRCxDQWxGQSxBQWtGQyxJQUFBO0FBbEZZLHdCQUFNIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbnZhciBzaGFyZUNvbmZpZyA9IHtcbiAgICBnYW1lSWQ6IFwiMTAwMDE5XCIsXG4gICAgc2hhcmVMaW5lOiBcInpETHNydVZJXCIsXG4gICAgRUs6XCJodWkyMzElMVwiXG4gIH07XG5cbi8vIOWumuS5ieW+ruS/oemFjee9ruaVsOaNrueahOaOpeWPo1xuaW50ZXJmYWNlIElXZUNoYXRDb25maWcge1xuICAgIGFwcElkOiBzdHJpbmc7XG4gICAgdGltZXN0YW1wOiBudW1iZXI7XG4gICAgbm9uY2VTdHI6IHN0cmluZztcbiAgICBzaWduYXR1cmU6IHN0cmluZztcbiAgICBqc0FwaUxpc3Q6IFtdO1xufVxuXG4vLyDlvq7kv6Hmk43kvZznsbtcbmV4cG9ydCBjbGFzcyBXZUNoYXQge1xuICAgIHN0YXRpYyBzZXRTaGFyZSh1cmwpIHtcbiAgICAgICAgdmFyIHVybFRlbXAgPSB0aGlzLnJlbW92ZVF1ZXJ5UGFyYW1zKHVybCk7XG4gICAgICAgIHNoYXJlQ29uZmlnLnNoYXJlTGluZSA9IHVybFRlbXA7XG4gICAgICAgIGlmIChjYy5zeXMucGxhdGZvcm0gPT0gY2Muc3lzLldFQ0hBVF9HQU1FKSB7XG4gICAgICAgICAgICBXZUNoYXQuZ2V0U2lnbmF0dXJlKHVybCk7XG4gICAgICAgIH1cbiAgIFxuICAgIH1cblxuICAgIHN0YXRpYyBnZXRSZXN1bHQocmVzKXtcbiAgICAgICAgaWYocmVzKXtcbiAgICAgICAgICAgIHZhciBkYXRhID0gcmVzLmRhdGE7XG4gICAgICAgICAgICB3eC5jb25maWcoe1xuICAgICAgICAgICAgICAgIGRlYnVnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhcHBJZDogZGF0YS5hcHBJZCxcbiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IGRhdGEudGltZXN0YW1wLFxuICAgICAgICAgICAgICAgIG5vbmNlU3RyOiBkYXRhLm5vbmNlU3RyLFxuICAgICAgICAgICAgICAgIHNpZ25hdHVyZTogZGF0YS5zaWduYXR1cmUsXG4gICAgICAgICAgICAgICAganNBcGlMaXN0OiBbJ29uTWVudVNoYXJlVGltZWxpbmUnLCd1cGRhdGVBcHBNZXNzYWdlU2hhcmVEYXRhJywgJ3VwZGF0ZVRpbWVsaW5lU2hhcmVEYXRhJywgJ29uTWVudVNoYXJlQXBwTWVzc2FnZSddXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHd4LmNoZWNrSnNBcGkoe1xuICAgICAgICAgICAgICAgIGpzQXBpTGlzdDogWyd1cGRhdGVBcHBNZXNzYWdlU2hhcmVEYXRhJ10sIC8vIOmcgOimgeajgOa1i+eahEpT5o6l5Y+j5YiX6KGo77yM5omA5pyJSlPmjqXlj6PliJfooajop4HpmYTlvZUyLFxuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykge1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsgIFxuICAgICAgICAgICAgICAgICAgICAgICAgV2VDaGF0LmNoYW5nZVNoYXJlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgV2VDaGF0LmNoYW5nZVNoYXJlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sIDIwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgY2hhbmdlU2hhcmUoKXtcbiAgICAgICAgd3gucmVhZHkoKCkgPT4ge1xuICAgICAgICAgICAgd3gudXBkYXRlQXBwTWVzc2FnZVNoYXJlRGF0YSh7IFxuICAgICAgICAgICAgICAgIHRpdGxlOiAn6YC76L6R5oCn6K6k55+l5rWL6K+EJywgLy8g5YiG5Lqr5qCH6aKYXG4gICAgICAgICAgICAgICAgZGVzYzogJ+S9oOeahOiupOefpeeBtea0u+aAp+WSjOmAieaLqeazqOaEj+aciemXrumimOWQlycsIC8vIOWIhuS6q+aPj+i/sFxuICAgICAgICAgICAgICAgIGxpbms6IHNoYXJlQ29uZmlnLnNoYXJlTGluZSwgLy8g5YiG5Lqr6ZO+5o6l77yM6K+l6ZO+5o6l5Z+f5ZCN5oiW6Lev5b6E5b+F6aG75LiO5b2T5YmN6aG16Z2i5a+55bqU55qE5YWs5LyX5Y+3SlPlronlhajln5/lkI3kuIDoh7RcbiAgICAgICAgICAgICAgICBpbWdVcmw6ICdodHRwczovL3N0YXRpYy5zcGFya3VzLmNuL3B1YmxpYy9zaGVubm9uZy5qcGcnLCAvLyDliIbkuqvlm77moIdcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAvLyDorr7nva7miJDlip9cbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5YiG5Lqr5aW95Y+L5oiQ5Yqf5Zue6LCDXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgd3gudXBkYXRlVGltZWxpbmVTaGFyZURhdGEoeyBcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfpgLvovpHmgKforqTnn6XmtYvor4QnLCAvLyDliIbkuqvmoIfpophcbiAgICAgICAgICAgICAgICAgICAgbGluazogc2hhcmVDb25maWcuc2hhcmVMaW5lLCAvLyDliIbkuqvpk77mjqXvvIzor6Xpk77mjqXln5/lkI3miJbot6/lvoTlv4XpobvkuI7lvZPliY3pobXpnaLlr7nlupTnmoTlhazkvJflj7dKU+WuieWFqOWfn+WQjeS4gOiHtFxuICAgICAgICAgICAgICAgICAgICBpbWdVcmw6ICdodHRwczovL3N0YXRpYy5zcGFya3VzLmNuL3B1YmxpYy9zaGVubm9uZy5qcGcnLCAvLyDliIbkuqvlm77moIdcbiAgICAgICAgICAgICAgICAgICAgc3VjY2VzczogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgIC8vIOiuvue9ruaIkOWKn1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi5YiG5Lqr5pyL5Y+L5ZyI5oiQ5Yqf5Zue6LCDXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSwgNTAwKTtcblxuICAgICAgICB9KTsgXG4gICAgfVxuXG4gICAgc3RhdGljIGdldFNpZ25hdHVyZSh1cmw6IHN0cmluZyk6IFByb21pc2U8SVdlQ2hhdENvbmZpZz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgICAgIFdlQ2hhdC5nZXRTaGFyZUluZm8oKGVuY29kZVVSSUNvbXBvbmVudCh1cmwpKSxXZUNoYXQuZ2V0UmVzdWx0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0YXRpYyBhc3luYyBnZXRTaGFyZUluZm8oc2hhcmVVcmw6IHN0cmluZywgY2FsbGJhY2s6RnVuY3Rpb24pOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBjb25zdCB0aW1lID0gTWF0aC5mbG9vcigobmV3IERhdGUoKS5nZXRUaW1lKCkpIC8gMTAwMClcbiAgICAgICAgY29uc3QgdXJsID0gY2MuZnguSHR0cFV0aWwuYXBpU2lnbihgL2FwaS9zaGFyZS9jZmc/Z2FtZUlkPSR7c2hhcmVDb25maWcuZ2FtZUlkfSZ0aW1lPSR7dGltZX0mdXJsPSR7c2hhcmVVcmx9YCx7fSlcbiAgICAgICAgcmV0dXJuIGNjLmZ4Lkh0dHBVdGlsLmdldCh1cmwsY2FsbGJhY2ssMCk7XG4gICAgfVxuXG4gICAgXG4gICAgc3RhdGljIGNvbnRhaW5zTmFuYW5hKHN0cikge1xuICAgICAgICByZXR1cm4gL3Rlc3QvaS50ZXN0KHN0cik7XG4gICAgfVxuXG4gICAgc3RhdGljIHJlbW92ZVF1ZXJ5UGFyYW1zKHVybCkge1xuICAgICAgICByZXR1cm4gdXJsLnJlcGxhY2UoL1xcPy4qJC8sICcnKTtcbiAgICB9XG5cbn1cbiJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/Storage/Storage.js b/temp/quick-scripts/dst/assets/Script/module/Storage/Storage.js new file mode 100644 index 0000000..5ab6fb9 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/module/Storage/Storage.js @@ -0,0 +1,56 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Storage/Storage.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '1002938VFRJd70RiAno9Iys', 'Storage'); +// Script/module/Storage/Storage.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StorageMessage = void 0; +//缓存浏览器数据 +var StorageMessage = { + getStorage: function (key) { + var result = null; + if (cc.sys.localStorage.getItem(key)) { + var result = cc.sys.localStorage.getItem(key); + } + if (result) { + result = JSON.parse(result); + } + return result; + }, + setStorage: function (key, value) { + //主动拉起分享接口 + var temp = JSON.stringify(value); + cc.sys.localStorage.setItem(key, temp); + }, + removeStorage: function (key) { + //主动删除消息接口 + if (cc.sys.localStorage.getItem(key)) { + cc.sys.localStorage.removeItem(key); + } + }, +}; +exports.StorageMessage = StorageMessage; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFN0b3JhZ2VcXFN0b3JhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsU0FBUztBQUNULElBQUksY0FBYyxHQUFHO0lBQ2pCLFVBQVUsRUFBRyxVQUFTLEdBQUc7UUFDckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFDO1lBQ2xDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvQztRQUVELElBQUcsTUFBTSxFQUFDO1lBQ1IsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0I7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsVUFBVSxFQUFHLFVBQVMsR0FBRyxFQUFDLEtBQUs7UUFDM0IsVUFBVTtRQUNWLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUMxQyxDQUFDO0lBQ0QsYUFBYSxFQUFHLFVBQVMsR0FBRztRQUMxQixVQUFVO1FBQ1YsSUFBRyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUM7WUFDbEMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO0lBQ0gsQ0FBQztDQUNKLENBQUM7QUFFTyx3Q0FBYyIsImZpbGUiOiIiLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8v57yT5a2Y5rWP6KeI5Zmo5pWw5o2uXG52YXIgU3RvcmFnZU1lc3NhZ2UgPSB7XG4gICAgZ2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAgIHZhciByZXN1bHQgPSBudWxsO1xuICAgICAgICBpZihjYy5zeXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSl7XG4gICAgICAgICAgdmFyIHJlc3VsdCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZihyZXN1bHQpe1xuICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UocmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sXG4gICAgc2V0U3RvcmFnZSA6IGZ1bmN0aW9uKGtleSx2YWx1ZSl7XG4gICAgICAgIC8v5Li75Yqo5ouJ6LW35YiG5Lqr5o6l5Y+jXG4gICAgICAgIHZhciB0ZW1wID0gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB0ZW1wKVxuICAgIH0sXG4gICAgcmVtb3ZlU3RvcmFnZSA6IGZ1bmN0aW9uKGtleSl7XG4gICAgICAvL+S4u+WKqOWIoOmZpOa2iOaBr+aOpeWPo1xuICAgICAgaWYoY2Muc3lzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkpe1xuICAgICAgICBjYy5zeXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICAgICAgfVxuICAgIH0sXG59O1xuXG5leHBvcnQgeyBTdG9yYWdlTWVzc2FnZSB9OyJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/module/Tool/GameTool.js b/temp/quick-scripts/dst/assets/Script/module/Tool/GameTool.js new file mode 100644 index 0000000..66a8a35 --- /dev/null +++ b/temp/quick-scripts/dst/assets/Script/module/Tool/GameTool.js @@ -0,0 +1,386 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/Script/module/Tool/GameTool.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '43bfcJ6/25Fs4fHUE0PeBOX', 'GameTool'); +// Script/module/Tool/GameTool.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GameTool = void 0; +//最大工具类 各种公共方法,以及处理上传,获取后端接口数据 +var GameTool = { + _startTime: 0, + _endTime: 0, + _totalTime: 0, + //获取userId + Authentication: function () { + var name = "user_" + cc.fx.GameConfig.GM_INFO.gameId; + var data = JSON.parse(localStorage.getItem(name)); + if (data == "undifend" || data == null || data == "") { + var url = "https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=" + + encodeURIComponent(location.href); + console.log("链接没ID准备跳转", url); + window.location.href = url; + } + else { + if (!this.isNumber(data.userId)) { + var url = "https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=" + + encodeURIComponent(location.href); + console.log("链接不合法", url); + window.location.href = url; + } + else { + cc.fx.StorageMessage.setStorage(name, data); + cc.fx.GameConfig.GM_INFO.userId = parseInt(data.userId); + } + } + }, + isNumber: function (value) { + var result = false; + result = typeof value === 'number'; + if (result) + if (value < 200000) + result = false; + return result; + }, + containsTrain: function (str) { + return /from=train/i.test(str); + }, + //埋点上传 + setGameData: function () { + //GAME_DATA 初始化 每次清零 + cc.fx.GameConfig.GAME_DATA = []; + cc.fx.GameConfig.GAME_DATA.push(cc.fx.GameConfig.CLICK_DATA); + cc.fx.GameConfig.CLICK_init(); + var data = cc.fx.GameConfig.GAME_DATA; + var matchId = this.getMatchId(); + var postData = { + "gameId": cc.fx.GameConfig.GM_INFO.gameId, + "userId": cc.fx.GameConfig.GM_INFO.userId, + "matchId": matchId, + "data": data + }; + console.log("上传数据:", data); + cc.fx.HttpUtil.uploadUserLogData(postData, function () { }); + }, + //上传排行榜 type为1 + setRank: function (data) { + //GAME_DATA 初始化 每次清零 + var postData = { + "gameId": cc.fx.GameConfig.GM_INFO.gameId, + "userId": cc.fx.GameConfig.GM_INFO.userId, + "type": 1, + "score": data.score, + "accuracy": data.date, + "success": cc.fx.GameConfig.GM_INFO.success + }; + cc.fx.HttpUtil.rankData(1, function () { }, postData); + }, + //获取排行榜 type为2 + getRank: function (data, callback) { + var rankLength = data.length; + var postData = { + "gameId": cc.fx.GameConfig.GM_INFO.gameId, + "userId": cc.fx.GameConfig.GM_INFO.userId, + "page": 1, + "pageSize": rankLength + }; + //回调进getRankData + cc.fx.HttpUtil.rankData(2, function (data) { callback(data); }, postData); + }, + //获取matchId 用于上传每次点击数据里面记录id方便查询 + getMatchId: function () { + var matchId = cc.sys.localStorage.getItem("matchId"); + var tempId = matchId; + if (matchId == "undifend" || matchId == null) { + matchId = this.setMatchId(); + } + else { + if (this.containsNanana(matchId) == true) { + matchId = this.setMatchId(); + } + else { + var char = parseInt(tempId.substring(10, tempId.length)); + if (cc.fx.GameConfig.GM_INFO.level == 1) { + char += 1; + matchId = tempId.slice(0, 10) + char + ""; + if (this.containsNanana(matchId)) + matchId = this.setMatchId(); + cc.fx.GameConfig.GM_INFO.matchId = matchId; + cc.sys.localStorage.setItem("matchId", matchId); + } + } + } + if (this.containsNanana(matchId) == true) { + matchId = this.setMatchId(); + } + return matchId; + }, + //检测matchId 如果有缓存以前的nanana数据清除 + containsNanana: function (str) { + return /na/i.test(str); + }, + //重新设置MatchId + setMatchId: function () { + // 定义包含可用字符的字符集 + var characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; + // 创建一个数组以保存随机字符 + var uuidArray = []; + // 循环10次 生成10位的UUID + for (var i = 0; i < 10; i++) { + // 生成随机索引,范围是字符集的长度 + var randomIndex = Math.floor(Math.random() * characters.length); + // 从字符集中获取随机字符 + var randomChar = characters.charAt(randomIndex); + // 将字符添加到数组中 + uuidArray.push(randomChar); + } + var data = uuidArray.join('') + 1 + ""; + cc.sys.localStorage.setItem("matchNumber", 1); + cc.sys.localStorage.setItem("matchId", data); + cc.fx.GameConfig.GM_INFO.matchId = data; + return data; + }, + //截取名字 + subName: function (name, length) { + if (name.length > length) { + name = name.substring(0, length) + "..."; + } + return name; + }, + //设置头像 + setPic: function (node, pic) { + node.active = false; + var url = pic; + setTimeout(function () { + fetch(url) + .then(function (response) { + return response.headers.get('Content-Length'); + }) + .then(function (errNo) { + if (errNo == "5093") { + node.active = true; + } + }) + .catch(function (error) { + // console.error('Error fetching X-Info:', error); + }); + }, 100); + cc.assetManager.loadRemote(url, { ext: '.png' }, function (err, texture) { + if (texture) { + node.active = true; + node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); + } + else { + console.log(err, texture); + } + }); + }, + //第一个参数把目标带进来处理,第二个参数为名字长度,不同场景不同需求 + //名字4短,小排行,名字6长,大排行 + getRankData: function (data, target, nameLength) { + target.listData = data.data.list; + target.selfData = data.data.info; + var rankData = []; + var self = false; + cc.fx.GameTool.setPic(target.selfNode.getChildByName("pic").getChildByName("icon"), target.selfData.pic); + for (var i = 0; i <= target.listData.length - 1; i++) { + rankData.push({ rank: (i + 1), name: target.listData[i].nickName, total: target.listData[i].score, time: null, pic: target.listData[i].pic }); + if (cc.fx.GameConfig.GM_INFO.userId == target.listData[i].userId) { + self = true; + target.rankNumber = i; + target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string = (i + 1) + ""; + } + if (i == (target.listData.length - 1) && self == false) { + target.rankNumber = i; + target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string = "99+"; + } + } + cc.fx.GameTool.subName(target.selfData.nickName, nameLength); + target.selfNode.getChildByName("nameLab").getComponent(cc.Label).string = target.selfData.nickName; + target.selfNode.getChildByName("totalLab").getComponent(cc.Label).string = target.selfData.score; + var timeTemp = cc.fx.GameTool.getTimeShenNong(target.selfData.totleTimes); + // target.selfNode.getChildByName("timeLab").getComponent(cc.Label).string = timeTemp + ""; + switch (target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string) { + case "1": + target.selfNode.getChildByName("rank").getChildByName("one").active = true; + break; + case "2": + target.selfNode.getChildByName("rank").getChildByName("two").active = true; + break; + case "3": + target.selfNode.getChildByName("rank").getChildByName("three").active = true; + break; + } + // 大排行 + if (nameLength == 6) { + target.rankList.setData(rankData); + target.selfNode.opacity = 255; + if (target.selfData.totalSunCount == 0) + target.selfNode.opacity = 0; + } + }, + getSeedRandom: function (min, max) { + // console.log("随机数:",cc.fx.GameConfig.GM_INFO.currSeed); + max = max || 1; + min = min || 0; + cc.fx.GameConfig.GM_INFO.currSeed = (cc.fx.GameConfig.GM_INFO.currSeed * 9301 + 49297) % 233280; + var rnd = cc.fx.GameConfig.GM_INFO.currSeed / 233280.0; + var tmp = min + rnd * (max - min); + return parseInt(tmp); + }, + //获取关卡配置的那个关卡数 + getCustom: function (type) { + var custom = cc.fx.StorageMessage.getStorage(cc.fx.storageType.storageTypeCustom); + if (custom == "undifend" || custom == null || custom == "") { + this.setCustom(); + } + else { + cc.fx.GameConfig.GM_INFO_SET("custom", custom[0]); + if (custom[0] != 0 || type == true) { + custom.shift(); + if (custom.length == 0) { + this.setCustom(); + } + else + cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom, custom); + } + } + }, + //本地没有存储到配置,或者配置用完,重新创建配置 + setCustom: function () { + var arrayLength = cc.fx.GameConfig.LEVEL_INFO.length; + var arrayList = []; + for (var i = 1; i < arrayLength; i++) { + arrayList.push(i); + } + arrayList.sort(function () { return Math.random() - 0.5; }); + arrayList.unshift(0); + cc.fx.GameConfig.GM_INFO_SET("custom", arrayList[0]); + cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom, arrayList); + }, + getSetScreenResolutionFlag: function () { + var size = cc.winSize; + var width = size.width; + var height = size.height; + if ((height / width) > (16.2 / 9)) + return false; + return true; + }, + //判断全面屏适配 + setFit: function (canvas) { + var flag = cc.fx.GameTool.getSetScreenResolutionFlag(); + if (flag) { + // console.log("不是全面屏"); + } + else { + // console.log("是全面屏"); + } + return flag; + }, + //获取游戏信息 + getGameInfo: function (node) { + var jg = false; + return jg; + }, + //设置游戏信息 + setGameInfo: function (pd) { + }, + //打乱数组 + shuffleArray: function (arr) { + return arr.sort(function () { return Math.random() - 0.5; }); + }, + //打字机效果 + typingAni: function (label, text, cb, target) { + var self = target; + var html = ''; + var arr = text.split(''); + var len = arr.length; + var step = 0; + self.func = function () { + html += arr[step]; + label.string = html; + if (++step == len) { + self.unschedule(self.func); + cb && cb(); + } + }; + self.schedule(self.func, 0.1, cc.macro.REPEAT_FOREVER, 0); + }, + //输入秒,返回需要展示时间格式 + getTimeMargin: function (second) { + var total = 0; + total = second; + var hour = 0; + hour = parseInt((total / 3600) + ""); //计算整数小时数 + var afterHour = total - hour * 60 * 60; //取得算出小时数后剩余的秒数 + var min = parseInt((afterHour / 60) + ""); //计算整数分 + var m = "" + min; + if (min < 10) + m = "0" + min; + var afterMin = total - hour * 60 * 60 - min * 60; //取得算出分后剩余的秒数 + var miao = afterMin + ""; + if (afterMin < 10) + miao = "0" + afterMin; + return m + ':' + miao; + }, + //输入秒,返回需要展示时间格式 + getTimeShenNong: function (second) { + second = parseInt(second / 1000 + ""); + var total = 0; + total = second; + var min = 0; + if (total > 60) { + min = parseInt((total / 60) + ""); //计算整数分 + } + var m = min + "'"; + var afterMin = total - min * 60; //取得算出分后剩余的秒数 + var miao = afterMin + "''"; + return m + miao; + }, + //输入秒,返回需要展示时间格式 + getTimeLondon: function (second) { + var total = 0; + total = second; + var min = 0; + if (total >= 60) { + min = parseInt((total / 60) + ""); //计算整数分 + } + var m = min + " 分"; + var afterMin = total - min * 60; //取得算出分后剩余的秒数 + var miao = afterMin + " 秒"; + return m + " " + miao; + }, + //获取时间戳 + getTime: function () { + var timestamp = (new Date().getTime()); + return timestamp; + }, + pushLister: function () { + }, + removeAllLister: function () { + }, +}; +exports.GameTool = GameTool; + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxtb2R1bGVcXFRvb2xcXEdhbWVUb29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLCtCQUErQjtBQUMvQixJQUFJLFFBQVEsR0FBRztJQUNYLFVBQVUsRUFBRSxDQUFDO0lBQ2IsUUFBUSxFQUFFLENBQUM7SUFDWCxVQUFVLEVBQUUsQ0FBQztJQUNiLFVBQVU7SUFDVixjQUFjO1FBQ1YsSUFBSSxJQUFJLEdBQUcsT0FBTyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDckQsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEQsSUFBRyxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksSUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBQztZQUM5QyxJQUFJLEdBQUcsR0FBRyw4RUFBOEU7Z0JBQ3hGLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7U0FFOUI7YUFDRztZQUNBLElBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBQztnQkFDM0IsSUFBSSxHQUFHLEdBQUcsOEVBQThFO29CQUN4RixrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7YUFDOUI7aUJBQ0c7Z0JBQ0EsRUFBRSxDQUFDLEVBQUUs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QUFDLEdBQUksR0FBRyxHQUFHLElBQUksQ0FBQztRQUVwQixJQUFJLFFBQVEsR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFBLGFBQWE7UUFDN0MsSUFBSSxJQUFJLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQztRQUMzQixPQUFPLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFBO0lBQ3pCLENBQUM7SUFFRCxPQUFPO0lBQ1AsT0FBTztRQUNILElBQUksU0FBUyxHQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZDLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFDRCxVQUFVLEVBQUM7SUFFWCxDQUFDO0lBQ0QsZUFBZSxFQUFDO0lBRWhCLENBQUM7Q0FFSixDQUFDO0FBQ08sNEJBQVEiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLy/mnIDlpKflt6XlhbfnsbsgIOWQhOenjeWFrOWFseaWueazle+8jOS7peWPiuWkhOeQhuS4iuS8oO+8jOiOt+WPluWQjuerr+aOpeWPo+aVsOaNrlxyXG52YXIgR2FtZVRvb2wgPSB7XHJcbiAgICBfc3RhcnRUaW1lOiAwLFxyXG4gICAgX2VuZFRpbWU6IDAsXHJcbiAgICBfdG90YWxUaW1lOiAwLFxyXG4gICAgLy/ojrflj5Z1c2VySWRcclxuICAgIEF1dGhlbnRpY2F0aW9uKCl7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBcInVzZXJfXCIgKyBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZUlkO1xyXG4gICAgICAgIHZhciBkYXRhID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShuYW1lKSk7XHJcbiAgICAgICAgaWYoZGF0YSA9PSBcInVuZGlmZW5kXCIgfHwgZGF0YT09bnVsbCB8fCBkYXRhID09IFwiXCIpe1xyXG4gICAgICAgICAgICBsZXQgdXJsID0gXCJodHRwczovL2FwaS5zcGFya3VzLmNuL2FwaS91c2VyL2F1dGgvbG9naW4/ZG9tYWluPWh1aTMyNTc5V2RZUHNnWXEmY2FsbGJhY2s9XCIrXHJcbiAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5ocmVmKTtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCLpk77mjqXmsqFJROWHhuWkh+i3s+i9rFwiLHVybCk7XHJcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgaWYoIXRoaXMuaXNOdW1iZXIoZGF0YS51c2VySWQpKXtcclxuICAgICAgICAgICAgICAgIGxldCB1cmwgPSBcImh0dHBzOi8vYXBpLnNwYXJrdXMuY24vYXBpL3VzZXIvYXV0aC9sb2dpbj9kb21haW49aHVpMzI1NzlXZFlQc2dZcSZjYWxsYmFjaz1cIitcclxuICAgICAgICAgICAgICAgIGVuY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5ocmVmKTtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwi6ZO+5o6l5LiN5ZCI5rOVXCIsdXJsKTtcclxuICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5TdG9yYWdlTWVzc2FnZS5zZXRTdG9yYWdlKG5hbWUsZGF0YSk7XHJcbiAgICAgICAgICAgICAgICBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID0gcGFyc2VJbnQoZGF0YS51c2VySWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICBpc051bWJlcih2YWx1ZSkge1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBmYWxzZTtcclxuICAgICAgICByZXN1bHQgPSB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInO1xyXG4gICAgICAgIGlmKHJlc3VsdCkgaWYodmFsdWUgPCAyMDAwMDApIHJlc3VsdCA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9LFxyXG5cclxuICAgIGNvbnRhaW5zVHJhaW4oc3RyKSB7XHJcbiAgICAgICAgcmV0dXJuIC9mcm9tPXRyYWluL2kudGVzdChzdHIpO1xyXG4gICAgfSxcclxuXHJcblxyXG4gICAgLy/ln4vngrnkuIrkvKBcclxuICAgIHNldEdhbWVEYXRhKCl7XHJcbiAgICAgICAgLy9HQU1FX0RBVEEg5Yid5aeL5YyWIOavj+asoea4hembtlxyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR0FNRV9EQVRBID0gW107XHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HQU1FX0RBVEEucHVzaChjYy5meC5HYW1lQ29uZmlnLkNMSUNLX0RBVEEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuQ0xJQ0tfaW5pdCgpO1xyXG4gICAgICAgIGxldCBkYXRhID0gY2MuZnguR2FtZUNvbmZpZy5HQU1FX0RBVEE7XHJcbiAgICAgICAgbGV0IG1hdGNoSWQgPSB0aGlzLmdldE1hdGNoSWQoKTtcclxuICAgICAgICBsZXQgcG9zdERhdGEgPSB7XHJcbiAgICAgICAgICAgIFwiZ2FtZUlkXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmdhbWVJZCxcclxuICAgICAgICAgICAgXCJ1c2VySWRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkLFxyXG4gICAgICAgICAgICBcIm1hdGNoSWRcIjptYXRjaElkLFxyXG4gICAgICAgICAgICBcImRhdGFcIjogZGF0YVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5LiK5Lyg5pWw5o2uOlwiLGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4Lkh0dHBVdGlsLnVwbG9hZFVzZXJMb2dEYXRhKHBvc3REYXRhLGZ1bmN0aW9uKCl7fSlcclxuICAgIH0sXHJcbiAgICAvL+S4iuS8oOaOkuihjOamnCAgdHlwZeS4ujFcclxuICAgIHNldFJhbmsoZGF0YSl7XHJcbiAgICAgICAgLy9HQU1FX0RBVEEg5Yid5aeL5YyWIOavj+asoea4hembtlxyXG4gICAgICAgIGxldCBwb3N0RGF0YSA9IHtcclxuICAgICAgICAgICAgXCJnYW1lSWRcIjpjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uZ2FtZUlkLFxyXG4gICAgICAgICAgICBcInVzZXJJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy51c2VySWQsXHJcbiAgICAgICAgICAgIFwidHlwZVwiOjEsXHJcbiAgICAgICAgICAgIFwic2NvcmVcIjogZGF0YS5zY29yZSxcclxuICAgICAgICAgICAgXCJhY2N1cmFjeVwiOiBkYXRhLmRhdGUsXHJcbiAgICAgICAgICAgIFwic3VjY2Vzc1wiOiBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uc3VjY2Vzc1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgY2MuZnguSHR0cFV0aWwucmFua0RhdGEoMSxmdW5jdGlvbigpe30scG9zdERhdGEpO1xyXG4gICAgfSxcclxuICAgIC8v6I635Y+W5o6S6KGM5qacIHR5cGXkuLoyXHJcbiAgICBnZXRSYW5rKGRhdGEsY2FsbGJhY2spe1xyXG4gICAgICAgIGxldCByYW5rTGVuZ3RoID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgbGV0IHBvc3REYXRhID0ge1xyXG4gICAgICAgICAgICBcImdhbWVJZFwiOmNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5nYW1lSWQsXHJcbiAgICAgICAgICAgIFwidXNlcklkXCI6Y2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLnVzZXJJZCxcclxuICAgICAgICAgICAgXCJwYWdlXCI6MSxcclxuICAgICAgICAgICAgXCJwYWdlU2l6ZVwiOnJhbmtMZW5ndGhcclxuICAgICAgICB9OyBcclxuICAgICAgICAvL+Wbnuiwg+i/m2dldFJhbmtEYXRhXHJcbiAgICAgICAgY2MuZnguSHR0cFV0aWwucmFua0RhdGEoMixkYXRhID0+e2NhbGxiYWNrKGRhdGEpfSxwb3N0RGF0YSk7XHJcbiAgICAgICAgXHJcbiAgICB9LFxyXG4gICAgLy/ojrflj5ZtYXRjaElkICDnlKjkuo7kuIrkvKDmr4/mrKHngrnlh7vmlbDmja7ph4zpnaLorrDlvZVpZOaWueS+v+afpeivolxyXG4gICAgZ2V0TWF0Y2hJZCAoKXtcclxuICAgICAgICBsZXQgbWF0Y2hJZCA9IGNjLnN5cy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm1hdGNoSWRcIik7XHJcbiAgICAgICAgbGV0IHRlbXBJZCA9IG1hdGNoSWQ7XHJcbiAgICAgICAgaWYobWF0Y2hJZCA9PSBcInVuZGlmZW5kXCIgfHwgbWF0Y2hJZD09bnVsbCl7XHJcbiAgICAgICAgICAgIG1hdGNoSWQgPSAgdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuY29udGFpbnNOYW5hbmEobWF0Y2hJZCkgPT0gdHJ1ZSl7XHJcbiAgICAgICAgICAgICAgICBtYXRjaElkID0gIHRoaXMuc2V0TWF0Y2hJZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgICBsZXQgY2hhciA9IHBhcnNlSW50KHRlbXBJZC5zdWJzdHJpbmcoMTAsdGVtcElkLmxlbmd0aCkpO1xyXG4gICAgICAgICAgICAgICAgaWYoY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLmxldmVsID09IDEpe1xyXG4gICAgICAgICAgICAgICAgICAgIGNoYXIgKz0gMTtcclxuICAgICAgICAgICAgICAgICAgICBtYXRjaElkICA9IHRlbXBJZC5zbGljZSgwLCAxMCkgKyBjaGFyICsgXCJcIjtcclxuICAgICAgICAgICAgICAgICAgICBpZih0aGlzLmNvbnRhaW5zTmFuYW5hKG1hdGNoSWQpKSBtYXRjaElkID0gdGhpcy5zZXRNYXRjaElkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPLm1hdGNoSWQgPSBtYXRjaElkO1xyXG4gICAgICAgICAgICAgICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoSWRcIixtYXRjaElkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYodGhpcy5jb250YWluc05hbmFuYShtYXRjaElkKSA9PSB0cnVlKXtcclxuICAgICAgICAgICAgbWF0Y2hJZCA9ICB0aGlzLnNldE1hdGNoSWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1hdGNoSWQ7XHJcbiAgICB9LFxyXG4gICAgLy/mo4DmtYttYXRjaElkIOWmguaenOaciee8k+WtmOS7peWJjeeahG5hbmFuYeaVsOaNrua4hemZpFxyXG4gICAgY29udGFpbnNOYW5hbmEoc3RyKSB7XHJcbiAgICAgICAgcmV0dXJuIC9uYS9pLnRlc3Qoc3RyKTtcclxuICAgIH0sXHJcbiAgICAvL+mHjeaWsOiuvue9rk1hdGNoSWRcclxuICAgIHNldE1hdGNoSWQgKCl7XHJcbiAgICAgICAgLy8g5a6a5LmJ5YyF5ZCr5Y+v55So5a2X56ym55qE5a2X56ym6ZuGXHJcbiAgICAgICAgY29uc3QgY2hhcmFjdGVycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OSc7XHJcbiAgICAgICAgLy8g5Yib5bu65LiA5Liq5pWw57uE5Lul5L+d5a2Y6ZqP5py65a2X56ymXHJcbiAgICAgICAgY29uc3QgdXVpZEFycmF5ID0gW107XHJcbiAgICAgICAgLy8g5b6q546vMTDmrKEg55Sf5oiQMTDkvY3nmoRVVUlEXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDnlJ/miJDpmo/mnLrntKLlvJXvvIzojIPlm7TmmK/lrZfnrKbpm4bnmoTplb/luqZcclxuICAgICAgICAgICAgY29uc3QgcmFuZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIC8vIOS7juWtl+espumbhuS4reiOt+WPlumaj+acuuWtl+esplxyXG4gICAgICAgICAgICBjb25zdCByYW5kb21DaGFyID0gY2hhcmFjdGVycy5jaGFyQXQocmFuZG9tSW5kZXgpO1xyXG4gICAgICAgICAgICAvLyDlsIblrZfnrKbmt7vliqDliLDmlbDnu4TkuK1cclxuICAgICAgICAgICAgdXVpZEFycmF5LnB1c2gocmFuZG9tQ2hhcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCBkYXRhID0gIHV1aWRBcnJheS5qb2luKCcnKSArIDEgKyBcIlwiO1xyXG4gICAgICAgIGNjLnN5cy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIm1hdGNoTnVtYmVyXCIsMSk7XHJcbiAgICAgICAgY2Muc3lzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKFwibWF0Y2hJZFwiLGRhdGEpO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5tYXRjaElkID0gZGF0YTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgIH0sXHJcbiAgICAvL+aIquWPluWQjeWtl1xyXG4gICAgc3ViTmFtZShuYW1lLGxlbmd0aCl7XHJcbiAgICAgICAgaWYobmFtZS5sZW5ndGggPiBsZW5ndGgpe1xyXG4gICAgICAgICAgICBuYW1lID0gbmFtZS5zdWJzdHJpbmcoMCxsZW5ndGgpICsgXCIuLi5cIlxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbmFtZTtcclxuICAgIH0sXHJcbiAgICAvL+iuvue9ruWktOWDj1xyXG4gICAgc2V0UGljKG5vZGUscGljKXtcclxuICAgICAgICBub2RlLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGxldCB1cmwgPSBwaWM7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGZldGNoKHVybClcclxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LUxlbmd0aCcpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAudGhlbihlcnJObyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZihlcnJObyA9PSBcIjUwOTNcIil7XHJcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY2F0Y2goZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgWC1JbmZvOicsIGVycm9yKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICBjYy5hc3NldE1hbmFnZXIubG9hZFJlbW90ZSh1cmwsIHtleHQ6Jy5wbmcnfSwoZXJyLCB0ZXh0dXJlOmNjLlRleHR1cmUyRCkgPT4ge1xyXG4gICAgICAgICAgICBpZih0ZXh0dXJlKXtcclxuICAgICAgICAgICAgICAgIG5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIG5vZGUuZ2V0Q29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycix0ZXh0dXJlKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgIH0sXHJcbiAgICAvL+esrOS4gOS4quWPguaVsOaKiuebruagh+W4pui/m+adpeWkhOeQhu+8jOesrOS6jOS4quWPguaVsOS4uuWQjeWtl+mVv+W6pu+8jOS4jeWQjOWcuuaZr+S4jeWQjOmcgOaxglxyXG4gICAgLy/lkI3lrZc055+t77yM5bCP5o6S6KGM77yM5ZCN5a2XNumVv++8jOWkp+aOkuihjFxyXG4gICAgZ2V0UmFua0RhdGEoZGF0YSx0YXJnZXQsbmFtZUxlbmd0aCl7XHJcbiAgICAgICAgdGFyZ2V0Lmxpc3REYXRhID0gZGF0YS5kYXRhLmxpc3Q7XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZEYXRhID0gZGF0YS5kYXRhLmluZm87XHJcbiAgICAgICAgbGV0IHJhbmtEYXRhID0gW107XHJcbiAgICAgICAgbGV0IHNlbGYgPSBmYWxzZTtcclxuICAgICAgICAgY2MuZnguR2FtZVRvb2wuc2V0UGljKHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInBpY1wiKS5nZXRDaGlsZEJ5TmFtZShcImljb25cIiksdGFyZ2V0LnNlbGZEYXRhLnBpYyk7XHJcbiAgICAgICAgZm9yKGxldCBpPTA7aTw9dGFyZ2V0Lmxpc3REYXRhLmxlbmd0aC0xO2krKyl7XHJcbiAgICAgICAgICAgIHJhbmtEYXRhLnB1c2goe3Jhbms6KGkrMSksIG5hbWU6dGFyZ2V0Lmxpc3REYXRhW2ldLm5pY2tOYW1lLCB0b3RhbDp0YXJnZXQubGlzdERhdGFbaV0uc2NvcmUsdGltZTpudWxsLCBwaWM6dGFyZ2V0Lmxpc3REYXRhW2ldLnBpY30pO1xyXG4gICAgICAgICAgICBpZihjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8udXNlcklkID09IHRhcmdldC5saXN0RGF0YVtpXS51c2VySWQpe1xyXG4gICAgICAgICAgICAgICAgc2VsZiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0oaSsxKSArIFwiXCI7IFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKGkgPT0gKHRhcmdldC5saXN0RGF0YS5sZW5ndGgtMSkgJiYgc2VsZiA9PSBmYWxzZSl7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQucmFua051bWJlciA9IGk7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gXCI5OStcIjsgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgIGNjLmZ4LkdhbWVUb29sLnN1Yk5hbWUodGFyZ2V0LnNlbGZEYXRhLm5pY2tOYW1lLG5hbWVMZW5ndGgpO1xyXG4gICAgICAgIHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcIm5hbWVMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0YXJnZXQuc2VsZkRhdGEubmlja05hbWU7XHJcbiAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwidG90YWxMYWJcIikuZ2V0Q29tcG9uZW50KGNjLkxhYmVsKS5zdHJpbmcgPSB0YXJnZXQuc2VsZkRhdGEuc2NvcmU7XHJcbiAgICAgICAgbGV0IHRpbWVUZW1wID0gY2MuZnguR2FtZVRvb2wuZ2V0VGltZVNoZW5Ob25nKHRhcmdldC5zZWxmRGF0YS50b3RsZVRpbWVzKTtcclxuICAgICAgICAvLyB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJ0aW1lTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nID0gdGltZVRlbXAgKyBcIlwiO1xyXG4gICAgICAgIHN3aXRjaCh0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rTGFiXCIpLmdldENvbXBvbmVudChjYy5MYWJlbCkuc3RyaW5nKXtcclxuICAgICAgICAgICAgY2FzZSBcIjFcIjpcclxuICAgICAgICAgICAgICAgIHRhcmdldC5zZWxmTm9kZS5nZXRDaGlsZEJ5TmFtZShcInJhbmtcIikuZ2V0Q2hpbGRCeU5hbWUoXCJvbmVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFwiMlwiOlxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0LnNlbGZOb2RlLmdldENoaWxkQnlOYW1lKFwicmFua1wiKS5nZXRDaGlsZEJ5TmFtZShcInR3b1wiKS5hY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgXCIzXCI6XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQuc2VsZk5vZGUuZ2V0Q2hpbGRCeU5hbWUoXCJyYW5rXCIpLmdldENoaWxkQnlOYW1lKFwidGhyZWVcIikuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyDlpKfmjpLooYxcclxuICAgICAgICBpZihuYW1lTGVuZ3RoID09IDYpe1xyXG4gICAgICAgICAgICB0YXJnZXQucmFua0xpc3Quc2V0RGF0YShyYW5rRGF0YSk7XHJcbiAgICAgICAgICAgIHRhcmdldC5zZWxmTm9kZS5vcGFjaXR5ID0gMjU1O1xyXG4gICAgICAgICAgICBpZih0YXJnZXQuc2VsZkRhdGEudG90YWxTdW5Db3VudCA9PSAwKSB0YXJnZXQuc2VsZk5vZGUub3BhY2l0eSA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuXHJcbiAgICBnZXRTZWVkUmFuZG9tOiBmdW5jdGlvbiAobWluLCBtYXgpIHsvL+WMheWQq21pbiDkuI3ljIXlkKttYXhcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcIumaj+acuuaVsDpcIixjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY3VyclNlZWQpO1xyXG4gICAgICAgIG1heCA9IG1heCB8fCAxO1xyXG4gICAgICAgIG1pbiA9IG1pbiB8fCAwO1xyXG4gICAgICAgIGNjLmZ4LkdhbWVDb25maWcuR01fSU5GTy5jdXJyU2VlZCA9IChjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY3VyclNlZWQgKiA5MzAxICsgNDkyOTcpICUgMjMzMjgwO1xyXG4gICAgICAgIGxldCBybmQgPSBjYy5meC5HYW1lQ29uZmlnLkdNX0lORk8uY3VyclNlZWQgIC8gMjMzMjgwLjA7XHJcbiAgICAgICAgbGV0IHRtcCA9IG1pbiArIHJuZCAqIChtYXggLSBtaW4pO1xyXG4gICAgICAgIHJldHVybiBwYXJzZUludCh0bXApO1xyXG4gICAgfSxcclxuICAgIC8v6I635Y+W5YWz5Y2h6YWN572u55qE6YKj5Liq5YWz5Y2h5pWwXHJcbiAgICBnZXRDdXN0b20odHlwZSl7XHJcbiAgICAgICAgbGV0IGN1c3RvbSA9IGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLmdldFN0b3JhZ2UoY2MuZnguc3RvcmFnZVR5cGUuc3RvcmFnZVR5cGVDdXN0b20pO1xyXG4gICAgICAgIGlmKGN1c3RvbSA9PSBcInVuZGlmZW5kXCIgfHwgY3VzdG9tPT1udWxsIHx8IGN1c3RvbSA9PSBcIlwiKXtcclxuICAgICAgICAgICAgdGhpcy5zZXRDdXN0b20oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZXtcclxuICAgICAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPX1NFVChcImN1c3RvbVwiLGN1c3RvbVswXSk7XHJcbiAgICAgICAgICAgIGlmKGN1c3RvbVswXSAhPSAwIHx8IHR5cGUgPT0gIHRydWUpe1xyXG4gICAgICAgICAgICAgICAgY3VzdG9tLnNoaWZ0KCk7XHJcbiAgICAgICAgICAgICAgICBpZihjdXN0b20ubGVuZ3RoID09IDApe1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q3VzdG9tKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBlbHNlIGNjLmZ4LlN0b3JhZ2VNZXNzYWdlLnNldFN0b3JhZ2UoY2MuZnguc3RvcmFnZVR5cGUuc3RvcmFnZVR5cGVDdXN0b20sY3VzdG9tKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICAvL+acrOWcsOayoeacieWtmOWCqOWIsOmFjee9ru+8jOaIluiAhemFjee9rueUqOWujO+8jOmHjeaWsOWIm+W7uumFjee9rlxyXG4gICAgc2V0Q3VzdG9tKCl7XHJcbiAgICAgICAgbGV0IGFycmF5TGVuZ3RoID0gY2MuZnguR2FtZUNvbmZpZy5MRVZFTF9JTkZPLmxlbmd0aDtcclxuICAgICAgICBsZXQgYXJyYXlMaXN0ID0gW107XHJcbiAgICAgICAgZm9yKGxldCBpPTE7IGk8YXJyYXlMZW5ndGg7aSsrKXtcclxuICAgICAgICAgICAgYXJyYXlMaXN0LnB1c2goaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGFycmF5TGlzdC5zb3J0KCgpID0+IE1hdGgucmFuZG9tKCkgLSAwLjUpO1xyXG4gICAgICAgIGFycmF5TGlzdC51bnNoaWZ0KDApXHJcbiAgICAgICAgY2MuZnguR2FtZUNvbmZpZy5HTV9JTkZPX1NFVChcImN1c3RvbVwiLGFycmF5TGlzdFswXSk7XHJcbiAgICAgICAgY2MuZnguU3RvcmFnZU1lc3NhZ2Uuc2V0U3RvcmFnZShjYy5meC5zdG9yYWdlVHlwZS5zdG9yYWdlVHlwZUN1c3RvbSxhcnJheUxpc3QpO1xyXG4gICAgfSxcclxuXHJcblxyXG4gICAgZ2V0U2V0U2NyZWVuUmVzb2x1dGlvbkZsYWc6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBsZXQgc2l6ZSA9IGNjLndpblNpemU7XHJcbiAgICAgICAgbGV0IHdpZHRoID0gc2l6ZS53aWR0aDtcclxuICAgICAgICBsZXQgaGVpZ2h0ID0gc2l6ZS5oZWlnaHQ7XHJcbiAgICAgICAgaWYgKChoZWlnaHQgLyB3aWR0aCkgPiAoMTYuMiAvIDkpKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9LFxyXG4gICAgLy/liKTmlq3lhajpnaLlsY/pgILphY1cclxuICAgIHNldEZpdDogZnVuY3Rpb24gKGNhbnZhcykge1xyXG4gICAgICAgIGxldCBmbGFnID0gIGNjLmZ4LkdhbWVUb29sLmdldFNldFNjcmVlblJlc29sdXRpb25GbGFnKCk7XHJcbiAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICBcdC8vIGNvbnNvbGUubG9nKFwi5LiN5piv5YWo6Z2i5bGPXCIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgXHQvLyBjb25zb2xlLmxvZyhcIuaYr+WFqOmdouWxj1wiKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZsYWc7XHJcbiAgICB9LFxyXG4gICAgLy/ojrflj5bmuLjmiI/kv6Hmga9cclxuICAgIGdldEdhbWVJbmZvOiBmdW5jdGlvbihub2RlKXtcclxuICAgICAgICB2YXIgamcgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm4gamc7XHJcbiAgICB9LFxyXG4gICAgLy/orr7nva7muLjmiI/kv6Hmga9cclxuICAgIHNldEdhbWVJbmZvOiBmdW5jdGlvbihwZCl7XHJcbiAgIFxyXG4gICAgfSxcclxuXHJcbiAgICAvL+aJk+S5seaVsOe7hFxyXG4gICAgc2h1ZmZsZUFycmF5KGFycikge1xyXG4gICAgICAgIHJldHVybiBhcnIuc29ydCgoKSA9PiBNYXRoLnJhbmRvbSgpIC0gMC41KTtcclxuICAgIH0sXHJcblxyXG4gICAgLy/miZPlrZfmnLrmlYjmnpxcclxuICAgIHR5cGluZ0FuaShsYWJlbCx0ZXh0LGNiLHRhcmdldCl7XHJcbiAgICAgICAgdmFyIHNlbGYgPSB0YXJnZXQ7XHJcbiAgICAgICAgdmFyIGh0bWwgPSAnJztcclxuICAgICAgICB2YXIgYXJyID0gdGV4dC5zcGxpdCgnJyk7XHJcbiAgICAgICAgdmFyIGxlbiA9IGFyci5sZW5ndGg7XHJcbiAgICAgICAgdmFyIHN0ZXAgPSAwO1xyXG4gICAgICAgIHNlbGYuZnVuYyA9ICgpPT57XHJcbiAgICAgICAgICAgIGh0bWwgKz0gYXJyW3N0ZXBdO1xyXG4gICAgICAgICAgICBsYWJlbC5zdHJpbmcgPSBodG1sO1xyXG4gICAgICAgICAgICBpZiAoKytzdGVwID09IGxlbikge1xyXG4gICAgICAgICAgICAgICAgc2VsZi51bnNjaGVkdWxlKHNlbGYuZnVuYyk7XHJcbiAgICAgICAgICAgICAgICBjYiAmJiBjYigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHNlbGYuc2NoZWR1bGUoc2VsZi5mdW5jLDAuMSwgY2MubWFjcm8uUkVQRUFUX0ZPUkVWRVIsIDApXHJcbiAgICB9LFxyXG5cclxuICAgIC8v6L6T5YWl56eSLOi/lOWbnumcgOimgeWxleekuuaXtumXtOagvOW8j1xyXG4gICAgZ2V0VGltZU1hcmdpbjooc2Vjb25kKSA9PiB7XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IHNlY29uZDtcclxuICAgICAgICBsZXQgaG91ciA9IDA7XHJcbiAgICAgICAgaG91ciA9IHBhcnNlSW50KCh0b3RhbCAvIDM2MDApICsgXCJcIik7Ly/orqHnrpfmlbTmlbDlsI/ml7bmlbBcclxuICAgICAgICBsZXQgYWZ0ZXJIb3VyID0gdG90YWwgLSBob3VyICogNjAgKiA2MDsvL+WPluW+l+eul+WHuuWwj+aXtuaVsOWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaW4gPSBwYXJzZUludCgoYWZ0ZXJIb3VyIC8gNjApK1wiXCIpOy8v6K6h566X5pW05pWw5YiGXHJcbiAgICAgICAgbGV0IG0gPSBcIlwiICsgbWluOyAgXHJcbiAgICAgICAgaWYobWluIDwgMTApIG0gPSBcIjBcIittaW47XHJcbiAgICAgICAgbGV0IGFmdGVyTWluID0gdG90YWwgLSBob3VyICogNjAgKiA2MCAtIG1pbiAqIDYwOy8v5Y+W5b6X566X5Ye65YiG5ZCO5Ymp5L2Z55qE56eS5pWwXHJcbiAgICAgICAgbGV0IG1pYW8gPSBhZnRlck1pbiArIFwiXCI7XHJcbiAgICAgICAgaWYoYWZ0ZXJNaW4gPCAxMCkgbWlhbyA9IFwiMFwiICsgYWZ0ZXJNaW47XHJcbiAgICAgICAgcmV0dXJuIG0gKyAnOicgKyBtaWFvXHJcbiAgICB9LFxyXG5cclxuICAgIC8v6L6T5YWl56eSLOi/lOWbnumcgOimgeWxleekuuaXtumXtOagvOW8j1xyXG4gICAgZ2V0VGltZVNoZW5Ob25nOihzZWNvbmQpID0+IHtcclxuICAgICAgICBzZWNvbmQgPSBwYXJzZUludChzZWNvbmQvMTAwMCtcIlwiKTtcclxuICAgICAgICBsZXQgdG90YWwgPSAwO1xyXG4gICAgICAgIHRvdGFsID0gc2Vjb25kO1xyXG4gICAgICAgIGxldCBtaW4gPSAwO1xyXG4gICAgICAgIGlmKHRvdGFsID4gNjApe1xyXG4gICAgICAgICAgICBtaW4gPSBwYXJzZUludCgodG90YWwgLyA2MCkrXCJcIik7Ly/orqHnrpfmlbTmlbDliIZcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IG0gPSAgbWluICsgXCInXCI7ICBcclxuXHJcbiAgICAgICAgbGV0IGFmdGVyTWluID0gdG90YWwgLSBtaW4gKiA2MDsvL+WPluW+l+eul+WHuuWIhuWQjuWJqeS9meeahOenkuaVsFxyXG4gICAgICAgIGxldCBtaWFvID0gYWZ0ZXJNaW4gKyBcIicnXCI7XHJcbiAgICAgICAgcmV0dXJuIG0gKyBtaWFvXHJcbiAgICB9LFxyXG5cclxuICAgIC8v6L6T5YWl56eSLOi/lOWbnumcgOimgeWxleekuuaXtumXtOagvOW8j1xyXG4gICAgZ2V0VGltZUxvbmRvbjooc2Vjb25kKSA9PiB7XHJcbiAgICAgICAgbGV0IHRvdGFsID0gMDtcclxuICAgICAgICB0b3RhbCA9IHNlY29uZDtcclxuICAgICAgICBsZXQgbWluID0gMDtcclxuICAgICAgICBpZih0b3RhbCA+PSA2MCl7XHJcbiAgICAgICAgICAgIG1pbiA9IHBhcnNlSW50KCh0b3RhbCAvIDYwKStcIlwiKTsvL+iuoeeul+aVtOaVsOWIhlxyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbSA9ICBtaW4gKyBcIiDliIZcIjsgIFxyXG5cclxuICAgICAgICBsZXQgYWZ0ZXJNaW4gPSB0b3RhbCAtIG1pbiAqIDYwOy8v5Y+W5b6X566X5Ye65YiG5ZCO5Ymp5L2Z55qE56eS5pWwXHJcbiAgICAgICAgbGV0IG1pYW8gPSBhZnRlck1pbiArIFwiIOenklwiO1xyXG4gICAgICAgIHJldHVybiBtICsgXCIgXCIgKyBtaWFvXHJcbiAgICB9LFxyXG5cclxuICAgIC8v6I635Y+W5pe26Ze05oizXHJcbiAgICBnZXRUaW1lKCl7XHJcbiAgICAgICAgdmFyIHRpbWVzdGFtcCA9ICAobmV3IERhdGUoKS5nZXRUaW1lKCkpXHJcbiAgICAgICAgcmV0dXJuIHRpbWVzdGFtcDtcclxuICAgIH0sXHJcbiAgICBwdXNoTGlzdGVyOmZ1bmN0aW9uICgpIHtcclxuICAgICAgICBcclxuICAgIH0sXHJcbiAgICByZW1vdmVBbGxMaXN0ZXI6ZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIFxyXG4gICAgfSxcclxuXHJcbn07XHJcbmV4cG9ydCB7IEdhbWVUb29sIH07Il19 \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js b/temp/quick-scripts/dst/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js new file mode 100644 index 0000000..ca85f21 --- /dev/null +++ b/temp/quick-scripts/dst/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js @@ -0,0 +1,46 @@ + + (function() { + var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; + var __module = nodeEnv ? module : {exports:{}}; + var __filename = 'preview-scripts/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js'; + var __require = nodeEnv ? function (request) { + return cc.require(request); + } : function (request) { + return __quick_compile_project__.require(request, __filename); + }; + function __define (exports, require, module) { + if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; +cc._RF.push(module, '7a231Rz0d9LBYYgY3bDYlLB', 'use_v2.1-2.2.1_cc.Toggle_event'); +// migration/use_v2.1-2.2.1_cc.Toggle_event.js + +"use strict"; + +/* + * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version. + * You do not need to manually add this script in any other project. + * If you don't use cc.Toggle in your project, you can delete this script directly. + * If your project is hosted in VCS such as git, submit this script together. + * + * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程, + * 你无需在任何其它项目中手动添加此脚本。 + * 如果你的项目中没用到 Toggle,可直接删除该脚本。 + * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 + */ +if (cc.Toggle) { + // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code + // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 + cc.Toggle._triggerEventInScript_isChecked = true; +} + +cc._RF.pop(); + } + if (nodeEnv) { + __define(__module.exports, __require, __module); + } + else { + __quick_compile_project__.registerModuleFunc(__filename, function () { + __define(__module.exports, __require, __module); + }); + } + })(); +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcbWlncmF0aW9uXFx1c2VfdjIuMS0yLjIuMV9jYy5Ub2dnbGVfZXZlbnQuanMiXSwibmFtZXMiOlsiY2MiLCJUb2dnbGUiLCJfdHJpZ2dlckV2ZW50SW5TY3JpcHRfaXNDaGVja2VkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFJQSxFQUFFLENBQUNDLE1BQVAsRUFBZTtBQUNYO0FBQ0E7QUFDQUQsRUFBQUEsRUFBRSxDQUFDQyxNQUFILENBQVVDLCtCQUFWLEdBQTRDLElBQTVDO0FBQ0giLCJzb3VyY2VSb290IjoiLyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFRoaXMgc2NyaXB0IGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IENvY29zIENyZWF0b3IgYW5kIGlzIG9ubHkgdXNlZCBmb3IgcHJvamVjdHMgY29tcGF0aWJsZSB3aXRoIHRoZSB2Mi4xLjAg772eIDIuMi4xIHZlcnNpb24uXHJcbiAqIFlvdSBkbyBub3QgbmVlZCB0byBtYW51YWxseSBhZGQgdGhpcyBzY3JpcHQgaW4gYW55IG90aGVyIHByb2plY3QuXHJcbiAqIElmIHlvdSBkb24ndCB1c2UgY2MuVG9nZ2xlIGluIHlvdXIgcHJvamVjdCwgeW91IGNhbiBkZWxldGUgdGhpcyBzY3JpcHQgZGlyZWN0bHkuXHJcbiAqIElmIHlvdXIgcHJvamVjdCBpcyBob3N0ZWQgaW4gVkNTIHN1Y2ggYXMgZ2l0LCBzdWJtaXQgdGhpcyBzY3JpcHQgdG9nZXRoZXIuXHJcbiAqXHJcbiAqIOatpOiEmuacrOeUsSBDb2NvcyBDcmVhdG9yIOiHquWKqOeUn+aIkO+8jOS7heeUqOS6juWFvOWuuSB2Mi4xLjAgfiAyLjIuMSDniYjmnKznmoTlt6XnqIvvvIxcclxuICog5L2g5peg6ZyA5Zyo5Lu75L2V5YW25a6D6aG555uu5Lit5omL5Yqo5re75Yqg5q2k6ISa5pys44CCXHJcbiAqIOWmguaenOS9oOeahOmhueebruS4reayoeeUqOWIsCBUb2dnbGXvvIzlj6/nm7TmjqXliKDpmaTor6XohJrmnKzjgIJcclxuICog5aaC5p6c5L2g55qE6aG555uu5pyJ5omY566h5LqOIGdpdCDnrYnniYjmnKzlupPvvIzor7flsIbmraTohJrmnKzkuIDlubbkuIrkvKDjgIJcclxuICovXHJcblxyXG5pZiAoY2MuVG9nZ2xlKSB7XHJcbiAgICAvLyBXaGV0aGVyIHRvIHRyaWdnZXIgJ3RvZ2dsZScgYW5kICdjaGVja0V2ZW50cycgZXZlbnRzIHdoZW4gbW9kaWZ5aW5nICd0b2dnbGUuaXNDaGVja2VkJyBpbiB0aGUgY29kZVxyXG4gICAgLy8g5Zyo5Luj56CB5Lit5L+u5pS5ICd0b2dnbGUuaXNDaGVja2VkJyDml7bmmK/lkKbop6blj5EgJ3RvZ2dsZScg5LiOICdjaGVja0V2ZW50cycg5LqL5Lu2XHJcbiAgICBjYy5Ub2dnbGUuX3RyaWdnZXJFdmVudEluU2NyaXB0X2lzQ2hlY2tlZCA9IHRydWU7XHJcbn1cclxuIl19 \ No newline at end of file diff --git a/temp/quick-scripts/src/__qc_index__.js b/temp/quick-scripts/src/__qc_index__.js new file mode 100644 index 0000000..e20a990 --- /dev/null +++ b/temp/quick-scripts/src/__qc_index__.js @@ -0,0 +1,22 @@ + +require('./assets/Script/Block'); +require('./assets/Script/DynamicAtlasManager'); +require('./assets/Script/GameManager'); +require('./assets/Script/GameOver'); +require('./assets/Script/Load'); +require('./assets/Script/RankManager'); +require('./assets/Script/Sdk/DouyinEntranceView'); +require('./assets/Script/Sdk/MiniGameManager'); +require('./assets/Script/Sdk/MiniGameSdk'); +require('./assets/Script/module/Config/GameConfig'); +require('./assets/Script/module/Crypto/HttpUtil'); +require('./assets/Script/module/Crypto/crypto-js.min'); +require('./assets/Script/module/GameStart/GameAppStart'); +require('./assets/Script/module/Music/AudioManager'); +require('./assets/Script/module/Notification/Notification'); +require('./assets/Script/module/RankList/ItemRender'); +require('./assets/Script/module/RankList/List'); +require('./assets/Script/module/Share/share'); +require('./assets/Script/module/Storage/Storage'); +require('./assets/Script/module/Tool/GameTool'); +require('./assets/migration/use_v2.1-2.2.1_cc.Toggle_event'); diff --git a/temp/quick-scripts/src/assets/Script/Block.js b/temp/quick-scripts/src/assets/Script/Block.js new file mode 100644 index 0000000..fc120cf --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/Block.js @@ -0,0 +1,149 @@ +"use strict"; +cc._RF.push(module, 'd63eeqXqS5GV5T/inM6K0aA', 'Block'); +// Script/Block.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +//出现块的类型,问题以及答案 +var BlockType = cc.Enum({ + problem_In: 1, + problem_Out: 2, + correct_In: 3, + correct_Out: 4, + err_In: 5, + err_Out: 6, +}); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var Block = /** @class */ (function (_super) { + __extends(Block, _super); + function Block() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.UI = null; + return _this; + // update (dt) { + // } + } + // LIFE-CYCLE CALLBACKS: + Block.prototype.onLoad = function () { + // this.init(); + this.GameManager = this.node.parent.parent.parent.getComponent("GameManager"); + this._touch = false; + this._start = false; + this._answer = false; + this._inside = true; + this.node.on(cc.Node.EventType.TOUCH_START, this.touchStart, this); + }; + Block.prototype.init = function (type, id) { + if (type == BlockType.correct_Out) { + } + }; + Block.prototype.setId = function (id) { + this._idNumber = id; + }; + Block.prototype.answerShow = function (texture) { + var _this = this; + this.node.getChildByName("texture").active = true; + var textureName = "texture" + texture; + // @ts-ignore + this.node.getChildByName("texture").getComponent(cc.Sprite).spriteFrame = this.UI._spriteFrames[textureName]; + cc.tween(this.node.getChildByName("texture")) + .to(0.01, { opacity: 255 }) + .delay(this.GameManager.config["showTime"] - 0.05) + .call(function () { + if (_this._inside) { + _this.node.getChildByName("texture").opacity = 0; + } + }) + .start(); + }; + Block.prototype.lockShow = function (type, inside) { + this.node.getChildByName("texture").active = false; + this._answer = type; + this._inside = inside; + this.node.getChildByName("lock").active = true; + this._touch = true; + }; + Block.prototype.lockHide = function () { + this.node.getChildByName("lock").active = false; + this._touch = false; + }; + Block.prototype.show = function (type, inside, texture) { + var _this = this; + // this._answer = type; + this._inside = inside; + if (inside) + this._answer = type; + var textureName = "texture" + texture; + this.node.getChildByName("texture").active = true; + //正确答案 + //@ts-ignore + this.node.getChildByName("texture").getComponent(cc.Sprite).spriteFrame = this.UI._spriteFrames[textureName]; + cc.tween(this.node.getChildByName("texture")) + .to(0.01, { opacity: 255 }) + // .delay(this.GameManager.config["showTime"]-0.1) + .call(function () { + if (inside) { + _this._touch = true; + } + }) + .start(); + }; + Block.prototype.set_Pos = function () { + this._start = true; + }; + Block.prototype.set_Touch = function (type) { + this._touch = type; + }; + Block.prototype.start = function () { + }; + //开始点击,提高层级 + Block.prototype.touchStart = function (event) { + if (this._touch) { + if (this._answer) { + this.node.getChildByName("yes").active = true; + var data = { "result": true, "type": this._inside, id: this._idNumber }; + cc.fx.Notifications.emit("result", data); + } + else { + this.node.getChildByName("err").active = true; + var data = { "result": false, "type": this._inside, id: this._idNumber }; + cc.fx.Notifications.emit("result", data); + } + } + }; + __decorate([ + property(cc.Asset) + ], Block.prototype, "UI", void 0); + Block = __decorate([ + ccclass + ], Block); + return Block; +}(cc.Component)); +exports.default = Block; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Block.js.map b/temp/quick-scripts/src/assets/Script/Block.js.map new file mode 100644 index 0000000..abaebc3 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/Block.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\Block.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\n//出现块的类型,问题以及答案\r\nvar BlockType = cc.Enum({\r\n problem_In: 1, //内圈问题\r\n problem_Out: 2, //外圈问题\r\n correct_In:3, //内圈正确答案\r\n correct_Out:4, //外圈正确答案\r\n err_In:5, //内圈错误答案\r\n err_Out:6, //外圈错误答案\r\n});\r\n\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class Block extends cc.Component {\r\n\r\n @property(cc.Asset)\r\n UI: cc.Asset = null;\r\n\r\n _touch: boolean;\r\n _start: boolean;\r\n _answer: boolean;\r\n _inside: boolean;\r\n _idNumber: number;\r\n GameManager: any;\r\n tube_Array: number[][];//管子数组\r\n\r\n // LIFE-CYCLE CALLBACKS:\r\n\r\n onLoad () {\r\n // this.init();\r\n this.GameManager = this.node.parent.parent.parent.getComponent(\"GameManager\");\r\n this._touch = false;\r\n this._start = false;\r\n this._answer = false;\r\n this._inside = true;\r\n this.node.on(cc.Node.EventType.TOUCH_START, this.touchStart, this);\r\n }\r\n\r\n init(type,id){\r\n if(type == BlockType.correct_Out){\r\n \r\n }\r\n }\r\n\r\n setId(id){\r\n this._idNumber = id;\r\n }\r\n\r\n answerShow(texture){\r\n this.node.getChildByName(\"texture\").active = true;\r\n let textureName = \"texture\"+texture;\r\n // @ts-ignore\r\n this.node.getChildByName(\"texture\").getComponent(cc.Sprite).spriteFrame = this.UI._spriteFrames[textureName];\r\n cc.tween(this.node.getChildByName(\"texture\"))\r\n .to(0.01,{opacity:255})\r\n .delay(this.GameManager.config[\"showTime\"]-0.05)\r\n .call(() =>{\r\n if(this._inside){\r\n this.node.getChildByName(\"texture\").opacity = 0;\r\n }\r\n })\r\n .start();\r\n }\r\n\r\n lockShow(type,inside){\r\n this.node.getChildByName(\"texture\").active = false;\r\n this._answer = type;\r\n this._inside = inside;\r\n this.node.getChildByName(\"lock\").active = true;\r\n this._touch = true;\r\n }\r\n\r\n lockHide(){\r\n this.node.getChildByName(\"lock\").active = false;\r\n this._touch = false;\r\n }\r\n\r\n show(type,inside,texture){\r\n // this._answer = type;\r\n this._inside = inside;\r\n if(inside) this._answer = type;\r\n let textureName = \"texture\"+texture;\r\n this.node.getChildByName(\"texture\").active = true;\r\n //正确答案\r\n //@ts-ignore\r\n this.node.getChildByName(\"texture\").getComponent(cc.Sprite).spriteFrame = this.UI._spriteFrames[textureName];\r\n cc.tween(this.node.getChildByName(\"texture\"))\r\n .to(0.01,{opacity:255})\r\n // .delay(this.GameManager.config[\"showTime\"]-0.1)\r\n .call(() =>{\r\n if(inside){\r\n this._touch = true;\r\n }\r\n })\r\n .start();\r\n\r\n }\r\n\r\n set_Pos(){\r\n this._start = true;\r\n }\r\n\r\n set_Touch(type){\r\n this._touch = type;\r\n }\r\n\r\n start () {\r\n\r\n }\r\n //开始点击,提高层级\r\n touchStart (event) {\r\n if(this._touch){\r\n if(this._answer){\r\n this.node.getChildByName(\"yes\").active = true;\r\n let data = {\"result\":true,\"type\":this._inside,id:this._idNumber};\r\n cc.fx.Notifications.emit(\"result\",data);\r\n }\r\n else{\r\n this.node.getChildByName(\"err\").active = true;\r\n let data = {\"result\":false,\"type\":this._inside,id:this._idNumber};\r\n cc.fx.Notifications.emit(\"result\",data);\r\n }\r\n }\r\n \r\n }\r\n\r\n // update (dt) {\r\n\r\n // }\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js b/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js new file mode 100644 index 0000000..e2f00ab --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js @@ -0,0 +1,15 @@ +"use strict"; +cc._RF.push(module, '5c9b8FZiaNLMrMDs9T3rByf', 'DynamicAtlasManager'); +// Script/DynamicAtlasManager.js + +"use strict"; + +cc.Class({ + "extends": cc.Component, + properties: {}, + onLoad: function onLoad() { + cc.dynamicAtlasManager.enabled = false; + } +}); + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js.map b/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js.map new file mode 100644 index 0000000..73cca2f --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/DynamicAtlasManager.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\DynamicAtlasManager.js"],"names":["cc","Class","Component","properties","onLoad","dynamicAtlasManager","enabled"],"mappings":";;;;;;AAAAA,EAAE,CAACC,KAAH,CAAS;AACL,aAASD,EAAE,CAACE,SADP;AAGLC,EAAAA,UAAU,EAAE,EAHP;AAMLC,EAAAA,MANK,oBAMK;AACNJ,IAAAA,EAAE,CAACK,mBAAH,CAAuBC,OAAvB,GAAiC,KAAjC;AACH;AARI,CAAT","sourceRoot":"/","sourcesContent":["cc.Class({\r\n extends: cc.Component,\r\n\r\n properties: {\r\n },\r\n\r\n onLoad () {\r\n cc.dynamicAtlasManager.enabled = false;\r\n },\r\n});\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/GameManager.js b/temp/quick-scripts/src/assets/Script/GameManager.js new file mode 100644 index 0000000..df44c03 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/GameManager.js @@ -0,0 +1,536 @@ +"use strict"; +cc._RF.push(module, 'b0432BA295DjIOcuitdGKO1', 'GameManager'); +// Script/GameManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +// 主游戏控制类 +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var GameManager = /** @class */ (function (_super) { + __extends(GameManager, _super); + function GameManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.kuang1_Prefab = null; + _this.kuang2_Prefab = null; + _this.Block = null; + _this.TimeLabel = null; + _this.LevelLabel = null; + _this.Guide = null; + _this.progress = null; //-95 640 + _this.Top = null; //80 -725 + return _this; + } + GameManager.prototype.onLoad = function () { + this.guide_State = false; + this.level = cc.fx.GameConfig.GM_INFO.level; + this.guide_Level = cc.fx.GameConfig.GM_INFO.guide_Level; + this.LevelLabel.string = (this.level + 1) + ""; + this.progress.fillRange = cc.fx.GameConfig.GM_INFO.score / 24; + if (this.progress.fillRange >= 0.2) + this.Top.getChildByName("star1").active = true; + if (this.progress.fillRange >= 0.5) + this.Top.getChildByName("star2").active = true; + if (this.progress.fillRange >= 0.8) + this.Top.getChildByName("star3").active = true; + if ((this.level == 0 && this.guide_Level == 4) || + (this.level == 4 && this.guide_Level == 3) || + (this.level == 8 && this.guide_Level == 1)) { + this.openGuide(false); + } + else { + this.LevelLabel.node.active = true; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "第 轮"; + this.init(); + } + }; + GameManager.prototype.init = function () { + var _this = this; + if (this.level == 4 && this.guide_Level == 2) { + cc.fx.GameConfig.GM_INFO.guide_Level -= 1; + this.guide_State = true; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + // this.node.getChildByName("tip").active = true; + } + this.result = 0; + this.countTime = 6; + this.TimeLabel.string = cc.fx.GameTool.getTimeMargin(this.countTime); + this.createBlock(); + setTimeout(function () { + _this.createCustom(); + }, 1000); + }; + GameManager.prototype.openGuide = function (type) { + this.Guide.active = true; + this.guide_State = true; + // this.node.getChildByName("tip").active = true; + if (!type) + cc.fx.GameConfig.GM_INFO.guide_Level -= 1; + this.Guide.getChildByName("one").active = false; + this.Guide.getChildByName("two").active = false; + this.Guide.getChildByName("three").active = false; + this.Guide.getChildByName("four").active = false; + var name = "one"; + if (this.level == 0) { + name = "one"; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + } + else if (this.level == 4) { + name = "two"; + this.LevelLabel.node.active = false; + this.node.getChildByName("Top").getChildByName("lianxi").getComponent(cc.Label).string = "练 习"; + } + else if (this.level == 8) { + name = "three"; + this.guide_State = false; + } + if (type) + name = "four"; + this.Guide.getChildByName(name).active = true; + cc.tween(this.Guide.getChildByName(name)) + .to(0.5, { opacity: 255 }) + .start(); + }; + GameManager.prototype.closeGuide = function () { + if (this.Guide.getChildByName("four").active) { + this.Guide.active = false; + cc.director.loadScene("GameScene"); + } + else { + this.Guide.active = false; + this.init(); + } + // + }; + //创建方块地图 + GameManager.prototype.createBlock = function () { + this.outside_Array = []; + this.inside_Array = []; + this.outside = []; + this.inside = []; + for (var i = 0; i < 16; i++) { + var block = cc.instantiate(this.kuang1_Prefab); + block.getComponent("Block").setId(i); + block.parent = this.Block.getChildByName("outside"); + var x = void 0, y = 0; + if (i < 5) { + x = -284 + 142 * i; + y = 259; + } + else if (i < 9) { + x = 284; + y = 259 - (i - 4) * 142; + } + else if (i < 13) { + x = 284 - (i - 8) * 142; + y = -309; + } + else if (i < 16) { + x = -284; + y = -309 + (i - 12) * 142; + } + block.setPosition(x, y); + this.outside_Array.push(block); + } + for (var j = 3; j < 12; j++) { + var block = cc.instantiate(this.kuang2_Prefab); + block.getComponent("Block").setId(j); + block.parent = this.Block.getChildByName("inside"); + block.setPosition(-132 + j % 3 * 132, 239 - parseInt(j / 3 + "") * 132); + this.inside_Array.push(block); + } + }; + //创建关卡 + GameManager.prototype.createCustom = function () { + //初始化关卡配置数据 + this.level = cc.fx.GameConfig.GM_INFO.level; + this.LevelLabel.string = (this.level + 1) + ""; + this.config = cc.fx.GameConfig.LEVEL_INFO[this.level]; + if (this.level == 4 && this.guide_Level == 2) { + this.config = cc.fx.GameConfig.LEVEL_INFO[6]; + } + this.pass = false; + //放正确答案和错误答案 + this.answerInsideTexture = Math.floor(Math.random() * 14 + 1); + //内圈错误答案随机 + this.insideTexture = []; + this.outsideTexture = []; + for (var k = 0; k < 14; k++) { + if ((k + 1) != this.answerInsideTexture) { + this.insideTexture.push(k + 1); + } + } + cc.fx.GameTool.shuffleArray(this.insideTexture); + this.answerOutsideTexture = this.insideTexture[11]; + //分配正确答案和错误答案位置 + if (this.config["inside"] > 0) { + this.result += 1; + var random = Math.random() * 100; + var arrayTemp = [0, 1, 2, 3, 5, 6, 7, 8]; + if (this.config["insideType"] == 1) { + if (random >= 50) + this.inside = [0, 1, 2]; + else + this.inside = [6, 7, 8]; + } + else if (this.config["insideType"] == 2) { + if (random >= 50) + this.inside = [0, 3, 6]; + else + this.inside = [2, 5, 8]; + } + else { + this.inside = cc.fx.GameTool.shuffleArray(arrayTemp); + this.inside.splice(this.config["inside"], this.inside.length - this.config["inside"]); + } + this.answerInside = this.inside[Math.floor(Math.random() * this.inside.length)]; + } + //分配外圈正确答案和错误答案位置 + if (this.config["outside"] > 0) { + this.result += 1; + if (this.config["outsideType"] == 1) { + this.outside = [1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15]; + } + else if (this.config["outsideType"] == 2) { + this.outside = [0, 4, 8, 12]; + } + else { + this.outside = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; + } + cc.fx.GameTool.shuffleArray(this.outside); + this.answerOutside = this.outside[Math.floor(Math.random() * this.outside.length)]; + if (this.config["outside"] == 2) { + for (var j = 0; j < 15; j++) { + this.outsideTexture.push(this.insideTexture[3]); + } + } + else if (this.config["outside"] == 3) { + this.outsideTexture = [this.insideTexture[5], this.insideTexture[6], this.insideTexture[5], this.insideTexture[6], this.insideTexture[5]]; + for (var j = 0; j < 10; j++) { + var randomTemp = Math.random() * 100; + if (randomTemp > 50) + this.outsideTexture.push(this.insideTexture[5]); + else + this.outsideTexture.push(this.insideTexture[6]); + } + cc.fx.GameTool.shuffleArray(this.outsideTexture); + } + else if (this.config["outside"] == 4) { + this.outsideTexture = [this.insideTexture[2], this.insideTexture[4], this.insideTexture[6], + this.insideTexture[2], this.insideTexture[4], this.insideTexture[6]]; + for (var j = 0; j < 9; j++) { + var randomTemp = Math.random() * 100; + if (randomTemp < 33) + this.outsideTexture.push(this.insideTexture[2]); + else if (randomTemp < 66) + this.outsideTexture.push(this.insideTexture[4]); + else + this.outsideTexture.push(this.insideTexture[6]); + } + cc.fx.GameTool.shuffleArray(this.outsideTexture); + } + } + this.runBlock(); + }; + //块执行图片出现消失动画 + GameManager.prototype.runBlock = function () { + var _this = this; + if (this.config["inside"] > 0) { + this.inside_Array[4].getComponent("Block").answerShow(this.answerInsideTexture); + setTimeout(function () { + var insideNumber = 0; + for (var i = 0; i < _this.inside.length; i++) { + if (_this.inside[i] == _this.answerInside) + _this.inside_Array[_this.inside[i]].getComponent("Block").show(true, true, _this.answerInsideTexture); + else { + _this.inside_Array[_this.inside[i]].getComponent("Block").show(false, true, _this.insideTexture[insideNumber]); + insideNumber += 1; + } + } + }, this.config["showTime"] * 1000); + } + if (this.config["outside"] > 0) { + this.outside_Array[this.answerOutside].getComponent("Block").answerShow(this.answerOutsideTexture); + if (this.config["outside"] > 1) { + var outsideNumber = 0; + for (var i = 0; i < this.outside_Array.length; i++) { + if (i == this.answerOutside) + this.outside_Array[i].getComponent("Block").show(true, false, this.answerOutsideTexture); + else { + this.outside_Array[i].getComponent("Block").show(false, false, this.outsideTexture[outsideNumber]); + outsideNumber += 1; + } + } + } + setTimeout(function () { + var outsideNumber = 0; + for (var i = 0; i < _this.outside_Array.length; i++) { + if (i == _this.answerOutside) + _this.outside_Array[i].getComponent("Block").lockShow(true, false); + else { + _this.outside_Array[i].getComponent("Block").lockShow(false, false); + outsideNumber += 1; + } + } + }, this.config["showTime"] * 1000); + } + setTimeout(function () { + if (!_this.guide_State) { + _this.startTime = cc.fx.GameTool.getTime(); + _this.schedule(_this.updateCountDownTime, 1); + } + }, this.config["showTime"] * 1000); + }; + //正确 + GameManager.prototype.openResult = function (result) { + var _this = this; + this.result -= 1; + //非引导状态 + if (!this.guide_State) { + this.flipBlock(result); + if (this.result == 0) { + this.unschedule(this.updateCountDownTime); + setTimeout(function () { + _this.setData(result); + }, 1000); + setTimeout(function () { + if (cc.fx.GameConfig.GM_INFO.level < cc.fx.GameConfig.LEVEL_INFO.length - 1) { + cc.fx.GameConfig.GM_INFO.level += 1; + cc.director.loadScene("GameScene"); + } + }, 2000); + } + } + //引导状态下 + else { + if (result.result) { + this.flipBlock(result); + setTimeout(function () { + if (_this.level == 4 && cc.fx.GameConfig.GM_INFO.guide_Level == 2) { + cc.director.loadScene("GameScene"); + } + else + _this.openGuide(true); + }, 1000); + } + } + }; + //翻转形状变成问号 + GameManager.prototype.flipBlock = function (result) { + if (result.type) { + var pos = this.changePos(true, result.id); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.userChoiceInner.push(pos.x, pos.y); + for (var i = 0; i < this.inside.length; i++) { + if (this.inside[i] == this.answerInside) { + this.inside_Array[4].getChildByName("texture").active = true; + this.inside_Array[4].getChildByName("texture").opacity = 255; + this.inside_Array[this.inside[i]].getChildByName("yes").active = true; + var pos_1 = this.changePos(true, this.inside_Array[this.inside[i]].getComponent("Block")._idNumber); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.rightChoiceInner.push(pos_1.x, pos_1.y); + } + this.inside_Array[this.inside[i]].getComponent("Block")._touch = false; + } + if (result.result) { + this.addScore(); + } + } + else { + var pos = this.changePos(false, result.id); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.userChoiceOuter.push(pos.x, pos.y); + for (var i = 0; i < this.outside_Array.length; i++) { + this.outside_Array[i].getComponent("Block").lockHide(); + this.outside_Array[i].getChildByName("texture").active = true; + if (i == this.answerOutside) { + this.outside_Array[i].getChildByName("yes").active = true; + this.outside_Array[i].getComponent("Block").show(true, false, this.answerOutsideTexture); + var pos_2 = this.changePos(false, this.outside_Array[i].getComponent("Block")._idNumber); + if (!this.guide_State) + cc.fx.GameConfig.CLICK_DATA.rightChoiceOuter.push(pos_2.x, pos_2.y); + } + } + if (result.result) { + this.addScore(); + } + } + }; + //加分 加进度条,加星星 + GameManager.prototype.addScore = function () { + var _this = this; + if (!this.guide_State) { + cc.fx.GameConfig.GM_INFO.score += 1; + var progress = cc.fx.GameConfig.GM_INFO.score / 24; + if (progress >= 1) + progress = 1; + cc.tween(this.progress) + .to(0.2, { fillRange: progress }) + .call(function () { + if (_this.Top.getChildByName("star1").active == false && progress >= 0.2) { + _this.Top.getChildByName("star1").active = true; + _this.Top.getChildByName("star1").opacity = 0; + _this.Top.getChildByName("star1").scale = 0.1; + cc.tween(_this.Top.getChildByName("star1")) + .to(0.3, { opacity: 255, scale: 1.1 }) + .to(0.1, { opacity: 255, scale: 0.9 }) + .to(0.1, { opacity: 255, scale: 1 }) + .start(); + } + if (_this.Top.getChildByName("star2").active == false && progress >= 0.5) { + _this.Top.getChildByName("star2").active = true; + _this.Top.getChildByName("star2").opacity = 0; + _this.Top.getChildByName("star2").scale = 0.1; + cc.tween(_this.Top.getChildByName("star2")) + .to(0.3, { opacity: 255, scale: 1.1 }) + .to(0.1, { opacity: 255, scale: 0.9 }) + .to(0.1, { opacity: 255, scale: 1 }) + .start(); + } + if (_this.Top.getChildByName("star3").active == false && progress >= 0.8) { + _this.Top.getChildByName("star3").active = true; + _this.Top.getChildByName("star3").opacity = 0; + _this.Top.getChildByName("star3").scale = 0.1; + cc.tween(_this.Top.getChildByName("star3")) + .to(0.3, { opacity: 255, scale: 1.1 }) + .to(0.1, { opacity: 255, scale: 0.9 }) + .to(0.1, { opacity: 255, scale: 1 }) + .start(); + } + }) + .start(); + } + }; + //返回首页 + GameManager.prototype.backScene = function () { + cc.director.loadScene("LoadScene"); + }; + //重新开始 + GameManager.prototype.reStart = function () { + }; + //获取时间戳 + GameManager.prototype.getTime = function () { + var timestamp = new Date().getTime(); + return timestamp; + }; + //获胜 + GameManager.prototype.passLevel = function () { + }; + //失败 + GameManager.prototype.loseLevel = function (type) { + }; + GameManager.prototype.changePos = function (type, num) { + var x = 0; + var y = 0; + //内部 + if (type) { + y = parseInt(num / 3 + ""); + x = num % 3; + } + //外部 + else { + if (num < 5) { + y = 0; + x = num; + } + else if (num < 9) { + x = 5; + y = num - 4; + } + else if (num < 13) { + y = 4; + x = 12 - num; + } + else if (num < 16) { + x = 0; + y = 16 - num; + } + } + var jg = cc.v2(x, y); + return jg; + }; + //如果是倒计时 调用此方法 + GameManager.prototype.updateCountDownTime = function () { + if (this.countTime > 0) { + this.countTime -= 1; + // this.TimeLabel.string =this.countTime + ""; + this.TimeLabel.string = cc.fx.GameTool.getTimeMargin(this.countTime); + if (this.countTime <= 0) { + this.unschedule(this.updateCountDownTime); + this.node.getChildByName("Mask").active = true; + var data = { "result": false, "type": true, "id": null }; + if (this.config["inside"] > 0) + cc.fx.Notifications.emit("result", data); + var data2 = { "result": false, "type": false, "id": null }; + if (this.config["outside"] > 0) + cc.fx.Notifications.emit("result", data2); + } + } + }; + //上传每次操作数据 + GameManager.prototype.setData = function (result) { + cc.fx.GameConfig.CLICK_DATA.success = result.result; + cc.fx.GameConfig.CLICK_DATA.round = (cc.fx.GameConfig.GM_INFO.level + 1); + cc.fx.GameConfig.CLICK_DATA.duration = new Date().getTime() - this.startTime - 1000; + cc.fx.GameTool.setGameData(); + }; + GameManager.prototype.onEnable = function () { + cc.fx.Notifications.on("result", this.openResult, this); + }; + GameManager.prototype.onDisable = function () { + cc.fx.Notifications.off("result", this.openResult, this); + }; + GameManager.prototype.update = function (dt) { + }; + __decorate([ + property(cc.Prefab) + ], GameManager.prototype, "kuang1_Prefab", void 0); + __decorate([ + property(cc.Prefab) + ], GameManager.prototype, "kuang2_Prefab", void 0); + __decorate([ + property(cc.Node) + ], GameManager.prototype, "Block", void 0); + __decorate([ + property(cc.Label) + ], GameManager.prototype, "TimeLabel", void 0); + __decorate([ + property(cc.Label) + ], GameManager.prototype, "LevelLabel", void 0); + __decorate([ + property(cc.Node) + ], GameManager.prototype, "Guide", void 0); + __decorate([ + property(cc.Sprite) + ], GameManager.prototype, "progress", void 0); + __decorate([ + property(cc.Node) + ], GameManager.prototype, "Top", void 0); + GameManager = __decorate([ + ccclass + ], GameManager); + return GameManager; +}(cc.Component)); +exports.default = GameManager; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/GameManager.js.map b/temp/quick-scripts/src/assets/Script/GameManager.js.map new file mode 100644 index 0000000..742c686 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/GameManager.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\GameManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// 主游戏控制类\r\nconst {ccclass, property} = cc._decorator;\r\n@ccclass\r\nexport default class GameManager extends cc.Component {\r\n @property(cc.Prefab)\r\n kuang1_Prefab: cc.Prefab = null;\r\n @property(cc.Prefab)\r\n kuang2_Prefab: cc.Prefab = null;\r\n @property(cc.Node)\r\n Block: cc.Node = null;\r\n @property(cc.Label)\r\n TimeLabel: cc.Label = null;\r\n @property(cc.Label)\r\n LevelLabel: cc.Label = null;\r\n @property(cc.Node)\r\n Guide: cc.Node = null;\r\n\r\n @property(cc.Sprite)\r\n progress: cc.Sprite = null; //-95 640\r\n @property(cc.Node) \r\n Top: cc.Node = null;//80 -725\r\n\r\n countTime: number; //游戏总daojishi\r\n startTime: number; //游戏开始时间,时间戳\r\n pause: boolean ; //游戏暂停\r\n gameOver: boolean ; //游戏结束\r\n result: number; //当前小局结束标杆\r\n\r\n outside_Array: any; //内圈数组\r\n inside_Array: any; //外圈数组\r\n level: number; //关卡等级\r\n guide_Level: number; //引导等级\r\n guide_State: boolean; //引导等级\r\n config: {}; //当前关卡配置\r\n answerInside: number; //正确答案位置\r\n answerOutside: number; //正确答案位置\r\n pass: boolean; //是否通关\r\n outside: any; //外圈实际执行数组\r\n inside: any; //内圈实际执行数组\r\n answerInsideTexture: number; //争取答案图片\r\n answerOutsideTexture: number; //争取答案图片\r\n insideTexture: number[]; //错误答案数组\r\n outsideTexture: number[]; //错误答案数组\r\n \r\n \r\n\r\n onLoad () {\r\n this.guide_State = false;\r\n this.level = cc.fx.GameConfig.GM_INFO.level;\r\n this.guide_Level = cc.fx.GameConfig.GM_INFO.guide_Level;\r\n this.LevelLabel.string = (this.level+1)+\"\";\r\n this.progress.fillRange = cc.fx.GameConfig.GM_INFO.score/24;\r\n if(this.progress.fillRange>= 0.2) this.Top.getChildByName(\"star1\").active = true;\r\n if(this.progress.fillRange>= 0.5) this.Top.getChildByName(\"star2\").active = true;\r\n if(this.progress.fillRange>= 0.8) this.Top.getChildByName(\"star3\").active = true;\r\n if((this.level == 0 && this.guide_Level == 4) ||\r\n (this.level == 4 && this.guide_Level == 3) ||\r\n (this.level == 8 && this.guide_Level == 1)){\r\n this.openGuide(false);\r\n }\r\n else{\r\n this.LevelLabel.node.active = true;\r\n this.node.getChildByName(\"Top\").getChildByName(\"lianxi\").getComponent(cc.Label).string = \"第 轮\";\r\n this.init();\r\n }\r\n }\r\n\r\n init(){\r\n if(this.level == 4 && this.guide_Level == 2) {\r\n cc.fx.GameConfig.GM_INFO.guide_Level -= 1;\r\n this.guide_State = true;\r\n this.LevelLabel.node.active = false;\r\n this.node.getChildByName(\"Top\").getChildByName(\"lianxi\").getComponent(cc.Label).string = \"练 习\";\r\n // this.node.getChildByName(\"tip\").active = true;\r\n }\r\n\r\n this.result = 0;\r\n this.countTime = 6;\r\n this.TimeLabel.string = cc.fx.GameTool.getTimeMargin(this.countTime);\r\n this.createBlock();\r\n setTimeout(() => {\r\n this.createCustom();\r\n }, 1000);\r\n }\r\n\r\n openGuide(type){\r\n this.Guide.active = true;\r\n this.guide_State = true;\r\n // this.node.getChildByName(\"tip\").active = true;\r\n if(!type) cc.fx.GameConfig.GM_INFO.guide_Level -= 1;\r\n this.Guide.getChildByName(\"one\").active = false;\r\n this.Guide.getChildByName(\"two\").active = false;\r\n this.Guide.getChildByName(\"three\").active = false;\r\n this.Guide.getChildByName(\"four\").active = false;\r\n let name = \"one\";\r\n if(this.level == 0){\r\n name = \"one\";\r\n this.LevelLabel.node.active = false;\r\n this.node.getChildByName(\"Top\").getChildByName(\"lianxi\").getComponent(cc.Label).string = \"练 习\";\r\n }\r\n else if(this.level == 4){\r\n name = \"two\";\r\n this.LevelLabel.node.active = false;\r\n this.node.getChildByName(\"Top\").getChildByName(\"lianxi\").getComponent(cc.Label).string = \"练 习\";\r\n }\r\n else if(this.level == 8){\r\n name = \"three\";\r\n this.guide_State = false;\r\n }\r\n if(type) name = \"four\";\r\n this.Guide.getChildByName(name).active = true;\r\n cc.tween(this.Guide.getChildByName(name))\r\n .to(0.5,{opacity:255})\r\n .start();\r\n }\r\n\r\n closeGuide(){\r\n if(this.Guide.getChildByName(\"four\").active){\r\n this.Guide.active = false;\r\n cc.director.loadScene(\"GameScene\");\r\n }\r\n else{\r\n this.Guide.active = false;\r\n this.init();\r\n }\r\n // \r\n\r\n }\r\n\r\n //创建方块地图\r\n createBlock(){\r\n this.outside_Array = [];\r\n this.inside_Array = [];\r\n this.outside = [];\r\n this.inside = [];\r\n for(let i=0; i<16; i++){\r\n let block = cc.instantiate(this.kuang1_Prefab);\r\n block.getComponent(\"Block\").setId(i);\r\n block.parent = this.Block.getChildByName(\"outside\");\r\n let x,y = 0;\r\n if(i < 5){\r\n x = -284 + 142*i; y = 259;\r\n } \r\n else if(i < 9){\r\n x = 284; y = 259 - (i-4)*142;\r\n } \r\n else if(i < 13){ \r\n x = 284 - (i-8)*142; y = -309;\r\n } \r\n else if(i < 16){\r\n x = -284; y = -309 + (i-12)*142;\r\n } \r\n block.setPosition(x,y);\r\n this.outside_Array.push(block);\r\n }\r\n for(let j=3; j<12; j++){\r\n let block = cc.instantiate(this.kuang2_Prefab);\r\n block.getComponent(\"Block\").setId(j);\r\n block.parent = this.Block.getChildByName(\"inside\");\r\n block.setPosition(-132+j%3*132,239-parseInt(j/3 + \"\")*132);\r\n this.inside_Array.push(block);\r\n }\r\n }\r\n\r\n //创建关卡\r\n createCustom(){\r\n //初始化关卡配置数据\r\n this.level = cc.fx.GameConfig.GM_INFO.level;\r\n this.LevelLabel.string = (this.level+1)+\"\";\r\n this.config = cc.fx.GameConfig.LEVEL_INFO[this.level];\r\n if(this.level == 4 && this.guide_Level == 2) {\r\n this.config = cc.fx.GameConfig.LEVEL_INFO[6];\r\n }\r\n this.pass = false;\r\n //放正确答案和错误答案\r\n this.answerInsideTexture = Math.floor(Math.random()*14 + 1);\r\n //内圈错误答案随机\r\n this.insideTexture = [];\r\n this.outsideTexture = [];\r\n for(let k=0; k<14; k++){\r\n if((k+1) != this.answerInsideTexture){\r\n this.insideTexture.push(k+1);\r\n }\r\n }\r\n cc.fx.GameTool.shuffleArray(this.insideTexture);\r\n this.answerOutsideTexture = this.insideTexture[11];\r\n\r\n //分配正确答案和错误答案位置\r\n if(this.config[\"inside\"] > 0){\r\n this.result += 1;\r\n let random = Math.random()*100;\r\n let arrayTemp = [0,1,2,3,5,6,7,8];\r\n \r\n if(this.config[\"insideType\"] == 1){\r\n if(random >= 50) this.inside = [0,1,2];\r\n else this.inside = [6,7,8];\r\n }\r\n else if(this.config[\"insideType\"] == 2){\r\n if(random >= 50) this.inside = [0,3,6];\r\n else this.inside = [2,5,8];\r\n }\r\n else{\r\n this.inside = cc.fx.GameTool.shuffleArray(arrayTemp);\r\n this.inside.splice(this.config[\"inside\"],this.inside.length-this.config[\"inside\"]);\r\n }\r\n this.answerInside = this.inside[Math.floor(Math.random()*this.inside.length)];\r\n }\r\n //分配外圈正确答案和错误答案位置\r\n if(this.config[\"outside\"] > 0){\r\n this.result += 1;\r\n if(this.config[\"outsideType\"] == 1){\r\n this.outside = [1,2,3,5,6,7,9,10,11,13,14,15];\r\n }\r\n else if(this.config[\"outsideType\"] == 2){\r\n this.outside = [0,4,8,12];\r\n }\r\n else{\r\n this.outside = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];\r\n }\r\n cc.fx.GameTool.shuffleArray(this.outside);\r\n this.answerOutside = this.outside[Math.floor(Math.random()*this.outside.length)];\r\n if(this.config[\"outside\"] == 2){\r\n for(let j=0; j<15; j++){\r\n this.outsideTexture.push(this.insideTexture[3]);\r\n }\r\n }\r\n else if(this.config[\"outside\"] == 3){\r\n this.outsideTexture = [this.insideTexture[5],this.insideTexture[6],this.insideTexture[5],this.insideTexture[6],this.insideTexture[5]];\r\n for(let j=0; j<10; j++){\r\n let randomTemp = Math.random()*100;\r\n if(randomTemp>50) this.outsideTexture.push(this.insideTexture[5]);\r\n else this.outsideTexture.push(this.insideTexture[6]);\r\n }\r\n cc.fx.GameTool.shuffleArray(this.outsideTexture);\r\n }\r\n else if(this.config[\"outside\"] == 4){\r\n this.outsideTexture = [this.insideTexture[2],this.insideTexture[4],this.insideTexture[6],\r\n this.insideTexture[2],this.insideTexture[4],this.insideTexture[6]];\r\n for(let j=0; j<9; j++){\r\n let randomTemp = Math.random()*100;\r\n if(randomTemp<33) this.outsideTexture.push(this.insideTexture[2]);\r\n else if(randomTemp<66) this.outsideTexture.push(this.insideTexture[4]);\r\n else this.outsideTexture.push(this.insideTexture[6]);\r\n }\r\n cc.fx.GameTool.shuffleArray(this.outsideTexture);\r\n }\r\n }\r\n this.runBlock();\r\n }\r\n\r\n //块执行图片出现消失动画\r\n runBlock(){\r\n if(this.config[\"inside\"] > 0){\r\n this.inside_Array[4].getComponent(\"Block\").answerShow(this.answerInsideTexture);\r\n setTimeout(() => {\r\n let insideNumber = 0;\r\n for(let i=0; i 0){\r\n this.outside_Array[this.answerOutside].getComponent(\"Block\").answerShow(this.answerOutsideTexture);\r\n if(this.config[\"outside\"] > 1){\r\n let outsideNumber = 0;\r\n for(let i=0; i {\r\n let outsideNumber = 0;\r\n for(let i=0; i {\r\n if(!this.guide_State){\r\n this.startTime = cc.fx.GameTool.getTime();\r\n this.schedule(this.updateCountDownTime,1);\r\n }\r\n \r\n }, this.config[\"showTime\"]*1000);\r\n }\r\n\r\n //正确\r\n openResult(result){\r\n this.result -= 1;\r\n //非引导状态\r\n if(!this.guide_State){\r\n this.flipBlock(result);\r\n if(this.result == 0){\r\n this.unschedule(this.updateCountDownTime);\r\n setTimeout(() => {\r\n this.setData(result);\r\n }, 1000);\r\n setTimeout(() => {\r\n if(cc.fx.GameConfig.GM_INFO.level < cc.fx.GameConfig.LEVEL_INFO.length-1){\r\n cc.fx.GameConfig.GM_INFO.level += 1;\r\n cc.director.loadScene(\"GameScene\");\r\n }\r\n }, 2000);\r\n }\r\n }\r\n //引导状态下\r\n else{\r\n if(result.result){\r\n this.flipBlock(result);\r\n setTimeout(() => {\r\n if(this.level == 4 && cc.fx.GameConfig.GM_INFO.guide_Level == 2){\r\n cc.director.loadScene(\"GameScene\");\r\n }\r\n else this.openGuide(true);\r\n }, 1000);\r\n \r\n }\r\n }\r\n \r\n }\r\n\r\n //翻转形状变成问号\r\n flipBlock(result){\r\n if(result.type){\r\n let pos = this.changePos(true,result.id);\r\n if(!this.guide_State) cc.fx.GameConfig.CLICK_DATA.userChoiceInner.push(pos.x,pos.y);\r\n for(let i=0; i= 1) progress = 1;\r\n cc.tween(this.progress)\r\n .to(0.2,{fillRange:progress})\r\n .call(()=>{\r\n if(this.Top.getChildByName(\"star1\").active == false && progress>= 0.2){\r\n this.Top.getChildByName(\"star1\").active = true;\r\n this.Top.getChildByName(\"star1\").opacity = 0; this.Top.getChildByName(\"star1\").scale = 0.1;\r\n cc.tween(this.Top.getChildByName(\"star1\"))\r\n .to(0.3,{opacity:255,scale:1.1})\r\n .to(0.1,{opacity:255,scale:0.9})\r\n .to(0.1,{opacity:255,scale:1})\r\n .start();\r\n }\r\n if(this.Top.getChildByName(\"star2\").active == false && progress>= 0.5){\r\n this.Top.getChildByName(\"star2\").active = true;\r\n this.Top.getChildByName(\"star2\").opacity = 0; this.Top.getChildByName(\"star2\").scale = 0.1;\r\n cc.tween(this.Top.getChildByName(\"star2\"))\r\n .to(0.3,{opacity:255,scale:1.1})\r\n .to(0.1,{opacity:255,scale:0.9})\r\n .to(0.1,{opacity:255,scale:1})\r\n .start();\r\n }\r\n if(this.Top.getChildByName(\"star3\").active == false && progress>= 0.8){\r\n this.Top.getChildByName(\"star3\").active = true;\r\n this.Top.getChildByName(\"star3\").opacity = 0; this.Top.getChildByName(\"star3\").scale = 0.1;\r\n cc.tween(this.Top.getChildByName(\"star3\"))\r\n .to(0.3,{opacity:255,scale:1.1})\r\n .to(0.1,{opacity:255,scale:0.9})\r\n .to(0.1,{opacity:255,scale:1})\r\n .start();\r\n }\r\n })\r\n .start();\r\n }\r\n }\r\n\r\n //返回首页\r\n backScene(){\r\n cc.director.loadScene(\"LoadScene\");\r\n }\r\n //重新开始\r\n reStart(){\r\n\r\n }\r\n //获取时间戳\r\n getTime(){\r\n var timestamp = new Date().getTime();\r\n return timestamp;\r\n }\r\n //获胜\r\n passLevel(){\r\n\r\n }\r\n //失败\r\n loseLevel(type){\r\n \r\n }\r\n\r\n changePos(type,num){\r\n var x = 0; var y = 0;\r\n //内部\r\n if(type){\r\n y = parseInt(num/3+\"\");\r\n x = num%3;\r\n }\r\n //外部\r\n else{\r\n if(num < 5){\r\n y=0; x=num;\r\n } \r\n else if(num < 9){\r\n x=5; y=num-4;\r\n } \r\n else if(num < 13){ \r\n y=4; x=12-num;\r\n } \r\n else if(num < 16){\r\n x=0; y=16-num;\r\n } \r\n }\r\n var jg = cc.v2(x,y);\r\n return jg;\r\n }\r\n //如果是倒计时 调用此方法\r\n updateCountDownTime () {\r\n if (this.countTime > 0) {\r\n this.countTime -= 1;\r\n // this.TimeLabel.string =this.countTime + \"\";\r\n this.TimeLabel.string = cc.fx.GameTool.getTimeMargin(this.countTime);\r\n if(this.countTime <= 0){\r\n this.unschedule(this.updateCountDownTime);\r\n this.node.getChildByName(\"Mask\").active = true;\r\n let data = {\"result\":false,\"type\":true,\"id\":null};\r\n if(this.config[\"inside\"] > 0) cc.fx.Notifications.emit(\"result\",data);\r\n let data2 = {\"result\":false,\"type\":false,\"id\":null};\r\n if(this.config[\"outside\"] > 0) cc.fx.Notifications.emit(\"result\",data2);\r\n }\r\n }\r\n }\r\n //上传每次操作数据\r\n setData(result){\r\n cc.fx.GameConfig.CLICK_DATA.success = result.result;\r\n cc.fx.GameConfig.CLICK_DATA.round = (cc.fx.GameConfig.GM_INFO.level + 1);\r\n cc.fx.GameConfig.CLICK_DATA.duration = new Date().getTime() - this.startTime - 1000;\r\n cc.fx.GameTool.setGameData();\r\n }\r\n\r\n onEnable () {\r\n cc.fx.Notifications.on(\"result\", this.openResult, this);\r\n\r\n }\r\n onDisable () {\r\n cc.fx.Notifications.off(\"result\", this.openResult, this);\r\n }\r\n update (dt) {\r\n\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/GameOver.js b/temp/quick-scripts/src/assets/Script/GameOver.js new file mode 100644 index 0000000..0f04775 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/GameOver.js @@ -0,0 +1,141 @@ +"use strict"; +cc._RF.push(module, '805c6nf399HWZeuWnNB9CTH', 'GameOver'); +// Script/GameOver.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.count = null; + _this.time = null; + _this.selfNode = null; + _this.one = null; + _this.two = null; + _this.three = null; + _this.four = null; + _this.five = null; + return _this; + } + // onLoad () {} + NewClass.prototype.start = function () { + this.init(); + }; + //初始化数据 + NewClass.prototype.init = function () { + this.listData = []; + this.selfData = null; + // this.getRank(); + }; + //打开排行榜 + NewClass.prototype.openRank = function () { + // alert("跳转"); + cc.director.loadScene("LoadScene"); + }; + //重新开始玩 + NewClass.prototype.again = function () { + // let levelTemp = cc.fx.GameConfig.GM_INFO.level; + cc.fx.GameConfig.GM_INFO_init(); + // if(cc.fx.GameConfig.GM_INFO.isCustom){ + // cc.fx.GameConfig.GM_INFO.level = levelTemp; + // } + cc.director.loadScene("GameScene"); + }; + //获取排行榜 + NewClass.prototype.getRank = function () { + var _this = this; + //获取排行榜数据 所需数据量 + var dataFile = { + length: 5 + }; + cc.fx.GameTool.getRank(dataFile, function (data) { return _this.getRankData(data); }); + }; + //设置排行信息 + NewClass.prototype.getRankData = function (data) { + if (data) { + cc.fx.GameTool.getRankData(data, this, 4); + cc.fx.GameTool.setPic(this.selfNode.getChildByName("pic").getChildByName("icon"), this.selfData.pic); + for (var i = 0; i <= 4; i++) { + this.setRank(i, this.listData[i]); + } + } + }; + //根据内容填充排行榜 + NewClass.prototype.setRank = function (num, data) { + var hitNode = null; + if (num == 0) { + hitNode = this.one; + } + else if (num == 1) { + hitNode = this.two; + } + else if (num == 2) { + hitNode = this.three; + } + else if (num == 3) { + hitNode = this.four; + } + else if (num == 4) { + hitNode = this.five; + } + if (hitNode) { + hitNode.active = true; + cc.fx.GameTool.subName(data.nickName, 4); + hitNode.getChildByName("name").getComponent(cc.Label).string = data.nickName; + hitNode.getChildByName("total").getComponent(cc.Label).string = data.totalSunCount; + cc.fx.GameTool.setPic(hitNode.getChildByName("pic").getChildByName("icon"), data.pic); + } + }; + __decorate([ + property(cc.Label) + ], NewClass.prototype, "count", void 0); + __decorate([ + property(cc.Label) + ], NewClass.prototype, "time", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "selfNode", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "one", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "two", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "three", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "four", void 0); + __decorate([ + property(cc.Node) + ], NewClass.prototype, "five", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/GameOver.js.map b/temp/quick-scripts/src/assets/Script/GameOver.js.map new file mode 100644 index 0000000..0ce8f9a --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/GameOver.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\GameOver.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\r\nconst {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class NewClass extends cc.Component {\r\n @property(cc.Label)\r\n count: cc.Label = null;\r\n @property(cc.Label)\r\n time: cc.Label = null;\r\n @property(cc.Node)\r\n selfNode: cc.Node = null;\r\n @property(cc.Node)\r\n one: cc.Node = null;\r\n @property(cc.Node)\r\n two: cc.Node = null;\r\n @property(cc.Node)\r\n three: cc.Node = null;\r\n @property(cc.Node)\r\n four: cc.Node = null;\r\n @property(cc.Node)\r\n five: cc.Node = null;\r\n listData: any;\r\n selfData: any;\r\n efficiency: number;\r\n level: number;\r\n // onLoad () {}\r\n start () {\r\n this.init();\r\n }\r\n\r\n\r\n //初始化数据\r\n init(){\r\n this.listData = [];\r\n this.selfData = null;\r\n // this.getRank();\r\n }\r\n //打开排行榜\r\n openRank(){\r\n // alert(\"跳转\");\r\n cc.director.loadScene(\"LoadScene\");\r\n }\r\n //重新开始玩\r\n again(){\r\n // let levelTemp = cc.fx.GameConfig.GM_INFO.level;\r\n cc.fx.GameConfig.GM_INFO_init();\r\n // if(cc.fx.GameConfig.GM_INFO.isCustom){\r\n // cc.fx.GameConfig.GM_INFO.level = levelTemp;\r\n // }\r\n cc.director.loadScene(\"GameScene\");\r\n\r\n }\r\n //获取排行榜\r\n getRank(){\r\n //获取排行榜数据 所需数据量\r\n let dataFile = {\r\n length:5\r\n }\r\n cc.fx.GameTool.getRank(dataFile,data =>this.getRankData(data));\r\n }\r\n //设置排行信息\r\n getRankData(data){\r\n if(data){\r\n cc.fx.GameTool.getRankData(data,this,4);\r\n cc.fx.GameTool.setPic(this.selfNode.getChildByName(\"pic\").getChildByName(\"icon\"),this.selfData.pic);\r\n for(let i=0;i<=4;i++){\r\n this.setRank(i,this.listData[i]);\r\n }\r\n }\r\n }\r\n //根据内容填充排行榜\r\n setRank(num,data){\r\n var hitNode = null;\r\n if(num == 0){\r\n hitNode = this.one;\r\n }\r\n else if(num == 1){\r\n hitNode = this.two;\r\n }\r\n else if(num == 2){\r\n hitNode = this.three;\r\n }\r\n else if(num == 3){\r\n hitNode = this.four;\r\n }\r\n else if(num == 4){\r\n hitNode = this.five;\r\n }\r\n if(hitNode){\r\n hitNode.active = true;\r\n cc.fx.GameTool.subName(data.nickName,4);\r\n hitNode.getChildByName(\"name\").getComponent(cc.Label).string = data.nickName;\r\n hitNode.getChildByName(\"total\").getComponent(cc.Label).string = data.totalSunCount;\r\n cc.fx.GameTool.setPic(hitNode.getChildByName(\"pic\").getChildByName(\"icon\"),data.pic);\r\n }\r\n } \r\n\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Load.js b/temp/quick-scripts/src/assets/Script/Load.js new file mode 100644 index 0000000..39abbfb --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/Load.js @@ -0,0 +1,85 @@ +"use strict"; +cc._RF.push(module, '454adgphRpA6oq5lB6Cg1fK', 'Load'); +// Script/Load.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, requireComponent = _a.requireComponent; +var NewClass = /** @class */ (function (_super) { + __extends(NewClass, _super); + function NewClass() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.localTest = false; + _this.clientTestVersion = "1.0.1"; + _this.testVersion = null; + return _this; + } + NewClass.prototype.start = function () { + cc.macro.ENABLE_MULTI_TOUCH = false; + window.initMgr(); + cc.fx.GameConfig.init(this.localTest); + // cc.fx.AudioManager.Instance.init(); + // this.testVersion.string = this.clientTestVersion; + }; + //开始游戏,跳转至引导页面 + NewClass.prototype.startGame = function () { + cc.fx.GameConfig.GM_INFO.isCustom = false; + cc.director.loadScene("GameScene"); + // cc.director.loadScene("GuideScene"); + }; + //备用,用来测试跳转 指定关卡 + NewClass.prototype.clickBtn = function (event, data) { + cc.fx.GameConfig.GM_INFO.level = parseInt(data); + cc.fx.GameConfig.GM_INFO.isCustom = true; + cc.director.loadScene("GameScene"); + }; + //打开排行榜 + NewClass.prototype.openRank = function () { + cc.director.loadScene("RankScene"); + }; + NewClass.prototype.showCustom = function () { + if (this.node.getChildByName("Custom").active) { + this.node.getChildByName("Custom").active = false; + } + else { + this.node.getChildByName("Custom").active = true; + } + }; + NewClass.prototype.update = function (dt) { + }; + __decorate([ + property(false) + ], NewClass.prototype, "localTest", void 0); + __decorate([ + property("") + ], NewClass.prototype, "clientTestVersion", void 0); + __decorate([ + property(cc.Label) + ], NewClass.prototype, "testVersion", void 0); + NewClass = __decorate([ + ccclass + ], NewClass); + return NewClass; +}(cc.Component)); +exports.default = NewClass; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Load.js.map b/temp/quick-scripts/src/assets/Script/Load.js.map new file mode 100644 index 0000000..57ff77d --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/Load.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\Load.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACM,IAAA,KAAwC,EAAE,CAAC,UAAU,EAApD,OAAO,aAAA,EAAE,QAAQ,cAAA,EAAE,gBAAgB,sBAAiB,CAAC;AAG5D;IAAsC,4BAAY;IAAlD;QAAA,qEAgDC;QA7CG,eAAS,GAAY,KAAK,CAAC;QAG3B,uBAAiB,GAAW,OAAO,CAAC;QAGpC,iBAAW,GAAa,IAAI,CAAC;;IAuCjC,CAAC;IArCG,wBAAK,GAAL;QACI,EAAE,CAAC,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC;QACpC,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEtC,sCAAsC;QACtC,oDAAoD;IACxD,CAAC;IAED,cAAc;IACd,4BAAS,GAAT;QACI,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;QAC1C,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACnC,uCAAuC;IAC3C,CAAC;IACD,gBAAgB;IAChB,2BAAQ,GAAR,UAAS,KAAK,EAAC,IAAI;QACf,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChD,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IACD,OAAO;IACP,2BAAQ,GAAR;QACI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,6BAAU,GAAV;QACI,IAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAC;YACzC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;SACrD;aACG;YACA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;SACpD;IACL,CAAC;IAES,yBAAM,GAAhB,UAAiB,EAAU;IAC3B,CAAC;IA5CD;QADC,QAAQ,CAAC,KAAK,CAAC;+CACW;IAG3B;QADC,QAAQ,CAAC,EAAE,CAAC;uDACuB;IAGpC;QADC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC;iDACU;IATZ,QAAQ;QAD5B,OAAO;OACa,QAAQ,CAgD5B;IAAD,eAAC;CAhDD,AAgDC,CAhDqC,EAAE,CAAC,SAAS,GAgDjD;kBAhDoB,QAAQ","file":"","sourceRoot":"/","sourcesContent":["\r\nconst {ccclass, property, requireComponent} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class NewClass extends cc.Component {\r\n\r\n @property(false)\r\n localTest: boolean = false;\r\n\r\n @property(\"\")\r\n clientTestVersion: string = \"1.0.1\";\r\n\r\n @property(cc.Label)\r\n testVersion: cc.Label = null;\r\n\r\n start () {\r\n cc.macro.ENABLE_MULTI_TOUCH = false;\r\n window.initMgr();\r\n cc.fx.GameConfig.init(this.localTest);\r\n \r\n // cc.fx.AudioManager.Instance.init();\r\n // this.testVersion.string = this.clientTestVersion;\r\n }\r\n\r\n //开始游戏,跳转至引导页面\r\n startGame(){\r\n cc.fx.GameConfig.GM_INFO.isCustom = false;\r\n cc.director.loadScene(\"GameScene\");\r\n // cc.director.loadScene(\"GuideScene\");\r\n }\r\n //备用,用来测试跳转 指定关卡\r\n clickBtn(event,data){\r\n cc.fx.GameConfig.GM_INFO.level = parseInt(data);\r\n cc.fx.GameConfig.GM_INFO.isCustom = true;\r\n cc.director.loadScene(\"GameScene\");\r\n } \r\n //打开排行榜\r\n openRank(){\r\n cc.director.loadScene(\"RankScene\");\r\n }\r\n\r\n showCustom(){\r\n if(this.node.getChildByName(\"Custom\").active){\r\n this.node.getChildByName(\"Custom\").active = false;\r\n }\r\n else{\r\n this.node.getChildByName(\"Custom\").active = true;\r\n }\r\n }\r\n \r\n protected update(dt: number): void {\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/RankManager.js b/temp/quick-scripts/src/assets/Script/RankManager.js new file mode 100644 index 0000000..c33ccd3 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/RankManager.js @@ -0,0 +1,167 @@ +"use strict"; +cc._RF.push(module, 'e74a999IDFOabyymZgXQIiy', 'RankManager'); +// Script/RankManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var List_1 = require("./module/RankList/List"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +//排行榜 +var RankManager = /** @class */ (function (_super) { + __extends(RankManager, _super); + function RankManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.Player = null; + _this.selfNode = null; + _this.phone = null; + return _this; + } + RankManager.prototype.onLoad = function () { + this.init(); + }; + //初始化数据 + RankManager.prototype.init = function () { + this.rankList = cc.find("ScrollView", this.node).getComponent(List_1.default); + this.Player.getChildByName("rank").active = false; + this.listData = []; + this.selfData = null; + this.rankNumber = 100; + this.rankTotal = 100; + this.selfNode.opacity = 0; + }; + RankManager.prototype.start = function () { + this.Player.active = false; + this.getRank(); + }; + //调用获取排行榜接口 + RankManager.prototype.getRank = function () { + var _this = this; + var dataFile = { + length: 100 + }; + cc.fx.GameTool.getRank(dataFile, function (data) { return _this.getRankData(data); }); + }; + //实际设置排行数据 + RankManager.prototype.getRankData = function (data) { + if (data) { + // console.log(data); + cc.fx.GameTool.getRankData(data, this, 6); + this.setPic(this.selfData.pic); + } + }; + //返回按钮 + RankManager.prototype.backClick = function () { + cc.director.loadScene("LoadScene"); + }; + //最上方用户动画 + RankManager.prototype.playerAction = function () { + var _this = this; + //-254 377 210 453 + this.Player.getChildByName("rank").active = false; + var time = 1; + this.tween = cc.tween(this.Player) + .to(2, { position: cc.v3(210, 453, 0) }) + .call(function () { + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; + }) + .start(); + time = (this.listData.length - this.rankNumber) / this.listData.length; + if (this.listData.length >= 99) { + if (this.rankNumber >= 99) { + time = (Math.random() * 49 + 1) / 100; + var matchId = cc.sys.localStorage.getItem("matchNumber"); + if (matchId == null || matchId == undefined) { + time = 0; + } + } + } + setTimeout(function () { + if (_this.tween) + _this.tween.stop(); + _this.Player.getChildByName("rank").active = true; + _this.Player.getChildByName("rank").getChildByName("number") + .getComponent(cc.Label).string = parseInt(time * 100 + "") + "%"; + }, time * 2000); + }; + //设置头像 处理的逻辑比较多,不用公共类的了 + RankManager.prototype.setPic = function (pic) { + var _this = this; + this.phone.node.parent.getChildByName("icon").active = false; + this.phone.node.active = false; + this.Player.active = true; + this.Player.opacity = 0; + this.Player.getChildByName("mask").getChildByName("icon").active = false; + this.Player.getChildByName("mask").getChildByName("phone").active = false; + fetch(pic) + .then(function (response) { + return response.headers.get('Content-Length'); + }) + .then(function (errNo) { + if (errNo == "5093") { + _this.phone.node.parent.getChildByName("icon").active = true; + _this.Player.getChildByName("mask").getChildByName("icon").active = true; + } + }) + .catch(function (error) { + console.error('Error fetching X-Info:', error); + }); + var self = this; + cc.assetManager.loadRemote(pic, { ext: '.png' }, function (err, texture) { + self.Player.opacity = 255; + if (texture) { + self.phone.node.active = true; + self.phone.spriteFrame = new cc.SpriteFrame(texture); + self.Player.getChildByName("mask").getChildByName("icon").active = false; + self.Player.getChildByName("mask").getChildByName("phone").active = true; + self.Player.getChildByName("mask").getChildByName("phone").getComponent(cc.Sprite) + .spriteFrame = new cc.SpriteFrame(texture); + setTimeout(function () { + self.playerAction(); + }, 500); + } + else { + self.Player.getChildByName("mask").getChildByName("icon").active = true; + setTimeout(function () { + self.playerAction(); + }, 500); + } + }); + }; + __decorate([ + property(cc.Node) //用户上方头像 + ], RankManager.prototype, "Player", void 0); + __decorate([ + property(cc.Node) //用户最下方个人信息 + ], RankManager.prototype, "selfNode", void 0); + __decorate([ + property(cc.Sprite) //用户头像换图 + ], RankManager.prototype, "phone", void 0); + RankManager = __decorate([ + ccclass + ], RankManager); + return RankManager; +}(cc.Component)); +exports.default = RankManager; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/RankManager.js.map b/temp/quick-scripts/src/assets/Script/RankManager.js.map new file mode 100644 index 0000000..3ac905b --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/RankManager.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\RankManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\r\nimport List from \"./module/RankList/List\";\r\nconst { ccclass, property } = cc._decorator;\r\n//排行榜\r\n@ccclass\r\nexport default class RankManager extends cc.Component {\r\n @property(cc.Node) //用户上方头像\r\n Player: cc.Node = null;\r\n @property(cc.Node) //用户最下方个人信息\r\n selfNode: cc.Node = null;\r\n @property(cc.Sprite) //用户头像换图\r\n phone: cc.Sprite = null;\r\n private rankList: List; //排行榜\r\n tween: cc.Tween; //最上方用户头像动画\r\n listData: any; //总列表信息\r\n selfData: any; //自己信息\r\n rankNumber: number; //用户自己排名 有可能不在排行榜内99+\r\n rankTotal: number; //获取排行榜用户数量 现在为100\r\n\r\n onLoad() {\r\n this.init();\r\n }\r\n //初始化数据\r\n init(){\r\n this.rankList = cc.find(\"ScrollView\", this.node).getComponent(List);\r\n this.Player.getChildByName(\"rank\").active = false;\r\n this.listData = [];\r\n this.selfData = null;\r\n this.rankNumber = 100;\r\n this.rankTotal= 100;\r\n this.selfNode.opacity = 0;\r\n }\r\n\r\n start() {\r\n this.Player.active = false;\r\n this.getRank();\r\n }\r\n //调用获取排行榜接口\r\n getRank(){\r\n let dataFile = {\r\n length:100\r\n }\r\n cc.fx.GameTool.getRank(dataFile,data =>this.getRankData(data));\r\n }\r\n //实际设置排行数据\r\n getRankData(data){\r\n if(data){\r\n // console.log(data);\r\n cc.fx.GameTool.getRankData(data,this,6);\r\n this.setPic(this.selfData.pic);\r\n }\r\n }\r\n //返回按钮\r\n backClick(){\r\n cc.director.loadScene(\"LoadScene\");\r\n }\r\n //最上方用户动画\r\n playerAction(){\r\n //-254 377 210 453\r\n this.Player.getChildByName(\"rank\").active = false;\r\n let time = 1;\r\n this.tween = cc.tween(this.Player)\r\n .to(2,{position:cc.v3(210,453,0)})\r\n .call(() =>{\r\n this.Player.getChildByName(\"rank\").active = true;\r\n this.Player.getChildByName(\"rank\").getChildByName(\"number\")\r\n .getComponent(cc.Label).string = parseInt(time*100 + \"\") + \"%\";\r\n })\r\n .start();\r\n time = (this.listData.length - this.rankNumber)/this.listData.length;\r\n if(this.listData.length >= 99){\r\n if(this.rankNumber >= 99){\r\n time = (Math.random()*49+1)/100\r\n var matchId = cc.sys.localStorage.getItem(\"matchNumber\");\r\n if(matchId == null || matchId == undefined){\r\n time = 0;\r\n }\r\n }\r\n }\r\n setTimeout(() => {\r\n if(this.tween)this.tween.stop();\r\n this.Player.getChildByName(\"rank\").active = true;\r\n this.Player.getChildByName(\"rank\").getChildByName(\"number\")\r\n .getComponent(cc.Label).string = parseInt(time*100 + \"\") + \"%\";\r\n }, time*2000);\r\n\r\n }\r\n //设置头像 处理的逻辑比较多,不用公共类的了\r\n public setPic(pic){\r\n this.phone.node.parent.getChildByName(\"icon\").active = false;\r\n this.phone.node.active = false;\r\n this.Player.active = true;\r\n this.Player.opacity = 0;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = false;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"phone\").active = false;\r\n fetch(pic)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n this.phone.node.parent.getChildByName(\"icon\").active = true;\r\n this.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = true;\r\n }\r\n })\r\n .catch(error => {\r\n console.error('Error fetching X-Info:', error);\r\n });\r\n var self = this;\r\n cc.assetManager.loadRemote(pic, {ext:'.png'},(err, texture:cc.Texture2D) => {\r\n self.Player.opacity = 255;\r\n if(texture){\r\n self.phone.node.active = true;\r\n self.phone.spriteFrame = new cc.SpriteFrame(texture);\r\n self.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = false;\r\n self.Player.getChildByName(\"mask\").getChildByName(\"phone\").active = true;\r\n self.Player.getChildByName(\"mask\").getChildByName(\"phone\").getComponent(cc.Sprite)\r\n .spriteFrame = new cc.SpriteFrame(texture);\r\n setTimeout(() => {\r\n self.playerAction();\r\n }, 500);\r\n }\r\n else{\r\n self.Player.getChildByName(\"mask\").getChildByName(\"icon\").active = true;\r\n setTimeout(() => {\r\n self.playerAction();\r\n }, 500);\r\n }\r\n \r\n })\r\n }\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js b/temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js new file mode 100644 index 0000000..b86ded8 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js @@ -0,0 +1,58 @@ +"use strict"; +cc._RF.push(module, '8a024+q5K9MrpxcaTvucSDB', 'DouyinEntranceView'); +// Script/Sdk/DouyinEntranceView.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.DouyinEntranceView = void 0; +var MiniGameSdk_1 = require("./MiniGameSdk"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var DouyinEntranceView = /** @class */ (function (_super) { + __extends(DouyinEntranceView, _super); + function DouyinEntranceView() { + return _super !== null && _super.apply(this, arguments) || this; + } + DouyinEntranceView.prototype.start = function () { + }; + DouyinEntranceView.prototype.update = function (deltaTime) { + }; + DouyinEntranceView.prototype.onCloseClick = function () { + this.node.active = false; + }; + DouyinEntranceView.prototype.onNavigateToDouyinClick = function () { + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.navigateToSidebar(function (success) { + if (success) { + console.log('跳转成功'); + } + else { + console.log('跳转失败'); + } + }); + }; + DouyinEntranceView = __decorate([ + ccclass + ], DouyinEntranceView); + return DouyinEntranceView; +}(cc.Component)); +exports.DouyinEntranceView = DouyinEntranceView; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js.map b/temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js.map new file mode 100644 index 0000000..fff5f0d --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/Sdk/DouyinEntranceView.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\Sdk\\DouyinEntranceView.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAA4C;AACtC,IAAA,KAAwB,EAAE,CAAC,UAAU,EAAnC,OAAO,aAAA,EAAE,QAAQ,cAAkB,CAAC;AAI5C;IAAwC,sCAAY;IAApD;;IAuBA,CAAC;IAtBG,kCAAK,GAAL;IAEA,CAAC;IAED,mCAAM,GAAN,UAAO,SAAiB;IAExB,CAAC;IAED,yCAAY,GAAZ;QACI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,oDAAuB,GAAvB;QAEI,yBAAW,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,UAAC,OAAgB;YAC5D,IAAI,OAAO,EAAE;gBACT,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;aACvB;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;aACvB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAtBQ,kBAAkB;QAD9B,OAAO;OACK,kBAAkB,CAuB9B;IAAD,yBAAC;CAvBD,AAuBC,CAvBuC,EAAE,CAAC,SAAS,GAuBnD;AAvBY,gDAAkB","file":"","sourceRoot":"/","sourcesContent":["import { MiniGameSdk } from \"./MiniGameSdk\";\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n\r\n@ccclass\r\nexport class DouyinEntranceView extends cc.Component {\r\n start() {\r\n\r\n }\r\n\r\n update(deltaTime: number) {\r\n\r\n }\r\n\r\n onCloseClick() {\r\n this.node.active = false;\r\n }\r\n\r\n onNavigateToDouyinClick() {\r\n\r\n MiniGameSdk.BytedanceSidebar.navigateToSidebar((success: boolean) => { // 跳转到抖音侧边栏\r\n if (success) {\r\n console.log('跳转成功');\r\n } else {\r\n console.log('跳转失败');\r\n }\r\n });\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js b/temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js new file mode 100644 index 0000000..8583864 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js @@ -0,0 +1,339 @@ +"use strict"; +cc._RF.push(module, '0d272pXVChFDqi5FXTD2JlR', 'MiniGameManager'); +// Script/Sdk/MiniGameManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MiniGameManager = void 0; +var MiniGameSdk_1 = require("./MiniGameSdk"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var EWechatAD; +(function (EWechatAD) { + EWechatAD["CUMSTOM_01"] = "adunit-f7c2417eb2c2e473"; +})(EWechatAD || (EWechatAD = {})); +var MiniGameManager = /** @class */ (function (_super) { + __extends(MiniGameManager, _super); + function MiniGameManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.entranceView = null; + return _this; + } + MiniGameManager_1 = MiniGameManager; + Object.defineProperty(MiniGameManager, "instance", { + get: function () { + if (!MiniGameManager_1._instance) { + MiniGameManager_1._instance = new MiniGameManager_1(); + } + return MiniGameManager_1._instance; + }, + enumerable: false, + configurable: true + }); + MiniGameManager.prototype.start = function () { + // 禁用游戏入口视图 + // this.entranceView.active = false; + // MiniGameSdk.API.getUserProfile(this.setUserId); + // cc.fx.GameTool.setUserInfo(""); + this.onGetLoginCode(); + // 尝试获取游戏入口按钮,如果存在则直接返回,不进行后续操作 + // let buttonEntrance = this.node.getChildByName('Btns')?.getChildByName('Button_EntranceView'); + // if (buttonEntrance) { + // return; + // } + // 如果是字节跳动小游戏环境,检查侧边栏是否存在 + if (MiniGameSdk_1.MiniGameSdk.isBytedance()) { + //抖音环境,检测侧边栏存在 + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.checkSideBar(function (success) { + // 根据侧边栏存在性激活或禁用游戏入口按钮 + // buttonEntrance.active = success; + }); + } + else { + // 非抖音小游戏环境,直接激活游戏入口按钮 + // 非抖音环境,正常显示按钮 + // buttonEntrance.active = true; + } + // 设置监听器,以处理来自侧边栏的交互事件 + MiniGameSdk_1.MiniGameSdk.BytedanceSidebar.listenFromSidebar(function (success) { + // 如果交互成功,显示奖励提示 + if (success) { + MiniGameSdk_1.MiniGameSdk.API.showToast('侧边栏奖励', 5); + } + }); + }; + MiniGameManager.prototype.update = function (deltaTime) { + }; + /** + * 弹出广告横幅。 + * 此方法用于加载并显示广告横幅。它首先加载指定广告位的横幅广告,然后显示广告。 + * 加载广告和显示广告是通过MiniGameSdk.AdvertManager的实例方法来实现的。 + * + * @remarks + * 此方法提供了两种显示横幅广告的方式: + * 1. 默认方式:调用showBanner方法显示广告,系统会自动选择显示位置。 + * 2. 指定位置方式:可以通过传入额外的参数来指定广告显示在屏幕的顶部或底部,或者通过坐标指定显示位置。 + * + * 示例代码中注释掉了两种显示广告的具体方法,可以根据实际需求选择使用。 + */ + MiniGameManager.prototype.onShowBanner = function () { + // 加载指定广告位的横幅广告。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadBanner('adunit-4e7ef467e3eaab51'); + // 默认方式显示横幅广告。 + // 方法1:默认调用 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showBanner(); + // 示例:指定屏幕底部正中显示横幅广告。 + // 方法2:指定屏幕顶部或底部正中 + // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', MiniGameSdk.EAdBannerLocation.BOTTOM); + // 示例:通过坐标指定位置显示横幅广告。 + // 方法2:指定坐标 + // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', { top: 10, left: 10 }); + }; + /** + * 隐藏广告横幅的函数。 + * + * 该函数调用MiniGameSdk.AdvertManager实例的方法,用于隐藏广告横幅。 + * 当需要暂时停止展示广告或用户主动请求隐藏广告时,可以调用此函数。 + * + * @remarks + * 此函数不接受任何参数,也不返回任何值。 + * 它单纯地触发广告横幅的隐藏操作,具体实现依赖于AdvertManager的实现。 + */ + MiniGameManager.prototype.onHideBanner = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideBanner(); + }; + /** + * 显示插屏广告的函数。 + * + * 此函数调用MiniGameSdk.AdvertManager实例的方法,以显示一个指定的插屏广告。 + * 它使用了硬编码的广告单元标识符,这意味着它专为特定的广告位设计。 + * 在实际应用中,可能需要根据应用的配置或用户的特定条件来动态选择广告单元标识符。 + */ + MiniGameManager.prototype.onShowInterstitial = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showInterstitial('adunit-eadd67851d3050ad'); + }; + /** + * 调用广告管理器加载并展示自定义广告。 + * 此方法首先通过广告管理器的实例加载指定的自定义广告单元,然后展示这个自定义广告。 + * 加载和展示广告是广告管理系统中的常见操作,这里通过两步分别完成加载和展示的过程, + * 以确保广告在展示前正确且充分地被加载。 + */ + MiniGameManager.prototype.onShowCustom = function () { + // 加载指定的自定义广告单元。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.loadCustom(EWechatAD.CUMSTOM_01); + // 展示已加载的自定义广告。 + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showCustom(EWechatAD.CUMSTOM_01); + }; + /** + * 隐藏自定义广告。 + * + * 本函数调用MiniGameSdk.AdvertManager.instance.hideCustom()来隐藏自定义广告。 + * 这是对接广告管理系统的一部分,用于控制广告的显示与隐藏。 + * 在需要隐藏自定义广告的场景下,调用此函数即可实现相应功能。 + */ + MiniGameManager.prototype.onHideCustom = function () { + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.hideCustom(EWechatAD.CUMSTOM_01); + }; + /** + * 触发显示视频广告的函数。 + * 通过调用MiniGameSdk.AdvertManager.instance.showVideo方法,显示一个视频广告,并根据用户观看广告的情况执行相应的逻辑。 + * + * @remarks + * 此函数首先传入一个广告单元ID,用于标识要显示的视频广告。然后传入一个回调函数,该回调函数在用户观看广告后被调用,无论用户是完成了观看、拒绝了观看还是观看过程中发生了错误。 + * 回调函数接收两个参数:一个是用户观看广告的结果,另一个是用户观看的广告数量。根据观看结果的不同,显示不同的提示信息。 + */ + MiniGameManager.prototype.onShowVideo = function () { + // 广告单元ID,用于标识要显示的视频广告 + // 广告单元ID的样例 + //抖音形如: 1re3nfqkmy81m4m8ge + //微信形如: adunit-a7718f6e195e42fe + MiniGameSdk_1.MiniGameSdk.AdvertManager.instance.showVideo('1re3nfqkmy81m4m8ge', function (res, count) { + // 输出用户观看的广告数量 + console.log('用户看的视频广告个数是:', count); + // 根据用户观看广告的结果,执行不同的逻辑 + switch (res) { + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ACCEPT: + // 用户完成了广告观看,显示奖励提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('用户看完广告,可以奖励'); + break; + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.REJECT: + // 用户拒绝了广告观看,显示不奖励提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('用户拒绝掉广告,不奖励'); + break; + case MiniGameSdk_1.MiniGameSdk.EAdVideoResult.ERROR: + // 广告播放发生错误,显示错误提示 + MiniGameSdk_1.MiniGameSdk.API.showToast('播放广告发生错误,不奖励'); + break; + default: + // 其他情况,不作处理 + break; + } + }); + }; + /** + * 引导用户分享应用给朋友。 + * + * 通过调用MiniGameSdk的API分享功能,向用户的朋友圈发送邀请,邀请他们一起玩游戏。 + * 这是一个重要的推广手段,可以增加应用的曝光度和用户量。 + * + * @remarks + * 此方法中调用的API依赖于特定的小游戏平台,因此在不同的平台上可能需要不同的实现。 + */ + MiniGameManager.prototype.onShare = function () { + MiniGameSdk_1.MiniGameSdk.API.shareAppToFriends('来玩游戏吧'); + }; + /** + * 显示一个toast提示。 + * + * 通过调用MiniGameSdk的API方法来显示一个简短的提示信息。toast是一种轻量级的提示方式,用于在界面上短暂地展示一些信息,不影响用户操作。 + * 这里使用了固定的提示文本 '这是一个toast',在实际应用中,可以根据需要动态设置提示文本。 + */ + MiniGameManager.prototype.onShowToast = function () { + MiniGameSdk_1.MiniGameSdk.API.showToast('这是一个toast'); + }; + /** + * 触发设备振动功能。 + * + * 该方法用于调用MiniGameSdk提供的API,以实现设备的振动功能。当需要提醒用户或提供触觉反馈时,可以调用此方法。 + * 例如,在游戏或应用中,当用户完成特定操作或发生特定事件时,可以通过振动给予用户反馈。 + * + * @remarks + * 此方法无参数,也不返回任何值。 + */ + MiniGameManager.prototype.onVirbrate = function () { + MiniGameSdk_1.MiniGameSdk.API.vibrate(); + }; + /** + * 重新启动游戏实例。 + * + * 此函数调用MiniGameSdk中的API重新启动游戏。重新启动操作可能是为了初始化游戏环境、重置游戏状态或处理其他需要重启的场景。 + * 调用此函数后,游戏将会重新开始,当前的游戏状态将会被清除。 + * + * @remarks + * 此函数不接受任何参数。 + * + * @returns 无返回值。 + */ + MiniGameManager.prototype.onReboot = function () { + MiniGameSdk_1.MiniGameSdk.API.reboot(); + }; + /** + * 当前函数用于在迷你游戏中实现退出功能。 + * 它调用了MiniGameSdk提供的API方法来触发退出操作。 + * 该方法通常在需要结束当前迷你游戏或返回到上一级菜单时被调用。 + */ + MiniGameManager.prototype.onExit = function () { + MiniGameSdk_1.MiniGameSdk.API.exit(); + }; + /** + * 显示分享菜单。 + * + * 通过调用MiniGameSdk的API方法,触发显示分享菜单的操作。此函数旨在提供一个统一的入口, + * 以便在需要时轻松调用分享功能,而无需直接与具体的SDK接口交互。 + * + * @remarks + * 此方法不接受任何参数,也不返回任何值。 + */ + MiniGameManager.prototype.onShowShareMenu = function () { + MiniGameSdk_1.MiniGameSdk.API.showShareMenu(); + }; + /** + * 导航到指定的小游戏。 + * + * 本函数用于触发导航到一个特定的小游戏。这需要提供目标小游戏的ID, + * 以便系统能够正确地将用户重定向到目标小游戏。 + * + * 注意:这里的'xxx'是占位符,实际使用时需要替换为具体的小游戏ID。 + */ + MiniGameManager.prototype.onNavigate = function () { + MiniGameSdk_1.MiniGameSdk.API.navigateTo('xxx'); // xxx替换为你的小游戏id + }; + /** + * 激活字节跳动入口视图。 + * + * 此方法用于将字节跳动入口视图设置为活跃状态。当需要在用户界面中显示字节跳动的入口时, + * 可以调用此方法来激活相应的视图元素,使其对用户可见。 + */ + MiniGameManager.prototype.onBytedanceEntranceView = function () { + // this.entranceView.active = true; + }; + /** + * 请求登录代码 + * + * 本函数用于触发小程序的登录流程,获取微信或头条等第三方平台的登录代码。 + * 这些代码可以用于后续的用户身份验证和数据同步流程。 + */ + MiniGameManager.prototype.onGetLoginCode = function () { + var _this = this; + // 调用MiniGameSdk的API登录方法,传入一个回调函数处理登录结果 + MiniGameSdk_1.MiniGameSdk.API.login(function (code, anonymousCode) { + // 打印微信或头条的登录代码 + console.log('Wechat Or Bytedance Code:', code); + // 打印头条的匿名登录代码 + // console.log('Bytedance Anonymous Code:', anonymousCode); + if (code) { + cc.fx.GameTool.getUserId(code, function (data) { return _this.setUserId(data); }); + } + }); + }; + MiniGameManager.prototype.setUserId = function (data) { + cc.fx.GameConfig.GM_INFO.userId = data.data.userId; + MiniGameSdk_1.MiniGameSdk.API.getUserInfo(this.setUserInfo); + }; + MiniGameManager.prototype.setUserInfo = function (data) { + console.log("获取到的用户信息", data.userInfo); + var useData = { + "gameId": cc.fx.GameConfig.GM_INFO.gameId, + "userId": cc.fx.GameConfig.GM_INFO.userId, + "nickName": data.userInfo.nickName, + "pic": data.userInfo.avatarUrl + }; + console.log("即将上传的用户信息:", cc.fx.GameConfig.GM_INFO.userId, data.userInfo.nickName, data.userInfo.avatarUrl); + console.log("Post数据:", useData); + cc.fx.HttpUtil.setUserInfo(useData, function (res) { + console.log("上传成功:", res); + }); + }; + /** + * 创建并显示游戏圈按钮 + * + * 本函数通过调用MiniGameSdk的GameClub实例方法,实现游戏俱乐部的创建和显示。 + * 它首先配置俱乐部的图标类型和位置大小,然后创建俱乐部,最后显示俱乐部。 + * 这样做是为了在小游戏内创建并展示一个游戏俱乐部的图标,供玩家加入或互动。 + */ + MiniGameManager.prototype.onCreateClub = function () { + // 配置俱乐部图标为绿色,设置图标的位置为顶部200像素,左侧0像素 + MiniGameSdk_1.MiniGameSdk.GameClub.instance.create(MiniGameSdk_1.MiniGameSdk.EGameClubIcon.GREEN, { top: 200, left: 0 }, { width: 50, height: 50 }); + // 显示游戏俱乐部图标 + MiniGameSdk_1.MiniGameSdk.GameClub.instance.show(); + }; + var MiniGameManager_1; + __decorate([ + property(cc.Node) + ], MiniGameManager.prototype, "entranceView", void 0); + MiniGameManager = MiniGameManager_1 = __decorate([ + ccclass + ], MiniGameManager); + return MiniGameManager; +}(cc.Component)); +exports.MiniGameManager = MiniGameManager; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js.map b/temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js.map new file mode 100644 index 0000000..26ac13c --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/Sdk/MiniGameManager.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\Sdk\\MiniGameManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,6CAA4C;AACtC,IAAA,KAAwB,EAAE,CAAC,UAAU,EAAnC,OAAO,aAAA,EAAE,QAAQ,cAAkB,CAAC;AAC5C,IAAK,SAEJ;AAFD,WAAK,SAAS;IACV,mDAAsC,CAAA;AAC1C,CAAC,EAFI,SAAS,KAAT,SAAS,QAEb;AAGD;IAAqC,mCAAY;IAAjD;QAAA,qEA2UC;QAxUG,kBAAY,GAAY,IAAI,CAAC;;IAwUjC,CAAC;wBA3UY,eAAe;IAkBxB,sBAAW,2BAAQ;aAAnB;YACI,IAAI,CAAC,iBAAe,CAAC,SAAS,EAAE;gBAC5B,iBAAe,CAAC,SAAS,GAAG,IAAI,iBAAe,EAAE,CAAC;aACrD;YACD,OAAO,iBAAe,CAAC,SAAS,CAAC;QACrC,CAAC;;;OAAA;IAED,+BAAK,GAAL;QACI,WAAW;QACX,oCAAoC;QACpC,kDAAkD;QAClD,kCAAkC;QAClC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,+BAA+B;QAC/B,gGAAgG;QAChG,wBAAwB;QACxB,cAAc;QACd,IAAI;QAEJ,yBAAyB;QAEzB,IAAI,yBAAW,CAAC,WAAW,EAAE,EAAE;YAC3B,cAAc;YACd,yBAAW,CAAC,gBAAgB,CAAC,YAAY,CAAC,UAAC,OAAgB;gBACvD,sBAAsB;gBACtB,mCAAmC;YACvC,CAAC,CAAC,CAAC;SACN;aAAM;YACH,sBAAsB;YACtB,eAAe;YACf,gCAAgC;SACnC;QAED,sBAAsB;QACtB,yBAAW,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,UAAC,OAAgB;YAC5D,gBAAgB;YAChB,IAAI,OAAO,EAAE;gBACT,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;aACzC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,gCAAM,GAAN,UAAO,SAAiB;IAExB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,sCAAY,GAAZ;QACI,gBAAgB;QAChB,yBAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;QAEzE,cAAc;QACd,WAAW;QACX,yBAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;QAEhD,qBAAqB;QACrB,kBAAkB;QAClB,mHAAmH;QAEnH,qBAAqB;QACrB,WAAW;QACX,oGAAoG;IACxG,CAAC;IAED;;;;;;;;;OASG;IACH,sCAAY,GAAZ;QACI,yBAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpD,CAAC;IAED;;;;;;OAMG;IACH,4CAAkB,GAAlB;QACI,yBAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;IACnF,CAAC;IAED;;;;;OAKG;IACH,sCAAY,GAAZ;QACI,gBAAgB;QAChB,yBAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACpE,eAAe;QACf,yBAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;OAMG;IACH,sCAAY,GAAZ;QACI,yBAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;OAOG;IACH,qCAAW,GAAX;QACI,sBAAsB;QACtB,YAAY;QACZ,0BAA0B;QAC1B,+BAA+B;QAC/B,yBAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,oBAAoB,EAAE,UAAC,GAA+B,EAAE,KAAa;YAC9G,cAAc;YACd,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YAEnC,sBAAsB;YACtB,QAAQ,GAAG,EAAE;gBACT,KAAK,yBAAW,CAAC,cAAc,CAAC,MAAM;oBAClC,mBAAmB;oBACnB,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;oBACzC,MAAM;gBACV,KAAK,yBAAW,CAAC,cAAc,CAAC,MAAM;oBAClC,oBAAoB;oBACpB,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;oBACzC,MAAM;gBACV,KAAK,yBAAW,CAAC,cAAc,CAAC,KAAK;oBACjC,kBAAkB;oBAClB,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;oBAC1C,MAAM;gBACV;oBACI,YAAY;oBACZ,MAAM;aACb;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;;;OAQG;IACH,iCAAO,GAAP;QACI,yBAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;OAKG;IACH,qCAAW,GAAX;QACI,yBAAW,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;OAQG;IACH,oCAAU,GAAV;QACI,yBAAW,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;OAUG;IACH,kCAAQ,GAAR;QACI,yBAAW,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,gCAAM,GAAN;QACI,yBAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;;;;;;;OAQG;IACH,yCAAe,GAAf;QACI,yBAAW,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,oCAAU,GAAV;QACI,yBAAW,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB;IACvD,CAAC;IAED;;;;;OAKG;IACH,iDAAuB,GAAvB;QACI,mCAAmC;IACvC,CAAC;IAED;;;;;OAKG;IACH,wCAAc,GAAd;QAAA,iBAWC;QAVG,uCAAuC;QACvC,yBAAW,CAAC,GAAG,CAAC,KAAK,CAAC,UAAC,IAAY,EAAE,aAAqB;YACtD,eAAe;YACf,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;YAC/C,cAAc;YACd,2DAA2D;YAC3D,IAAG,IAAI,EAAC;gBACJ,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,UAAA,IAAI,IAAI,OAAA,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAApB,CAAoB,CAAC,CAAC;aAChE;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mCAAS,GAAT,UAAU,IAAI;QACV,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACnD,yBAAW,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,qCAAW,GAAX,UAAY,IAAI;QACZ,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,OAAO,GAAG;YACV,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM;YACzC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM;YACzC,UAAU,EAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ;YACjC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;SAEjC,CAAA;QACD,OAAO,CAAC,GAAG,CAAC,YAAY,EAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,EAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACzG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAC,OAAO,CAAC,CAAC;QAC/B,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAC,UAAC,GAAG;YACnC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAC,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;;OAMG;IACH,sCAAY,GAAZ;QACI,mCAAmC;QACnC,yBAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAChC,yBAAW,CAAC,aAAa,CAAC,KAAK,EAC/B,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,EACrB,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/B,YAAY;QACZ,yBAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;;IAvUD;QADC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC;yDACW;IAHpB,eAAe;QAD3B,OAAO;OACK,eAAe,CA2U3B;IAAD,sBAAC;CA3UD,AA2UC,CA3UoC,EAAE,CAAC,SAAS,GA2UhD;AA3UY,0CAAe","file":"","sourceRoot":"/","sourcesContent":["\r\nimport { MiniGameSdk } from \"./MiniGameSdk\";\r\nconst { ccclass, property } = cc._decorator;\r\nenum EWechatAD {\r\n CUMSTOM_01 = 'adunit-f7c2417eb2c2e473'\r\n}\r\n\r\n@ccclass\r\nexport class MiniGameManager extends cc.Component {\r\n\r\n @property(cc.Node)\r\n entranceView: cc.Node = null;\r\n /**\r\n * 开始游戏前的初始化操作。\r\n * 主要负责检查并处理游戏入口按钮的激活状态,以及在特定环境下设置侧边栏的监听器。\r\n * \r\n * @remarks\r\n * 此方法首先将游戏入口视图设为非激活状态,以准备进行后续的检查和设置。\r\n * 如果当前环境是抖音小游戏,会检查是否存在侧边栏,并根据检查结果激活或禁用游戏入口按钮。\r\n * 对于非抖音小游戏环境,直接激活游戏入口按钮。\r\n * 此外,无论环境如何,都会设置一个监听器,以处理来自侧边栏的事件,如成功触发时显示奖励提示。\r\n */\r\n private _id:any;\r\n private _userData:any;\r\n\r\n private static _instance: MiniGameManager;\r\n static get instance(): MiniGameManager {\r\n if (!MiniGameManager._instance) {\r\n MiniGameManager._instance = new MiniGameManager();\r\n }\r\n return MiniGameManager._instance;\r\n }\r\n\r\n start() {\r\n // 禁用游戏入口视图\r\n // this.entranceView.active = false;\r\n // MiniGameSdk.API.getUserProfile(this.setUserId);\r\n // cc.fx.GameTool.setUserInfo(\"\");\r\n this.onGetLoginCode();\r\n // 尝试获取游戏入口按钮,如果存在则直接返回,不进行后续操作\r\n // let buttonEntrance = this.node.getChildByName('Btns')?.getChildByName('Button_EntranceView');\r\n // if (buttonEntrance) {\r\n // return;\r\n // }\r\n\r\n // 如果是字节跳动小游戏环境,检查侧边栏是否存在\r\n\r\n if (MiniGameSdk.isBytedance()) {\r\n //抖音环境,检测侧边栏存在\r\n MiniGameSdk.BytedanceSidebar.checkSideBar((success: boolean) => {\r\n // 根据侧边栏存在性激活或禁用游戏入口按钮\r\n // buttonEntrance.active = success;\r\n });\r\n } else {\r\n // 非抖音小游戏环境,直接激活游戏入口按钮\r\n // 非抖音环境,正常显示按钮\r\n // buttonEntrance.active = true;\r\n }\r\n\r\n // 设置监听器,以处理来自侧边栏的交互事件\r\n MiniGameSdk.BytedanceSidebar.listenFromSidebar((success: boolean) => {\r\n // 如果交互成功,显示奖励提示\r\n if (success) {\r\n MiniGameSdk.API.showToast('侧边栏奖励', 5);\r\n }\r\n });\r\n }\r\n\r\n update(deltaTime: number) {\r\n\r\n }\r\n\r\n /**\r\n * 弹出广告横幅。\r\n * 此方法用于加载并显示广告横幅。它首先加载指定广告位的横幅广告,然后显示广告。\r\n * 加载广告和显示广告是通过MiniGameSdk.AdvertManager的实例方法来实现的。\r\n * \r\n * @remarks\r\n * 此方法提供了两种显示横幅广告的方式:\r\n * 1. 默认方式:调用showBanner方法显示广告,系统会自动选择显示位置。\r\n * 2. 指定位置方式:可以通过传入额外的参数来指定广告显示在屏幕的顶部或底部,或者通过坐标指定显示位置。\r\n * \r\n * 示例代码中注释掉了两种显示广告的具体方法,可以根据实际需求选择使用。\r\n */\r\n onShowBanner() {\r\n // 加载指定广告位的横幅广告。\r\n MiniGameSdk.AdvertManager.instance.loadBanner('adunit-4e7ef467e3eaab51');\r\n\r\n // 默认方式显示横幅广告。\r\n // 方法1:默认调用\r\n MiniGameSdk.AdvertManager.instance.showBanner();\r\n\r\n // 示例:指定屏幕底部正中显示横幅广告。\r\n // 方法2:指定屏幕顶部或底部正中\r\n // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', MiniGameSdk.EAdBannerLocation.BOTTOM); \r\n\r\n // 示例:通过坐标指定位置显示横幅广告。\r\n // 方法2:指定坐标\r\n // MiniGameSdk.AdvertManager.instance.showBanner('adunit-4e7ef467e3eaab51', { top: 10, left: 10 }); \r\n }\r\n\r\n /**\r\n * 隐藏广告横幅的函数。\r\n * \r\n * 该函数调用MiniGameSdk.AdvertManager实例的方法,用于隐藏广告横幅。\r\n * 当需要暂时停止展示广告或用户主动请求隐藏广告时,可以调用此函数。\r\n * \r\n * @remarks\r\n * 此函数不接受任何参数,也不返回任何值。\r\n * 它单纯地触发广告横幅的隐藏操作,具体实现依赖于AdvertManager的实现。\r\n */\r\n onHideBanner() {\r\n MiniGameSdk.AdvertManager.instance.hideBanner();\r\n }\r\n\r\n /**\r\n * 显示插屏广告的函数。\r\n * \r\n * 此函数调用MiniGameSdk.AdvertManager实例的方法,以显示一个指定的插屏广告。\r\n * 它使用了硬编码的广告单元标识符,这意味着它专为特定的广告位设计。\r\n * 在实际应用中,可能需要根据应用的配置或用户的特定条件来动态选择广告单元标识符。\r\n */\r\n onShowInterstitial() {\r\n MiniGameSdk.AdvertManager.instance.showInterstitial('adunit-eadd67851d3050ad');\r\n }\r\n\r\n /**\r\n * 调用广告管理器加载并展示自定义广告。\r\n * 此方法首先通过广告管理器的实例加载指定的自定义广告单元,然后展示这个自定义广告。\r\n * 加载和展示广告是广告管理系统中的常见操作,这里通过两步分别完成加载和展示的过程,\r\n * 以确保广告在展示前正确且充分地被加载。\r\n */\r\n onShowCustom() {\r\n // 加载指定的自定义广告单元。\r\n MiniGameSdk.AdvertManager.instance.loadCustom(EWechatAD.CUMSTOM_01);\r\n // 展示已加载的自定义广告。\r\n MiniGameSdk.AdvertManager.instance.showCustom(EWechatAD.CUMSTOM_01);\r\n }\r\n\r\n /**\r\n * 隐藏自定义广告。\r\n * \r\n * 本函数调用MiniGameSdk.AdvertManager.instance.hideCustom()来隐藏自定义广告。\r\n * 这是对接广告管理系统的一部分,用于控制广告的显示与隐藏。\r\n * 在需要隐藏自定义广告的场景下,调用此函数即可实现相应功能。\r\n */\r\n onHideCustom() {\r\n MiniGameSdk.AdvertManager.instance.hideCustom(EWechatAD.CUMSTOM_01);\r\n }\r\n\r\n /**\r\n * 触发显示视频广告的函数。\r\n * 通过调用MiniGameSdk.AdvertManager.instance.showVideo方法,显示一个视频广告,并根据用户观看广告的情况执行相应的逻辑。\r\n * \r\n * @remarks\r\n * 此函数首先传入一个广告单元ID,用于标识要显示的视频广告。然后传入一个回调函数,该回调函数在用户观看广告后被调用,无论用户是完成了观看、拒绝了观看还是观看过程中发生了错误。\r\n * 回调函数接收两个参数:一个是用户观看广告的结果,另一个是用户观看的广告数量。根据观看结果的不同,显示不同的提示信息。\r\n */\r\n onShowVideo() {\r\n // 广告单元ID,用于标识要显示的视频广告\r\n // 广告单元ID的样例\r\n //抖音形如: 1re3nfqkmy81m4m8ge\r\n //微信形如: adunit-a7718f6e195e42fe\r\n MiniGameSdk.AdvertManager.instance.showVideo('1re3nfqkmy81m4m8ge', (res: MiniGameSdk.EAdVideoResult, count: number) => {\r\n // 输出用户观看的广告数量\r\n console.log('用户看的视频广告个数是:', count);\r\n\r\n // 根据用户观看广告的结果,执行不同的逻辑\r\n switch (res) {\r\n case MiniGameSdk.EAdVideoResult.ACCEPT:\r\n // 用户完成了广告观看,显示奖励提示\r\n MiniGameSdk.API.showToast('用户看完广告,可以奖励');\r\n break;\r\n case MiniGameSdk.EAdVideoResult.REJECT:\r\n // 用户拒绝了广告观看,显示不奖励提示\r\n MiniGameSdk.API.showToast('用户拒绝掉广告,不奖励');\r\n break;\r\n case MiniGameSdk.EAdVideoResult.ERROR:\r\n // 广告播放发生错误,显示错误提示\r\n MiniGameSdk.API.showToast('播放广告发生错误,不奖励');\r\n break;\r\n default:\r\n // 其他情况,不作处理\r\n break;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 引导用户分享应用给朋友。\r\n * \r\n * 通过调用MiniGameSdk的API分享功能,向用户的朋友圈发送邀请,邀请他们一起玩游戏。\r\n * 这是一个重要的推广手段,可以增加应用的曝光度和用户量。\r\n * \r\n * @remarks\r\n * 此方法中调用的API依赖于特定的小游戏平台,因此在不同的平台上可能需要不同的实现。\r\n */\r\n onShare() {\r\n MiniGameSdk.API.shareAppToFriends('来玩游戏吧');\r\n }\r\n\r\n /**\r\n * 显示一个toast提示。\r\n * \r\n * 通过调用MiniGameSdk的API方法来显示一个简短的提示信息。toast是一种轻量级的提示方式,用于在界面上短暂地展示一些信息,不影响用户操作。\r\n * 这里使用了固定的提示文本 '这是一个toast',在实际应用中,可以根据需要动态设置提示文本。\r\n */\r\n onShowToast() {\r\n MiniGameSdk.API.showToast('这是一个toast');\r\n }\r\n\r\n /**\r\n * 触发设备振动功能。\r\n * \r\n * 该方法用于调用MiniGameSdk提供的API,以实现设备的振动功能。当需要提醒用户或提供触觉反馈时,可以调用此方法。\r\n * 例如,在游戏或应用中,当用户完成特定操作或发生特定事件时,可以通过振动给予用户反馈。\r\n * \r\n * @remarks\r\n * 此方法无参数,也不返回任何值。\r\n */\r\n onVirbrate() {\r\n MiniGameSdk.API.vibrate();\r\n }\r\n\r\n /**\r\n * 重新启动游戏实例。\r\n * \r\n * 此函数调用MiniGameSdk中的API重新启动游戏。重新启动操作可能是为了初始化游戏环境、重置游戏状态或处理其他需要重启的场景。\r\n * 调用此函数后,游戏将会重新开始,当前的游戏状态将会被清除。\r\n * \r\n * @remarks\r\n * 此函数不接受任何参数。\r\n * \r\n * @returns 无返回值。\r\n */\r\n onReboot() {\r\n MiniGameSdk.API.reboot();\r\n }\r\n\r\n /**\r\n * 当前函数用于在迷你游戏中实现退出功能。\r\n * 它调用了MiniGameSdk提供的API方法来触发退出操作。\r\n * 该方法通常在需要结束当前迷你游戏或返回到上一级菜单时被调用。\r\n */\r\n onExit() {\r\n MiniGameSdk.API.exit();\r\n }\r\n\r\n /**\r\n * 显示分享菜单。\r\n * \r\n * 通过调用MiniGameSdk的API方法,触发显示分享菜单的操作。此函数旨在提供一个统一的入口,\r\n * 以便在需要时轻松调用分享功能,而无需直接与具体的SDK接口交互。\r\n * \r\n * @remarks\r\n * 此方法不接受任何参数,也不返回任何值。\r\n */\r\n onShowShareMenu() {\r\n MiniGameSdk.API.showShareMenu();\r\n }\r\n\r\n /**\r\n * 导航到指定的小游戏。\r\n * \r\n * 本函数用于触发导航到一个特定的小游戏。这需要提供目标小游戏的ID,\r\n * 以便系统能够正确地将用户重定向到目标小游戏。\r\n * \r\n * 注意:这里的'xxx'是占位符,实际使用时需要替换为具体的小游戏ID。\r\n */\r\n onNavigate() {\r\n MiniGameSdk.API.navigateTo('xxx'); // xxx替换为你的小游戏id\r\n }\r\n\r\n /**\r\n * 激活字节跳动入口视图。\r\n * \r\n * 此方法用于将字节跳动入口视图设置为活跃状态。当需要在用户界面中显示字节跳动的入口时,\r\n * 可以调用此方法来激活相应的视图元素,使其对用户可见。\r\n */\r\n onBytedanceEntranceView() {\r\n // this.entranceView.active = true;\r\n }\r\n\r\n /**\r\n * 请求登录代码\r\n * \r\n * 本函数用于触发小程序的登录流程,获取微信或头条等第三方平台的登录代码。\r\n * 这些代码可以用于后续的用户身份验证和数据同步流程。\r\n */\r\n onGetLoginCode() {\r\n // 调用MiniGameSdk的API登录方法,传入一个回调函数处理登录结果\r\n MiniGameSdk.API.login((code: string, anonymousCode: string) => {\r\n // 打印微信或头条的登录代码\r\n console.log('Wechat Or Bytedance Code:', code);\r\n // 打印头条的匿名登录代码\r\n // console.log('Bytedance Anonymous Code:', anonymousCode);\r\n if(code){\r\n cc.fx.GameTool.getUserId(code, data => this.setUserId(data)); \r\n }\r\n });\r\n }\r\n\r\n setUserId(data){\r\n cc.fx.GameConfig.GM_INFO.userId = data.data.userId;\r\n MiniGameSdk.API.getUserInfo(this.setUserInfo);\r\n }\r\n\r\n setUserInfo(data){\r\n console.log(\"获取到的用户信息\",data.userInfo);\r\n var useData = {\r\n \"gameId\": cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\": cc.fx.GameConfig.GM_INFO.userId,\r\n \"nickName\":data.userInfo.nickName,\r\n \"pic\": data.userInfo.avatarUrl\r\n \r\n }\r\n console.log(\"即将上传的用户信息:\",cc.fx.GameConfig.GM_INFO.userId,data.userInfo.nickName,data.userInfo.avatarUrl);\r\n console.log(\"Post数据:\",useData);\r\n cc.fx.HttpUtil.setUserInfo(useData,(res)=>{\r\n console.log(\"上传成功:\",res);\r\n });\r\n }\r\n\r\n /**\r\n * 创建并显示游戏圈按钮\r\n * \r\n * 本函数通过调用MiniGameSdk的GameClub实例方法,实现游戏俱乐部的创建和显示。\r\n * 它首先配置俱乐部的图标类型和位置大小,然后创建俱乐部,最后显示俱乐部。\r\n * 这样做是为了在小游戏内创建并展示一个游戏俱乐部的图标,供玩家加入或互动。\r\n */\r\n onCreateClub() {\r\n // 配置俱乐部图标为绿色,设置图标的位置为顶部200像素,左侧0像素\r\n MiniGameSdk.GameClub.instance.create(\r\n MiniGameSdk.EGameClubIcon.GREEN,\r\n { top: 200, left: 0 },\r\n { width: 50, height: 50 });\r\n // 显示游戏俱乐部图标\r\n MiniGameSdk.GameClub.instance.show();\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js b/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js new file mode 100644 index 0000000..3859c24 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js @@ -0,0 +1,1102 @@ +"use strict"; +cc._RF.push(module, 'c1af9nd7gNA95YJ04h9DdNX', 'MiniGameSdk'); +// Script/Sdk/MiniGameSdk.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MiniGameSdk = void 0; +/** + * 小游戏平台SDK工具封装,目前只支持微信和抖音平台 + */ +var MiniGameSdk; +(function (MiniGameSdk) { + function isWechat() { + //@ts-ignore + return window.wx !== null && window.wx !== undefined; + } + MiniGameSdk.isWechat = isWechat; + function isBytedance() { + //@ts-ignore + return window.tt !== null && window.tt !== undefined; + } + MiniGameSdk.isBytedance = isBytedance; + function getSysWinSize() { + var sys; + if (isWechat()) { + // @ts-ignore + sys = wx.getSystemInfoSync(); + } + else if (isBytedance()) { + // @ts-ignore + sys = tt.getSystemInfoSync(); + } + var size = { width: 0, height: 0 }; + if (sys) { + size.width = sys.windowWidth; + size.height = sys.windowHeight; + } + return size; + } + /** + * 插屏广告。微信抖音都支持! + */ + var ADInterstitial = /** @class */ (function () { + function ADInterstitial(adUid) { + this._adUid = adUid; + } + Object.defineProperty(ADInterstitial.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADInterstitial.prototype.show = function () { + var _this = this; + var _a, _b; + // @ts-ignore + if (isWechat() && !wx.createInterstitialAd) { + console.warn('wechat unsupport interstitial AD!'); + this._interstitial = null; + return; + } + // @ts-ignore + if (isBytedance() && !tt.createInterstitialAd) { + console.warn('bytedance unsupport interstitial AD!'); + this._interstitial = null; + return; + } + if (this._interstitial) { + this._interstitial.load(); + } + else { + if (isWechat()) { + // @ts-ignore + this._interstitial = wx.createInterstitialAd({ adUnitId: this._adUid }); + } + else if (isBytedance()) { + // @ts-ignore + this._interstitial = tt.createInterstitialAd({ adUnitId: this._adUid }); + } + else { + this._interstitial = null; + } + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.onLoad(function () { + console.log('load interstitial ad success'); + _this._interstitial.show().catch(function (err) { + console.log('catch interstitial ad error:', err); + }); + }); + (_b = this._interstitial) === null || _b === void 0 ? void 0 : _b.onError(function (err) { + console.log('interstitial ad on error:', err); + }); + } + }; + ADInterstitial.prototype.destory = function () { + var _a; + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADInterstitial; + }()); + var ADBanner = /** @class */ (function () { + /** + * 抖音和微信都支持 + * 横幅广告。预估宽度默认为300,预估高度为140。如果你不确定就按默认值来。 + * @param adUid 广告UID,后端配置 + * @param isTop 是否在屏幕顶部展示。内部会自动居中计算位置。 + * @param bannerWidth 横幅广告的预估宽度。默认300 + * @param autoShow 广告加载完成后是否立刻显示,默认为不显示 + */ + function ADBanner(adUid, param, bannerWidth, autoShow) { + if (bannerWidth === void 0) { bannerWidth = 300; } + if (autoShow === void 0) { autoShow = false; } + this._adUid = adUid; + this.create(autoShow, bannerWidth, param); // 默认300比较合适 + } + Object.defineProperty(ADBanner.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADBanner.prototype.create = function (autoShow, bannerWidth, param) { + var _this = this; + var _a, _b; + if (!isWechat() && !isBytedance()) { + this._banner = null; + return; + } + this.destroy(); + var winSize = getSysWinSize(); + var height = bannerWidth * 0.4; + var top = 0, left = 0; + if (typeof param === "boolean") { + left = (winSize.width - bannerWidth) / 2; + top = param ? 5 : (winSize.height - height); + } + else { + left = param.left; + top = param.top; + } + var params = { + adUnitId: this._adUid, + adIntervals: 30, + style: { left: left, top: top, width: bannerWidth } + }; + if (isWechat()) { + // @ts-ignore + this._banner = wx.createBannerAd(params); + } + else if (isBytedance()) { + // @ts-ignore + this._banner = tt.createBannerAd(params); + } + else { + this._banner = null; + } + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.onError(function (err) { + console.log('ad banner error:', err); + }); + (_b = this._banner) === null || _b === void 0 ? void 0 : _b.onLoad(function () { + autoShow && _this._banner.show(); + }); + }; + ADBanner.prototype.show = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.show(); + }; + ADBanner.prototype.hide = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.hide(); + }; + ADBanner.prototype.destroy = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADBanner; + }()); + var ADCustom = /** @class */ (function () { + /** + * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持! + * @param adUid 广告UID,后端配置 + * @param top 从左上角开始,距离屏幕顶部的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。 + * @param left 从左上角开始,距离屏幕最左边的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。 + * @param scale 原生模板广告的尺寸,默认为1,即100%。此值在微信服务后端广告中获得,默认为100%,目前有100%,90%,80%三种,一般情况不用修改。若有修改,记得传入值,例如90%就传入0.9。 + */ + function ADCustom(adUid, top, left, scale) { + if (top === void 0) { top = 0; } + if (left === void 0) { left = 0; } + if (scale === void 0) { scale = 1.0; } + this._adUid = adUid; + this.createCustomAd(top, left, scale); + } + Object.defineProperty(ADCustom.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + ADCustom.prototype.createCustomAd = function (top, left, scale) { + var _a; + if (!isWechat()) { // only wechat support custom ad + this._adCustom = null; + console.log('Only wechat support Custom Ad'); + return; + } + this.destroy(); + // 原生模板5个应用宽度为375,若设置了缩放比例,则宽度也需要设置 + // let width = 375 * this._scale; + // let newLeft = (sys.windowWidth - width) / 2; + // let newTop = sys.windowHeight / 2; // 120是预估高度 + // @ts-ignore + this._adCustom = wx.createCustomAd({ + adUnitId: this._adUid, + style: { left: left, top: top, fixed: true } + }); + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.onError(function (err) { + console.log('ad custom error:', err); + }); + }; + ADCustom.prototype.show = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.show(); + }; + ADCustom.prototype.hide = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.hide(); + }; + ADCustom.prototype.destroy = function () { + var _a; + (_a = this._adCustom) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return ADCustom; + }()); + /** + * 视频广告用户点击行为结果 + */ + var EAdVideoResult; + (function (EAdVideoResult) { + /** + * 用户看完了广告,游戏可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["ACCEPT"] = 0] = "ACCEPT"; + /** + * 用户中途关闭了广告,即未看完状态。不可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["REJECT"] = 1] = "REJECT"; + /** + * 广告组件内部发生了错误。不可发放奖励。 + */ + EAdVideoResult[EAdVideoResult["ERROR"] = 2] = "ERROR"; + })(EAdVideoResult = MiniGameSdk.EAdVideoResult || (MiniGameSdk.EAdVideoResult = {})); + var ADVideo = /** @class */ (function () { + function ADVideo(adUid) { + this._adVideo = null; + this._adUid = adUid; + } + Object.defineProperty(ADVideo.prototype, "aduid", { + get: function () { + return this._adUid; + }, + enumerable: false, + configurable: true + }); + /** + * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount + * @param onResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 + * @param target onResult的拥有者 + * @param maxVideoCount 可以连续看最大视频个数,可最大化商业效率。默认为3个。 + * @returns + */ + ADVideo.prototype.show = function (onResult, target, maxVideoCount) { + var _this = this; + var _a, _b, _c, _d, _e; + if (maxVideoCount === void 0) { maxVideoCount = 3; } + var callback = function (state, count) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, state, count); + }; + if (!isWechat() && !isBytedance()) { + callback(EAdVideoResult.ACCEPT, 1); + this._adVideo = null; + return; + } + var onAdVideoClosed = function (res) { + var _a; + (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.offClose(onAdVideoClosed); + if (isWechat()) { + if (res && res.isEnded || res === undefined) { + callback(EAdVideoResult.ACCEPT, 1); + } + else { + callback(EAdVideoResult.REJECT, 0); + } + } + else if (isBytedance()) { + var resConverted = res; + if (resConverted && resConverted.count > 0) { + callback(EAdVideoResult.ACCEPT, resConverted.count); + } + else { + callback(EAdVideoResult.REJECT, 0); + } + } + }; + (_a = this._adVideo) === null || _a === void 0 ? void 0 : _a.offClose(onAdVideoClosed); + if (isWechat()) { + // @ts-ignore + this._adVideo = wx.createRewardedVideoAd({ + adUnitId: this._adUid + }); + } + else if (isBytedance()) { + // @ts-ignore + this._adVideo = tt.createRewardedVideoAd({ + adUnitId: this._adUid, + multiton: true, + multitonRewardMsg: ['多1次奖励', '再多一次奖励', '再多一次奖励'], + multitonRewardTimes: maxVideoCount, + }); + } + else { + this._adVideo = null; + } + (_b = this._adVideo) === null || _b === void 0 ? void 0 : _b.onLoad(function () { + console.log('Ad load success'); + }); + (_c = this._adVideo) === null || _c === void 0 ? void 0 : _c.onError(function (err) { + console.log('Ad video error:', err); + callback(EAdVideoResult.ERROR, 0); + }); + (_d = this._adVideo) === null || _d === void 0 ? void 0 : _d.onClose(onAdVideoClosed); + (_e = this._adVideo) === null || _e === void 0 ? void 0 : _e.show().catch(function () { + var _a; + (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.load().then(function () { var _a; return (_a = _this._adVideo) === null || _a === void 0 ? void 0 : _a.show(); }).catch(function (err) { + console.log('Catch video ad error:', err); + callback(EAdVideoResult.ERROR, 0); + }); + }); + }; + ADVideo.prototype.destory = function () { + var _a; + (_a = this._adVideo) === null || _a === void 0 ? void 0 : _a.destory(); + }; + return ADVideo; + }()); + var EAdBannerLocation; + (function (EAdBannerLocation) { + /** + * 屏幕顶部 + */ + EAdBannerLocation[EAdBannerLocation["TOP"] = 0] = "TOP"; + /** + * 屏幕底部 + */ + EAdBannerLocation[EAdBannerLocation["BOTTOM"] = 1] = "BOTTOM"; + })(EAdBannerLocation = MiniGameSdk.EAdBannerLocation || (MiniGameSdk.EAdBannerLocation = {})); + var AdvertManager = /** @class */ (function () { + function AdvertManager() { + this._customs = {}; + } + Object.defineProperty(AdvertManager, "instance", { + get: function () { + if (!AdvertManager._instance) { + AdvertManager._instance = new AdvertManager(); + } + return AdvertManager._instance; + }, + enumerable: false, + configurable: true + }); + /** + * 预加载横幅广告,不会显示。只有你在调用showBanner时才会显示。 + * 可重复调用,但是会销毁上一次的实例。一般情况,全局有一个就行了,太多占用内存,而且没必要。 + * @param adUid 广告UID + * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置 + * @param scale 默认为跟屏幕一样的宽度,可以通过设置缩放比例来调整大小。当然,平台有规定最大或最小宽度,函数内部会自动计算。 + */ + AdvertManager.prototype.loadBanner = function (adUid, location, scale) { + var _a; + if (location === void 0) { location = EAdBannerLocation.TOP; } + if (scale === void 0) { scale = 1.0; } + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + var size = getSysWinSize(); + // 当 style.width 小于 300 时,会取作 300。 当 style.width 大于屏幕宽度时,会取作屏幕宽度。 + var width = size.width * scale; + width = width < 300 ? 300 : width; // 最小值矫正 + width = width > size.width ? size.width : width; //最大值矫正 + this._banner = typeof location === 'number' ? new ADBanner(adUid, location === EAdBannerLocation.TOP, width, false) : new ADBanner(adUid, location, width, false); + }; + /** + * 显示横幅广告 + */ + AdvertManager.prototype.showBanner = function () { + if (this._banner) { + this._banner.show(); + } + else { + console.warn('MiniGameSDK: banner is null, you must call loadBanner(...) first!'); + } + }; + /** + * 隐藏横幅广告 + */ + AdvertManager.prototype.hideBanner = function () { + var _a; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.hide(); + }; + /** + * 弹出插屏广告 + * @param adUid 广告单元id + */ + AdvertManager.prototype.showInterstitial = function (adUid) { + var _a; + if (this._interstitial && this._interstitial.aduid === adUid) { + this._interstitial.show(); + } + else { + (_a = this._interstitial) === null || _a === void 0 ? void 0 : _a.destory(); + this._interstitial = new ADInterstitial(adUid); + this._interstitial.show(); + } + }; + /** + * 加载原生模板广告,不会显示。只有你在调用showCustom时才会显示。 + * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持本函数,会调用无效! + * @param adUid 广告ID + * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置 + * @param scale 缩放比例,默认是1,即不缩放。这个缩放并不是自己填,而是根据微信MP后台你配置的原生模板广告的缩放比例填,目前有100%,90%,80%三种,一般情况不用修改。若有后台修改,记得传入值,例如90%就传入0.9。 + */ + AdvertManager.prototype.loadCustom = function (adUid, location, scale) { + if (location === void 0) { location = { top: 0, left: 0 }; } + if (scale === void 0) { scale = 1; } + // this._custom?.destroy(); + // this._custom = new ADCustom(adUid, location.top, location.left, scale); + if (this._customs[adUid]) { + console.log(adUid + " has been loaded."); + return; + } + this._customs[adUid] = new ADCustom(adUid, location.top, location.left, scale); + }; + /** + * 显示自定义广告。 + * @param adUid 广告的唯一标识符。使用此标识符来查找和显示特定的自定义广告。 + * + * 此方法尝试根据提供的adUid显示一个自定义广告。如果给定的adUid对应的自定义广告已加载, + * 则调用该广告的显示方法。如果广告未加载,则在控制台输出警告信息。 + */ + AdvertManager.prototype.showCustom = function (adUid) { + if (this._customs[adUid]) { + this._customs[adUid].show(); + } + else { + console.warn("You have not load " + adUid + " of Custom AD, can not show!"); + } + }; + /** + * 隐藏指定的自定义广告单元 + * + * 此方法用于隐藏通过广告单元标识符(adUid)指定的自定义广告。如果指定的广告单元已加载并显示, + * 则将其隐藏;如果广告单元未加载,则在控制台输出警告信息。 + * + * @param adUid 广告单元标识符,用于唯一标识一个自定义广告单元。 + */ + AdvertManager.prototype.hideCustom = function (adUid) { + if (this._customs[adUid]) { + this._customs[adUid].hide(); + } + else { + console.warn("You have not load " + adUid + " of Custom AD, can not hide!"); + } + }; + /** + * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount + * @param adUid 广告ID。如果与上一次UID不同,则内部会重新创建实例。开发者完全不用关心这个细节。 + * @param onVideoResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 + * @param target onVideoResult的拥有者 + * @param maxVideoCount 最大视频个数。默认是3,仅对抖音平台生效。微信平台看完视频count的结果永远是1或0 + */ + AdvertManager.prototype.showVideo = function (adUid, onVideoResult, target, maxVideoCount) { + var _a; + if (maxVideoCount === void 0) { maxVideoCount = 3; } + if (this._video && this._video.aduid === adUid) { + this._video.show(onVideoResult, target, maxVideoCount); + } + else { + (_a = this._video) === null || _a === void 0 ? void 0 : _a.destory(); + this._video = new ADVideo(adUid); + this._video.show(onVideoResult, target, maxVideoCount); + } + }; + /** + * 销毁内部所有实例,清空内存 + */ + AdvertManager.prototype.destroyAll = function () { + var _a, _b, _c, _d; + (_a = this._banner) === null || _a === void 0 ? void 0 : _a.destroy(); + this._banner = null; + (_b = this._interstitial) === null || _b === void 0 ? void 0 : _b.destory(); + this._interstitial = null; + (_c = this._video) === null || _c === void 0 ? void 0 : _c.destory(); + this._video = null; + if (this._customs) { + for (var val in this._customs) { + (_d = this._customs[val]) === null || _d === void 0 ? void 0 : _d.destroy(); + } + this._customs = {}; + } + }; + return AdvertManager; + }()); + MiniGameSdk.AdvertManager = AdvertManager; + var EGameClubIcon; + (function (EGameClubIcon) { + /** 绿色图标 */ + EGameClubIcon["GREEN"] = "green"; + /** 红色图标 */ + EGameClubIcon["WHITE"] = "white"; + /** 有黑色圆角背景的白色图标 */ + EGameClubIcon["DARK"] = "dark"; + /** 有白色圆角背景的绿色图标 */ + EGameClubIcon["LIGHT"] = "light"; + })(EGameClubIcon = MiniGameSdk.EGameClubIcon || (MiniGameSdk.EGameClubIcon = {})); + var GameClub = /** @class */ (function () { + function GameClub() { + } + Object.defineProperty(GameClub, "instance", { + get: function () { + if (!this._instance) { + this._instance = new GameClub(); + } + return this._instance; + }, + enumerable: false, + configurable: true + }); + /** + * 创建游戏圈按钮 + * @param icon + * @param position + * @param size + * @param openLink + */ + GameClub.prototype.create = function (icon, position, size, openLink) { + if (icon === void 0) { icon = EGameClubIcon.GREEN; } + if (position === void 0) { position = { top: 0, left: 0 }; } + if (size === void 0) { size = { width: 40, height: 40 }; } + if (isWechat()) { + // @ts-ignore + this._club = wx.createGameClubButton({ + icon: icon, + style: { + left: position.left, + top: position.top, + width: size.width, + height: size.height + }, + openlink: openLink + }); + } + }; + GameClub.prototype.show = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.show(); + }; + GameClub.prototype.hide = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.hide(); + }; + GameClub.prototype.destory = function () { + var _a; + (_a = this._club) === null || _a === void 0 ? void 0 : _a.destroy(); + }; + return GameClub; + }()); + MiniGameSdk.GameClub = GameClub; + /** + * 振动类型 + */ + var EVirbrateType; + (function (EVirbrateType) { + /** + * 短振动 + */ + EVirbrateType[EVirbrateType["SHORT"] = 0] = "SHORT"; + /** + * 长振动 + */ + EVirbrateType[EVirbrateType["LONG"] = 1] = "LONG"; + })(EVirbrateType = MiniGameSdk.EVirbrateType || (MiniGameSdk.EVirbrateType = {})); + /** + * 平台常用API合集 + */ + var API = /** @class */ (function () { + function API() { + } + /** + * 分享app给朋友,微信小游戏分享是没有onSuccess回调的。 + * @param title 标题 + * @param description 细节描述信息 + * @param imageUrl 图片地址 + * @param query 查询信息 + * @param onSuccess 抖音会回调,微信不会回调 + */ + API.shareAppToFriends = function (title, description, imageUrl, query, onSuccess) { + if (description === void 0) { description = ''; } + if (isWechat()) { + try { + //@ts-ignore + wx.shareAppMessage({ + title: title, + imageUrl: imageUrl, + query: query, + }); + } + catch (err) { + console.log("share faild: " + err); + } + } + if (isBytedance()) { + //@ts-ignore + tt.shareAppMessage({ + title: title, + desc: description, + imageUrl: imageUrl !== null && imageUrl !== void 0 ? imageUrl : '', + query: query !== null && query !== void 0 ? query : '', + success: function (res) { + console.log('share success:', res); + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + }, + fail: function (res) { + console.log('share fail:', res); + } + }); + } + }; + /** + * 显示提示信息 + * @param title 标题 + * @param duration 时长(单位:秒) + * @returns + */ + API.showToast = function (title, duration) { + if (duration === void 0) { duration = 2; } + if (isWechat()) { + // @ts-ignore + wx.showToast({ + title: title, + icon: 'success', + duration: duration * 1000 + }); + } + if (isBytedance()) { + //@ts-ignore + tt.showToast({ + title: title, + duration: duration * 1000, + success: function (res) { + console.log("" + res); + }, + fail: function (res) { + console.log("showToast\u8C03\u7528\u5931\u8D25"); + }, + }); + } + }; + /** + * 设备震动效果,默认为短震动。注意:可能一些机型不会生效,具体看平台方的说明 + * @param type MiniGameSdk.API.EVirbrateType + */ + API.vibrate = function (type) { + if (type === void 0) { type = EVirbrateType.SHORT; } + if (isWechat()) { + switch (type) { + case EVirbrateType.SHORT: + //@ts-ignore + wx.vibrateShort({ + success: function (res) { + console.log('vibrate success:', res); + }, + fail: function (res) { + console.log('vibrateShort failed', res); + }, + }); + break; + case EVirbrateType.LONG: + //@ts-ignore + wx.vibrateLong({ + success: function (res) { + console.log('vibrate success', res); + }, + fail: function (res) { + console.log("vibrateLong failed", res); + }, + }); + break; + default: + break; + } + } + if (isBytedance()) { + switch (type) { + case EVirbrateType.SHORT: + //@ts-ignore + tt.vibrateShort({ + success: function (res) { + console.log('vibrate success:', res); + }, + fail: function (res) { + console.log('vibrateShort failed', res); + }, + }); + break; + case EVirbrateType.LONG: + //@ts-ignore + tt.vibrateLong({ + success: function (res) { + console.log('vibrate success', res); + }, + fail: function (res) { + console.log("vibrateLong failed", res); + }, + }); + break; + default: + break; + } + } + }; + /** + * 重启小游戏 + */ + API.reboot = function () { + if (isWechat()) { + //@ts-ignore + wx.restartMiniProgram({ + success: function () { + console.log('restart success'); + }, + fail: function () { + console.log('restart failed'); + } + }); + } + if (isBytedance()) { + try { + // @ts-ignore + tt.restartMiniProgramSync(); + } + catch (error) { + console.log("restartMiniProgramSync", error); + } + } + }; + /** + * 退出小游戏 + */ + API.exit = function () { + if (isWechat()) { + //@ts-ignore + wx.exitMiniProgram({ + success: function () { + console.log('exit success'); + }, + fail: function () { + console.log('exit failed'); + } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.exitMiniProgram({ + success: function (res) { + console.log("exit success:", res === null || res === void 0 ? void 0 : res.data); + }, + fail: function (res) { + console.log("exit fail:", res === null || res === void 0 ? void 0 : res.errMsg); + }, + }); + } + }; + /** + * 显示转发按钮。通常在刚进入游戏的时候调用。 + * 主要是打开平台“...”这个按钮里面的分享菜单,一般默认是关闭的,需要调用这个函数打开。可以让用户分享你的游戏入口。 + */ + API.showShareMenu = function () { + if (isWechat()) { + //@ts-ignore + wx.showShareMenu({ + withShareTicket: true, + menus: ['shareAppMessage', 'shareTimeline'], + success: function () { }, + fail: function () { }, + complete: function () { } + }); + } + if (isBytedance()) { + //@ts-ignore + tt.showShareMenu({ + success: function (res) { + console.log("show menu is showing"); + }, + fail: function (err) { + console.log("showShareMenu:", err.errMsg); + }, + complete: function (res) { + console.log("showShareMenu complete"); + }, + }); + } + }; + /** + * 微信小游戏:跳转到另外一款小游戏 + * 抖音小游戏:跳转到指定的视频界面 + * @param targetId 微信小游戏appid或者视频界面 + */ + API.navigateTo = function (targetId, onSuccess) { + if (isWechat()) { + // @ts-ignore + wx.navigateToMiniProgram({ + appId: targetId, + extraData: { + foo: 'bar' + }, + envVersion: 'develop', + success: function (res) { + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.navigateToVideoView({ + videoId: targetId, + success: function (res) { + onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(); + }, + fail: function (err) { + console.log("bytedance navigateToVideoView fail", err); + }, + }); + } + }; + /** + * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session + * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null + */ + API.login = function (callback) { + var loginPlatform = function () { + if (isWechat()) { + //@ts-ignore + wx.login({ + success: function (res) { + if (res.code) { + API._loginCode = res.code; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + } + else { + console.log('login error:', res.errMsg); + } + }, + fail: function () { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log('login fail'); + } + }); + } + else if (isBytedance()) { + //@ts-ignore + tt.login({ + force: true, + success: function (res) { + var _a, _b; + console.log("login " + res.code + " " + res.anonymousCode); + if (res.code) { + API._loginCode = (_a = res.code) === null || _a === void 0 ? void 0 : _a.toString(); + API._loginAnonymousCode = (_b = res.anonymousCode) === null || _b === void 0 ? void 0 : _b.toString(); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + } + else { + console.log('login error:', res.errMsg); + } + }, + fail: function (res) { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log("login fail", res); + }, + }); + } + else { + API._loginCode = null; + API._loginAnonymousCode = null; + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + console.log('not mini game platform, login codes are all null'); + } + }; + if (!API._loginCode) { + loginPlatform(); + } + else { + if (isWechat()) { + //@ts-ignore + wx.checkSession({ + success: function () { + console.log("session is valid, use current code:", API._loginCode); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + }, + fail: function () { + console.log("session expired"); + loginPlatform(); + } + }); + } + else if (isBytedance()) { + //@ts-ignore + tt.checkSession({ + success: function () { + console.log("session is valid, user current code: " + API._loginCode + ", " + API._loginAnonymousCode); + callback === null || callback === void 0 ? void 0 : callback(API._loginCode, API._loginAnonymousCode); + }, + fail: function () { + console.log("session expired"); + loginPlatform(); + }, + }); + } + else { + console.log('not mini game platform, login null'); + callback === null || callback === void 0 ? void 0 : callback(null, null); + } + } + }; + /** + * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session + * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null + */ + API.getUserInfo = function (callback) { + //@ts-ignore + tt.getUserInfo({ + withCredentials: true, + success: function (res) { + API._userInfo = res; + callback(API._userInfo); + }, + fail: function (err) { + callback(err); + } + }); + }; + /** + * 调用微信云函数。由于参数需要自定义,所以为any,需要自行解释。函数只完成通道和处理一场的作用 + * @param callback 返回云函数调用结果。需要检查返回参数是否为空,失败的时候为空 + * @param name 云函数的名字 + * @param data 云函数的内容 + */ + API.callWechatCloudFunction = function (callback, name, data) { + if (!isWechat()) { + console.log('Not wechat platform, not support callWechatCloudFunction'); + return; + } + this.login(function (code, anonymousCode) { + if (!API._hasInitWechatCloudFunction) { + //@ts-ignore + wx.cloud.init(); + API._hasInitWechatCloudFunction = true; + } + //@ts-ignore + wx.cloud.callFunction({ + name: name, + data: data, + success: function (res) { return callback === null || callback === void 0 ? void 0 : callback(res); }, + fail: function (err) { + console.log('wechat cloud function error:', err); + callback === null || callback === void 0 ? void 0 : callback(null); + } + }); + }); + }; + /** + * 存储用户信息,数据量不能大。可以考虑用于分数排行榜。用户之间可共享排行数据。 + * @param key + * @param value + */ + API.setUserCloudStorage = function (key, value) { + if (isWechat()) { + // @ts-ignore + wx.setUserCloudStorage({ + KVDataList: [{ key: key, value: value }], + success: function () { return console.log("set cloud storage success:" + key + ", value:" + value); }, + fail: function (err) { return console.log('set cloud storage error:', err); } + }); + } + if (isBytedance()) { + // @ts-ignore + tt.setUserCloudStorage({ + KVDataList: [{ key: key, value: value, }], + success: function () { return console.log("set cloud storage success:" + key + ", value:" + value); }, + fail: function (err) { return console.log('set cloud storage error:', err); } + }); + } + }; + API._loginCode = null; + API._loginAnonymousCode = null; + API._hasInitWechatCloudFunction = false; + API._userInfo = null; + return API; + }()); + MiniGameSdk.API = API; + /** + * 抖音侧边栏专属接口 + */ + var BytedanceSidebar = /** @class */ (function () { + function BytedanceSidebar() { + } + /** + * 本游戏在抖音环境下启动监控,需要放在全局环境中,保证能第一时间启动。因为可能监听抖音失败(抖音小游戏官方的说明)! + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + */ + BytedanceSidebar.listenFromSidebar = function (onResult, target) { + if (!isBytedance()) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + // @ts-ignore + tt.onShow(function (res) { + console.log('onShow launch res:', res); + if (res.scene === '021036') { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + console.log('launch from sidebar'); + } + else { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + console.log('NOT launch from douyin sidebar!'); + } + }); + // @ts-ignore + var options = tt.getLaunchOptionsSync(); + if (options && options.scene === '021036') { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + } + }; + /** + * 检测抖音侧边栏是否存在 + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + * @returns + */ + BytedanceSidebar.checkSideBar = function (onResult, target) { + if (!isBytedance()) { + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + //@ts-ignore + tt.checkScene({ + scene: "sidebar", + success: function (res) { + console.log("check scene success: ", res.isExist); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, res.isExist); + }, + fail: function (res) { + console.log("check scene fail:", res); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + } + }); + }; + /** + * 跳转到抖音侧边栏 + * @param onResult 包含一个boolean参数的函数 + * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。 + * @returns + */ + BytedanceSidebar.navigateToSidebar = function (onResult, target) { + if (!isBytedance()) { + console.log("not douyin platform!"); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + return; + } + // @ts-ignore + tt.navigateToScene({ + scene: "sidebar", + success: function () { + console.log("navigate success"); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, true); + }, + fail: function (res) { + console.log("navigate failed reason:", res); + onResult === null || onResult === void 0 ? void 0 : onResult.call(target, false); + }, + }); + }; + return BytedanceSidebar; + }()); + MiniGameSdk.BytedanceSidebar = BytedanceSidebar; +})(MiniGameSdk = exports.MiniGameSdk || (exports.MiniGameSdk = {})); + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js.map b/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js.map new file mode 100644 index 0000000..8b1f333 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/Sdk/MiniGameSdk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\Sdk\\MiniGameSdk.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["/**\r\n * 小游戏平台SDK工具封装,目前只支持微信和抖音平台\r\n */\r\nexport namespace MiniGameSdk {\r\n\r\n interface ISize {\r\n width: number;\r\n height: number;\r\n }\r\n\r\n export interface IPosition {\r\n top: number;\r\n left: number;\r\n }\r\n\r\n export function isWechat(): boolean {\r\n //@ts-ignore\r\n return window.wx !== null && window.wx !== undefined;\r\n }\r\n\r\n export function isBytedance(): boolean {\r\n //@ts-ignore\r\n return window.tt !== null && window.tt !== undefined;\r\n }\r\n\r\n\r\n function getSysWinSize(): ISize {\r\n let sys: any;\r\n if (isWechat()) {\r\n // @ts-ignore\r\n sys = wx.getSystemInfoSync();\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n sys = tt.getSystemInfoSync();\r\n }\r\n\r\n let size: ISize = { width: 0, height: 0 };\r\n if (sys) {\r\n size.width = sys.windowWidth;\r\n size.height = sys.windowHeight;\r\n }\r\n\r\n return size;\r\n }\r\n\r\n /**\r\n * 插屏广告。微信抖音都支持!\r\n */\r\n class ADInterstitial {\r\n private _adUid: string;\r\n private _interstitial: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n constructor(adUid: string) {\r\n this._adUid = adUid;\r\n }\r\n\r\n show() {\r\n // @ts-ignore\r\n if (isWechat() && !wx.createInterstitialAd) {\r\n console.warn('wechat unsupport interstitial AD!');\r\n this._interstitial = null;\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n if (isBytedance() && !tt.createInterstitialAd) {\r\n console.warn('bytedance unsupport interstitial AD!');\r\n this._interstitial = null;\r\n return;\r\n }\r\n\r\n\r\n if (this._interstitial) {\r\n this._interstitial.load();\r\n } else {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._interstitial = wx.createInterstitialAd({ adUnitId: this._adUid });\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._interstitial = tt.createInterstitialAd({ adUnitId: this._adUid });\r\n } else {\r\n this._interstitial = null;\r\n }\r\n\r\n this._interstitial?.onLoad(() => {\r\n console.log('load interstitial ad success');\r\n this._interstitial.show().catch((err: any) => {\r\n console.log('catch interstitial ad error:', err);\r\n });\r\n });\r\n\r\n this._interstitial?.onError((err: any) => {\r\n console.log('interstitial ad on error:', err);\r\n });\r\n }\r\n }\r\n destory() {\r\n this._interstitial?.destroy();\r\n }\r\n }\r\n\r\n class ADBanner {\r\n private _adUid: string;\r\n private _banner: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n /**\r\n * 抖音和微信都支持\r\n * 横幅广告。预估宽度默认为300,预估高度为140。如果你不确定就按默认值来。\r\n * @param adUid 广告UID,后端配置\r\n * @param isTop 是否在屏幕顶部展示。内部会自动居中计算位置。\r\n * @param bannerWidth 横幅广告的预估宽度。默认300\r\n * @param autoShow 广告加载完成后是否立刻显示,默认为不显示\r\n */\r\n constructor(adUid: string, param: boolean | IPosition, bannerWidth: number = 300, autoShow: boolean = false) {\r\n this._adUid = adUid;\r\n this.create(autoShow, bannerWidth, param); // 默认300比较合适\r\n }\r\n\r\n private create(autoShow: boolean, bannerWidth: number, param: boolean | IPosition) {\r\n if (!isWechat() && !isBytedance()) {\r\n this._banner = null;\r\n return;\r\n }\r\n\r\n this.destroy();\r\n\r\n let winSize = getSysWinSize();\r\n\r\n let height = bannerWidth * 0.4;\r\n let top = 0, left = 0;\r\n\r\n if (typeof param === \"boolean\") {\r\n left = (winSize.width - bannerWidth) / 2\r\n top = param ? 5 : (winSize.height - height);\r\n } else {\r\n left = param.left;\r\n top = param.top;\r\n }\r\n\r\n let params = {\r\n adUnitId: this._adUid,\r\n adIntervals: 30,// 自动刷新频率不能小于30秒\r\n style: { left: left, top: top, width: bannerWidth }\r\n }\r\n\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._banner = wx.createBannerAd(params);\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._banner = tt.createBannerAd(params);\r\n } else {\r\n this._banner = null;\r\n }\r\n\r\n this._banner?.onError((err: any) => {\r\n console.log('ad banner error:', err);\r\n });\r\n\r\n this._banner?.onLoad(() => {\r\n autoShow && this._banner.show();\r\n });\r\n }\r\n\r\n show() {\r\n this._banner?.show();\r\n }\r\n\r\n hide() {\r\n this._banner?.hide();\r\n }\r\n\r\n destroy() {\r\n this._banner?.destroy();\r\n }\r\n }\r\n\r\n class ADCustom {\r\n private _adUid: string;\r\n private _adCustom: any;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n /**\r\n * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持!\r\n * @param adUid 广告UID,后端配置\r\n * @param top 从左上角开始,距离屏幕顶部的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。\r\n * @param left 从左上角开始,距离屏幕最左边的距离。注意:这个数据为设备屏幕宽度width。如果需要获取屏幕的像素,需要乘以设备像素比Pixel-Ratio,例如iPhone 13 Pro的Pixel-Ratio为3,像素为Width*3。\r\n * @param scale 原生模板广告的尺寸,默认为1,即100%。此值在微信服务后端广告中获得,默认为100%,目前有100%,90%,80%三种,一般情况不用修改。若有修改,记得传入值,例如90%就传入0.9。\r\n */\r\n constructor(adUid: string, top: number = 0, left: number = 0, scale: number = 1.0) {\r\n this._adUid = adUid;\r\n this.createCustomAd(top, left, scale);\r\n }\r\n\r\n private createCustomAd(top: number, left: number, scale: number) {\r\n if (!isWechat()) { // only wechat support custom ad\r\n this._adCustom = null;\r\n console.log('Only wechat support Custom Ad');\r\n return;\r\n }\r\n\r\n this.destroy();\r\n // 原生模板5个应用宽度为375,若设置了缩放比例,则宽度也需要设置\r\n // let width = 375 * this._scale;\r\n // let newLeft = (sys.windowWidth - width) / 2;\r\n // let newTop = sys.windowHeight / 2; // 120是预估高度\r\n\r\n // @ts-ignore\r\n this._adCustom = wx.createCustomAd({\r\n adUnitId: this._adUid,\r\n style: { left: left, top: top, fixed: true }\r\n });\r\n\r\n this._adCustom?.onError((err: any) => {\r\n console.log('ad custom error:', err);\r\n });\r\n }\r\n show() {\r\n this._adCustom?.show();\r\n }\r\n\r\n hide() {\r\n this._adCustom?.hide();\r\n }\r\n\r\n destroy() {\r\n this._adCustom?.destroy();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 视频广告用户点击行为结果\r\n */\r\n export enum EAdVideoResult {\r\n /**\r\n * 用户看完了广告,游戏可发放奖励。\r\n */\r\n ACCEPT,\r\n\r\n /**\r\n * 用户中途关闭了广告,即未看完状态。不可发放奖励。\r\n */\r\n REJECT,\r\n\r\n /**\r\n * 广告组件内部发生了错误。不可发放奖励。\r\n */\r\n ERROR,\r\n }\r\n\r\n class ADVideo {\r\n private _adUid: string;\r\n private _adVideo: any = null;\r\n\r\n get aduid() {\r\n return this._adUid;\r\n }\r\n\r\n constructor(adUid: string) {\r\n this._adUid = adUid;\r\n }\r\n\r\n /**\r\n * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount\r\n * @param onResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。\r\n * @param target onResult的拥有者\r\n * @param maxVideoCount 可以连续看最大视频个数,可最大化商业效率。默认为3个。\r\n * @returns \r\n */\r\n show(onResult: (res: EAdVideoResult, count: number) => void, target?: any, maxVideoCount: number = 3): void {\r\n let callback = (state: EAdVideoResult, count: number) => {\r\n onResult?.call(target, state, count);\r\n }\r\n\r\n if (!isWechat() && !isBytedance()) {\r\n callback(EAdVideoResult.ACCEPT, 1);\r\n this._adVideo = null;\r\n return;\r\n }\r\n\r\n let onAdVideoClosed = (res: any) => {\r\n this._adVideo?.offClose(onAdVideoClosed);\r\n if (isWechat()) {\r\n if (res && res.isEnded || res === undefined) {\r\n callback(EAdVideoResult.ACCEPT, 1);\r\n } else {\r\n callback(EAdVideoResult.REJECT, 0);\r\n }\r\n } else if (isBytedance()) {\r\n let resConverted = res as { isEnded: boolean, count: number };\r\n if (resConverted && resConverted.count > 0) {\r\n callback(EAdVideoResult.ACCEPT, resConverted.count);\r\n } else {\r\n callback(EAdVideoResult.REJECT, 0);\r\n }\r\n }\r\n }\r\n\r\n this._adVideo?.offClose(onAdVideoClosed);\r\n\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._adVideo = wx.createRewardedVideoAd({\r\n adUnitId: this._adUid\r\n });\r\n } else if (isBytedance()) {\r\n // @ts-ignore\r\n this._adVideo = tt.createRewardedVideoAd({\r\n adUnitId: this._adUid,\r\n multiton: true,\r\n multitonRewardMsg: ['多1次奖励', '再多一次奖励', '再多一次奖励'],\r\n multitonRewardTimes: maxVideoCount,\r\n });\r\n } else {\r\n this._adVideo = null;\r\n }\r\n\r\n\r\n this._adVideo?.onLoad(() => {\r\n console.log('Ad load success');\r\n });\r\n\r\n this._adVideo?.onError((err: { errMsg: string, errCode: number }) => {\r\n console.log('Ad video error:', err);\r\n callback(EAdVideoResult.ERROR, 0);\r\n });\r\n\r\n this._adVideo?.onClose(onAdVideoClosed);\r\n\r\n this._adVideo?.show().catch(() => {\r\n this._adVideo?.load().then(() =>\r\n this._adVideo?.show()).catch((err: { errMsg: string, errCode: number }) => {\r\n console.log('Catch video ad error:', err);\r\n callback(EAdVideoResult.ERROR, 0);\r\n });\r\n });\r\n }\r\n\r\n destory() {\r\n this._adVideo?.destory();\r\n }\r\n }\r\n\r\n export enum EAdBannerLocation {\r\n /**\r\n * 屏幕顶部\r\n */\r\n TOP,\r\n\r\n /**\r\n * 屏幕底部\r\n */\r\n BOTTOM,\r\n }\r\n\r\n export class AdvertManager {\r\n\r\n private static _instance: AdvertManager;\r\n\r\n static get instance(): AdvertManager {\r\n if (!AdvertManager._instance) {\r\n AdvertManager._instance = new AdvertManager();\r\n }\r\n return AdvertManager._instance;\r\n }\r\n\r\n private _video: ADVideo;\r\n private _interstitial: ADInterstitial;\r\n private _banner: ADBanner;\r\n private _customs: Record = {};\r\n\r\n private constructor() {\r\n\r\n }\r\n\r\n /**\r\n * 预加载横幅广告,不会显示。只有你在调用showBanner时才会显示。\r\n * 可重复调用,但是会销毁上一次的实例。一般情况,全局有一个就行了,太多占用内存,而且没必要。\r\n * @param adUid 广告UID\r\n * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置\r\n * @param scale 默认为跟屏幕一样的宽度,可以通过设置缩放比例来调整大小。当然,平台有规定最大或最小宽度,函数内部会自动计算。\r\n */\r\n public loadBanner(adUid: string, location: EAdBannerLocation | IPosition = EAdBannerLocation.TOP, scale: number = 1.0) {\r\n this._banner?.destroy();\r\n let size: ISize = getSysWinSize();\r\n // 当 style.width 小于 300 时,会取作 300。 当 style.width 大于屏幕宽度时,会取作屏幕宽度。\r\n let width = size.width * scale;\r\n width = width < 300 ? 300 : width; // 最小值矫正\r\n width = width > size.width ? size.width : width; //最大值矫正\r\n this._banner = typeof location === 'number' ? new ADBanner(adUid, location === EAdBannerLocation.TOP, width, false) : new ADBanner(adUid, location, width, false);\r\n }\r\n\r\n /**\r\n * 显示横幅广告\r\n */\r\n public showBanner() {\r\n if (this._banner) {\r\n this._banner.show();\r\n } else {\r\n console.warn('MiniGameSDK: banner is null, you must call loadBanner(...) first!');\r\n }\r\n }\r\n\r\n /**\r\n * 隐藏横幅广告\r\n */\r\n public hideBanner() {\r\n this._banner?.hide();\r\n }\r\n\r\n /**\r\n * 弹出插屏广告\r\n * @param adUid 广告单元id\r\n */\r\n public showInterstitial(adUid: string) {\r\n if (this._interstitial && this._interstitial.aduid === adUid) {\r\n this._interstitial.show();\r\n } else {\r\n this._interstitial?.destory();\r\n this._interstitial = new ADInterstitial(adUid);\r\n this._interstitial.show();\r\n }\r\n }\r\n\r\n /**\r\n * 加载原生模板广告,不会显示。只有你在调用showCustom时才会显示。\r\n * 由于原生模板广告在微信服务后端可以定制宽度大小,个数,缩放比例等,所以位置调整要根据设置的宽度来定。抖音不支持本函数,会调用无效!\r\n * @param adUid 广告ID\r\n * @param location 位置有两种情况:1、可以传入枚举值,默认上方; 2、可以自定义位置传入IPosition,注意IPosition中的top和left跟平台的top,left是一致(没有乘以设备像素比ratio),需要开发者自己调试位置\r\n * @param scale 缩放比例,默认是1,即不缩放。这个缩放并不是自己填,而是根据微信MP后台你配置的原生模板广告的缩放比例填,目前有100%,90%,80%三种,一般情况不用修改。若有后台修改,记得传入值,例如90%就传入0.9。\r\n */\r\n public loadCustom(adUid: string, location: IPosition = { top: 0, left: 0 }, scale: number = 1) {\r\n // this._custom?.destroy();\r\n // this._custom = new ADCustom(adUid, location.top, location.left, scale);\r\n if (this._customs[adUid]) {\r\n console.log(`${adUid} has been loaded.`);\r\n return;\r\n }\r\n\r\n this._customs[adUid] = new ADCustom(adUid, location.top, location.left, scale);\r\n }\r\n\r\n /**\r\n * 显示自定义广告。\r\n * @param adUid 广告的唯一标识符。使用此标识符来查找和显示特定的自定义广告。\r\n * \r\n * 此方法尝试根据提供的adUid显示一个自定义广告。如果给定的adUid对应的自定义广告已加载,\r\n * 则调用该广告的显示方法。如果广告未加载,则在控制台输出警告信息。\r\n */\r\n public showCustom(adUid: string) {\r\n if (this._customs[adUid]) {\r\n this._customs[adUid].show();\r\n } else {\r\n console.warn(`You have not load ${adUid} of Custom AD, can not show!`);\r\n }\r\n }\r\n\r\n /**\r\n * 隐藏指定的自定义广告单元\r\n * \r\n * 此方法用于隐藏通过广告单元标识符(adUid)指定的自定义广告。如果指定的广告单元已加载并显示,\r\n * 则将其隐藏;如果广告单元未加载,则在控制台输出警告信息。\r\n * \r\n * @param adUid 广告单元标识符,用于唯一标识一个自定义广告单元。\r\n */\r\n public hideCustom(adUid: string) {\r\n if (this._customs[adUid]) {\r\n this._customs[adUid].hide();\r\n } else {\r\n console.warn(`You have not load ${adUid} of Custom AD, can not hide!`);\r\n }\r\n }\r\n\r\n /**\r\n * 由于微信和抖音视频广告机制不同,微信可以看的视频广告个数只有0和1个,抖音平台则可以看0~maxVideoCount\r\n * @param adUid 广告ID。如果与上一次UID不同,则内部会重新创建实例。开发者完全不用关心这个细节。\r\n * @param onVideoResult 两个参数:第一个res是EAdVideoResult定义,第二count是用户看了多少个视频广告。 \r\n * @param target onVideoResult的拥有者\r\n * @param maxVideoCount 最大视频个数。默认是3,仅对抖音平台生效。微信平台看完视频count的结果永远是1或0\r\n */\r\n public showVideo(adUid: string, onVideoResult: (res: EAdVideoResult, count: number) => void, target?: any, maxVideoCount: number = 3) {\r\n if (this._video && this._video.aduid === adUid) {\r\n this._video.show(onVideoResult, target, maxVideoCount);\r\n } else {\r\n this._video?.destory();\r\n this._video = new ADVideo(adUid);\r\n this._video.show(onVideoResult, target, maxVideoCount);\r\n }\r\n }\r\n\r\n /**\r\n * 销毁内部所有实例,清空内存\r\n */\r\n public destroyAll() {\r\n this._banner?.destroy();\r\n this._banner = null;\r\n\r\n this._interstitial?.destory();\r\n this._interstitial = null;\r\n\r\n this._video?.destory();\r\n this._video = null;\r\n\r\n if (this._customs) {\r\n for (let val in this._customs) {\r\n this._customs[val]?.destroy();\r\n }\r\n this._customs = {};\r\n }\r\n }\r\n }\r\n\r\n export enum EGameClubIcon {\r\n /** 绿色图标 */\r\n GREEN = 'green',\r\n\r\n /** 红色图标 */\r\n WHITE = 'white',\r\n\r\n /** 有黑色圆角背景的白色图标 */\r\n DARK = 'dark',\r\n\r\n /** 有白色圆角背景的绿色图标 */\r\n LIGHT = 'light'\r\n }\r\n\r\n export class GameClub {\r\n private static _instance: GameClub;\r\n\r\n static get instance(): GameClub {\r\n if (!this._instance) {\r\n this._instance = new GameClub();\r\n }\r\n return this._instance;\r\n }\r\n\r\n private _club: any;\r\n\r\n private constructor() {\r\n\r\n }\r\n\r\n /**\r\n * 创建游戏圈按钮\r\n * @param icon \r\n * @param position \r\n * @param size \r\n * @param openLink \r\n */\r\n create(icon: EGameClubIcon = EGameClubIcon.GREEN, position: IPosition = { top: 0, left: 0 }, size: ISize = { width: 40, height: 40 }, openLink?: string) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n this._club = wx.createGameClubButton({\r\n icon: icon,\r\n style: {\r\n left: position.left,\r\n top: position.top,\r\n width: size.width,\r\n height: size.height\r\n },\r\n openlink: openLink\r\n });\r\n }\r\n }\r\n\r\n show() {\r\n this._club?.show();\r\n }\r\n\r\n hide() {\r\n this._club?.hide();\r\n }\r\n\r\n destory() {\r\n this._club?.destroy();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 振动类型\r\n */\r\n export enum EVirbrateType {\r\n /**\r\n * 短振动\r\n */\r\n SHORT,\r\n\r\n /**\r\n * 长振动\r\n */\r\n LONG\r\n }\r\n\r\n /**\r\n * 平台常用API合集\r\n */\r\n export class API {\r\n private static _loginCode: string = null;\r\n private static _loginAnonymousCode: string = null;\r\n private static _hasInitWechatCloudFunction: boolean = false;\r\n private static _userInfo: any = null;\r\n\r\n /**\r\n * 分享app给朋友,微信小游戏分享是没有onSuccess回调的。\r\n * @param title 标题\r\n * @param description 细节描述信息 \r\n * @param imageUrl 图片地址\r\n * @param query 查询信息\r\n * @param onSuccess 抖音会回调,微信不会回调\r\n */\r\n static shareAppToFriends(title: string, description: string = '', imageUrl?: string, query?: string, onSuccess?: () => void) {\r\n if (isWechat()) {\r\n try {\r\n //@ts-ignore\r\n wx.shareAppMessage({\r\n title: title,\r\n imageUrl: imageUrl,\r\n query: query,\r\n });\r\n } catch (err) {\r\n console.log(`share faild: ${err}`);\r\n }\r\n }\r\n\r\n if (isBytedance()) {\r\n //@ts-ignore\r\n tt.shareAppMessage({\r\n title: title,\r\n desc: description,\r\n imageUrl: imageUrl ?? '',\r\n query: query ?? '',\r\n success(res: any) {\r\n console.log('share success:', res);\r\n onSuccess?.();\r\n },\r\n fail(res: any) {\r\n console.log('share fail:', res);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 显示提示信息\r\n * @param title 标题\r\n * @param duration 时长(单位:秒)\r\n * @returns \r\n */\r\n static showToast(title: string, duration: number = 2) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.showToast({\r\n title: title,\r\n icon: 'success',\r\n duration: duration * 1000\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n //@ts-ignore\r\n tt.showToast({\r\n title: title,\r\n duration: duration * 1000,\r\n success(res: any) {\r\n console.log(`${res}`);\r\n },\r\n fail(res: any) {\r\n console.log(`showToast调用失败`);\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 设备震动效果,默认为短震动。注意:可能一些机型不会生效,具体看平台方的说明\r\n * @param type MiniGameSdk.API.EVirbrateType\r\n */\r\n static vibrate(type: EVirbrateType = EVirbrateType.SHORT) {\r\n if (isWechat()) {\r\n switch (type) {\r\n case EVirbrateType.SHORT:\r\n //@ts-ignore\r\n wx.vibrateShort({\r\n success(res: any) {\r\n console.log('vibrate success:', res);\r\n },\r\n fail(res: any) {\r\n console.log('vibrateShort failed', res);\r\n },\r\n });\r\n break;\r\n case EVirbrateType.LONG:\r\n //@ts-ignore\r\n wx.vibrateLong({\r\n success(res: any) {\r\n console.log('vibrate success', res);\r\n },\r\n fail(res: any) {\r\n console.log(`vibrateLong failed`, res);\r\n },\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n if (isBytedance()) {\r\n switch (type) {\r\n case EVirbrateType.SHORT:\r\n //@ts-ignore\r\n tt.vibrateShort({\r\n success(res: any) {\r\n console.log('vibrate success:', res);\r\n },\r\n fail(res: any) {\r\n console.log('vibrateShort failed', res);\r\n },\r\n });\r\n break;\r\n case EVirbrateType.LONG:\r\n //@ts-ignore\r\n tt.vibrateLong({\r\n success(res: any) {\r\n console.log('vibrate success', res);\r\n },\r\n fail(res: any) {\r\n console.log(`vibrateLong failed`, res);\r\n },\r\n });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 重启小游戏\r\n */\r\n static reboot() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.restartMiniProgram({\r\n success: () => {\r\n console.log('restart success');\r\n },\r\n\r\n fail: () => {\r\n console.log('restart failed');\r\n }\r\n })\r\n }\r\n\r\n if (isBytedance()) {\r\n try {\r\n // @ts-ignore\r\n tt.restartMiniProgramSync();\r\n } catch (error) {\r\n console.log(`restartMiniProgramSync`, error);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 退出小游戏\r\n */\r\n static exit() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.exitMiniProgram({\r\n success: () => {\r\n console.log('exit success');\r\n },\r\n fail: () => {\r\n console.log('exit failed');\r\n }\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.exitMiniProgram({\r\n success(res: any) {\r\n console.log(\"exit success:\", res?.data);\r\n },\r\n fail(res: any) {\r\n console.log(\"exit fail:\", res?.errMsg);\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 显示转发按钮。通常在刚进入游戏的时候调用。\r\n * 主要是打开平台“...”这个按钮里面的分享菜单,一般默认是关闭的,需要调用这个函数打开。可以让用户分享你的游戏入口。\r\n */\r\n static showShareMenu() {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.showShareMenu({\r\n withShareTicket: true,\r\n menus: ['shareAppMessage', 'shareTimeline'],\r\n success: () => { },\r\n fail: () => { },\r\n complete: () => { }\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n //@ts-ignore\r\n tt.showShareMenu({\r\n success(res: any) {\r\n console.log(\"show menu is showing\");\r\n },\r\n fail(err: any) {\r\n console.log(\"showShareMenu:\", err.errMsg);\r\n },\r\n complete(res: any) {\r\n console.log(\"showShareMenu complete\");\r\n },\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * 微信小游戏:跳转到另外一款小游戏\r\n * 抖音小游戏:跳转到指定的视频界面\r\n * @param targetId 微信小游戏appid或者视频界面\r\n */\r\n static navigateTo(targetId: string, onSuccess?: () => void) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.navigateToMiniProgram({\r\n appId: targetId,\r\n extraData: {\r\n foo: 'bar'\r\n },\r\n envVersion: 'develop',\r\n success(res: any) {\r\n onSuccess?.();\r\n }\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.navigateToVideoView({\r\n videoId: targetId,\r\n success: (res: any) => {\r\n onSuccess?.();\r\n },\r\n fail: (err: any) => {\r\n console.log(\"bytedance navigateToVideoView fail\", err);\r\n },\r\n });\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session\r\n * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null\r\n */\r\n static login(callback: (code: string, anonymousCode: string) => void) {\r\n let loginPlatform = () => {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.login({\r\n success: (res: { code: any; errMsg: any; }) => {\r\n if (res.code) {\r\n API._loginCode = res.code;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n } else {\r\n console.log('login error:', res.errMsg)\r\n }\r\n },\r\n\r\n fail: () => {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log('login fail')\r\n }\r\n });\r\n } else if (isBytedance()) {\r\n //@ts-ignore\r\n tt.login({\r\n force: true,\r\n success(res: any) {\r\n console.log(`login ${res.code} ${res.anonymousCode}`);\r\n if (res.code) {\r\n API._loginCode = res.code?.toString();\r\n API._loginAnonymousCode = res.anonymousCode?.toString();\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n } else {\r\n console.log('login error:', res.errMsg)\r\n }\r\n },\r\n fail(res: any) {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log(`login fail`, res);\r\n },\r\n });\r\n } else {\r\n API._loginCode = null;\r\n API._loginAnonymousCode = null;\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n console.log('not mini game platform, login codes are all null');\r\n }\r\n }\r\n\r\n\r\n\r\n if (!API._loginCode) {\r\n loginPlatform();\r\n } else {\r\n if (isWechat()) {\r\n //@ts-ignore\r\n wx.checkSession({\r\n success() {\r\n console.log(`session is valid, use current code:`, API._loginCode);\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n },\r\n fail() {\r\n console.log(`session expired`);\r\n loginPlatform();\r\n }\r\n });\r\n } else if (isBytedance()) {\r\n //@ts-ignore\r\n tt.checkSession({\r\n success() {\r\n console.log(`session is valid, user current code: ${API._loginCode}, ${API._loginAnonymousCode}`);\r\n callback?.(API._loginCode, API._loginAnonymousCode);\r\n },\r\n fail() {\r\n console.log(`session expired`);\r\n loginPlatform();\r\n },\r\n });\r\n\r\n } else {\r\n console.log('not mini game platform, login null');\r\n callback?.(null, null);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 小游戏平台登录功能。微信返回code,抖音返回code和anonymousCode。用于登录的凭证,需要把这个code传回你的服务器程序中去调用code2Session\r\n * @param callback (code, anonymousCode) 第一个参数为code,微信和抖音都支持;第二个参数为匿名设备ID,仅抖音支持,失败都返回null\r\n */\r\n static getUserInfo(callback: (userInfo: any) => void) {\r\n //@ts-ignore\r\n tt.getUserInfo({\r\n withCredentials: true,\r\n success: (res: any) => {\r\n API._userInfo = res;\r\n callback(API._userInfo);\r\n },\r\n fail: (err: any) =>{\r\n callback(err);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 调用微信云函数。由于参数需要自定义,所以为any,需要自行解释。函数只完成通道和处理一场的作用\r\n * @param callback 返回云函数调用结果。需要检查返回参数是否为空,失败的时候为空\r\n * @param name 云函数的名字\r\n * @param data 云函数的内容\r\n */\r\n static callWechatCloudFunction(callback: (res: any) => void, name: string, data: {}) {\r\n if (!isWechat()) {\r\n console.log('Not wechat platform, not support callWechatCloudFunction');\r\n return;\r\n }\r\n\r\n this.login((code: string, anonymousCode: string) => {\r\n if (!API._hasInitWechatCloudFunction) {\r\n //@ts-ignore\r\n wx.cloud.init();\r\n API._hasInitWechatCloudFunction = true;\r\n }\r\n //@ts-ignore\r\n wx.cloud.callFunction({\r\n name: name,\r\n data: data,\r\n success: (res: any) => callback?.(res),\r\n fail: (err: any) => {\r\n console.log('wechat cloud function error:', err);\r\n callback?.(null);\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * 存储用户信息,数据量不能大。可以考虑用于分数排行榜。用户之间可共享排行数据。\r\n * @param key \r\n * @param value \r\n */\r\n static setUserCloudStorage(key: string, value: string) {\r\n if (isWechat()) {\r\n // @ts-ignore\r\n wx.setUserCloudStorage({\r\n KVDataList: [{ key: key, value: value }],\r\n success: () => console.log(`set cloud storage success:${key}, value:${value}`),\r\n fail: (err: any) => console.log('set cloud storage error:', err)\r\n });\r\n }\r\n\r\n if (isBytedance()) {\r\n // @ts-ignore\r\n tt.setUserCloudStorage({\r\n KVDataList: [{ key: key, value: value, }],\r\n success: () => console.log(`set cloud storage success:${key}, value:${value}`),\r\n fail: (err: any) => console.log('set cloud storage error:', err)\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 抖音侧边栏专属接口\r\n */\r\n export class BytedanceSidebar {\r\n /**\r\n * 本游戏在抖音环境下启动监控,需要放在全局环境中,保证能第一时间启动。因为可能监听抖音失败(抖音小游戏官方的说明)!\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n */\r\n static listenFromSidebar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n // @ts-ignore\r\n tt.onShow((res: any) => {\r\n console.log('onShow launch res:', res);\r\n if (res.scene === '021036') {\r\n onResult?.call(target, true);\r\n console.log('launch from sidebar');\r\n } else {\r\n onResult?.call(target, false);\r\n console.log('NOT launch from douyin sidebar!');\r\n }\r\n });\r\n\r\n // @ts-ignore\r\n let options = tt.getLaunchOptionsSync();\r\n if (options && options.scene === '021036') {\r\n onResult?.call(target, true);\r\n }\r\n }\r\n\r\n /**\r\n * 检测抖音侧边栏是否存在\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n * @returns \r\n */\r\n static checkSideBar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n\r\n //@ts-ignore\r\n tt.checkScene({\r\n scene: \"sidebar\",\r\n success: (res: any) => {\r\n console.log(\"check scene success: \", res.isExist);\r\n onResult?.call(target, res.isExist);\r\n\r\n },\r\n fail: (res: any) => {\r\n console.log(\"check scene fail:\", res);\r\n onResult?.call(target, false);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * 跳转到抖音侧边栏\r\n * @param onResult 包含一个boolean参数的函数\r\n * @param target 上述函数的拥有者,如果是类的成员函数,需要传入this。普通或匿名函数忽略即可。\r\n * @returns \r\n */\r\n static navigateToSidebar(onResult: (success: boolean) => void, target?: any) {\r\n if (!isBytedance()) {\r\n console.log(\"not douyin platform!\");\r\n onResult?.call(target, false);\r\n return;\r\n }\r\n\r\n // @ts-ignore\r\n tt.navigateToScene({\r\n scene: \"sidebar\",\r\n success: () => {\r\n console.log(\"navigate success\");\r\n onResult?.call(target, true);\r\n },\r\n fail: (res: any) => {\r\n console.log(\"navigate failed reason:\", res);\r\n onResult?.call(target, false);\r\n },\r\n });\r\n }\r\n }\r\n\r\n}"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js b/temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js new file mode 100644 index 0000000..62cbc32 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js @@ -0,0 +1,281 @@ +"use strict"; +cc._RF.push(module, 'c5692vnhwNF5J9nI7VNKQNW', 'GameConfig'); +// Script/module/Config/GameConfig.ts + +"use strict"; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GameConfig = void 0; +var share_1 = require("../Share/share"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var GameConfig = /** @class */ (function () { + function GameConfig() { + } + GameConfig_1 = GameConfig; + Object.defineProperty(GameConfig, "Instance", { + // static LEVEL_INFO: { + // id: string; //地图ID + // start: string[][]; //起始状态 + // goal: string[][]; //目标状态 + // middle: string[][][]; //中间状态 + // steps: number; //最大步数 + // }[]; + //游戏内信息 + get: function () { + if (this._instance == null) { + this._instance = new GameConfig_1(); + } + return this._instance; + }, + enumerable: false, + configurable: true + }); + //getSeedRandom + GameConfig.init = function (Authentication) { + this.CLICK_init(); + this.LEVEL_INFO_init(); + this.GM_INFO_init(); + var self = this; + //GAME_DATA 废弃了,暂时不删除以防后面修改回 一整局传一次 + this.GAME_DATA = []; + share_1.WeChat.setShare(location.href); + if (!Authentication) + self.Authentication(); + }; + //数据备用 + GameConfig.GM_INFO_init = function () { + this.GM_INFO = { + isCustom: false, + mean_Time: 0, + total: 0, + currSeed: 200000, + gameId: "100019", + userId: 0, + guide: true, + url: "https://api.sparkus.cn", + success: false, + matchId: null, + custom: 0, + round: 0, + level: 0, + guide_Level: 4, + startTime: -1, + random: 0, + stepTimeList: 0, + successList: [], + fen: 0, + score: 0, + igniteCount: 0, + min_Steps: 0, + min_Time: 0 //每一把上次距离洪峰到来时间 + }; + }; + GameConfig.GM_INFO_SET = function (key, value) { + this.GM_INFO[key] = value; + }; + GameConfig.CLICK_init = function () { + this.CLICK_DATA = + { + type: 1, + success: false, + round: 0, + duration: 0, + rightChoiceOuter: [], + userChoiceOuter: [], + rightChoiceInner: [], + userChoiceInner: [], + }; + }; + GameConfig.CLICK_SET = function (key, value) { + this.CLICK_DATA[key] = value; + }; + GameConfig.LEVEL_INFO_init = function () { + this.LEVEL_INFO = [{ + "id": "1", + "inside": 3, + "insideType": 1, + "outside": 0, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "2", + "inside": 3, + "insideType": 2, + "outside": 0, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "3", + "inside": 3, + "insideType": 3, + "outside": 0, + "outsideType": 1, + "showTime": 1, + }, + { + "id": "4", + "inside": 4, + "insideType": 3, + "outside": 0, + "outsideType": 1, + "showTime": 1, + }, + { + "id": "5", + "inside": 0, + "insideType": 1, + "outside": 1, + "outsideType": 1, + "showTime": 0.9, + }, + { + "id": "6", + "inside": 0, + "insideType": 1, + "outside": 1, + "outsideType": 2, + "showTime": 0.9, + }, + { + "id": "7", + "inside": 0, + "insideType": 1, + "outside": 2, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "8", + "inside": 0, + "insideType": 1, + "outside": 3, + "outsideType": 2, + "showTime": 1.2, + }, + { + "id": "9", + "inside": 3, + "insideType": 1, + "outside": 1, + "outsideType": 1, + "showTime": 1.2, + }, + { + "id": "10", + "inside": 3, + "insideType": 2, + "outside": 1, + "outsideType": 2, + "showTime": 1.2, + }, + { + "id": "11", + "inside": 3, + "insideType": 1, + "outside": 2, + "outsideType": 1, + "showTime": 1.8, + }, + { + "id": "12", + "inside": 3, + "insideType": 2, + "outside": 2, + "outsideType": 2, + "showTime": 1.8, + }, + { + "id": "13", + "inside": 4, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.8, + }, + { + "id": "14", + "inside": 4, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.8, + }, + { + "id": "15", + "inside": 5, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.5, + }, + { + "id": "16", + "inside": 5, + "insideType": 3, + "outside": 3, + "outsideType": 3, + "showTime": 1.5, + } + ]; + this.GUIDE_INFO = [ + { + "id": "1", + "inside": 3, + "insideType": 1, + "outside": 0, + "outsideType": 1, + "showTime": 10000, + }, + { + "id": "5", + "inside": 0, + "insideType": 1, + "outside": 1, + "outsideType": 1, + "showTime": 10000, + }, + { + "id": "7", + "inside": 0, + "insideType": 1, + "outside": 2, + "outsideType": 1, + "showTime": 10000, + }, + ]; + // this.LEVEL_INFO = [{"id":"0001", //地图ID + // "start":[['r'], ['b'], ['g']], //起始状态 + // "goal":[[], ['r', 'g'], ['b']], //目标状态 + // "middle":[[['b', 'r', 'g'], [], []], [['g'], ['b'], ['r']], [['r', 'b'], ['g'], []]],//中间状态 + // "steps":17 //最大步数 + // }]; + // 0 12 3 + // 312 0 0 2 3 1 13 2 0 + // [2], [1], [3] + // [[2, 1, 3], [], []] + // [[], [2, 3], [1]] + // [[1, 2], [], [3]] + // [[[1], [2, 3], []], + // [[1], [], [3, 2]]] + }; + GameConfig.Authentication = function () { + cc.fx.GameTool.Authentication(); + }; + var GameConfig_1; + //所有控制信息都通过GameAppStart内控制 + GameConfig._instance = null; + GameConfig = GameConfig_1 = __decorate([ + ccclass('GameConfig') + ], GameConfig); + return GameConfig; +}()); +exports.GameConfig = GameConfig; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js.map b/temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js.map new file mode 100644 index 0000000..f5ee2ee --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Config/GameConfig.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Config\\GameConfig.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import { WeChat } from \"../Share/share\";\r\nimport { GameTool } from \"../Tool/GameTool\";\r\n\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n@ccclass('GameConfig')\r\nexport class GameConfig {\r\n //所有控制信息都通过GameAppStart内控制\r\n private static _instance : GameConfig = null;\r\n\r\n static GAME_DATA: any[];\r\n //关卡数据\r\n\r\n\r\n\r\n static LEVEL_INFO: {\r\n id: string; //难度id\r\n inside: number; //内圈答案个数\r\n insideType: number; //内圈排列形式,1:一排,2:一列,3:随机\r\n outside: number; //外圈答案种类个数,大于1时,填满其他图案\r\n outsideType: number; //外圈排列形式,1:非四角,2:四角,3:随机\r\n showTime: number; //显示时间\r\n }[];\r\n static CLICK_DATA: {\r\n type: number; //上传数据类型\r\n success: boolean; //是否正确\r\n round: number; //回合数轮次\r\n duration: number; //本轮用时\r\n rightChoiceOuter: any[]; //外部正确选项坐标\r\n userChoiceOuter: any[]; //外部玩家选项坐标\r\n rightChoiceInner: any[]; //内部正确选项坐标\r\n userChoiceInner: any[];\r\n };\r\n static GUIDE_INFO: {\r\n id: string; //难度id\r\n inside: number; //内圈答案个数\r\n insideType: number; //内圈排列形式,1:一排,2:一列,3:随机\r\n outside: number; //外圈答案种类个数,大于1时,填满其他图案\r\n outsideType: number; //外圈排列形式,1:非四角,2:四角,3:随机\r\n showTime: number;\r\n }[];\r\n static GM_INFO: {\r\n isCustom: boolean; //选择关卡模式\r\n mean_Time: number; //平均放箭速度\r\n total: number; //总共对的个数\r\n currSeed: number; //用于随机数种子\r\n gameId: string; //游戏ID\r\n userId: number; //用户ID\r\n guide: boolean; //是否有引导\r\n url: string; //访问域名\r\n success: boolean; //用户游戏成功与否\r\n matchId: any; //用于埋点上传的ID\r\n custom: number; //用于测试跳关卡\r\n round: number; //回合数\r\n level: number; //具体游戏难度\r\n guide_Level: number; //引导等级\r\n startTime: number; //玩家第一步操作\r\n random: number; //当前难度随机数\r\n stepTimeList: number; //整局游戏用时,由于涉及场景切换,数据需要保留\r\n successList: any[]; //整局胜负\r\n fen: number; //小局得分\r\n score: number; //总得分\r\n igniteCount: number; //玩家总计成功点火数\r\n min_Steps: number; //每次上一把最小步数\r\n min_Time: number; //每一把上次距离洪峰到来时间\r\n };\r\n\r\n // static LEVEL_INFO: {\r\n // id: string; //地图ID\r\n // start: string[][]; //起始状态\r\n // goal: string[][]; //目标状态\r\n // middle: string[][][]; //中间状态 \r\n // steps: number; //最大步数\r\n // }[];\r\n\r\n\r\n //游戏内信息\r\n static get Instance()\r\n {\r\n if (this._instance == null)\r\n {\r\n this._instance = new GameConfig();\r\n }\r\n return this._instance;\r\n }\r\n //getSeedRandom\r\n static init(Authentication){\r\n this.CLICK_init();\r\n this.LEVEL_INFO_init();\r\n this.GM_INFO_init();\r\n var self = this;\r\n //GAME_DATA 废弃了,暂时不删除以防后面修改回 一整局传一次\r\n this.GAME_DATA = [\r\n ]\r\n\r\n WeChat.setShare(location.href);\r\n if(!Authentication) self.Authentication();\r\n }\r\n \r\n //数据备用\r\n static GM_INFO_init() {\r\n this.GM_INFO = {\r\n isCustom: false, //选择关卡模式\r\n mean_Time: 0, //平均放箭速度\r\n total: 0, //总共对的个数\r\n currSeed: 200000, //用于随机数种子\r\n gameId: \"100019\", //游戏ID\r\n userId: 0, //用户ID\r\n guide: true, //是否有引导\r\n url: \"https://api.sparkus.cn\",//访问域名\r\n success: false, //用户游戏成功与否\r\n matchId: null, //用于埋点上传的ID\r\n custom: 0, //用于测试跳关卡\r\n round:0, //回合数\r\n level: 0, //具体游戏难度\r\n guide_Level:4, //引导等级\r\n startTime:-1, //玩家第一步操作\r\n random:0, //当前难度随机数\r\n stepTimeList:0, //整局游戏用时,由于涉及场景切换,数据需要保留\r\n successList:[], //整局胜负\r\n fen:0, //小局得分\r\n score:0, //总得分\r\n igniteCount: 0, //玩家总计成功点火数\r\n min_Steps:0, //每次上一把最小步数\r\n min_Time:0 //每一把上次距离洪峰到来时间\r\n };\r\n\r\n }\r\n static GM_INFO_SET(key,value) {\r\n this.GM_INFO[key] = value;\r\n }\r\n static CLICK_init() {\r\n this.CLICK_DATA =\r\n {\r\n type: 1, //上传数据类型\r\n success: false, //是否正确\r\n round: 0, //回合数轮次\r\n duration:0, //本轮用时\r\n rightChoiceOuter:[],//外部正确选项坐标\r\n userChoiceOuter:[], //外部玩家选项坐标\r\n rightChoiceInner:[],//内部正确选项坐标\r\n userChoiceInner:[], //内部玩家选项坐标\r\n }\r\n }\r\n\r\n static CLICK_SET(key,value) {\r\n this.CLICK_DATA[key] = value;\r\n }\r\n\r\n static LEVEL_INFO_init() {\r\n this.LEVEL_INFO = [{\r\n \"id\":\"1\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":0, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.2, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"2\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":2, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":0, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.2, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"3\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":3, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":0, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"4\", //难度id\r\n \"inside\":4, //内圈答案个数\r\n \"insideType\":3, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":0, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"5\", //难度id\r\n \"inside\":0, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":1, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":0.9, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"6\", //难度id\r\n \"inside\":0, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":1, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":2, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":0.9, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"7\", //难度id\r\n \"inside\":0, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":2, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.2, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"8\", //难度id\r\n \"inside\":0, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":3, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":2, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.2, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"9\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":1, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.2, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"10\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":2, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":1, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":2, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.2, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"11\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":2, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.8, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"12\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":2, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":2, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":2, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.8, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"13\", //难度id\r\n \"inside\":4, //内圈答案个数\r\n \"insideType\":3, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":3, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":3, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.8, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"14\", //难度id\r\n \"inside\":4, //内圈答案个数\r\n \"insideType\":3, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":3, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":3, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.8, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"15\", //难度id\r\n \"inside\":5, //内圈答案个数\r\n \"insideType\":3, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":3, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":3, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.5, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"16\", //难度id\r\n \"inside\":5, //内圈答案个数\r\n \"insideType\":3, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":3, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":3, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":1.5, //显示时间,秒为单位\r\n }\r\n ]\r\n\r\n this.GUIDE_INFO =[\r\n {\r\n \"id\":\"1\", //难度id\r\n \"inside\":3, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":0, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":10000, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"5\", //难度id\r\n \"inside\":0, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":1, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":10000, //显示时间,秒为单位\r\n },\r\n {\r\n \"id\":\"7\", //难度id\r\n \"inside\":0, //内圈答案个数\r\n \"insideType\":1, //内圈排列形式,1:一排,2:一列,3:随机\r\n \"outside\":2, //外圈答案种类个数,大于1时,填满其他图案\r\n \"outsideType\":1, //外圈排列形式,1:非四角,2:四角,3:随机\r\n \"showTime\":10000, //显示时间,秒为单位\r\n },\r\n ]\r\n \r\n // this.LEVEL_INFO = [{\"id\":\"0001\", //地图ID\r\n // \"start\":[['r'], ['b'], ['g']], //起始状态\r\n // \"goal\":[[], ['r', 'g'], ['b']], //目标状态\r\n // \"middle\":[[['b', 'r', 'g'], [], []], [['g'], ['b'], ['r']], [['r', 'b'], ['g'], []]],//中间状态 \r\n // \"steps\":17 //最大步数\r\n // }];\r\n\r\n \r\n // 0 12 3\r\n // 312 0 0 2 3 1 13 2 0\r\n\r\n\r\n // [2], [1], [3]\r\n // [[2, 1, 3], [], []]\r\n\r\n\r\n // [[], [2, 3], [1]]\r\n // [[1, 2], [], [3]]\r\n // [[[1], [2, 3], []], \r\n // [[1], [], [3, 2]]]\r\n }\r\n\r\n\r\n static Authentication(){\r\n cc.fx.GameTool.Authentication();\r\n }\r\n}\r\n\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js b/temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js new file mode 100644 index 0000000..cc234ac --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js @@ -0,0 +1,365 @@ +"use strict"; +cc._RF.push(module, '771a32aQBNGVKd3+66gyTKA', 'HttpUtil'); +// Script/module/Crypto/HttpUtil.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var CryptoJS = require("./crypto-js.min.js"); //引用AES源码js +var BASE_URL = "https://api.sparkus.cn"; +//只负责网络接口 次类只负责和后端交互,不负责处理数据 数据处理在GameTool +var HttpUtil = /** @class */ (function (_super) { + __extends(HttpUtil, _super); + function HttpUtil() { + return _super !== null && _super.apply(this, arguments) || this; + } + HttpUtil_1 = HttpUtil; + //排行榜 + HttpUtil.rankData = function (type, callback, data) { + return __awaiter(this, void 0, Promise, function () { + var time, url; + return __generator(this, function (_a) { + time = Math.floor((new Date().getTime()) / 1000); + url = HttpUtil_1.apiSign("/api/get/rank/data?gameId=" + config.gameId + "&dataType=" + type + "&time=" + time, data); + this.post(url, data, callback, 0); + return [2 /*return*/]; + }); + }); + }; + HttpUtil.uploadUserLogData = function (data, callback) { + return __awaiter(this, void 0, Promise, function () { + var url; + return __generator(this, function (_a) { + url = '/log/collect/data'; + this.post(url, data, callback, 3); + return [2 /*return*/]; + }); + }); + }; + //暂时用不到 + HttpUtil.getUserRecord = function (data, callback) { + return __awaiter(this, void 0, Promise, function () { + var time, url; + return __generator(this, function (_a) { + time = Math.floor((new Date().getTime()) / 1000); + url = HttpUtil_1.apiSign("/api/get/user/data?gameId=" + config.gameId + "&time=" + time, data); + this.post(url, data, callback, 0); + return [2 /*return*/]; + }); + }); + }; + HttpUtil.get = function (url, callback, count) { + return __awaiter(this, void 0, void 0, function () { + var repeat, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + repeat = count ? count : 0; + return [4 /*yield*/, this.fetchData(url, null, 'GET', repeat)]; + case 1: + response = _a.sent(); + callback && callback(response); + return [2 /*return*/]; + } + }); + }); + }; + HttpUtil.post = function (url, data, callback, count) { + return __awaiter(this, void 0, void 0, function () { + var repeat, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + repeat = count ? count : 0; + return [4 /*yield*/, this.fetchData(url, data, 'POST', repeat)]; + case 1: + response = _a.sent(); + callback && callback(response); + return [2 /*return*/]; + } + }); + }); + }; + HttpUtil.fetchData = function (url, data, method, repeat) { + return __awaiter(this, void 0, void 0, function () { + var fullUrl, headers, options, response, error_1, timeOut; + var _this = this; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + fullUrl = "" + BASE_URL + url; + headers = { 'Content-Type': 'application/json' }; + options = { + method: method, + headers: headers, + body: data ? JSON.stringify(data) : null, + }; + _a.label = 1; + case 1: + _a.trys.push([1, 4, , 5]); + return [4 /*yield*/, this.fetchWithTimeout(fullUrl, options)]; + case 2: + response = _a.sent(); + if (!response.ok) { + throw new Error("HTTP_______________error! status: " + response.status); + } + return [4 /*yield*/, response.json()]; + case 3: return [2 /*return*/, _a.sent()]; + case 4: + error_1 = _a.sent(); + console.error('Fetch_______________error:', error_1); + if (repeat > 0) { + repeat -= 1; + timeOut = (3 - repeat) * 5000; + setTimeout(function () { return __awaiter(_this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, this.fetchData(url, data, method, repeat)]; + case 1: + response = _a.sent(); + return [2 /*return*/]; + } + }); + }); }, timeOut); + } + else { + return [2 /*return*/, null]; + } + return [3 /*break*/, 5]; + case 5: return [2 /*return*/]; + } + }); + }); + }; + HttpUtil.fetchWithTimeout = function (resource, options) { + if (options === void 0) { options = {}; } + return __awaiter(this, void 0, void 0, function () { + var controller, id, response; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + controller = new AbortController(); + id = setTimeout(function () { return controller.abort(); }, 5000); + return [4 /*yield*/, fetch(resource, __assign(__assign({}, options), { signal: controller.signal }))]; + case 1: + response = _a.sent(); + clearTimeout(id); + return [2 /*return*/, response]; + } + }); + }); + }; + /** + * + * @param url {string} 接口地址 + * @param params {object} 需要加密的参数对象 + */ + HttpUtil.apiSign = function (url, params) { + if (params === void 0) { params = {}; } + var convertUrl = url.trim(); + if (convertUrl.indexOf('?') === -1) { + convertUrl += '?'; + } + // 传入参数转换拼接字符串 + var postStr = getQueryString(params); + var signedStr = genSignStr(convertUrl, postStr); + var encryptStr = "sign=" + signedStr; + var encryptSignStr = fxCry.encryptByDES(encryptStr, config.secretKey); + encryptSignStr = encodeURIComponent(encryptSignStr); + return urlencode(convertUrl) + "&_p=" + encryptSignStr; + }; + var HttpUtil_1; + HttpUtil = HttpUtil_1 = __decorate([ + ccclass + ], HttpUtil); + return HttpUtil; +}(cc.Component)); +exports.default = HttpUtil; +function responseHandler(response) { + return response.data; +} +// 响应拦截器 +// Rq.interceptors.response.use(responseHandler) +var config = { + gameId: "100019", + secretKey: "15ELeamO", + EK: "hui231%1" +}; +var Crypoto = /** @class */ (function () { + function Crypoto() { + // 加密的向明值,自己根据项目实际情况定,需要跟后端开发保持一致 + this.keyHex = this.getHetKey(); + } + Crypoto.prototype.getHetKey = function () { + return CryptoJS.enc.Utf8.parse(config.EK); + }; + /** DES加密 */ + Crypoto.prototype.encryptByDES = function (message, secret) { + if (!message) { + return message; + } + var key = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var encrypted = CryptoJS.DES.encrypt(message, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return encrypted.toString(); + }; + /** DES解密 */ + Crypoto.prototype.decryptByDES = function (message, secret) { + var key = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var decrypted = CryptoJS.DES.decrypt({ + ciphertext: CryptoJS.enc.Base64.parse(message) + }, key, { + mode: CryptoJS.mode.ECB, + padding: CryptoJS.pad.Pkcs7 + }); + return decrypted.toString(CryptoJS.enc.Utf8); + }; + /** hmacSHA256加密 */ + Crypoto.prototype.hmacSha256 = function (message, secret) { + var keyHex = secret ? CryptoJS.enc.Utf8.parse(secret) : this.keyHex; + var hash = CryptoJS.HmacSHA256(message, keyHex); + return hash.toString(); + }; + /** hmacSHA256验证 */ + Crypoto.prototype.verifyHmacSha256 = function (message, signature) { + var hash = CryptoJS.HmacSHA256(message, this.keyHex); + return hash.toString() === signature; + }; + /** CBC加密 */ + Crypoto.prototype.encryptCBC = function (word) { + if (!word) { + return word; + } + var srcs = CryptoJS.enc.Utf8.parse(word); + var encrypted = CryptoJS.AES.encrypt(srcs, this.keyHex, { + iv: this.keyHex, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.ZeroPadding + }); + return encrypted.toString(); + }; + /** CBC解密 */ + Crypoto.prototype.decryptCBC = function (word) { + if (!word) { + return word; + } + var encryptedHexStr = CryptoJS.enc.Hex.parse(word); + var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr); + var decrypt = CryptoJS.AES.decrypt(srcs, this.keyHex, { + iv: this.keyHex, + mode: CryptoJS.mode.CBC, + padding: CryptoJS.pad.ZeroPadding + }); + var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); + return decryptedStr.toString(); + }; + return Crypoto; +}()); +var fxCry = new Crypoto(); +function isEmpty(data) { + return data === "" || data === null || data === undefined || data.length === 0 || JSON.stringify(data) == "{}"; +} +function getQueryString(obj) { + // 首先对对象的键进行排序并过滤空值 + var sortedKeys = Object.keys(obj).sort(); + var sortedObj = {}; + for (var i = 0; i < sortedKeys.length; i++) { + if (isEmpty(obj[sortedKeys[i]])) { + continue; + } + sortedObj[sortedKeys[i]] = obj[sortedKeys[i]]; + } + // 然后将排序后的对象转换为查询字符串 + var params = []; + for (var key in sortedObj) { + params.push(encodeURIComponent(key) + "=" + encodeURIComponent(sortedObj[key])); + } + return params.join('&'); +} +/** + * 组装签名字符串 + * @param string url: 请求地址 + * @param string postStr: post参数的a=1&b=2 + * @returns + */ +function genSignStr(url, postStr) { + var lessUrl = url.replace('?', ''); + lessUrl = lessUrl + "&" + postStr; + return encodeURIComponent(fxCry.hmacSha256(lessUrl)); +} +// 对参数进行统一urlencode +function urlencode(url) { + var _a = url.split("?", 2), baseUrl = _a[0], queryString = _a[1]; + var params = new URLSearchParams(queryString); + return baseUrl + "?" + params.toString(); +} + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js.map b/temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js.map new file mode 100644 index 0000000..add2273 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Crypto/HttpUtil.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Crypto\\HttpUtil.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\r\nconst {ccclass, property} = cc._decorator;\r\nimport CryptoJS = require('./crypto-js.min.js'); //引用AES源码js\r\n\r\nconst BASE_URL = \"https://api.sparkus.cn\";\r\n//只负责网络接口 次类只负责和后端交互,不负责处理数据 数据处理在GameTool\r\n@ccclass\r\nexport default class HttpUtil extends cc.Component {\r\n //排行榜\r\n static async rankData(type,callback,data): Promise {\r\n const time = Math.floor((new Date().getTime()) / 1000)\r\n const url = HttpUtil.apiSign(`/api/get/rank/data?gameId=${config.gameId}&dataType=${type}&time=${time}`, data)\r\n this.post(url,data,callback,0);\r\n }\r\n \r\n static async uploadUserLogData(data,callback): Promise {\r\n const url = '/log/collect/data';\r\n this.post(url,data,callback,3);\r\n }\r\n //暂时用不到\r\n static async getUserRecord(data,callback): Promise {\r\n const time = Math.floor((new Date().getTime()) / 1000)\r\n const url = HttpUtil.apiSign(`/api/get/user/data?gameId=${config.gameId}&time=${time}`, data)\r\n this.post(url,data,callback,0);\r\n }\r\n\r\n static async get(url, callback,count) {\r\n let repeat = count?count:0;\r\n const response = await this.fetchData(url, null, 'GET',repeat);\r\n callback && callback(response);\r\n }\r\n\r\n static async post(url, data, callback,count) {\r\n let repeat = count?count:0;\r\n const response = await this.fetchData(url, data, 'POST',repeat);\r\n callback && callback(response);\r\n }\r\n\r\n static async fetchData(url, data, method,repeat) {\r\n const fullUrl = `${BASE_URL}${url}`;\r\n const headers = { 'Content-Type': 'application/json' };\r\n const options = {\r\n method,\r\n headers,\r\n body: data ? JSON.stringify(data) : null,\r\n };\r\n\r\n try {\r\n var response = await this.fetchWithTimeout(fullUrl,options);\r\n if (!response.ok) {\r\n throw new Error(`HTTP_______________error! status: ${response.status}`);\r\n }\r\n return await response.json();\r\n } catch (error) {\r\n console.error('Fetch_______________error:', error);\r\n if(repeat > 0){\r\n repeat -= 1;\r\n const timeOut = (3-repeat)*5000;\r\n setTimeout(async () => {\r\n response = await this.fetchData(url, data, method,repeat);\r\n }, timeOut);\r\n }\r\n else{\r\n return null;\r\n }\r\n }\r\n } \r\n\r\n static async fetchWithTimeout(resource, options = {}) {\r\n const controller = new AbortController();\r\n const id = setTimeout(() => controller.abort(), 5000);\r\n const response = await fetch(resource, {\r\n ...options,\r\n signal: controller.signal\r\n });\r\n clearTimeout(id);\r\n\r\n return response;\r\n }\r\n\r\n\r\n /**\r\n * \r\n * @param url {string} 接口地址\r\n * @param params {object} 需要加密的参数对象\r\n */\r\n static apiSign(url: string, params = {}) {\r\n\r\n let convertUrl = url.trim()\r\n if (convertUrl.indexOf('?') === -1) {\r\n convertUrl += '?'\r\n }\r\n \r\n // 传入参数转换拼接字符串\r\n let postStr = getQueryString(params)\r\n \r\n const signedStr = genSignStr(convertUrl, postStr)\r\n const encryptStr = `sign=${signedStr}`\r\n\r\n let encryptSignStr = fxCry.encryptByDES(encryptStr, config.secretKey)\r\n encryptSignStr = encodeURIComponent(encryptSignStr)\r\n\r\n return `${urlencode(convertUrl)}&_p=${encryptSignStr}`\r\n }\r\n}\r\n\r\nfunction responseHandler(response: { data: any }) {\r\n return response.data\r\n}\r\n// 响应拦截器\r\n// Rq.interceptors.response.use(responseHandler)\r\nconst config = {\r\n gameId: \"100019\",\r\n secretKey: \"15ELeamO\",\r\n EK:\"hui231%1\"\r\n};\r\n\r\ninterface CrypotoType {\r\n encryptByDES: any\r\n decryptByDES: any\r\n hmacSha256: any\r\n}\r\n \r\nclass Crypoto implements CrypotoType {\r\n // 加密的向明值,自己根据项目实际情况定,需要跟后端开发保持一致\r\n private keyHex = this.getHetKey()\r\n private getHetKey() {\r\n return CryptoJS.enc.Utf8.parse(config.EK);\r\n }\r\n\r\n /** DES加密 */\r\n encryptByDES(message: string, secret?: string) {\r\n if(!message) {\r\n return message\r\n }\r\n const key = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex\r\n const encrypted = CryptoJS.DES.encrypt(message, key, {\r\n mode: CryptoJS.mode.ECB,\r\n padding: CryptoJS.pad.Pkcs7\r\n });\r\n return encrypted.toString()\r\n }\r\n\r\n /** DES解密 */\r\n decryptByDES(message: string, secret?: string) {\r\n const key = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex\r\n\r\n const decrypted = CryptoJS.DES.decrypt({\r\n ciphertext: CryptoJS.enc.Base64.parse(message)\r\n }, key, {\r\n mode: CryptoJS.mode.ECB,\r\n padding: CryptoJS.pad.Pkcs7\r\n })\r\n\r\n return decrypted.toString(CryptoJS.enc.Utf8)\r\n }\r\n\r\n /** hmacSHA256加密 */\r\n hmacSha256(message: string, secret?: string) {\r\n const keyHex = secret? CryptoJS.enc.Utf8.parse(secret): this.keyHex\r\n \r\n const hash = CryptoJS.HmacSHA256(message, keyHex);\r\n return hash.toString()\r\n }\r\n\r\n /** hmacSHA256验证 */\r\n verifyHmacSha256(message: string, signature: string) {\r\n const hash = CryptoJS.HmacSHA256(message, this.keyHex);\r\n return hash.toString() === signature\r\n }\r\n \r\n /** CBC加密 */\r\n encryptCBC(word: string) {\r\n if (!word) {\r\n return word;\r\n }\r\n const srcs = CryptoJS.enc.Utf8.parse(word);\r\n const encrypted = CryptoJS.AES.encrypt(srcs, this.keyHex, {\r\n iv: this.keyHex,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.ZeroPadding\r\n });\r\n return encrypted.toString(); \r\n }\r\n \r\n /** CBC解密 */\r\n decryptCBC(word: string) {\r\n if (!word) {\r\n return word;\r\n }\r\n const encryptedHexStr = CryptoJS.enc.Hex.parse(word);\r\n const srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);\r\n const decrypt = CryptoJS.AES.decrypt(srcs, this.keyHex, {\r\n iv: this.keyHex,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.ZeroPadding\r\n });\r\n const decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);\r\n return decryptedStr.toString();\r\n }\r\n}\r\nconst fxCry = new Crypoto();\r\n\r\nfunction isEmpty(data) {\r\n return data === \"\" || data === null || data === undefined || data.length === 0 || JSON.stringify(data) == \"{}\"\r\n}\r\n\r\nfunction getQueryString(obj) {\r\n // 首先对对象的键进行排序并过滤空值\r\n const sortedKeys = Object.keys(obj).sort();\r\n const sortedObj = {};\r\n for (let i = 0; i < sortedKeys.length; i++) {\r\n if (isEmpty(obj[sortedKeys[i]])) {\r\n continue;\r\n }\r\n sortedObj[sortedKeys[i]] = obj[sortedKeys[i]];\r\n }\r\n \r\n // 然后将排序后的对象转换为查询字符串\r\n const params = [];\r\n for (const key in sortedObj) {\r\n params.push(`${encodeURIComponent(key)}=${encodeURIComponent(sortedObj[key])}`);\r\n }\r\n return params.join('&');\r\n}\r\n\r\n\r\n/**\r\n * 组装签名字符串\r\n * @param string url: 请求地址 \r\n * @param string postStr: post参数的a=1&b=2 \r\n * @returns \r\n */\r\n\r\nfunction genSignStr(url: string, postStr: string): string {\r\n let lessUrl = url.replace('?', '')\r\n lessUrl = lessUrl + \"&\" + postStr\r\n return encodeURIComponent(fxCry.hmacSha256(lessUrl))\r\n}\r\n// 对参数进行统一urlencode\r\nfunction urlencode(url: string): string {\r\n const [baseUrl, queryString] = url.split(\"?\", 2);\r\n const params = new URLSearchParams(queryString);\r\n return `${baseUrl}?${params.toString()}`;\r\n}\r\n\r\n\r\n\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js b/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js new file mode 100644 index 0000000..39fbf83 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js @@ -0,0 +1,2328 @@ +"use strict"; +cc._RF.push(module, 'e64e1qXyT9CV6s0gDQdj/ed', 'crypto-js.min'); +// Script/module/Crypto/crypto-js.min.js + +"use strict"; + +!function (t, r) { + "object" == typeof exports ? module.exports = exports = r() : "function" == typeof define && define.amd ? define([], r) : t.CryptoJS = r(); +}(void 0, function () { + var t = t || function (t, r) { + var e = Object.create || function () { + function t() {} + + return function (r) { + var e; + return t.prototype = r, e = new t(), t.prototype = null, e; + }; + }(), + i = {}, + n = i.lib = {}, + o = n.Base = function () { + return { + extend: function extend(t) { + var r = e(this); + return t && r.mixIn(t), r.hasOwnProperty("init") && this.init !== r.init || (r.init = function () { + r.$super.init.apply(this, arguments); + }), r.init.prototype = r, r.$super = this, r; + }, + create: function create() { + var t = this.extend(); + return t.init.apply(t, arguments), t; + }, + init: function init() {}, + mixIn: function mixIn(t) { + for (var r in t) { + t.hasOwnProperty(r) && (this[r] = t[r]); + } + + t.hasOwnProperty("toString") && (this.toString = t.toString); + }, + clone: function clone() { + return this.init.prototype.extend(this); + } + }; + }(), + s = n.WordArray = o.extend({ + init: function init(t, e) { + t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 4 * t.length; + }, + toString: function toString(t) { + return (t || c).stringify(this); + }, + concat: function concat(t) { + var r = this.words, + e = t.words, + i = this.sigBytes, + n = t.sigBytes; + if (this.clamp(), i % 4) for (var o = 0; o < n; o++) { + var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255; + r[i + o >>> 2] |= s << 24 - (i + o) % 4 * 8; + } else for (var o = 0; o < n; o += 4) { + r[i + o >>> 2] = e[o >>> 2]; + } + return this.sigBytes += n, this; + }, + clamp: function clamp() { + var r = this.words, + e = this.sigBytes; + r[e >>> 2] &= 4294967295 << 32 - e % 4 * 8, r.length = t.ceil(e / 4); + }, + clone: function clone() { + var t = o.clone.call(this); + return t.words = this.words.slice(0), t; + }, + random: function random(r) { + for (var e, i = [], n = function n(r) { + var r = r, + e = 987654321, + i = 4294967295; + return function () { + e = 36969 * (65535 & e) + (e >> 16) & i, r = 18e3 * (65535 & r) + (r >> 16) & i; + var n = (e << 16) + r & i; + return n /= 4294967296, n += .5, n * (t.random() > .5 ? 1 : -1); + }; + }, o = 0; o < r; o += 4) { + var a = n(4294967296 * (e || t.random())); + e = 987654071 * a(), i.push(4294967296 * a() | 0); + } + + return new s.init(i, r); + } + }), + a = i.enc = {}, + c = a.Hex = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)); + } + + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i += 2) { + e[i >>> 3] |= parseInt(t.substr(i, 2), 16) << 24 - i % 8 * 4; + } + + return new s.init(e, r / 2); + } + }, + h = a.Latin1 = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n++) { + var o = r[n >>> 2] >>> 24 - n % 4 * 8 & 255; + i.push(String.fromCharCode(o)); + } + + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i++) { + e[i >>> 2] |= (255 & t.charCodeAt(i)) << 24 - i % 4 * 8; + } + + return new s.init(e, r); + } + }, + l = a.Utf8 = { + stringify: function stringify(t) { + try { + return decodeURIComponent(escape(h.stringify(t))); + } catch (t) { + throw new Error("Malformed UTF-8 data"); + } + }, + parse: function parse(t) { + return h.parse(unescape(encodeURIComponent(t))); + } + }, + f = n.BufferedBlockAlgorithm = o.extend({ + reset: function reset() { + this._data = new s.init(), this._nDataBytes = 0; + }, + _append: function _append(t) { + "string" == typeof t && (t = l.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes; + }, + _process: function _process(r) { + var e = this._data, + i = e.words, + n = e.sigBytes, + o = this.blockSize, + a = 4 * o, + c = n / a; + c = r ? t.ceil(c) : t.max((0 | c) - this._minBufferSize, 0); + var h = c * o, + l = t.min(4 * h, n); + + if (h) { + for (var f = 0; f < h; f += o) { + this._doProcessBlock(i, f); + } + + var u = i.splice(0, h); + e.sigBytes -= l; + } + + return new s.init(u, l); + }, + clone: function clone() { + var t = o.clone.call(this); + return t._data = this._data.clone(), t; + }, + _minBufferSize: 0 + }), + u = (n.Hasher = f.extend({ + cfg: o.extend(), + init: function init(t) { + this.cfg = this.cfg.extend(t), this.reset(); + }, + reset: function reset() { + f.reset.call(this), this._doReset(); + }, + update: function update(t) { + return this._append(t), this._process(), this; + }, + finalize: function finalize(t) { + t && this._append(t); + + var r = this._doFinalize(); + + return r; + }, + blockSize: 16, + _createHelper: function _createHelper(t) { + return function (r, e) { + return new t.init(e).finalize(r); + }; + }, + _createHmacHelper: function _createHmacHelper(t) { + return function (r, e) { + return new u.HMAC.init(t, e).finalize(r); + }; + } + }), i.algo = {}); + + return i; + }(Math); + + return function () { + function r(t, r, e) { + for (var i = [], o = 0, s = 0; s < r; s++) { + if (s % 4) { + var a = e[t.charCodeAt(s - 1)] << s % 4 * 2, + c = e[t.charCodeAt(s)] >>> 6 - s % 4 * 2; + i[o >>> 2] |= (a | c) << 24 - o % 4 * 8, o++; + } + } + + return n.create(i, o); + } + + var e = t, + i = e.lib, + n = i.WordArray, + o = e.enc; + o.Base64 = { + stringify: function stringify(t) { + var r = t.words, + e = t.sigBytes, + i = this._map; + t.clamp(); + + for (var n = [], o = 0; o < e; o += 3) { + for (var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255, a = r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, c = r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, h = s << 16 | a << 8 | c, l = 0; l < 4 && o + .75 * l < e; l++) { + n.push(i.charAt(h >>> 6 * (3 - l) & 63)); + } + } + + var f = i.charAt(64); + if (f) for (; n.length % 4;) { + n.push(f); + } + return n.join(""); + }, + parse: function parse(t) { + var e = t.length, + i = this._map, + n = this._reverseMap; + + if (!n) { + n = this._reverseMap = []; + + for (var o = 0; o < i.length; o++) { + n[i.charCodeAt(o)] = o; + } + } + + var s = i.charAt(64); + + if (s) { + var a = t.indexOf(s); + a !== -1 && (e = a); + } + + return r(t, e, n); + }, + _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" + }; + }(), function (r) { + function e(t, r, e, i, n, o, s) { + var a = t + (r & e | ~r & i) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + function i(t, r, e, i, n, o, s) { + var a = t + (r & i | e & ~i) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + function n(t, r, e, i, n, o, s) { + var a = t + (r ^ e ^ i) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + function o(t, r, e, i, n, o, s) { + var a = t + (e ^ (r | ~i)) + n + s; + return (a << o | a >>> 32 - o) + r; + } + + var s = t, + a = s.lib, + c = a.WordArray, + h = a.Hasher, + l = s.algo, + f = []; + !function () { + for (var t = 0; t < 64; t++) { + f[t] = 4294967296 * r.abs(r.sin(t + 1)) | 0; + } + }(); + var u = l.MD5 = h.extend({ + _doReset: function _doReset() { + this._hash = new c.init([1732584193, 4023233417, 2562383102, 271733878]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var s = 0; s < 16; s++) { + var a = r + s, + c = t[a]; + t[a] = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8); + } + + var h = this._hash.words, + l = t[r + 0], + u = t[r + 1], + d = t[r + 2], + v = t[r + 3], + p = t[r + 4], + _ = t[r + 5], + y = t[r + 6], + g = t[r + 7], + B = t[r + 8], + w = t[r + 9], + k = t[r + 10], + S = t[r + 11], + m = t[r + 12], + x = t[r + 13], + b = t[r + 14], + H = t[r + 15], + z = h[0], + A = h[1], + C = h[2], + D = h[3]; + z = e(z, A, C, D, l, 7, f[0]), D = e(D, z, A, C, u, 12, f[1]), C = e(C, D, z, A, d, 17, f[2]), A = e(A, C, D, z, v, 22, f[3]), z = e(z, A, C, D, p, 7, f[4]), D = e(D, z, A, C, _, 12, f[5]), C = e(C, D, z, A, y, 17, f[6]), A = e(A, C, D, z, g, 22, f[7]), z = e(z, A, C, D, B, 7, f[8]), D = e(D, z, A, C, w, 12, f[9]), C = e(C, D, z, A, k, 17, f[10]), A = e(A, C, D, z, S, 22, f[11]), z = e(z, A, C, D, m, 7, f[12]), D = e(D, z, A, C, x, 12, f[13]), C = e(C, D, z, A, b, 17, f[14]), A = e(A, C, D, z, H, 22, f[15]), z = i(z, A, C, D, u, 5, f[16]), D = i(D, z, A, C, y, 9, f[17]), C = i(C, D, z, A, S, 14, f[18]), A = i(A, C, D, z, l, 20, f[19]), z = i(z, A, C, D, _, 5, f[20]), D = i(D, z, A, C, k, 9, f[21]), C = i(C, D, z, A, H, 14, f[22]), A = i(A, C, D, z, p, 20, f[23]), z = i(z, A, C, D, w, 5, f[24]), D = i(D, z, A, C, b, 9, f[25]), C = i(C, D, z, A, v, 14, f[26]), A = i(A, C, D, z, B, 20, f[27]), z = i(z, A, C, D, x, 5, f[28]), D = i(D, z, A, C, d, 9, f[29]), C = i(C, D, z, A, g, 14, f[30]), A = i(A, C, D, z, m, 20, f[31]), z = n(z, A, C, D, _, 4, f[32]), D = n(D, z, A, C, B, 11, f[33]), C = n(C, D, z, A, S, 16, f[34]), A = n(A, C, D, z, b, 23, f[35]), z = n(z, A, C, D, u, 4, f[36]), D = n(D, z, A, C, p, 11, f[37]), C = n(C, D, z, A, g, 16, f[38]), A = n(A, C, D, z, k, 23, f[39]), z = n(z, A, C, D, x, 4, f[40]), D = n(D, z, A, C, l, 11, f[41]), C = n(C, D, z, A, v, 16, f[42]), A = n(A, C, D, z, y, 23, f[43]), z = n(z, A, C, D, w, 4, f[44]), D = n(D, z, A, C, m, 11, f[45]), C = n(C, D, z, A, H, 16, f[46]), A = n(A, C, D, z, d, 23, f[47]), z = o(z, A, C, D, l, 6, f[48]), D = o(D, z, A, C, g, 10, f[49]), C = o(C, D, z, A, b, 15, f[50]), A = o(A, C, D, z, _, 21, f[51]), z = o(z, A, C, D, m, 6, f[52]), D = o(D, z, A, C, v, 10, f[53]), C = o(C, D, z, A, k, 15, f[54]), A = o(A, C, D, z, u, 21, f[55]), z = o(z, A, C, D, B, 6, f[56]), D = o(D, z, A, C, H, 10, f[57]), C = o(C, D, z, A, y, 15, f[58]), A = o(A, C, D, z, x, 21, f[59]), z = o(z, A, C, D, p, 6, f[60]), D = o(D, z, A, C, S, 10, f[61]), C = o(C, D, z, A, d, 15, f[62]), A = o(A, C, D, z, w, 21, f[63]), h[0] = h[0] + z | 0, h[1] = h[1] + A | 0, h[2] = h[2] + C | 0, h[3] = h[3] + D | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = 8 * this._nDataBytes, + n = 8 * t.sigBytes; + e[n >>> 5] |= 128 << 24 - n % 32; + var o = r.floor(i / 4294967296), + s = i; + e[(n + 64 >>> 9 << 4) + 15] = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), e[(n + 64 >>> 9 << 4) + 14] = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8), t.sigBytes = 4 * (e.length + 1), this._process(); + + for (var a = this._hash, c = a.words, h = 0; h < 4; h++) { + var l = c[h]; + c[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); + } + + return a; + }, + clone: function clone() { + var t = h.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + s.MD5 = h._createHelper(u), s.HmacMD5 = h._createHmacHelper(u); + }(Math), function () { + var r = t, + e = r.lib, + i = e.WordArray, + n = e.Hasher, + o = r.algo, + s = [], + a = o.SHA1 = n.extend({ + _doReset: function _doReset() { + this._hash = new i.init([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], a = e[3], c = e[4], h = 0; h < 80; h++) { + if (h < 16) s[h] = 0 | t[r + h];else { + var l = s[h - 3] ^ s[h - 8] ^ s[h - 14] ^ s[h - 16]; + s[h] = l << 1 | l >>> 31; + } + var f = (i << 5 | i >>> 27) + c + s[h]; + f += h < 20 ? (n & o | ~n & a) + 1518500249 : h < 40 ? (n ^ o ^ a) + 1859775393 : h < 60 ? (n & o | n & a | o & a) - 1894007588 : (n ^ o ^ a) - 899497514, c = a, a = o, o = n << 30 | n >>> 2, n = i, i = f; + } + + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + a | 0, e[4] = e[4] + c | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + return r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = Math.floor(e / 4294967296), r[(i + 64 >>> 9 << 4) + 15] = e, t.sigBytes = 4 * r.length, this._process(), this._hash; + }, + clone: function clone() { + var t = n.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + r.SHA1 = n._createHelper(a), r.HmacSHA1 = n._createHmacHelper(a); + }(), function (r) { + var e = t, + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.algo, + a = [], + c = []; + !function () { + function t(t) { + for (var e = r.sqrt(t), i = 2; i <= e; i++) { + if (!(t % i)) return !1; + } + + return !0; + } + + function e(t) { + return 4294967296 * (t - (0 | t)) | 0; + } + + for (var i = 2, n = 0; n < 64;) { + t(i) && (n < 8 && (a[n] = e(r.pow(i, .5))), c[n] = e(r.pow(i, 1 / 3)), n++), i++; + } + }(); + var h = [], + l = s.SHA256 = o.extend({ + _doReset: function _doReset() { + this._hash = new n.init(a.slice(0)); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], l = e[5], f = e[6], u = e[7], d = 0; d < 64; d++) { + if (d < 16) h[d] = 0 | t[r + d];else { + var v = h[d - 15], + p = (v << 25 | v >>> 7) ^ (v << 14 | v >>> 18) ^ v >>> 3, + _ = h[d - 2], + y = (_ << 15 | _ >>> 17) ^ (_ << 13 | _ >>> 19) ^ _ >>> 10; + h[d] = p + h[d - 7] + y + h[d - 16]; + } + var g = a & l ^ ~a & f, + B = i & n ^ i & o ^ n & o, + w = (i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22), + k = (a << 26 | a >>> 6) ^ (a << 21 | a >>> 11) ^ (a << 7 | a >>> 25), + S = u + k + g + c[d] + h[d], + m = w + B; + u = f, f = l, l = a, a = s + S | 0, s = o, o = n, n = i, i = S + m | 0; + } + + e[0] = e[0] + i | 0, e[1] = e[1] + n | 0, e[2] = e[2] + o | 0, e[3] = e[3] + s | 0, e[4] = e[4] + a | 0, e[5] = e[5] + l | 0, e[6] = e[6] + f | 0, e[7] = e[7] + u | 0; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = 8 * this._nDataBytes, + n = 8 * t.sigBytes; + return e[n >>> 5] |= 128 << 24 - n % 32, e[(n + 64 >>> 9 << 4) + 14] = r.floor(i / 4294967296), e[(n + 64 >>> 9 << 4) + 15] = i, t.sigBytes = 4 * e.length, this._process(), this._hash; + }, + clone: function clone() { + var t = o.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + e.SHA256 = o._createHelper(l), e.HmacSHA256 = o._createHmacHelper(l); + }(Math), function () { + function r(t) { + return t << 8 & 4278255360 | t >>> 8 & 16711935; + } + + var e = t, + i = e.lib, + n = i.WordArray, + o = e.enc; + o.Utf16 = o.Utf16BE = { + stringify: function stringify(t) { + for (var r = t.words, e = t.sigBytes, i = [], n = 0; n < e; n += 2) { + var o = r[n >>> 2] >>> 16 - n % 4 * 8 & 65535; + i.push(String.fromCharCode(o)); + } + + return i.join(""); + }, + parse: function parse(t) { + for (var r = t.length, e = [], i = 0; i < r; i++) { + e[i >>> 1] |= t.charCodeAt(i) << 16 - i % 2 * 16; + } + + return n.create(e, 2 * r); + } + }; + o.Utf16LE = { + stringify: function stringify(t) { + for (var e = t.words, i = t.sigBytes, n = [], o = 0; o < i; o += 2) { + var s = r(e[o >>> 2] >>> 16 - o % 4 * 8 & 65535); + n.push(String.fromCharCode(s)); + } + + return n.join(""); + }, + parse: function parse(t) { + for (var e = t.length, i = [], o = 0; o < e; o++) { + i[o >>> 1] |= r(t.charCodeAt(o) << 16 - o % 2 * 16); + } + + return n.create(i, 2 * e); + } + }; + }(), function () { + if ("function" == typeof ArrayBuffer) { + var r = t, + e = r.lib, + i = e.WordArray, + n = i.init, + o = i.init = function (t) { + if (t instanceof ArrayBuffer && (t = new Uint8Array(t)), (t instanceof Int8Array || "undefined" != typeof Uint8ClampedArray && t instanceof Uint8ClampedArray || t instanceof Int16Array || t instanceof Uint16Array || t instanceof Int32Array || t instanceof Uint32Array || t instanceof Float32Array || t instanceof Float64Array) && (t = new Uint8Array(t.buffer, t.byteOffset, t.byteLength)), t instanceof Uint8Array) { + for (var r = t.byteLength, e = [], i = 0; i < r; i++) { + e[i >>> 2] |= t[i] << 24 - i % 4 * 8; + } + + n.call(this, e, r); + } else n.apply(this, arguments); + }; + + o.prototype = i; + } + }(), function (r) { + function e(t, r, e) { + return t ^ r ^ e; + } + + function i(t, r, e) { + return t & r | ~t & e; + } + + function n(t, r, e) { + return (t | ~r) ^ e; + } + + function o(t, r, e) { + return t & e | r & ~e; + } + + function s(t, r, e) { + return t ^ (r | ~e); + } + + function a(t, r) { + return t << r | t >>> 32 - r; + } + + var c = t, + h = c.lib, + l = h.WordArray, + f = h.Hasher, + u = c.algo, + d = l.create([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]), + v = l.create([5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]), + p = l.create([11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6]), + _ = l.create([8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11]), + y = l.create([0, 1518500249, 1859775393, 2400959708, 2840853838]), + g = l.create([1352829926, 1548603684, 1836072691, 2053994217, 0]), + B = u.RIPEMD160 = f.extend({ + _doReset: function _doReset() { + this._hash = l.create([1732584193, 4023233417, 2562383102, 271733878, 3285377520]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var c = 0; c < 16; c++) { + var h = r + c, + l = t[h]; + t[h] = 16711935 & (l << 8 | l >>> 24) | 4278255360 & (l << 24 | l >>> 8); + } + + var f, + u, + B, + w, + k, + S, + m, + x, + b, + H, + z = this._hash.words, + A = y.words, + C = g.words, + D = d.words, + R = v.words, + E = p.words, + M = _.words; + S = f = z[0], m = u = z[1], x = B = z[2], b = w = z[3], H = k = z[4]; + + for (var F, c = 0; c < 80; c += 1) { + F = f + t[r + D[c]] | 0, F += c < 16 ? e(u, B, w) + A[0] : c < 32 ? i(u, B, w) + A[1] : c < 48 ? n(u, B, w) + A[2] : c < 64 ? o(u, B, w) + A[3] : s(u, B, w) + A[4], F |= 0, F = a(F, E[c]), F = F + k | 0, f = k, k = w, w = a(B, 10), B = u, u = F, F = S + t[r + R[c]] | 0, F += c < 16 ? s(m, x, b) + C[0] : c < 32 ? o(m, x, b) + C[1] : c < 48 ? n(m, x, b) + C[2] : c < 64 ? i(m, x, b) + C[3] : e(m, x, b) + C[4], F |= 0, F = a(F, M[c]), F = F + H | 0, S = H, H = b, b = a(x, 10), x = m, m = F; + } + + F = z[1] + B + b | 0, z[1] = z[2] + w + H | 0, z[2] = z[3] + k + S | 0, z[3] = z[4] + f + m | 0, z[4] = z[0] + u + x | 0, z[0] = F; + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 64 >>> 9 << 4) + 14] = 16711935 & (e << 8 | e >>> 24) | 4278255360 & (e << 24 | e >>> 8), t.sigBytes = 4 * (r.length + 1), this._process(); + + for (var n = this._hash, o = n.words, s = 0; s < 5; s++) { + var a = o[s]; + o[s] = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8); + } + + return n; + }, + clone: function clone() { + var t = f.clone.call(this); + return t._hash = this._hash.clone(), t; + } + }); + + c.RIPEMD160 = f._createHelper(B), c.HmacRIPEMD160 = f._createHmacHelper(B); + }(Math), function () { + var r = t, + e = r.lib, + i = e.Base, + n = r.enc, + o = n.Utf8, + s = r.algo; + s.HMAC = i.extend({ + init: function init(t, r) { + t = this._hasher = new t.init(), "string" == typeof r && (r = o.parse(r)); + var e = t.blockSize, + i = 4 * e; + r.sigBytes > i && (r = t.finalize(r)), r.clamp(); + + for (var n = this._oKey = r.clone(), s = this._iKey = r.clone(), a = n.words, c = s.words, h = 0; h < e; h++) { + a[h] ^= 1549556828, c[h] ^= 909522486; + } + + n.sigBytes = s.sigBytes = i, this.reset(); + }, + reset: function reset() { + var t = this._hasher; + t.reset(), t.update(this._iKey); + }, + update: function update(t) { + return this._hasher.update(t), this; + }, + finalize: function finalize(t) { + var r = this._hasher, + e = r.finalize(t); + r.reset(); + var i = r.finalize(this._oKey.clone().concat(e)); + return i; + } + }); + }(), function () { + var r = t, + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.SHA1, + a = o.HMAC, + c = o.PBKDF2 = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = a.create(e.hasher, t), o = n.create(), s = n.create([1]), c = o.words, h = s.words, l = e.keySize, f = e.iterations; c.length < l;) { + var u = i.update(r).finalize(s); + i.reset(); + + for (var d = u.words, v = d.length, p = u, _ = 1; _ < f; _++) { + p = i.finalize(p), i.reset(); + + for (var y = p.words, g = 0; g < v; g++) { + d[g] ^= y[g]; + } + } + + o.concat(u), h[0]++; + } + + return o.sigBytes = 4 * l, o; + } + }); + + r.PBKDF2 = function (t, r, e) { + return c.create(e).compute(t, r); + }; + }(), function () { + var r = t, + e = r.lib, + i = e.Base, + n = e.WordArray, + o = r.algo, + s = o.MD5, + a = o.EvpKDF = i.extend({ + cfg: i.extend({ + keySize: 4, + hasher: s, + iterations: 1 + }), + init: function init(t) { + this.cfg = this.cfg.extend(t); + }, + compute: function compute(t, r) { + for (var e = this.cfg, i = e.hasher.create(), o = n.create(), s = o.words, a = e.keySize, c = e.iterations; s.length < a;) { + h && i.update(h); + var h = i.update(t).finalize(r); + i.reset(); + + for (var l = 1; l < c; l++) { + h = i.finalize(h), i.reset(); + } + + o.concat(h); + } + + return o.sigBytes = 4 * a, o; + } + }); + + r.EvpKDF = function (t, r, e) { + return a.create(e).compute(t, r); + }; + }(), function () { + var r = t, + e = r.lib, + i = e.WordArray, + n = r.algo, + o = n.SHA256, + s = n.SHA224 = o.extend({ + _doReset: function _doReset() { + this._hash = new i.init([3238371032, 914150663, 812702999, 4144912697, 4290775857, 1750603025, 1694076839, 3204075428]); + }, + _doFinalize: function _doFinalize() { + var t = o._doFinalize.call(this); + + return t.sigBytes -= 4, t; + } + }); + r.SHA224 = o._createHelper(s), r.HmacSHA224 = o._createHmacHelper(s); + }(), function (r) { + var e = t, + i = e.lib, + n = i.Base, + o = i.WordArray, + s = e.x64 = {}; + s.Word = n.extend({ + init: function init(t, r) { + this.high = t, this.low = r; + } + }), s.WordArray = n.extend({ + init: function init(t, e) { + t = this.words = t || [], e != r ? this.sigBytes = e : this.sigBytes = 8 * t.length; + }, + toX32: function toX32() { + for (var t = this.words, r = t.length, e = [], i = 0; i < r; i++) { + var n = t[i]; + e.push(n.high), e.push(n.low); + } + + return o.create(e, this.sigBytes); + }, + clone: function clone() { + for (var t = n.clone.call(this), r = t.words = this.words.slice(0), e = r.length, i = 0; i < e; i++) { + r[i] = r[i].clone(); + } + + return t; + } + }); + }(), function (r) { + var e = t, + i = e.lib, + n = i.WordArray, + o = i.Hasher, + s = e.x64, + a = s.Word, + c = e.algo, + h = [], + l = [], + f = []; + !function () { + for (var t = 1, r = 0, e = 0; e < 24; e++) { + h[t + 5 * r] = (e + 1) * (e + 2) / 2 % 64; + var i = r % 5, + n = (2 * t + 3 * r) % 5; + t = i, r = n; + } + + for (var t = 0; t < 5; t++) { + for (var r = 0; r < 5; r++) { + l[t + 5 * r] = r + (2 * t + 3 * r) % 5 * 5; + } + } + + for (var o = 1, s = 0; s < 24; s++) { + for (var c = 0, u = 0, d = 0; d < 7; d++) { + if (1 & o) { + var v = (1 << d) - 1; + v < 32 ? u ^= 1 << v : c ^= 1 << v - 32; + } + + 128 & o ? o = o << 1 ^ 113 : o <<= 1; + } + + f[s] = a.create(c, u); + } + }(); + var u = []; + !function () { + for (var t = 0; t < 25; t++) { + u[t] = a.create(); + } + }(); + var d = c.SHA3 = o.extend({ + cfg: o.cfg.extend({ + outputLength: 512 + }), + _doReset: function _doReset() { + for (var t = this._state = [], r = 0; r < 25; r++) { + t[r] = new a.init(); + } + + this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._state, i = this.blockSize / 2, n = 0; n < i; n++) { + var o = t[r + 2 * n], + s = t[r + 2 * n + 1]; + o = 16711935 & (o << 8 | o >>> 24) | 4278255360 & (o << 24 | o >>> 8), s = 16711935 & (s << 8 | s >>> 24) | 4278255360 & (s << 24 | s >>> 8); + var a = e[n]; + a.high ^= s, a.low ^= o; + } + + for (var c = 0; c < 24; c++) { + for (var d = 0; d < 5; d++) { + for (var v = 0, p = 0, _ = 0; _ < 5; _++) { + var a = e[d + 5 * _]; + v ^= a.high, p ^= a.low; + } + + var y = u[d]; + y.high = v, y.low = p; + } + + for (var d = 0; d < 5; d++) { + for (var g = u[(d + 4) % 5], B = u[(d + 1) % 5], w = B.high, k = B.low, v = g.high ^ (w << 1 | k >>> 31), p = g.low ^ (k << 1 | w >>> 31), _ = 0; _ < 5; _++) { + var a = e[d + 5 * _]; + a.high ^= v, a.low ^= p; + } + } + + for (var S = 1; S < 25; S++) { + var a = e[S], + m = a.high, + x = a.low, + b = h[S]; + if (b < 32) var v = m << b | x >>> 32 - b, + p = x << b | m >>> 32 - b;else var v = x << b - 32 | m >>> 64 - b, + p = m << b - 32 | x >>> 64 - b; + var H = u[l[S]]; + H.high = v, H.low = p; + } + + var z = u[0], + A = e[0]; + z.high = A.high, z.low = A.low; + + for (var d = 0; d < 5; d++) { + for (var _ = 0; _ < 5; _++) { + var S = d + 5 * _, + a = e[S], + C = u[S], + D = u[(d + 1) % 5 + 5 * _], + R = u[(d + 2) % 5 + 5 * _]; + a.high = C.high ^ ~D.high & R.high, a.low = C.low ^ ~D.low & R.low; + } + } + + var a = e[0], + E = f[c]; + a.high ^= E.high, a.low ^= E.low; + } + }, + _doFinalize: function _doFinalize() { + var t = this._data, + e = t.words, + i = (8 * this._nDataBytes, 8 * t.sigBytes), + o = 32 * this.blockSize; + e[i >>> 5] |= 1 << 24 - i % 32, e[(r.ceil((i + 1) / o) * o >>> 5) - 1] |= 128, t.sigBytes = 4 * e.length, this._process(); + + for (var s = this._state, a = this.cfg.outputLength / 8, c = a / 8, h = [], l = 0; l < c; l++) { + var f = s[l], + u = f.high, + d = f.low; + u = 16711935 & (u << 8 | u >>> 24) | 4278255360 & (u << 24 | u >>> 8), d = 16711935 & (d << 8 | d >>> 24) | 4278255360 & (d << 24 | d >>> 8), h.push(d), h.push(u); + } + + return new n.init(h, a); + }, + clone: function clone() { + for (var t = o.clone.call(this), r = t._state = this._state.slice(0), e = 0; e < 25; e++) { + r[e] = r[e].clone(); + } + + return t; + } + }); + e.SHA3 = o._createHelper(d), e.HmacSHA3 = o._createHmacHelper(d); + }(Math), function () { + function r() { + return s.create.apply(s, arguments); + } + + var e = t, + i = e.lib, + n = i.Hasher, + o = e.x64, + s = o.Word, + a = o.WordArray, + c = e.algo, + h = [r(1116352408, 3609767458), r(1899447441, 602891725), r(3049323471, 3964484399), r(3921009573, 2173295548), r(961987163, 4081628472), r(1508970993, 3053834265), r(2453635748, 2937671579), r(2870763221, 3664609560), r(3624381080, 2734883394), r(310598401, 1164996542), r(607225278, 1323610764), r(1426881987, 3590304994), r(1925078388, 4068182383), r(2162078206, 991336113), r(2614888103, 633803317), r(3248222580, 3479774868), r(3835390401, 2666613458), r(4022224774, 944711139), r(264347078, 2341262773), r(604807628, 2007800933), r(770255983, 1495990901), r(1249150122, 1856431235), r(1555081692, 3175218132), r(1996064986, 2198950837), r(2554220882, 3999719339), r(2821834349, 766784016), r(2952996808, 2566594879), r(3210313671, 3203337956), r(3336571891, 1034457026), r(3584528711, 2466948901), r(113926993, 3758326383), r(338241895, 168717936), r(666307205, 1188179964), r(773529912, 1546045734), r(1294757372, 1522805485), r(1396182291, 2643833823), r(1695183700, 2343527390), r(1986661051, 1014477480), r(2177026350, 1206759142), r(2456956037, 344077627), r(2730485921, 1290863460), r(2820302411, 3158454273), r(3259730800, 3505952657), r(3345764771, 106217008), r(3516065817, 3606008344), r(3600352804, 1432725776), r(4094571909, 1467031594), r(275423344, 851169720), r(430227734, 3100823752), r(506948616, 1363258195), r(659060556, 3750685593), r(883997877, 3785050280), r(958139571, 3318307427), r(1322822218, 3812723403), r(1537002063, 2003034995), r(1747873779, 3602036899), r(1955562222, 1575990012), r(2024104815, 1125592928), r(2227730452, 2716904306), r(2361852424, 442776044), r(2428436474, 593698344), r(2756734187, 3733110249), r(3204031479, 2999351573), r(3329325298, 3815920427), r(3391569614, 3928383900), r(3515267271, 566280711), r(3940187606, 3454069534), r(4118630271, 4000239992), r(116418474, 1914138554), r(174292421, 2731055270), r(289380356, 3203993006), r(460393269, 320620315), r(685471733, 587496836), r(852142971, 1086792851), r(1017036298, 365543100), r(1126000580, 2618297676), r(1288033470, 3409855158), r(1501505948, 4234509866), r(1607167915, 987167468), r(1816402316, 1246189591)], + l = []; + !function () { + for (var t = 0; t < 80; t++) { + l[t] = r(); + } + }(); + var f = c.SHA512 = n.extend({ + _doReset: function _doReset() { + this._hash = new a.init([new s.init(1779033703, 4089235720), new s.init(3144134277, 2227873595), new s.init(1013904242, 4271175723), new s.init(2773480762, 1595750129), new s.init(1359893119, 2917565137), new s.init(2600822924, 725511199), new s.init(528734635, 4215389547), new s.init(1541459225, 327033209)]); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + for (var e = this._hash.words, i = e[0], n = e[1], o = e[2], s = e[3], a = e[4], c = e[5], f = e[6], u = e[7], d = i.high, v = i.low, p = n.high, _ = n.low, y = o.high, g = o.low, B = s.high, w = s.low, k = a.high, S = a.low, m = c.high, x = c.low, b = f.high, H = f.low, z = u.high, A = u.low, C = d, D = v, R = p, E = _, M = y, F = g, P = B, W = w, O = k, U = S, I = m, K = x, X = b, L = H, j = z, N = A, T = 0; T < 80; T++) { + var Z = l[T]; + if (T < 16) var q = Z.high = 0 | t[r + 2 * T], + G = Z.low = 0 | t[r + 2 * T + 1];else { + var J = l[T - 15], + $ = J.high, + Q = J.low, + V = ($ >>> 1 | Q << 31) ^ ($ >>> 8 | Q << 24) ^ $ >>> 7, + Y = (Q >>> 1 | $ << 31) ^ (Q >>> 8 | $ << 24) ^ (Q >>> 7 | $ << 25), + tt = l[T - 2], + rt = tt.high, + et = tt.low, + it = (rt >>> 19 | et << 13) ^ (rt << 3 | et >>> 29) ^ rt >>> 6, + nt = (et >>> 19 | rt << 13) ^ (et << 3 | rt >>> 29) ^ (et >>> 6 | rt << 26), + ot = l[T - 7], + st = ot.high, + at = ot.low, + ct = l[T - 16], + ht = ct.high, + lt = ct.low, + G = Y + at, + q = V + st + (G >>> 0 < Y >>> 0 ? 1 : 0), + G = G + nt, + q = q + it + (G >>> 0 < nt >>> 0 ? 1 : 0), + G = G + lt, + q = q + ht + (G >>> 0 < lt >>> 0 ? 1 : 0); + Z.high = q, Z.low = G; + } + + var ft = O & I ^ ~O & X, + ut = U & K ^ ~U & L, + dt = C & R ^ C & M ^ R & M, + vt = D & E ^ D & F ^ E & F, + pt = (C >>> 28 | D << 4) ^ (C << 30 | D >>> 2) ^ (C << 25 | D >>> 7), + _t = (D >>> 28 | C << 4) ^ (D << 30 | C >>> 2) ^ (D << 25 | C >>> 7), + yt = (O >>> 14 | U << 18) ^ (O >>> 18 | U << 14) ^ (O << 23 | U >>> 9), + gt = (U >>> 14 | O << 18) ^ (U >>> 18 | O << 14) ^ (U << 23 | O >>> 9), + Bt = h[T], + wt = Bt.high, + kt = Bt.low, + St = N + gt, + mt = j + yt + (St >>> 0 < N >>> 0 ? 1 : 0), + St = St + ut, + mt = mt + ft + (St >>> 0 < ut >>> 0 ? 1 : 0), + St = St + kt, + mt = mt + wt + (St >>> 0 < kt >>> 0 ? 1 : 0), + St = St + G, + mt = mt + q + (St >>> 0 < G >>> 0 ? 1 : 0), + xt = _t + vt, + bt = pt + dt + (xt >>> 0 < _t >>> 0 ? 1 : 0); + + j = X, N = L, X = I, L = K, I = O, K = U, U = W + St | 0, O = P + mt + (U >>> 0 < W >>> 0 ? 1 : 0) | 0, P = M, W = F, M = R, F = E, R = C, E = D, D = St + xt | 0, C = mt + bt + (D >>> 0 < St >>> 0 ? 1 : 0) | 0; + } + + v = i.low = v + D, i.high = d + C + (v >>> 0 < D >>> 0 ? 1 : 0), _ = n.low = _ + E, n.high = p + R + (_ >>> 0 < E >>> 0 ? 1 : 0), g = o.low = g + F, o.high = y + M + (g >>> 0 < F >>> 0 ? 1 : 0), w = s.low = w + W, s.high = B + P + (w >>> 0 < W >>> 0 ? 1 : 0), S = a.low = S + U, a.high = k + O + (S >>> 0 < U >>> 0 ? 1 : 0), x = c.low = x + K, c.high = m + I + (x >>> 0 < K >>> 0 ? 1 : 0), H = f.low = H + L, f.high = b + X + (H >>> 0 < L >>> 0 ? 1 : 0), A = u.low = A + N, u.high = z + j + (A >>> 0 < N >>> 0 ? 1 : 0); + }, + _doFinalize: function _doFinalize() { + var t = this._data, + r = t.words, + e = 8 * this._nDataBytes, + i = 8 * t.sigBytes; + r[i >>> 5] |= 128 << 24 - i % 32, r[(i + 128 >>> 10 << 5) + 30] = Math.floor(e / 4294967296), r[(i + 128 >>> 10 << 5) + 31] = e, t.sigBytes = 4 * r.length, this._process(); + + var n = this._hash.toX32(); + + return n; + }, + clone: function clone() { + var t = n.clone.call(this); + return t._hash = this._hash.clone(), t; + }, + blockSize: 32 + }); + e.SHA512 = n._createHelper(f), e.HmacSHA512 = n._createHmacHelper(f); + }(), function () { + var r = t, + e = r.x64, + i = e.Word, + n = e.WordArray, + o = r.algo, + s = o.SHA512, + a = o.SHA384 = s.extend({ + _doReset: function _doReset() { + this._hash = new n.init([new i.init(3418070365, 3238371032), new i.init(1654270250, 914150663), new i.init(2438529370, 812702999), new i.init(355462360, 4144912697), new i.init(1731405415, 4290775857), new i.init(2394180231, 1750603025), new i.init(3675008525, 1694076839), new i.init(1203062813, 3204075428)]); + }, + _doFinalize: function _doFinalize() { + var t = s._doFinalize.call(this); + + return t.sigBytes -= 16, t; + } + }); + r.SHA384 = s._createHelper(a), r.HmacSHA384 = s._createHmacHelper(a); + }(), t.lib.Cipher || function (r) { + var e = t, + i = e.lib, + n = i.Base, + o = i.WordArray, + s = i.BufferedBlockAlgorithm, + a = e.enc, + c = (a.Utf8, a.Base64), + h = e.algo, + l = h.EvpKDF, + f = i.Cipher = s.extend({ + cfg: n.extend(), + createEncryptor: function createEncryptor(t, r) { + return this.create(this._ENC_XFORM_MODE, t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.create(this._DEC_XFORM_MODE, t, r); + }, + init: function init(t, r, e) { + this.cfg = this.cfg.extend(e), this._xformMode = t, this._key = r, this.reset(); + }, + reset: function reset() { + s.reset.call(this), this._doReset(); + }, + process: function process(t) { + return this._append(t), this._process(); + }, + finalize: function finalize(t) { + t && this._append(t); + + var r = this._doFinalize(); + + return r; + }, + keySize: 4, + ivSize: 4, + _ENC_XFORM_MODE: 1, + _DEC_XFORM_MODE: 2, + _createHelper: function () { + function t(t) { + return "string" == typeof t ? m : w; + } + + return function (r) { + return { + encrypt: function encrypt(e, i, n) { + return t(i).encrypt(r, e, i, n); + }, + decrypt: function decrypt(e, i, n) { + return t(i).decrypt(r, e, i, n); + } + }; + }; + }() + }), + u = (i.StreamCipher = f.extend({ + _doFinalize: function _doFinalize() { + var t = this._process(!0); + + return t; + }, + blockSize: 1 + }), e.mode = {}), + d = i.BlockCipherMode = n.extend({ + createEncryptor: function createEncryptor(t, r) { + return this.Encryptor.create(t, r); + }, + createDecryptor: function createDecryptor(t, r) { + return this.Decryptor.create(t, r); + }, + init: function init(t, r) { + this._cipher = t, this._iv = r; + } + }), + v = u.CBC = function () { + function t(t, e, i) { + var n = this._iv; + + if (n) { + var o = n; + this._iv = r; + } else var o = this._prevBlock; + + for (var s = 0; s < i; s++) { + t[e + s] ^= o[s]; + } + } + + var e = d.extend(); + return e.Encryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, + n = i.blockSize; + t.call(this, r, e, n), i.encryptBlock(r, e), this._prevBlock = r.slice(e, e + n); + } + }), e.Decryptor = e.extend({ + processBlock: function processBlock(r, e) { + var i = this._cipher, + n = i.blockSize, + o = r.slice(e, e + n); + i.decryptBlock(r, e), t.call(this, r, e, n), this._prevBlock = o; + } + }), e; + }(), + p = e.pad = {}, + _ = p.Pkcs7 = { + pad: function pad(t, r) { + for (var e = 4 * r, i = e - t.sigBytes % e, n = i << 24 | i << 16 | i << 8 | i, s = [], a = 0; a < i; a += 4) { + s.push(n); + } + + var c = o.create(s, i); + t.concat(c); + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, + y = (i.BlockCipher = f.extend({ + cfg: f.cfg.extend({ + mode: v, + padding: _ + }), + reset: function reset() { + f.reset.call(this); + var t = this.cfg, + r = t.iv, + e = t.mode; + if (this._xformMode == this._ENC_XFORM_MODE) var i = e.createEncryptor;else { + var i = e.createDecryptor; + this._minBufferSize = 1; + } + this._mode && this._mode.__creator == i ? this._mode.init(this, r && r.words) : (this._mode = i.call(e, this, r && r.words), this._mode.__creator = i); + }, + _doProcessBlock: function _doProcessBlock(t, r) { + this._mode.processBlock(t, r); + }, + _doFinalize: function _doFinalize() { + var t = this.cfg.padding; + + if (this._xformMode == this._ENC_XFORM_MODE) { + t.pad(this._data, this.blockSize); + + var r = this._process(!0); + } else { + var r = this._process(!0); + + t.unpad(r); + } + + return r; + }, + blockSize: 4 + }), i.CipherParams = n.extend({ + init: function init(t) { + this.mixIn(t); + }, + toString: function toString(t) { + return (t || this.formatter).stringify(this); + } + })), + g = e.format = {}, + B = g.OpenSSL = { + stringify: function stringify(t) { + var r = t.ciphertext, + e = t.salt; + if (e) var i = o.create([1398893684, 1701076831]).concat(e).concat(r);else var i = r; + return i.toString(c); + }, + parse: function parse(t) { + var r = c.parse(t), + e = r.words; + + if (1398893684 == e[0] && 1701076831 == e[1]) { + var i = o.create(e.slice(2, 4)); + e.splice(0, 4), r.sigBytes -= 16; + } + + return y.create({ + ciphertext: r, + salt: i + }); + } + }, + w = i.SerializableCipher = n.extend({ + cfg: n.extend({ + format: B + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = t.createEncryptor(e, i), + o = n.finalize(r), + s = n.cfg; + return y.create({ + ciphertext: o, + key: e, + iv: s.iv, + algorithm: t, + mode: s.mode, + padding: s.padding, + blockSize: t.blockSize, + formatter: i.format + }); + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = t.createDecryptor(e, i).finalize(r.ciphertext); + return n; + }, + _parse: function _parse(t, r) { + return "string" == typeof t ? r.parse(t, this) : t; + } + }), + k = e.kdf = {}, + S = k.OpenSSL = { + execute: function execute(t, r, e, i) { + i || (i = o.random(8)); + var n = l.create({ + keySize: r + e + }).compute(t, i), + s = o.create(n.words.slice(r), 4 * e); + return n.sigBytes = 4 * r, y.create({ + key: n, + iv: s, + salt: i + }); + } + }, + m = i.PasswordBasedCipher = w.extend({ + cfg: w.cfg.extend({ + kdf: S + }), + encrypt: function encrypt(t, r, e, i) { + i = this.cfg.extend(i); + var n = i.kdf.execute(e, t.keySize, t.ivSize); + i.iv = n.iv; + var o = w.encrypt.call(this, t, r, n.key, i); + return o.mixIn(n), o; + }, + decrypt: function decrypt(t, r, e, i) { + i = this.cfg.extend(i), r = this._parse(r, i.format); + var n = i.kdf.execute(e, t.keySize, t.ivSize, r.salt); + i.iv = n.iv; + var o = w.decrypt.call(this, t, r, n.key, i); + return o; + } + }); + }(), t.mode.CFB = function () { + function r(t, r, e, i) { + var n = this._iv; + + if (n) { + var o = n.slice(0); + this._iv = void 0; + } else var o = this._prevBlock; + + i.encryptBlock(o, 0); + + for (var s = 0; s < e; s++) { + t[r + s] ^= o[s]; + } + } + + var e = t.lib.BlockCipherMode.extend(); + return e.Encryptor = e.extend({ + processBlock: function processBlock(t, e) { + var i = this._cipher, + n = i.blockSize; + r.call(this, t, e, n, i), this._prevBlock = t.slice(e, e + n); + } + }), e.Decryptor = e.extend({ + processBlock: function processBlock(t, e) { + var i = this._cipher, + n = i.blockSize, + o = t.slice(e, e + n); + r.call(this, t, e, n, i), this._prevBlock = o; + } + }), e; + }(), t.mode.ECB = function () { + var r = t.lib.BlockCipherMode.extend(); + return r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + this._cipher.encryptBlock(t, r); + } + }), r.Decryptor = r.extend({ + processBlock: function processBlock(t, r) { + this._cipher.decryptBlock(t, r); + } + }), r; + }(), t.pad.AnsiX923 = { + pad: function pad(t, r) { + var e = t.sigBytes, + i = 4 * r, + n = i - e % i, + o = e + n - 1; + t.clamp(), t.words[o >>> 2] |= n << 24 - o % 4 * 8, t.sigBytes += n; + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, t.pad.Iso10126 = { + pad: function pad(r, e) { + var i = 4 * e, + n = i - r.sigBytes % i; + r.concat(t.lib.WordArray.random(n - 1)).concat(t.lib.WordArray.create([n << 24], 1)); + }, + unpad: function unpad(t) { + var r = 255 & t.words[t.sigBytes - 1 >>> 2]; + t.sigBytes -= r; + } + }, t.pad.Iso97971 = { + pad: function pad(r, e) { + r.concat(t.lib.WordArray.create([2147483648], 1)), t.pad.ZeroPadding.pad(r, e); + }, + unpad: function unpad(r) { + t.pad.ZeroPadding.unpad(r), r.sigBytes--; + } + }, t.mode.OFB = function () { + var r = t.lib.BlockCipherMode.extend(), + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, + i = e.blockSize, + n = this._iv, + o = this._keystream; + n && (o = this._keystream = n.slice(0), this._iv = void 0), e.encryptBlock(o, 0); + + for (var s = 0; s < i; s++) { + t[r + s] ^= o[s]; + } + } + }); + return r.Decryptor = e, r; + }(), t.pad.NoPadding = { + pad: function pad() {}, + unpad: function unpad() {} + }, function (r) { + var e = t, + i = e.lib, + n = i.CipherParams, + o = e.enc, + s = o.Hex, + a = e.format; + a.Hex = { + stringify: function stringify(t) { + return t.ciphertext.toString(s); + }, + parse: function parse(t) { + var r = s.parse(t); + return n.create({ + ciphertext: r + }); + } + }; + }(), function () { + var r = t, + e = r.lib, + i = e.BlockCipher, + n = r.algo, + o = [], + s = [], + a = [], + c = [], + h = [], + l = [], + f = [], + u = [], + d = [], + v = []; + !function () { + for (var t = [], r = 0; r < 256; r++) { + r < 128 ? t[r] = r << 1 : t[r] = r << 1 ^ 283; + } + + for (var e = 0, i = 0, r = 0; r < 256; r++) { + var n = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4; + n = n >>> 8 ^ 255 & n ^ 99, o[e] = n, s[n] = e; + var p = t[e], + _ = t[p], + y = t[_], + g = 257 * t[n] ^ 16843008 * n; + a[e] = g << 24 | g >>> 8, c[e] = g << 16 | g >>> 16, h[e] = g << 8 | g >>> 24, l[e] = g; + var g = 16843009 * y ^ 65537 * _ ^ 257 * p ^ 16843008 * e; + f[n] = g << 24 | g >>> 8, u[n] = g << 16 | g >>> 16, d[n] = g << 8 | g >>> 24, v[n] = g, e ? (e = p ^ t[t[t[y ^ p]]], i ^= t[t[i]]) : e = i = 1; + } + }(); + + var p = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], + _ = n.AES = i.extend({ + _doReset: function _doReset() { + if (!this._nRounds || this._keyPriorReset !== this._key) { + for (var t = this._keyPriorReset = this._key, r = t.words, e = t.sigBytes / 4, i = this._nRounds = e + 6, n = 4 * (i + 1), s = this._keySchedule = [], a = 0; a < n; a++) { + if (a < e) s[a] = r[a];else { + var c = s[a - 1]; + a % e ? e > 6 && a % e == 4 && (c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c]) : (c = c << 8 | c >>> 24, c = o[c >>> 24] << 24 | o[c >>> 16 & 255] << 16 | o[c >>> 8 & 255] << 8 | o[255 & c], c ^= p[a / e | 0] << 24), s[a] = s[a - e] ^ c; + } + } + + for (var h = this._invKeySchedule = [], l = 0; l < n; l++) { + var a = n - l; + if (l % 4) var c = s[a];else var c = s[a - 4]; + l < 4 || a <= 4 ? h[l] = c : h[l] = f[o[c >>> 24]] ^ u[o[c >>> 16 & 255]] ^ d[o[c >>> 8 & 255]] ^ v[o[255 & c]]; + } + } + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._keySchedule, a, c, h, l, o); + }, + decryptBlock: function decryptBlock(t, r) { + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e, this._doCryptBlock(t, r, this._invKeySchedule, f, u, d, v, s); + var e = t[r + 1]; + t[r + 1] = t[r + 3], t[r + 3] = e; + }, + _doCryptBlock: function _doCryptBlock(t, r, e, i, n, o, s, a) { + for (var c = this._nRounds, h = t[r] ^ e[0], l = t[r + 1] ^ e[1], f = t[r + 2] ^ e[2], u = t[r + 3] ^ e[3], d = 4, v = 1; v < c; v++) { + var p = i[h >>> 24] ^ n[l >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & u] ^ e[d++], + _ = i[l >>> 24] ^ n[f >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & h] ^ e[d++], + y = i[f >>> 24] ^ n[u >>> 16 & 255] ^ o[h >>> 8 & 255] ^ s[255 & l] ^ e[d++], + g = i[u >>> 24] ^ n[h >>> 16 & 255] ^ o[l >>> 8 & 255] ^ s[255 & f] ^ e[d++]; + + h = p, l = _, f = y, u = g; + } + + var p = (a[h >>> 24] << 24 | a[l >>> 16 & 255] << 16 | a[f >>> 8 & 255] << 8 | a[255 & u]) ^ e[d++], + _ = (a[l >>> 24] << 24 | a[f >>> 16 & 255] << 16 | a[u >>> 8 & 255] << 8 | a[255 & h]) ^ e[d++], + y = (a[f >>> 24] << 24 | a[u >>> 16 & 255] << 16 | a[h >>> 8 & 255] << 8 | a[255 & l]) ^ e[d++], + g = (a[u >>> 24] << 24 | a[h >>> 16 & 255] << 16 | a[l >>> 8 & 255] << 8 | a[255 & f]) ^ e[d++]; + + t[r] = p, t[r + 1] = _, t[r + 2] = y, t[r + 3] = g; + }, + keySize: 8 + }); + + r.AES = i._createHelper(_); + }(), function () { + function r(t, r) { + var e = (this._lBlock >>> t ^ this._rBlock) & r; + this._rBlock ^= e, this._lBlock ^= e << t; + } + + function e(t, r) { + var e = (this._rBlock >>> t ^ this._lBlock) & r; + this._lBlock ^= e, this._rBlock ^= e << t; + } + + var i = t, + n = i.lib, + o = n.WordArray, + s = n.BlockCipher, + a = i.algo, + c = [57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4], + h = [14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32], + l = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28], + f = [{ + 0: 8421888, + 268435456: 32768, + 536870912: 8421378, + 805306368: 2, + 1073741824: 512, + 1342177280: 8421890, + 1610612736: 8389122, + 1879048192: 8388608, + 2147483648: 514, + 2415919104: 8389120, + 2684354560: 33280, + 2952790016: 8421376, + 3221225472: 32770, + 3489660928: 8388610, + 3758096384: 0, + 4026531840: 33282, + 134217728: 0, + 402653184: 8421890, + 671088640: 33282, + 939524096: 32768, + 1207959552: 8421888, + 1476395008: 512, + 1744830464: 8421378, + 2013265920: 2, + 2281701376: 8389120, + 2550136832: 33280, + 2818572288: 8421376, + 3087007744: 8389122, + 3355443200: 8388610, + 3623878656: 32770, + 3892314112: 514, + 4160749568: 8388608, + 1: 32768, + 268435457: 2, + 536870913: 8421888, + 805306369: 8388608, + 1073741825: 8421378, + 1342177281: 33280, + 1610612737: 512, + 1879048193: 8389122, + 2147483649: 8421890, + 2415919105: 8421376, + 2684354561: 8388610, + 2952790017: 33282, + 3221225473: 514, + 3489660929: 8389120, + 3758096385: 32770, + 4026531841: 0, + 134217729: 8421890, + 402653185: 8421376, + 671088641: 8388608, + 939524097: 512, + 1207959553: 32768, + 1476395009: 8388610, + 1744830465: 2, + 2013265921: 33282, + 2281701377: 32770, + 2550136833: 8389122, + 2818572289: 514, + 3087007745: 8421888, + 3355443201: 8389120, + 3623878657: 0, + 3892314113: 33280, + 4160749569: 8421378 + }, { + 0: 1074282512, + 16777216: 16384, + 33554432: 524288, + 50331648: 1074266128, + 67108864: 1073741840, + 83886080: 1074282496, + 100663296: 1073758208, + 117440512: 16, + 134217728: 540672, + 150994944: 1073758224, + 167772160: 1073741824, + 184549376: 540688, + 201326592: 524304, + 218103808: 0, + 234881024: 16400, + 251658240: 1074266112, + 8388608: 1073758208, + 25165824: 540688, + 41943040: 16, + 58720256: 1073758224, + 75497472: 1074282512, + 92274688: 1073741824, + 109051904: 524288, + 125829120: 1074266128, + 142606336: 524304, + 159383552: 0, + 176160768: 16384, + 192937984: 1074266112, + 209715200: 1073741840, + 226492416: 540672, + 243269632: 1074282496, + 260046848: 16400, + 268435456: 0, + 285212672: 1074266128, + 301989888: 1073758224, + 318767104: 1074282496, + 335544320: 1074266112, + 352321536: 16, + 369098752: 540688, + 385875968: 16384, + 402653184: 16400, + 419430400: 524288, + 436207616: 524304, + 452984832: 1073741840, + 469762048: 540672, + 486539264: 1073758208, + 503316480: 1073741824, + 520093696: 1074282512, + 276824064: 540688, + 293601280: 524288, + 310378496: 1074266112, + 327155712: 16384, + 343932928: 1073758208, + 360710144: 1074282512, + 377487360: 16, + 394264576: 1073741824, + 411041792: 1074282496, + 427819008: 1073741840, + 444596224: 1073758224, + 461373440: 524304, + 478150656: 0, + 494927872: 16400, + 511705088: 1074266128, + 528482304: 540672 + }, { + 0: 260, + 1048576: 0, + 2097152: 67109120, + 3145728: 65796, + 4194304: 65540, + 5242880: 67108868, + 6291456: 67174660, + 7340032: 67174400, + 8388608: 67108864, + 9437184: 67174656, + 10485760: 65792, + 11534336: 67174404, + 12582912: 67109124, + 13631488: 65536, + 14680064: 4, + 15728640: 256, + 524288: 67174656, + 1572864: 67174404, + 2621440: 0, + 3670016: 67109120, + 4718592: 67108868, + 5767168: 65536, + 6815744: 65540, + 7864320: 260, + 8912896: 4, + 9961472: 256, + 11010048: 67174400, + 12058624: 65796, + 13107200: 65792, + 14155776: 67109124, + 15204352: 67174660, + 16252928: 67108864, + 16777216: 67174656, + 17825792: 65540, + 18874368: 65536, + 19922944: 67109120, + 20971520: 256, + 22020096: 67174660, + 23068672: 67108868, + 24117248: 0, + 25165824: 67109124, + 26214400: 67108864, + 27262976: 4, + 28311552: 65792, + 29360128: 67174400, + 30408704: 260, + 31457280: 65796, + 32505856: 67174404, + 17301504: 67108864, + 18350080: 260, + 19398656: 67174656, + 20447232: 0, + 21495808: 65540, + 22544384: 67109120, + 23592960: 256, + 24641536: 67174404, + 25690112: 65536, + 26738688: 67174660, + 27787264: 65796, + 28835840: 67108868, + 29884416: 67109124, + 30932992: 67174400, + 31981568: 4, + 33030144: 65792 + }, { + 0: 2151682048, + 65536: 2147487808, + 131072: 4198464, + 196608: 2151677952, + 262144: 0, + 327680: 4198400, + 393216: 2147483712, + 458752: 4194368, + 524288: 2147483648, + 589824: 4194304, + 655360: 64, + 720896: 2147487744, + 786432: 2151678016, + 851968: 4160, + 917504: 4096, + 983040: 2151682112, + 32768: 2147487808, + 98304: 64, + 163840: 2151678016, + 229376: 2147487744, + 294912: 4198400, + 360448: 2151682112, + 425984: 0, + 491520: 2151677952, + 557056: 4096, + 622592: 2151682048, + 688128: 4194304, + 753664: 4160, + 819200: 2147483648, + 884736: 4194368, + 950272: 4198464, + 1015808: 2147483712, + 1048576: 4194368, + 1114112: 4198400, + 1179648: 2147483712, + 1245184: 0, + 1310720: 4160, + 1376256: 2151678016, + 1441792: 2151682048, + 1507328: 2147487808, + 1572864: 2151682112, + 1638400: 2147483648, + 1703936: 2151677952, + 1769472: 4198464, + 1835008: 2147487744, + 1900544: 4194304, + 1966080: 64, + 2031616: 4096, + 1081344: 2151677952, + 1146880: 2151682112, + 1212416: 0, + 1277952: 4198400, + 1343488: 4194368, + 1409024: 2147483648, + 1474560: 2147487808, + 1540096: 64, + 1605632: 2147483712, + 1671168: 4096, + 1736704: 2147487744, + 1802240: 2151678016, + 1867776: 4160, + 1933312: 2151682048, + 1998848: 4194304, + 2064384: 4198464 + }, { + 0: 128, + 4096: 17039360, + 8192: 262144, + 12288: 536870912, + 16384: 537133184, + 20480: 16777344, + 24576: 553648256, + 28672: 262272, + 32768: 16777216, + 36864: 537133056, + 40960: 536871040, + 45056: 553910400, + 49152: 553910272, + 53248: 0, + 57344: 17039488, + 61440: 553648128, + 2048: 17039488, + 6144: 553648256, + 10240: 128, + 14336: 17039360, + 18432: 262144, + 22528: 537133184, + 26624: 553910272, + 30720: 536870912, + 34816: 537133056, + 38912: 0, + 43008: 553910400, + 47104: 16777344, + 51200: 536871040, + 55296: 553648128, + 59392: 16777216, + 63488: 262272, + 65536: 262144, + 69632: 128, + 73728: 536870912, + 77824: 553648256, + 81920: 16777344, + 86016: 553910272, + 90112: 537133184, + 94208: 16777216, + 98304: 553910400, + 102400: 553648128, + 106496: 17039360, + 110592: 537133056, + 114688: 262272, + 118784: 536871040, + 122880: 0, + 126976: 17039488, + 67584: 553648256, + 71680: 16777216, + 75776: 17039360, + 79872: 537133184, + 83968: 536870912, + 88064: 17039488, + 92160: 128, + 96256: 553910272, + 100352: 262272, + 104448: 553910400, + 108544: 0, + 112640: 553648128, + 116736: 16777344, + 120832: 262144, + 124928: 537133056, + 129024: 536871040 + }, { + 0: 268435464, + 256: 8192, + 512: 270532608, + 768: 270540808, + 1024: 268443648, + 1280: 2097152, + 1536: 2097160, + 1792: 268435456, + 2048: 0, + 2304: 268443656, + 2560: 2105344, + 2816: 8, + 3072: 270532616, + 3328: 2105352, + 3584: 8200, + 3840: 270540800, + 128: 270532608, + 384: 270540808, + 640: 8, + 896: 2097152, + 1152: 2105352, + 1408: 268435464, + 1664: 268443648, + 1920: 8200, + 2176: 2097160, + 2432: 8192, + 2688: 268443656, + 2944: 270532616, + 3200: 0, + 3456: 270540800, + 3712: 2105344, + 3968: 268435456, + 4096: 268443648, + 4352: 270532616, + 4608: 270540808, + 4864: 8200, + 5120: 2097152, + 5376: 268435456, + 5632: 268435464, + 5888: 2105344, + 6144: 2105352, + 6400: 0, + 6656: 8, + 6912: 270532608, + 7168: 8192, + 7424: 268443656, + 7680: 270540800, + 7936: 2097160, + 4224: 8, + 4480: 2105344, + 4736: 2097152, + 4992: 268435464, + 5248: 268443648, + 5504: 8200, + 5760: 270540808, + 6016: 270532608, + 6272: 270540800, + 6528: 270532616, + 6784: 8192, + 7040: 2105352, + 7296: 2097160, + 7552: 0, + 7808: 268435456, + 8064: 268443656 + }, { + 0: 1048576, + 16: 33555457, + 32: 1024, + 48: 1049601, + 64: 34604033, + 80: 0, + 96: 1, + 112: 34603009, + 128: 33555456, + 144: 1048577, + 160: 33554433, + 176: 34604032, + 192: 34603008, + 208: 1025, + 224: 1049600, + 240: 33554432, + 8: 34603009, + 24: 0, + 40: 33555457, + 56: 34604032, + 72: 1048576, + 88: 33554433, + 104: 33554432, + 120: 1025, + 136: 1049601, + 152: 33555456, + 168: 34603008, + 184: 1048577, + 200: 1024, + 216: 34604033, + 232: 1, + 248: 1049600, + 256: 33554432, + 272: 1048576, + 288: 33555457, + 304: 34603009, + 320: 1048577, + 336: 33555456, + 352: 34604032, + 368: 1049601, + 384: 1025, + 400: 34604033, + 416: 1049600, + 432: 1, + 448: 0, + 464: 34603008, + 480: 33554433, + 496: 1024, + 264: 1049600, + 280: 33555457, + 296: 34603009, + 312: 1, + 328: 33554432, + 344: 1048576, + 360: 1025, + 376: 34604032, + 392: 33554433, + 408: 34603008, + 424: 0, + 440: 34604033, + 456: 1049601, + 472: 1024, + 488: 33555456, + 504: 1048577 + }, { + 0: 134219808, + 1: 131072, + 2: 134217728, + 3: 32, + 4: 131104, + 5: 134350880, + 6: 134350848, + 7: 2048, + 8: 134348800, + 9: 134219776, + 10: 133120, + 11: 134348832, + 12: 2080, + 13: 0, + 14: 134217760, + 15: 133152, + 2147483648: 2048, + 2147483649: 134350880, + 2147483650: 134219808, + 2147483651: 134217728, + 2147483652: 134348800, + 2147483653: 133120, + 2147483654: 133152, + 2147483655: 32, + 2147483656: 134217760, + 2147483657: 2080, + 2147483658: 131104, + 2147483659: 134350848, + 2147483660: 0, + 2147483661: 134348832, + 2147483662: 134219776, + 2147483663: 131072, + 16: 133152, + 17: 134350848, + 18: 32, + 19: 2048, + 20: 134219776, + 21: 134217760, + 22: 134348832, + 23: 131072, + 24: 0, + 25: 131104, + 26: 134348800, + 27: 134219808, + 28: 134350880, + 29: 133120, + 30: 2080, + 31: 134217728, + 2147483664: 131072, + 2147483665: 2048, + 2147483666: 134348832, + 2147483667: 133152, + 2147483668: 32, + 2147483669: 134348800, + 2147483670: 134217728, + 2147483671: 134219808, + 2147483672: 134350880, + 2147483673: 134217760, + 2147483674: 134219776, + 2147483675: 0, + 2147483676: 133120, + 2147483677: 2080, + 2147483678: 131104, + 2147483679: 134350848 + }], + u = [4160749569, 528482304, 33030144, 2064384, 129024, 8064, 504, 2147483679], + d = a.DES = s.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = [], i = 0; i < 56; i++) { + var n = c[i] - 1; + e[i] = r[n >>> 5] >>> 31 - n % 32 & 1; + } + + for (var o = this._subKeys = [], s = 0; s < 16; s++) { + for (var a = o[s] = [], f = l[s], i = 0; i < 24; i++) { + a[i / 6 | 0] |= e[(h[i] - 1 + f) % 28] << 31 - i % 6, a[4 + (i / 6 | 0)] |= e[28 + (h[i + 24] - 1 + f) % 28] << 31 - i % 6; + } + + a[0] = a[0] << 1 | a[0] >>> 31; + + for (var i = 1; i < 7; i++) { + a[i] = a[i] >>> 4 * (i - 1) + 3; + } + + a[7] = a[7] << 5 | a[7] >>> 27; + } + + for (var u = this._invSubKeys = [], i = 0; i < 16; i++) { + u[i] = o[15 - i]; + } + }, + encryptBlock: function encryptBlock(t, r) { + this._doCryptBlock(t, r, this._subKeys); + }, + decryptBlock: function decryptBlock(t, r) { + this._doCryptBlock(t, r, this._invSubKeys); + }, + _doCryptBlock: function _doCryptBlock(t, i, n) { + this._lBlock = t[i], this._rBlock = t[i + 1], r.call(this, 4, 252645135), r.call(this, 16, 65535), e.call(this, 2, 858993459), e.call(this, 8, 16711935), r.call(this, 1, 1431655765); + + for (var o = 0; o < 16; o++) { + for (var s = n[o], a = this._lBlock, c = this._rBlock, h = 0, l = 0; l < 8; l++) { + h |= f[l][((c ^ s[l]) & u[l]) >>> 0]; + } + + this._lBlock = c, this._rBlock = a ^ h; + } + + var d = this._lBlock; + this._lBlock = this._rBlock, this._rBlock = d, r.call(this, 1, 1431655765), e.call(this, 8, 16711935), e.call(this, 2, 858993459), r.call(this, 16, 65535), r.call(this, 4, 252645135), t[i] = this._lBlock, t[i + 1] = this._rBlock; + }, + keySize: 2, + ivSize: 2, + blockSize: 2 + }); + i.DES = s._createHelper(d); + var v = a.TripleDES = s.extend({ + _doReset: function _doReset() { + var t = this._key, + r = t.words; + this._des1 = d.createEncryptor(o.create(r.slice(0, 2))), this._des2 = d.createEncryptor(o.create(r.slice(2, 4))), this._des3 = d.createEncryptor(o.create(r.slice(4, 6))); + }, + encryptBlock: function encryptBlock(t, r) { + this._des1.encryptBlock(t, r), this._des2.decryptBlock(t, r), this._des3.encryptBlock(t, r); + }, + decryptBlock: function decryptBlock(t, r) { + this._des3.decryptBlock(t, r), this._des2.encryptBlock(t, r), this._des1.decryptBlock(t, r); + }, + keySize: 6, + ivSize: 2, + blockSize: 2 + }); + i.TripleDES = s._createHelper(v); + }(), function () { + function r() { + for (var t = this._S, r = this._i, e = this._j, i = 0, n = 0; n < 4; n++) { + r = (r + 1) % 256, e = (e + t[r]) % 256; + var o = t[r]; + t[r] = t[e], t[e] = o, i |= t[(t[r] + t[e]) % 256] << 24 - 8 * n; + } + + return this._i = r, this._j = e, i; + } + + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = o.RC4 = n.extend({ + _doReset: function _doReset() { + for (var t = this._key, r = t.words, e = t.sigBytes, i = this._S = [], n = 0; n < 256; n++) { + i[n] = n; + } + + for (var n = 0, o = 0; n < 256; n++) { + var s = n % e, + a = r[s >>> 2] >>> 24 - s % 4 * 8 & 255; + o = (o + i[n] + a) % 256; + var c = i[n]; + i[n] = i[o], i[o] = c; + } + + this._i = this._j = 0; + }, + _doProcessBlock: function _doProcessBlock(t, e) { + t[e] ^= r.call(this); + }, + keySize: 8, + ivSize: 0 + }); + e.RC4 = n._createHelper(s); + var a = o.RC4Drop = s.extend({ + cfg: s.cfg.extend({ + drop: 192 + }), + _doReset: function _doReset() { + s._doReset.call(this); + + for (var t = this.cfg.drop; t > 0; t--) { + r.call(this); + } + } + }); + e.RC4Drop = n._createHelper(a); + }(), t.mode.CTRGladman = function () { + function r(t) { + if (255 === (t >> 24 & 255)) { + var r = t >> 16 & 255, + e = t >> 8 & 255, + i = 255 & t; + 255 === r ? (r = 0, 255 === e ? (e = 0, 255 === i ? i = 0 : ++i) : ++e) : ++r, t = 0, t += r << 16, t += e << 8, t += i; + } else t += 1 << 24; + + return t; + } + + function e(t) { + return 0 === (t[0] = r(t[0])) && (t[1] = r(t[1])), t; + } + + var i = t.lib.BlockCipherMode.extend(), + n = i.Encryptor = i.extend({ + processBlock: function processBlock(t, r) { + var i = this._cipher, + n = i.blockSize, + o = this._iv, + s = this._counter; + o && (s = this._counter = o.slice(0), this._iv = void 0), e(s); + var a = s.slice(0); + i.encryptBlock(a, 0); + + for (var c = 0; c < n; c++) { + t[r + c] ^= a[c]; + } + } + }); + return i.Decryptor = n, i; + }(), function () { + function r() { + for (var t = this._X, r = this._C, e = 0; e < 8; e++) { + a[e] = r[e]; + } + + r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; + + for (var e = 0; e < 8; e++) { + var i = t[e] + r[e], + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + c[e] = s ^ h; + } + + t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; + } + + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.Rabbit = n.extend({ + _doReset: function _doReset() { + for (var t = this._key.words, e = this.cfg.iv, i = 0; i < 4; i++) { + t[i] = 16711935 & (t[i] << 8 | t[i] >>> 24) | 4278255360 & (t[i] << 24 | t[i] >>> 8); + } + + var n = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], + o = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; + this._b = 0; + + for (var i = 0; i < 4; i++) { + r.call(this); + } + + for (var i = 0; i < 8; i++) { + o[i] ^= n[i + 4 & 7]; + } + + if (e) { + var s = e.words, + a = s[0], + c = s[1], + h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), + l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), + f = h >>> 16 | 4294901760 & l, + u = l << 16 | 65535 & h; + o[0] ^= h, o[1] ^= f, o[2] ^= l, o[3] ^= u, o[4] ^= h, o[5] ^= f, o[6] ^= l, o[7] ^= u; + + for (var i = 0; i < 4; i++) { + r.call(this); + } + } + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + + for (var n = 0; n < 4; n++) { + s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + } + }, + blockSize: 4, + ivSize: 2 + }); + e.Rabbit = n._createHelper(h); + }(), t.mode.CTR = function () { + var r = t.lib.BlockCipherMode.extend(), + e = r.Encryptor = r.extend({ + processBlock: function processBlock(t, r) { + var e = this._cipher, + i = e.blockSize, + n = this._iv, + o = this._counter; + n && (o = this._counter = n.slice(0), this._iv = void 0); + var s = o.slice(0); + e.encryptBlock(s, 0), o[i - 1] = o[i - 1] + 1 | 0; + + for (var a = 0; a < i; a++) { + t[r + a] ^= s[a]; + } + } + }); + return r.Decryptor = e, r; + }(), function () { + function r() { + for (var t = this._X, r = this._C, e = 0; e < 8; e++) { + a[e] = r[e]; + } + + r[0] = r[0] + 1295307597 + this._b | 0, r[1] = r[1] + 3545052371 + (r[0] >>> 0 < a[0] >>> 0 ? 1 : 0) | 0, r[2] = r[2] + 886263092 + (r[1] >>> 0 < a[1] >>> 0 ? 1 : 0) | 0, r[3] = r[3] + 1295307597 + (r[2] >>> 0 < a[2] >>> 0 ? 1 : 0) | 0, r[4] = r[4] + 3545052371 + (r[3] >>> 0 < a[3] >>> 0 ? 1 : 0) | 0, r[5] = r[5] + 886263092 + (r[4] >>> 0 < a[4] >>> 0 ? 1 : 0) | 0, r[6] = r[6] + 1295307597 + (r[5] >>> 0 < a[5] >>> 0 ? 1 : 0) | 0, r[7] = r[7] + 3545052371 + (r[6] >>> 0 < a[6] >>> 0 ? 1 : 0) | 0, this._b = r[7] >>> 0 < a[7] >>> 0 ? 1 : 0; + + for (var e = 0; e < 8; e++) { + var i = t[e] + r[e], + n = 65535 & i, + o = i >>> 16, + s = ((n * n >>> 17) + n * o >>> 15) + o * o, + h = ((4294901760 & i) * i | 0) + ((65535 & i) * i | 0); + c[e] = s ^ h; + } + + t[0] = c[0] + (c[7] << 16 | c[7] >>> 16) + (c[6] << 16 | c[6] >>> 16) | 0, t[1] = c[1] + (c[0] << 8 | c[0] >>> 24) + c[7] | 0, t[2] = c[2] + (c[1] << 16 | c[1] >>> 16) + (c[0] << 16 | c[0] >>> 16) | 0, t[3] = c[3] + (c[2] << 8 | c[2] >>> 24) + c[1] | 0, t[4] = c[4] + (c[3] << 16 | c[3] >>> 16) + (c[2] << 16 | c[2] >>> 16) | 0, t[5] = c[5] + (c[4] << 8 | c[4] >>> 24) + c[3] | 0, t[6] = c[6] + (c[5] << 16 | c[5] >>> 16) + (c[4] << 16 | c[4] >>> 16) | 0, t[7] = c[7] + (c[6] << 8 | c[6] >>> 24) + c[5] | 0; + } + + var e = t, + i = e.lib, + n = i.StreamCipher, + o = e.algo, + s = [], + a = [], + c = [], + h = o.RabbitLegacy = n.extend({ + _doReset: function _doReset() { + var t = this._key.words, + e = this.cfg.iv, + i = this._X = [t[0], t[3] << 16 | t[2] >>> 16, t[1], t[0] << 16 | t[3] >>> 16, t[2], t[1] << 16 | t[0] >>> 16, t[3], t[2] << 16 | t[1] >>> 16], + n = this._C = [t[2] << 16 | t[2] >>> 16, 4294901760 & t[0] | 65535 & t[1], t[3] << 16 | t[3] >>> 16, 4294901760 & t[1] | 65535 & t[2], t[0] << 16 | t[0] >>> 16, 4294901760 & t[2] | 65535 & t[3], t[1] << 16 | t[1] >>> 16, 4294901760 & t[3] | 65535 & t[0]]; + this._b = 0; + + for (var o = 0; o < 4; o++) { + r.call(this); + } + + for (var o = 0; o < 8; o++) { + n[o] ^= i[o + 4 & 7]; + } + + if (e) { + var s = e.words, + a = s[0], + c = s[1], + h = 16711935 & (a << 8 | a >>> 24) | 4278255360 & (a << 24 | a >>> 8), + l = 16711935 & (c << 8 | c >>> 24) | 4278255360 & (c << 24 | c >>> 8), + f = h >>> 16 | 4294901760 & l, + u = l << 16 | 65535 & h; + n[0] ^= h, n[1] ^= f, n[2] ^= l, n[3] ^= u, n[4] ^= h, n[5] ^= f, n[6] ^= l, n[7] ^= u; + + for (var o = 0; o < 4; o++) { + r.call(this); + } + } + }, + _doProcessBlock: function _doProcessBlock(t, e) { + var i = this._X; + r.call(this), s[0] = i[0] ^ i[5] >>> 16 ^ i[3] << 16, s[1] = i[2] ^ i[7] >>> 16 ^ i[5] << 16, s[2] = i[4] ^ i[1] >>> 16 ^ i[7] << 16, s[3] = i[6] ^ i[3] >>> 16 ^ i[1] << 16; + + for (var n = 0; n < 4; n++) { + s[n] = 16711935 & (s[n] << 8 | s[n] >>> 24) | 4278255360 & (s[n] << 24 | s[n] >>> 8), t[e + n] ^= s[n]; + } + }, + blockSize: 4, + ivSize: 2 + }); + e.RabbitLegacy = n._createHelper(h); + }(), t.pad.ZeroPadding = { + pad: function pad(t, r) { + var e = 4 * r; + t.clamp(), t.sigBytes += e - (t.sigBytes % e || e); + }, + unpad: function unpad(t) { + for (var r = t.words, e = t.sigBytes - 1; !(r[e >>> 2] >>> 24 - e % 4 * 8 & 255);) { + e--; + } + + t.sigBytes = e + 1; + } + }, t; +}); //# sourceMappingURL=crypto-js.min.js.map + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js.map b/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js.map new file mode 100644 index 0000000..baf63da --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Crypto/crypto-js.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Crypto\\crypto-js.min.js"],"names":["t","r","exports","module","define","amd","CryptoJS","e","Object","create","prototype","i","n","lib","o","Base","extend","mixIn","hasOwnProperty","init","$super","apply","arguments","toString","clone","s","WordArray","words","sigBytes","length","c","stringify","concat","clamp","ceil","call","slice","random","a","push","enc","Hex","join","parse","parseInt","substr","h","Latin1","String","fromCharCode","charCodeAt","l","Utf8","decodeURIComponent","escape","Error","unescape","encodeURIComponent","f","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","u","splice","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","Math","Base64","_map","charAt","_reverseMap","indexOf","abs","sin","MD5","_hash","d","v","p","_","y","g","B","w","k","S","m","x","b","H","z","A","C","D","floor","HmacMD5","SHA1","HmacSHA1","sqrt","pow","SHA256","HmacSHA256","Utf16","Utf16BE","Utf16LE","ArrayBuffer","Uint8Array","Int8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","buffer","byteOffset","byteLength","RIPEMD160","R","E","M","F","HmacRIPEMD160","_hasher","_oKey","_iKey","PBKDF2","keySize","hasher","iterations","compute","EvpKDF","SHA224","HmacSHA224","x64","Word","high","low","toX32","SHA3","outputLength","_state","HmacSHA3","SHA512","P","W","O","U","I","K","X","L","j","N","T","Z","q","G","J","$","Q","V","Y","tt","rt","et","it","nt","ot","st","at","ct","ht","lt","ft","ut","dt","vt","pt","_t","yt","gt","Bt","wt","kt","St","mt","xt","bt","HmacSHA512","SHA384","HmacSHA384","Cipher","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","_xformMode","_key","process","ivSize","encrypt","decrypt","StreamCipher","mode","BlockCipherMode","Encryptor","Decryptor","_cipher","_iv","CBC","_prevBlock","processBlock","encryptBlock","decryptBlock","pad","Pkcs7","unpad","BlockCipher","padding","iv","_mode","__creator","CipherParams","formatter","format","OpenSSL","ciphertext","salt","SerializableCipher","key","algorithm","_parse","kdf","execute","PasswordBasedCipher","CFB","ECB","AnsiX923","Iso10126","Iso97971","ZeroPadding","OFB","_keystream","NoPadding","AES","_nRounds","_keyPriorReset","_keySchedule","_invKeySchedule","_doCryptBlock","_lBlock","_rBlock","DES","_subKeys","_invSubKeys","TripleDES","_des1","_des2","_des3","_S","_i","_j","RC4","RC4Drop","drop","CTRGladman","_counter","_X","_C","_b","Rabbit","CTR","RabbitLegacy"],"mappings":"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","sourceRoot":"/","sourcesContent":["!function(t,r){\"object\"==typeof exports?module.exports=exports=r():\"function\"==typeof define&&define.amd?define([],r):t.CryptoJS=r()}(this,function(){var t=t||function(t,r){var e=Object.create||function(){function t(){}return function(r){var e;return t.prototype=r,e=new t,t.prototype=null,e}}(),i={},n=i.lib={},o=n.Base=function(){return{extend:function(t){var r=e(this);return t&&r.mixIn(t),r.hasOwnProperty(\"init\")&&this.init!==r.init||(r.init=function(){r.$super.init.apply(this,arguments)}),r.init.prototype=r,r.$super=this,r},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var r in t)t.hasOwnProperty(r)&&(this[r]=t[r]);t.hasOwnProperty(\"toString\")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),s=n.WordArray=o.extend({init:function(t,e){t=this.words=t||[],e!=r?this.sigBytes=e:this.sigBytes=4*t.length},toString:function(t){return(t||c).stringify(this)},concat:function(t){var r=this.words,e=t.words,i=this.sigBytes,n=t.sigBytes;if(this.clamp(),i%4)for(var o=0;o>>2]>>>24-o%4*8&255;r[i+o>>>2]|=s<<24-(i+o)%4*8}else for(var o=0;o>>2]=e[o>>>2];return this.sigBytes+=n,this},clamp:function(){var r=this.words,e=this.sigBytes;r[e>>>2]&=4294967295<<32-e%4*8,r.length=t.ceil(e/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(r){for(var e,i=[],n=function(r){var r=r,e=987654321,i=4294967295;return function(){e=36969*(65535&e)+(e>>16)&i,r=18e3*(65535&r)+(r>>16)&i;var n=(e<<16)+r&i;return n/=4294967296,n+=.5,n*(t.random()>.5?1:-1)}},o=0;o>>2]>>>24-n%4*8&255;i.push((o>>>4).toString(16)),i.push((15&o).toString(16))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>3]|=parseInt(t.substr(i,2),16)<<24-i%8*4;return new s.init(e,r/2)}},h=a.Latin1={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n>>2]>>>24-n%4*8&255;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>2]|=(255&t.charCodeAt(i))<<24-i%4*8;return new s.init(e,r)}},l=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(h.stringify(t)))}catch(t){throw new Error(\"Malformed UTF-8 data\")}},parse:function(t){return h.parse(unescape(encodeURIComponent(t)))}},f=n.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){\"string\"==typeof t&&(t=l.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(r){var e=this._data,i=e.words,n=e.sigBytes,o=this.blockSize,a=4*o,c=n/a;c=r?t.ceil(c):t.max((0|c)-this._minBufferSize,0);var h=c*o,l=t.min(4*h,n);if(h){for(var f=0;f>>6-s%4*2;i[o>>>2]|=(a|c)<<24-o%4*8,o++}return n.create(i,o)}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Base64={stringify:function(t){var r=t.words,e=t.sigBytes,i=this._map;t.clamp();for(var n=[],o=0;o>>2]>>>24-o%4*8&255,a=r[o+1>>>2]>>>24-(o+1)%4*8&255,c=r[o+2>>>2]>>>24-(o+2)%4*8&255,h=s<<16|a<<8|c,l=0;l<4&&o+.75*l>>6*(3-l)&63));var f=i.charAt(64);if(f)for(;n.length%4;)n.push(f);return n.join(\"\")},parse:function(t){var e=t.length,i=this._map,n=this._reverseMap;if(!n){n=this._reverseMap=[];for(var o=0;o>>32-o)+r}function i(t,r,e,i,n,o,s){var a=t+(r&i|e&~i)+n+s;return(a<>>32-o)+r}function n(t,r,e,i,n,o,s){var a=t+(r^e^i)+n+s;return(a<>>32-o)+r}function o(t,r,e,i,n,o,s){var a=t+(e^(r|~i))+n+s;return(a<>>32-o)+r}var s=t,a=s.lib,c=a.WordArray,h=a.Hasher,l=s.algo,f=[];!function(){for(var t=0;t<64;t++)f[t]=4294967296*r.abs(r.sin(t+1))|0}();var u=l.MD5=h.extend({_doReset:function(){this._hash=new c.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(t,r){for(var s=0;s<16;s++){var a=r+s,c=t[a];t[a]=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8)}var h=this._hash.words,l=t[r+0],u=t[r+1],d=t[r+2],v=t[r+3],p=t[r+4],_=t[r+5],y=t[r+6],g=t[r+7],B=t[r+8],w=t[r+9],k=t[r+10],S=t[r+11],m=t[r+12],x=t[r+13],b=t[r+14],H=t[r+15],z=h[0],A=h[1],C=h[2],D=h[3];z=e(z,A,C,D,l,7,f[0]),D=e(D,z,A,C,u,12,f[1]),C=e(C,D,z,A,d,17,f[2]),A=e(A,C,D,z,v,22,f[3]),z=e(z,A,C,D,p,7,f[4]),D=e(D,z,A,C,_,12,f[5]),C=e(C,D,z,A,y,17,f[6]),A=e(A,C,D,z,g,22,f[7]),z=e(z,A,C,D,B,7,f[8]),D=e(D,z,A,C,w,12,f[9]),C=e(C,D,z,A,k,17,f[10]),A=e(A,C,D,z,S,22,f[11]),z=e(z,A,C,D,m,7,f[12]),D=e(D,z,A,C,x,12,f[13]),C=e(C,D,z,A,b,17,f[14]),A=e(A,C,D,z,H,22,f[15]),z=i(z,A,C,D,u,5,f[16]),D=i(D,z,A,C,y,9,f[17]),C=i(C,D,z,A,S,14,f[18]),A=i(A,C,D,z,l,20,f[19]),z=i(z,A,C,D,_,5,f[20]),D=i(D,z,A,C,k,9,f[21]),C=i(C,D,z,A,H,14,f[22]),A=i(A,C,D,z,p,20,f[23]),z=i(z,A,C,D,w,5,f[24]),D=i(D,z,A,C,b,9,f[25]),C=i(C,D,z,A,v,14,f[26]),A=i(A,C,D,z,B,20,f[27]),z=i(z,A,C,D,x,5,f[28]),D=i(D,z,A,C,d,9,f[29]),C=i(C,D,z,A,g,14,f[30]),A=i(A,C,D,z,m,20,f[31]),z=n(z,A,C,D,_,4,f[32]),D=n(D,z,A,C,B,11,f[33]),C=n(C,D,z,A,S,16,f[34]),A=n(A,C,D,z,b,23,f[35]),z=n(z,A,C,D,u,4,f[36]),D=n(D,z,A,C,p,11,f[37]),C=n(C,D,z,A,g,16,f[38]),A=n(A,C,D,z,k,23,f[39]),z=n(z,A,C,D,x,4,f[40]),D=n(D,z,A,C,l,11,f[41]),C=n(C,D,z,A,v,16,f[42]),A=n(A,C,D,z,y,23,f[43]),z=n(z,A,C,D,w,4,f[44]),D=n(D,z,A,C,m,11,f[45]),C=n(C,D,z,A,H,16,f[46]),A=n(A,C,D,z,d,23,f[47]),z=o(z,A,C,D,l,6,f[48]),D=o(D,z,A,C,g,10,f[49]),C=o(C,D,z,A,b,15,f[50]),A=o(A,C,D,z,_,21,f[51]),z=o(z,A,C,D,m,6,f[52]),D=o(D,z,A,C,v,10,f[53]),C=o(C,D,z,A,k,15,f[54]),A=o(A,C,D,z,u,21,f[55]),z=o(z,A,C,D,B,6,f[56]),D=o(D,z,A,C,H,10,f[57]),C=o(C,D,z,A,y,15,f[58]),A=o(A,C,D,z,x,21,f[59]),z=o(z,A,C,D,p,6,f[60]),D=o(D,z,A,C,S,10,f[61]),C=o(C,D,z,A,d,15,f[62]),A=o(A,C,D,z,w,21,f[63]),h[0]=h[0]+z|0,h[1]=h[1]+A|0,h[2]=h[2]+C|0,h[3]=h[3]+D|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;e[n>>>5]|=128<<24-n%32;var o=r.floor(i/4294967296),s=i;e[(n+64>>>9<<4)+15]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),e[(n+64>>>9<<4)+14]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),t.sigBytes=4*(e.length+1),this._process();for(var a=this._hash,c=a.words,h=0;h<4;h++){var l=c[h];c[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var t=h.clone.call(this);return t._hash=this._hash.clone(),t}});s.MD5=h._createHelper(u),s.HmacMD5=h._createHmacHelper(u)}(Math),function(){var r=t,e=r.lib,i=e.WordArray,n=e.Hasher,o=r.algo,s=[],a=o.SHA1=n.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],a=e[3],c=e[4],h=0;h<80;h++){if(h<16)s[h]=0|t[r+h];else{var l=s[h-3]^s[h-8]^s[h-14]^s[h-16];s[h]=l<<1|l>>>31}var f=(i<<5|i>>>27)+c+s[h];f+=h<20?(n&o|~n&a)+1518500249:h<40?(n^o^a)+1859775393:h<60?(n&o|n&a|o&a)-1894007588:(n^o^a)-899497514,c=a,a=o,o=n<<30|n>>>2,n=i,i=f}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+a|0,e[4]=e[4]+c|0},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;return r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=Math.floor(e/4294967296),r[(i+64>>>9<<4)+15]=e,t.sigBytes=4*r.length,this._process(),this._hash},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t}});r.SHA1=n._createHelper(a),r.HmacSHA1=n._createHmacHelper(a)}(),function(r){var e=t,i=e.lib,n=i.WordArray,o=i.Hasher,s=e.algo,a=[],c=[];!function(){function t(t){for(var e=r.sqrt(t),i=2;i<=e;i++)if(!(t%i))return!1;return!0}function e(t){return 4294967296*(t-(0|t))|0}for(var i=2,n=0;n<64;)t(i)&&(n<8&&(a[n]=e(r.pow(i,.5))),c[n]=e(r.pow(i,1/3)),n++),i++}();var h=[],l=s.SHA256=o.extend({_doReset:function(){this._hash=new n.init(a.slice(0))},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],l=e[5],f=e[6],u=e[7],d=0;d<64;d++){if(d<16)h[d]=0|t[r+d];else{var v=h[d-15],p=(v<<25|v>>>7)^(v<<14|v>>>18)^v>>>3,_=h[d-2],y=(_<<15|_>>>17)^(_<<13|_>>>19)^_>>>10;h[d]=p+h[d-7]+y+h[d-16]}var g=a&l^~a&f,B=i&n^i&o^n&o,w=(i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22),k=(a<<26|a>>>6)^(a<<21|a>>>11)^(a<<7|a>>>25),S=u+k+g+c[d]+h[d],m=w+B;u=f,f=l,l=a,a=s+S|0,s=o,o=n,n=i,i=S+m|0}e[0]=e[0]+i|0,e[1]=e[1]+n|0,e[2]=e[2]+o|0,e[3]=e[3]+s|0,e[4]=e[4]+a|0,e[5]=e[5]+l|0,e[6]=e[6]+f|0,e[7]=e[7]+u|0},_doFinalize:function(){var t=this._data,e=t.words,i=8*this._nDataBytes,n=8*t.sigBytes;return e[n>>>5]|=128<<24-n%32,e[(n+64>>>9<<4)+14]=r.floor(i/4294967296),e[(n+64>>>9<<4)+15]=i,t.sigBytes=4*e.length,this._process(),this._hash},clone:function(){var t=o.clone.call(this);return t._hash=this._hash.clone(),t}});e.SHA256=o._createHelper(l),e.HmacSHA256=o._createHmacHelper(l)}(Math),function(){function r(t){return t<<8&4278255360|t>>>8&16711935}var e=t,i=e.lib,n=i.WordArray,o=e.enc;o.Utf16=o.Utf16BE={stringify:function(t){for(var r=t.words,e=t.sigBytes,i=[],n=0;n>>2]>>>16-n%4*8&65535;i.push(String.fromCharCode(o))}return i.join(\"\")},parse:function(t){for(var r=t.length,e=[],i=0;i>>1]|=t.charCodeAt(i)<<16-i%2*16;return n.create(e,2*r)}};o.Utf16LE={stringify:function(t){for(var e=t.words,i=t.sigBytes,n=[],o=0;o>>2]>>>16-o%4*8&65535);n.push(String.fromCharCode(s))}return n.join(\"\")},parse:function(t){for(var e=t.length,i=[],o=0;o>>1]|=r(t.charCodeAt(o)<<16-o%2*16);return n.create(i,2*e)}}}(),function(){if(\"function\"==typeof ArrayBuffer){var r=t,e=r.lib,i=e.WordArray,n=i.init,o=i.init=function(t){if(t instanceof ArrayBuffer&&(t=new Uint8Array(t)),(t instanceof Int8Array||\"undefined\"!=typeof Uint8ClampedArray&&t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array||t instanceof Float64Array)&&(t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength)),t instanceof Uint8Array){for(var r=t.byteLength,e=[],i=0;i>>2]|=t[i]<<24-i%4*8;n.call(this,e,r)}else n.apply(this,arguments)};o.prototype=i}}(),function(r){function e(t,r,e){return t^r^e}function i(t,r,e){return t&r|~t&e}function n(t,r,e){return(t|~r)^e}function o(t,r,e){return t&e|r&~e}function s(t,r,e){return t^(r|~e)}function a(t,r){return t<>>32-r}var c=t,h=c.lib,l=h.WordArray,f=h.Hasher,u=c.algo,d=l.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),v=l.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),p=l.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),_=l.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),y=l.create([0,1518500249,1859775393,2400959708,2840853838]),g=l.create([1352829926,1548603684,1836072691,2053994217,0]),B=u.RIPEMD160=f.extend({_doReset:function(){this._hash=l.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(t,r){for(var c=0;c<16;c++){var h=r+c,l=t[h];t[h]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}var f,u,B,w,k,S,m,x,b,H,z=this._hash.words,A=y.words,C=g.words,D=d.words,R=v.words,E=p.words,M=_.words;S=f=z[0],m=u=z[1],x=B=z[2],b=w=z[3],H=k=z[4];for(var F,c=0;c<80;c+=1)F=f+t[r+D[c]]|0,F+=c<16?e(u,B,w)+A[0]:c<32?i(u,B,w)+A[1]:c<48?n(u,B,w)+A[2]:c<64?o(u,B,w)+A[3]:s(u,B,w)+A[4],F|=0,F=a(F,E[c]),F=F+k|0,f=k,k=w,w=a(B,10),B=u,u=F,F=S+t[r+R[c]]|0,F+=c<16?s(m,x,b)+C[0]:c<32?o(m,x,b)+C[1]:c<48?n(m,x,b)+C[2]:c<64?i(m,x,b)+C[3]:e(m,x,b)+C[4],F|=0,F=a(F,M[c]),F=F+H|0,S=H,H=b,b=a(x,10),x=m,m=F;F=z[1]+B+b|0,z[1]=z[2]+w+H|0,z[2]=z[3]+k+S|0,z[3]=z[4]+f+m|0,z[4]=z[0]+u+x|0,z[0]=F},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+64>>>9<<4)+14]=16711935&(e<<8|e>>>24)|4278255360&(e<<24|e>>>8),t.sigBytes=4*(r.length+1),this._process();for(var n=this._hash,o=n.words,s=0;s<5;s++){var a=o[s];o[s]=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8)}return n},clone:function(){var t=f.clone.call(this);return t._hash=this._hash.clone(),t}});c.RIPEMD160=f._createHelper(B),c.HmacRIPEMD160=f._createHmacHelper(B)}(Math),function(){var r=t,e=r.lib,i=e.Base,n=r.enc,o=n.Utf8,s=r.algo;s.HMAC=i.extend({init:function(t,r){t=this._hasher=new t.init,\"string\"==typeof r&&(r=o.parse(r));var e=t.blockSize,i=4*e;r.sigBytes>i&&(r=t.finalize(r)),r.clamp();for(var n=this._oKey=r.clone(),s=this._iKey=r.clone(),a=n.words,c=s.words,h=0;h>>24)|4278255360&(o<<24|o>>>8),s=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8);var a=e[n];a.high^=s,a.low^=o}for(var c=0;c<24;c++){for(var d=0;d<5;d++){for(var v=0,p=0,_=0;_<5;_++){var a=e[d+5*_];v^=a.high,p^=a.low}var y=u[d];y.high=v,y.low=p}for(var d=0;d<5;d++)for(var g=u[(d+4)%5],B=u[(d+1)%5],w=B.high,k=B.low,v=g.high^(w<<1|k>>>31),p=g.low^(k<<1|w>>>31),_=0;_<5;_++){var a=e[d+5*_];a.high^=v,a.low^=p}for(var S=1;S<25;S++){var a=e[S],m=a.high,x=a.low,b=h[S];if(b<32)var v=m<>>32-b,p=x<>>32-b;else var v=x<>>64-b,p=m<>>64-b;var H=u[l[S]];H.high=v,H.low=p}var z=u[0],A=e[0];z.high=A.high,z.low=A.low;for(var d=0;d<5;d++)for(var _=0;_<5;_++){var S=d+5*_,a=e[S],C=u[S],D=u[(d+1)%5+5*_],R=u[(d+2)%5+5*_];a.high=C.high^~D.high&R.high,a.low=C.low^~D.low&R.low}var a=e[0],E=f[c];a.high^=E.high,a.low^=E.low}},_doFinalize:function(){var t=this._data,e=t.words,i=(8*this._nDataBytes,8*t.sigBytes),o=32*this.blockSize;e[i>>>5]|=1<<24-i%32,e[(r.ceil((i+1)/o)*o>>>5)-1]|=128,t.sigBytes=4*e.length,this._process();for(var s=this._state,a=this.cfg.outputLength/8,c=a/8,h=[],l=0;l>>24)|4278255360&(u<<24|u>>>8),d=16711935&(d<<8|d>>>24)|4278255360&(d<<24|d>>>8),h.push(d),h.push(u)}return new n.init(h,a)},clone:function(){for(var t=o.clone.call(this),r=t._state=this._state.slice(0),e=0;e<25;e++)r[e]=r[e].clone();return t}});e.SHA3=o._createHelper(d),e.HmacSHA3=o._createHmacHelper(d)}(Math),function(){function r(){return s.create.apply(s,arguments)}var e=t,i=e.lib,n=i.Hasher,o=e.x64,s=o.Word,a=o.WordArray,c=e.algo,h=[r(1116352408,3609767458),r(1899447441,602891725),r(3049323471,3964484399),r(3921009573,2173295548),r(961987163,4081628472),r(1508970993,3053834265),r(2453635748,2937671579),r(2870763221,3664609560),r(3624381080,2734883394),r(310598401,1164996542),r(607225278,1323610764),r(1426881987,3590304994),r(1925078388,4068182383),r(2162078206,991336113),r(2614888103,633803317),r(3248222580,3479774868),r(3835390401,2666613458),r(4022224774,944711139),r(264347078,2341262773),r(604807628,2007800933),r(770255983,1495990901),r(1249150122,1856431235),r(1555081692,3175218132),r(1996064986,2198950837),r(2554220882,3999719339),r(2821834349,766784016),r(2952996808,2566594879),r(3210313671,3203337956),r(3336571891,1034457026),r(3584528711,2466948901),r(113926993,3758326383),r(338241895,168717936),r(666307205,1188179964),r(773529912,1546045734),r(1294757372,1522805485),r(1396182291,2643833823),r(1695183700,2343527390),r(1986661051,1014477480),r(2177026350,1206759142),r(2456956037,344077627),r(2730485921,1290863460),r(2820302411,3158454273),r(3259730800,3505952657),r(3345764771,106217008),r(3516065817,3606008344),r(3600352804,1432725776),r(4094571909,1467031594),r(275423344,851169720),r(430227734,3100823752),r(506948616,1363258195),r(659060556,3750685593),r(883997877,3785050280),r(958139571,3318307427),r(1322822218,3812723403),r(1537002063,2003034995),r(1747873779,3602036899),r(1955562222,1575990012),r(2024104815,1125592928),r(2227730452,2716904306),r(2361852424,442776044),r(2428436474,593698344),r(2756734187,3733110249),r(3204031479,2999351573),r(3329325298,3815920427),r(3391569614,3928383900),r(3515267271,566280711),r(3940187606,3454069534),r(4118630271,4000239992),r(116418474,1914138554),r(174292421,2731055270),r(289380356,3203993006),r(460393269,320620315),r(685471733,587496836),r(852142971,1086792851),r(1017036298,365543100),r(1126000580,2618297676),r(1288033470,3409855158),r(1501505948,4234509866),r(1607167915,987167468),r(1816402316,1246189591)],l=[];!function(){for(var t=0;t<80;t++)l[t]=r()}();var f=c.SHA512=n.extend({_doReset:function(){this._hash=new a.init([new s.init(1779033703,4089235720),new s.init(3144134277,2227873595),new s.init(1013904242,4271175723),new s.init(2773480762,1595750129),new s.init(1359893119,2917565137),new s.init(2600822924,725511199),new s.init(528734635,4215389547),new s.init(1541459225,327033209)])},_doProcessBlock:function(t,r){for(var e=this._hash.words,i=e[0],n=e[1],o=e[2],s=e[3],a=e[4],c=e[5],f=e[6],u=e[7],d=i.high,v=i.low,p=n.high,_=n.low,y=o.high,g=o.low,B=s.high,w=s.low,k=a.high,S=a.low,m=c.high,x=c.low,b=f.high,H=f.low,z=u.high,A=u.low,C=d,D=v,R=p,E=_,M=y,F=g,P=B,W=w,O=k,U=S,I=m,K=x,X=b,L=H,j=z,N=A,T=0;T<80;T++){var Z=l[T];if(T<16)var q=Z.high=0|t[r+2*T],G=Z.low=0|t[r+2*T+1];else{var J=l[T-15],$=J.high,Q=J.low,V=($>>>1|Q<<31)^($>>>8|Q<<24)^$>>>7,Y=(Q>>>1|$<<31)^(Q>>>8|$<<24)^(Q>>>7|$<<25),tt=l[T-2],rt=tt.high,et=tt.low,it=(rt>>>19|et<<13)^(rt<<3|et>>>29)^rt>>>6,nt=(et>>>19|rt<<13)^(et<<3|rt>>>29)^(et>>>6|rt<<26),ot=l[T-7],st=ot.high,at=ot.low,ct=l[T-16],ht=ct.high,lt=ct.low,G=Y+at,q=V+st+(G>>>0>>0?1:0),G=G+nt,q=q+it+(G>>>0>>0?1:0),G=G+lt,q=q+ht+(G>>>0>>0?1:0);Z.high=q,Z.low=G}var ft=O&I^~O&X,ut=U&K^~U&L,dt=C&R^C&M^R&M,vt=D&E^D&F^E&F,pt=(C>>>28|D<<4)^(C<<30|D>>>2)^(C<<25|D>>>7),_t=(D>>>28|C<<4)^(D<<30|C>>>2)^(D<<25|C>>>7),yt=(O>>>14|U<<18)^(O>>>18|U<<14)^(O<<23|U>>>9),gt=(U>>>14|O<<18)^(U>>>18|O<<14)^(U<<23|O>>>9),Bt=h[T],wt=Bt.high,kt=Bt.low,St=N+gt,mt=j+yt+(St>>>0>>0?1:0),St=St+ut,mt=mt+ft+(St>>>0>>0?1:0),St=St+kt,mt=mt+wt+(St>>>0>>0?1:0),St=St+G,mt=mt+q+(St>>>0>>0?1:0),xt=_t+vt,bt=pt+dt+(xt>>>0<_t>>>0?1:0);j=X,N=L,X=I,L=K,I=O,K=U,U=W+St|0,O=P+mt+(U>>>0>>0?1:0)|0,P=M,W=F,M=R,F=E,R=C,E=D,D=St+xt|0,C=mt+bt+(D>>>0>>0?1:0)|0}v=i.low=v+D,i.high=d+C+(v>>>0>>0?1:0),_=n.low=_+E,n.high=p+R+(_>>>0>>0?1:0),g=o.low=g+F,o.high=y+M+(g>>>0>>0?1:0),w=s.low=w+W,s.high=B+P+(w>>>0>>0?1:0),S=a.low=S+U,a.high=k+O+(S>>>0>>0?1:0),x=c.low=x+K,c.high=m+I+(x>>>0>>0?1:0),H=f.low=H+L,f.high=b+X+(H>>>0>>0?1:0),A=u.low=A+N,u.high=z+j+(A>>>0>>0?1:0)},_doFinalize:function(){var t=this._data,r=t.words,e=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32,r[(i+128>>>10<<5)+30]=Math.floor(e/4294967296),r[(i+128>>>10<<5)+31]=e,t.sigBytes=4*r.length,this._process();var n=this._hash.toX32();return n},clone:function(){var t=n.clone.call(this);return t._hash=this._hash.clone(),t},blockSize:32});e.SHA512=n._createHelper(f),e.HmacSHA512=n._createHmacHelper(f)}(),function(){var r=t,e=r.x64,i=e.Word,n=e.WordArray,o=r.algo,s=o.SHA512,a=o.SHA384=s.extend({_doReset:function(){this._hash=new n.init([new i.init(3418070365,3238371032),new i.init(1654270250,914150663),new i.init(2438529370,812702999),new i.init(355462360,4144912697),new i.init(1731405415,4290775857),new i.init(2394180231,1750603025),new i.init(3675008525,1694076839),new i.init(1203062813,3204075428)])},_doFinalize:function(){var t=s._doFinalize.call(this);return t.sigBytes-=16,t}});r.SHA384=s._createHelper(a),r.HmacSHA384=s._createHmacHelper(a)}(),t.lib.Cipher||function(r){var e=t,i=e.lib,n=i.Base,o=i.WordArray,s=i.BufferedBlockAlgorithm,a=e.enc,c=(a.Utf8,a.Base64),h=e.algo,l=h.EvpKDF,f=i.Cipher=s.extend({cfg:n.extend(),createEncryptor:function(t,r){return this.create(this._ENC_XFORM_MODE,t,r)},createDecryptor:function(t,r){return this.create(this._DEC_XFORM_MODE,t,r)},init:function(t,r,e){this.cfg=this.cfg.extend(e),this._xformMode=t,this._key=r,this.reset()},reset:function(){s.reset.call(this),this._doReset()},process:function(t){return this._append(t),this._process()},finalize:function(t){t&&this._append(t);var r=this._doFinalize();return r},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function t(t){return\"string\"==typeof t?m:w}return function(r){return{encrypt:function(e,i,n){return t(i).encrypt(r,e,i,n)},decrypt:function(e,i,n){return t(i).decrypt(r,e,i,n)}}}}()}),u=(i.StreamCipher=f.extend({_doFinalize:function(){var t=this._process(!0);return t},blockSize:1}),e.mode={}),d=i.BlockCipherMode=n.extend({createEncryptor:function(t,r){return this.Encryptor.create(t,r)},createDecryptor:function(t,r){return this.Decryptor.create(t,r)},init:function(t,r){this._cipher=t,this._iv=r}}),v=u.CBC=function(){function t(t,e,i){var n=this._iv;if(n){var o=n;this._iv=r}else var o=this._prevBlock;for(var s=0;s>>2];t.sigBytes-=r}},y=(i.BlockCipher=f.extend({cfg:f.cfg.extend({mode:v,padding:_}),reset:function(){f.reset.call(this);var t=this.cfg,r=t.iv,e=t.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=e.createEncryptor;else{var i=e.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==i?this._mode.init(this,r&&r.words):(this._mode=i.call(e,this,r&&r.words),this._mode.__creator=i)},_doProcessBlock:function(t,r){this._mode.processBlock(t,r)},_doFinalize:function(){var t=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){t.pad(this._data,this.blockSize);var r=this._process(!0)}else{var r=this._process(!0);t.unpad(r)}return r},blockSize:4}),i.CipherParams=n.extend({init:function(t){this.mixIn(t)},toString:function(t){return(t||this.formatter).stringify(this)}})),g=e.format={},B=g.OpenSSL={stringify:function(t){var r=t.ciphertext,e=t.salt;if(e)var i=o.create([1398893684,1701076831]).concat(e).concat(r);else var i=r;return i.toString(c)},parse:function(t){var r=c.parse(t),e=r.words;if(1398893684==e[0]&&1701076831==e[1]){var i=o.create(e.slice(2,4));e.splice(0,4),r.sigBytes-=16}return y.create({ciphertext:r,salt:i})}},w=i.SerializableCipher=n.extend({cfg:n.extend({format:B}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=t.createEncryptor(e,i),o=n.finalize(r),s=n.cfg;return y.create({ciphertext:o,key:e,iv:s.iv,algorithm:t,mode:s.mode,padding:s.padding,blockSize:t.blockSize,formatter:i.format})},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=t.createDecryptor(e,i).finalize(r.ciphertext);return n},_parse:function(t,r){return\"string\"==typeof t?r.parse(t,this):t}}),k=e.kdf={},S=k.OpenSSL={execute:function(t,r,e,i){i||(i=o.random(8));var n=l.create({keySize:r+e}).compute(t,i),s=o.create(n.words.slice(r),4*e);return n.sigBytes=4*r,y.create({key:n,iv:s,salt:i})}},m=i.PasswordBasedCipher=w.extend({cfg:w.cfg.extend({kdf:S}),encrypt:function(t,r,e,i){i=this.cfg.extend(i);var n=i.kdf.execute(e,t.keySize,t.ivSize);i.iv=n.iv;var o=w.encrypt.call(this,t,r,n.key,i);return o.mixIn(n),o},decrypt:function(t,r,e,i){i=this.cfg.extend(i),r=this._parse(r,i.format);var n=i.kdf.execute(e,t.keySize,t.ivSize,r.salt);i.iv=n.iv;var o=w.decrypt.call(this,t,r,n.key,i);return o}})}(),t.mode.CFB=function(){function r(t,r,e,i){var n=this._iv;if(n){var o=n.slice(0);this._iv=void 0}else var o=this._prevBlock;i.encryptBlock(o,0);for(var s=0;s>>2]|=n<<24-o%4*8,t.sigBytes+=n},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso10126={pad:function(r,e){var i=4*e,n=i-r.sigBytes%i;r.concat(t.lib.WordArray.random(n-1)).concat(t.lib.WordArray.create([n<<24],1))},unpad:function(t){var r=255&t.words[t.sigBytes-1>>>2];t.sigBytes-=r}},t.pad.Iso97971={pad:function(r,e){r.concat(t.lib.WordArray.create([2147483648],1)),t.pad.ZeroPadding.pad(r,e)},unpad:function(r){t.pad.ZeroPadding.unpad(r),r.sigBytes--}},t.mode.OFB=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._keystream;n&&(o=this._keystream=n.slice(0),this._iv=void 0),e.encryptBlock(o,0);for(var s=0;s>>8^255&n^99,o[e]=n,s[n]=e;var p=t[e],_=t[p],y=t[_],g=257*t[n]^16843008*n;a[e]=g<<24|g>>>8,c[e]=g<<16|g>>>16,h[e]=g<<8|g>>>24,l[e]=g;var g=16843009*y^65537*_^257*p^16843008*e;f[n]=g<<24|g>>>8,u[n]=g<<16|g>>>16,d[n]=g<<8|g>>>24,v[n]=g,e?(e=p^t[t[t[y^p]]],i^=t[t[i]]):e=i=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],_=n.AES=i.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var t=this._keyPriorReset=this._key,r=t.words,e=t.sigBytes/4,i=this._nRounds=e+6,n=4*(i+1),s=this._keySchedule=[],a=0;a6&&a%e==4&&(c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c]):(c=c<<8|c>>>24,c=o[c>>>24]<<24|o[c>>>16&255]<<16|o[c>>>8&255]<<8|o[255&c],c^=p[a/e|0]<<24),s[a]=s[a-e]^c}for(var h=this._invKeySchedule=[],l=0;l>>24]]^u[o[c>>>16&255]]^d[o[c>>>8&255]]^v[o[255&c]]}}},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._keySchedule,a,c,h,l,o)},decryptBlock:function(t,r){var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e,this._doCryptBlock(t,r,this._invKeySchedule,f,u,d,v,s);var e=t[r+1];t[r+1]=t[r+3],t[r+3]=e},_doCryptBlock:function(t,r,e,i,n,o,s,a){for(var c=this._nRounds,h=t[r]^e[0],l=t[r+1]^e[1],f=t[r+2]^e[2],u=t[r+3]^e[3],d=4,v=1;v>>24]^n[l>>>16&255]^o[f>>>8&255]^s[255&u]^e[d++],_=i[l>>>24]^n[f>>>16&255]^o[u>>>8&255]^s[255&h]^e[d++],y=i[f>>>24]^n[u>>>16&255]^o[h>>>8&255]^s[255&l]^e[d++],g=i[u>>>24]^n[h>>>16&255]^o[l>>>8&255]^s[255&f]^e[d++];h=p,l=_,f=y,u=g}var p=(a[h>>>24]<<24|a[l>>>16&255]<<16|a[f>>>8&255]<<8|a[255&u])^e[d++],_=(a[l>>>24]<<24|a[f>>>16&255]<<16|a[u>>>8&255]<<8|a[255&h])^e[d++],y=(a[f>>>24]<<24|a[u>>>16&255]<<16|a[h>>>8&255]<<8|a[255&l])^e[d++],g=(a[u>>>24]<<24|a[h>>>16&255]<<16|a[l>>>8&255]<<8|a[255&f])^e[d++];t[r]=p,t[r+1]=_,t[r+2]=y,t[r+3]=g},keySize:8});r.AES=i._createHelper(_)}(),function(){function r(t,r){var e=(this._lBlock>>>t^this._rBlock)&r;this._rBlock^=e,this._lBlock^=e<>>t^this._lBlock)&r;this._lBlock^=e,this._rBlock^=e<>>5]>>>31-n%32&1}for(var o=this._subKeys=[],s=0;s<16;s++){for(var a=o[s]=[],f=l[s],i=0;i<24;i++)a[i/6|0]|=e[(h[i]-1+f)%28]<<31-i%6,a[4+(i/6|0)]|=e[28+(h[i+24]-1+f)%28]<<31-i%6;a[0]=a[0]<<1|a[0]>>>31;for(var i=1;i<7;i++)a[i]=a[i]>>>4*(i-1)+3;a[7]=a[7]<<5|a[7]>>>27}for(var u=this._invSubKeys=[],i=0;i<16;i++)u[i]=o[15-i]},encryptBlock:function(t,r){this._doCryptBlock(t,r,this._subKeys)},decryptBlock:function(t,r){this._doCryptBlock(t,r,this._invSubKeys)},_doCryptBlock:function(t,i,n){this._lBlock=t[i],this._rBlock=t[i+1],r.call(this,4,252645135),r.call(this,16,65535),e.call(this,2,858993459),e.call(this,8,16711935),r.call(this,1,1431655765);for(var o=0;o<16;o++){for(var s=n[o],a=this._lBlock,c=this._rBlock,h=0,l=0;l<8;l++)h|=f[l][((c^s[l])&u[l])>>>0];this._lBlock=c,this._rBlock=a^h}var d=this._lBlock;this._lBlock=this._rBlock,this._rBlock=d,r.call(this,1,1431655765),e.call(this,8,16711935),e.call(this,2,858993459),r.call(this,16,65535),r.call(this,4,252645135),t[i]=this._lBlock,t[i+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});i.DES=s._createHelper(d);var v=a.TripleDES=s.extend({_doReset:function(){var t=this._key,r=t.words;this._des1=d.createEncryptor(o.create(r.slice(0,2))),this._des2=d.createEncryptor(o.create(r.slice(2,4))),this._des3=d.createEncryptor(o.create(r.slice(4,6)))},encryptBlock:function(t,r){this._des1.encryptBlock(t,r),this._des2.decryptBlock(t,r),this._des3.encryptBlock(t,r)},decryptBlock:function(t,r){this._des3.decryptBlock(t,r),this._des2.encryptBlock(t,r),this._des1.decryptBlock(t,r)},keySize:6,ivSize:2,blockSize:2});i.TripleDES=s._createHelper(v)}(),function(){function r(){for(var t=this._S,r=this._i,e=this._j,i=0,n=0;n<4;n++){r=(r+1)%256,e=(e+t[r])%256;var o=t[r];t[r]=t[e],t[e]=o,i|=t[(t[r]+t[e])%256]<<24-8*n}return this._i=r,this._j=e,i}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=o.RC4=n.extend({_doReset:function(){for(var t=this._key,r=t.words,e=t.sigBytes,i=this._S=[],n=0;n<256;n++)i[n]=n;for(var n=0,o=0;n<256;n++){var s=n%e,a=r[s>>>2]>>>24-s%4*8&255;o=(o+i[n]+a)%256;var c=i[n];i[n]=i[o],i[o]=c}this._i=this._j=0},_doProcessBlock:function(t,e){t[e]^=r.call(this)},keySize:8,ivSize:0});e.RC4=n._createHelper(s);var a=o.RC4Drop=s.extend({cfg:s.cfg.extend({drop:192}),_doReset:function(){s._doReset.call(this);for(var t=this.cfg.drop;t>0;t--)r.call(this)}});e.RC4Drop=n._createHelper(a)}(),t.mode.CTRGladman=function(){function r(t){if(255===(t>>24&255)){var r=t>>16&255,e=t>>8&255,i=255&t;255===r?(r=0,255===e?(e=0,255===i?i=0:++i):++e):++r,t=0,t+=r<<16,t+=e<<8,t+=i}else t+=1<<24;return t}function e(t){return 0===(t[0]=r(t[0]))&&(t[1]=r(t[1])),t}var i=t.lib.BlockCipherMode.extend(),n=i.Encryptor=i.extend({processBlock:function(t,r){var i=this._cipher,n=i.blockSize,o=this._iv,s=this._counter;o&&(s=this._counter=o.slice(0),this._iv=void 0),e(s);var a=s.slice(0);i.encryptBlock(a,0);for(var c=0;c>>0>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0>>0?1:0)|0,this._b=r[7]>>>0>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.Rabbit=n.extend({_doReset:function(){for(var t=this._key.words,e=this.cfg.iv,i=0;i<4;i++)t[i]=16711935&(t[i]<<8|t[i]>>>24)|4278255360&(t[i]<<24|t[i]>>>8);var n=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],o=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var i=0;i<4;i++)r.call(this);for(var i=0;i<8;i++)o[i]^=n[i+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;o[0]^=h,o[1]^=f,o[2]^=l,o[3]^=u,o[4]^=h,o[5]^=f,o[6]^=l,o[7]^=u;for(var i=0;i<4;i++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.Rabbit=n._createHelper(h)}(),t.mode.CTR=function(){var r=t.lib.BlockCipherMode.extend(),e=r.Encryptor=r.extend({processBlock:function(t,r){var e=this._cipher,i=e.blockSize,n=this._iv,o=this._counter;n&&(o=this._counter=n.slice(0),this._iv=void 0);var s=o.slice(0);e.encryptBlock(s,0),o[i-1]=o[i-1]+1|0;for(var a=0;a>>0>>0?1:0)|0,r[2]=r[2]+886263092+(r[1]>>>0>>0?1:0)|0,r[3]=r[3]+1295307597+(r[2]>>>0>>0?1:0)|0,r[4]=r[4]+3545052371+(r[3]>>>0>>0?1:0)|0,r[5]=r[5]+886263092+(r[4]>>>0>>0?1:0)|0,r[6]=r[6]+1295307597+(r[5]>>>0>>0?1:0)|0,r[7]=r[7]+3545052371+(r[6]>>>0>>0?1:0)|0,this._b=r[7]>>>0>>0?1:0;for(var e=0;e<8;e++){var i=t[e]+r[e],n=65535&i,o=i>>>16,s=((n*n>>>17)+n*o>>>15)+o*o,h=((4294901760&i)*i|0)+((65535&i)*i|0);c[e]=s^h}t[0]=c[0]+(c[7]<<16|c[7]>>>16)+(c[6]<<16|c[6]>>>16)|0,t[1]=c[1]+(c[0]<<8|c[0]>>>24)+c[7]|0,t[2]=c[2]+(c[1]<<16|c[1]>>>16)+(c[0]<<16|c[0]>>>16)|0,t[3]=c[3]+(c[2]<<8|c[2]>>>24)+c[1]|0,t[4]=c[4]+(c[3]<<16|c[3]>>>16)+(c[2]<<16|c[2]>>>16)|0,t[5]=c[5]+(c[4]<<8|c[4]>>>24)+c[3]|0,t[6]=c[6]+(c[5]<<16|c[5]>>>16)+(c[4]<<16|c[4]>>>16)|0,t[7]=c[7]+(c[6]<<8|c[6]>>>24)+c[5]|0}var e=t,i=e.lib,n=i.StreamCipher,o=e.algo,s=[],a=[],c=[],h=o.RabbitLegacy=n.extend({_doReset:function(){var t=this._key.words,e=this.cfg.iv,i=this._X=[t[0],t[3]<<16|t[2]>>>16,t[1],t[0]<<16|t[3]>>>16,t[2],t[1]<<16|t[0]>>>16,t[3],t[2]<<16|t[1]>>>16],n=this._C=[t[2]<<16|t[2]>>>16,4294901760&t[0]|65535&t[1],t[3]<<16|t[3]>>>16,4294901760&t[1]|65535&t[2],t[0]<<16|t[0]>>>16,4294901760&t[2]|65535&t[3],t[1]<<16|t[1]>>>16,4294901760&t[3]|65535&t[0]];this._b=0;for(var o=0;o<4;o++)r.call(this);for(var o=0;o<8;o++)n[o]^=i[o+4&7];if(e){var s=e.words,a=s[0],c=s[1],h=16711935&(a<<8|a>>>24)|4278255360&(a<<24|a>>>8),l=16711935&(c<<8|c>>>24)|4278255360&(c<<24|c>>>8),f=h>>>16|4294901760&l,u=l<<16|65535&h;n[0]^=h,n[1]^=f,n[2]^=l,n[3]^=u,n[4]^=h,n[5]^=f,n[6]^=l,n[7]^=u;for(var o=0;o<4;o++)r.call(this)}},_doProcessBlock:function(t,e){var i=this._X;r.call(this),s[0]=i[0]^i[5]>>>16^i[3]<<16,s[1]=i[2]^i[7]>>>16^i[5]<<16,s[2]=i[4]^i[1]>>>16^i[7]<<16,s[3]=i[6]^i[3]>>>16^i[1]<<16;for(var n=0;n<4;n++)s[n]=16711935&(s[n]<<8|s[n]>>>24)|4278255360&(s[n]<<24|s[n]>>>8),t[e+n]^=s[n]},blockSize:4,ivSize:2});e.RabbitLegacy=n._createHelper(h)}(),t.pad.ZeroPadding={pad:function(t,r){var e=4*r;t.clamp(),t.sigBytes+=e-(t.sigBytes%e||e)},unpad:function(t){for(var r=t.words,e=t.sigBytes-1;!(r[e>>>2]>>>24-e%4*8&255);)e--;t.sigBytes=e+1}},t});\n//# sourceMappingURL=crypto-js.min.js.map"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js b/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js new file mode 100644 index 0000000..b2b21db --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js @@ -0,0 +1,99 @@ +"use strict"; +cc._RF.push(module, '61d4ccY2ztLMYIh8WvqPPAw', 'GameAppStart'); +// Script/module/GameStart/GameAppStart.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var GameConfig_1 = require("../Config/GameConfig"); +var HttpUtil_1 = require("../Crypto/HttpUtil"); +var AudioManager_1 = require("../Music/AudioManager"); +var Notification_1 = require("../Notification/Notification"); +var Storage_1 = require("../Storage/Storage"); +var GameTool_1 = require("../Tool/GameTool"); +window.initMgr = function () { + if (cc.fx) { + return; + } + cc.fx = {}; + //基础状态信息 + cc.fx.StateInfo = { + debugMode: true, + networkConnected: true, + networkType: 'none', + isOnForeground: true //当前是否是在前台 + }; + //应用系统信息 + //配置文件 + cc.fx.GameConfig = GameConfig_1.GameConfig; + cc.fx.HttpUtil = HttpUtil_1.default; + cc.fx.GameTool = GameTool_1.GameTool; + cc.fx.AudioManager = AudioManager_1.default; + cc.fx.Notifications = Notification_1.Notifications; + cc.fx.StorageMessage = Storage_1.StorageMessage; + cc.fx.ShareInfo = { + queryId: -1 //分享id + }; + cc.fx.Message = { + control: "10001", + startGame: "10002", + next: "10003", + changePath: "10004", + changeMap: "10005", + nextWater: "10006", + addEnd: "10007", + setData: "10008", + guideNext: "10009", + showResult: "10010", + removeTip: "10011" //执行撤回或者后退动作,移除提示 + }; + /* + * 客户端埋点分享类型 + */ + cc.fx.BurialShareType = { + Default: "default", + Invite: "invite", + DailyInviteRoomJoin: 'invite_join_room', + DailyInviteFriend: 'invite_friend', + DailyInviteGroup: 'invate_group', + DailyInviteGroupAlive: 'invate_alive', + DailyInviteGroupReward: 'invate_rewared', + DailyInviteGroupBox: 'invate_box', + DailyInviteGroupBall: 'invate_ball', + MatchResult: 'matchResult', + MatchFix5: 'MatchFix5', + MatchFix20: 'MatchFix20', + MatchFix100: 'MatchFix100', + MatchFix500: 'MatchFix500', + NewerRedEnvelope: 'newerRedEnvelope', + CoinRoomResult: 'coinRoomResult', + HighRate: "highRate", + CoinRoomWinStreak: 'coinRoomWinStreak', + CoinRoomBankruptcy1: 'coinRoomBankruptcy1', + CoinRoomBankruptcy2: 'coinRoomBankruptcy2', + CoinRoomBankruptcy3: 'coinRoomBankruptcy3', + }; + /* + * 分享到哪儿给奖励 group frined all + */ + cc.fx.ShareWhereReward = { + Group: "group", + Friend: "friend", + All: "all", + }; + //用于存储消息的ID + cc.fx.storageType = cc.Enum({ + storageTypeCustom: 1000101, + }); + //用于存储提示语 按照步骤提示 + cc.fx.tipType = cc.Enum({ + tipOne: '神农氏回到家中,开始整理今天收集来的物品。当他第一次拿出或说出一种植物时,请告诉他这是新植物。', + tipTwo: '如果他拿出或说出的植物你今天看到过,请告诉他上次是看到的;如果你听他说过,则请告诉他上次是听到的。', + tipErrNew: '这是这局游戏第一次出现{植物}', + tipErrOld: '{植物}刚才出现过呢', + tipErrHear: '上次遇到{植物}时,似乎不是听到的吧', + tipErrSee: '上次遇到{植物}时,似乎不是看到的吧', + tipErrLast: '之前确实看到过{植物},但最近一次似乎不是看到的呢', + }); +}; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js.map b/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js.map new file mode 100644 index 0000000..f94170b --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/GameStart/GameAppStart.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\GameStart\\GameAppStart.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import { GameConfig } from \"../Config/GameConfig\";\r\nimport HttpUtil from \"../Crypto/HttpUtil\";\r\nimport AudioManager from \"../Music/AudioManager\";\r\nimport { Notifications } from \"../Notification/Notification\";\r\nimport { StorageMessage } from \"../Storage/Storage\";\r\nimport { GameTool } from \"../Tool/GameTool\";\r\n\r\n\r\nwindow.initMgr = function() {\r\n if(cc.fx)\r\n {\r\n return;\r\n }\r\n cc.fx = {};\r\n\r\n\r\n //基础状态信息\r\n cc.fx.StateInfo = {\r\n debugMode: true,\r\n networkConnected: true, //网络状态\r\n networkType: 'none', //网络类型\r\n isOnForeground: true //当前是否是在前台\r\n };\r\n\r\n //应用系统信息\r\n //配置文件\r\n\r\n cc.fx.GameConfig = GameConfig;\r\n cc.fx.HttpUtil = HttpUtil;\r\n cc.fx.GameTool = GameTool;\r\n cc.fx.AudioManager = AudioManager;\r\n cc.fx.Notifications = Notifications;\r\n cc.fx.StorageMessage = StorageMessage;\r\n\r\n cc.fx.ShareInfo = {\r\n queryId : -1 //分享id\r\n };\r\n\r\n cc.fx.Message = {\r\n control: \"10001\", //传递操作控制\r\n startGame:\"10002\", //传递开始建筑\r\n next: \"10003\" , //传递执行下一个格子洪水流过\r\n changePath: \"10004\", //传递操作控制\r\n changeMap: \"10005\", //改变那地图\r\n nextWater: \"10006\" , //传递执行下一个格子洪水流过\r\n addEnd: \"10007\" , //添加结束点\r\n setData: \"10008\" , //上传分数\r\n guideNext: \"10009\" , //引导进入下一步\r\n showResult: \"10010\", //展示治水结果\r\n removeTip: \"10011\" //执行撤回或者后退动作,移除提示\r\n }\r\n\r\n /*\r\n * 客户端埋点分享类型\r\n */\r\n cc.fx.BurialShareType = {\r\n Default : \"default\", //默认分享类型,分享到群\r\n Invite : \"invite\", // 邀请好友\r\n\r\n DailyInviteRoomJoin:'invite_join_room', //邀请好友加入\r\n DailyInviteFriend : 'invite_friend', // 日常邀请好友\r\n DailyInviteGroup : 'invate_group', // 日常分享群\r\n DailyInviteGroupAlive: 'invate_alive', //日常分享群复活\r\n DailyInviteGroupReward: 'invate_rewared',//分享奖励翻倍\r\n DailyInviteGroupBox: 'invate_box', //宝箱分享奖励\r\n DailyInviteGroupBall: 'invate_ball', //分享领取球球\r\n\r\n MatchResult : 'matchResult', // 比赛结算分享\r\n MatchFix5: 'MatchFix5', // 5元红包赛\r\n MatchFix20: 'MatchFix20', // 20元红包赛\r\n MatchFix100: 'MatchFix100', // 100元红包赛\r\n MatchFix500: 'MatchFix500', // 500元红包赛\r\n NewerRedEnvelope: 'newerRedEnvelope', // 新手红包\r\n CoinRoomResult: 'coinRoomResult', // 金币桌结算\r\n HighRate : \"highRate\",//高倍分享\r\n CoinRoomWinStreak: 'coinRoomWinStreak', // 连胜\r\n CoinRoomBankruptcy1: 'coinRoomBankruptcy1', // 金币桌破产\r\n CoinRoomBankruptcy2: 'coinRoomBankruptcy2', // 金币桌破产\r\n CoinRoomBankruptcy3: 'coinRoomBankruptcy3', // 金币桌破产\r\n };\r\n\r\n /*\r\n * 分享到哪儿给奖励 group frined all\r\n */\r\n cc.fx.ShareWhereReward = {\r\n Group :\"group\", //微信群\r\n Friend : \"friend\",//好友\r\n All : \"all\", //不区分\r\n };\r\n\r\n //用于存储消息的ID\r\n cc.fx.storageType = cc.Enum({\r\n\t storageTypeCustom: 1000101, //用于存储关卡等级\r\n\t});\r\n\r\n //用于存储提示语 按照步骤提示\r\n cc.fx.tipType = cc.Enum({\r\n tipOne: '神农氏回到家中,开始整理今天收集来的物品。当他第一次拿出或说出一种植物时,请告诉他这是新植物。',\r\n tipTwo: '如果他拿出或说出的植物你今天看到过,请告诉他上次是看到的;如果你听他说过,则请告诉他上次是听到的。', //用于存储关卡等级\r\n tipErrNew: '这是这局游戏第一次出现{植物}',\r\n tipErrOld: '{植物}刚才出现过呢',\r\n tipErrHear: '上次遇到{植物}时,似乎不是听到的吧',\r\n tipErrSee: '上次遇到{植物}时,似乎不是看到的吧',\r\n tipErrLast: '之前确实看到过{植物},但最近一次似乎不是看到的呢',\r\n\r\n });\r\n\r\n};"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js b/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js new file mode 100644 index 0000000..8b62d87 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js @@ -0,0 +1,250 @@ +"use strict"; +cc._RF.push(module, '58403/n16JCa5sZhNMjZzGo', 'AudioManager'); +// Script/module/Music/AudioManager.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var AudioManager = /** @class */ (function (_super) { + __extends(AudioManager, _super); + function AudioManager() { + var _this = _super !== null && _super.apply(this, arguments) || this; + //背景音乐 + _this.audioGameBgm0 = null; + _this.chehui = null; + _this.jineng = null; + _this.qingkong = null; + _this.fangxiang = null; + _this.build = null; + _this.win = null; + _this.lose = null; + return _this; + } + AudioManager_1 = AudioManager; + AudioManager.prototype.onLoad = function () { + if (AudioManager_1._instance == null) { + AudioManager_1._instance = this; + cc.game.addPersistRootNode(this.node); + } + else { + return; + } + this.reward = false; + this.finish = false; + this.rewardCount = 0; + this.ctor(); + this.preload(); + }; + AudioManager.prototype.ctor = function () { + this.mAudioMap = {}; + /** + * 默认音量大小 + * @type {number} + */ + this.bgMusicVolume = 0.1; + this.effectMusicVolume = 1; + this.mMusicSwitch = 1; + this.mEffectSwitch = 1; + }; + AudioManager.prototype.play = function (audioSource, loop, callback, isBgMusic) { + // if (isBgMusic && !this.mMusicSwitch) return; + // if (!isBgMusic && !this.mEffectSwitch) return; + var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume; + // if (cc.sys.isBrowser) { + // if(audioSource == this.brickSound){ + // volume = 0.1; + // } + volume = 1; + cc.audioEngine.setEffectsVolume(1); + cc.audioEngine.setMusicVolume(1); + if (audioSource.name == "lose") { + cc.audioEngine.setEffectsVolume(0.5); + } + else { + cc.audioEngine.setEffectsVolume(1); + } + var context = cc.audioEngine.playEffect(audioSource, loop); + if (callback) { + cc.audioEngine.setFinishCallback(context, function () { + callback.call(this); + }.bind(this)); + } + // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src); + this.mAudioMap[audioSource] = context; + return audioSource; + // } else { + // return audioSource; + // } + }; + AudioManager.prototype.save = function () { + // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch); + // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch); + }; + // static get Instance() + // { + // if (this._instance == null) + // { + // this._instance = new AudioManager(); + // } + // return this._instance; + // } + AudioManager.prototype.preload = function () { + if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { + return; + } + var musics = [ + this.audioGameBgm0, + ]; + musics.forEach(function (path) { + }); + }; + AudioManager.prototype.getAudioMusicSwitch = function () { + return this.mMusicSwitch; + }; + AudioManager.prototype.getAudioEffectSwitch = function () { + return this.mEffectSwitch; + }; + AudioManager.prototype.trunAudioSound = function (on) { + this.switchMusic(on); + this.switchEffect(on); + }; + AudioManager.prototype.switchMusic = function (on) { + if (this.mMusicSwitch != (on ? 1 : 0)) { + this.mMusicSwitch = 1 - this.mMusicSwitch; + // this.save(); + } + if (on) { + this.playMusicGame(); + } + else { + this.stopMusic(); + } + }; + AudioManager.prototype.switchEffect = function (on) { + if (this.mEffectSwitch != (on ? 1 : 0)) { + this.mEffectSwitch = 1 - this.mEffectSwitch; + // this.save(); + } + }; + AudioManager.prototype.onHide = function () { + cc.audioEngine.pauseAll(); + }; + AudioManager.prototype.onShow = function () { + cc.audioEngine.resumeAll(); + }; + //播放音效 + AudioManager.prototype.playEffect = function (name, callback) { + if (this[name]) + return this.play(this[name], false, callback, this.mEffectSwitch); + }; + AudioManager.prototype.playMusic = function (key, callback, loop) { + loop = typeof loop == 'undefined' || loop ? true : false; + this.stopMusic(); + this.mMusicKey = this.play(key, loop, callback, true); + }; + /** + * 游戏背景音乐 + */ + AudioManager.prototype.playMusicGame = function () { + this.playMusic(this.audioGameBgm0, {}, true); + }; + /** + * 停止背景音乐播放 + */ + AudioManager.prototype.stopMusic = function () { + // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey); + var context = this.mAudioMap[this.mMusicKey]; + if (typeof (context) != 'undefined') { + if (cc.sys.isBrowser) { + cc.audioEngine.stop(context); + } + else { + context.stop(); + } + cc.audioEngine.stop(context); + } + }; + /* + * 游戏开始音效 + * + */ + AudioManager.prototype.playGameStart = function () { + }; + /* + * 失败的游戏结束 + */ + AudioManager.prototype.playGameOver = function () { + }; + /* + * 成功的游戏结束 + */ + AudioManager.prototype.playGameResultFailed = function () { + }; + /* + * 成功的游戏结束 + */ + AudioManager.prototype.playGameResultSuccess = function () { + }; + /** + * 报警的音效 + */ + /** + * 按钮 + */ + AudioManager.prototype.playAudioButton = function () { + // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch); + }; + var AudioManager_1; + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "audioGameBgm0", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "chehui", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "jineng", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "qingkong", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "fangxiang", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "build", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "win", void 0); + __decorate([ + property(cc.AudioClip) + ], AudioManager.prototype, "lose", void 0); + AudioManager = AudioManager_1 = __decorate([ + ccclass + ], AudioManager); + return AudioManager; +}(cc.Component)); +exports.default = AudioManager; +; +// export { AudioManager }; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js.map b/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js.map new file mode 100644 index 0000000..d5c3c5d --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Music/AudioManager.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Music\\AudioManager.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\n\nconst {ccclass, property} = cc._decorator;\n@ccclass\nexport default class AudioManager extends cc.Component {\n static _instance: any;\n //背景音乐\n @property(cc.AudioClip)\n audioGameBgm0: cc.AudioClip = null;\n\n @property(cc.AudioClip)\n chehui: cc.AudioClip = null;\n @property(cc.AudioClip)\n jineng: cc.AudioClip = null;\n @property(cc.AudioClip)\n qingkong: cc.AudioClip = null;\n @property(cc.AudioClip)\n fangxiang: cc.AudioClip = null;\n @property(cc.AudioClip)\n build: cc.AudioClip = null;\n @property(cc.AudioClip)\n win: cc.AudioClip = null;\n @property(cc.AudioClip)\n lose: cc.AudioClip = null;\n\n\n\n\n mAudioMap: {};\n bgMusicVolume: number;\n effectMusicVolume: number;\n mMusicSwitch: number;\n mEffectSwitch: number;\n brickSound: any;\n reward: boolean;\n finish: boolean;\n rewardCount: number;\n mMusicKey: any;\n\n onLoad() {\n if (AudioManager._instance == null) {\n AudioManager._instance = this;\n cc.game.addPersistRootNode(this.node);\n }\n else {\n return;\n }\n this.reward = false;\n this.finish = false;\n this.rewardCount = 0;\n this.ctor();\n\n this.preload();\n }\n\n ctor () {\n this.mAudioMap = {};\n /**\n * 默认音量大小\n * @type {number}\n */\n this.bgMusicVolume = 0.1;\n this.effectMusicVolume = 1;\n\n this.mMusicSwitch = 1;\n this.mEffectSwitch = 1;\n }\n play (audioSource, loop, callback, isBgMusic) {\n // if (isBgMusic && !this.mMusicSwitch) return;\n // if (!isBgMusic && !this.mEffectSwitch) return;\n var volume = isBgMusic ? this.bgMusicVolume : this.effectMusicVolume;\n\n // if (cc.sys.isBrowser) {\n // if(audioSource == this.brickSound){\n // volume = 0.1;\n // } \n volume = 1;\n cc.audioEngine.setEffectsVolume(1);\n cc.audioEngine.setMusicVolume(1);\n if(audioSource.name == \"lose\"){\n cc.audioEngine.setEffectsVolume(0.5);\n }\n else{\n cc.audioEngine.setEffectsVolume(1);\n }\n var context = cc.audioEngine.playEffect(audioSource, loop);\n if (callback){\n cc.audioEngine.setFinishCallback(context, function(){\n callback.call(this);\n }.bind(this));\n }\n // cc.wwx.OutPut.log('play audio effect isBrowser: ' + context.src);\n\n this.mAudioMap[audioSource] = context;\n return audioSource;\n // } else {\n // return audioSource;\n // }\n }\n\n save () {\n // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Music_Volume, this.mMusicSwitch);\n // cc.wwx.Storage.setItem(cc.wwx.Storage.Key_Setting_Effect_Volume, this.mEffectSwitch);\n }\n\n // static get Instance()\n // {\n // if (this._instance == null)\n // {\n // this._instance = new AudioManager();\n // }\n // return this._instance;\n // }\n\n preload () {\n if (!(cc.sys.platform === cc.sys.WECHAT_GAME)) { return; }\n\n var musics = [\n this.audioGameBgm0,\n ];\n musics.forEach(function(path) {\n })\n }\n\n getAudioMusicSwitch()\n {\n return this.mMusicSwitch;\n\n }\n getAudioEffectSwitch()\n {\n return this.mEffectSwitch;\n }\n trunAudioSound(on)\n {\n this.switchMusic(on);\n this.switchEffect(on)\n }\n switchMusic (on) {\n if (this.mMusicSwitch != (on?1:0))\n {\n this.mMusicSwitch = 1-this.mMusicSwitch;\n // this.save();\n }\n if(on)\n {\n this.playMusicGame();\n }\n else\n {\n this.stopMusic();\n }\n }\n switchEffect (on) {\n if (this.mEffectSwitch != (on?1:0)){\n this.mEffectSwitch = 1-this.mEffectSwitch;\n // this.save();\n\n }\n }\n onHide () {\n cc.audioEngine.pauseAll();\n }\n\n onShow () {\n cc.audioEngine.resumeAll();\n }\n\n //播放音效\n playEffect(name,callback){\n if(this[name])\n return this.play(this[name], false,callback,this.mEffectSwitch);\n }\n playMusic (key, callback, loop) {\n loop = typeof loop == 'undefined' || loop ? true : false;\n this.stopMusic();\n this.mMusicKey = this.play(key, loop, callback, true);\n }\n /**\n * 游戏背景音乐\n */\n playMusicGame () {\n this.playMusic(this.audioGameBgm0,{},true);\n }\n /**\n * 停止背景音乐播放\n */\n stopMusic () {\n // cc.wwx.OutPut.log('stopMusic audio effect wx: ' + this.mMusicKey);\n\n var context = this.mAudioMap[this.mMusicKey];\n\n if (typeof(context) != 'undefined') {\n if (cc.sys.isBrowser) {\n cc.audioEngine.stop(context);\n } else {\n context.stop();\n }\n cc.audioEngine.stop(context);\n\n }\n }\n\n /*\n * 游戏开始音效\n *\n */\n playGameStart()\n {\n \n }\n /*\n * 失败的游戏结束\n */\n playGameOver()\n {\n\n }\n /*\n * 成功的游戏结束\n */\n playGameResultFailed()\n {\n\n }\n /*\n * 成功的游戏结束\n */\n playGameResultSuccess()\n {\n\n }\n /**\n * 报警的音效\n */\n\n /**\n * 按钮\n */\n playAudioButton () {\n // return this.play(this.audioButtonClick, false,null,this.mEffectSwitch);\n }\n};\n\n// export { AudioManager };\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js b/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js new file mode 100644 index 0000000..640d5e7 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js @@ -0,0 +1,52 @@ +"use strict"; +cc._RF.push(module, '55403VjGlpPL564gsdiZBg3', 'Notification'); +// Script/module/Notification/Notification.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.Notifications = void 0; +//全局通知 +var Notifications = { + _eventMap: [], + on: function (masgId, callback, target) { + if (this._eventMap[masgId] === undefined) { + this._eventMap[masgId] = []; + } + this._eventMap[masgId].push({ callback: callback, target: target }); + }, + emit: function (masgId, parameter) { + var array = this._eventMap[masgId]; + if (array === undefined) + return; + for (var i = 0; i < array.length; i++) { + var element = array[i]; + if (element) + element.callback.call(element.target, parameter); + } + }, + off: function (masgId, callback) { + var array = this._eventMap[masgId]; + if (array === undefined) + return; + for (var i = 0; i < array.length; i++) { + var element = array[i]; + if (element && element.callback === callback) { + array[i] = undefined; + break; + } + } + }, + offMasgId: function (masgId) { + this._eventMap[masgId] = undefined; + }, + removeAllMsg: function () { + for (var k in this._eventMap) { + if (this._eventMap[k]) { + this.offMasgId(k); + } + } + } +}; +exports.Notifications = Notifications; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js.map b/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js.map new file mode 100644 index 0000000..cf8fb4a --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Notification/Notification.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Notification\\Notification.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAM;AACN,IAAI,aAAa,GAAG;IAChB,SAAS,EAAE,EAAE;IACb,EAAE,EAAE,UAAU,MAAM,EAAE,QAAQ,EAAE,MAAM;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,EAAE,UAAU,MAAM,EAAE,SAAS;QAC7B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,OAAO;gBAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SACjE;IACL,CAAC;IAED,GAAG,EAAE,UAAU,MAAM,EAAE,QAAQ;QAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;gBACrB,MAAM;aACT;SACJ;IACL,CAAC;IAED,SAAS,EAAE,UAAU,MAAM;QACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACvC,CAAC;IAED,YAAY,EAAE;QACV,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;YAC1B,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBACnB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACrB;SACJ;IACL,CAAC;CACJ,CAAC;AACO,sCAAa","file":"","sourceRoot":"/","sourcesContent":["//全局通知\nvar Notifications = {\n _eventMap: [],\n on: function (masgId, callback, target) {\n if (this._eventMap[masgId] === undefined) {\n this._eventMap[masgId] = [];\n }\n this._eventMap[masgId].push({ callback: callback, target: target });\n },\n\n emit: function (masgId, parameter) {\n let array = this._eventMap[masgId];\n if (array === undefined) return;\n\n for (let i = 0; i < array.length; i++) {\n let element = array[i];\n if (element) element.callback.call(element.target, parameter);\n }\n },\n\n off: function (masgId, callback) {\n let array = this._eventMap[masgId];\n if (array === undefined) return;\n for (let i = 0; i < array.length; i++) {\n let element = array[i];\n if (element && element.callback === callback) {\n array[i] = undefined;\n break;\n }\n }\n },\n\n offMasgId: function (masgId) {\n this._eventMap[masgId] = undefined;\n },\n\n removeAllMsg: function () {\n for (let k in this._eventMap) {\n if (this._eventMap[k]) {\n this.offMasgId(k);\n }\n }\n }\n};\nexport { Notifications };"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js b/temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js new file mode 100644 index 0000000..55ab7ea --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js @@ -0,0 +1,105 @@ +"use strict"; +cc._RF.push(module, 'ca0f9k0oBVDbpQC+OMNTF3m', 'ItemRender'); +// Script/module/RankList/ItemRender.ts + +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +var ItemRender = /** @class */ (function (_super) { + __extends(ItemRender, _super); + function ItemRender() { + var _this = _super !== null && _super.apply(this, arguments) || this; + /**数据 */ + _this.data = null; + /**索引 0表示第一项*/ + _this.itemIndex = 0; + return _this; + } + /**数据改变时调用 */ + ItemRender.prototype.dataChanged = function () { + cc.fx.GameTool.subName(this.data.name, 6); + this.node.getChildByName("rankLab").getComponent(cc.Label).string = this.data.rank + ""; + this.node.getChildByName("nameLab").getComponent(cc.Label).string = this.data.name + ""; + this.node.getChildByName("totalLab").getComponent(cc.Label).string = this.data.total; + var timeTemp = cc.fx.GameTool.getTimeShenNong(this.data.time); + // this.node.getChildByName("timeLab").getComponent(cc.Label).string = timeTemp + ""; + this.node.getChildByName("rank").getChildByName("one").active = false; + this.node.getChildByName("rank").getChildByName("two").active = false; + this.node.getChildByName("rank").getChildByName("three").active = false; + if (this.data.rank == 1) { + this.node.getChildByName("rank").getChildByName("one").active = true; + this.node.getChildByName("rankLab").active = false; + } + else if (this.data.rank == 2) { + this.node.getChildByName("rank").getChildByName("two").active = true; + this.node.getChildByName("rankLab").active = false; + } + else if (this.data.rank == 3) { + this.node.getChildByName("rank").getChildByName("three").active = true; + this.node.getChildByName("rankLab").active = false; + } + else { + this.node.getChildByName("rankLab").active = true; + } + this.setPic(); + }; + ItemRender.prototype.setPic = function () { + var _this = this; + this.node.getChildByName("pic").getChildByName("icon").active = false; + this.node.getChildByName("pic").getChildByName("pic").active = false; + var self = this; + var url = this.data.pic; + fetch(url) + .then(function (response) { + return response.headers.get('Content-Length'); + }) + .then(function (errNo) { + // console.log(this.data.rank,'X-Info:', errNo); // 输出X-ErrNo的值 + if (errNo == "5093") { + // console.log(this.data.rank,"没头像"); + _this.node.getChildByName("pic").getChildByName("icon").active = true; + } + }) + .catch(function (error) { + // console.error('Error fetching X-Info:', error); + }); + cc.assetManager.loadRemote(url, { ext: '.png' }, function (err, texture) { + if (texture) { + _this.node.getChildByName("pic").getChildByName("pic").active = true; + var sprite = _this.node.getChildByName("pic").getChildByName("pic").getComponent(cc.Sprite); + sprite.spriteFrame = new cc.SpriteFrame(texture); + // console.log(this.data.rank,"设置头像成功",err); + } + else { + // console.log("设置头像失败",url); + console.log(err, texture); + } + }); + }; + ItemRender = __decorate([ + ccclass + ], ItemRender); + return ItemRender; +}(cc.Component)); +exports.default = ItemRender; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js.map b/temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js.map new file mode 100644 index 0000000..172f13e --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/RankList/ItemRender.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\RankList\\ItemRender.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGM,IAAA,KAAwB,EAAE,CAAC,UAAU,EAAnC,OAAO,aAAA,EAAE,QAAQ,cAAkB,CAAC;AAG5C;IAAwC,8BAAY;IAApD;QAAA,qEAqEC;QApEG,QAAQ;QACD,UAAI,GAAO,IAAI,CAAC;QACvB,cAAc;QACP,eAAS,GAAU,CAAC,CAAC;;IAiEhC,CAAC;IA/DG,aAAa;IACN,gCAAW,GAAlB;QACI,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACxF,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACxF,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACrF,IAAI,QAAQ,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,qFAAqF;QACrF,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACxE,IAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAC;YACnB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;SACtD;aACI,IAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAC;YACxB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;SACtD;aACI,IAAG,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAC;YACxB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;YACvE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;SACtD;aAAI;YACD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;SACrD;QACD,IAAI,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;IAEM,2BAAM,GAAb;QAAA,iBAgCC;QA/BG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAE,KAAK,CAAC;QACpE,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QACxB,KAAK,CAAC,GAAG,CAAC;aACT,IAAI,CAAC,UAAA,QAAQ;YACV,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAClD,CAAC,CAAC;aAED,IAAI,CAAC,UAAA,KAAK;YACP,+DAA+D;YAC/D,IAAG,KAAK,IAAI,MAAM,EAAC;gBACf,qCAAqC;gBACrC,KAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;aACxE;QACL,CAAC,CAAC;aACD,KAAK,CAAC,UAAA,KAAK;YACR,kDAAkD;QACtD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAC,GAAG,EAAC,MAAM,EAAC,EAAC,UAAC,GAAG,EAAE,OAAoB;YACnE,IAAG,OAAO,EAAC;gBACP,KAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,GAAE,IAAI,CAAC;gBACnE,IAAI,MAAM,GAAG,KAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC3F,MAAM,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACjD,4CAA4C;aAC/C;iBACG;gBACA,6BAA6B;gBAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAC,OAAO,CAAC,CAAA;aAC3B;QACL,CAAC,CAAC,CAAA;IACN,CAAC;IAlEgB,UAAU;QAD9B,OAAO;OACa,UAAU,CAqE9B;IAAD,iBAAC;CArED,AAqEC,CArEuC,EAAE,CAAC,SAAS,GAqEnD;kBArEoB,UAAU","file":"","sourceRoot":"/","sourcesContent":["\r\nimport List, { ListType } from \"./List\";\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n@ccclass\r\nexport default class ItemRender extends cc.Component {\r\n /**数据 */\r\n public data:any = null;\r\n /**索引 0表示第一项*/\r\n public itemIndex:number = 0; \r\n\r\n /**数据改变时调用 */\r\n public dataChanged(){\r\n cc.fx.GameTool.subName(this.data.name,6);\r\n this.node.getChildByName(\"rankLab\").getComponent(cc.Label).string = this.data.rank + \"\";\r\n this.node.getChildByName(\"nameLab\").getComponent(cc.Label).string = this.data.name + \"\";\r\n this.node.getChildByName(\"totalLab\").getComponent(cc.Label).string = this.data.total;\r\n let timeTemp = cc.fx.GameTool.getTimeShenNong(this.data.time);\r\n // this.node.getChildByName(\"timeLab\").getComponent(cc.Label).string = timeTemp + \"\";\r\n this.node.getChildByName(\"rank\").getChildByName(\"one\").active = false;\r\n this.node.getChildByName(\"rank\").getChildByName(\"two\").active = false;\r\n this.node.getChildByName(\"rank\").getChildByName(\"three\").active = false;\r\n if(this.data.rank == 1){\r\n this.node.getChildByName(\"rank\").getChildByName(\"one\").active = true;\r\n this.node.getChildByName(\"rankLab\").active = false;\r\n }\r\n else if(this.data.rank == 2){\r\n this.node.getChildByName(\"rank\").getChildByName(\"two\").active = true;\r\n this.node.getChildByName(\"rankLab\").active = false;\r\n }\r\n else if(this.data.rank == 3){\r\n this.node.getChildByName(\"rank\").getChildByName(\"three\").active = true;\r\n this.node.getChildByName(\"rankLab\").active = false;\r\n }else{\r\n this.node.getChildByName(\"rankLab\").active = true;\r\n }\r\n this.setPic();\r\n } \r\n \r\n public setPic(){\r\n this.node.getChildByName(\"pic\").getChildByName(\"icon\").active = false;\r\n this.node.getChildByName(\"pic\").getChildByName(\"pic\").active= false;\r\n var self = this;\r\n let url = this.data.pic;\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n\r\n .then(errNo => {\r\n // console.log(this.data.rank,'X-Info:', errNo); // 输出X-ErrNo的值\r\n if(errNo == \"5093\"){\r\n // console.log(this.data.rank,\"没头像\");\r\n this.node.getChildByName(\"pic\").getChildByName(\"icon\").active = true;\r\n }\r\n })\r\n .catch(error => {\r\n // console.error('Error fetching X-Info:', error);\r\n });\r\n cc.assetManager.loadRemote(url, {ext:'.png'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n this.node.getChildByName(\"pic\").getChildByName(\"pic\").active= true;\r\n var sprite = this.node.getChildByName(\"pic\").getChildByName(\"pic\").getComponent(cc.Sprite);\r\n sprite.spriteFrame = new cc.SpriteFrame(texture);\r\n // console.log(this.data.rank,\"设置头像成功\",err);\r\n }\r\n else{\r\n // console.log(\"设置头像失败\",url);\r\n console.log(err,texture)\r\n }\r\n })\r\n }\r\n\r\n\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/RankList/List.js b/temp/quick-scripts/src/assets/Script/module/RankList/List.js new file mode 100644 index 0000000..b8a393c --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/RankList/List.js @@ -0,0 +1,622 @@ +"use strict"; +cc._RF.push(module, 'd5421HgLShFKIjj5f18m1mi', 'List'); +// Script/module/RankList/List.ts + +"use strict"; +// Learn TypeScript: +// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html +// Learn Attribute: +// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html +// Learn life-cycle callbacks: +// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StartAxisType = exports.ListType = void 0; +var ItemRender_1 = require("./ItemRender"); +var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; +/**列表排列方式 */ +var ListType; +(function (ListType) { + /**水平排列 */ + ListType[ListType["Horizontal"] = 1] = "Horizontal"; + /**垂直排列 */ + ListType[ListType["Vertical"] = 2] = "Vertical"; + /**网格排列 */ + ListType[ListType["Grid"] = 3] = "Grid"; +})(ListType = exports.ListType || (exports.ListType = {})); +/**网格布局中的方向 */ +var StartAxisType; +(function (StartAxisType) { + /**水平排列 */ + StartAxisType[StartAxisType["Horizontal"] = 1] = "Horizontal"; + /**垂直排列 */ + StartAxisType[StartAxisType["Vertical"] = 2] = "Vertical"; +})(StartAxisType = exports.StartAxisType || (exports.StartAxisType = {})); +/** + * 列表 + * 根据cocos_example的listView改动而来 + * @author chenkai 2020.7.8 + * @example + * 1.创建cocos的ScrollView组件,添加List,设置List属性即可 + * + */ +var List = /** @class */ (function (_super) { + __extends(List, _super); + function List() { + var _this = _super !== null && _super.apply(this, arguments) || this; + //==================== 属性面板 ========================= + /**列表选项 */ + _this.itemRender = null; + /**排列方式 */ + _this.type = ListType.Vertical; + /**网格布局中的方向 */ + _this.startAxis = StartAxisType.Horizontal; + /**列表项之间X间隔 */ + _this.spaceX = 0; + /**列表项之间Y间隔 */ + _this.spaceY = 0; + /**上间距 */ + _this.padding_top = 0; + /**下间距 */ + _this.padding_buttom = 0; + /**左间距 */ + _this.padding_left = 0; + _this._padding = 0; + /**右间距 */ + _this.padding_right = 0; + //====================== 滚动容器 =============================== + /**列表滚动容器 */ + _this.scrollView = null; + /**scrollView的内容容器 */ + _this.content = null; + //======================== 列表项 =========================== + /**列表项数据 */ + _this.itemDataList = []; + /**应创建的实例数量 */ + _this.spawnCount = 0; + /**存放列表项实例的数组 */ + _this.itemList = []; + /**item的高度 */ + _this.itemHeight = 0; + /**item的宽度 */ + _this.itemWidth = 0; + /**存放不再使用中的列表项 */ + _this.itemPool = []; + //======================= 计算参数 ========================== + /**距离scrollView中心点的距离,超过这个距离的item会被重置,一般设置为 scrollVIew.height/2 + item.heigt/2 + space,因为这个距离item正好超出scrollView显示范围 */ + _this.halfScrollView = 0; + /**上一次content的X值,用于和现在content的X值比较,得出是向左还是向右滚动 */ + _this.lastContentPosX = 0; + /**上一次content的Y值,用于和现在content的Y值比较,得出是向上还是向下滚动 */ + _this.lastContentPosY = 0; + /**网格行数 */ + _this.gridRow = 0; + /**网格列数 */ + _this.gridCol = 0; + /**刷新时间,单位s */ + _this.updateTimer = 0; + /**刷新间隔,单位s */ + _this.updateInterval = 0.1; + /**是否滚动容器 */ + _this.bScrolling = false; + /**刷新的函数 */ + _this.updateFun = function () { }; + return _this; + } + List.prototype.onLoad = function () { + this.itemHeight = this.itemRender.height; + this.itemWidth = this.itemRender.width; + this.scrollView = this.node.getComponent(cc.ScrollView); + this.content = this.scrollView.content; + this.content.anchorX = 0; + this.content.anchorY = 1; + this.content.removeAllChildren(); + this.scrollView.node.on("scrolling", this.onScrolling, this); + }; + /** + * 列表数据 (列表数据复制使用,如果列表数据改变,则需要重新设置一遍数据) + * @param itemDataList item数据列表 + */ + List.prototype.setData = function (itemDataList) { + this.itemDataList = itemDataList.slice(); + this.updateContent(); + }; + /**计算列表的各项参数 */ + List.prototype.countListParam = function () { + var dataLen = this.itemDataList.length; + if (this.type == ListType.Vertical) { + this.scrollView.horizontal = false; + this.scrollView.vertical = true; + this.content.width = this.content.parent.width; + this.content.height = dataLen * this.itemHeight + (dataLen - 1) * this.spaceY + this.padding_top + this.padding_buttom; + this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) + 2; //计算创建的item实例数量,比当前scrollView容器能放下的item数量再加上2个 + this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; //计算bufferZone,item的显示范围 + this.updateFun = this.updateV; + } + else if (this.type == ListType.Horizontal) { + this.scrollView.horizontal = true; + this.scrollView.vertical = false; + this.content.width = dataLen * this.itemWidth + (dataLen - 1) * this.spaceX + this.padding_left + this.padding_right; + this.content.height = this.content.parent.height; + this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) + 2; + this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX; + this.updateFun = this.udpateH; + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + this.scrollView.horizontal = false; + this.scrollView.vertical = true; + this.content.width = this.content.parent.width; + //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效 + if (this.padding_left + this.padding_right + this.itemWidth + this.spaceX > this.content.width) { + this.padding_left = 0; + this.padding_right = 0; + console.error("padding_left或padding_right过大"); + } + this.gridCol = Math.floor((this.content.width - this.padding_left - this.padding_right) / (this.itemWidth + this.spaceX)); + this.gridRow = Math.ceil(dataLen / this.gridCol); + this.content.height = this.gridRow * this.itemHeight + (this.gridRow - 1) * this.spaceY + this.padding_top + this.padding_buttom; + this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) * this.gridCol + this.gridCol * 2; + this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; + this.updateFun = this.updateGrid_V; + } + else if (this.startAxis == StartAxisType.Horizontal) { + this.scrollView.horizontal = true; + this.scrollView.vertical = false; + //计算高间隔 + this.content.height = this.content.parent.height; + //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效 + if (this.padding_top + this.padding_buttom + this.itemHeight + this.spaceY > this.content.height) { + this.padding_top = 0; + this.padding_buttom = 0; + console.error("padding_top或padding_buttom过大"); + } + this.gridRow = Math.floor((this.content.height - this.padding_top - this.padding_buttom) / (this.itemHeight + this.spaceY)); + this.gridCol = Math.ceil(dataLen / this.gridRow); + this.content.width = this.gridCol * this.itemWidth + (this.gridCol - 1) * this.spaceX + this.padding_left + this.padding_right; + this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) * this.gridRow + this.gridRow * 2; + this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX; + this.updateFun = this.updateGrid_H; + } + } + }; + /** + * 创建列表 + * @param startIndex 起始显示的数据索引 0表示第一项 + * @param offset scrollView偏移量 + */ + List.prototype.createList = function (startIndex, offset) { + //当需要显示的数据长度 > 虚拟列表长度, 删除最末尾几个数据时,列表需要重置位置到scrollView最底端 + if (this.itemDataList.length > this.spawnCount && (startIndex + this.spawnCount - 1) >= this.itemDataList.length) { + startIndex = this.itemDataList.length - this.spawnCount; + offset = this.scrollView.getMaxScrollOffset(); + //当需要显示的数据长度 <= 虚拟列表长度, 隐藏多余的虚拟列表项 + } + else if (this.itemDataList.length <= this.spawnCount) { + startIndex = 0; + } + for (var i = 0; i < this.spawnCount; i++) { + var item = void 0; + //需要显示的数据索引在数据范围内,则item实例显示出来 + if (i + startIndex < this.itemDataList.length) { + if (this.itemList[i] == null) { + item = this.getItem(); + this.itemList.push(item); + item.parent = this.content; + } + else { + item = this.itemList[i]; + } + //需要显示的数据索引超过了数据范围,则item实例隐藏起来 + } + else { + //item实例数量 > 需要显示的数据量 + if (this.itemList.length > (this.itemDataList.length - startIndex)) { + item = this.itemList.pop(); + item.removeFromParent(); + this.itemPool.push(item); + } + continue; + } + var itemRender = item.getComponent(ItemRender_1.default); + itemRender.itemIndex = i + startIndex; + itemRender.data = this.itemDataList[i + startIndex]; + itemRender.dataChanged(); + if (this.type == ListType.Vertical) { + //因为content的锚点X是0,所以item的x值是content.with/2表示居中,锚点Y是1,所以item的y值从content顶部向下是0到负无穷。所以item.y= -item.height/2时,是在content的顶部。 + item.setPosition(this.content.width / 2, -item.height * (0.5 + i + startIndex) - this.spaceY * (i + startIndex) - this.padding_top); + } + else if (this.type == ListType.Horizontal) { + item.setPosition(item.width * (0.5 + i + startIndex) + this.spaceX * (i + startIndex) + this.padding_left, -this.content.height / 2); + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + var row = Math.floor((i + startIndex) / this.gridCol); + var col = (i + startIndex) % this.gridCol; + item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top); + item.opacity = 255; + } + else if (this.startAxis == StartAxisType.Horizontal) { + var row = (i + startIndex) % this.gridRow; + var col = Math.floor((i + startIndex) / this.gridRow); + item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top); + item.opacity = 255; + } + } + } + this.scrollView.scrollToOffset(offset); + }; + /**获取一个列表项 */ + List.prototype.getItem = function () { + if (this.itemPool.length == 0) { + return cc.instantiate(this.itemRender); + } + else { + return this.itemPool.pop(); + } + }; + List.prototype.update = function (dt) { + if (this.bScrolling == false) { + return; + } + this.updateTimer += dt; + if (this.updateTimer < this.updateInterval) { + return; + } + this.updateTimer = 0; + this.bScrolling = false; + this.updateFun(); + }; + List.prototype.onScrolling = function () { + this.bScrolling = true; + }; + /**垂直排列 */ + List.prototype.updateV = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isUp = this.scrollView.content.y > this.lastContentPosY; + var offset = (this.itemHeight + this.spaceY) * items.length; + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isUp) { + //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界 + if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.y = item.y - offset; + } + } + else { + //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界 + if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.y = item.y + offset; + } + } + } + this.lastContentPosY = this.scrollView.content.y; + }; + /**水平排列 */ + List.prototype.udpateH = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isRight = this.scrollView.content.x > this.lastContentPosX; + var offset = (this.itemWidth + this.spaceX) * items.length; + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isRight) { + //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界 + if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.x = item.x - offset; + } + } + else { + //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界 + if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + items.length; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.x = item.x + offset; + } + } + } + this.lastContentPosX = this.scrollView.content.x; + }; + /**网格垂直排列 */ + List.prototype.updateGrid_V = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isUp = this.scrollView.content.y > this.lastContentPosY; + var offset = (this.itemHeight + this.spaceY) * (this.spawnCount / this.gridCol); + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isUp) { + //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界 + if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridCol) * this.gridCol; + if (this.itemDataList[itemIndex] != null) { + item.y = item.y - offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.y = item.y - offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + else { //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界 + if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridCol) * this.gridCol; + if (this.itemDataList[itemIndex] != null) { + item.y = item.y + offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.y = item.y + offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + } + this.lastContentPosY = this.scrollView.content.y; + }; + /**网格水平排列 */ + List.prototype.updateGrid_H = function () { + var items = this.itemList; + var item; + var bufferZone = this.halfScrollView; + var isRight = this.scrollView.content.x > this.lastContentPosX; + var offset = (this.itemWidth + this.spaceX) * (this.spawnCount / this.gridRow); + for (var i = 0; i < items.length; i++) { + item = items[i]; + var viewPos = this.getPositionInView(item); + if (isRight) { + //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界 + if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridRow) * this.gridRow; + if (this.itemDataList[itemIndex] != null) { + item.x = item.x - offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.x = item.x - offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + else { + //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界 + if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) { + var itemRender = item.getComponent(ItemRender_1.default); + var itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridRow) * this.gridRow; + if (this.itemDataList[itemIndex] != null) { + item.x = item.x + offset; + itemRender.itemIndex = itemIndex; + itemRender.data = this.itemDataList[itemIndex]; + itemRender.dataChanged(); + item.opacity = 255; + } + else { + item.x = item.x + offset; + itemRender.itemIndex = itemIndex; + item.opacity = 0; + } + } + } + } + this.lastContentPosX = this.scrollView.content.x; + }; + /**获取item在scrollView的局部坐标 */ + List.prototype.getPositionInView = function (item) { + var worldPos = item.parent.convertToWorldSpaceAR(item.position); + var viewPos = this.scrollView.node.convertToNodeSpaceAR(worldPos); + return viewPos; + }; + /**获取列表数据 */ + List.prototype.getListData = function () { + return this.itemDataList; + }; + /** + * 增加一项数据到列表的末尾 + * @param data 数据 + */ + List.prototype.addItem = function (data) { + this.itemDataList.push(data); + this.updateContent(); + }; + /** + * 增加一项数据到列表指定位置 + * @param index 位置,0表示第1项 + * @param data 数据 + */ + List.prototype.addItemAt = function (index, data) { + if (this.itemDataList[index] != null || this.itemDataList.length == index) { + this.itemDataList.splice(index, 1, data); + this.updateContent(); + } + }; + /** + * 删除一项数据 + * @param index 删除项的位置 ,0表示第1项 + */ + List.prototype.deleteItem = function (index) { + if (this.itemDataList[index] != null) { + this.itemDataList.splice(index, 1); + this.updateContent(); + } + }; + /** + * 改变一项数据 + * @param index 位置,0表示第1项 + * @param data 替换的数据 + */ + List.prototype.changeItem = function (index, data) { + if (this.itemDataList[index] != null) { + this.itemDataList[index] = data; + this.updateContent(); + } + }; + /**获取第一个Item的位置 */ + List.prototype.updateContent = function () { + //显示列表实例为0个 + if (this.itemList.length == 0) { + this.countListParam(); + this.createList(0, new cc.Vec2(0, 0)); + //显示列表的实例不为0个,则需要重新排列item实例数组 + } + else { + if (this.type == ListType.Vertical) { + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + } + else if (this.type == ListType.Horizontal) { + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + } + else if (this.type == ListType.Grid) { + if (this.startAxis == StartAxisType.Vertical) { + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + } + else if (this.startAxis == StartAxisType.Horizontal) { + this.itemList.sort(function (a, b) { + return b.y - a.y; + }); + this.itemList.sort(function (a, b) { + return a.x - b.x; + }); + } + } + this.countListParam(); + //获取第一个item实例需要显示的数据索引 + var startIndex = this.itemList[0].getComponent(ItemRender_1.default).itemIndex; + if (this.type == ListType.Grid && this.startAxis == StartAxisType.Vertical) { + startIndex += (startIndex + this.spawnCount) % this.gridCol; + } + else if (this.type == ListType.Grid && this.startAxis == StartAxisType.Horizontal) { + startIndex += (startIndex + this.spawnCount) % this.gridRow; + } + //getScrollOffset()和scrollToOffset()的x值是相反的 + var offset = this.scrollView.getScrollOffset(); + offset.x = -offset.x; + this.createList(startIndex, offset); + } + }; + /**销毁 */ + List.prototype.onDestroy = function () { + //清理列表项 + var len = this.itemList.length; + for (var i = 0; i < len; i++) { + if (cc.isValid(this.itemList[i], true)) { + this.itemList[i].destroy(); + } + } + this.itemList.length = 0; + //清理对象池 + len = this.itemPool.length; + for (var i = 0; i < len; i++) { + if (cc.isValid(this.itemPool[i], true)) { + this.itemPool[i].destroy(); + } + } + this.itemPool.length = 0; + //清理列表数据 + this.itemDataList.length = 0; + }; + __decorate([ + property({ type: cc.Node, tooltip: "列表项" }) + ], List.prototype, "itemRender", void 0); + __decorate([ + property({ type: cc.Enum(ListType), tooltip: "排列方式" }) + ], List.prototype, "type", void 0); + __decorate([ + property({ type: cc.Enum(StartAxisType), tooltip: "网格布局中的方向", visible: function () { return this.type == ListType.Grid; } }) + ], List.prototype, "startAxis", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "列表项X间隔", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "spaceX", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "列表项Y间隔", visible: function () { return this.type == ListType.Vertical || this.type == ListType.Grid; } }) + ], List.prototype, "spaceY", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "上间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } }) + ], List.prototype, "padding_top", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "下间距", visible: function () { return (this.type == ListType.Vertical || this.type == ListType.Grid); } }) + ], List.prototype, "padding_buttom", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "左间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "padding_left", void 0); + __decorate([ + property(cc.Integer) + ], List.prototype, "_padding", void 0); + __decorate([ + property({ type: cc.Integer, tooltip: "右间距", visible: function () { return (this.type == ListType.Horizontal || this.type == ListType.Grid); } }) + ], List.prototype, "padding_right", void 0); + List = __decorate([ + ccclass + ], List); + return List; +}(cc.Component)); +exports.default = List; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/RankList/List.js.map b/temp/quick-scripts/src/assets/Script/module/RankList/List.js.map new file mode 100644 index 0000000..09188b9 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/RankList/List.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\RankList\\List.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["// Learn TypeScript:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/typescript.html\r\n// Learn Attribute:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html\r\n// Learn life-cycle callbacks:\r\n// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html\r\n\r\nimport ItemRender from \"./ItemRender\"\r\n\r\nconst { ccclass, property } = cc._decorator;\r\n\r\n/**列表排列方式 */\r\nexport enum ListType {\r\n /**水平排列 */\r\n Horizontal = 1,\r\n /**垂直排列 */\r\n Vertical = 2,\r\n /**网格排列 */\r\n Grid = 3\r\n}\r\n\r\n/**网格布局中的方向 */\r\nexport enum StartAxisType {\r\n /**水平排列 */\r\n Horizontal = 1,\r\n /**垂直排列 */\r\n Vertical = 2,\r\n}\r\n\r\n/**\r\n * 列表\r\n * 根据cocos_example的listView改动而来\r\n * @author chenkai 2020.7.8\r\n * @example\r\n * 1.创建cocos的ScrollView组件,添加List,设置List属性即可\r\n * \r\n */\r\n@ccclass\r\nexport default class List extends cc.Component {\r\n\r\n //==================== 属性面板 =========================\r\n /**列表选项 */\r\n @property({ type: cc.Node, tooltip: \"列表项\" })\r\n public itemRender: cc.Node = null;\r\n\r\n /**排列方式 */\r\n @property({ type: cc.Enum(ListType), tooltip: \"排列方式\" })\r\n public type: ListType = ListType.Vertical;\r\n\r\n /**网格布局中的方向 */\r\n @property({ type: cc.Enum(StartAxisType), tooltip: \"网格布局中的方向\", visible() { return this.type == ListType.Grid } })\r\n public startAxis: StartAxisType = StartAxisType.Horizontal;\r\n\r\n /**列表项之间X间隔 */\r\n @property({ type: cc.Integer, tooltip: \"列表项X间隔\", visible() { return (this.type == ListType.Horizontal || this.type == ListType.Grid) } })\r\n public spaceX: number = 0;\r\n\r\n /**列表项之间Y间隔 */\r\n @property({ type: cc.Integer, tooltip: \"列表项Y间隔\", visible() { return this.type == ListType.Vertical || this.type == ListType.Grid } })\r\n public spaceY: number = 0;\r\n\r\n /**上间距 */\r\n @property({ type: cc.Integer, tooltip: \"上间距\", visible() { return (this.type == ListType.Vertical || this.type == ListType.Grid) } })\r\n public padding_top: number = 0;\r\n\r\n /**下间距 */\r\n @property({ type: cc.Integer, tooltip: \"下间距\", visible() { return (this.type == ListType.Vertical || this.type == ListType.Grid) } })\r\n public padding_buttom: number = 0;\r\n\r\n /**左间距 */\r\n @property({ type: cc.Integer, tooltip: \"左间距\", visible() { return (this.type == ListType.Horizontal || this.type == ListType.Grid) } })\r\n public padding_left: number = 0;\r\n\r\n\r\n\r\n @property(cc.Integer)\r\n public _padding: number = 0;\r\n\r\n /**右间距 */\r\n @property({ type: cc.Integer, tooltip: \"右间距\", visible() { return (this.type == ListType.Horizontal || this.type == ListType.Grid) } })\r\n public padding_right: number = 0;\r\n\r\n //====================== 滚动容器 ===============================\r\n /**列表滚动容器 */\r\n public scrollView: cc.ScrollView = null;\r\n /**scrollView的内容容器 */\r\n private content: cc.Node = null;\r\n\r\n //======================== 列表项 ===========================\r\n /**列表项数据 */\r\n private itemDataList: Array = [];\r\n /**应创建的实例数量 */\r\n private spawnCount: number = 0;\r\n /**存放列表项实例的数组 */\r\n private itemList: Array = [];\r\n /**item的高度 */\r\n private itemHeight: number = 0;\r\n /**item的宽度 */\r\n private itemWidth: number = 0;\r\n /**存放不再使用中的列表项 */\r\n private itemPool: Array = [];\r\n\r\n //======================= 计算参数 ==========================\r\n /**距离scrollView中心点的距离,超过这个距离的item会被重置,一般设置为 scrollVIew.height/2 + item.heigt/2 + space,因为这个距离item正好超出scrollView显示范围 */\r\n private halfScrollView: number = 0;\r\n /**上一次content的X值,用于和现在content的X值比较,得出是向左还是向右滚动 */\r\n private lastContentPosX: number = 0;\r\n /**上一次content的Y值,用于和现在content的Y值比较,得出是向上还是向下滚动 */\r\n private lastContentPosY: number = 0;\r\n /**网格行数 */\r\n private gridRow: number = 0;\r\n /**网格列数 */\r\n private gridCol: number = 0;\r\n /**刷新时间,单位s */\r\n private updateTimer: number = 0;\r\n /**刷新间隔,单位s */\r\n private updateInterval: number = 0.1;\r\n /**是否滚动容器 */\r\n private bScrolling: boolean = false;\r\n /**刷新的函数 */\r\n private updateFun: Function = function () { };\r\n\r\n onLoad() {\r\n this.itemHeight = this.itemRender.height;\r\n this.itemWidth = this.itemRender.width;\r\n this.scrollView = this.node.getComponent(cc.ScrollView);\r\n this.content = this.scrollView.content;\r\n this.content.anchorX = 0;\r\n this.content.anchorY = 1;\r\n this.content.removeAllChildren();\r\n this.scrollView.node.on(\"scrolling\", this.onScrolling, this);\r\n }\r\n\r\n /**\r\n * 列表数据 (列表数据复制使用,如果列表数据改变,则需要重新设置一遍数据)\r\n * @param itemDataList item数据列表\r\n */\r\n public setData(itemDataList: Array) {\r\n this.itemDataList = itemDataList.slice();\r\n this.updateContent();\r\n \r\n }\r\n\r\n /**计算列表的各项参数 */\r\n private countListParam() {\r\n let dataLen = this.itemDataList.length;\r\n if (this.type == ListType.Vertical) {\r\n this.scrollView.horizontal = false;\r\n this.scrollView.vertical = true;\r\n this.content.width = this.content.parent.width;\r\n this.content.height = dataLen * this.itemHeight + (dataLen - 1) * this.spaceY + this.padding_top + this.padding_buttom;\r\n this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) + 2; //计算创建的item实例数量,比当前scrollView容器能放下的item数量再加上2个\r\n this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY; //计算bufferZone,item的显示范围\r\n this.updateFun = this.updateV;\r\n } else if (this.type == ListType.Horizontal) {\r\n this.scrollView.horizontal = true;\r\n this.scrollView.vertical = false;\r\n this.content.width = dataLen * this.itemWidth + (dataLen - 1) * this.spaceX + this.padding_left + this.padding_right;\r\n this.content.height = this.content.parent.height;\r\n this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) + 2;\r\n this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX;\r\n this.updateFun = this.udpateH;\r\n } else if (this.type == ListType.Grid) {\r\n if (this.startAxis == StartAxisType.Vertical) {\r\n this.scrollView.horizontal = false;\r\n this.scrollView.vertical = true;\r\n this.content.width = this.content.parent.width;\r\n //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效\r\n if (this.padding_left + this.padding_right + this.itemWidth + this.spaceX > this.content.width) {\r\n this.padding_left = 0;\r\n this.padding_right = 0;\r\n console.error(\"padding_left或padding_right过大\");\r\n }\r\n\r\n this.gridCol = Math.floor((this.content.width - this.padding_left - this.padding_right) / (this.itemWidth + this.spaceX));\r\n this.gridRow = Math.ceil(dataLen / this.gridCol);\r\n this.content.height = this.gridRow * this.itemHeight + (this.gridRow - 1) * this.spaceY + this.padding_top + this.padding_buttom;\r\n this.spawnCount = Math.round(this.scrollView.node.height / (this.itemHeight + this.spaceY)) * this.gridCol + this.gridCol * 2;\r\n this.halfScrollView = this.scrollView.node.height / 2 + this.itemHeight / 2 + this.spaceY;\r\n this.updateFun = this.updateGrid_V;\r\n } else if (this.startAxis == StartAxisType.Horizontal) {\r\n this.scrollView.horizontal = true;\r\n this.scrollView.vertical = false;\r\n //计算高间隔\r\n this.content.height = this.content.parent.height;\r\n //如果left和right间隔过大,导致放不下一个item,则left和right都设置为0,相当于不生效\r\n if (this.padding_top + this.padding_buttom + this.itemHeight + this.spaceY > this.content.height) {\r\n this.padding_top = 0;\r\n this.padding_buttom = 0;\r\n console.error(\"padding_top或padding_buttom过大\");\r\n }\r\n\r\n this.gridRow = Math.floor((this.content.height - this.padding_top - this.padding_buttom) / (this.itemHeight + this.spaceY));\r\n this.gridCol = Math.ceil(dataLen / this.gridRow);\r\n this.content.width = this.gridCol * this.itemWidth + (this.gridCol - 1) * this.spaceX + this.padding_left + this.padding_right;\r\n this.spawnCount = Math.round(this.scrollView.node.width / (this.itemWidth + this.spaceX)) * this.gridRow + this.gridRow * 2;\r\n this.halfScrollView = this.scrollView.node.width / 2 + this.itemWidth / 2 + this.spaceX;\r\n this.updateFun = this.updateGrid_H;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 创建列表 \r\n * @param startIndex 起始显示的数据索引 0表示第一项\r\n * @param offset scrollView偏移量\r\n */\r\n private createList(startIndex: number, offset: cc.Vec2) {\r\n //当需要显示的数据长度 > 虚拟列表长度, 删除最末尾几个数据时,列表需要重置位置到scrollView最底端\r\n if (this.itemDataList.length > this.spawnCount && (startIndex + this.spawnCount - 1) >= this.itemDataList.length) {\r\n startIndex = this.itemDataList.length - this.spawnCount;\r\n offset = this.scrollView.getMaxScrollOffset();\r\n\r\n //当需要显示的数据长度 <= 虚拟列表长度, 隐藏多余的虚拟列表项 \r\n } else if (this.itemDataList.length <= this.spawnCount) {\r\n startIndex = 0;\r\n }\r\n\r\n for (let i = 0; i < this.spawnCount; i++) {\r\n let item: cc.Node;\r\n //需要显示的数据索引在数据范围内,则item实例显示出来\r\n if (i + startIndex < this.itemDataList.length) {\r\n if (this.itemList[i] == null) {\r\n item = this.getItem();\r\n this.itemList.push(item);\r\n item.parent = this.content;\r\n } else {\r\n item = this.itemList[i];\r\n }\r\n //需要显示的数据索引超过了数据范围,则item实例隐藏起来\r\n } else {\r\n //item实例数量 > 需要显示的数据量\r\n if (this.itemList.length > (this.itemDataList.length - startIndex)) {\r\n item = this.itemList.pop();\r\n item.removeFromParent();\r\n this.itemPool.push(item);\r\n }\r\n continue;\r\n }\r\n\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n itemRender.itemIndex = i + startIndex;\r\n itemRender.data = this.itemDataList[i + startIndex];\r\n itemRender.dataChanged();\r\n\r\n if (this.type == ListType.Vertical) {\r\n //因为content的锚点X是0,所以item的x值是content.with/2表示居中,锚点Y是1,所以item的y值从content顶部向下是0到负无穷。所以item.y= -item.height/2时,是在content的顶部。\r\n item.setPosition(this.content.width / 2, -item.height * (0.5 + i + startIndex) - this.spaceY * (i + startIndex) - this.padding_top);\r\n } else if (this.type == ListType.Horizontal) {\r\n item.setPosition(item.width * (0.5 + i + startIndex) + this.spaceX * (i + startIndex) + this.padding_left, -this.content.height / 2);\r\n } else if (this.type == ListType.Grid) {\r\n if (this.startAxis == StartAxisType.Vertical) {\r\n var row = Math.floor((i + startIndex) / this.gridCol);\r\n var col = (i + startIndex) % this.gridCol;\r\n item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top);\r\n item.opacity = 255;\r\n } else if (this.startAxis == StartAxisType.Horizontal) {\r\n var row = (i + startIndex) % this.gridRow;\r\n var col = Math.floor((i + startIndex) / this.gridRow);\r\n item.setPosition(item.width * (0.5 + col) + this.spaceX * col + this.padding_left, -item.height * (0.5 + row) - this.spaceY * row - this.padding_top);\r\n item.opacity = 255;\r\n }\r\n }\r\n }\r\n\r\n this.scrollView.scrollToOffset(offset);\r\n }\r\n\r\n /**获取一个列表项 */\r\n private getItem() {\r\n if (this.itemPool.length == 0) {\r\n return cc.instantiate(this.itemRender);\r\n } else {\r\n return this.itemPool.pop();\r\n }\r\n }\r\n\r\n update(dt) {\r\n if (this.bScrolling == false) {\r\n return;\r\n }\r\n this.updateTimer += dt;\r\n if (this.updateTimer < this.updateInterval) {\r\n return;\r\n }\r\n this.updateTimer = 0;\r\n this.bScrolling = false;\r\n this.updateFun();\r\n }\r\n\r\n onScrolling() {\r\n this.bScrolling = true;\r\n }\r\n\r\n /**垂直排列 */\r\n private updateV() {\r\n let items = this.itemList;\r\n let item;\r\n let bufferZone = this.halfScrollView;\r\n let isUp = this.scrollView.content.y > this.lastContentPosY;\r\n let offset = (this.itemHeight + this.spaceY) * items.length;\r\n for (let i = 0; i < items.length; i++) {\r\n item = items[i];\r\n let viewPos = this.getPositionInView(item);\r\n if (isUp) {\r\n //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界\r\n if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex + items.length;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.y = item.y - offset;\r\n }\r\n } else {\r\n //item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界\r\n if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex - items.length;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.y = item.y + offset;\r\n }\r\n }\r\n }\r\n this.lastContentPosY = this.scrollView.content.y;\r\n }\r\n\r\n /**水平排列 */\r\n private udpateH() {\r\n let items = this.itemList;\r\n let item;\r\n let bufferZone = this.halfScrollView;\r\n let isRight = this.scrollView.content.x > this.lastContentPosX;\r\n let offset = (this.itemWidth + this.spaceX) * items.length;\r\n for (let i = 0; i < items.length; i++) {\r\n item = items[i];\r\n let viewPos = this.getPositionInView(item);\r\n if (isRight) {\r\n //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界\r\n if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex - items.length;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.x = item.x - offset;\r\n }\r\n } else {\r\n //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界\r\n if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex + items.length;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.x = item.x + offset;\r\n }\r\n }\r\n }\r\n this.lastContentPosX = this.scrollView.content.x;\r\n }\r\n\r\n /**网格垂直排列 */\r\n private updateGrid_V() {\r\n let items = this.itemList;\r\n let item: cc.Node;\r\n let bufferZone = this.halfScrollView;\r\n let isUp = this.scrollView.content.y > this.lastContentPosY;\r\n let offset = (this.itemHeight + this.spaceY) * (this.spawnCount / this.gridCol);\r\n for (let i = 0; i < items.length; i++) {\r\n item = items[i];\r\n let viewPos = this.getPositionInView(item);\r\n if (isUp) {\r\n //item上滑时,超出了scrollView上边界,将item移动到下方复用,item移动到下方的位置必须不超过content的下边界\r\n if (viewPos.y > bufferZone && item.y - offset - this.padding_buttom > -this.content.height) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridCol) * this.gridCol;\r\n if (this.itemDataList[itemIndex] != null) {\r\n item.y = item.y - offset;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.opacity = 255;\r\n } else {\r\n item.y = item.y - offset;\r\n itemRender.itemIndex = itemIndex;\r\n item.opacity = 0;\r\n }\r\n }\r\n } else {//item下滑时,超出了scrollView下边界,将item移动到上方复用,item移动到上方的位置必须不超过content的上边界\r\n if (viewPos.y < -bufferZone && item.y + offset + this.padding_top < 0) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridCol) * this.gridCol;\r\n if (this.itemDataList[itemIndex] != null) {\r\n item.y = item.y + offset;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.opacity = 255;\r\n } else {\r\n item.y = item.y + offset;\r\n itemRender.itemIndex = itemIndex;\r\n item.opacity = 0;\r\n }\r\n }\r\n }\r\n }\r\n this.lastContentPosY = this.scrollView.content.y;\r\n }\r\n\r\n /**网格水平排列 */\r\n private updateGrid_H() {\r\n let items = this.itemList;\r\n let item;\r\n let bufferZone = this.halfScrollView;\r\n let isRight = this.scrollView.content.x > this.lastContentPosX;\r\n let offset = (this.itemWidth + this.spaceX) * (this.spawnCount / this.gridRow);\r\n for (let i = 0; i < items.length; i++) {\r\n item = items[i];\r\n let viewPos = this.getPositionInView(item);\r\n if (isRight) {\r\n //item右滑时,超出了scrollView右边界,将item移动到左方复用,item移动到左方的位置必须不超过content的左边界\r\n if (viewPos.x > bufferZone && item.x - offset - this.padding_left > 0) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex - (this.spawnCount / this.gridRow) * this.gridRow;\r\n if (this.itemDataList[itemIndex] != null) {\r\n item.x = item.x - offset;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.opacity = 255;\r\n } else {\r\n item.x = item.x - offset;\r\n itemRender.itemIndex = itemIndex;\r\n item.opacity = 0;\r\n }\r\n }\r\n } else {\r\n //item左滑时,超出了scrollView左边界,将item移动到右方复用,item移动到右方的位置必须不超过content的右边界\r\n if (viewPos.x < -bufferZone && item.x + offset + this.padding_right < this.content.width) {\r\n let itemRender: ItemRender = item.getComponent(ItemRender);\r\n let itemIndex = itemRender.itemIndex + (this.spawnCount / this.gridRow) * this.gridRow;\r\n if (this.itemDataList[itemIndex] != null) {\r\n item.x = item.x + offset;\r\n itemRender.itemIndex = itemIndex;\r\n itemRender.data = this.itemDataList[itemIndex];\r\n itemRender.dataChanged();\r\n item.opacity = 255;\r\n } else {\r\n item.x = item.x + offset;\r\n itemRender.itemIndex = itemIndex;\r\n item.opacity = 0;\r\n }\r\n }\r\n }\r\n }\r\n this.lastContentPosX = this.scrollView.content.x;\r\n }\r\n\r\n /**获取item在scrollView的局部坐标 */\r\n private getPositionInView(item) {\r\n let worldPos = item.parent.convertToWorldSpaceAR(item.position);\r\n let viewPos = this.scrollView.node.convertToNodeSpaceAR(worldPos);\r\n return viewPos;\r\n }\r\n\r\n /**获取列表数据 */\r\n public getListData() {\r\n return this.itemDataList;\r\n }\r\n\r\n /**\r\n * 增加一项数据到列表的末尾\r\n * @param data 数据\r\n */\r\n public addItem(data: any) {\r\n this.itemDataList.push(data);\r\n this.updateContent();\r\n }\r\n\r\n /**\r\n * 增加一项数据到列表指定位置\r\n * @param index 位置,0表示第1项\r\n * @param data 数据\r\n */\r\n public addItemAt(index: number, data: any) {\r\n if (this.itemDataList[index] != null || this.itemDataList.length == index) {\r\n this.itemDataList.splice(index, 1, data);\r\n this.updateContent();\r\n }\r\n }\r\n\r\n /**\r\n * 删除一项数据\r\n * @param index 删除项的位置 ,0表示第1项\r\n */\r\n public deleteItem(index: number) {\r\n if (this.itemDataList[index] != null) {\r\n this.itemDataList.splice(index, 1);\r\n this.updateContent();\r\n }\r\n }\r\n\r\n /**\r\n * 改变一项数据\r\n * @param index 位置,0表示第1项\r\n * @param data 替换的数据\r\n */\r\n public changeItem(index: number, data: any) {\r\n if (this.itemDataList[index] != null) {\r\n this.itemDataList[index] = data;\r\n this.updateContent();\r\n }\r\n }\r\n\r\n /**获取第一个Item的位置 */\r\n private updateContent() {\r\n //显示列表实例为0个\r\n if (this.itemList.length == 0) {\r\n this.countListParam();\r\n this.createList(0, new cc.Vec2(0, 0));\r\n //显示列表的实例不为0个,则需要重新排列item实例数组\r\n } else {\r\n if (this.type == ListType.Vertical) {\r\n this.itemList.sort((a: any, b: any) => {\r\n return b.y - a.y;\r\n });\r\n } else if (this.type == ListType.Horizontal) {\r\n this.itemList.sort((a: any, b: any) => {\r\n return a.x - b.x;\r\n });\r\n } else if (this.type == ListType.Grid) {\r\n if (this.startAxis == StartAxisType.Vertical) {\r\n this.itemList.sort((a: any, b: any) => {\r\n return a.x - b.x;\r\n });\r\n this.itemList.sort((a: any, b: any) => {\r\n return b.y - a.y;\r\n });\r\n } else if (this.startAxis == StartAxisType.Horizontal) {\r\n this.itemList.sort((a: any, b: any) => {\r\n return b.y - a.y;\r\n });\r\n this.itemList.sort((a: any, b: any) => {\r\n return a.x - b.x;\r\n });\r\n }\r\n }\r\n\r\n this.countListParam();\r\n\r\n //获取第一个item实例需要显示的数据索引\r\n var startIndex = this.itemList[0].getComponent(ItemRender).itemIndex;\r\n\r\n if (this.type == ListType.Grid && this.startAxis == StartAxisType.Vertical) {\r\n startIndex += (startIndex + this.spawnCount) % this.gridCol;\r\n } else if (this.type == ListType.Grid && this.startAxis == StartAxisType.Horizontal) {\r\n startIndex += (startIndex + this.spawnCount) % this.gridRow;\r\n }\r\n\r\n //getScrollOffset()和scrollToOffset()的x值是相反的\r\n var offset: cc.Vec2 = this.scrollView.getScrollOffset();\r\n offset.x = - offset.x;\r\n\r\n this.createList(startIndex, offset);\r\n }\r\n }\r\n\r\n /**销毁 */\r\n public onDestroy() {\r\n //清理列表项\r\n let len = this.itemList.length;\r\n for (let i = 0; i < len; i++) {\r\n if (cc.isValid(this.itemList[i], true)) {\r\n this.itemList[i].destroy();\r\n }\r\n }\r\n this.itemList.length = 0;\r\n //清理对象池\r\n len = this.itemPool.length;\r\n for (let i = 0; i < len; i++) {\r\n if (cc.isValid(this.itemPool[i], true)) {\r\n this.itemPool[i].destroy();\r\n }\r\n }\r\n this.itemPool.length = 0;\r\n //清理列表数据\r\n this.itemDataList.length = 0;\r\n }\r\n}\r\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Share/share.js b/temp/quick-scripts/src/assets/Script/module/Share/share.js new file mode 100644 index 0000000..8393853 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Share/share.js @@ -0,0 +1,134 @@ +"use strict"; +cc._RF.push(module, '7290caA39xMWZc2phTMKovP', 'share'); +// Script/module/Share/share.ts + +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.WeChat = void 0; +var shareConfig = { + gameId: "100019", + shareLine: "zDLsruVI", + EK: "hui231%1" +}; +// 微信操作类 +var WeChat = /** @class */ (function () { + function WeChat() { + } + WeChat.setShare = function (url) { + var urlTemp = this.removeQueryParams(url); + shareConfig.shareLine = urlTemp; + if (cc.sys.platform == cc.sys.WECHAT_GAME) { + WeChat.getSignature(url); + } + }; + WeChat.getResult = function (res) { + if (res) { + var data = res.data; + wx.config({ + debug: false, + appId: data.appId, + timestamp: data.timestamp, + nonceStr: data.nonceStr, + signature: data.signature, + jsApiList: ['onMenuShareTimeline', 'updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareAppMessage'] + }); + wx.checkJsApi({ + jsApiList: ['updateAppMessageShareData'], + success: function (res) { + setTimeout(function () { + WeChat.changeShare(); + }, 100); + setTimeout(function () { + WeChat.changeShare(); + }, 200); + } + }); + } + }; + WeChat.changeShare = function () { + wx.ready(function () { + wx.updateAppMessageShareData({ + title: '逻辑性认知测评', + desc: '你的认知灵活性和选择注意有问题吗', + link: shareConfig.shareLine, + imgUrl: 'https://static.sparkus.cn/public/shennong.jpg', + success: function () { + // 设置成功 + console.log("分享好友成功回调"); + } + }); + setTimeout(function () { + wx.updateTimelineShareData({ + title: '逻辑性认知测评', + link: shareConfig.shareLine, + imgUrl: 'https://static.sparkus.cn/public/shennong.jpg', + success: function () { + // 设置成功 + console.log("分享朋友圈成功回调"); + } + }); + }, 500); + }); + }; + WeChat.getSignature = function (url) { + return new Promise(function (resolve) { + WeChat.getShareInfo((encodeURIComponent(url)), WeChat.getResult); + }); + }; + WeChat.getShareInfo = function (shareUrl, callback) { + return __awaiter(this, void 0, Promise, function () { + var time, url; + return __generator(this, function (_a) { + time = Math.floor((new Date().getTime()) / 1000); + url = cc.fx.HttpUtil.apiSign("/api/share/cfg?gameId=" + shareConfig.gameId + "&time=" + time + "&url=" + shareUrl, {}); + return [2 /*return*/, cc.fx.HttpUtil.get(url, callback, 0)]; + }); + }); + }; + WeChat.containsNanana = function (str) { + return /test/i.test(str); + }; + WeChat.removeQueryParams = function (url) { + return url.replace(/\?.*$/, ''); + }; + return WeChat; +}()); +exports.WeChat = WeChat; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Share/share.js.map b/temp/quick-scripts/src/assets/Script/module/Share/share.js.map new file mode 100644 index 0000000..305e514 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Share/share.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Share\\share.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAI,WAAW,GAAG;IACd,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,UAAU;IACrB,EAAE,EAAC,UAAU;CACd,CAAC;AAWJ,QAAQ;AACR;IAAA;IAkFA,CAAC;IAjFU,eAAQ,GAAf,UAAgB,GAAG;QACf,IAAI,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC1C,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC;QAChC,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE;YACvC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;SAC5B;IAEL,CAAC;IAEM,gBAAS,GAAhB,UAAiB,GAAG;QAChB,IAAG,GAAG,EAAC;YACH,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACpB,EAAE,CAAC,MAAM,CAAC;gBACN,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE,CAAC,qBAAqB,EAAC,2BAA2B,EAAE,yBAAyB,EAAE,uBAAuB,CAAC;aACrH,CAAC,CAAC;YACH,EAAE,CAAC,UAAU,CAAC;gBACV,SAAS,EAAE,CAAC,2BAA2B,CAAC;gBACxC,OAAO,EAAE,UAAS,GAAG;oBACjB,UAAU,CAAC;wBACP,MAAM,CAAC,WAAW,EAAE,CAAC;oBACzB,CAAC,EAAE,GAAG,CAAC,CAAC;oBACR,UAAU,CAAC;wBACP,MAAM,CAAC,WAAW,EAAE,CAAC;oBACzB,CAAC,EAAE,GAAG,CAAC,CAAC;gBACZ,CAAC;aACJ,CAAC,CAAC;SACN;IACL,CAAC;IAEM,kBAAW,GAAlB;QACI,EAAE,CAAC,KAAK,CAAC;YACL,EAAE,CAAC,yBAAyB,CAAC;gBACzB,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,kBAAkB;gBACxB,IAAI,EAAE,WAAW,CAAC,SAAS;gBAC3B,MAAM,EAAE,+CAA+C;gBACvD,OAAO,EAAE;oBACP,OAAO;oBACP,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC1B,CAAC;aACJ,CAAC,CAAC;YACH,UAAU,CAAC;gBACP,EAAE,CAAC,uBAAuB,CAAC;oBACvB,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,WAAW,CAAC,SAAS;oBAC3B,MAAM,EAAE,+CAA+C;oBACvD,OAAO,EAAE;wBACP,OAAO;wBACP,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;oBAC3B,CAAC;iBACF,CAAC,CAAA;YACR,CAAC,EAAE,GAAG,CAAC,CAAC;QAEZ,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,mBAAY,GAAnB,UAAoB,GAAW;QAC3B,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;YACvB,MAAM,CAAC,YAAY,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;IACP,CAAC;IACY,mBAAY,GAAzB,UAA0B,QAAgB,EAAE,QAAiB;uCAAG,OAAO;;;gBAC7D,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;gBAChD,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,2BAAyB,WAAW,CAAC,MAAM,cAAS,IAAI,aAAQ,QAAU,EAAC,EAAE,CAAC,CAAA;gBACjH,sBAAO,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAC,QAAQ,EAAC,CAAC,CAAC,EAAC;;;KAC7C;IAGM,qBAAc,GAArB,UAAsB,GAAG;QACrB,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEM,wBAAiB,GAAxB,UAAyB,GAAG;QACxB,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACpC,CAAC;IAEL,aAAC;AAAD,CAlFA,AAkFC,IAAA;AAlFY,wBAAM","file":"","sourceRoot":"/","sourcesContent":["\n\nvar shareConfig = {\n gameId: \"100019\",\n shareLine: \"zDLsruVI\",\n EK:\"hui231%1\"\n };\n\n// 定义微信配置数据的接口\ninterface IWeChatConfig {\n appId: string;\n timestamp: number;\n nonceStr: string;\n signature: string;\n jsApiList: [];\n}\n\n// 微信操作类\nexport class WeChat {\n static setShare(url) {\n var urlTemp = this.removeQueryParams(url);\n shareConfig.shareLine = urlTemp;\n if (cc.sys.platform == cc.sys.WECHAT_GAME) {\n WeChat.getSignature(url);\n }\n \n }\n\n static getResult(res){\n if(res){\n var data = res.data;\n wx.config({\n debug: false,\n appId: data.appId,\n timestamp: data.timestamp,\n nonceStr: data.nonceStr,\n signature: data.signature,\n jsApiList: ['onMenuShareTimeline','updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareAppMessage']\n });\n wx.checkJsApi({\n jsApiList: ['updateAppMessageShareData'], // 需要检测的JS接口列表,所有JS接口列表见附录2,\n success: function(res) {\n setTimeout(() => { \n WeChat.changeShare();\n }, 100);\n setTimeout(() => {\n WeChat.changeShare();\n }, 200);\n }\n });\n }\n }\n\n static changeShare(){\n wx.ready(() => {\n wx.updateAppMessageShareData({ \n title: '逻辑性认知测评', // 分享标题\n desc: '你的认知灵活性和选择注意有问题吗', // 分享描述\n link: shareConfig.shareLine, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致\n imgUrl: 'https://static.sparkus.cn/public/shennong.jpg', // 分享图标\n success: function () {\n // 设置成功\n console.log(\"分享好友成功回调\");\n }\n });\n setTimeout(() => {\n wx.updateTimelineShareData({ \n title: '逻辑性认知测评', // 分享标题\n link: shareConfig.shareLine, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致\n imgUrl: 'https://static.sparkus.cn/public/shennong.jpg', // 分享图标\n success: function () {\n // 设置成功\n console.log(\"分享朋友圈成功回调\");\n }\n })\n }, 500);\n\n }); \n }\n\n static getSignature(url: string): Promise {\n return new Promise((resolve) => {\n WeChat.getShareInfo((encodeURIComponent(url)),WeChat.getResult);\n });\n }\n static async getShareInfo(shareUrl: string, callback:Function): Promise {\n const time = Math.floor((new Date().getTime()) / 1000)\n const url = cc.fx.HttpUtil.apiSign(`/api/share/cfg?gameId=${shareConfig.gameId}&time=${time}&url=${shareUrl}`,{})\n return cc.fx.HttpUtil.get(url,callback,0);\n }\n\n \n static containsNanana(str) {\n return /test/i.test(str);\n }\n\n static removeQueryParams(url) {\n return url.replace(/\\?.*$/, '');\n }\n\n}\n"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js b/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js new file mode 100644 index 0000000..7aab291 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js @@ -0,0 +1,34 @@ +"use strict"; +cc._RF.push(module, '1002938VFRJd70RiAno9Iys', 'Storage'); +// Script/module/Storage/Storage.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.StorageMessage = void 0; +//缓存浏览器数据 +var StorageMessage = { + getStorage: function (key) { + var result = null; + if (cc.sys.localStorage.getItem(key)) { + var result = cc.sys.localStorage.getItem(key); + } + if (result) { + result = JSON.parse(result); + } + return result; + }, + setStorage: function (key, value) { + //主动拉起分享接口 + var temp = JSON.stringify(value); + cc.sys.localStorage.setItem(key, temp); + }, + removeStorage: function (key) { + //主动删除消息接口 + if (cc.sys.localStorage.getItem(key)) { + cc.sys.localStorage.removeItem(key); + } + }, +}; +exports.StorageMessage = StorageMessage; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js.map b/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js.map new file mode 100644 index 0000000..0aa3e8a --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Storage/Storage.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Storage\\Storage.ts"],"names":[],"mappings":";;;;;;;AAAA,SAAS;AACT,IAAI,cAAc,GAAG;IACjB,UAAU,EAAG,UAAS,GAAG;QACrB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;YAClC,IAAI,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC/C;QAED,IAAG,MAAM,EAAC;YACR,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC7B;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,EAAG,UAAS,GAAG,EAAC,KAAK;QAC3B,UAAU;QACV,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACjC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;IACD,aAAa,EAAG,UAAS,GAAG;QAC1B,UAAU;QACV,IAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;YAClC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;SACpC;IACH,CAAC;CACJ,CAAC;AAEO,wCAAc","file":"","sourceRoot":"/","sourcesContent":["//缓存浏览器数据\nvar StorageMessage = {\n getStorage : function(key){\n var result = null;\n if(cc.sys.localStorage.getItem(key)){\n var result = cc.sys.localStorage.getItem(key);\n }\n \n if(result){\n result = JSON.parse(result);\n }\n return result;\n },\n setStorage : function(key,value){\n //主动拉起分享接口\n var temp = JSON.stringify(value);\n cc.sys.localStorage.setItem(key, temp)\n },\n removeStorage : function(key){\n //主动删除消息接口\n if(cc.sys.localStorage.getItem(key)){\n cc.sys.localStorage.removeItem(key)\n }\n },\n};\n\nexport { StorageMessage };"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js b/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js new file mode 100644 index 0000000..dfacac8 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js @@ -0,0 +1,364 @@ +"use strict"; +cc._RF.push(module, '43bfcJ6/25Fs4fHUE0PeBOX', 'GameTool'); +// Script/module/Tool/GameTool.ts + +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.GameTool = void 0; +//最大工具类 各种公共方法,以及处理上传,获取后端接口数据 +var GameTool = { + _startTime: 0, + _endTime: 0, + _totalTime: 0, + //获取userId + Authentication: function () { + var name = "user_" + cc.fx.GameConfig.GM_INFO.gameId; + var data = JSON.parse(localStorage.getItem(name)); + if (data == "undifend" || data == null || data == "") { + var url = "https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=" + + encodeURIComponent(location.href); + console.log("链接没ID准备跳转", url); + window.location.href = url; + } + else { + if (!this.isNumber(data.userId)) { + var url = "https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=" + + encodeURIComponent(location.href); + console.log("链接不合法", url); + window.location.href = url; + } + else { + cc.fx.StorageMessage.setStorage(name, data); + cc.fx.GameConfig.GM_INFO.userId = parseInt(data.userId); + } + } + }, + isNumber: function (value) { + var result = false; + result = typeof value === 'number'; + if (result) + if (value < 200000) + result = false; + return result; + }, + containsTrain: function (str) { + return /from=train/i.test(str); + }, + //埋点上传 + setGameData: function () { + //GAME_DATA 初始化 每次清零 + cc.fx.GameConfig.GAME_DATA = []; + cc.fx.GameConfig.GAME_DATA.push(cc.fx.GameConfig.CLICK_DATA); + cc.fx.GameConfig.CLICK_init(); + var data = cc.fx.GameConfig.GAME_DATA; + var matchId = this.getMatchId(); + var postData = { + "gameId": cc.fx.GameConfig.GM_INFO.gameId, + "userId": cc.fx.GameConfig.GM_INFO.userId, + "matchId": matchId, + "data": data + }; + console.log("上传数据:", data); + cc.fx.HttpUtil.uploadUserLogData(postData, function () { }); + }, + //上传排行榜 type为1 + setRank: function (data) { + //GAME_DATA 初始化 每次清零 + var postData = { + "gameId": cc.fx.GameConfig.GM_INFO.gameId, + "userId": cc.fx.GameConfig.GM_INFO.userId, + "type": 1, + "score": data.score, + "accuracy": data.date, + "success": cc.fx.GameConfig.GM_INFO.success + }; + cc.fx.HttpUtil.rankData(1, function () { }, postData); + }, + //获取排行榜 type为2 + getRank: function (data, callback) { + var rankLength = data.length; + var postData = { + "gameId": cc.fx.GameConfig.GM_INFO.gameId, + "userId": cc.fx.GameConfig.GM_INFO.userId, + "page": 1, + "pageSize": rankLength + }; + //回调进getRankData + cc.fx.HttpUtil.rankData(2, function (data) { callback(data); }, postData); + }, + //获取matchId 用于上传每次点击数据里面记录id方便查询 + getMatchId: function () { + var matchId = cc.sys.localStorage.getItem("matchId"); + var tempId = matchId; + if (matchId == "undifend" || matchId == null) { + matchId = this.setMatchId(); + } + else { + if (this.containsNanana(matchId) == true) { + matchId = this.setMatchId(); + } + else { + var char = parseInt(tempId.substring(10, tempId.length)); + if (cc.fx.GameConfig.GM_INFO.level == 1) { + char += 1; + matchId = tempId.slice(0, 10) + char + ""; + if (this.containsNanana(matchId)) + matchId = this.setMatchId(); + cc.fx.GameConfig.GM_INFO.matchId = matchId; + cc.sys.localStorage.setItem("matchId", matchId); + } + } + } + if (this.containsNanana(matchId) == true) { + matchId = this.setMatchId(); + } + return matchId; + }, + //检测matchId 如果有缓存以前的nanana数据清除 + containsNanana: function (str) { + return /na/i.test(str); + }, + //重新设置MatchId + setMatchId: function () { + // 定义包含可用字符的字符集 + var characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; + // 创建一个数组以保存随机字符 + var uuidArray = []; + // 循环10次 生成10位的UUID + for (var i = 0; i < 10; i++) { + // 生成随机索引,范围是字符集的长度 + var randomIndex = Math.floor(Math.random() * characters.length); + // 从字符集中获取随机字符 + var randomChar = characters.charAt(randomIndex); + // 将字符添加到数组中 + uuidArray.push(randomChar); + } + var data = uuidArray.join('') + 1 + ""; + cc.sys.localStorage.setItem("matchNumber", 1); + cc.sys.localStorage.setItem("matchId", data); + cc.fx.GameConfig.GM_INFO.matchId = data; + return data; + }, + //截取名字 + subName: function (name, length) { + if (name.length > length) { + name = name.substring(0, length) + "..."; + } + return name; + }, + //设置头像 + setPic: function (node, pic) { + node.active = false; + var url = pic; + setTimeout(function () { + fetch(url) + .then(function (response) { + return response.headers.get('Content-Length'); + }) + .then(function (errNo) { + if (errNo == "5093") { + node.active = true; + } + }) + .catch(function (error) { + // console.error('Error fetching X-Info:', error); + }); + }, 100); + cc.assetManager.loadRemote(url, { ext: '.png' }, function (err, texture) { + if (texture) { + node.active = true; + node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); + } + else { + console.log(err, texture); + } + }); + }, + //第一个参数把目标带进来处理,第二个参数为名字长度,不同场景不同需求 + //名字4短,小排行,名字6长,大排行 + getRankData: function (data, target, nameLength) { + target.listData = data.data.list; + target.selfData = data.data.info; + var rankData = []; + var self = false; + cc.fx.GameTool.setPic(target.selfNode.getChildByName("pic").getChildByName("icon"), target.selfData.pic); + for (var i = 0; i <= target.listData.length - 1; i++) { + rankData.push({ rank: (i + 1), name: target.listData[i].nickName, total: target.listData[i].score, time: null, pic: target.listData[i].pic }); + if (cc.fx.GameConfig.GM_INFO.userId == target.listData[i].userId) { + self = true; + target.rankNumber = i; + target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string = (i + 1) + ""; + } + if (i == (target.listData.length - 1) && self == false) { + target.rankNumber = i; + target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string = "99+"; + } + } + cc.fx.GameTool.subName(target.selfData.nickName, nameLength); + target.selfNode.getChildByName("nameLab").getComponent(cc.Label).string = target.selfData.nickName; + target.selfNode.getChildByName("totalLab").getComponent(cc.Label).string = target.selfData.score; + var timeTemp = cc.fx.GameTool.getTimeShenNong(target.selfData.totleTimes); + // target.selfNode.getChildByName("timeLab").getComponent(cc.Label).string = timeTemp + ""; + switch (target.selfNode.getChildByName("rankLab").getComponent(cc.Label).string) { + case "1": + target.selfNode.getChildByName("rank").getChildByName("one").active = true; + break; + case "2": + target.selfNode.getChildByName("rank").getChildByName("two").active = true; + break; + case "3": + target.selfNode.getChildByName("rank").getChildByName("three").active = true; + break; + } + // 大排行 + if (nameLength == 6) { + target.rankList.setData(rankData); + target.selfNode.opacity = 255; + if (target.selfData.totalSunCount == 0) + target.selfNode.opacity = 0; + } + }, + getSeedRandom: function (min, max) { + // console.log("随机数:",cc.fx.GameConfig.GM_INFO.currSeed); + max = max || 1; + min = min || 0; + cc.fx.GameConfig.GM_INFO.currSeed = (cc.fx.GameConfig.GM_INFO.currSeed * 9301 + 49297) % 233280; + var rnd = cc.fx.GameConfig.GM_INFO.currSeed / 233280.0; + var tmp = min + rnd * (max - min); + return parseInt(tmp); + }, + //获取关卡配置的那个关卡数 + getCustom: function (type) { + var custom = cc.fx.StorageMessage.getStorage(cc.fx.storageType.storageTypeCustom); + if (custom == "undifend" || custom == null || custom == "") { + this.setCustom(); + } + else { + cc.fx.GameConfig.GM_INFO_SET("custom", custom[0]); + if (custom[0] != 0 || type == true) { + custom.shift(); + if (custom.length == 0) { + this.setCustom(); + } + else + cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom, custom); + } + } + }, + //本地没有存储到配置,或者配置用完,重新创建配置 + setCustom: function () { + var arrayLength = cc.fx.GameConfig.LEVEL_INFO.length; + var arrayList = []; + for (var i = 1; i < arrayLength; i++) { + arrayList.push(i); + } + arrayList.sort(function () { return Math.random() - 0.5; }); + arrayList.unshift(0); + cc.fx.GameConfig.GM_INFO_SET("custom", arrayList[0]); + cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom, arrayList); + }, + getSetScreenResolutionFlag: function () { + var size = cc.winSize; + var width = size.width; + var height = size.height; + if ((height / width) > (16.2 / 9)) + return false; + return true; + }, + //判断全面屏适配 + setFit: function (canvas) { + var flag = cc.fx.GameTool.getSetScreenResolutionFlag(); + if (flag) { + // console.log("不是全面屏"); + } + else { + // console.log("是全面屏"); + } + return flag; + }, + //获取游戏信息 + getGameInfo: function (node) { + var jg = false; + return jg; + }, + //设置游戏信息 + setGameInfo: function (pd) { + }, + //打乱数组 + shuffleArray: function (arr) { + return arr.sort(function () { return Math.random() - 0.5; }); + }, + //打字机效果 + typingAni: function (label, text, cb, target) { + var self = target; + var html = ''; + var arr = text.split(''); + var len = arr.length; + var step = 0; + self.func = function () { + html += arr[step]; + label.string = html; + if (++step == len) { + self.unschedule(self.func); + cb && cb(); + } + }; + self.schedule(self.func, 0.1, cc.macro.REPEAT_FOREVER, 0); + }, + //输入秒,返回需要展示时间格式 + getTimeMargin: function (second) { + var total = 0; + total = second; + var hour = 0; + hour = parseInt((total / 3600) + ""); //计算整数小时数 + var afterHour = total - hour * 60 * 60; //取得算出小时数后剩余的秒数 + var min = parseInt((afterHour / 60) + ""); //计算整数分 + var m = "" + min; + if (min < 10) + m = "0" + min; + var afterMin = total - hour * 60 * 60 - min * 60; //取得算出分后剩余的秒数 + var miao = afterMin + ""; + if (afterMin < 10) + miao = "0" + afterMin; + return m + ':' + miao; + }, + //输入秒,返回需要展示时间格式 + getTimeShenNong: function (second) { + second = parseInt(second / 1000 + ""); + var total = 0; + total = second; + var min = 0; + if (total > 60) { + min = parseInt((total / 60) + ""); //计算整数分 + } + var m = min + "'"; + var afterMin = total - min * 60; //取得算出分后剩余的秒数 + var miao = afterMin + "''"; + return m + miao; + }, + //输入秒,返回需要展示时间格式 + getTimeLondon: function (second) { + var total = 0; + total = second; + var min = 0; + if (total >= 60) { + min = parseInt((total / 60) + ""); //计算整数分 + } + var m = min + " 分"; + var afterMin = total - min * 60; //取得算出分后剩余的秒数 + var miao = afterMin + " 秒"; + return m + " " + miao; + }, + //获取时间戳 + getTime: function () { + var timestamp = (new Date().getTime()); + return timestamp; + }, + pushLister: function () { + }, + removeAllLister: function () { + }, +}; +exports.GameTool = GameTool; + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js.map b/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js.map new file mode 100644 index 0000000..84fd6e0 --- /dev/null +++ b/temp/quick-scripts/src/assets/Script/module/Tool/GameTool.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\Script\\module\\Tool\\GameTool.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["\r\n//最大工具类 各种公共方法,以及处理上传,获取后端接口数据\r\nvar GameTool = {\r\n _startTime: 0,\r\n _endTime: 0,\r\n _totalTime: 0,\r\n //获取userId\r\n Authentication(){\r\n let name = \"user_\" + cc.fx.GameConfig.GM_INFO.gameId;\r\n var data = JSON.parse(localStorage.getItem(name));\r\n if(data == \"undifend\" || data==null || data == \"\"){\r\n let url = \"https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=\"+\r\n encodeURIComponent(location.href);\r\n console.log(\"链接没ID准备跳转\",url);\r\n window.location.href = url;\r\n \r\n }\r\n else{\r\n if(!this.isNumber(data.userId)){\r\n let url = \"https://api.sparkus.cn/api/user/auth/login?domain=hui32579WdYPsgYq&callback=\"+\r\n encodeURIComponent(location.href);\r\n console.log(\"链接不合法\",url);\r\n window.location.href = url;\r\n }\r\n else{\r\n cc.fx.StorageMessage.setStorage(name,data);\r\n cc.fx.GameConfig.GM_INFO.userId = parseInt(data.userId);\r\n }\r\n }\r\n },\r\n\r\n isNumber(value) {\r\n var result = false;\r\n result = typeof value === 'number';\r\n if(result) if(value < 200000) result = false;\r\n return result;\r\n },\r\n\r\n containsTrain(str) {\r\n return /from=train/i.test(str);\r\n },\r\n\r\n\r\n //埋点上传\r\n setGameData(){\r\n //GAME_DATA 初始化 每次清零\r\n cc.fx.GameConfig.GAME_DATA = [];\r\n cc.fx.GameConfig.GAME_DATA.push(cc.fx.GameConfig.CLICK_DATA);\r\n cc.fx.GameConfig.CLICK_init();\r\n let data = cc.fx.GameConfig.GAME_DATA;\r\n let matchId = this.getMatchId();\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"matchId\":matchId,\r\n \"data\": data\r\n };\r\n\r\n console.log(\"上传数据:\",data);\r\n cc.fx.HttpUtil.uploadUserLogData(postData,function(){})\r\n },\r\n //上传排行榜 type为1\r\n setRank(data){\r\n //GAME_DATA 初始化 每次清零\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"type\":1,\r\n \"score\": data.score,\r\n \"accuracy\": data.date,\r\n \"success\": cc.fx.GameConfig.GM_INFO.success\r\n };\r\n cc.fx.HttpUtil.rankData(1,function(){},postData);\r\n },\r\n //获取排行榜 type为2\r\n getRank(data,callback){\r\n let rankLength = data.length;\r\n let postData = {\r\n \"gameId\":cc.fx.GameConfig.GM_INFO.gameId,\r\n \"userId\":cc.fx.GameConfig.GM_INFO.userId,\r\n \"page\":1,\r\n \"pageSize\":rankLength\r\n }; \r\n //回调进getRankData\r\n cc.fx.HttpUtil.rankData(2,data =>{callback(data)},postData);\r\n \r\n },\r\n //获取matchId 用于上传每次点击数据里面记录id方便查询\r\n getMatchId (){\r\n let matchId = cc.sys.localStorage.getItem(\"matchId\");\r\n let tempId = matchId;\r\n if(matchId == \"undifend\" || matchId==null){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n if(this.containsNanana(matchId) == true){\r\n matchId = this.setMatchId();\r\n }\r\n else{\r\n let char = parseInt(tempId.substring(10,tempId.length));\r\n if(cc.fx.GameConfig.GM_INFO.level == 1){\r\n char += 1;\r\n matchId = tempId.slice(0, 10) + char + \"\";\r\n if(this.containsNanana(matchId)) matchId = this.setMatchId();\r\n cc.fx.GameConfig.GM_INFO.matchId = matchId;\r\n cc.sys.localStorage.setItem(\"matchId\",matchId);\r\n }\r\n }\r\n }\r\n\r\n if(this.containsNanana(matchId) == true){\r\n matchId = this.setMatchId();\r\n }\r\n return matchId;\r\n },\r\n //检测matchId 如果有缓存以前的nanana数据清除\r\n containsNanana(str) {\r\n return /na/i.test(str);\r\n },\r\n //重新设置MatchId\r\n setMatchId (){\r\n // 定义包含可用字符的字符集\r\n const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\r\n // 创建一个数组以保存随机字符\r\n const uuidArray = [];\r\n // 循环10次 生成10位的UUID\r\n for (let i = 0; i < 10; i++) {\r\n // 生成随机索引,范围是字符集的长度\r\n const randomIndex = Math.floor(Math.random() * characters.length);\r\n // 从字符集中获取随机字符\r\n const randomChar = characters.charAt(randomIndex);\r\n // 将字符添加到数组中\r\n uuidArray.push(randomChar);\r\n }\r\n let data = uuidArray.join('') + 1 + \"\";\r\n cc.sys.localStorage.setItem(\"matchNumber\",1);\r\n cc.sys.localStorage.setItem(\"matchId\",data);\r\n cc.fx.GameConfig.GM_INFO.matchId = data;\r\n return data;\r\n },\r\n //截取名字\r\n subName(name,length){\r\n if(name.length > length){\r\n name = name.substring(0,length) + \"...\"\r\n }\r\n return name;\r\n },\r\n //设置头像\r\n setPic(node,pic){\r\n node.active = false;\r\n let url = pic;\r\n setTimeout(() => {\r\n fetch(url)\r\n .then(response => {\r\n return response.headers.get('Content-Length');\r\n })\r\n .then(errNo => {\r\n if(errNo == \"5093\"){\r\n node.active = true;\r\n }\r\n })\r\n .catch(error => {\r\n // console.error('Error fetching X-Info:', error);\r\n });\r\n }, 100);\r\n cc.assetManager.loadRemote(url, {ext:'.png'},(err, texture:cc.Texture2D) => {\r\n if(texture){\r\n node.active = true;\r\n node.getComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n }\r\n else{\r\n console.log(err,texture)\r\n }\r\n })\r\n },\r\n //第一个参数把目标带进来处理,第二个参数为名字长度,不同场景不同需求\r\n //名字4短,小排行,名字6长,大排行\r\n getRankData(data,target,nameLength){\r\n target.listData = data.data.list;\r\n target.selfData = data.data.info;\r\n let rankData = [];\r\n let self = false;\r\n cc.fx.GameTool.setPic(target.selfNode.getChildByName(\"pic\").getChildByName(\"icon\"),target.selfData.pic);\r\n for(let i=0;i<=target.listData.length-1;i++){\r\n rankData.push({rank:(i+1), name:target.listData[i].nickName, total:target.listData[i].score,time:null, pic:target.listData[i].pic});\r\n if(cc.fx.GameConfig.GM_INFO.userId == target.listData[i].userId){\r\n self = true;\r\n target.rankNumber = i;\r\n target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string =(i+1) + \"\"; \r\n }\r\n if(i == (target.listData.length-1) && self == false){\r\n target.rankNumber = i;\r\n target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string = \"99+\"; \r\n }\r\n }\r\n cc.fx.GameTool.subName(target.selfData.nickName,nameLength);\r\n target.selfNode.getChildByName(\"nameLab\").getComponent(cc.Label).string = target.selfData.nickName;\r\n target.selfNode.getChildByName(\"totalLab\").getComponent(cc.Label).string = target.selfData.score;\r\n let timeTemp = cc.fx.GameTool.getTimeShenNong(target.selfData.totleTimes);\r\n // target.selfNode.getChildByName(\"timeLab\").getComponent(cc.Label).string = timeTemp + \"\";\r\n switch(target.selfNode.getChildByName(\"rankLab\").getComponent(cc.Label).string){\r\n case \"1\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"one\").active = true;\r\n break;\r\n case \"2\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"two\").active = true;\r\n break;\r\n case \"3\":\r\n target.selfNode.getChildByName(\"rank\").getChildByName(\"three\").active = true;\r\n break;\r\n }\r\n // 大排行\r\n if(nameLength == 6){\r\n target.rankList.setData(rankData);\r\n target.selfNode.opacity = 255;\r\n if(target.selfData.totalSunCount == 0) target.selfNode.opacity = 0;\r\n }\r\n },\r\n\r\n getSeedRandom: function (min, max) {//包含min 不包含max\r\n // console.log(\"随机数:\",cc.fx.GameConfig.GM_INFO.currSeed);\r\n max = max || 1;\r\n min = min || 0;\r\n cc.fx.GameConfig.GM_INFO.currSeed = (cc.fx.GameConfig.GM_INFO.currSeed * 9301 + 49297) % 233280;\r\n let rnd = cc.fx.GameConfig.GM_INFO.currSeed / 233280.0;\r\n let tmp = min + rnd * (max - min);\r\n return parseInt(tmp);\r\n },\r\n //获取关卡配置的那个关卡数\r\n getCustom(type){\r\n let custom = cc.fx.StorageMessage.getStorage(cc.fx.storageType.storageTypeCustom);\r\n if(custom == \"undifend\" || custom==null || custom == \"\"){\r\n this.setCustom();\r\n }\r\n else{\r\n cc.fx.GameConfig.GM_INFO_SET(\"custom\",custom[0]);\r\n if(custom[0] != 0 || type == true){\r\n custom.shift();\r\n if(custom.length == 0){\r\n this.setCustom();\r\n }\r\n else cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,custom);\r\n }\r\n }\r\n },\r\n //本地没有存储到配置,或者配置用完,重新创建配置\r\n setCustom(){\r\n let arrayLength = cc.fx.GameConfig.LEVEL_INFO.length;\r\n let arrayList = [];\r\n for(let i=1; i Math.random() - 0.5);\r\n arrayList.unshift(0)\r\n cc.fx.GameConfig.GM_INFO_SET(\"custom\",arrayList[0]);\r\n cc.fx.StorageMessage.setStorage(cc.fx.storageType.storageTypeCustom,arrayList);\r\n },\r\n\r\n\r\n getSetScreenResolutionFlag: function () {\r\n let size = cc.winSize;\r\n let width = size.width;\r\n let height = size.height;\r\n if ((height / width) > (16.2 / 9)) return false;\r\n return true;\r\n },\r\n //判断全面屏适配\r\n setFit: function (canvas) {\r\n let flag = cc.fx.GameTool.getSetScreenResolutionFlag();\r\n if (flag) {\r\n \t// console.log(\"不是全面屏\");\r\n } else {\r\n \t// console.log(\"是全面屏\");\r\n }\r\n return flag;\r\n },\r\n //获取游戏信息\r\n getGameInfo: function(node){\r\n var jg = false;\r\n return jg;\r\n },\r\n //设置游戏信息\r\n setGameInfo: function(pd){\r\n \r\n },\r\n\r\n //打乱数组\r\n shuffleArray(arr) {\r\n return arr.sort(() => Math.random() - 0.5);\r\n },\r\n\r\n //打字机效果\r\n typingAni(label,text,cb,target){\r\n var self = target;\r\n var html = '';\r\n var arr = text.split('');\r\n var len = arr.length;\r\n var step = 0;\r\n self.func = ()=>{\r\n html += arr[step];\r\n label.string = html;\r\n if (++step == len) {\r\n self.unschedule(self.func);\r\n cb && cb();\r\n }\r\n }\r\n self.schedule(self.func,0.1, cc.macro.REPEAT_FOREVER, 0)\r\n },\r\n\r\n //输入秒,返回需要展示时间格式\r\n getTimeMargin:(second) => {\r\n let total = 0;\r\n total = second;\r\n let hour = 0;\r\n hour = parseInt((total / 3600) + \"\");//计算整数小时数\r\n let afterHour = total - hour * 60 * 60;//取得算出小时数后剩余的秒数\r\n let min = parseInt((afterHour / 60)+\"\");//计算整数分\r\n let m = \"\" + min; \r\n if(min < 10) m = \"0\"+min;\r\n let afterMin = total - hour * 60 * 60 - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"\";\r\n if(afterMin < 10) miao = \"0\" + afterMin;\r\n return m + ':' + miao\r\n },\r\n\r\n //输入秒,返回需要展示时间格式\r\n getTimeShenNong:(second) => {\r\n second = parseInt(second/1000+\"\");\r\n let total = 0;\r\n total = second;\r\n let min = 0;\r\n if(total > 60){\r\n min = parseInt((total / 60)+\"\");//计算整数分\r\n }\r\n let m = min + \"'\"; \r\n\r\n let afterMin = total - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \"''\";\r\n return m + miao\r\n },\r\n\r\n //输入秒,返回需要展示时间格式\r\n getTimeLondon:(second) => {\r\n let total = 0;\r\n total = second;\r\n let min = 0;\r\n if(total >= 60){\r\n min = parseInt((total / 60)+\"\");//计算整数分\r\n }\r\n let m = min + \" 分\"; \r\n\r\n let afterMin = total - min * 60;//取得算出分后剩余的秒数\r\n let miao = afterMin + \" 秒\";\r\n return m + \" \" + miao\r\n },\r\n\r\n //获取时间戳\r\n getTime(){\r\n var timestamp = (new Date().getTime())\r\n return timestamp;\r\n },\r\n pushLister:function () {\r\n \r\n },\r\n removeAllLister:function () {\r\n \r\n },\r\n\r\n};\r\nexport { GameTool };"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js b/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js new file mode 100644 index 0000000..d3b7414 --- /dev/null +++ b/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js @@ -0,0 +1,24 @@ +"use strict"; +cc._RF.push(module, '7a231Rz0d9LBYYgY3bDYlLB', 'use_v2.1-2.2.1_cc.Toggle_event'); +// migration/use_v2.1-2.2.1_cc.Toggle_event.js + +"use strict"; + +/* + * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version. + * You do not need to manually add this script in any other project. + * If you don't use cc.Toggle in your project, you can delete this script directly. + * If your project is hosted in VCS such as git, submit this script together. + * + * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程, + * 你无需在任何其它项目中手动添加此脚本。 + * 如果你的项目中没用到 Toggle,可直接删除该脚本。 + * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。 + */ +if (cc.Toggle) { + // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code + // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件 + cc.Toggle._triggerEventInScript_isChecked = true; +} + +cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js.map b/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js.map new file mode 100644 index 0000000..8cab03c --- /dev/null +++ b/temp/quick-scripts/src/assets/migration/use_v2.1-2.2.1_cc.Toggle_event.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["assets\\migration\\use_v2.1-2.2.1_cc.Toggle_event.js"],"names":["cc","Toggle","_triggerEventInScript_isChecked"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAIA,EAAE,CAACC,MAAP,EAAe;AACX;AACA;AACAD,EAAAA,EAAE,CAACC,MAAH,CAAUC,+BAAV,GAA4C,IAA5C;AACH","sourceRoot":"/","sourcesContent":["/*\r\n * This script is automatically generated by Cocos Creator and is only used for projects compatible with the v2.1.0 ~ 2.2.1 version.\r\n * You do not need to manually add this script in any other project.\r\n * If you don't use cc.Toggle in your project, you can delete this script directly.\r\n * If your project is hosted in VCS such as git, submit this script together.\r\n *\r\n * 此脚本由 Cocos Creator 自动生成,仅用于兼容 v2.1.0 ~ 2.2.1 版本的工程,\r\n * 你无需在任何其它项目中手动添加此脚本。\r\n * 如果你的项目中没用到 Toggle,可直接删除该脚本。\r\n * 如果你的项目有托管于 git 等版本库,请将此脚本一并上传。\r\n */\r\n\r\nif (cc.Toggle) {\r\n // Whether to trigger 'toggle' and 'checkEvents' events when modifying 'toggle.isChecked' in the code\r\n // 在代码中修改 'toggle.isChecked' 时是否触发 'toggle' 与 'checkEvents' 事件\r\n cc.Toggle._triggerEventInScript_isChecked = true;\r\n}\r\n"]} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..93c0b22 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ "es2015", "es2017", "dom" ], + "target": "es5", + "experimentalDecorators": true, + "skipLibCheck": true, + "outDir": "temp/vscode-dist", + "forceConsistentCasingInFileNames": true + }, + "exclude": [ + "node_modules", + "library", + "local", + "temp", + "build", + "settings" + ] +} \ No newline at end of file diff --git a/资源文件/UI/again.png b/资源文件/UI/again.png new file mode 100644 index 0000000000000000000000000000000000000000..de4afb2b68f616b591a0af3cb7f1fdceada783ae GIT binary patch literal 19393 zcmaI6V|Xq>w=EjmcCupIwr$(CZ6_|Lp%%GY}K~my4?nAMyVZr75RKB;w#~M#M(XPG`cz z%1Ok*MbE^}%E-b_OT^5`#KpkK$-u-y$H>IZ$j;5iLG-^b;(yVcP0hKLMaBPjtbZjw zVoO(7M{WiN4-XG|4;Fd{XA1@T}b|$LDbB}#M#Qx z)yl!1=s%1`#tv?-e8m5h{;ww3IsPA7dzb&+P5(NK!PCf*fr*~+KTY~?M>)Cwe^)!Z z|KsiAs%-Xu_5ObnyQq3OnlUJwxj48voBSI%bCUmra^x0qHZyW{a8`A2u>J2|RJ3$( zb#SqCa3o^>Cy9ts&d9{d{y#NT{{@kgr!6hcn$Z#lgnL_1{=g2NO3tGke$n#+v?Ltl0mE{ZBU7IsS_* zYUXU^Ze}X(>|jUqU#;f0`k%E3|BrnC8*BPMYZ3V$u?+vjF#Kn1|6gPM-&Ow-=s)KF z$=rX1|C9S>_Wu&z`Cn#_;~;4Nn_ko7aBODSD$`rv`6*wQuUxIxT|2AVDL2 z*uW4%aON(yJ%+sUve)Z*Ii$&4$v1#^POjuk*|x^y2Na%3(?%ApF{kSh!y`s^tcEyb zh?r5LfiyuPBVgf{<;!oox7B5Xt?z34oj3iMF%}Amxjx<(pSPV-`xTA7pKqDQEq-VE zp3OBb4u8_OjiYwoj3|!gQSX=ui*fyN{Vz?_8cUtSv`ads{HTYG#@ta&z1K-Bka28= z8btrj+cSFR?%xI(Z<_rqVUV(ZUS}Et5`#rO2R$6Md

cKQ-Fc21?=T@EIE%7(cNq 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 literal 0 HcmV?d00001 diff --git a/资源文件/UI/err.png b/资源文件/UI/err.png new file mode 100644 index 0000000000000000000000000000000000000000..47f123670731b3fe3d0589811a746a7dfa2836c8 GIT binary patch literal 4190 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 literal 0 HcmV?d00001 diff --git a/资源文件/UI/gezi.png b/资源文件/UI/gezi.png new file mode 100644 index 0000000000000000000000000000000000000000..30e0d79287f90ec9e16d97f3cc2a19818c13573f GIT binary patch literal 141510 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≪-c)qYU5+&zYE zGy#eus3A*s52v~wdYMpeuwoXUNicD9O4{jzDVBa=f!+n7P-pf4sRzEfhi?>6Z8!fe zCvk5w-~A*mC-Z#zxu0*OT5MxOR1hVWkwxk5*r}&5XFMH-BmmBipORHQ7A-7T;Iwx& zt53v`PiCb$uLGB%TPg95>a*RghK+ln9@Kh(sHe#Xf%TD9pHPXqbg+qn^I}^ny0iA zjm>94n-_TZta9JY#x}2qlVa8{cheeHQDP@5AgtgXmF2DO@RA#>dfNBn2aoV2T!QPz zh`evcBD-(?LFhv3{oUu53o4V>nNB zsi(=*+ESgW%26fiisRI4vv*wt3d!v`qRO$fXMwjfWg(^Gdua`K!ls5n7VK?{yMallfarqMOW3@_haDkkqwiOCUjF^LPP> zW4+b&P5-GKnq3!jh^$MLGP45UG0xL^G4?2h1MJ$;@YKD(S)~p~r#Q#>z}+jS0iuh; zQ19-41&NtGg4FiRWB?@|8O*GoKBVmj-i>de7MfN+>o>C|nJAStVZ#HZm zo78n#Uy$xEpd>f%h_#lDVgw#Kn~Z@#4^k5Q^sP)MC49SH22e!cpI>}GTA(5}#wT#H z*bH7=`4NPH4{G#|#vW*7Y;%fCYH6&*N*S?&A+T-(DFHS>d(TC=1{1eAf(Fc!a=2r~ zKDxaJj3S~{bZS9M>F#gkAFGo8m1eboq6*Vp)!I?--+!`#)oa=0vUK0nwVv`*QEaES zdN8wyf`{F&{ovPuZ{9Dy89J)}-9P;g|DJxcSI!`34e0hzU2@ioj@LJir4WbOi98GV zt#GEP@f4#tY@6Co&(%6KcPHm`|5J1z*$_q7so?_e`rvkdp1)SuAQGvhkZPBihP5gm< z{BeCA58&oYS1pMj41*sb|A&fcHL%HG6?HXX z&0}3MQ^a=D5OyzW53QTK3c{XiEi45k-n<{ch)wqsDOsjcog7&{!Iz4-eQw~%y278Z z7F@JuFO*r_BiYH1gxBgcEcezP^dWs~ox0A?&5^FHhnEk*7QmwnGP3-2I?r18)y3Ib z6IMnTRIc^usqPO=`b#-CQOrzppo&pSOP-#_*H76H2~3grt9ED^fs7@;tavn}ohmj2008E*(fv{I+NmEKJwO|bA%X-T7q`eG4{IS1u zk!+Kb>l;gxAdzBFDJq89Gy5^}VT^CsQ@u@lba$ail`@m-Hcd6KJcD#&OtcR;_D*Dp zt?|7QIZ=@M_rT6A1N)M;mAW3(I0!A7K3|tEd+0ihZv~=dAp%(@DjLXKq_Kjam;HP> zWwBHxsBArLs3l8L;gVR0PN)p4)pZvI{3uCP8VWztNWZ>(@FeJ7>=yu8?{F>qPEp6} zz&GY~{y+ZLfBv`MfaH(Y&%%ZezW&>P_fJ3WTAB>c{R_0VEYO9@?14f1XWk4;>T^Te zL!t1@V>A{JMf6C-_9~vicf#&Tm7cOYO=cIKt7DNEFL(m>MvK?W0CGCre+ds(SrC~B z4rjMMs{@ZgLo=4^jKM{>*DN}#dHgN2x_T>SV~HthPK?7TU|ZhZIB*P3Wj$Pmxq~L` zWoq17YgSq_HPe+U8f}T!ulf0Et$FfxtFl0;BHkADrHT1pYNL!`umxrg6Bx?F8}ev> zW20TUWR+>;>$3>_x!KWXQ-Dho&G!tUXvwy{oeHS4DDf?O2a3!+q^!@^*P)X-=7v2* zw@Oej8zqKl(_p_ptTyKYEN?+*-Xn5mV#|(ZoA~G3F|{)fks6a)8>g;iP3#eru?8vk zIB`N~P;1!D7YtV`aXkEfw@m*P*NHr21pGoicF_;M?~tfR5=a4_-MqCwK9{rUk=i%Oz7?f^`0EKTe^-e6!okp zTam7!R--tW6L$acszl&Q#$dV$%r1dh!qk|YKhL8BTHmK?oazoktZh71ZRUbF4ohwO zCdv4Qe~IFpJv zbD@;UV7c^ruu^7$JZ>|92_jB5Yg06V5J)8)uj935RF5GzUiU(_nT`@uawRJDsN!-E z(;kVkH0#4y9YPzue*Of91uKg^CS!%oq?!{fC>ZQ%G6b#xZ?-wx)v{4Nj7rM({6wdG zcv~ioNn2qufRYAwx9!sIokN;~4fUtGX33{knK@=|6fGn%ae-Q#R7K#kBu%!b>Vv zR>zUvMZjAD90x2E5fa^a7@4|3))HU+GoD^PR-o3q`_r_2CDSC-$5I4sFySCfxJ+89 z#`wab*^fyBV1`j_U(3b}X?=e@h4ah#bjdUMP12c?#%CF zd?%<87~{?o&i50;sER_xj5hP_cP^zCxH0X2+}6Y2{~W-~GlbHzEhxb%lL8Tl4wEd( zTlA0NSl2Ry7PJgKUPyMkJrJd9r3Us^1v^0coj}H07 zwBprJ3$ZhzLSVPLIMI6dF8*G%+aX;GMy9120A%P+$-y}+ans545f}3{(dC!z^Dduf zx9|A|7Nb%#T{>Vc5vr4|MZrK7aVo{?^qVKykw8#*SJ|_VTi%iCmaX zQK}&lC2@AVOBCao8Bw!8*dTbwEuX3cRaPV@I;pQ0mjxh-%Wqk=^Uv```_`zh)5&3t zjKSWA&Fd+d4K#@$&&ci_8XObU$Ln|W#EROLGM1h6q(paUnp1gHJnbMj*P6v@r)t2^kz_Mzb)hAOE0B zwyRZ5LP?WPa0+e|07%id7}8Yj?^QRq1ufa!foRl3J2pMKRlyZZ>jIe^ zhFWyt0bXgFpn5`PlO8uf-J!5T_x(Su8mRWpfcQkrpZfacQ)w8> zAmP+Z7fil=je}`@tGr_7xq?(~>!CMv3A1BimY*wzaau-5qe?Nf%v}9WXchntR<%Kn z8ju!YLNi;_PdKrmfu`3 zAnA$}$FX|64xoCxzV~a3x25R7*rM+0EIau8p)!off6vMS=Tkrm~DU-&R$J2P$;l9?Sekcqs+M-6yTZ(Zsf6$tgSE}fu z$Do3lT2dgQg9#HCP*gCO&}aeHLs5sw`m|Y+?B&_57u8e}b??Y@FCvyfPzo9wkT|e4 zg2F!E+kU`_r38tBMy53XlzG`|89b34vxa5P8C9%PjEi`dVyo%g>yv#9D8h5}FN~Q{v8R z3X4mGOnJ0vNeWGg1lx_ou{_FINdU;%0Msxj$vQ~6ET=Kc=e{0ndShe*=JoB7AIIx> z-FqFW|Ks(wC_}*w7ab4A&mZv5|LXa6h(FQg^%Fh6{B4JmGpC5HrS8l)l(_0$z~sUJ=BVUIHfGB!ECz2k}%BRr2xI3 z3~bIr%@AP1F%87l7NGq%mjI-k=KtGZYt?#K>5uYcgiYbcER}E!F-XR_KEeLGP!2P; zJzEMuyLML0bDmGnRZ?&#XR=2R97y$e9YFPXeP4{42izy5>)=rLJ>o zZHfb7eFGJfDh#_yH%m^|?qZ=GAj>}GrMiAagBp&}5XtL>xRjfn+wWbKvB@n9$)|X5T|Q#tHlDaScT9&F%HG9>=KpMtT=MTa2x0 zv>C;Ap_U~x`I6T|nqKq-fK4n^6%K7tGe}M9-n7oDu0NgH#0X1eqVHzKs!L!dBOB{9 zbL-@%yg%f(xz_!GNtcI4&+<@w0Fc?QmU}(#2nOKE;57(WB}MK1B?@NtqFR~rT%TJL zM6VnH1bJVq|36;G>j0|9>pQ)~=K7uJbHH-ujc8+Cnq~rTc7j*dGM-~gA!tfMU@0YW z$eMi;-{7hmAxz=xxFR9l&=r_;=QMvNRcj~s1>}q(8&e+tyE#D6)BY3X>(AyT0QNu$ zzejNoraCYLfSo0h{fdAT?*d~d`HD?96g7ddYI0h?nE}x&#RpXWUlHdNbWrb+NX$wI zy&up5L59VHxnU}Sj1@nqY#teAiGV$AlLfmcM$b0DTd?si17egruxz#iLT5g(o24M{ zSnOn!1TqR*R*O-BO6>a5i*5co3gqc==*%y+c``JF633jMM#gp{6T@1L{L;MVtPF8# zG1>LvhKShULk2L43@O&}lUDL@Nh5Pp$jUP7)+!20NH~U?JO8lC5alTFGA@j?>%`+xiwIJD*lEGqzIJEG-5XP%|qB>UP{l)7RL8NzV4 z<{gBAfD&|G)rlx6|kXMI51R*=I8m%*1-IqRTblGp+hToXuU7w#XxE8m+fT9sHyK z8mV-#EfHYb%tW>>QjA40k4B+U7frB61?naP?4p9w1hHna!6?(;|HHqi{bXf@OgluM z-8Mp-Hq&&+>@xu?+-;}KmYCejZ|s%d5a|XlWY+0DlouDF!A>q7qFse`-y1vCu$mUrmtqOoZALQ(E09F22?^7Wo zhyV^}!6WXT1=$-{UHRcEBo>snz89mmAd7V;3#ltjg)6W=o89Jn%ihf>tyXa;c#0ZS z2P+W-uT%Tlj=kN7c_*d{e!*{8i64J9kJs@!7}ewTO?cG-%6p)|wc$WY(}Om}5Gma% z%~I;xR*D(g=vr7)XoBjn{0JYiU{_Va7ie-?5z%BXhvTM~pkCJc!Rvgbsk?2gq-_Wj zV6BEeBPt2RQ|6giyyv|lObN!v{SLeQdt6=+q_vHc(J(q-+ZHEl(vmsG{AAJQWH;xK z2kUzyU9lqENd1Y7jb8sIZY}f(N9v)>I5`$XIQ0O&%ypGoaRFBv9 z1gU|@w}`|CJnVodUnRy$5f9Yf70xSm$?Eb!x{7!06Fu0#T(^MZmF=t-7I#Qb+f<6X zj8c$K403k8Yyw5U?^ZQNKY*va>2Ozvh;0q)b(jm}5~kCm*5W<1f{k^{yrMqDqs(nQ zo#N(pz}b<`oO8{l)=&|mwm{EaLkF}x7)l-k9QQ4CR(z?Nu%nwcfH3bMAV?QuD!%{z z23nXr>~GmTa}mJwOtJmk=5$M|eDn-RO?w>%2FCi+f=r2S9qKkk^!4mNHf(}j7?Yrs zA*}C~MNRXnAY2xR*OrMeDjCSwQl^vIbegMW3!>+JWCiB?q+Q=tJEU_kwWk7F2}|%S z^opi7cF^7DH4D^C(2@5)UOyD59*q6ZdC6OPlx5NY0tb=9E~@a2J#)#X;RAutvKDg! zj?u#oryR3RW9xLKKnWJg4`Cf9J60wHQxa|10lL_c1tNtHSm|Tp$LZ3BfPLVg$x95T z#~)Aniy|ITDV9fU*@C9e9IjpEe-&VUpv{-#CUwiA@1iKx-OMp9CIRjHAj`>0!f1j~ zb}>|C4h2vc-xJ|C$%I*-szH_;0`c-oVpVbl9JrzYi)km|G{d-3;*f|EpCCr?ew;x) zfe--5T-i=1_H!|{WjTJ_m{f3q+WsY2V~IaYVn8a!WNBHh$?F(SKT_BTrpraeI2UW6 zU732DJz!?#rUe34(DH@Ms(9v@bS?DUOWBP-iv;xb98qh;HElNCW|~<JjL2cL@!(9s*rn6=fv4 zuYGBrTUBeSJL`G%K+6QBSpYv|N{5Xq0!G#iewbEP&p{7Z%_MYWDy%`HEnDDjETHR8 zuz_AM*b;aSh_sFunX+{89sX6cL{$1c(r}))5UFm=6olZKw5Xa{J&Iy>l{qHj%RHR> zsm)};hG*pDbOyo(W~)f&cpb0!bu?2QuLl`bv(d1z+@m|`H=)2*h+^A9vLFQxbnP$b z>@UlgHVNNmg*C0C;BpJ)eGDT}kr%q-SioLHY6Gv=z|-8(opHPK07b*~rvG;Y8=@L{ z=0{tfO5GjANwmzAn6(kp#%l&qIqr~7carJJ;+Q$rX6uZ2C_vqJCXyEzE1U<0)~^k%5RTYkvh7CmR50gzd!y4AC0j%;V&Hwiwo<#G?Vvm3~}JCWJW-EZq3BW^qN_ z+L3a66-grY`u3Fp0*DNOBN7q`GOq!blgU?J|Fq`92!H4Hjc1hH;-i^n9A z_5+%@0CQX`2zssa6zNCXeGdXJR*2rNg+P~$1Gx~)Q&j)VSuvej$q%T~}+6 zHT%vSJHF!A84WymW??XJWGDfefg0(CzFidr9q-~g&~9FR@8PLkblGpeKkiE{J{+hhZKRT6a&3VlW0Ge+(!Im*P2Nn+cCHPVOT z=?0MViR!lefnf^DB*^uV@rYWKPKIeWFasAv)WM<7f!}=|j+DGqj4Uv)Rv5>wXfR1& z&00l=4!iQh_!wp*nbrSHfVV)A9Jq!>j8y2nV`Q#YE#JZW%K#)$JB>gk+GO!ScR`C~ zwc+cUM^%FD9TZ?{b+CqZNW>SKy4p%vM13|0vTNOfZdhC##-w}trWp6=1}p@{m5~&; zrPQAliZayh)=b&2N*W0|W3|V?WB1-N^#PjE#ST)F%hpNc*CJP#-J6=&;g6MCL(2mPMeROq|85{x|y6 za|9x=evEfGNWRmaH$E2x^zHmA=4PU)4lMuAfBwHr4WI-f;WQwYH3X>a6nl(i4%N_w zePosS2F&Lf$u2dyaIaFL5=k>ajg@!r*Zy zY|{kco;y?w?9ZsL%k&+w&v(#cD4-du=8)No37}F1FQ1P2`v<9dybeb7czsv2YSUDS zW6~9*p4=g6=zx7T6?K&Wyzq|Y<}QMm08Fs9%F-=Cz38e3K&SI`{Q%bQ4vk9yJ~36n znodJNVRwH8RG5|ns%}_f_BA-DL(4-2QuTFkz_iX=Gb-@yua*E5X#iGye4;808s&w< zGBWK6`soZ~iuI%sxQXlgGz*O-)62LnU=wYc+_I2@3|1=(*|zz!oB52yov9VY?5{e; zF_AHFyD5eo%Q0CW_+Heo4d!+{=0m1ROdYGJwXu3^9Z89R)VB@|4c29)KvdGs-Dm;V zBZuL!i&3$w9_o)pIT~Q;hVeWl3(nbRR#1uxvqi&@Le#yGvm~7c0h6KUa0_=X#wI@3 zcw0K)BPLM8xnk@JuQtlENa z+h+$klrEG#1hE3It`Wd8bhJFmIFQOgyi0dT1&{a85$K*)srE$YJuk=zbZI))d|Lv# zg<^sK0L0Ov7E^f>a8Mf27*=*=Zj)(M;_YzI5B6~!gwhzs{=1oJoea8|CKNUd|0IX3 z4(LK9%4&#$>{;YeSsg_)^qaPp*tI>Uf~`#Myly9Pz-~-Bzn4MnW`*ZrsVT=^Lzp>2 z6x1Ks(6^Oo1ZLdO)gp$~9g<4AX^XAnZy>HK(X(vk1Dm4+e)T(Q z7h|omFylk7DICYqLaS|5_mA?BcS0F2G%&$^nRV=_=3s%K54!#|W z_hqZvkEgb=4@Vp$86-4Qz>(u>O!Z7OmDq#0Id9$vW@h-|@ZpGCBcIxHk%9TzHm|FL zj|>pEZKkFvsBKo#p_^^eiFFqz7!rs%1eU58@HTz#u~VOevIyI0op>5Hsb=>Ml1T%w z-UK6QGM9-b$Y2GgdxecEW&nw+4gkAms7W_7&L=W^qSdd2X3Dx(*3fJOLy0GWG5}pR zBGZ^-Oxgsk_5Rp7AlQ;t7F9$PKB@?eq9#fmoX&s~0kw#s%`J#xb`EYTPzB19?b;O? zZf`Q&*V;#Ih)n}E0GpkmoxmIeLGBE9OZ5*ROo^!Os9zo(+zZ*Sl3wqPH*A8tQ218dQez_(EC9faLEM_g?*oG> z8u&T+I+JMS37M>@VzXrm)H7?hWJ~I+z%hI*yc$Wbqn&fbGi5KbkaG?mewoo-f|}P} zKkN+(WLcj)BOm_}L^~iHRLP2w1b&vg32_0hDM4QvHiU{};sXaPn`MmkF%^ZjwIXDD zPY+J@cpX6XczxHG1f3kq&1}(-`Fdg?&OJXk+oVPdvW)#p9 zR_}6Yi7BQ#DG;z{1r;f_1VW}wbl_meN7kngD|$tI`2lP2r_Jd}%Sn9 zW*5`kJOdTKMs)peXY5$j2@BK)PT)DULMITaI95-tm$0qB*O_XDg2#Rsa}ra?=@&Tj zY~U(P-4`$%g<|eLikvI!s>|_ zGG5rhJ^|xoAy=Lbc*C1@q*L_vtQ`Zd-S}b(2QiT%^NM78IRZT zI)Li&`VJ^Hz*-TlVY^1H4JICzgW_U+N?`+)1Dq1DoD;0>LQ`N>7rio;WLcpPiaVBw z)-nhNaRe5V{!9qy9u!9pm=9jjGnNHMdPU5Ezw##!0k}EOa;No%XBtm1ZORYW1^}J$ z+O#!p2cXQG7SJblO(PR<#S6{Try*=jpJ{*!z-(h3fElQL*373}R*;kE$_QpXb_Uy4{p^*vh}bG28I3}= zPFf^3E%46;drh`hPNDW0bB$WGzXu$_euSkKL<{#V4+gi!x)QI|!kA6)EIJV6#kMoo zl`h9(hucMG8eI237EX(AR}iCP>q_1Q>Wt|~`ya0Zs2;B$^s>zl6#HCLRF4(uDY_h! zc>hr=Ps6NysbvFz8`YrRX{>S${~~Mj>ZsP>SP^UYh{Po?u&+MswB@B}dc|0O3N|H0 zUHF2qD`rH|6P#n(dqJ%SjE-nq&si@T)DN(j&UDr>$`&Iw4$zG*8Tht@;;^9%sIRHg zu+gv`H4SEQeI;JKF3iQc*j{5h>SY(`Lu99ZISP&}#m*pM#J%oz%3)0xOk6SI0ux(A z(t&Y;lyqNz37&HVs7{p)zMqmEPu9T=2hV6Q0k)jRH4qx`h802*8jA3k%idhotyeeE z837jEd=+ggC2U|;479q202?wkW3gTsEb(J`PjyeC+NGtIu$Gt-qnSIe*T{_V-da6g z$Lj#9$LlWvRMd81)zRxVw9Zhl>=l!d5fuzrN>7+QDON9ro7!82JL zX%$xPi9?g$kJ;uM5@-t0j)paxo>6SZQ_RQlI$rmI>VNY;{+s{(cfP^g578cr>u)}n z|MrKDqSEc0otv%%fCW0giT?Q4e|zBF*bbaijrF$c zMRx_G-$B4u#8T#V@8tm~eBhgdQGNT9cza&YaG3t?VD$$MrsxeuDBS*vPg!|Dc7D^RVCB3n6(W(lJ*wh4>_qGLm6FjvC!*v$@_ zog|77(VFezKa*EhnU-NS_KUnaknp;6BU5xbEwh0(W%~GZJ%H*sWG15z;J@-Qv=&DA zUYi@SDOrdLS??2xW})*gF)5}P*G{c~zVcUKpz@2GVkX7Gv;mQ@6lOO-FfwqmzY8$b zZi@=a4bbO>P(FjRRQ{j5H=NJ&`d%*vn&LRldT5m)S%Aw`W?n#|Vm5k#3tuoH_-U-o zX+uKc;hi*a>>_doWykBlH;)6=fBs+oxBvWiy0LUR<^NZC%IkI8w%h;wPWSn5{-^)` z-~aee@dBDwsfi2&Vt-#u{h!!6xCJao{B_qUJ2kTU7=G-HquVL$(bEm2rl&!jX26;k zTL!B_yQJ3aewIBd&NCoZ53#0d87d--{fw!?z%J!o3qvcfU_fTXR@d6XIiF6xwlMHa z4~H-O0JwQzJ!r_}rOH?9oWBDMy|>chJVKBoj~eqh;0-xuupYwtkl&XbAT*z%NR>j2 zZhz-<-5;!R z0FxH(?|Qj40PQO{G7`|SrOI%rdVjmpymxCcg`m}>$$G*lD4&0WuLIw_Z+vq$2k7m* zJ*CU#a(&Mc4^Cpamwcn=^QnLB-A^Xh`?+3z;(f3`qg8}0#;!8>^}qkeKX2FlOqVa8 z3}{4=%Lrq3S{ ze^7Uk2!fvF8yQW~he|>atjPi(-f@Ds3xsK{9^ryMGWCVQJuEKAn^`!#27rjCN`$a_ zjyGt?8x3@JI8qQowC|7o;qxaD*cTdr6!%|Yua z?*X4_d;L;=Ha|}yEs$-Qmo;q0XI=(a<(&YU!vIhy4qa?905GqpC=%e+K8)w55A^)E zr?Ni?k#k`Si30hxJyZw2dB6BZA@V$l%;^>kX1eJ2m_)hlp7~Fo(EPpp1MhnhpU!!n z@_hZw55|Tbi5M9XTI)&k?Ydv`1km}zN8JUj3KKc73iZ1&M?1XfqvB9H%czK39ZX)F zLcL4({B-+M<2$*5RN1!M#&G-dxdGPO_v-h>t5DhQS3)aBXd)307h+CGLdb>8wush! zB#xOOe9zPK%k5fDl+yWr(4qnr4oKN4vi?mX-~7#w2`Qxj-eWjcOWjS5t{duAmF^6En|P!zI@I? zvUQL6{G}1A=fbw4Iz24tB-+#Kk z$H-$$V%@y1ZE^mr7j|`f#_v9u$xQ0`!-o!;64&@=G+rh}}o?pm~^E&^LNHQ8HtQ*-?0UL9%6?mwMN-MSQz`UP}mZ})b4p3>MK z`p>+!jfIy5AhIZ|WuvBGb1ob_?^xG7rQv4q#-<*jo4kq4vW5auiv+_~fq1Z-hFx!v zh5J=C0tdc%-}olkrz1~ZkB;9{{d)voT#40Q^;$8og@_G#2`wUvVuWk3;1cTL=U~>}nxL zLIkXB^Z%u`HiY7`0(?|2nMrMyyLo@eDf%?(oFyE3v}j$$BO!{-OJMR&RiGbB z7;H37u7Ff(AobIyyR1F?#XQ%r{6au+;G1`eZ_<08%&(cmcR87F1*9sk?zRyn+f$0W zGjLv*@@>CRH@oX#R_9@5T&d7MkkJ7t29-8LDq#n!uVstszsmaPAT<-HuMMQ$5gIRS z%H>O~gKJESEaa9H%bI9?SRz9`bCWggIxI!mRkLcQ%WL}N-|b8)T{Tmp;F+ST#Fzs3 zgYvKIBt{~*QR#pwarh=M3~B(84mqzFUHQ?EeigtEk^t`C{MfxO-MfU;lgxat0HQtD z>}`*FU8fb6!nH1&S^p+$^X1c@?V(JRUS4KBE92U)&Q2*!J6#n{KxU!uEg}+o(-XDY z)LCykvK=C@YfJ!HI_2B`kb!t%QnxK;4toH%NzJ_6_J>kF@l=1m2aeKQt`uuZkWOE% z(JCS2K=bdsj1_$OvH8LgDZUL!_Q*?vVF#1i z(|LFZF?*$OI6!h~K=1hN@1y**gKOxl2lGywti&Sd%s#!z`qXyPOu2sd=_O!NWxXdb z00V1h`6xzwtkyFq-W8@G6Z%b{c(6>Tncm8aZqn?Iqs}Zy<0D5qgW0-2oNnv11GrJ9V=@RlK#+OPY;C0M zsxQN{Gy}kT6Ed$=Do8zzOpDzgNC!Tw+5S8patnO(d!MjDbJZ*r%m=G&C~8(Tq54>F zz&-~d-*~^3*tAD)avS(94m;Q0F=3*zErPD_;k`c~|)6{K#bHH+yA5&+6(;rdQ((aESw#V(f&N~#ndU*3krkc$ z)o@lG$8wLoE3a3=*D=2FcaUdeLIetPYwf;ZS$M#y?0H8XKp! zXSXj-9j6Yd{&|06oo}>|eu7qeMl}&pu1{ru_>lL9k9ED~Ooc2J(ncwe70h2+kFv(i z`uPJ3QxQMqCmxMc+mLZHCJHvI1Me{#FrSLr!R-+G=0Ie|lS3d@$BSNHoi7#82_CXJAkA(#$0Tg|R!4X3;`)1P5bJtuB3_#4#lygJchwl5%{m zB?MQjN!{BK<{Mb%Hgva_y{HG9J(%_pvL08CN<|;Q$B$y+uj4LRU)W%(crtOe?hoEm z?p=~866J5Gy`5?NAYaTu`E3-1asama3=W-Kf7zvRD)9*3lDz~dS12F`b$C0h$xF1< zbZ)mFO?0}gTW4Jg85}X}Aadud%41lwx@s6il`Sv@AT_m4a+mJ6Q&){HSagkj*_CcL ze7#<8_xHsGptP75F$o>4_z+j@B&6eFDxrvEklM?E9%zc>rUqf3 z)70kw&8656eDf~w&H2#~?s|j11p(h)CDOhA8t~-kaMS?#*2%oRF4r1)$Pm^y;d>=L3^-frMGUWtq`Qn zno=4}3Hel^1XLV@LIIN!DbG5qg*mx_@O;2!(eM0+DX8m287F)Fmhe?Hov6ldUbWh1 z-@PnBm5<-s%@vT!=n1*k8P8glr~EZVe9TV7!-|0uo8n&><0vRA^r&{!{cnrx?BEXw z|9=J8wPI7dpBfln?2Rt(Uf;qRHZ;&+=g<_|HLwA+8<6CKR7*N!6jna;cxQdhvP){z zuU%iiR7Ul-9p?Sv_4A*=?wYua>EZcQ9trANS5G3^IQ&~8hZjs(eTh#z)mzsjnd74 z9tKEFkj}fO4gi3sGtHXJsUMKRs%)Q&LroS1F9%Y$Q&bzg=q9q21r2HU>W|06T_pULS2l>8~4VjcQePdVu0;KMR{URaIw|MSr zuSM82oJT(=VTFlX0uN{V_3PO{+DwA$ zDquA?HQx4zrWHP!&Tq%)fRCssg}YzvvjYlx1L9 zggpkNRTQ_9FB{n6;{NH(%Ykp+Grsw%ng#iV1;~G;u=rbO@}FLS9Ejb%nOYf(4#_5Q zWJ_6%cc}7vFsSh5mxc{27z@OD8kvetT07Gegao#Jt4H1TZ=* z*|G!XW-VAX#HZESUmxZxFlnx$>YY|Qz|p+W1=$=3fMHN?Xz{ z8v;2tS{fuhE?v$Pn@dr=GFvD=oM<(Pi=o7+sV$4GtNq8Imop3bbqTo}XeTc3tkI&g zn)ipMvw9jj%sNSAn@wl^?dmo~*QkQ>8nu(}IC6oCEC8)wPHtn5h<~SJ@^)X{MH%iUgNdQ)*r1?I$Z2E(I zpFWU-BDRw5f2zzywne>`Lr9c0<3K7~gp$2-p<;ls%a)o<%k?_I>NFF0#Ed|Lsx+7! znJL2Nm{rq(wGQ?C{IUMlwSiP~zzzrrh6@J90y86P<4)Dlz9U)H3zQZ(?)%8-$L~DM zJwtgO0I7FyGj{bmM)bk@*{Gk6`OYu$V!-$wMZB+rVS`H1#ik1&>kAOE+(TqRpGEX) z)J6`PtD-3Ax<7~wW?L4%TYvJ-3JD)Gp5Sa?%x;@ZRsBO6ld4!;p&$*8&;DdwSv;F= z5+YS+wMbW09p}vCvIYL4SJ2d{mHnVa$s^Ry>$cXaaS9~!hH(QEMNfyAdR*%=*!K>8 zFE&sIzIk)_CcWj!{1ubjX)Fjkq?Ym zPy`(KA$w&4p_=QEOo9CrM5p*9cD4Sq_}|ckxhKwt~5s4*rGZH9F-fi$P+i?!Md%&L7?C`| z>J#65CQ$v!lldzr@lz)Ai-1(ZJab#j&}0f9tedeWfsW2q&6EKvQCgV~qnB2*dLMzL z)8ArH!=BE2*}L-Jdd(TU4q#`8`_qzxL%~ua**5+_G0pub-&!qLg0^Y(Aa(kTFPBK3 z@89biYmILK5!+=PLP!UQsegi4x{yGAHm7m;K8OkJkSWH8*Wzus%F}|d2DHoJCS?+F zzk(|6379fJ0=V<>_Hesj@CX=IL8AI@Z2LL?ZR&@i-I{QN&}D}qQ5`?6E>Q)l1|_Mr z6PQ~-KWnS&E`R&+`ae}Bn3y zGzCRf`A^$Fc4qa*J|${@hy?n?jMI%3R?h41e|nG_0b5&c#MZblYc10q_A&}%4D&^x z>J#5Q5WdMPR^skIwL7s~gw#d*QZMcwyk8x(Q$C;a-V9j=aufL{@Apssl+P~LP!Il7 znaflD$M0LZudm~j+v#1#5Arv!@6&*)P7^0nzb96Eq!*KJ#Hc3G`m2GnmBxrWP>O0+ z9TT%)eTSwcb>&u%ZR;q574Dg>xv+JcPMDC+Vs2*N?AT4WuENsv28t6OMx+>UYzIRr ze;PM#jHoqzNFgH)N=t6C5&@@!=(YyX`Z{qh^ouG+7ElsMVT#%^Ls%@2d)TN2iwXiy za3GQGO-Vl(cRbNZht~74lEQ+;Hhx1{tN97R5vbSd+mMXoLO_$9=NJdl!Ou_Zm%glwR{qhu`!AYF6}kxLxZD_3HfZ2%PNwp6(%YWT4d(Ok$#C_FZ@xCZ$^RCT`L`mE zM~F0jYUJ^Sm{g6t0(Jr^Mgq~fn1YUf$H`&|Hbbx)r0YVKi&p(e_k#{0+g{9!A^}ku zjB&(z?uVFdT(6z^IXKQ_Ch^KOT>4@35*$Y6GbM27>IbLv#;GEK)tM4g{HV1p#gzw& zWr=AWaC3zP=ve$^)!BY@*!IDvxxXGt2>jsoOchSlm-yCt$osk>|E0o&l^IdxXK4BL}}UXSp~CB+UOtQc&w40~&vB*7X80Z-(hyl~+x4R?`+M3{IcW z-gki2)YL+71lFHW60|_VDN36W=@>zR8a? znU6S$|LSCZMUZNkCxi!MPj327E8U2rJYp!3WD#w^T&8pkR?UIuuw>Us?cM$55V~BB zRg^3!WtPD(kFI94XUp?S`lkO*V>H`gR6nBYxo+a>Ps5`R^K-bn|NZTCvK|{9D9LJg z&I?8|!s}vAA(#MR)uf||GcByXB*8&mI%$j#e}Euh8IO977zmC}2v@Sle36rq1%$yr zk9wROV2xgL-3X0M&munU6e)|H@>3 zS&&Ms3uU_Z4tTPSOwDx$n$`kwW8zqV-2SlXVkUr;30m|rfY-K@pVIk{KZ*4;l$KGA zDfOsYg39C-W8JCtUi2rV?O-a#_SaS?p3T^^m{SitexJkdCHHJ4w&HlLWv5Id1F-r{i(wOv{-%-y5vHbqA|estY7BgWdMf zNX(?=6$jsPKZ0V5r8k+tUw0z%McGnH8nt(F*)c{Vf2E=+Q*H!K2l6_PGL&U+ywY@P;4? zs;1Fsw0A8v*}X>lr8(S*TEAK|PSvDVcf5@pm{P1x;wE2oZ`i$S zgYLBkwrM)kLCmI+_EdZ>cFfoP;nbSFs>9ulKxxlF(f%-c3=mqRb$jNV{8H6xCdjDF zS|kN$JHQi_H~E^(>J#65F1|V6O#ysRU7~on?w+pK$$VK)=Fjl9{ppiQ-npl9&by!c zVlwR{-sx@oFlru%0oo44=BDGsHD!__vp{r_qh(J)=fj8)?G^jP${=2czcdEC{q>h7 zG8!nTX|huTsofS8@#!dhu&;zOvpzd)6Pc6h3dhqPuF_l$_l>-=Iqfj2EYJ0a+aBn8 zsu7bZNu|5L=%hMUB)OFRsIN1%z*ZeWA=T)fMT1fZfp%CFwCUg^9G}46G3cw`-(Qwi zk+J|lt9S%=K72QY_>a6Sd5s%%2rg|H-QNg;DFl!?SQ@gfv+%gszmLGz!;I#b1^Yc4 zB)ilSb;GlJ5#I;>e#Wt(#87*pplSqtE$WdLT-5!cNwb~Uj(O}!obEr(Ov~6GXdPO$ z2otnM{e>Ka=~)oh*tpp{FU$EY52te*pZMm>us!_pY>LN%!^ofqDT8tCE58Ck7DjQg=hgB!{+C2prQwbGC*3 z)QlNtT0g4UwJ;haRRyayA?fhiqw-rPv1)3kNB6yG_PE!yBWtygQD{`f^j}(*=Cw6e z3PlXTvmz94n=OPT$S{meFcmeDk@-uJqQksF&ba8TfRG(?t7(5Zt4jrU_eUUgJm*tm zddHPBTf+YZXFEcg8D8l@?Z@1A@Fls_C%*ZG_$L3V$^6Qbc-Lh9HXxN4Knom|*f?Ax z(GoDp>U_kgE(o;`gC?HYV1>PAHTOfP*QBB~Mr;QR=Qv`IEh~>mKJ?VqatO7oBp(u> zBaTkvV%4~<)BuDUr!I|24UfAx9?*by9?s${W8vL)#JFfFaGC}kGn%qYneN&}evO+# z<~72pcaSw+Bx0e#dh1$n-?PKEwys$%V00n3z$&95jkdLPspz;;H10ZT!j3?>cnURW z<`Dv^tPr4Wf|;F-t^vm2ZUmpi$PM7PF#)Qd!J78pdNBLPXxbYh`q%$my86e65`z&k z7nse1Zj}tsAB%-Em&k(UhZiB~Y5Hu|ZI`YZy086sZP)VBbd-lg-TDEbDi=v|Yt2WJ z3UZ_BROEvX_}2!jPki&0fa+p0Prtz=9!}=(1X77%lLf%kBK`-gQ$SG-J^g;Lra%hE z>GaHPyqW_1_1D;GU%vmDPQ5Xr?5C~fOiPhkb%6l0sP2CchN9Px!#9xBQKnpMGim1CjRLS}o+y{W)s3$=hq! zNnP1X(e+Be1WihED;^Z2yL+}qGewM<)vGL@3ZOC1J8V=+f`*Fu$snq}93$YLgrHQ2~< zC3eqJR!U>kX-6EYH62)K#_n0Z3%#v9W<*IvKx0k#gZWMZHndy~C7hD`%#WP=?sISe zxDfyjPO3D<&?s$=rCxP7+n)|^bK6U{26+18-CdsYqC9+;N7pL;bx+C!@DQ`IwT82l z#kBpQXC{h;@g`gF&}*l;Zq!iA!0Emim31jA4t~Wv8;d?tCE+I`D(fI%sVaop#hWn& zI5i0>A;&2!7)4sm8%BD>y^<~t7)o$uuBt-gcb86w5xVJSy)apSZ!8y z$`;iIqN-N5)t8FPTwwWp+NuUg+5?0ovr7NMrmU=gFH-f1Z+`yQ`M!An@Hn{-5f><~ zB8|gNfG;|k={lL0+AUWjt9;Hkr5%3Kc>n7Up^>>!<)UmU$kIzAlYFBS-sX$gH#||q zZo0fxQ+i4FpBj_;<4xJ3Zfq}3smDRo!UC!(!4tEq;!>WHe3O94g2|Ez4x)SM0_HGX zxl(IZQ|~EBaW-N$B)SPl#!9k^^7{VF4U>>jC=d~XG4b&M zl(ZMz@2qT7k3Cj#_-#pEE-89cor;+xm)2iNTSakDbhQZ7gd$0#xqd|li$WgrCU|pd z0t`Y$v&uP$B1W28A+q@ySrLMM<~QHqKE5`(eisl!U!q@*(rVVJyMMc=pt(z4c?T|S zl%XBNz`2DXX(qiiMqFIZXjvDN z%@wxZTpq#3o+VATHiKD0FS=h3p;JGE2&9S!9^&W)(*%~FJF;6!a!4?x7znZdcvPnq zIqlHLDdB%4J#Iqve`3AAUtSD%C7ulJ??pAV;wY5+NOT3TBUhfJPo}WKLSpif53+^( zsk2yhEPP520&$TKE`pr)NC%*YqM)f&~|Mp~lNHq7MQR+-giKD};j%aQh{}kTr zk-BCaHFA?9eIF%$otPR@(oMS#qS?)D8j=`7q_vC8HoDfqq-L@`S*n3Rjv56#08sUC z?bNZ2R(w$Q9lze=6_8h*)yg98$_4@kGMMKRT_iOBLq-k3A);z6p~0ln2+fKGWi*a- zpwF7tVpEEWK}?eN^t%Mn1IF4qNI2p)V+0G%krqs3GQUK4jcO>PQtw{>$>jwpd2je* z_#Dawcn%I`)XnEHSQffAm0=Oj!e&*Qt)F)xvxC|3F9BDg>sE#_0BQWnAuB`AnAsm{ zP3q>eC0*QqOIGSR&X8=Tmq=0yOck0ZmeE#KRYa6E5#ndZ?jV@uJdr-H1Z=w$5s>Tu zz3w{9xCZfM?G_zoFs)AObvA%{Ut$Srpv5$miP|A_Pyw0?y#;)>km?iPd}Vxdeoo>O ztlooDnK9x`QB=wg$yAbgrq#<|yQo|p`VzG!H?i)QX)`*+x|3$6RE6{=QH6lH_x2sh;kl{J2ArT`_SiRn-y!xED%eoT#6?ysX1uT51l z_A#kc*xFQyt-HG614NvI(43bx27+K^B%M|cz}CF3IK7V;86PDNJOItJ0BY_KK~A*gSx;u%MNsA79-NFK$q^polOJOZ+VDQLK)I zV2`vWZuFX(dA{xsXr>`(`-2MJtmQ7m?KO5ARf#C*tb!nL7^Ljb-uQNq#d(6%C%(A_ zRR8S?4m*j3215FeeO>SQ(kAnK9gE8cCi8(RRNW4(iBzx$;OHWifT7X=`#=Q0Fx6Hq z2AqhpchQMO$E0qX5BnEV+O{twM4Ob+9xUS4kTIIM@IQ*perHKag1R@Lw z9Cf3>woUH>VPA}&TbXWKu;s{DbDFX&AqecN+{GP}^SU+{H$kr&p&a0T@z2MwOC{hL zW+4#tj8k3fc!We}VGucjsLTao(mOIUpr2Q8Rn5AfTHZ8%Fo3@Zy<&f2umx>C{CVPtC(ItSCI*0cRQ@pc+p z1L{eP!(AL(tNpRpG)r1M8;g5pm(X55WhJn`G9Y;3o6pBL`8kPCuzGh)YI9E#<3jas zIXFa3JL)}A*6D7LYT4C=4UQ{Epda#EZ^Rr%Qk%BXC!*El00gg2q{wB#Tq+mD(8KWyL;yAO$DXDv@389d}QwYjc?PP)D| zZlH?-pBrFLG??$ftgYFN!X-&w^BAiDY{~eqO^GGgj-Md)iEnOwo&Qa4+)W~fR{!*x4dSKkVwQ-T3tes~;(U|28^(t8Szilp}#EK$Ev|(qeov z=E;z(m>=gPv~vEEJGPpj^IsN>PIPihI+l`JJzM?$k?()-tkTme#Vb@65y|uihCcx; zFRvjU(6*whei$qfO(b)r;SiZYd^(7 ztVpn*w%q@In=}328>_lfMuv8rf@%gjvJEBVzQsyKER*NA964NYVA(iRV&T-k%6@qr zi`;8g`xuRyb|dE{;;NMnXHt&iV%1`YWmVQs=UJZk=Ii2{f32D78EM=fd3>b?tH^F| zsjX>F-Og_H;{{m!k{E}d;B}P==n_=TaSHeDPp%_CVu>mwFG^{__~u=$l+={{fvNjq z$_NH*szjv7D3ieQ5YsB;#fe5*P1=bXC}!u|Y>MePEZev3TD4qTSeO{&x!|V=De47g z=1t64-F=QABBm^Bos6CBF$gv%=xw+3N{FDhxYpL3!C93Q$D@sbzo2!%5AL z9M@Y8u$?E{T!&H6T(h(q0PYEkm8(Z`dkWX;&p=UC%&s2=<4mPopHv|>k}?h0=Kip& zh3xx7Uw4@p-epr^L;!>=zuwol(g{fEtEr4W@y)NrH~Be=z{bq*cTpysuJF3pr&?hm35oq|OFu~~Mx9hM`gt+Y(AI^kE50M_Jm_)Cb@=ZlVF z0rILQ&C;jpJ)lY$6c}NZfqvk(7fp|xIet#kwEsIxS~=Jr5m9Ow1L@Nxog36(nsR8J z!UYc32}AH%Qn0r9azfqa;C&?)1=wgIsc7?RfQ&A!MMh7pcxV0}5l zoRt3FnXE^50r>@!CMKBC&JL#H2%%1JU*}Lv>Izv-C@7eYPZ>lao05>IVke4*#O{~L zR2CS3txA#)K&sM-Jxmb5vE~-g7J06sHC=wjWkRk52XQuIwT-KJl9+D&B~0oQ-~1N% zCO;?f306PEtpaOwVdR2fyGdC_9rnLF)Uqg%t-YFy}QcvE1g}33wA+rv}iD z4=gc9BnT9X@*eaD^-VP-E&yyu(t3Xn(Qh>rq6uH8(k1Gk98O^}Cs9@hE9nSlg7L`Di6NtZ=ftIx%K zvg6W1&NyJpb*To|JeR*$fNCA>AY?9(1{*wp8#Q6sER7ww&ZO4;;jP)C4i-<`uGGJ` zC04#e0LI{g8<#-{B%8%>xNc{-QCKQAgeK6p;t5y=RVhcbtW2-njv6peWQGv*%o-;5 zX0MmO2XU1NUkb23@y%o4oAYxLf9+&Gd>KIZZ08){03k9h8LMQEX#aEW+E{cYgpC2+ z-KEx?ou;FVY(71DDB%-$DjpXsq`O4n!=1d#Z8iJE6v+$)qW_@87?s_Mcbt4^%8-&3 zMhZ*yZg|V9w61EG5mRx(#h*|S&?uLocMu7TR~MR^01o(9S>LHGEw?hnh#YcR#J_2n z=6&1Pl4pzaXpow9smXMgV?{#~XjVaN1F7?Q;<@nBSy9<4Ocq2}1I;l)(x|S>S7jq< z2U~`s^Xu9SFVMK?%L1}iMo~pTn3m9DpzmJFA!>iaW(y8HsF#`pNrK+^=tD6bWE>0YMY_jfv|V=Q1isr> zxhG2ek!kTW)h}o66{aoP_w%$)aMOptYGq*ZepNL=4PFVu7)xIc9GQFP;iyyh_kh%X zXX2C%v^^?dU3oZdK3PUMv)DAOR_9o)p8;FbxhijPD^H--uLRCY?(_1Lu_`A**(X+q zLAFg_aIxO8n202uDS!c~lAMh(=QKhU1tc;n+5c>}BGWFcFH={PjRBJ#5Q7QV^P zNqmCU+ZXBU!e-4XOZlV}dImBBk@X=Jkz$2Korlm{+})2`0Mi}-5~Ciaog;Uk)X9tp zCa@lh5+?uTfx%Mb;_(ZAbp5okE%_?>g^qS^d-71c6d7R8! z_g9ys1S!SCHW$+v6lqIs6`-VAS*5><2tg(zE{_1e-;?IoFQp}G&Q^q^dgvbX!4n=I zc!7q*y5oNs6x?`JRI2 zYqi-E3cSd7Pp#!MS%SU>jS(q0ae(`D`NW(mXnDA$%}}Uo6L;lALW_JVxm+5wZIMac z&UPi4=2AUnYSW3BhdKBfhd24|V0HTTJ)J5`ty#P^lZqI`rI=||N=a&r#ItCkJ9S`K zYOKWEQ|yK_?x(Zd7D^)4+6kLN7B3L6|iGI1p*2_6Jw}Ju5_LMUcLjmKnp{%Wee6+Yb1-Ob8V0 z+!sc zKifO|3wu-(c8I#O?m0@g?cE(FKp9 zP`J8Q`uJ>^C#O^}T(3A?pF(AUBVu(W9FL>lUBqKf(SRG(uzoKXvD(l~AtzO)vl7o& z&q!OOFk!o*tksxEUPE@UybR$x1kuzp%Ifmm3?`_DpisJZN5RY;3RWa<#5DDapK zS4%XtbO(hgaCUy39Jz!9tWkU1KXOz$Xp}_vi<5 z3)Lq59KtRP^ZqVnpKg={IK5ybBKDU61~3H)(wh4Y0oM)C+D|LA{h@Yj;h>=hN=H>J zP_~_0*1Q9j!MD`EehxFM1oV;t%x#U8Z@D^0SI_DiS}!JnfTl#q^)g5otKfkNDtTTm zSFn1iY5+7wB#m_k3vd@p`l#ipPki&Z_~v|1xKz0C9x?Be_|@ckztUu;>ttRkOXtm8bIJMl4jRGcS#Q*+B;o0e*kxKsz{{tkg2EhLY4QZp=Z!RvCyFHbne%S1tTeh()`y$5=tZlqTI$ma~S~*@(9fnP5i|_-STf2H3@XU0-r~n`j{a|bDD-NCaWH!4^ z-BS(T1C(O)0SaPEW&!Y^QawxNdFKJIKShW}4agIv(NR~U%=d>eUKpCnEVrdT*WYVa zli43vkO!BTu+{|Kn7Y1NTA%7vq02w^$_p|Ypsy0l;<_E+<=b95a@`-KIapct)TYO9 zFrLvq@yRgsiEq9zzB%8TMq9H{La^r){^YOg7++dV$N4(;B?S4EU=^?m*kZt{)-80n z&NQYAb;{NP{$6vY#JWxCfXKnNBg-DC6&2v?{#Yi+yo%(SkQjLD*UoytVK6zA0K&q< zkhc|6??(UxAw_&!7~b4|VNMEI-R%^c+t)aZObxQN9&(2hf5aXzcuP@hT{GV(l%~pP zr58{DQ{O5{Vx_cDD356}9JVpza4eCIta+PFs(4v1C+U=q{;m-$LU*Mg5OQ?~vE&h~ zJeH6I6I?4F{f>TWwCfwf-&1=CXHsqvsX5kBu0ibbIfvp;S5Li|aoAPY(B$>t0wOU$ zQ&v%f41-r=c`Vh?F2lGpC7Naq=A&6(5q#3>WI?sb<_bl)j0J`qhO?{P>QVC}<(HRq zJ%FaeT@Xa5d$`x8bW8t|)zCkOsZV_KHSo>(XeOWDw!bj)_^5a8Cp_uQ%p@lj8l66T z68I*VDu=?25vsdivzqr^A9jW@aSfO(!G=CeBGv*1ufj8h?enm~F>_0+>;XJyXOxKf z)Kz(I#JmM8(h6OTv!Yl`7KfT|FAA&*n-Zktk%d8O+D#~hjJxY@8O$?AbI*WeFj7Jy zAwbi1tPzugC4F;KMs=}_(+Z@L$S5QNjY0tKzV!^_`_+FhuYS908}sw&{}JD87X7-> zy{7?II zqr-gTnW^u2ORE^a=KOl%o3D#+a=J6pc-CzE3Yz?Zq^lwYBHU7O6rc9(>x*p<3rOv2 z^sv#wJIJh^qZ-3|z>IMVh}YR)ylW9DoJqj4s>~oA>b(ghHDwVuu(e|N>_+jRzDGS9uCESvjAOG&F9HfXVW&Wr#so&(UU zNp+JQRBG3AJx|%Hj9H)B8~Y+{D1Mewa$sq1=;=%|{&P=T)Tet$^ak{H%Kdxh5 z`-13TY6}A1gelD>Vh18k!O~C)T^R0J*>E7(H8e7wZF^E-ueaCNeR-GiixMZ?iT*<3J^ z>qc5%)&*; zX8i%BfVFT04Qe9Sl2FF7OQ%gU0y(ebOE?rbBxuO8UX2f&ugyuT#1pv(<9{nRFjX=- ztF%~P7bx2g5%bSk1Y<)se=VDg#A*-8hAL^M4PEcIHenSp|2`hs+-?JXwz*4;t?_Wp zGGG;EPKTOS{DR@BvGu?yw#)5mA5NDSy0J<~7lgs8*!|Ji%7SaP`(6zFz9K@* z>SWKkB&4s)a`fZvb(gNX&P#c=#{NM2Zd%w$ufVGOLIC^3H(w9m01;ZV*? z9aN&6$tCJ&;Y@b+tcI)1TM#DdYwOHvlco_pKVS);WNQ%VbHJqz!3W#cHy}mc^o}d$ zl8ZwC8Ba41H_Th+oJhcfa$h6vo}#+bn3n@dXt{ucZ8nvI6>ltEWM zqL6~S)Z23ac3p5mpG^Hy0#LFc0E7q6H(l51bX#q% z*k>=4pj$lsdAcxhX?3)fIW0Z2_L2dox5-IsgABL!CX?!eduH36VN2R;R<|x)Rf33@ zvr(j&jJTc`SOtlkY)EofY}n!{6h#>TVOoE2A;kIDu*6sQ@G z<@>1v0=2Sk8vro|hG81qCV)lbRC{eV%hC9=MAz#@wR_|Ef+HOrpmKnmr_7+&Ax$&D z>Wg7(MIS!OUr`3Ti)E*fkySsCTpAtMGj^D3NI6&$+!7Bl;o=A_&aR!Tv}_PNVOdzm z$Gy zmI{CbXsewq?Gqw5kyib|$h0JGtPCje?`JDam;&MXVt@>#f(B zaPYyasS)riH4|6LWA04|?Xf!@&%IFdC*Q$dlR5)MA(aTFfhszKP+q^){o&P-4Q#sw zV&+9+8dc;Tt=K0>ec~I9Z}M{zpJ4UlU(igR^{N)4IC}*E*Q8d7nQd7{8UJIsvoBam z`{t&pL?Y+!{TG@`=<#+M6fE*sI1&c_-&X!eiN{AxK!h~CETtp_sYe*NWXD_xD^D7%cO1W*wj?n^>;t=uK#dvJn!LHQG4<)x}yIU4n({ zF~PvEmSt>7$)wrFq%j_gn(2}5cOZ4HcZmW~VmPWdu?jd!;@1~qMFyVtbmTiRgN-!aA(wQjZT4~6+gYr^yo z1i|h8UJ{1PPmucjx(narw!Tl#N&K3VS?2E3G3u(T#HHh=#LRV98{PeK*@6Sh(0rCH zu!q5|&ENgpZ|x#f0XBA0Ba5!?SJr#1B+W30{#Yl&q+YKnR~ESMp9>lm**we2HE9yY z6yiz%6bNb8TN^0aVU$jj;Zoq%8a$|z6OHZDZc~+q%Nk5E`Iq52Yo};6z`DNZk+qCK zfuU7n;Uce;`{4~xwEd{G$qJj3a7Tc}*9#e9_grr{Y9qKVS~{zU@$B@m&Ow7zB-JFQ zfsV_2;Fv#t4L1-<0G8rdbaz5J??CAFHT4oT1y1GQ;l?aykQQWak?9D_ggG-bq2K_T zVP81T4USVdYG<&TmKToX1J%KQ27p}5>you9rtQ&|0Ms&$#`4==x|5 zW^sC{I;$$vB9@WWGd@`SPsFKDeDn43P5sMt+Ro2O{F;+l=I+zLs@+^{2RvDS0J{8CNhkYx2Yg=)T`yZji1^jZxG5p)>?%2a<%uDef2>-B=<<8cH2P4m)EC z%&NlMI2}0NH>cTHC4rSGqB%0}L$4o)QEdd9I+m+`Ck0ZI2HiX^-B@gv!=XuYO_hND zBG1!eI8$YVMCC5pvzcvTcIXQ{C8{##NOuQDs(DJfXuC!Bfz+1h5)x~ds+;Z7ae?l# zQ{TYz$d(Z;_+LbKTKOQ{2ut`{2Z3&*G+Vas7nJ) ze~~FAEDlq1`ct>Ew_}8F5Z)x+l|tJB#!}_Nslzv=6v|zhgG(Lh#PZrrJ{q^tFHh{K zH5;;TDIL7nW+_;gC8}i|sb0i+Zw;lU7UPj}g9JsSLHE2w%rP_rgh-(s-mRyC)kKnA zNK^Q~F|q?_G@)~dgi9lAdV@KXSB&NnI9)h!G7#5tP=q?|nuB=rkL`TB zpc#z`S*GS?mK8|S&2w7Gz?zFfDGDgdUnhNc%7p% zS8daJFLU@Ap{YVw;tQpsK8`A7a(Um=PenZXlohQwwqV%z7R3YI69`Kv_Ikj!sq>Zq zxvi0{H47F|nzm+ms3b~mO8=U{H14`2nIRV4w&R#H957F5GMIp2Nuo{RI!8s0X0HW! z-{+9ho1BV;Nuf@Vs#Ew3S!YK%Tocn^miv29jht0acVz)-QOV3KpR94H)i#YlpS6WT zRLg1$Y9&G=+pyzQpDKpUr$OYB5Qt&>7w5j1i~u4;Z{H{K$)(!ES-n8APuY%@1wzD> z5|Wa)_av8HNWMxS<*ZpkQ}$s&6WBHvoGIxH-~3SqoO71&o`ZEG^t+9#f{~W;f@9k<>8H`5ys`MJQ#T#U1Sp$i%jL8uo~7 z?qYeEC(qacj`9hOkk}7i_bbUpZMm>TauD%Pi)r|_CtysIpUlX&8NK^1r<)>n+CC^54`*xMXT z35YjqLsSFN4^6${xQl(~IJqmj z>@u^N)eZLX=`KQO%~l|X8>_= ze9rE55fCDV5PL=Y7NLGF5CLbVMnPRN4*g zDAJUal@q{m5o17$$dY6RQzdMtN&n9dM4bWx`+Ej<=k}nVZ>{TrCGs*4045XwG6!_A zTmJU4zxFy$mr~1aor{w7mTL9GFfu+Qp;WatvyMULy~0U%aVP(@V3MiX8Lfw811QZl ziW2m<3^xKdDy|6>AIk(r1zP#14Qw5^g^CT1I7hD z?`^-S)sWAGb^yIofl(ULQOM*J_Wfcy{<1KoO zMV!{NUIjrMI|4ObXf80e6jtrunO8u$(~WJ7>!)!?(~)}ip&zvN-YU~YsvCXZ6A=Vcnl|sUDQ*P>NjjZhY6_|Qc#A!Ca2s5Th;P*KhDq^P zPQJn6&^lFv^AJ#oelP1I&W%SyVw?}O&D4BaNOL5MrI;r#!i0lCtxRe?gm9gk&U`ys zD2+y}s00GD1HZcb$nHtMB?gER`bMaOoKH29U&=6Ak!nGR;Ry+zgW-d=D_uKY^=2Jm ziOr-sa};OgZ^kRTGAy1~s-)(ZE?tB}m{Q~NhYlKTu%@DeeO|2CeG)BCgdqCtYqew5 z3Lgc7ZJnwB#H_nh2C2DC;H+AQ`opX_A-mCfTF z#d*pb5I7Dt#G0;yrIWaj5h)p=nmaa5lIMvefZ)66BL%I|l(1>u4wfC2nV46pQa*@; zejmZfC<`WwfOL@;EKP3plP+(SO`VWaLR_r16*~Z$kgMx96RrJ1sZr^GBd z2l9Y2IeiZ@x<+nuQ9_E#G@+W875L%*C6?D3L}I+a#3t#{SU4=`Q&8Oo9D%CJAP_}J zN+8sXZ2*S3A!?QlKz(i&JD#(KH>d2@xj@p&00Qs=%%UnE=Jj6QF4sSM_NA=NQ;|Sw z!Ad60UC*Q^*IWcdUdB4jZ3C@%kAnkTFj9O%B{-@U*1b=VIf8z^*k&|i(d1|5MTUP> zz>uS{;)zukJdzVr^0Wl0^z3(Y1SRe-64ak8&i5hvF&M(i% z;~^%oQwzW1Vmz_wOCfujO@>6ws*8AgdmoNfr|U*|sbv5c*V#RF8}GP22`(_ICSXfY zQ(3tmxRLjxI2Oer2C=M~mbikF72he7UN4pwLBLeESunZ5wSrY~RM~(QbS;NasR!H- zp|=`91oZ<+)4^$^l_5e6BI1<5sxg5|7ti1!a^JB{<_vUQLKYg_&t@YTbh%N&N|1wf zqclL}_z_?LK%LP#bu4qn6;ltBWFSV;$9ZarjrF7I2jL$tu*})~#(+DB2;yl8JDTO7 zk|CynP?S|DhZN||lF7`!U6=alqBSi85apLW^U}+N=2(eyXwn5Y{<#t$WRlsQbWd!+ znBj^tpt38Xr|SU=^u#rmNlGLShXn~c2OYuYLNlbs*r`w(@-jO~HfYOcQ?7Kv0Z27_ zk6K5;{Bov5ensm4iEq9%zRAzXPv#iaX+59 zKe!@*70rfGPQYtov=Sl^nGNJ={rE+N8gTQfyRzwHRM{x3YliE>$>W-ZEMPgYA>K{4 z|2uQNrSXtQWThKC!)@(vCLAkS7io3vxn*94?38FnGOPxa223%=7O*Lj&`P(#Idbtp za<)i!wR;v37DR{LV4|6PmHROuRSq^mIqt9*SH?6y@lL#9En`-mHLhM&P(4gyzB{Ca89wo#f z&8RuE_P)FSglD1*br?8>G1JHV;;ai5w`M|TE+l7j5LeGem5LHZ9uUMa68F%krjs2}6d?+L4#Z@9^v_Y2$ixCq=s@m1X*7=5L!8hl7Co|{0knlN~pErq>W%$KRY9nqu zIEvVnfaX%iNB>^m@cW@z>Q#$xbZ#BL(i$jS`Y5jjM|l$*AOj@-B5N7gTPt}{=VnhE z9MHWhWv?MG6yX(5foLsJWs}qoRSnQNwO9GSqJ!Adc?FohU*5F7su;qS(}%)c=kD3zN+qn2gjD&6k-tvGdO_YqEavbJgOdc zsk<65X#kCpgjSvi*ZVrSVgUs($cHIIFpRz=;}SL2fDG5A88~uTftYS@EFYyX$g&{q z3Y2oQVNPZ3zWvaRV+Nt2G5NN`-?8%v#EWAFMvB!m%)9hj&jWJ^i2$SDE6GD+`ha0K z1aLabNz1GGQXrPY^ML!P36x7B#{ST3fJ=A3Z##U3Lybiy9X010%}>VFYA|HB zIm-%`-dfQg*}Gug7q^G$@EXXK$khp05p8&8W7n(HAk|WC)q_1UTriC%YB)qUa=|by zx{IGvwVY^_gaATBdZf{kfO+o;UZHN0M-8i3M9V@>?b);_bHKs$a`{0BjET|gjax?V zmEEZTucD;E!fXu0Fg8F~{*V(j1DU~ejaAfeHJrzku9&XHEdiy0c%&Ul|AW?u&D1dE z%6jQ}Ex~LW`-3Q#wOJ=hy0T#wMyqlRq7TsRXhLhd=4G{ zkQZs$OavWPtGK;)geF<+?kyU>Tr^k(?w2x&(#Y))Q<&7%fl8!?9)PCBxph4P0!q@~rur0MK()wqDW-ifge1 zal^1=y=}@}CKHLYE(cvL(Wtqr$3^z{SJtfxR3_i_jO5FZchduz2Rf{C{KByerUW&p zTtNWDcl%mU&9LbC3dR>8^@*Ng84Z(pE{+BeBWa}m>`My7D2xET9L#+;1*l-PW>~P6 zlmZr1bPU?8Y?Ce_l~5kl&9fY2>xGzfu49)dE6^W#=%6LxaC?Rghq#*`SU*A(#15km zUTdtCjEKbG*Uq|MDEYciSEc$J?CKNWJR-jN8$k70fc@s~GFEf~Gn1?Dbs&$M)h z5zT(>V$!>gXE6oHEM0Yr-HhC*WO`b2cXLu{sbrc2hRx1xwp4u{+~)&D)M=Dox{ zPJSzuludh*1;qVX+sv}wNOFqTPd1KU!Y*)0JYWaZlgScVpr5&|iJ4<0Dm*~A6^q_X zW+*b6I%&(3odGX3sr&f8r}ruiCW{OP<~TyzV<^VdZjs!mnjRN2Jn_wA;+yl|oy>Xw zJ`0fl10Z!)wz(z+@e(PH8WgOxBc~qBI0)(n`gYkp#;bJI_g%WGOD7?DS)Meh55W4+ z>jocDDa#wC+Oqf=TcxV|_uWvtL{s#(@Ww!+_BWf4n*dK%>@lo8KpPKYN~(VC`z5h0 zry3J0d82er;YUj%jYytUm>HlNJS5#@LW1ogzLwWZ;Ob%lM`m+>hhnBrORhiJ@$949t=A`wKVo$N>ls3VJ1Y+=gKTzm(#K&W=j-whfTNN-n|I zp?6JP#e;AbW)t=A4!H8LNi}8|W(92TMaAY)>sHS%-_zUMF0H0zk&M^8AQS@OM_1Nm zugU35xnh-+oHP^eN&jH18_;uZdy}j+vZQsLvoD0TobhDfy-w<7m@nL;ovkFNC~G2N zEpQ-q{h(m=iEkbY-<+S5`2?vSVO5QoXj;)@dxvd<021R`Zz(#FMNtFDr9-_q)YNGI zHE6Jcr)G~ix^y7Ec$*bg2sma?b%B{yQFRoN5Rm6X2+|JL=KcdXldq6zv&R)WNG(kf zZ+p|4aqk+!;-n*r&Ia*4kvF+wThwidLOx=TC$fQ6cB7Ed1m>VVR<1(p)fY)l^)#dy z*RcNknM6zd?;}NBAdE#9n2PH3aC3Evy*FwOvY3ypH{-wxu^N@YyBWcTqZ8mWa7WM> zB}oU4Bi-v98CB4`6y6G-`iV-#m7;MC#^$1F7#^LmUzqK>z1%EJC=H$KAQ%b8@J4KB{4Q<1%X`b$dLu~(760CV-w&&`?>R#B3gg$RtH15H`TQlVRY zO4I%1#g|mm(DL9{(h6X;RMh~bR~DNG$U*ZJ`@cg2;9ehUOcjQUm(YB=ZYwKSQD7*W(^Q@&$bCt*o0&7`GG#EcC*tD9Bv)8f!v)k(KzXv)Ve=}=vP@lsC~EB zR3ohY#WMECfgSFnfz>Czc?^7WPU)UBMOt>>mYJ+kScyDdo{`7jn#4AS_l)=FUu>Ek z6ruAU$+`%2^K+^RIq=E+b@sMo>6dIQPVbpRB<1&xv|u4JVZfGIPY9Tj4pMu~SqG^G-HI^+U|g}k z2hnOPs!|O7*RE?`9u^BqT0;(l744!l^fcWwAt|$LIwk|0q1%v{ofB&iW!t8}frKos zoPipAR4)_-s95ITR`n?hRSRJU!EtPk(l3%9-B7TmBHrZ-UvS{Qg6cO?nvb(swE zkbtr*kkSb4`BU?G4TWodBpTMy5yKJm@3#W(rioXjUp{u_c+Iw%L*6Dc`~1e!n#T})|| zTO=Onc6Cw%C@xmA`+p;!W*ueg9^N|lAqEy@dmY@RqQTK%LM6>I0*lttfhwXnSNh`^ zAUv1?G4YLF3+rp%?yELNyzJk-`0oBO<~cd{))3Q4&}0&c&r1pzAkpfJuqBkFQ^}f@ zhF;5t|J0V5{qqsf%e2Gw4sDa4U1_6g!l$!oyc*zu249!cK1GU^5mL-1j*6P-aWYv6 z1Zo6)t(kko0cGwmnLnu4q@-C(#65PVJKs8zi5h5R|Cq09c7;;h2C%ETg_-29L0KyU zczM~?0Qh%xCqHy5edS`ObMB4?+JaR5CgwQ>-IG-_2ni-#YQhp(f^ekbT3Y)dhamNE zC-?`frTi^&^HIU-6W{zgd~^PX%(z~b*9(&td7Ph-$KfQFvBEzb?@zsccR!tJYMUin z$+*4$#_nu)+>twmVk|}jMQyNpso&g&BpbA`KtC>2gN$W_(m^-H2Sz?>hyTDkSSN8V z1z53lGu7Dci4UP|Hb$uHkQ)>a&uyd!nN40##95O@$`Ar0m1G)Q7!;*6?@Lw(uW^Zz z(8AQCPvBtm!5p48AXv?ZtL_M8g`u0w7z`WRQ}siex;N>1n^v|UxR=hTwXRstc2|vQ zM^GY>=sH6NH_v*M$*v+HdGy3hbX=8Vt~yMzh$~+Z=Gn(rsb{ZoNo}zDmfi}pdfCPY z>IxoPyovacfaf`NI$ty5VlqvTS%T8*jpfEhyOL*Cf&RfB)zb?BmJsN{V#P|6O$h`h znF&x1R!U?u8Ieoznu$y+Srr{g$!d}Q>szZuHiHyw9pcuRCkI%#ABMd#0u7`_jS->I z!Q!$E^D_aY7?v@a<`UnKGr=QLT6nMnD;aZf?`adu=vuTX5IYZaCOI=O8tk&>vHAaV zBAr>K!K#~*#DN$l6rprmYZ(hUMR^Q_edpCTYrkL3M20?#A`uJyX$*ilpBl49M}+JIT=+9lNzm&t(2T0w0FzJ>R2Rdf-it;fwmEqb72wyS(kHX} z+u@u1oXjUky%Vdt<7K3UNw|A{FZqHj1UfFuO)`)w%KQ6hu=>5K0cebZ<*uumhAj1C zoJqyv)Ky*9-=!un0e&xI7+%?8JO?CZq$@~$q3+$c_n1c5QY_9N^=?U^0*2&ED$JN^ zGFqJf`~ZH?K%f+Dcyg`Ro=OW?Kn$d4>s^^|$o8Kq9j{Q2FPh6n;GWeCfQ2Z3iXE`} zdq%1U9aMLsH3I_-hmO0_tySkc<*ts<{}^JM>u`mwOBYHRDinaioQ|mmrKCYUXv4kA z&ha97q8-_0U=}J`@bAeYNlhP68N+RNxI16>2b@l1=n(ADh|wNW9P>n>keKm|8tG&W zQF3ni3f|KtQ0Tx4=l54xDQ|NDdrSXC#?p%Vrow%a@;!j`90|0jEPvP z0?8ZI52-2wsqYP>Mw;3%%%5nW2`brL0st7m8yw=YJmj%-m+j0TOC9MHG8C&eU3@0% z4Xz(WL{!1JEGp2^&*Sk2xo_wt{r>F|@dZ66CSA1EXZCXIJtdv@@-h!0_U9JuJ`+tP?m09TQZt=JM?wg|^xI;|OgRWRq?bfH zKS7J|Z|dG6N3NLt?A_n1*9})Gdk^r!6v@@v+AeIYmrGFf*fm#qO|nQ)Uz>RuOlVVp zELyyOnhs1&1Ls>W1TsnOKnPGHrqA^~-<$3gak+Gx=67w0Sg`oXOK6oecTLB)n$>rb zw&QwL5nr2|(m~uEIdciteW9@RrNNt+d$iY=j09F9+tyG?fSA-0(97jLcC-7)aeO2_ z_4p_96W@Gcd~^QUH}qeWcKGd>)M#H#o^*hvU6-50LfM)&U**Z|tXk*4dkMgGy!XTC z{dyQR**0-#9>#1F0}IyF8YT@!Qfm zPp#!aSG4(jpG9{>7LpYcsImoin4R<5>W5)$BP%%4^{JAgMw~rL>dizU3AR{zx~!HY zvkdso-8IW;K!{S4m^!eO61R#!tjVcROt+5JfLsFZblEUwA5YsrhD@aaMih-q4Kz?R zj&TMK?lT}m&>px&I}+-$wy&at8VM^|wRR}WR9Owu@%UYzja}gWT-5-|{tz`-@imHl zX1kji?xO-(46N(>x@C~GlkAckFiIE_*+wTOnx!hD>>yQYz3$#P6$H>CH^3^Wz4H!S zfjfh9;I}CWc;cJS!8hmUWIjRa-GR@7IqR&dn$aB53!XuVz!OqzF5o(FF{P_&W-m9e zns(;I$+3%JFv8+A1XSdz@0a+sAVnBr^@Vx%^hg)=_iXeDMk>Dd|C4w-6cLM$oR_a3U`K$?S<3La#> zR+?D@Ou*Ma7np&cgadD%ZCw;=bP=3t0ag@vXEdQ}=*w48131+>hjVSP+V=-44IMq%5d1wb`A8d?S4wNRWUq%ku^>nBMJPIsKY(3tZK&oa^B~X^og9=tG;Mx$; z^C7E!Jc^bq$xwsc%{(Jdu=>O|4**pEE0g(KGO5<8(EtM{HMlBrgl9YS{sw*QDoaq7 z!HH?5_a9fV`cg{Kis<+EA^N>D8X@XEKsC3%x9AcfIU`MNrF29|fY_1ghMDJq*!_b} zr|VhUbyD~4T{o7%fqkLO^GcwSxss+tkxj2kT2p!4g{~lSxE91^Khaav&`@rL%>n~Y zr3ot0s~eEXAa)))-46F&<|c$SKBJYJw8j>3eOB{Q%tMr+)$GF*vn?z*%f_sUSw$W__YF8_4N*>a=>|o1goYKXo#T zl~$X&->m?dC$SD}>F)U*%d1D1Kd}z#PdXIa6T4~ONEf;KRAqpz->NnXY|T#d3h4R< zUiORSp21Y`sw-iAdCts5MErievI`WW=?V?izziwXob5HLX9cjdwzn*%4oQN>Ag0SF zlayw+xK%}vh=&&K`_27nw%4wAqW9(tl0E7z?AmQgcPVkxjHo6ind}!U<|lG~f^YnD zPzg5C-8-6$y1;sw)2Je>xNx5EgOLt?e>69dtX4`5;LZ*!ME1BO+KdbMyO#6I_o|o?KGZJI z=+Bh6<~}v&i1c9t$~^?4ehI-fnu%igH_?Fb)N0oE^XRN25Zc0h8ed3!>U{wG8T4VS7=kv>%BlzFNJJ&`UWfDukcz$^~zrVk||E&(k zhb>q)O(UF+=PuxdX6I5J(206$)-n{FGH-MK_D5rJb_S_xi~jgQrT_*9lz^kr(&y1)Q3)0tSWOHec~&@8aJ zeyeg2Edt{OFV>Q>12dtgul)=bSna^e#v&OrO zbTQ`qbY>fOwH7Wj7m6F_I74*3IV_=P@4a2q>H56XGNsn`aXx)ZZ}KByG+@Snb(RGn z0DsVR1_w7RN#=M%RGlpNp^*vpb-gi6kle-}y0Nm<%a6YR??4d0Cetqg zYcJv>5h@pn3@f7fDxLmrz5tVexT6Q)rybHyeDjs@P5!J!!jo8T?st)Pi0JTgfBjG? z_x(FWk2w6BiJUQAZd`3@Ua*Xc{Yt8FVWf32KVtxuCZ7KC?ay7@`wCLuubXq(u&do_ zk*=zCidchGO)8QcmK?CkDb8Bj@2?#g)qA12y6|UqHm$J39i$f4_^lj1&AF>GLke6j zL?MM(%cyqD(AD0=N(|GD6xhIPmYF@maUhz{HLcKu3=C6c^-*Cklt#- zEk!TIpl0z)M%^2W`y0u#a+pI&PswC^$qF^G;6DTA920+;m@>`aO5FR`{y&RlZRw7M zG+$fg0I2jvtj%cyVPY1&1dN_Th1S+JnQ8&(>l5Jc+?#VkY$Jix0^Uk}cYl7Q+c77K z2Dm5Gycckk8qpV{dMX2Pd{&td(#f&`RzzKj% z2Mq{TPfa~YSYkmKc3C88kpDX|s!x3L)4%esn8dR7e+M11Wz9yr&)*5G9(8>xvao?I zvBj$_)_Hf}3oQmtRAx^>mS8m(u-2S%E^mMB%);B0Y&zAS=MSyfln$i1m*(0B`#&FI zq=oA7EZTuT)BV-4=0e^5Wqtkl-_9JLu7~aSKSwi=D5&6sJt<9Yh3zM}F`5fQgFvZT z8Xxg7UP3yYJc3aV8DNC`iJcYr#wIXi>}gP_5(NaYhn3FN_nXx3x*=m=0t{3LcpocR zz}yHOr|T}v;aG__hi&Fll+k*?IFw!tp@U>(a-1FI^PFALpg zD+6K(gv5cE(F#U7EORJ#65HK4kf#Qyb_C-Y`u@oxrJ;R?X+MYd^en__^& za+6D5{;8+0YP!FqoeGos`af+7Fr=HL)^FvUjh&37o7Bub_m>tdDuYwuhYo3N8oFy) zmfXte9C&lnIK5vFqY7%TxAk%bs}sUmQ5jJ{L6_GF#S^UDX`z&7v(?RW?PBsRQM%qW zW-_ORY)ZD*M!@VQ1_(?y*icpDX~0v&1}8C0Dm5+fDufaF*DNs(7t{c;4FuXVkCrd z9qo_TYpvOo7R1W?#ce+Ie%~8defdMb8Q{|wHzM+A>qib=Yu)@{>a>9y{#;)hq(1S@ zR|2XxCh;pz=H1M%gKtG?*AV( zQOrLz74}YL0IU4z-=&#-);#`0oBT$asNq9dYtFvyAhj{6*73Ff{q6OCLy)l?%9gyH zM34BIO1 zFN0aN&3pWZp01T1s40Q4tn#$^J@A>;Gpb7(PTbw!_J=4)s%i&~Sv_}VHHBqRe&iPc zLr}`(EQaa6oEsO8ZDM~Hkov?o|L)iMD0)3e3Vdi1FV~yFLCROI15st&PC1_+T-w1- zV!3wQ05j$O%XpN7=eil*Re=03y;SD#95wQtAuuoP%{It}0vSvhnZ~cm2#j#}XfVN) zKstZ_V{Zo83bXj?nq)!^yhVrkTamVV9c2h(9lI2e6Qr6YnAE_f znwXd#5{vk3Gu9$yQ`q0WKU@KJZJx>$x~N9S{XVzr{p2zp=bUi*v(~VBuqwVRhaJl7 z*2=!TO{ZCuas;OXp!RQtZa?uDd*Yj~i*NGJSP}O`8ecK;_}e;SzX`J{c0*3~aH7|4 z#`-VNavIeDR?^BgOdF1x;Am7Mg^y3Jo+Ks2N<$w3S%HNIB$R9Vh&W*ZUyIC;|@N@ds1DhDmkELAXPOA zn^zalw8kA!z8Q+r)2hzX>k;TNf(E_(b6v#H>oyVg3MMf%rG`1p_PV+LHqiEgK-JQw z;5w(`*Ip8EGDDh?v~*DN4Q!o}W_Esjj(`N<_Xj%LSTk}z3YbJ|ij|HsFtU8=Ynrr{7-zy-5ZE8}%5_~xW)dn28Sc&&Ji&R;mR%g;os_gq&*MGHZ z#s-dC$v9O4p)k#V1mkK;b?mc+pbtuC+1!6s+5{h91-?F$`ouT??zQDdn8dFzng3Yq z_RE9S1^q>xt0SUc{#wu}+SnGSz32#qee>)!spar}Z;ewTa_B4H0SY%*DXZu$dm!FAfpP>4EZ`fCL^l79#t?COm^-5vHzH(T z+JPf=LqYevkvO`>=?dpXWsFY8cDBeFue0&sX@vnEWl=1?uJxdIqoAitCPB@Zgk?5} zz@G#+JXll@b!M&T{?l5M+RmTeI5mQ!0|vfIaPxa2;L4Pp|a`rHr>`$8prI5y)mLo zP(dAVn%QGO!>P%77+J6?rhZoLo6E3i>VqJ*%1<#!-F7B*fKk@%q-G_>_z^g)V0GKU zYAFMNfp}Jgpw|NXM57V)UV(XFEh{N2%8d2+k-|`h()0+MxDfWe-9u`FO#{sTGHktd zAdSVp3*QN?B($u&Qlm~sO>BVBm*hN*#F+WjWgV}@&_t)-w1*{&-KmT~pq)^pIOcMM zHC6;RU~qj|N`!BfT-0!`+OMJP58ZvNFsUhEi4%?mIzq7Owc18=o4zM)M>{VSYW`BV zHA-4&^wn!9$^=NW9LV|{=S7f%Py5x_fwZdf(lP&lVdVvxsF#=>m=|ui16%x z2Bbdm%|H7(Khh-fWY*{N0qn^Bb=$BuK7G8-=YJrY`$;_NINU_rDmt_#0Sh+{l$nO? z?A}5bJzU!bbk)ObD~Hfu=2*Azg=CZx32pa(x8|hl;@V9C-lm=6VP;AeY=7af0xC!f ztwKk@aIli}Auc2at_A1CfG%D0CXTJ~DNL*RI@g;u8&F08CLnWlr%oInVQns>EFicl z7|#KryBEz-bGhR}&R^;0@-$7=DKdL`{3KBlE9}#9> zjQ*Yyhtqk%0ybc0jW=X^DBYszdVVLG?_om+xAO=)eeJl0Kh;SkGO_|A#1a6n~G5# zcz+!rwJ-pC_wMV2&LW2SLR@PZG_A;WDmPrNoAtTstX|&eFgl`K?g63czMoYc#Phcy zLAA9*h#PO@;2umr_H?}wYOpF=to1N@H9&r*3R$OiijJp&6!whltQnmyQ+zwJ9`J~b z6>k{OKVO3_d)ryL=Inq^hW@I+yf@cKTh)Wa)~a*;AQ)&Q&*%!gV>(Mog)t7i8PLr~ zA}zqK3K|`%pPIDr^C0G0(H)T_SlX%wMh2h;F_b%i6?!gpP4j{`OsqdPj6$MJ4xs8% zLEBGmpsTXD1$40^Qd(?V!cRj4F~BbO2w zC8RD^T|la1N?dG%o^0biO-Cr)yyWu$&R4js10`D2YP9BR2p|pn%^&>Q+JO>ui$4y5EYG1!OTI9juC6cImegP*MY? zR)PT46eEQTGlJ?iHO>=zI_-N>b)3?Tm1=_wvN%9gBkHxNw;!!$wKrJZS~sC}Sh}G< zhh?4he-)%Y@y$PBRBw%uJz?sHpU+)_=Kb>i{xgbCwrvk%^XZgNFE5`GdFV+jvskX- z=d7VJZgm_>O=0!UWzoz#=H=7SYV%YK8KgaQ7SY#RnL_cM(oy|tWLh=Fx_2E!e@QY9 zCK5`TUC1!*F9gUGSWSBwKuNK^mofm^0t)MIg4Bq3=#Eq6?VIhPC0?Mo5p#gZ0YimZ zw_EP7Fwm#k#f|~X13rM8L9T3_MlgdIzesa zOkrc%4nWj+iUTWa8%WQbCFdA*n;%+xrMr(;3~j*7nXaCZ{)Sd+Wyd7lPl=zW&?dm^0_anbVHIVn;;8U zy>?|Xt5snC+n#xmZK^mVZ#<`MGDO#H+l?-A6fMu{si*s!YNcaBWVn8GkxR#czuSUu|rXR0unPQ+ZQZV4EWme|Lz&if(m`=o@+ZFL#j2z|jG0#FnR!WxVCqgnDGi03fNSjZG0! zASKq!1k$3bo`TrDukw0-KmIaKTKa~>qTncn!w;8IfGEuBTMZ~{!&a4#%PY?JU@JhN zkvivd*dJF%y6^kH3X}Twu1r-He=+MV-Iz2j7uK28+SFP12eJqrAay0xHP^Tn(~{)P z7>+}_$6`{S_~w!DO@8!A{LIPx^hrFN%*T3|Wr0(roo3Fkge?(yv&y#tkz!I`{|bfC z)hWmaBljAc!hU94S-%x&N>}YVihCJ=ckj_`@lxbjG!Psj=?$b}fYf)|&pBOAnwWA7 zk|kMvRXq+Pvh83Mt=kuzzD|mHQU?-88BX#kI5&ZXf5rv~jiSlueKnwuJc z7*=&!#(K(@15PnAR<0Hu^0;92iEkbf-+Tv6y;iAW_L_7@MDWZK`$VN^Ts4Oq1@P4*C6Q7Pa96q8B4 zG?1zigdz!Y_fi@5tM}~reVDq=Y8hX=yr=+UX5_F83PgNKg*Zqo8sJ%a&bVwP%NVC{ zsOh?l^{KLWP1+I7*|hqBQNsT~P|pWlySs?9MqQ*5KUJieGc`~ErpyIAa1=uubF6UK z^M`N{O`V{3(Bf2r1axX_`zuBtR4PMfJO24uiG(sl5DIJb7v*9m@bbqDz0{V!2oQb1l#iO!`a!!+sx4lQka&GbUigy2 zKHTQn(1p>Z#L(yielg`c;wf zFQNAuGxRTY%kd;uXO;H#s~(oz#<`65JASnWlH#u&?!N(OMH|o6>2yN(jT>LfmQM6 z6*O+71L_}fs319FkTq=>)c&@)%XV*Q>$$1{$m^~a5*RPdOMrPETkUke-LgOAmwDaS zy&-=)hg*vfN6RWFdG`9x@Q1koNnx{TST}us*)tl~{hXDke?Dboa*hHn_UBRX&c zn!G=zLB+Ub%v>G1e(cv>%K*Ns5h!4HclwegO$?KAcfrUqxS&JSGL4F1)$&;>rC3m( zHT07zhn=(38CcO(D4O+I*##I@P~btTV{MU+3k5$g?VO{4Cn)vn_mp2o zWl^)*4+;i*OLtH+ep(I9nRvvu4M8wep2JoOP(Z321$RNC=CTvf>=W9(ECn)be4kVX zU_p5{>oyZxFS=Rrbb4vAShzUNGbftqH-Qxn*BcJ^;99Sr_WfaNU@14JFGK~*9{?xT zHS3``)hE7rczkodXA;YsZSBoJn+`uj*{5q*P`c&*X5{h9>F|TE5^3}_MEUP8A9pB% ztmz)co4$iM!f8#+&Z)L}m2`het8J9-=jL1q#Mlol2t9W+c`flZg8X_`56IW0QPlvh zhtYd_tIP@i96vJW_MI-UXB5&QeY47*#mr$Y2tIYOEw2&9#~W17Appw>!sS0V}6@0gPZ%O4h?(pY3)a2%gT374c9SH)_U%t%q(DLSh~4WKkd zmWC@YE1|Lj>W<5^R~o14{_wUt(qYYZ_RUcGJW*h=1?z+f2JTnXStxO3TlM`)gIaA^ z+rjE~pcWD&lWu2;9;K}9iEq9HzBwO8IHs`pI#};`ApTx1dnHtv%<~5)(@tV}uZN2A zifH@$F6~e@iwkx+YODW zD_NUbO$e+eh4fLo(r6d*76#4T*$C`RM1Y?}xZkhiUBPNG9=OiKrFKsvpl8u^_Ca9Y z@_uVB7BPCY;$RU-P+zZYve)c$rarsN)QNhH4p<_J zH7#p4%DSu)R9o8BKlt@2O1XH6{RMKR7tQO9Wb%?xfEvrR7<8Ob!Rq;CHwD<$0eZ;~ zhJ>EYI7!n{u5VpxQj0=R&&FalzDXF5ENobZ`9+!q0r2Hd>`P#kDIgP+OUb-kgM=zw z^~e8_w%7j!a?-U?Ea-?A=^P!}x zLMAdLFB^zt%R?m)BR{<~G5-QmU;nz%9ilQKzE2Bjo%Ry81nfZC%a2FCR<+x=fXpH)!a#HHfBi6})K!g%r45rKtvhQyOIe?rNaN z4lYI2>vqMp_}2dk0y%YJimhA{sLLI?Wh$Ez0Lx0-@52yWVYavbJ*UJqwL|@0BA%8@ zN|Le&cAx^fuoSRtYDy|P6SHQ8`_WA41kD#jf;!xl^1e`r!)uHsullu+R)T<(DMUSA zFpF!g+y)PJa+|vh>hAwj>7?qDD-e?hheAOon-Ngb5)LVnstrJyUdOvBzNqjW0YEJyMTa^KSwqC3u%DuZkYcc=Gd8ZG< zMj&;Yr=SJItdVIubw)iS)~)(k0hnD{YS&SGufJCTXjKD%J`{U_yc+vS735 z;6>0h=4+od=NL5iFPE(JmZ8-EQxP7R5z0x6o{sC)KvC5{8wo6>C?E}VO6Q*=ql9^b zV!>|5bV&yu9Q?3s+DgVq>8&CSh8##iEjE|oh$%mX13FXbLQ+~ONTjI<5jhssTHCIZ zT9{O__f-0~h?Q`i4VJ;ILPAe7xU@282s7{g8`y)p?ynom8l;Zr zHTY7OtvDWD#_(WKVVlq~{gVm+=i=jCM>Zo#IV0PGW^$Qu7C%*Y|_$Gh#N&LuU zez{3}6tEglBS;eQONl#=?XHJ*idC`hQ%kqh+9ysEQX3BzQU8sNkmh@A_R0Xjy$MK$ zG2lReAzf9z&O=ABu^YKv-1QK8DK1cDb04;-HYW?y@gr`Rmq8jKai&N0jLCF{f)R!k z22|>Zk|EJGv>V$`3$t2)C{DX6K+azEeQ36B9lWwr!vc^ZX1B8=wQx{FX;`uZb$`6} zyj5oa!jKfZw(1c<3Y3Hvm<6|%WK*`dDGVPe3PD3m2|D^=h(8Gcq*1Na-T#Q$^TgQ^ zforA<@f_N{h7}J&L7FG?>e^_IQ%-`)>6t}?e;=bqSWp3e1n=pyM_zb|!D>Er=_-Q; zOS=DCuSqo^l^5X%I>cuKWIlG=5aRcl3Vxncv4=9dfEq3d7I}Yt)mfF+wD|Hzyl(Go z?T?ydpCI*#Z;tRy{v9Uqp2_^OllWlFD&V`DabV3NCKZ^6PHL$+dnI-X3t4R1@3TGx zqt6%z>JX@w7<60BPFP7R--uNjCN>7EMGYXg6yK?U)LE0db)8ftZtp7*Rl|wsbfJVK zprpt)OI$y)mZH)6sG9BSVD0kbe><~U(ylMx4_I1p!|l!N^@R&$tv!Aad+4_kC(^z< zbAjHUq!=Ko6ku;c!8oupqVe^5!J$UFyIAoKLYCZD8)a-`RT@jM=C`5@9{7)ElSvcW z+{_4U0-I9@R)gj(&8&VW2?jKYx^H`p@b=zpleK%AdaQ#%#Ze4s79Gn8T4f6?o;(~f z;Au!z<;Hj)23i4!FX%SE2e$`3j$=svb*)7*6_RCJ9nM~@IJAJ~l zJvMHuS30ydZPN*L0A%tSKYjaFnY!*cHJF0_-oUKEqr(5R$|Abcdji^Ie6{UojWdC0 z%F#>XTBGRW%41Q0T;73cZJ@aR?p|{yd*f6GsjZo7cJ3oYXg&4KjS!Is7^sm6z0oKD zr*kN@6S>$i6szxv>HU4W-sAP2N<&3ba%0vm9dj+L7LcqNO3S);UVT|7D1J;}V7aJq z_3IMJWTyFNtJ5@+G8NxA3*62?rItQtg`Wi zP5qQ-ze*$*HGuO=YPhv&M9UEK2R%8e0S|EGaEw;>vLRVf@iO731i2zn-e;oAn8XL8 zrI}{r~H0-zxCQo$%$IqybrRdpzVg>~e%@;rV2iFkWd#jJBoK{OrYS5}q<5unfBsPcUax8#nRZZ1mz&KbaK8?n)ojslh*Hlq32YfF7`(F@N7jpz{{kUp;Qo`i7eh(LoGM z!%YvA_%SeL1QL+)9rz_mEvrDrJZD(=&%gZn{fh6-SMc+eUcUdIv$c^$C|pOOHWiUu zdxTB*0P!T;(qfAK!E;phhSOQ!=yiXPOW8BNA3q;fG7Bm0@{-jBi}(9TtM^R$8>?n0 zEk9D7?S^}n&q?TDKoC4XpL_^E@y(aUH{(hAzyII==l@H;*;i?8DP&jM*WSxoP0z1? z{>;MwOSe}pcKhOA{k{!Kh4n$z$uIU)yyG-CfK}G=j;3Z*ECrOjzzvJ@H0P}Ap;PO% z>R}{R8Q{86kWlMN)stk6>h2B$Haf&uUo-`sSglmr0wh!heYPZ6zk8JNriM=ahwROO7F6vjzTv|@Rbf^*YLJC&Eex95sw-1UBt@C=o;TdOgTzYaz+Yp2xloUcstnV3-t6rt65m! zSj7C@m1fH(LJzEcw(aAK6=sHix*}r)Iarz!1m@DDt9GiZp`=|sWVxS3Hck>PPD|~_ zPuOtziXv9Cz$d6h%oPOGcAY0lp14rMao{rX$zM-=^R>Uu={NqW69@YH^XnfCCZyMz z8HzFLiU=jqb%3piDuD(@~ksj`D=4MBas-Dv=8-v}V zv)fSMy@6APR>%nqxL`g!IWos?Tn`$Y`G$xUP9Dn&chC23DPl6-*o+E>QmLCpX1r)D zxz^B3!+DEzjKwKruAUs~!n)I!2VL3Z z7$|dz{=5YKu-H4M&zkdPLdUUbqOs~$Rur&`9>`8p`5tK1K`16l1O}z=Q1a~K0DL+= zx{q4p%^LzI;g%i=EYH`8Z#Yo>fBw(^{2yL{cipM(#+{^$SwKmNfpfy7#jFfB%<%;e<)wcB4?69Pe$1-1M1~+2lMN)jL)-(FRf8`-cSWQ>k%H%|tlE;o$_c zdEf>Z=0uegz_I*dlq1jd5wAyPY@gW8oemGLY~kPiyMJpoRLs(^?(MXaJ6v&s4;Oy> z!i8f8RP_o-%318a78Fb#20q=$7nLUm#E7Y1#sH=P2{1HxdHrbX18j+a{tr3Kune${ z#jyT-lFx9cHR_cWvFEb8${}Fqqcr}6@zkG>D;X$Rn~2#`NXB7~*mDiG2$*Ui{Tzy$ zf*pKItikjTPy7GjKmLdGgX}+dKlcqW=#0z+8d!c+)pKak8S4>O|m4w2;4o$)CljU#rsqGI_Iak6YI@6-B!u#zVxy&J6Ua0@xzDAEVy%!r53cy1UM|4`D`01c znS--@BMv^atgtIh(aT>dI~{>k_AZy35@P`P#m1&R4eG4%(A?%TQzpZ_I$}p=&%H_r zX)QA0+DUeuuU9at=Pfv2kM4WqLKc~-PCgmXqkSI3E0=O3ZVht!;AxLRg*3Gm8jJOp z76n8R09cRl!;FzpRFeX3zLFD+;FJ_kOs2E{$SAdqr*G=4aclb-(Q#!*ZUzFZ0(xl-}eyTY`%D(p?7*-JJ84O`9NVH5ufFxR<1i30e6}Di(fbkP?a4|WxFQOS!1fq7>#23RVn(c*hf~@d056Yqz2&w zWUp`#aCTbxc{p?s880qQt*LSX2dGQT3`O*)4R+Q0E6KW7yz0&?JiOcwyD|{2x{ek$ zLzfCr`{yQFPa)U~`s@D$NIeREDa9ofljE8aYjECd%&&#d9IvU0ch4Xh?b^8Xn8f*) zz>3Jx3bj*T+4m#YGVsoAKr`!nov-=ptWiB*2R2AZ@pQLJYHUn!Yq;34 z7Pq>}Z@w^vVZjDWzkBgxh64dWM2delN8T}~j8JDZviypa+v9Me42J{t@sA= z<;>vDqKWdevGP({d%BKP+Y7^z1H|2;dR;K&@8}xfaQetv@%BG$VM4(=biU5l2~^M5 zud|C3d(yiMQ{W^8`Ij*AHxekbqSV&K;ek~S(!77~Z1}T}(y!f7xnAqb5RJsE{vFSt0n+H!y4i4n9_n1V8p8A9^JPn!rB=?0%9 z12>9%nANkzG?z5L3l+!p>9c^@n6e-}ji#`LH{U@5`S7C2c@8~$SBeiu&RR;QCZAmW zWZsh?Du#o4Xdae`Gd)Sw^K}B%^Y!~TOc)6mSv;>824kMYl22rpGU{7njlOry&^>wr zyXS40!3m6`2X4&_z)V<#mR+~TTyU7E=sICH9}Ew80RudjAW{3u(wr0p2eJA-RJs?c zT(+|=dG6>GqnBz=BQtMifC9j#URr>yW03~PAJ2E;f3O3L8G|Ve1E$z=@9PBQr@gSu zsr`Yb8Zk$lG^$CNJt^d)vl}c}C4HE{i+X2%Uvt_t=jAYB>PvlK09LEmukv9_4W!aV znh@O4VDpHMcs7PCsP5L*7Q}1L(`C3l`9b1_#R`-HelVF72=D3$=j(i(K=pk6p&b(> zV`gI$o~%rYT*q6!f6|qRKqCV-^M_?1-5wLVkvs@Ml2hbJcHI&FD zShEUD;|fjAMo~l|{VhjdZ($T{!V4hmbDf=3fFL3tP{}?pq`-09PhdY#2>V_jb?SG) zOK~tf+GDo^3HtZJ-u}S=pY^1qz)5g)v%cu=du18{IAaZj>>>q=1JNW1;L^#F@I4R* zyx?`OFeV&6Ky?-_Oc(%gE>lMdkVv^*#F~@_Y7!+ASFx}9*NCO_5r9_G zmXL>GlXmN2UC(X-Y(sxqs9y`FQ!RbK!5Na$fA>HB_vx5fx@6P9(WsUc(}n_iBDAuP zmE^7)iMqRH>YQs*a*^xSt&9-oLO4~@9u|&_gRG(OfqO_P?b%d<2M)wKx@B|Cyr<7G zb5PPy8o=xciCLLW?f`~C9Fh%KhOAl)q=_KUJ=qE%OpN2gpSuePTv$w6F`6CJzJFl- z1A^}(ovll!l5~UlYfa{P6oCkfpSrI{*(pjH+z8-s>jOzK?2NRQqq7I69 zN=&eE4w}PkmYMeJbPLVzNoWQmc(Ky&IPeim#wQvZZWMlt`px+(s7qMBw|WR zef2Rln1wj>e%(Pd}1kjmvSUW0u2JNMDf_db%sd=a{T!w zUAIoj`%3pTqICV_cV{r0yoVT0wF5io+D$dMOB2OkrzO60fj8;rC|I+FOoAHl1+iS+ ze#9w{7ukRTXCKx1I)Uo>`V&YsU|9MFNdXy%z`bd<1&}ENfP*cf8Znw7Q=0S!v7Zyg zxY2dn*+Z%iDiTO@qa%RDImy}gI%!!_H;2fP8A}7iLIns!lX2FXySgTpi;_cI$KtpR zDjm7AzIp<0F88n`r9kI^p%jX7(*$&I@PYH63js>Ici3z|v`P(~QTN#psr*q( z&WEP}*vi_u3~ErG!-LwUr@J@KT$7aeJ*NlT+wi(|Zx$nxaIqV8K%5K(TNltJw4_Kr zyn7ebMUls7s(*WVe$$o5PIguqgtT97G-r7 zTbsBBvNvL>3~X7lv2-_;NK0S3uC&wO4%b0?*GZ2GB7!1^a9zp(tH&=g@CUl`4X%UH z$d@T_kFO%9&R`N0aQtW7o0bl|V7i?pd*rJtVumnwQ9r_FF(|VhuZWOh3KKgB1xhEB z-Sb%`p0tIWHJdqlml{AMeNXWiX2JlIWbT`shr@lyIv^n^(}_~}!ksFrW#;;!Ttv6{ zjIsg>Whz2RR`yu4xW%9U>dQw7zyoo)&ZK(*Z$A%`>2j6vK>)UqKXBG!-uqaU?c=zBO-LNN4vnQK0dKRni!b2xCp9R5gY})FJ9?yAEmi6K_M)hh zsLqu%OBPEH3D(TW;qV@9eOo3pA`mb#dtF0T3RaxgN5Kx*j;U18LlNO)c26eN&2CDh@LN8DVYE(Qa*@VgS3a4hI zJ+#=7HaK7B>kk6evv2Q>z~N^AuOt~UDS+-5>XC*!Gqr3bFteLkrDQ(gcb-?76kV#t z5D_Vs6>5WMDPQWfW~%I9R`Ou5^H4+Zffv~K^LkBmhBxh$JRF~KEFJ9ao{>XAq-50s zgUH{TNC8<`7M93KSym9W#07;UK!go8n&7`Ub;E?w1O_?(f)OX3-gBDm+YTo2KL+C; zrCadnQLsRhu7A(@3VVlO%%KXxcqW0o_y$Z$s;wTxJJ>M2iCU7_1mMwQYie0Z1{1Bx z$PG?-Ex2Fr9hK7$ozfj0Rb#IjJqHuLRjBhN4Lm8BkMIHQthDMBQ9WNLqk6vn)C+c> zQmh=`!P01c;Q-e3K!E`;AAwRLv!;qVyh%+RC79;cy{#HhfRxDANV?2~W;e(JaQ-C= ze5G_?r|X}NC52si9~=Tsd^f@lz!qR5(G(zWwTv|RUe)B$bH0vQL)7g;79jgBL!(qc zr_6Ots@$I;yZxgZV~o1Iply5;#}Rg-H!ZYRo>NjSo zuS4L_J1^MDGSlllghNk8^?aQ`^?dyi3Ka*I8C5%(lH(TR_)M8~l+rYzR=Z_Qmy6g4 ze7X0%WT7m1L%($EB|ePJd)gb4Eg_DSc@e8%PVGjvr9{ENJOe!JUJ>o=3~&$+bV-5@ zHUKU^gfvy22Yir74{TmT?Oj=5@(!mMpu(rarrRSQvYnZ%crK473W6=Ld0=U*q%Ar@ z^9zB)N$Uz%p4lK(_3GUx_@2ipv>GkD2HbLPUUI{~wE;(B@@zN&U`FjW%zIsSi`BaG zI@bRF#3utsHI^SD0A*8EZ?=m94_+>0+)_En3?_GUQQCEZ4xF|dbf>wh)J%I-2gocC zIy?W**CVg9nd*G)FJQ|fi}frGO{3>Pd~{3W5qZZ@D|#oxFn(2$4zs<*Y+j97)1B$w zimX%z2ofTg11w4tlrPv6G$L_ASGoKM`7G10)ecMXc^gzmE@;wPvRmH^oa2u=#;v!d zw!ncTE2^2KL>A$QQctBq&iuyp*UQ6$IUCu{H5w7daX|LA+sVaeC9^M+T z`psPZv0Kz-K1%8Zx2l8U#i>!oq=_rSok|*Zyv-E?_KHx*Qq)JZ_9mEnlYe^!IjVzB zJvb*=JzpnKJzu{UtvW)}VMb}xkNx#;{u{^oB#6lCE)hce}mp+&%I)m7oC!lUpP|?K89TsN`~Rb{M2k4*!lH|K(p)J*;-R zQXIGzF|U{U*T4N|=Q@3#Dw++l!zB84pZ=ZXn&!|A|IQfjj(I-=fIc6}9K78;Nbb)M zkq#!&m<^3&qj|AsIHqGgJn+~j`9=A6fBe^f3;;|?$#O6)g!(M%kFD0JalvZaY9fHD(GmrVIi+!RvmH{hqW%s#&IuDBMM8iHk_hJPrVH5k zb$Q(@*zswPn&rsRe@uph^yiu{!((D7!?=+P-8FdYAa%LcXX5^w>n+p<9db?9yoY9t zr)GR3pb;q#&4?@{w}eJ&vTpxfz~ru+ngZhMg}(o$#9@Y%s9riIYm$_)YQerkxo>^I)fR2e_0>C<}&ah^`=6Dm<3(FH#`gweWwlWh7xdQ6C4 z^N^Rk30+y7cmMZtxgMk;Jb!MT>ZDzY49W9p^}a`|ag(&dB`2ZC*i)kfWwLp^4vsZO z@j0--xIB3R`UfJVL&OhPMnHGAf=pd|qrp0LDCtHn7ts%pTG><>kfP5iNx7!PCCS1Q zi|YYN>dZ$l2D{7|RL!xUCx;d|hV`h2vvvr%DI5o>{`7X_(LAX*Isod}^d;`pMN!B5 zA_ zymc1J3N!!n$G`leZ0PIHpGk}8OEQP15RE8yLnpCDbJo?URkCv%J19)!D-@$iX}JT` zWy$QwkM#2Lv*Ofm75}}Y+sn)G+*YI)A4q<>nL^qb5wG-u(zI@LdHR;V{qtWrXX%rf z$*G5(At6;;od5j&U;k0=Wu6ZjA9>d@7`i==CRN|-1RS#9L;bc_iyP&MGyWFy;kg{Q z%!jnihxO%UGPtOvDw;gCHK(+C^_XM@4LImNh>A=Dp{ixw=EHXj5Cg>A$#e$F2@-zk z*Ux|XyJRWW`b@>C{{x{79V>AlbaYG zYl~6HKE|xclDOoRS6V>MJww{LPFr)^E;wJ$^{;Q+2}auk!lRv7^?aR->iPPEnAJ(c zX%=g|DRmO_0={5L%eTK=HiUDDWHedz2JA=nP2|0IuCo+oW3aj|Bb1EPRF5+;ka{hj z%^;Q5wfrf76<(|Y)+lxteygKL$_5Qi(L%#W<-|SbLqbO9{cT|?qhY?u0x#= z*NrvWp@w;-G~>axd%4`d@2_#@o=&R}Ot3OO;6@MdH(;T5IaSej*hM`zps(Rt-pn91 z@%d1GZDZ1C@_i6=AfyEa`rAfYke3$bUA# zN;UKHlnzM^C<)f)z}K?_8uUxCg(SNTVTn;U(1dyJbiKs#^nDwr>veaDOO(V)&gj*1 zGd*7?P(5FNgjSW&Ii#|X1S!_h=JxYv%A`=q0^h-q27_`Fk3kLz@J2Ej=76ICTESAR zG|JY{Bze!OE#WpX@Ifa*h{rUOF#&ER{R&dg4S36ieQq!ho3yw4&V1|CZ{3`=7 z-Y#1Q^78aocekYH!E6DVH67su6!rx)fc3?|Gn3l7vh(*IR@q`T1EOK3r_qxT!0$DS z?Oi2;Z*Bw0Yl&oAB}n~wpHJ)fECZ|gGneZ%oYxW$LlD!xjHj(X@EeLGhis+|*CsXR zQ^DgMG%nd9`F?Hm@+=-$L7lU$*F^;+-8-=07YRv&yhvQ*}zh|H4agD2SEnJkaJ z{3HMKRzYgNxV2p0_K;mlAUJVw82Yprj$F{GbK;iHo->^@iOeDj_3)H zr5wz6v~(#cyhrqT&)4}nf$I5saP3dJo0k*`Xxdp+)~M|r>(9Sku<8n(t7(ffk__8jXN2eft(Ipu9y3NpUO{O@+Nd!&F+l*m)~kyZ@GUqgA+Jx92D4c zYjm~CfwEZ@G)tsg8i>VON1koR%gkm0srO5}{rKB0y)cHNn6Om`oM_7TG_abPb}#_N z8843&GW&Z?Q?q(h0#D_W)NzE=;RJNKrDHW&|Fb+jb!P14MS+rbtox0;<+)PiyRI%n z4b$OI;(87LDbl#CSVq{q#a%zM=Mfx?lq%yV@q^{05Mi?3Xz(u&3&<3?-6>z z6yN@-fLC{=1!TjM%;x^I8bwMf?K^zQ1$k3}qGl=K5NNaVyY}}b)f9M&(!4E&{Z}{8 z+Q6Ylz4#mW>eL-tN2PH-JoJ&F#`fMV2QRhD`Em!(TwMEFBzzaB3IZRh(@XpWP1hA$82(kfN;Njew22!byhp;}g z!AMA^p1!H)>lYZ+|LK4G_y5-y$5@y8nB2bjSpJ8%0;|$pMmi5s&|I#4>3i3BE(5rO z)a%o?MEA{meSTK;rOMMuGlyg)>jeRIEPE%8wY75$AlX34up=D*1x@6bDp<|TYN=X{5vZm2u7l*MNTr@8Kyij>y6vBh=n zL}su?;q0)^s24brhwuwHDh*xNzX~J0*7KWU;9rr3d+2u-0aBAQr@2d>xj_}I7U`-2 zR+sRe0scBHrh4Sw!PW%sh7HF*gL+W8b@jLVy`}r%K3*aC_w>P#Y~B8!+_wJT|Kr3r zUje9o^+CKp3GbAEKHdedKQjdzNbE!9oJ2+W4a8fo2I4)j_ z4VAUOao__h;jtzXKMx@G1O{?=Eh@lb*EagCEkeb0NVJ*yd|E47wGo>~;q!bupkR*O}NLwLj z+R->i!oUou2p*IW6&uXLUN%m4cC|Gz(vRY!_xb=-LnfrS~{sNQJILSfL-)^Np%K&W%k zu1U<$kujB#tb0tnGzqGF{uz|eZB_m-X|P$Gxs)D`11uIPg0P7^<~{PY%wkW^nkD=flmt4|wH6Pdn=$ck$cGESA#H=H6$$7(ub(MyBrl z_sJ9Ad~STRs0Ry|>-F-L2J!ata?5|p`}qg=|N9C9n8yitoBRo}6!6w%t>mPbSiGn{ z3~QD6?+y5wyJ6Q>e^_f)7qxw@NhbJZvzPRe+H;gf1X2_0<`&ln=?uhKrLKF(*gl@K zTW{MjfuXBOkE70AzxL>N+BKGjrJ<8bWG>IWN6;YFVFEq%D5I^qPkwFzQ3hwvKYQJ7 zKJNyBco%f+O(ykljp;#e5MxX|Aj%8cd?*^g4Wu%20WLKrOIv*N2C(Cg8pTn=EQ~6W znon)~_|I$eA6GOm6td6>vaC104_(Y#ExRF2!#Ph50>64vr8<$kYkx*vrw8VaHHy9& zlN!{l9*ss{wFn*rsXL7Q1_pUualK0=c&Tat*QN$wNbJMG-lNyu=H=!4R-;V)emhL4 zURZcN5{^)%?}J=VeDitn%_46=z5~GZ>3aPtgGlxDl?F49PadZ{UT^l0r&*(@r`>4l z4^3Sfks@bkldh^0Gk2pCBmjb90fa{mx13KY-oOFVUw!G~?E|D9TWFcEDYn#Rt07EG zVhdfWi0NuRUEPJA26K|I_8PeIQxt+ChP%YL7zz?m@ zTkv;z+S1#t!K*v~i{ttR)^KBMfdLW!`M974RYhf?%+-zY*9~wZ2IE1R)6q_9jzTqB zCf=~dG;9->Rclsn7vG2rsux}sh|f5f-XM-W;cE7YS{}kHfN)K9{{zUGG-UT7xdQMPlrG% z#~EDRTr2d$=lF7i)$@^2C$VV2Fn7!uZ4wNqppN0nIzBCuNfraY?zje_!H=sN4!Vy`Y8R!f?BLvC0 zyMPgfA5uBmd_gjT7 z-DW7$S*d;*59DmTNmzrIT(**XNAN%y!0%>KcWUry?t)<&5x3~R!@BMIq}WaTc7S1`%-@CzHmQ%yI$W56uov3 z%i|u~=+Sz6x#b#&`>Qm`eue_%@=(>9x;#E_`J59Mvv(GyVE{0sn<(w2T;=;-vryJq zrOE{2`(K;RXI-pEGdoh0To&H}GR*}SrzX`S0rc~+XIQg0HchrDD+-hbt1JS4z2Cjw zP(u>n8EP^x4M?Llwx!Qe?jH*1UyI{Z3MBD4&SPa642xUyId+hx*gQDG{>jMjkh6~D#;GXsk8o9k(5KJl;^Dn8y0Eilyb6Cvr$cXgM z^_ta%nCSkD|M-!b3Ro@+(HpDrH&0HP3b^S&T}SeKs5OD>je!!L!4~zgP(%@_ zn$^KTp473$&mPu*a~nUnP3HW_7SnQ^xp_bbmTr7fN%C>#70N+Tq5mQou6rEk4dT3XuBa zr?Z+-vIVJ!?{M4!_AYGdiElnLzPawvW_wM|M7lJM!(jAn<=a2qK`L#HQ!js4 zJ;x0!(yI3#l1^fby`v7cFxaum*osOIfZTk7#|c0AV3tWsgx z*B}2-4MebEcu*EmPO+4KY~>djq=H2`1Y26dl>t&Gl>-Y&Ok{ds=h!B_dq0QE9YoyM z?=o!b3lpA_la#ohEjb1VG(c(tCB+7Ffx(WZQWTC3vPb4|uuNOS6mM!I!=|%tz=e;O zs!!%RvJP-=wYpjN_457u23Ef_W_9u`0)gG?l21c{)IcXSq$#K64LjgjGw=5YV7;YH zx+*)Psl)q?Tu4QDW4c60t+`-uOMo1n|8Qu z=Ah7}nk~4+tr%C<@J8Ih%-4<}k}Pb}*W`@xn#({67{CAX`#%-u9Koc+>$SH#W2pzd zY)sV#N_Y+QB6{kLlNQ&>6tYZE_P3A|3K3CRMba~~nqI0G{8LqocyXSZrYTFRrnjYC zxBo5~#MQsAKc8i7Zx>0BYQbVE_i4BYrVPo-2g}D@iw%#U5vGQf-0_yqa|WsQd7H0m z1LK$CWVJP1IpC3koO}cH8l@ki?=&r?Y1OLg_=XP$Ggw{ki)gP=ED}aZ6#|fd-jM13+{}bE z_?-g*zbhk2L0PGQOiXE(Z=|gZAXQz>%Qa~S0V@w>i!XC|#AVqM(YGJ}up4Y^vf(T! zM3Z>|*5dA~bn|HNahP4mFoaz8SKc`&)-kqcC&Bvl2CE#L6hG1cc2yNi*$H8357|FXdO)q#j{eDN+~UWitFLlp+Ar z-QCmxo}9_Z!KqW{jyfMYllmNo->=Yk9^d;>fZlPidg7apjc*Qjz2!)wBjEIY;OSTB z@FS5&VQb#m;o;rW{oZy1C&AS=?+C2A%&bE!Xbi{c8Ir(f{d+L0SqHK(Y4!WSSSkIr z0;E1~n-GcGSPEM^umib|I!2kxW$E&=PFAp5>{c^~%HZO@#$YOxIzZ#lNu^qYhyaj4 zreQl^lx(l4g;g6hZ>}Q7dhvQvd$ULw42(@2rj*pX#~y>TKG!mU%+lTGMe!t8RTBV& zWK@x7%8gTXK9qESf7}&=i|K6?6I#ngVJGVGiV?)ObH}36P&3lL&J2(&y1q+{4{oJa<%?Yd=y)%-w@)uhf=O2-+@Esw&4 zf%Wv>c!L#ZR-cnw|J!V(**I+X1xYqe!9ORYL-%c8OI4Q#U?zv~Zm$#Hd~AHPJn|40 zTD_jUN$cirv;Cn8Qoq-9KZ-iS zC^@j3(P+M6R-8!@;hv<7b78JKRM$ymAc(Xa&!FT8@jWI1abQgz@-6%EcbN}`Sr<~$Hh9brTe!U*ak}AY^r26jp0fix5qm76N^>CMW2g4}P7Qo7&M>CWZ2E$vB)|l0&Y1ZWTfz&Y1VjAy! z+H$6Xz z7oi4L9qw&mV*WYZpFOlgq5Qu2k3}9zjo^{S+NqYRq^1Rq%tbFRdn(ff8Z)tF>7lXao_urBDr0$t2fP9L5aDNsLJoV3n2M^zp4@ zW^^%GsizY;OV8!~{j0BY-p_#xY z2_gKdN1GJ$C-#||mgfkkrO}C31W3(NB;DzbosM@=_NcacCJaR+B*V0%QfAtz)G#jv zymuH}ufYSUCaO53#)IS0iIEkf?vXtVbmQU~O%;nlEBL zJQaC6Z*>|qsjPA8aO4$yOpEv**+D)$NImh*N5(hHM<2|$9K`n;%#T)+>O!=j?Va!M z#I|8S)u>W-WWPt1G^+K|Qj`s>ZaS;q`^lj&sh4stFI8eja2m}&K8^ILYY*x&25?Oa z=oMQUW}gqhYP;`)N!=W$tO7$C3^oT7*x8GE&7u{HCAH_!PJqK@i`*Y3tH^_iIRt2H z=F^%{=wS7^=!AkdSb=r-b5O!JT%u$04m+dkySpMJALAoCfVa*EV$3R7@RB8mii$&( zph^+R8R16SnV6(99V7@qJHNQhSNP@R25x-0z+SO$co7Y(-V9hh22$yP?|L-kr!d

%si!Aa!t$ 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 HwZ8K|g~_}k literal 0 HcmV?d00001 diff --git a/资源文件/UI/kuang1.jpg b/资源文件/UI/kuang1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ab3779a85baf2737a019db25959537c6364475ea GIT binary patch literal 2527 zcma)6c~nzp7XR|H5HLa>Ymn`kARXcaw* z+YH1A7BiwnJC=@Z6%iDH0xlf2bzyJ;#f7TFIH;Kiiuy;LGxwaF^L_W;-|sHp@5Oe_ z)(NFKm%K6lca4}P?jZtJPpcx_hJhefR8=}_JCK*Huy-cUn8k8C}GR`QGYK#Ux z747uh2rBId+CSXYCy8S5|4vn@#uqR_t2d-7KKA>E#QO9+t%8xN&})o3nF39xjf1tk z7@b05(CE@Nnw-fkretdj8hy4#i?Gq>LjuJTnNmIOnKc0si+KrZy+NXuDH23{DoR3E zD&@RL5myw!fQlh0;3!T}nu#4>m zAYsusjD z#$Cz>hdSEa7<){KMaNc3ebZmhYHWkYHs|I)A2Y-}Oy+Y|FjxBBY=8S^q}M4ZZ>X`& zX_WAI;oJFHoAT1S#ao$cZ<|!SZ9hizzYG6Pdfj{~zNoO49)_aN?)R2dtYm5^dK(Z$ z9e!}=JcavotkJP>;KchY?K$BYzHs10%*E>boVDx!+&j~R8S}RgFCrJh ze#$wyIFvHFZ!d2a+`;#$#{@#k1=yR|9?x_6d(36Qib26xq9k`!5=)H?6Y=i$t#VdFAU3fxYof!$b_JJ4MJ_9lPI^)Dn-|UD*sp8OK(9 zM~+wTbf9^DnKD45XR;42!P#H&@#sMdRKHDbef7kz>2|x@<>pJij}ErdT!{TfYh&eA zPS?ViglTmigIzdZYUc$^2k2=Oil*GFD7C-pPLVEhegGGwh}p*pXX9GiJk6yGzE<|s z7ko>yrn}T4gU9-shHspFZGZEp{?ksAtLmyUQ=6~%bqg|nxx#94q` zK7eaW&6?g5%E}zX9=dbFynpj?`>Ljsd$|JB*3@>WYz@?!vZun$PNbyI;WV5sHmM7j zXmg>V%ps>mz5R5=w*_xCx0h6{i|K5H|-yX)JtZH_jI`nf3R@G<$AmkY{;-Vq%6%U(V9y6ACU>)WTr^sT<%zFh7Xb#8Fm>Z?ObjmH1nV$uysSz@V>q=8#vtEQFg}T z3#TQh*6|j1>jHXCMV!c7_)u1z?Y}J%Ux(W*489TwsMzW=#s2$tVjtCQYk<~sAC@l3 zBpV3Js>G`bj}CSFc27(*y4-iVFL~*%rPdio`majLYi14KPP z6>muzF7BlU755?~ZEQB)I(H}K?m#2q?V}wX17F^H@j9bg+@yR34fa1mSN*(>np_`} zesnb~lw)Q#LNonIK5^ew<(b8BS^+uXa6=+4&M4T6=_}3(r0-~`dnEjso))kmqjm?!@uZaW%0vv*9E-t<{8NRt>;DBx)0OT3 literal 0 HcmV?d00001 diff --git a/资源文件/UI/kuang2.jpg b/资源文件/UI/kuang2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d6b0f141601e4598dc3921617511b3079fe2729a GIT binary patch literal 1766 zcma)6eQXnD7=Nx`>$)=9^%m>K-0fzdOxNqRYuDD*b=$3M$*N_}u!u3~t_Q27cjbCx z9SIQ^19L%vKtiHH*_;L;OY{!{$P6g3h!}O4fCD7qLq5cz!C?Z3^}X&>GYn61@4fdt z&+qqqyw7{-AJZ4XT%U@r0BCG111-!*`d2VA9c-)%Fi;_N6+rr;(%LRb2`@$QNozPF zv~gBeh*PO>f}*W93aYA8i7*@EB%+O58RdQCZ-)+(L^R?fmpOyBV4{v|k2b6oxfj+x z*TSxiv7QK7{VY+H@}}a6I46aPRD2bm^rn1dhTMzxvYH}^jEfZWku`EuqBR&I>I9J^ zoK{ykOINswN{^LxRoEP^rwO}__E0uAMLWuEwAbeHIxC4uAyG6jvclWU1SVslFCRHs zRA*+q!i{^u95MPh{PI=M!dB)cfHf? zu)6|uB~8}{YHJ*HO>JGR!{wqGCvBU;G6LHX=Xhxf8=1j69*UKxA)Y{y8BUC@;UWQ1 zh!dHrz0o;x@i1XPpQxV$=m74MIY0%&+%yB zMKsyzTacTXSBM-zHwa6ggEv5ZZa(>EG%45JS|vOR@OZIJhQ=IF330L7fc%-b(1~PpMEjYY;vgZ(wY)F&-h;` zpjc-?uf$Mbr4g#(Uhw|t*tMRX-lk;_MEca#r|#Wqe{1NgPbOY8)vl90W7?aG_Pv+n-s~CpX33qB zf(@E$wX>-?&{HD!Oa~SjQu5R#+j~G+6{0Eb(YZ zv8Z&=GIm-IKpiVpDz#HvB|0dMy-=)Dk7;eEI#{c9luprU(|;oYrz4&I^JjM7```Dy z@4f$R0{wxTP;7QJwE}|X%t?j>(C7->g(Q|rqI@+3LtNm_fS|xljXs4>$?pEPSOa*1ktajUpa*{zy$WqE>l;8inOO8?wqr6yW#jNfuvW%Kt;~@)c z@`{L>aw6R!pE(1~s5VqP-AAHHN3Furw8}QDC?MOEu{9=U}P;w`jGSR27h3y3#|CAUuHuyA4?$ z($3JHBATuUb#Zcpt2R($Yr)6l8^$`u)}kI0s{&$F?A<rj)uO*3K3p`j+n5^%ndJ^$pXty`&?wCG{txt*V+2hX*4yg{3~bgSm* zt^93Q+Ve_3oIy^@n!DntF&NnYAZB{T7dt$Q6oa!C)H$vapA8=9t^3KosGiz4p18Z9 z=jFVkJ%*v}5j;~Og7|Z}{#@jg6xuzxd42imzbIm{`1TL&Iq!D7xgt4^+SL3c=JoS^ zoe#b_nTz;Sf;-oYNo6T!EP6`*fFQM2e|d+lBWlg#OJz@DizEB2*wLixp(J>wKgHCM zxe@7>LPw-92DXq}@n>CoN_ok|CqUO9SYJbfXyW-QHp`(0^}nAHPC@*MKE27dcKNi# zX4uypzHX|ieOJ``ogM8Pz4yOs;A4H;>kk2lE(rPNBo+N8xCtOAB9wyz9f_Yj>6K6| z>uV+yt9QpvXu7xZ=k5EcpJQ&;%S_|p<+99hpDi3@@Y!IWEplrp$K{q2Cq!EoCLehy zxt9zOwy$gN`Hp}JB48}@R3XU1&E<9rEiFX%tYg9AYc7>7d4#3)_vPlEt{nurT1!q= zn9w3PX_KH1#A$_VfX_) zhUc>-EbHD+13>Hm!HRmhjcRD#$^s0Q+J5=+_&tTt4fr_Hh`O4JO)lRJnS)AAS?&h|b-ZtMy+dzAHat@PpTo-vU`M6|B(x!FVFG}0O zOBRcJvOeu!zjNR<$CXz<*!NQB^;w&D7n?q6($8*_o7hZ#eday^XjyE+te(2FwjJG? z-e1unY@yXLbg*QxwdG45s6uaQ=81v&`euP3d>yhS08QQ{>QHPfZLO3nwM9`5YVN$3 z78yP~JaGTX3)z3Kne_1ue_5w&)t6Q9-roFcitGH%=6MxeNx-RPod-L$$H3zN6MP)( zEMl!a7Yf+O_1W_(K6S@Uid2k}9O(MC<=C>OA7^I$ma~D%CSn$37Y|O`+5-P#i|7@A UEr0|90T1$-=C4H%PT>200JY=Wr~m)} literal 0 HcmV?d00001 diff --git a/资源文件/UI/lun.png b/资源文件/UI/lun.png new file mode 100644 index 0000000000000000000000000000000000000000..e68953419708abf0c948282e2eaa7de2e5d25288 GIT binary patch literal 119331 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 Gh5a8Cb+JAG literal 0 HcmV?d00001 diff --git a/资源文件/UI/over_Logo.png b/资源文件/UI/over_Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1f0e960b82600e85f9fd8a84510b95464a9ba2cc GIT binary patch literal 38938 zcmaI7b9|)1(=R%)ZBK05nAjWJ+}QTU$tKy2ooukNZQJ(7wte$^&w1Z-|2X%~A2a>* zr>eTTyPoQ*Z}mhfD@q~3woJPzA000O|Yc(xbEd_Z#QwKXH|tb8n7e4O0C|NSBR8qL|vf=@+U@_&!@ z^(07UonT?I{i-OU`%ih)4lhNLV{J$lLo4c4g zTRXa1JJ`T-CH3d7z{}F5N^1qkqYr&X3jUAa;nOOcarT->WQ275R zwX^#lY8O`(^Z%po|5dPynwO(Fvx>QkgPXJI*Tz|p|7R#iK9IAyv8#i#nuCMwf3Kpl zm4mB;i8C*Z<}<`#-##|DU}7u?9QG zuaU*govq!?%_N;2?129@Yd-7$i!L0zEW99gNy#sH?EiON{ui&=|3#Po;^kmr`Tyi) z{!)hdKYRQC+Ux)B`ZA#ZH2=qPzaIX__Ra0T4Bq+6vU!P+e*yrB(K6zqYM!fS9SE+3 zLta!bnr>47VD2MCyqTb=OrtGc;#&m9usb1T{<%PV0y=euTYpB|BhO>RBUUyBosvb$ z=5PI*Gvi6BypGw;-#>12ob1J@e;NkAB{DqG%Kb3!U=Tr(!vu>YqeTY>rB#;da&8FT zdbp`8O}S1O0TgrC!C}GX1l0rHKOX}=qZ!m8@2Wl)y3!2_Mm}-$Ta~CUH@aRlKTizb z%K{dd0%Gy@-DB&IcGx33!3K;l+gJ%H5`9OUK4z^>&Wi;4MAeAZA!7N2r(1U=y5B3J! z$(YI~8MI)y`IHo!bOui^SNK2?%&SOEfEy^=&V7w)j!PgRX>l%U!X7KeedB{4CgNjs z3-jgG=wAS5-p8_5spbj*o%OdVgf^8?M64H92TF)*X9|;*`MH;GtoAHYb0wiR!e--# zpuuIQn471>jTFO;=9zbo(KCR^MC-{x-VLzH%xV^(-;n{_q8mt(I|&D zmmgAomwCF$$=El;gWc%win4ee@<7(OIU=o2{2&uU?AH`fT9Lw;JKTz0>2`$0F*;Q- z4SiNV9#8#>k8UEXn?`+II}@I`3502)AQ$q^a?(w}b8rkX_U51_<7E#!7aI%iZB!2d z6||!?r@Q5Jnb4Je;O~@?L$BmlZlUmO!$85a;dH=I`PM?{*SnxfSESdCu0jXmS2znqas-n`UDbjigYnf`sb**w$G2k1k@N zOEx7i(GoO3d!LoKK!qGVq8(}2Y9BKEl+Y>gz#OiXUpYpb@eWbK?@&F$h8plK{?MealZ<&umDrXY&Jk%b(j^ z>D~M_2ODDKW=!OWHIUuEzk}WqvP1r(+`>yUJ|!BdIW9=-O}a zt*G1b=qe}`a=A|9cCjT>gFEv1bJ=(Wlb=DI!sE#%*&f61eX$FExSm*pIO^^xVt)6t z@9z*hGa>~HW&9mE(5vz-%_!L5z91K;6M5v#Ubl@#mpY2!7frNT^*&uC2{h}fnu#%* zAC?Z2Ylt*Z44TSdR5K|4rUD(<3IBl2SH$+5&MjtC5_x^lchY&2jnR!9GE|_~19F?D zfjS91$W!B_l;w;g$EIMgdLPR=TXEKahRbQ2FIAf-u4{qI5$pmU4ZLa{9~S3#mEm@q zs6$xx=8B75=Di^V?5KA>p>Xn!G9FS>@7KwHpUOXsOY0>rhp>V7Bk!`PRI7n~+`3N` z0QXRSSf;)i0}@c~^fLkt4fY47jY$s`q?~cXOH;_b^dk3aOuUji*YB7$5y_ZTtast< zync{UnH*D~UJIVd7=5$_fIJBdD|=*)^+F%1=RKEa#|r>1Of8emL(K5UckIQMMN4I= z_Y>#c`$Rh*O2SAJQrD?E*@@Ax>FBjA@=uUIp3Nc9IqXx*f+W57cW+L&pHP4@f~pF@ zmlPlKU=X@7vh7vhnlql%$Buizel{b%vL2Yr(+VW|E@%>}wq|D;pVmu zk7VR%Uu(dxF`zAg#U>WSQbg}cn z9{@ObFnXeQP$z!X{0w%5R35v$03=^IEYD1PgdhN-z2Y{iXJ;Tas6^V4Z(;yQ7TA!y zraGRxs_Sk3T(v}F2?{#UKFn6d=VMlJ4wcB`gdJ_8I0Uae^nU;P)&tgl$Lj|rlA4jq z&9#{SHDDCoeWlakH9W3VT&)zMs63j-TU48l1d` z<>w?N)WpQP5?Y{+2OM4mBM(=5BR?Z{K^pt-0y$n7UebF<7)_xaD{xY_t2!Ti#NP$M zQ{Qdw!Sb^a)TbgVd3nwHT(8%vzl~-u@2U%ZUjAXPCgp>1qOVI7crY&r;O#}fV2u;N zKqs`14%9=Es=i@iTE zYg&)=W-bp%M9<&q*_ZoI029c4)-pNXOPrASxZHM*Qk40b-OA2a>GQh+v3!M{Bl|+o z>fo)W1HF4OpYl4{Ft2L+UFCal=4W~j0%GnrQq3tTth-V#QR0rSEpry=j z38yFbs@i~NM%S!dSnHGgQvOQ{Cga@_kd!NES9(H z*NgN|jTCUJ#zn1|lw{UboL{#BiwXG27=C~UAfJb@9W=7X$yCs~vNf}Jk$ z?{dD?9~{Pi4O=iXSzs)o$xcr2q;J#7$jjT?_{!y*)ImGi0aNcypRu_q?clN5j*zT8 z4Kj43(Vn?1(SI)#Lc)c+WiLM|Ql%94D=ZpgDef8`W2P|dRY-EDBGM@wcq--fV{8nu8$Qrlk#I|%*Ivg^Q7V<0G)tIa!ysd-Z* zVR@*6)c9eh=(R4_asWVZCN|!mSj!9)H|Ktmqf>{akbWaf4Y%fjh@9BD*4}PnGtu5z z0#ZorAc;7uVGuiDbj4Yt`f`ipR|M4{1s;28U_PA^WQjpLKe$37gZ=6_VHrysPB^14 z?hWgnPwZe?BK27w5m1G~jC*%5xIYa*7;$7kz8irj~1nNch)DOQ<*WfM*&sOqDo{ z8!W>g%oH*n4m7smr1$+joIg4I;clw*l0rbaw*444HNfVb6=guZAQ#+^0Z$=2lkM`S z%WzdO<*>>1L;KC^LjRW9CgRMKy z5{#mN|5SzhZ&9|bTdvmczSVzVnveT`4DM}6s#&J{E0Bg8aIyz8Pnau~zrT;3;4fbC zwp8_6LggSKqAKlZLQo_h>aFM0T3*aoC%P0z9cT#>w6Xn&75%vc4dFR2oM{j_M>{nm zK4O8iJg5+JDvuDPx_dz!$>4O!c&#NQ@SOh(3H4R;)VAl`YtKgnzZ|(b+)Snr{RcDW z^J0*UvA4o<*6@w&mFM!5>y{?)H{MH~=e8l=l8Xb86- zF^x-NbQBMeT<)TMZs^XCcWO0GGYD{^1&@p__l+i}N}w%13DKb#ti!OiI||`i2EFx$ zi$4k}g#5iH)-7^kBYTD5dtM)umHiuPD@=<&y4zF%MYm0jMP7NAOeZ^Ybba(CuM`_x__%bbZhWwhP_da5q zVIcaI)Bzy6K>EAL=PjwK)bG8?b?cD+u%d*W$@|U3OI1i??N|uF!CW7e0}}Bj)G-OW z^Zvcy<{8Q5yDOk2=5b_7`1>S`Oq9&=^JSxy+pYq}#Hsk?7VoFJ6t4JOUL;Zv>UQ`b z8I=etxTR!O-OOqEkz3J2uW^xatjw9kW+dPi5ro0>mG1x8fh+cGm=Z$uv!u(e3GDk& z@8;3XFriPoD>d|(B$gd;jDtpIRn>#K1wPDYPR3h5V8gSg9SE$wybL$Uws#B2&`b(e zO2Js&_f!tHM zGo|j-u|ylen?qI_W?4oc<|Bc_a#`*;Fl%qIfrjI!SK7M!YX z3Vm9-taS?r{z{anb7tl3xeJaIRd^GJ#4b-O$Exq6p&k!D_D_Eo zGwgnqHNZFUdcRdc)7;*fmt{bH35_{~d7J~q+kOS_qFpL9`^-_-qe772d<4;?(BcB@YKUnOWv=P)!eN zHW$?cievjMasc_27t>-Lkmt)y$uh*4z)5>ycS|Vs>u|`L;i_%_yIsxf*UE-T&_nTD z2zWLH97mvW;_tRS4o|hj`Z)N5BSNV|=Pu9HmL7{+4RDG71i_MdKQgSoFqLI~;(^=0 zcyfV75(bI?b~$4GJa6mxr|Z#lXtofofA^C`2=_Kw*A(NHEn?N!IeNa}`b|yfX-WNu z6+9#PiM#puN?p7Qiir0fiG^yY;j@~qt*G*c2cDfb+t59Sh>13Bi&6y))i>cxJ{#ry z9#ARCT6Npb9|Ymaj;1Lyf#@o~I4}Tot&_h2Bz9PGFK zH4Dt8l4m9}QqchVeTju5IFl8WFRfBj_Z6=|^KR!~GtUU2a2^GEGgWB5pJf#c&Mrwf zr`Dzk-jsny3Wu4ACX9&Gz(z=jlv3|6SP(=6d9fW_4CPdX3;zM5z#c;XAuLRFge5!z zh|;oT4S6r|tIBi}wRl9k9wmYrrUZ|r5yu*5eAOXdIXx8VFM?;*tZktf*3Pjg)D=QV zGY-wZemKpIir9D3wCR4!Neg>JYSV=Zr-G=W_rYKf#FM`_u)(Gvi?^j~Ev*Z0K(!8P z7h=bKh3deH2oE%}1@NX?TAm3QzT=;m3^b;n2hC$Sw zSy`0_x&0qO20}#!59hIZS8Mq5hR@%_S>zx8rYYvYL;5Y9b7KbE zomxHx|AOo&q&Kxs@U`ANI-s%nH44P~ZT^6t0BZ1V@z)mUa94F``L{KN{B%!46A+bL z2q5J)f~lfgmdGy|EPk0~M&&t(PIkZyPYXO&<|J=*nV>eufSv2dvSJ`GmOps?`E5xG za{5(dM_fO)}n%&xGZa_=#XO*%a zkUUejcia_8KaYPHVZcg~ShXy$*T1(A^?r&vt?S?Se@o&w;<+6aIeMu1R*j?*sC4Dl=fZRF4#RwEn_H!cwkDmEy zaY`2EMl|;QhD|G2kycz#lWmbaN;H!i>QO8n;ZedG_XQ8@2(kWETL$9+`|*mwYaw7E z4fL+!CqyYtA**3Yx-}0EiLPlFE_q{x=oQ>zVnB_W3dOKUv_YYzw=iXEJd?Q()Oj@Y zvu{}hjMV3qT2DZASmk_&S;UvtZyl&QBQY<0JdfA<&ic#PPp^7YD8{l}Ne(d6h#Jb& zZvx8_t^uZzKst@AR4T)TCMBsyX+EZq6=p^N_kPvj);w*=g7@banCsE*#?Gir@FOMq zLjyEs9d31Xg~C<0g=6w>6?)l~#XYYbzd%IC)YF~KH4BlB@9?|Bu-j9y;eeab7HR7} zA@^2#W!M!wGJ}n=x5p254){i2SFS~81T+)CYU;>Cq*kUp)5y1l zK@&cc#_B(sP`B$(irFNHe@7Wt;}D7drat6s#a&=Q%-|C4Bob(Pi?D4M_`-&SwS zYM`uBn!7b6E|kQuml0S%;Yy<%D`6P@G~^2c0yiMosI}fI7M}Dr%#varK|e{MSDK*| z{Wg*apOXTXXZfO=*|ycY7_v@JJ;ag6szdk4;>TGX(o>F_nx`vk@;506sMTlhKpq{k z0~{m^sn) zragf5>$JXQQUww>)qz#Lv{;NAzaZJvz5rQ11y!-hW#TJBi05(^O=zXD2aVt3WFRd_ zxl#vt;E#NT#pW!d-8#W2TDs98yM^j>uIT zkO_tv!T&SMh>EUJ@X{t%;|NNvb3Jj4=%Y};^^qiZ6U_i(9OGxTzNy(QqEqDr0IBnn zsn_tyrt4)CG~RVA`~}LhT5&vZAiWQsF=;-YsK@`UfB=&N+5W{U^0kca<04|^BXAQg zy1Z+lF#067uC7Y_w=En@>C~CB&)lay*JCW0qFM--xYJL_|a8f+4Ss{i#rZ`ySX|4n4pC zhpwsbUt!JdzfaQ1FnkpfY~WAw<#9k$6;t8d2?B`YB`O>Bhc8}oihksllfgVYJ3>Wi z8+vOF7(nhqcbP!X-56gxRmYi(?NGtyjp&HpK zKOAI0J_ePN7GyNY0^M5^x1S1Y9E%!jT%|@))O5LN>H5CHb#>1bwywC zE1lF!$Zo#$m_lieLmKb+2!#cn?3eqI2uP2BOiW>9`W5)h4eRs9P2=-j^kN0`u`=sd zpcC;5!+WTm7hohvpa_k-M~uF z3bl`hS7<@H;J71kHBCY#_9RTh%rXGW<{+s&#ztiuDca@N3KPJL&KSic!X&7V93 zk~xBfNyJ*R@c%W^m{a`@BM%b}r-Xo);g0M(0*hQ`_{w>_p@c8g$6_8Q;e~ja9qeiq zxB7z)GV*g8V!^8`VL?_Lfib`#`jxPCmhiE1{dDt*a6`JkEHt(hh~ulrxpJY;PQQmo zL$tqnA1BIFygFDOt-R?SE*fJtHHdkne(SVQPL1`P?Cvf7P(=(GxpQ=GaF2ja@v+0i z(iGYQ2`l%@s|*<(4a35x$Vl&)lsUdNVq9LXnrEVeTS>~6Wln_50^RO8BCFli*{C|m zOYcrppz&MwS=x~x%#2_ezEOQe3-Ky5WzV+XthL&^#G1dNx?Mm@{b3u@10kZK{P+Lt z_Iz1ZtAgkuTBRC_bgv<^aRBv}MWE<$nTI#A~@ZYSKT0bPf7ph{b zzd%fw*Yfo{-1-}bA7Tx%BH!4j8FquAp{|<`ELN5WOt% zeW43Y(($lg3t}mKc(mPFT(&Xw+l(cWSMj1mCf_^tCPlrC3l5z*)8wPAD8X+?@LBKR zSEETEtLQ)6OA2q)WHjIcf_)vXqHP%gZ%q$3cU!Gep5SM1(XcfswDK?`;9EIW2<$nS z*la}zNFJDQ<3*kAk7>{dC(l3Hx0hs8WD>$5Zu#vY5&kQo#3U2lBU1UxB`IbO5y98| z_xulAvj6_4?)eVcDQ*Qz{o7eqRsyAo^ADEcnugQq$0=0gY74>sM{b{j5~b zn+b|ZJ(;-IN`!EkO9Z1}lhzdDvgu#LKs2FniSNN*?am_!?jtF2vTL#Q4=(}BuwYOe z{vN(5gCLB<3mc+%>}+~8kFiAn=F|+5-x+!I>A6!M|1637x#@^a3HmPNZ!;BxXo66=no*@Synvw9LMR|v}}}47=3Z0VvHdi9s7%Ef!gAM zh0MHLT7$b>&(0~5!>-3Xs2rx-39ojlF+^D%HJID+El2o!dLB_tM3>^*sIYtD^$cP| z#ic3ZxPdQ`&MibYA=5-3aHrrp7j(!0aLIt*?C&1jDqjA&O4P6AB=wYcZs7KvoZfD; zY=ln4xfOuSzgyH+LYSsFrXKw>EtWIJ1=&<8*7K{xzKEgV@W3yXp>xR+bshuYFJ{%8|U5q-GB>nAiq!20`UR*qG* z<%={9>%G$62m_iPR)AYoqnPi`PMCI_vSt2QFC{y<7MvwtA9(W+f}99%^6)jVSN`BM zc{*#H&OU^SyKt>W_OeUO29#GNoX05y67Y2cqYxb(ULcGU8q$%kOATAu%g|FIFq&SH zref=675E`}Em>Fp&{3@MAF-K(g@00LqzJw>l>34@LKR|rG+W69!s+cKf#`78QRlH~ zTNYTqPe-h$z@vI^u<8ZzBlf=kCCw7B+Hrl;me#n%zkBsI z`$B>p4EJ{x2+JCvQQOFxiwZXIMGAcL9D|~A4;AqI&m`cZLH-Z%TG_nUfnN}{E`0JR zwFucZ^Tl1T5%*VMj9@f{v0GMeD0!fq1^E>PRBTvNin%T#jVZS?X)|OMHvGD67;jAp z%O6iRa#_|6g1FGs9YwqLvw)aTMerAJ0 zF71&BSaDYRUbbpr2~S!oY)UoFqPtm?bfO1pO2_yVcfsx)9OoM43z3nwrerVUhM=Km zh_l2*I=?%6drKF+0g_%C#~AD7xsx33=E3zKBBBg_N=9 z*F~`~Lju#noL5K+`nwn}#4KYc`!QWszCEa|xEtm+COM}iW%-UjZIxnjrI08GCnak8L4xf^)uWLwlqgjlHnj@L;bq?{}&mqQ~`Ex&R zJuxlDftBT;K&$U~W*Lyize#MbEfj z?Pl-FUuu=)iGnr7v4>HqN2MnD3Nfvdkfia;>}Pqg4L{Rol-|ENEwTh1;*j$0l!G6i zJl*g84Jir`j!1x6CPiMJmB={T^*YP`2px1vY1F5Ll(w7DS9s1! zfD!7b8(u{hs*2L&s+m2|mrgTR&^Y0Av|@<3DK&iV!v8lt^9@0F{a>j=`PmXih*gw` zvb2=z6)!8)oDr)zDOu%r@sh1uC>48v{B+1ogR&+KPGQ;=y%TvN6bZNG>C0} zvtrZ-BWQXA;nI&8GtO9wp!gcn=#pI*6Il65C{9G^jc#Roc4(f;bm`fc@6u!;`mCw2 zu+Lf+DwVph8u{g!&d)wz*-ao!C|PiVQq8I|zCwx~ja7^AqU@0}f48!EMhqq$iKhi- zB=%4JHb`En%K%*Z%4{Q4@@I(Zy3&v@JZP#kI8*Ui3Yv1t$WNU$BMkFsV)yz?2W*5^ z!226kxNDxAeo>@VlhtsJ=|>S!uz@!$eoGk7S)6FQfus5seb>#@4u=uy!l7VEg#tHT z|8it>khNB>_+%=SQ~7d69f_jjWrdRm7z0Fyia^*@&}8*mX0qhu<0^OrQAd^FqjDw2 zc9r}cn8~aUw%MM6M(cAG`;YMzf2jR{-_+$X(JB|VNZpun}D<}N<)C%vpyFR_dl zOKp4yCX8@~o?Sy-H6_b!)o8^)>2i7Rh2t)x!kiVl;g*+qIL4}^a;{U82|vo6Bd;GM ztE+H=Xn3R;b@*6(Z)52efAVi*mzL+xg#45Co@bMVOb`k(AYBD zQ`(=ebQG_fCU~gGIO>>B{JPoPA!b9dVFdFqe37w#jF2sd19IrpzVLV9SJDz?Y<=No zH8w-HTgCmf+_xS(-i{tEv{PbZsa`#3$G=le1LNDdIKGxH^rS+flTV0`Ta8NRagY&E zImxl5Z{yimu0wfB;cWs;qB}wt`u9HTKDXr7M$7S`!~hVVNI4#GG~3_9lIqSAp~f+& z!TPCnrmsjwnum|&3!M0fPu$&teEu@&_ZU}|PZjp*>#d<@bbk)6QCMhjx%_k75(R1QFTkXA^{af=_l(IhW- zp>YDCQT5RtuT9quM~P~)w7Gt0s@*mWVJ`z}6s({k1dmxfv&V3{ncS0{>EvRFC)ZVJ zxJ>Fci>vK_jy+}ie~!Zloo#7Xq36#RWm9!{4pX~?6RpQ8?PlC(Y-!qS0HdA1UD zr9NhKCS^g$WCl5B{dJ*!_a|QNRPoJ4`-_f)ZU@yuO4+qTo1#zj0jL26WY`Y(^oFTM zAN|OpTUTteDA%3+e&*LcVb2{q_X^KT6FIw^oNX;0_Y5XT3cTS#)&Xy$mOky5#zT{- zLX0J|5`nl7y|@M6%=p0zA8CCW|8483_0Mpmy1bTR2c|Cc%D@C^11hm{Y1le-dWySR zYv)uS7Y`@$p;yo&5+2gPj@>rHKeQz_CD;S4R8sfD9-Uq1wG-nIPv%!@srIyv_mx~3 zuY5(1L5*Skl8!X7Ly%~ELLBWUN4YBsxXfJL>T>#mP8%@yf z-_NcCSMTdSZSb^R$OrMxMZeE9DS0StTs7BOB3dV42?652dK!-(hp^6`_S>Rais40Z zmqFuN9)VE6Ux+N!>0oVyBCJ!Z_b#aHT$PhR75{3H4`VNARyA*Qo4V@qY!DiK8`$A# z9=bb0uZg#!;K-^gD&Imcm?lF8UYu8kVVP$+E zn7dVYXH90Og?Oc7rkwsJ074fU)&vz>h)7K}^cg16Fks3ckXEy8#@t5>Ti)Th{;?|^ zU)mz~H~2cfF3F5)S{jZZ`Z00m`o?ayqBB-em~;3;ySHVkHF+ZujS8rj7sV*V2{-n> z3qm6H=l0B3f<0E$QnudIAHKCT#(F8gm=jnHG1`4+9<{70JUbR#f!4uV&}&Y4zRa9m z%xG4R*+|E za2p_;@l?7wM%-uGktsyhlGrB6P1loyp;c{NXckkYeyZ~4yCHCFXxDiqc4eO5{qC_o z=rC>ajl+;88Egq_^aVk}3sEl)EtX#ha`5Md089WDMqu({rkJLIJS2SZ=fuja!Di9v zqVP4mpwzqWKB_C1Q!_;9=BK(NKhrfhP#bu}=>?nHnG{m3=IU9%5uBTOAW`_X2$gX4<(k&WbJ71ozsr#B zb@%8N)+}{&dL=uA@a9ppKgOwvsePzDl51${C?oc+CINNb4BOnv%#1!v6F|h^>)hTn zGp6gPU(kC@@Q9Zwv+8Jo;Ult`IyqpuKCh}0)K`n+>mtW9%6h4ub`|WfG0|b;?%3+I zNKp)_)@g-ptvKVGcPdzp6I;20KZ-V`1iWqE|%Z?IrukT*vJQmjl$HKIFx|K+n}AB|Y=&pNTZ zQ`Aeu=;fTVsVhq{4jIBzzEIB6vb(;OoN(0*G_=TMNtV1-3MLwISBvxX;lXJ#%c$8o{EmcRmVb#ueXw=;*Yg6q%O<6J5=}V~;dZFeS)d|FB`tM@J zG0mOAKWeEdd3-Ob6#i8g9UXJN7B~q)9w!SdPY>3GTZc%v!lUkL;4U{WYw`JEyNo;A z!+z%6e)DmvJT9U73DDA7e`5DcJ--XST&L>UW+YYiUA4$HmC)b>i2DgyRe^~c-(Emv za_UbnQ=~FLX&_Egh@MsuOn#*`kv&$6#rn!Z#RtAP_`hk9F5Q`*UZ@Vb95nSMSAs?g zHm?qOI$W6_D>GQXoC<`^-&6Y;(G8DPu>Rb;=rm3+eC2t!s1h*O!S#zBDajGq;$0;% zHh61q(+u|dpjt~I`Tm-%-+V5Ld^D;m#Kq)?@gQdt6;246lMPARV?(~WBYa?G+1O$u z_&!PF?t2bST{u-yf&CkP)PSdQH#k|Oqyvr_U6=)GooRlx_M(gX2>IUtX3^mZal&Wj zn-M97?kjWY$AVstZV``T{*ZPT}PUiYdd7)3`YZP1$jIc#vKaKs!Gm= zWnW+ccU7D+*QuGj1y6aUxbQWbc3aOI2GN^vw6h7 zy%XQ1VWN9Qc2c`dGT`Xsw=#vKoz2(vm6>2 zO?}mm_WlWQWMQ>_cc)Hz96nCkx?etp`MNVjpCd>67O=Oe`@t$p6Ne%-(5r0xfQky- zwHKmh^{RgX!&VTYpF#Gde(1il0aQ3vEklIu?~aq(@-c+ZHn|dT6zt{mKlt(u!#c zp`1uke(rCquQi9vU2BU@ep)pza(b1U1@=)Xj^PZvoW)A;T}$d5-Q&n8YTzB7n8)h& zThn0%iGwx9bKq&w2{GL@lYK`H6hxWfDy+zMkVB+Jk+q2AA?w*egTp3CF}jwA!)E?% zbiISia3V4TO}u*vmVnaY-1dr?-+|go{kC7@z6{t;A{#KpUnUNv?4()s>|B+r;hbb3 z7POrFhxgc908K#1%6jp!7E4d2!}1T#Hxom{`bzFQ&E$$P z{01$ENdK#QVTf-XI(*r>P`rn@vyYwbBt=2$;#@IPDi5yTTJTwY6?Nq@)Pkb=@f@sv zvV%in2NZ-z1iB(~Qx(fY2~wa$FHeceQ}^V*_2I0g#^gGqYzY+xVL~5kz#kr>jd0+SUM~^~t!pu@dE#2hR_<>V(5c0G=qW}on!J`(}ZccjCaHr!^sz*auE; zR#|A9C(4=+{uBOJ-y(OW=Hi@*&11%i9j9o{4sy3ik`S#WNr*DD+()yv<5u&4T@;JPQu^iz9t3I?g3i^s|+AEUfxM6hMd%>%j&H~ z9Peo-DOI{kk4U^3Avp5!F*6^}*`2ziES!>?RpA8Eaqbz4=$|DExY>mhZDPT~x0P6N z!p+s}CBHr7k|S=mPr)`I(FaS1G|I3k5(Q-8BZLmM>QgC|5BimQ+UK0d$mOR-I{45wNY)HVKO_I01r00|qr^y2cG zu*ZAQ=)j$k`tN;{lA64xZ0V34YkJgaQ~oPW+frWT=k-3Z+4bp@#wp|40h!h_3YEDQ&Aa=9w>%&}i2 zH0pIxlEA~V+3DGKn04&^@bDphH}T?+sMuER=say{?sdKUV=R9+S^S*|t-xz`r&t9@ z>2Ml1BP)CfiglmK{sKZjnsu5ruL$1GEoiG4r#;?8cZz@^DH%gf_`gw_oqUsT z9<~^J@_rP_OmSI8-}GxD0I@9C*+V+9q79J2PUx?i99|2z=J)wrf`)$^ae@sRl_CaU z_Tu)kl?~nePj=%4#5@M0GYxJ8QeS6_bm(aXU0TH5!M&P!P!B^gT#<-N@cBoL zjF6G|%#SsMp9X1e?bjLIqQYG@p?;O%)4b`VGjE<8w8Ul_JexsFb3EKozA3NyCD$=C z_3VtGU|a`(&$*Qv4_GSh&L&uagLc|bW6g-~fY}irtFQWw%+Pga2QBt?@=n$!bHvyP zPm}mtBg?S{J2+c-F7sSZeLn(>44KkWy{kxUXghsrsd3F&Ax}uS&C-m-kkZP@IU489 zsF+}&s8o(*v#*2RLk@}`V&v@`v`kSmwR2Y@gM@Rz{xLpSzK|sS0Ebv>wd|!}6j5P% z=gwV}<^EC%PiHEU)WM=#ia z{G`b?DOC*EY30G3?*=CKA_=cZ_UT5h7D@q+ByN9}x3UI^deKk5#ascPru}K!b;EFR z7~%;fjgu0+tG`ZWzqr>&g$G~TtvNq0`u%Y1Xkj^)3&)8;+KeQd!B3@gKv3~V=S0XU+l*vNm)w=FxmO#oN!pD1LOn$$C zm|WUl!C)rj32o5GB%5=sop5flTBsiHt_7-e@rW)=%6_c&tUgqsPQ_igv}D$=%;rzyBM5> zOh<2lCL?H+`fQxTim)nAnPrv^J8tl@UGY9eX3lmp1o_{N@RODJXLz5Py=$&Fy^{A@ zzdfuQqWRx-v3;HgIPmg+&zGOVwWPFEVPZ9!6E%zn+k{NLwNNnamG>iM<41(OX{Z1jFoV{~2WB#F~G0-0Q8(TMzYOjEo^fg4N&QC(NNG{?qn*EJcD* z?ecd{x->Uvv?jH=vKAZL;yQ9U=px>ZGh)T6)Yyv_$Zd+MM!4KLK^Qbmz6EYYc=NRk z$$yFHiSN*)Gw2{013+1bxFyzjux&RW0dyIflEC^Ab@bEubZtq!JuH&vTKDF(xS~DK z6;tPT=;WBW@{3pCo}O7I^KiESy|z;LaC(+(x4=%7_Ey7(xuNBT@{X_T+*YyksE-0R z5sknOCh!L5u{ogMy?d>Ozum~2{IPP2emE`K$o5!0ogN!&+Y}aPQamvSFv$|VTi#Xd z8w<|l#tH(ttyn~?wOTbpMx6Ev_F_r$uqI2BH?(kKSFT}#A}JPVoOklvI>e3s=I2FPwaZUQO7@?Iw38Hbql zS>>nWfz1OBZJ^LL*P3boQO{o_7%WB%vQeL}F=dD3X+4Tjtsw4R?p?JFF>R4>49*d# zOcq*9K0hwJGhYWggNWxztM)d|7(_vaW1FMoQ-ziFeyS!L573b|H)NFnqPj0}3J`H4 z%_zM5{AAvH2r{;-=8ceYl0}5$$}@-)WAR{dno#m2SC~1Wz=)V1lRtGZgV~>pJSp1@ zX3^N|(+M9IUe|f%zhhs9vEn)8G7UTVGZTcrSR5eI3-06e>X{}CRbHdwQW3;CGq!vg zk>kwt23QQfW@@Pff&X)fq6h8wj4~Mi4*FYR*@ynsI=g{Wi%O85@e7cwNRNBT=^!x* zIp0jId)nLJF!4PRCq~w>-XEs?*}I51zMFY(ooeXCvkwq{;`U+-`uZmMWd_L*o=}Cc zK*?iIOuDh-k>d8Q*dKkXkByA0^eqHX6J2(iDhX3xqNsZLL{2ZFG{d~>rbD2p8f{h^ zf+CjV_t2G2d_SI3iKV<;%3pC3UKV6v26-H&0u@+8%C6ThJaRElqwGc)qVrcgk;d5O zqXlOx(cjAqoThgQa>g`P%-Fq$b)M!>?C9KlwbLJ7>ZOIk3n(h_x?wgN14Pu4 z>UD?V<PX0a~x^R)^PZKL?K=a&DIeQ&EeTSUAz>9Ox@V&1!U830c+KxjKNr}foek7hvS zeWZ!3#*;b*h6$`AfUm{WFQFY|8r2Luk6A)QlR1wG^}WpoYgOUH^-ESIT`6YhWL zb;#yNm#Xx=U_Yl!2q5El49ODu*L6{u94 zG{}zFPt&|&BuIULSn%(cAvxJ_I$X?tsO@TPk-?+K=jy?5*VJm zHNH0y%eVN!^eFS*xXP<_Izf8_;-37u*KhZ`b*IOMU%J|4F?lRAB? zAADOnGjG`~<@6Y&o1WW1Vi2hf}Gd&7U-rGmAy>XzMfy3I% zW8b|qtzRpXnw;u|hs&B1qlKK;hOBm$wX2=qlaP*92+cW+XVCLV=TR5W!o0WPobVue z28IBlx3l_PLCbDMJN?Q;6uT|^xHIP)g< zgSmZKM#%ZSYeAoOQZ8d)Xo^-44Itu4Cxac(c`F(~j0;F5Ks@t+)LFL|yTy_UGf$z< z5+EmfKWxTTr>^o_BNWwak||xAMC746X=O(1CzN6W;sNeB}@2D1LD&%Zxh#aRxR5e*e4$Xt2_t(p*oyCz9JzAkh zN-$t7HvpouXQ^laF@C<<{lZA#%f%K@)I-!I&=^XnrLn!>EW9kp;QbLE!Qc?v^g`@m zA0Q?+_V{gC?=8rN&u}_E6D@WX307_66)Pu&L-P#yxC*fea^XuFgP81z=)VUHMuno^ zjq(p&B(|zPeHYGyx&Ps5o`2{RAX3eEc#v$eYjapU14GdXfM~i`vo<`soMKic4%?}h z@3F@>OL@H|?=uszc)Q2GKgQ{s_6jm$Yy3QRb{0U*Y@haeyy z+a}N9v*7zngkZ~`D>jZ)j7Bzp9vb2D`hrS5x7k^18+ye)^qFv{3esMC5eRGYxCCZ0}MQ2y+Vu8t|Pc~wZJc*Q@HcDyu4M6r4G zVIJaz^GN3-oKbZ%1+CWFrgjfo?x7QV?zea9R);|(^?N(ET4kE?eN)@x-KQw;UvNF0Je{pB~^25h{Hghkdmv7_r z4bOmmela$@LV>hUZdVWbc zcI!;AZvct?tGfV^gy8T8cdAPIqFbQSD17##apsNh;N*grG=QUnBIqGm?WUa-IdqX_ zLX)#+(dTJnfLI5PoL(^Fv7-f7FWA&7&S;fAWb~>TNVl}fTV&X2fVh4xk3TnI3*8EG z?(PUsor1=E!-{5{yqHl`(@CUJ8&3R$2O{TZisiJSOxVnpqVr6Vv<_48>Q2JgZs}Zo0g~wu zI`iF2R@Kx_WxxUwJMC#V%XQ3i?`DNoqTqA1^9*_KZ%j?_*^`^?70YdrQ{x_c=59h4 z|CG@yzX!>@I~*xG9d)d5B){!i_&M|(x`PRz&DxeAf8K-Hg<|PkVp!n{DGM`L=3JzR z)gG8$urGSv73e@~8wUV!UGzbWz}wOHo8D7Z2uZ^<1r6p9_p;;2IMzdl0!9uHICZN* zU`C|^nPlG8-_#66-0~()(lu3s`s#1NLFE%C7fu-jDv{7y3ce-!3}PXDI1)M?j-N^_ zIhmlN-bX&4`&ARmWAeRk@4)%o?z2ZW1>TK+7Rjv%VD%C!gQr5sv-{LdQYZY3{IS<~ z^{-XkAhCFR2V`ZK@!qyz0hn`6Pm>U{KWhMH8ek-*vy=RpU?Yy!N*F+59J%93d${2M6wE`6 zdL8bqSzdl{qldl{yE|I^lh7D`Z5m;dNPHD! zWD!x?+7(QA{CUMJ4S+c>DZv_|7r1DwDW7dWG&-)^3RL=6|LRebwekUKj zRHggDjUhSo%582Q-JfCf3LAUakuI>b!GlGgjsn+v?_wh1zP1RBiYDKIzpB${Bc z5Qr&y`joLup7O(6q75DZJA;S|6iObObrW8uqtoa!7=@}7e5cPK_Ui_E*`+&?tpIys z??n1len1|%_xAViw9z4poSgsFY+%$A1yvo?gT{vZ%|gr;ph{dn2WTMCK=c&thp2$z z;msfh7F+2Dn{C4{z?I8*B27ow!(IZ2B;QTk-PhwUOeCu<$r7WN?3Up0H3%6)99Gsx z*bsyF5eio=4{`Zc^Ih45x-X-bKdJ%5`29Q#4#81)S%u7{!kPzj^>RPF+y{s~eyQf} zgP#w)>pu?Wb{M@1#M;e@=uMq)fuC8az$6O`JD<-4;zYQi<_x>Fg0OCK*$>=^# z$6kQUo^(BvFPnNvKr`kTAOaW*jfl;-qvt7lWQ@;|#Uj>H$mE%wCSs`&KqR6vN%{Pu zlc_1vh9mYct2o8!<*%}EngoPqyxiTKA3?OQ0*7zd#_7dBLclQos)v9j1K z=8LN2bP0MpEdm>zSRbhKTnW7E{!xDYSM2yfV+2=Mkb=*CxRr=gw>ogG=ZeU8DfsSJ zi#~zN^X2HmRm&Af_ol;Dvuj``b9Jn^%^8@n0J3Il;4~zUp2GwZxn|27^#tVHX|Gmv zS4eG*5^>T=c$s^bems&V9A54yd)PieB+m4jX?lo&bff4f*_TB3c5q`7M01TJa7ZqC z41vOBus5K@MoWMeX091?l0{D|7IAKp(eZd5a$LR4pfQ88mZzwGPd;M7@G@OsUhQ60 z$Vh4}vF{02YrCc|;Y9n(Z|vJ?~nqn2nVu#bfl?)J_JNQ|E?fMgL3)4-u?rx#D+@%8s65RAK7AG&A( zNH|>vH&G{U&zE)G^)X}Z%4<7Lf!>6~!z!m2&wAqJ1qZBq;q)*;hCUNT09PPgoYGNec{M}KrimeSHx-hh){^V9 z&FEDhrTpL)PA~YU3~*Sn9`H0h9ea>X>1isCZH+3L@uZE|n~4FUsyN+TT(~w&L8CaO zYG+~k;Ly!F5FK=_WEzSFP>AJxAZgr5!np{4BHsqh{U-2wT_Qbrw$AjZT&ScMO&0}h znAN~!{EVimcGpfIKG)?m7=C6mBNtB_7*p${h0fUhLSO+m;l+9)1`eHSlx-R*=e*In zNCHFw$tVjR+ZgZjU{bd`-=iRUhN|`q-P&_7*nt3&eGm-}O;5JDaTM0Af4(NH7RdsK z(f<@94noW}U?>buUHnpE-I>BuRf=!V5+hgbgETXpYExHY-xpQy9lZb$om?Iy2XhOg zG(AW+n00z7CPRucS`3?gU+O%?6Do3J}WVZzTOCizxJ$z+gZuyjhy&5*AL@{;2_W60Ht#f`PB;c8dywum zy9zRz!<%&~k17`*?D@hXhrS>k*dvn-H!+BDvC2bXfypWwCo-~6I?N})9@Xqe%!02UGyMHP1P;q~r^ktMS%!3MpQpj$5A+St z6+!^G8+&tlT8-n`8hCHng@IuMK%TsCX(%j2U42LXkeiF2jH=-6&Zj*pCG-&H>?f<6mo3MqPD63O`p6|a6w`<(J@9K4H? z#oYnjI0ahkC&P2r6}@!cB3ADQU1e$1{i@#Eh-P#M0=f-A-#-pN=*n#X z-;avdL@>yt z!1B?9>eNse;$T6@hDET4mqnMcM&2Amokf&({H*(kc%|zAQAPhET!0Czs==0Y)Q0;x zfT5w)jMM$|P0yj21y3BB1hKq{Ky{)4n4H{~qs6x6=0UjlkJvmNTcgd0p1yLLvSUr@ zX)0d3lZ*2{8Xc(UvlpM+C_OmbR8waU*IaQ*)w_}8^?-9QEvEUX(O%|V53;0sQz-?) z=o@ABNRR6b9%}sN1B2O?ikFCGV8I zw&1RZXg=G*=v8~65#=mm!$}cY_A@*QQfd9)s^{2g&X_BbpaGu1TuF@q zUeOz3P#9O$#%UviwX-fx-Ja+3sq^6T**#KO@8IN|LroY5Jei0qBNU$F?q5yrD;%GX zEOy3~94%@3)0Asx0|u@gQek0$xLkMM8=9-9b!)~M5(OJ&*DKxgHnlfl4@$+6!lCX+ zPiHZhnR$p%>q;W+xLCfmTN@+DS$m~3d;-$xZ$S$fC5uoo=^kf^6BI@IAo~<`)0D%2w`|CqyaNb`bwoKIe04JPLJsm`3fWuCNm`%|Uk-;Kj zJ6`2vY`-U-?-D@tX99ZFR0cR?IqWyF?`>jTZBC`IF^EJ1h1h60>qY3ZC+;M*kxN(* zyXtKTi)SMj{Xi?8Zj&(c<+;MlAy__grx3&2LZIx7J=DXUYqj^GDO?%LC^dk^W(*?L z089zmYv7FAnqc6GL0Gdc_ZX}i3bULuh&r{-kjaotX$8#Tt!x``+HsWHjxH-a6qgP zSur`^4%V+U4^4ZQ65I12$7Xq>tAQ#u9jx|B?j2;=aZb*e_u$}+n=z4@+oFbc?1n~f zPunE7yrE^1L7J6|XUh_&X;9{)+<_A3$u-LlF6B_junv@3k(Dkw5I zm5-hlqaJ_pZYWr7n4dkIS!+g94_o?(0rVl=`XtZ6u`uKZHzjQaeUrg?|WKq3(*w)^}!2q+Q4JjGp=I90ew!v&>HSyr&l`Vc(u_eg zfx|d=DC*C5d<*oi6fV=ek1Fy$raW;dCp}%P-;#jx{fu6clRaFs>pTC^`w` z3zSlEY>bK{A9J}aDiYzdry%g&_~(#JEXR%l?=E|_>JAi514J?E;pKHoWbrZ zS-CNvVdM?_q>&jXuzY(DDi<3)U2D26$dDAQr8_#iMnm^-a&}Blub13IlM<_gM4vtV z{}5pBiWD1#b$PkiD>3Ht*)0wBtvb>D&rxHshF!~^0*NK|_;^6C_}>K?UNJZcsNdzf z28h(a9(qc5yZPKS&OZ#m5;`og$0P{4e!b@)X5@ON`l@2P06ivy#&&iDPHrj~)}2K* z(dNM5M*4b+51#&0jEo}wJfx!wS-Fr|H3b1D7w-4Oi_QU}wA;I+{a(~?18!-<@EOaI zd#K~M_~rZj*<0k>ogqKV6enlBhGdqf9qJ^5s3Uka5BM_54{s$Gn$g}L=XvX)cWMAJr4W0(>OgM&dB|+Fld|JBkXU;u0*1oE{VwrPjr^jQP9x_F zpRL?yEW#koQn7p@PX38}tBVO7n+I~%Ly#O7jG5&`k%|d@QV9-!H!LVw4c2g=#u`S* zx{DrY+YF*ERCP~4eFoK3xl=%!*ZL+6oq+Vnz*Z}t))p)v=YGu-hkm~g0Q;8|?~R_A z|CNAjyvtw&VZF(IXcXRJ>s{LjFN?rUB`6s@U@%~s;mvcOwaFkxYi%;XdVUw4y&aPU z^$KqVLQ3pMs|gfM%wgl46dbb`<*CNt4;K^0U>Q$Livc1|XR8&nQE_s-c(KfY4In~> zJv5DBt+T*_oOvG+uQ{{h3gcwlyH(lFtRwOHbH6ITUL5{f`4lu}x5qjob%U%)DpW4U zmxws>!S2ehVhzvP#pu|K{n2_-xnzOFfYWpLdwih-0MS!zZKgB8A*y_Od@Y9Atn)KD zIqxM877od8FX{uN)BU2)Ff#Vfkl7S>T@s464itX)KbeydGbd-yKssT*jntJj9bz^a zU>p`DkWMqwTZll9&0@x~qy8~ctc%8ZvEB9z;1CzYnE>Ko^pd|(*;E)Hk_`*cv}b4T zd({3$MKdXTeJ1S0;J|wGpKK4jYj+?}tuxY1o!qMT=4R|+4ImP6>UZP6m!IQVNcI3W zf-4`)O%mh9c*NymG~dvndjfjZzO|;I74VXq1Yn-a991))KkLC^$7`vQTQ9=NtyyCO z*EBr@mUco?X8ybU=cRHjyzteF7at*F<<{PMrm*O19f*dM2k)hTUZGMfPC@Gxf9nAt zrb5d~w^Q-@n41w{bdHm=<{>@Ou8lS~>jsEphNk54m#>%W{YL`4Cj;-A{|M=JA~;8} z7e7zLAn}bw=51kY=P)BViTJz|Y;pd8zlH_4rFShZAx_-48hnI(>ryP9)h%&v73WNA`5s zSj{nd{%!@L5U|37=bbg_?y&c%)6zK66 z4j{Yt+M2(r-gUYGOHIC_;^?HC2HE9!T$wR45jx3FtlJQCwAMPP!OT~gh^1eXOYsgO zwS4rmSY8>VD(XqE$c$cSqpr3K$s#$ym)?jUJ8cBgq0mrY@)tKl;es}AMzb4v$3EH| zt{VBEoG$6?-{x`;sW^To7w7&~q=#eH&(yz|H$dVO!my_{_OMLF(uYxP&^%-hmM~T^ z8!LEJsF(82v4{c`Yk1|p=zh!4sNNCKprC6yXpQI=8%Px4S{_{p+fEd{yqSnKfebIH zvDs_eHk#POSg_-AeP8psI{B%I#bZl@L;n12gsfJPS6v0o3y@wfBnwq)Gmgdc_i{LM z7bBNU=LG32m%MeySnrAPgC6dGPkam>K|s#jQox2(`Ge zq(e0BT&35U*i>I*;%a9~uF-ZNu8U2@urGeHvr4Yr76G~{*!v&WzDG`ri9PfYdsvpw z{B|G>{1z3Q(I!r~kwG+tNSPoTrifT{3=ruYBZ@UVZ#MG$escz|VEw>kZ#wA9^c3Td-smGN%1W@8nuH{e=28jBd3wle|j=(9g(<(r3br{h?CPbHW3CFGeDV1aWOE@TkRBBG$oJ+NDfk! z`|FKCtkO4`Sc61piNNv*0p@@~Bnw((C)HQAwY6Q72+`&c){L+xUVV%F8ujcWF{u$d zErt*tSzTpd?mtLXDvXQ#L!UppRcf4Z=`~1Q5?8;|MF}8hGapQx+(baJb1vFpm1eDv>ir|KY!I4v3c#Z+vnrPd!r>6d;9u}8b7)7rAjcb4iV4j|0d!9(<*BynZw-Kqo zr0lr~FT=nzB*V+b5c7Hkh*I|u3rkZEF-wR4SCC&GH=wV8xgRI=NRdi<_OYlGsCf5g zV&{_7hC=XYs?cDGKeI=%1PJJtA$$BBViVuE7A<9#jK&P~ zDfBw2{oB>cG$S){u++YIVt!}m`d+r};m=AXeow{{4-+_fM~OduZ>U(3hZoEP-;D$A zA=#62*|0zDyiOYSBCC3T-4#$60E@{u5D?3gZe-@nDKIzh)xh_2n7K0(7-inlURU z!9dR|clC@_dM&O1j8hOeWRJXZDG*qp3Uq(`|H4DXUsB+3ymuI@#&ZPpiha_#Fol}& zH7XU=9x6`ENPw`9kqcvGU$y{tsl)Q${lBeSgIv?3W_SL~rRv<$T-!^g+m zgqKzIa?Q|MTW3Mb(?Ql;h&e0IQ?B)qYt?zt@L!W?Mo)&A3yrqp6&D^@Bb)9OjWRfT6&rVh=5C$ z!j3l#JbrMyTUJR;kod{HQb}!$?i+g@8w{RD%qVJX;Yg8}>t^N*wRgX)!?s=|-D=FH10PTI+6gQfOCp zEDU11AWk_FXU-%2T#Fz`fb*KP`(LQit3S%gIoqOc3SGF$xM!!WeFX%vvKu%o{2p~d%z(_nAtaY<(Ngp0I|a81yl0D zbB>Ht$<1f)V&sCE=zTC_h*?8DYyp~45ozbAH@wd(y~dW{TGlqq4+V`)cHsG?$8q>B z3a55QAbc3?qo4van|N&m!hYP-3SWOdx&B2Ms8*RnJRZsvj_`c`+?@o1TY8VJ(mlv? zXQjOCC1NROu@s+ZFp9(b85x^KN;N*mz6RbXBu6-Lq?q(QvsFQhBJ#10C+#IhqGAIP z7N=Bhb5WcU>61*yJzVp3&mfwbkgGMPVZT0OC#MW!wdxFFDm>|lSKBVWkU($>o$a{Q z6h~mWtfCO|^;#>~>18PhC**6tR6@5m5tw@lhKIwsthZRh-=Ji|02nI<{A?yI!o~qk~Jq z(l0RvTqXX@nqUSx^_m}o5Ae81Q4=;cTztxQ(TDtO|^Bsi!7jdISJ=E&>) zCEHl@wE+;(dRwDIR2)^2o6!t_Xn8QQnu@?Uw_EA~7vbgD&c}8=28glT3ETU>%bM9_V&WRI5b#Rz9?ZcE))XT~mz@E5_ z!2|WgD_tpAP{v+*9ph*Zu*d5`qq0s97bRMi#Gh}i0L2dNt!-)o-rHIzzXlFFrtms< zDaBLbbK|Xtmc*#~yuLWOB%n0K$+`PEIb$9g;Ux?xu&mjJ(VM*4lukgvz2i>88kEU_ z$Wh$lK$9#4k;Txnu#*Yjn~J%q3Tzz|+eOd{!IZgjig&{W(&Bi-GT)%EJI;@#7U+}GA}G)* zEeaH{kQ6P780bSEqLmEsDxqlO2M0xAH89W=6dI!i!T|MCl%@z0n?Z^;t<^S2 z6N_yc)Rq{lhjIE(|H<@(Jxr|*kN5fhWDtct=iz13P2#ZdS(Dihp@yN?z`=-C;ve)jvpcR> zj^tsJkwFw728_L{A>dg+c`X3;Bx&Q@d$P?L;Eb7pgsf%a*Vfs68j~;cr8$Wld6qa*qH- zXEoe*QR)Olq=l6uVMD`tsO)?T$MH>?2F=y*g2@|u!YVD(5{D+e?gF`prK3fISu;^G zI{_T>;*&AP8cw#rVL8kpI$__bdrv)E260H7wuS+72ITL^pgnKZf7 zP+5Z<)ypmhkpo0NsUlLqp_=}wr*D26k?kk(f1Pc3kNt^;@mowlq<)4SBX6qV@`yEB zRVj*Ne_ByWjj~IgzIDLUYbS=C!%)%JUPhr>Xn2pGCWf_Y&&Vg>zX6?LXVz%@0JNXk z{QwO2yS!@(4k>du(NrX*Fo&ik)Wp11yama-qW7A&ld8t)2yh^V= zjq<-{jDS|-uLtUp#2E02EY!=VvL}U~LkF|SyS z>tmvW*Iq_v@biJ%y96D>8CK`eNlb0#ZBx%&dNdb6q{-owMcg8i9fWG;OK1ST-|(LJ zCOE2|1?AHAFxyFCGiBW|ZixyS9^meZzIl8!8YMT`#KWQ5J#PhzGBTUcsz#Lx3uum_ z4L$F_FMuKghf=OlP4F_u{P1E)m3StHchAXC&7Lo5$qjOslazu;iQ;FTGnMeMf-F+@ z>IfF=2o_hHU=el4k_|&^0U)LowFDsdSqwA4Bv`ps+eKz`fWu}gi!ty;wBkU6|8*;S z8zash0=TC~Y3M)hP4hh4#+E@;DQ?)>#-W_gM|&b#hI`<0D5cIMdJe(v#z%W&?Dm{? z07E`NK-r)9E2n#JcyC>vBb5I3z3n=5rm_WO?a6s^=5W%0Lp;-$dST$T+I6y_ z<`&z5^Xz#~-#evXAX$wdskjO#4 z)EbAdicd8^W0cRBDNJ4!N^?^&fcB3;h z%C1C^NM6A~W0)#>13llHS2XxbpsHs>m|C)iN75^S02Dd3`>=rg@d^bLS}1Q>Nl z{YrT4NdMKACWm~MhL(AlZWJq*J)(yx5b&Y5v8-G#xccMa-Pp*J>&Yi+Re%+27@avF zT`5gY@mu!4dwXR_29P6#93XnoInW@vqt!lrgr$Zz_q+v%yw)Kg>?H^LggIQDi@{;{ z#0&$6)IkBm?)l-{2g|nQes~Gb&RfZIh8ilA(90aNmxn>5IXxUOdLYka4MCi0aG^)m zurv=e^Y7QakGKjKq#TBEKfL@*Z@usgIGl?rzztQ7f9I8w!_$){SHV25hA{++4<|q| zx$sg;A}Rdm0*ki#`NBvUWP6@eVJdJ8IVT2Tmq{7$!gvESWGA1J9ZPLs}ud#lRt-5T#u7VTHZAus@XT8HRC#kJ-pB-3tOoEt}!6uLo4sBn+H(> znBt(q?76Dw_YZav9pVL5Ni>G!b(b!WX$3dFk)iI{L!YyUyltA)woaO$g#X{W(!GPD z)=+0IG`z=7L;GxY+GAO>HFIz{8K;81|3df7VdPL9vyqQF1EkF`wzcIim)tG~|8|(O zbAh*-;V5Uex#7P|a}haR><(`odynR4#R}6uN>};Qf`66cq2_!>FhD| zYQ9|lDou{qrUVpg4mOeJm^54tK@1c>qDJNH*?H!wLWiiEz6n3vD!3<>VGVaDtYM-o z+a?cyyTd@g3?k1h)*K+lAo0;bgGBn62pEG$O#-{p8xV(~yk#A={qfH;&=?S>rowa< zeJdF0-l`qokQYZ#xg+?+ES2nnw$H$OE7x1VDq_EK>Q(~`n|A6Jxce+q zHjjh+COB+4{oUE?K+Tvu@pI(!>kJ@9tTsL)pe=tM?Z-=_P>-Nh^}GNEQ{~Rjr9)b; zfGAt#Fg|UxWi|X+fq6fJ$w91pA5H^@<4o9gRrHO6O0V}&{bVTeN1o>lQk=uEQECo@ z%qXr{p!kpk6v?GdZGarK%fxVVzU)~7q)$a?%j>e|I#$uw4_PBTS=2g=LALvQ$0`^e z4oU9hcu5Q*XAzV8++kD=aPZ*v@@ObHy&pj%D)ZoJr8m(~--S5o+FOaj(*UV;6vEJLfmr!W(DwDJ%IedB84yUQ}#Qx$#Zc)xOKn4pID_=3Q~IQkwIq03bP(!4oE zbY>;qhiIQDNa+P2N@*u8W2vtm&eI)A?!T^t^S<+U1#jE=OA<}IK1*ww{-&MIRfvIq@CYA z$etV%+j7{NAC9Blfj3qKAjR)NS4Aq6MWo-W6d*}PWBqI!GKU||Q;?GM!b4B~HhS`R zztEd<{=ka_cvAtZG`u-8vF1P=vL2Wbwv3_yij^~QF-xTA#)&eZih+joc)Ecek+XCu zN#1C9f}Cx|4=*1vdr{!!T#6^$O!BD%T)B)5kVT~V#i8_j2)5qBug8jKQHx<34f~*M z{*3{Su~MG-d2-&PhY0%vhtsif>#vOl(Ld|p?p2%FCv7NZF1&g?R1cl9cZu3Ezl_f_ zfX_@#$*T`4`r6-n`UdLH>93+Jo);YHK{DG;fN0j$-JMozfwylSI@{VfoC#6qB$11# z&6)=9{}gBgkP|eCAjV$?Rapt4wruxLGlIg^DMb@Kn%p6Ne|GnBe1hjgX3Hqu`4{KH5mqa1$0>fj_-(<3@aDr}KPc#?e-!^+VeitV*w-n+U# zYv_o)XxYmR=uE}fVt}y1ob71;ah>yi`0k@+7OmuQbO^I8wPEU-L6m?ZWPn51hA$~U zP0Bf(pv++l9Oi!6Cdd)k;?;s7Ig`XAnrL{B9viM<4o&#{U{$|;G@iRVa~g&0U66~E zDA*V{^B@>qC9sCBVw5qHDqz{*BEqTktV43vNuMrij1$F@7bF06lP>sJ5sC}=3yT{jvu!bK>>%YmtA!)JH|K2;mVMbekI_e ziE~7O3h#`P)*&UiN78VE9__WsH+<-Mw0D=uec5o_mt@UccQ^012~Q8xmV5fv5d(Ii zv$9@F#nIgY#9=Xf0*))~57X+w6z1>_3fpZwXf@f*1q;*+3fuHK!3$|P0HQI>$_Qyi zzyESUz@-mXvGFN<4t(ESMzHv5;LZL6dX!h}^CwB-!XcH<*wnobx+;`iA!V9NTJgh` zBUxSOa|6R>9_QFy0tz=7Fr=QRg7%gWX`XnIcanE0&@L9y{?3E}7rwrB);5(LfkyD& zGAh0KK<)W~Rp739??Y!0nT)#9SR`~!3|`lmg;_HC5YbI=+}P+?AXVS8ic%oRQHWA-o#FXv{`Oi`Vc4T(JrU1x0M2cHKR zKm_KX)`k7xX)sdf3?R<6t1Zz)FZLSk+t(2g&)fA;do4{EqB-QDfGMK4vE?!0b9E>n zF^&q}d<}KwSwfa@kl1!#eb|{V7t;jH3*q3<3R`!cNSxfd?<5MyZRUw=3P2&rVbHD1 zIe7_X@K_IwWm&A^eg&JKMQ`Y{xLyAesNFAwYUUg`ivk8}bUknvqVQsraib{XsW;)l zJ|Bew!&T@^qIUI{1hQu#bhec$oq~b(s>%k)1!qk~-B9}$J-D+RhiirxawdSM0ol_( zhRT9DTJI*vA>}RRgwnLCWIB~ZJSo&!9{%m25k960->!|%v-b!=(FEx`nL*@=S_{H9 zLEpZ@!xT#uSK;hW8l+x<{bDYETOd_i$jiB>+PySslm)rDr|}22nELQn3o3S`wl>zNyvt zu}XO3$S{(x5%8RBsJ)B!ndrTe+HMd=?BYNx>oerk&j5#0et7Mr{&EgY%Tj2SvGl3YiX{Cg zU{0q8ojJp4&77rPmAs&NaqgtU3aTYGgp-8gAPUHTd5R)x<4G%l9f!ChE#*a3xP!1cx5noAdOo=alLv zVOU*>fT5aQB*2h^LaI<)lLpe+g8|vos=lakZ-IeCslRD6*&Ns1Xn1q;sBm8QVD-eH za=|n-!C?d3d316QzX9SCK~`PNHcxp#88wlLJ1>CheNRokVW1wK$8$=0#z{F;GB`we zC}6L+{OnkKs6bB%tYJGyRE5c0s!lYrl~=Be4I_~+-clyWBQsXF(EgSYjh5db=`;!P`5?-EY^F;L3uJY3?CBHx})&{#^E)PsGgVu3z5OAVksUd)DFFSvs2-G4d^NxCZVPEmHILfglt?RwX&* z&P$?ms`~K>3g}@Lvz;%!9k;5^p54aTUNL5mU#fF-3FY@yOc82>O!Hf=bm~+Z1o++7;ZrJ zq?oq*BCIiR9IzU$EpM`jKM(+7TiU};%|WD!I<(&dQQV2L_I=L2m zU7m=PM6XjWjB0_z-9zv`yd^X`3wCXF;S!aS^TmuUKzjj-6h2A9b(EPwuleqQioW|? zuen@?jnOdvnq7YYazCyu#ulc{uTB)oNabb`B}a2n8XzZ)H$&#AVCxO_sAUuH9W4U{ zm=I7y?K^Eho95DO2#kD(vl1)vfda!kX%E!EdA`1Kv>%WivxX1N_ZlWEXpgv4(R3&@ zs1@9l9S0EY99(hYRKfD+8mkw9DwDPlH^SV%?*+ z0X-h9=Ilb@Eu%e~xB7f5<({}$LoKbDfy7V%y3kJe>>dh}s9+tPgxRwoS2Q=zU?&5_ zL{TS{YT|9xtS2(v@GKxm;vtk8rd-NOcF+}3xLoyhAjF63a)85O0z+4eC2rtq)`97x=%>wr+w8&M z6}eBGZ6W5O~KI*m@Z7cDn6UU&fZlAo1?NivCPLM#HwE zU0Z{c+}NF5q%y|#APFxg%Gyqj$of2mo``9)F~b!zuU>7qz4rHrXZ1uDNNoPx^rma5 zy(m~Wj+fJbQ=y{ReG&yYQEuxF(3?^WLUk>+FgjD66BK3w z!`4}=0pF+Y!&`|=GI^B1q14EB92M}_PysEXLFy5l^E0U}SdhN%kVAphc(2s3GVYB8 z3^}`9h4#rPLfXT1V%)lYR^!ANgZFR}cBlO|r6MT@h<>l=;vFg{P5B7bvIcyNac3+QVv(X%B6{ zFl|09HF$h{o-S#hq|s{8Jqlsh#R}YBDxj^@wt1O+P{>n2RXTfk^H4@18G^&pCwIaBh!h<=Qrx`5@oXzv8=JiAb#eB)>eVL!t)#H+2X$Me5kod?v zDuA;dte=4X!+L9`R}-num2$o6DZo%C>*)2oaQ%|vaE;2VS%vY-xc(z8^#FnMyp&-QP= z!+~RAvP*@x{1Id&U^20ZPS~l6zVqds01h>bpF~~yU2wNxBKDvVT`3I)h*GIM*i2;) zLzw)0loKbXZ*(?M?^AxrT>|KwVCHhH%>8*NE{JP*iKq7u?2GOLQciplVIsI z1_u?<>!^^H(fGX34^15_isl;EptGrNJ)1GRqzjW{_blZ|d3bQ|!=AqT83Z0VMn{RD zumPPdX(Xo5)zM#I%N}G)y;Gd6QEeb{k|Bg2?`Vs<#A?0HMIzG zj*w7EIgnS+X%B|Q@uCPtx9w|^>iG^}C>2XJ@)^8RWsL*Gt;G0;F!etkY@JlFar{2E zDrhUFPT^XA%=9N`sfu)1TrAob(#X?zVwKvrfNMRQz19Kw5l1Cu zet{DN3sL}L+`t$n-bEw)Y_A@O2LJ1JoegMjth)~GzG-CxBe60MjqR`C+5Ij8jZbEU z81SDhF;K{dzNh6BN?~L@V58f2JOK(wkY@}LfIBy_Appfq3l!fmKrv?R4U^V5>{5bJ zcnBum6WHs9%vhKA64*m&hB9Y8tP`{Pb3KHU*W&Qlr#QLB68%viZwDf>z2AkG>S`*tl{Jn|E%nw`b!y2C|{(`D2SvFxi zgqX?Z^;e`~z)$Nbjd8kZWBn=v7)~dEDQ$FGn!ureT<$6KW&T}VJqFAeYv$>2!)!f} zJKcI9CbYa@|E4tcMGB9QwUu)I9Zg0n`tAokSoyk|c2n0q@ z0)(y*atNLIm3^IUhP)R&NhNIpKv$oWtk=pVXA?X6BtmD{IRa65E}JN)U%~Gee0}3E z-pRwA0Lp&@+~F?5Xj~rDgcO>0=rU+Y54jO2u>O>Ye;~L2e8o>WR1Na%#Q=f>>UT?SdH*2_@^9W3gt~qP%M8Fs;iAZQ4 zPuKssq&3E_;{F~qz3-&Y&`>kr@HNQaHmYbj%Is;2cKSCx*!VMW6dRh9uTbq?KwEuT zxGVg=NX4Rs*y+JDjkJXn6k<8If3EeUV!oB-GxQBL>HA$s#ph!2YN7}zOZz%M3)({+?$gb1&($oc-dT0V?1uIW)Iu3}& z8*1+Y3Ke=FcaEnCmN8Dy-l}KI1r7&nblTP#!uU-EHPgWSS5Y~FsRv5S$d=j-$zVpfN^ZxcY~vV?L3ODKx1M6N@&4tf8|oicjT{ny{DRm=<_% zx&GEf#*@(V7@qw)?!`L<+>F|b8*oX-)E!^N={^OVkyOmreEa&wCxi%60uJAV&Yq$h z0|tlEy;8ou`Z>HqpOwfPlS7X7{8i{oW8wEj+WP>+^q|4rl?=j1vg66RYJr;muK=c( zOx=W;h?6&uTfjr#fb6sfJ&GY_7wEADvzvZ)1|`p$YU5R3-#n~fQ|gJgW<7TVh7*?< z5ZuZDhEfG93cyN96!i)U)*R3O0?5&F1lLwa)h2~#>%ERzi*whezJh1^Gr|m{6nCh;Wiw_I z=fEMG2~bQxV#VGkAKJV5H_y>9;Ea`VvL&i77gkQ9P%hz8it!K|JS=$5qL$G>y186CHzB@#}TyEIbt>OC!Y~l1<}= zg$hCrt__#vNRpv}ZDLQzT z>!?@$8NdIxWRE;pJD_yXJa?8GOY>tT2C*&uVU%+a`3B*_v;+`sqOiA2lrWJv0}}79 zsy1fDgpnuDF+bV7ztKG?fC|JAOD0(no8g^QNmL4y<~8*s#~*~A?p#` zH-PN60sP_t$f11ac)%g9No9bEG)F;F{G)PiY4cM#IFyQUB=8|QIdF68A0ZE<(I0Ph( zkq89C>Z%GHb%E24y^wN#Dk%&{sz)*8HEC$C{8AYTeLES|B#a)g|CfXo_?ZD?mx2@} z5T=~xu+9~PdkPLPFlqo_3+F{Eb5)8{8s=aL?>A5gDeK_(IdI%>H3HA+l0lvEZwCQl zsffLKYn{GkIV zW`-z7>}<7gpJ4>gR0~cOtvvLgvuH{?&f|V&3VYR6Fho$;t-OuW`A~<2gT*W+TMrQ& zx@Nq44jrGCE~IzB9ieBP6;*TXS#I*nAMs7$-NplO$Jrr8z|+Ez;eF_dWC2A5+4+0J zQX1U?#rsVmNbO-%hQbWNoj|{xWLj^7^N~_oyqrcYGavRo2Zi09{Z8GBUiU6!G8cf% zWNSzd%MRmCY4+bCWJid0ikxJz?jgfDE*%68KG<^tn+zrE)QO1 z>2@xUVTw)}MVt5FUX%~4yLxR029X1s2SQn_FsTO@^uD<856*5hK>dSrdGHzqkeEle iKakA_uhiH73orl+sF8xWUUBOH0000D=$fcfS2&@Aa;|o@YI4z3bgSc8b02F)8sq;s5|Z zih##D001JcLfaL%LwM(@eEK4MD6_0xS*Pg!tZ*L&8DQy0_a#FJRG%|s2eOY}WauNZ zIRLOtlj7*gawVQXk?2$dpPw-X5!4VN8UQdq5)tA<3L>*0zT`6$8XESg;~oq`@k7I0 z4ie$S5G!&31s}yApNg_|Bt-?0%=}NMr&Q4HJ?WP$+&V6C zGbmwXKOBQjh5T7Hit^7|F#pK+7uN5ewOIWl)=((M@aNwCuf6`|5)RN$^Y6(OF8-c< zGEF$}4B=$6neq_fX)7dPEgd5!7mB2~IZg`w(og>=I?BOl5X3DVvai4#eC-qGASGqs z3lh~L{N1C#H`;QUZchT#vr}YCVs`7PVQklx*)`tYio;r*rpfKH&jw(|&xs|YPpr(6 zq4l|S=!H_=wHhLM3XE}hQdHcu;I8vkJ#YmrkF;*MO0@zK5O0fn&L&J=?TX7US-q2t zQFB!3Lc-V;T#-tj-domG^SFngg^fU$>P7uqvvYxIFYerK077-kIw&qHu)&F{uS9l&dR3#G7F$;dKq#TV%HQ**bLNKTp(VA@%n!w#QqHx_{!=m-*%Lv0JvI8v zwFw>9kFu_agxG=Z-tX1uTIW8b23vz`#ILs4H{f0##$Wz{xYji~?sy+5t)yCp%wEI; z2@qpqdFpkCMZIP#DH+#u#BFLPMid`mo7EciK~RwI9m=W3qw0;h-r=3`lD40dpm5KS&3%xe@KS#oz46o37J) zZ^-NMybC5_(x!auqDx@+L?4^GyQ}HlUVfQx0`JwynI9wIgkJdWM$dWkX?f>G#ab!y zX*mqcuUbkz7JIPac1=Q5mEHLriky_`!I4*ggfPc-m-8mC2QxAF?H+*z{Anwb@ne31aawxwmJ}B^OdlTdu0R zVelOFG3^)bQ9AqA6lbb8MJz>>qAaNulQPn#={vnDkr!hVz=F)uN_~qS1@|>6U2j!A zozIE;M`++9h+FMuZa5_{CI;^D@1gco%F9&D7F~6N1<8cdLn}MY?JbUEeg`;&#l&`P5or@SF6`;nXQ~PKu|y zTu=9&Q?nnEcmql3&P&lTcn(r9=H4hRgZX24z{Iz#->B55yw~pXWz&SAlmmY}H2CVO zh0zBqjwZyWfE^?P9;^t$r#6lFJoQd-N%JEnvQJ>Y1z+zsdg>BQXi(XZhxRl93Wmo> z`NQ>@S=yAatnG?><&~0K9+UFXBfp*85Z_RQ=FegHiTm~qde92a4zCUEfI5lNSnM`$ zFR!a*s~6$UIox{DnfTGBE~Vk>x^D0oTnuUI3Agcx!gxU_ANDM_l_(^4&0$xk z1Yy?eZ(z+wYKyup@OXmg%q#ECrR)x3b_RPBV2M?@aPFn9fT1)JaiFzsGA;05<4Pc1 z-M)N!_*ai5{YvYDC(W_o(CeF64}0EI`mPG~Za1&nJ#X_g*%eCbpSR8N_0c&JL;2o& z}}jh7eXBcX->Nm(!iFdkax-R zuSOErZ)o@-_BV(Yk{a7WGKkPCm(0p`_EMWSC1cs##P?*2FWkvTP)|}e<-Wkg5zj5_ z>(-Hb$J7Td@5$5Y_t^D3zX%%-t+4EJ;i=3YTq)(bdhfB%%t-|~jB@dl=hV;23@A8* z5k{3W6{|^}$^0Gc5wt3NAclNv9ZfAkI?bh(_r_=GhzIY3N5-|ZQNw(mO>`ob2Uf(s z%R>7B*Sf^FFd(|j@yGo~3_+6j^~l06lv1wd&W?M#lFg~-vgPLLifr$}ly_RdpT?AV zamLJoJEhcSGDio*9bS#&%hFzY;Xi)%fB2Q{2~!9|KY5x}ADZn5ZOd zNWFwuOWf$x{=sSPO}@>dbMs=Lskogz3Jtp0G9OSJWy+w!i`3%BUquUDDlU*ubXE!NX+^Lw9V znPj-i>}a0&&UgyklwYOkItSVdiu_a3{h#@i9ja_ip6nL1fCS*aoG+)dLfqZGdS_=d zIqc@X7^7O#q45BRyOnm%sOMuNOQtdxQ{yKN#-FU68P;fqC`)8CZe?H#7Xs=gv7yKA zTsF5%LdoxuFO;jSQ@!}Upo%ld%gB4_CX>DkXeNVhFf6m%f@4C_0iA2@^_-y5?TY_) zp%#D^`G~toXx-O40_3tT#f`4D;J@%)>V5{F$=SaEuRN1C=jpIz7_DA-qk;*=eu;^a>i|CS7(?HQ> z6Djzso`V_XnIRUVcD>|r6!&dXNmm?Dun9kAf~w3!J3Ei1PCZJz@*)rkqHG@@Nagi3 zB2~f16x+%LvKr9jqnd?m(L(9q_PfU#;xDcNLSs)%YbE7s7J!YjFh88;gUV12f}zYt z_r(nX_xwRDt3!P^{&ocP$_# zPUZ;%C%W`bzq!9xHMcQyC|j2cAhS~f9lpcLL=`7T0Hs}ul19zyO>h01FKNFiZYdb| z_1i!dR%@7bjN-qZ0<~Ag*S^$UlI%Di3=^-n1C!73&&Zq&aZg;5C{LNmgAV@t$GBt7 z_8O5)?(pT(82|{z&J+G_H7l@+A zFQmE1k8d|RIxVA;OF*^2J~>8PQ;T9@sMlyD$+AhIbyB(tHDhtOYPJ(vVV82aeO3&q zE{2ryrY-IWwVb6oux1V-8+gwa>;zfxdqZ029gpv-N)n-;7PZR&79km~Naw zlRCre@xP|T#ab@EH#7k4G?F}Mn0W>jSbiF)KgY~G^F{TxO=04AcGpJV#3|Jt)w%FH z>3AQ{#c<%fb_L7m3DjRGmEBBZp-KciEt zMcrX*l908nlc!i%-TC-qNtbNvammb`56n-lftzciw0ki_dV>u{b*{TmBO-j` z43<1HyioUm!)`iBzPa@iSk$p0(ecXfS#8#O!1+3X z;2cOSr@}s@(QBV_kpVcol2576!CU_3bhT!+tnGmR&6D=Jyb9KRw>X!TO zpNl~{4nN)+T|v0*63g*xH{_hw86+n?h_uHCK6iS41*&Jmjg)Lx;+l)SE2F}FUK*GO z7TJ3fwyksA4UK^YyJor*-Ay-I5AeJeiJ=m9r-}Bh<7WqVafLL*-+L|FJI zZV(C??|rX5#9c6ZwM#b==eO}-FXj5(fqSHDhfmmt-%rF>rXe|W-R8CZin69YG|2Siq74P h;SdQAW`BrE0xmB#aMc=EVL$&~5Ug#nH!$9b{{w1cxyk?l literal 0 HcmV?d00001 diff --git a/资源文件/UI/progressOver.png b/资源文件/UI/progressOver.png new file mode 100644 index 0000000000000000000000000000000000000000..eb5af7a7a21de9a8ba1c6889ccff27fb02164f41 GIT binary patch literal 6971 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 OpA4TH%sI>2lKUUo<l3^w)^1&PVosU-?Y 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 literal 0 HcmV?d00001 diff --git a/资源文件/UI/texture13.png b/资源文件/UI/texture13.png new file mode 100644 index 0000000000000000000000000000000000000000..31682d07996058477f73f6f7acb8d7409808e14b GIT binary patch literal 4487 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 P=dTfW7aw8`ft3Dl@qNaN literal 0 HcmV?d00001 diff --git a/资源文件/UI/texture14.png b/资源文件/UI/texture14.png new file mode 100644 index 0000000000000000000000000000000000000000..ae60318362d1ec34d6d445e8eb70ee8808343a09 GIT binary patch literal 1743 zcmb7F4N%i&7_NdIBs3T^ekQicY7Z zPM``X{s5cPP1)2b>I4{{``fp<^;|WBv|@F2$nGbKWg?$@AsC_j$kPd*3IQ zm6Mak`}qd@ayT46bponok#^rc{n=;Ujb#g22x8*Xm}JVp*fARCDD+f14yY}d5!d3F z-ucNXJetGt8bzd}F=?8Kh>o)GFn12mVX?Ao4kvn?!;0xLa0W=njRYwNf3KeUnY1AeIoMMdVb|_31Oh!N zOokkMDJo4f8Hl539EjwJxjI-R1tc;aEEe&F;s`*%hh-373c*4yA4d3MBvJx+E|A@g z)*BEls`Bi`zR5uo!&ngrvfJ%EyO2lGMhKS4*ct*zAmFkYT$__*Fb9{kh4ofIahr}N ztPDYsfV(1=PGvH3kX8Ef2o|eG^Qtgu^E8TW8RWpM5X|F47K{5_J=r!!i@%of&TLzX z(~3h{+(u>6I(8n0uwF9TyZ3M8PGr>}D5cA^;3T6)gC9(O^1)bVtUzyXz5))5JVnuc9dn(9<4-c!vZTDn%tysYI-TC2sjjg%DOK&+{;(aWnW%-A17JE)2y?XY|Ij{A55$o zRiro?+qYDaLll83yWz;3mTM8sgUhzx?q@PB4mLRg^V!vuIZOKnuNF@W_tpl-uKEmJ zl@K~;NT_U?S110L(Y}D-oVpnl)hWBMJJWZ*v06Cv99i&z~Dh2io zZxnO~--f=RzdQIg^l|kB`?wOv6B{M_t0k?E*83E;KB&Kotjn+$?)Gmm43M_eUe5{0 z)ttOnT9NHdEV|uw`uNkX%g)i)UvzgI>z*~FZO`F(HHP0TYs_~aY&NXnn(G5`=k4S> zsn=I40|F#qNBP21&^~DT54FvLCpBN!cC<(t2mbz-W2}y$uGC``n_vIVj9|)#QPKX z6Qc7QQ<2=vij5PS>Q{80{b-YUqDt|+pylZ2C(eQ^MeXVvuEt0|zpaTwr>5y<3h1j*x9*7ttUQ>;0n6X84a_l>dVNG zXOU)ARD8+#nv1LBcC66meN|F7!z%Roa___1!cidwrQ1p-9HBd#c_DGd{i};AjWsum zDns`l@V=0(F78?66QcDbb5)lQ0vbh8_m;}++1)`;pnPiL>^S^xk2-~YYe|9+Q$Ju5pf zz(;qD=^6wAq091RaNrqIzuH>xnD^xSRCqFxGkNkLFj}6-hX90^5R3v)EHOU@-~fDK z(%zeZI|89;BjWPpJoYw<02E{SY8$LVEQQesguACg$``}|a#R!$Ba%?js>>~Clt@TL zhY;D0Y$+Xx75OGZKu~f3SCAYhAPdo+9w>JO1$H0?AOxU@SQ18ncXma&kg<4@vm=4zfO2xglW~r&I6ML4h^IJ`C`1?3 z(u0OigM`r(4#RutEOm;edjdPG|-gW=r$`9W$!m<@#i3KGPCM9yMR(Xa+96bUIz zFB*YK@MgN;U0m>ZrZ<`FNMq2PoV;nS1QO91zl>!`WOBYl04!rgpRtTT#Zu@Hz?Xv% z7X;&%s}~px%0XEyC`CEJi9p%1`2vwdt+7*QcZn37nSZIe&5UuzXKoF z)?Od;A4`~BHM?fPtZ7AW+vFI{R+V0>^CP6C3hs0pqq=Rg{h$f9re95OZ)r<>nsRTh z=Uk2cu<`nH{Bgqt%EB%L&+}Q#?wXoN(;=b=@!o1dvq|rRNA}d;i<~d4RRs5yx0bi# zJnJ(P_eV_B&o*U3Astgqz58t|v*wyHR}6rVcdD~y9u@X!w5#`hZT!x+Ha>_yZQA?P zkB|w`oh4^FFn@{3IzG}n_HxYVRe{O=VQH%FpsnSwST!FuFxAjeHFG|G9Rlf($Z;{N z$tGrWK6v(r``uGo6;rDmin($A8S%QKgju@c2UJ#d#w%r6dF%MOI!~mk$$#%|c48_v z-5_@8!Q>97na+x~@!F~UH>KK#e@l?0EIgH2GxH6+I4fBnM}2FxtiPz-@U<=W!9qJq z$j-Aw8^2xXy+K6DVQGfN7w(#pFdR0?KIrm*%3T@?3u;7 z{9n53ozG}SDY@p81u~l(`pNqL*^p*L;$etBgzCcXtj&hu*C!0DVm&o0YKN~J9eHiO z^$GKzn9v4{-c>QV-dvl3$qH_|x&KlB9P{pzUB&^WoYLL5ljHif)Kzm@PG$6@$wJp|#gWv+ zFyV{)GwUAD@G8$AUom(!vaP}OqKC=7u#C{N7risy_t=%S_iIEH=UHqI3I6$Qm7;0N z?#$-2I#~oG|I5;E4?2dNcw=X-+T%LH_1!Ynav%8SVuCZ9tuob`J2$SjdZ71m9NkF*`IPy4n1_{ko2j{gp9 z%&g7ZP5tcJlDf4)kr`%vak+WOYU^oW?#QupAVaI5`;2{Bad+QzRI@BcNe?jf?YcOB zL`gTVPCnG*Q{R3a)F|w;^f}yT+520MULAd6JTuQ?v5VE6`(+US)7oEd5zC_X`9^1@ zJh)eagx+{LxeX`1F4zJy<}Ti`&|AvR3UbPVaNmugH?KzXtNKrrASX&F6gT0W>hN89 z)y*MVjU!jG4%8k)-u`~;?=@lJFQ-+vE3H>HdgBk>@~f!+@eeJ(u4k9DQ!uqvK}ATY zklvdGWV!47(5-j#_T)G}IAo@d-n=?2P2+LO4M2g9C)|FJ``m9k$cNKXPex^v_pxInYnH7kTExDr3Y3#$c?6-|BPfe-suofKf~P H?%;m`lGd); literal 0 HcmV?d00001 diff --git a/资源文件/UI/texture19.png b/资源文件/UI/texture19.png new file mode 100644 index 0000000000000000000000000000000000000000..2caf02dab908809f052b412daf8ed91a7ad48485 GIT binary patch literal 2060 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 SdC*b$Pi|h2j(=~=U-J(&_*Y8+ literal 0 HcmV?d00001 diff --git a/资源文件/UI/texture3.png b/资源文件/UI/texture3.png new file mode 100644 index 0000000000000000000000000000000000000000..06ace5e1d61d4256aaa5b65ec3729b170bc4487c GIT binary patch literal 1835 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 literal 0 HcmV?d00001 diff --git a/资源文件/UI/texture5.png b/资源文件/UI/texture5.png new file mode 100644 index 0000000000000000000000000000000000000000..4c5be45042cd221ee57a75b0b1848ed5a2934c8d GIT binary patch literal 1860 zcmaJ?3p7-D7@yScrm|Y4hb>)KXv5sO^Pb6&aZRQ*LY$p)(3rW*#LS(?#o(xp>KGM{ z6ve?-$}04tr={Jrt0k5#qN6s7MQGaAZd)bSdzjYRK zZ03+iBnzPr5=cm`>7D&C@y+boolJlp_N@+yOT|mvEp&aS5PT#;9~$JrA7l%O%bxH3R|^CU`Ut z{Fjti z8;A%dV-YtVD93R%7lPvBZDqQ z8dqQ{z~oU9fyLrHkYM_63QDy|^v1DDH(4m6WRPB>hF~%UQYuY(O<3#jK=dt*X{~iZ z32GDyM0HrKR!a0E(tZj|)b7K9Oojv-E`mv8m8c3AB0P}LkYx%P7eP2|0g)^VX0c${ zTfpH^_z0g$74X?KCW8)7VTCFkE>TI*DXiixmi<92*Gr2^a7-J7VKGzP^Os{drjui8 zfJzhsSS6B36)KbF3sZF`$)Z|C94ZrNF(oij9_>1EzqJSlKkGPh#2si-ia>kg2!->GhO~7$DQ}&Eyi7H?xnbh=JDKzZTKsJ2yNN>YCFW_s{5ymZm??vE!|24ebkV7#>|q zU2l6c{)n3gc&aa_($kf8cKkrL+ufeQ{-Exw360m296dnZmVnOXzbv!fuv{IOn(-2B zNq08J7Dm);%U+RXOO;2i^SiOXKs&JJVJX5Yth-}uXfi9ydi`{5r?uijj9`@0Z(kC; zvG_{C#eMCXm4z9nZU<+l&NXwVfw#I0zNPX(Tc_l|_U)A$H6}{`Eu+Z%g+^}J+dEADy;ob_p{eX1 zrnhKfg3}L0?~wjX8QFGVz#VO?uG+NCozCcvv${OwIZ^d`hI+jJLFm}MSGB%33LBa& z4`~c#3nE&FbK}a}MoKNM)1z_=M_4@(hBBVYIPTMF@z`Zy*f9>ljQS|0v;A0c zt!>HeGif{PZCdPxN-G<-+Id8y?&XkXw{Jhx^C+OGGRn~woOvRobFP9noaaO{9$)=x z?0o6$*6>W{io?hCU50rX?z9DKf+eG=jb#B057x!wK2*QVTsAjM6FF+vy1gQw;p$NG zBi7cOd2Fku#y=QYdb;P)`S4qtIWf!kI?y-#xhhc+<$;I7^;-6VhWEkNgM$sRT%DWv!3_Pr&T zTnTeSjN7G=PiR&HX;;RXizxP=nHy#yX2k5jEAC~Do6RE)FPdZdX$I?@>AxoQ_CqT8 HTT=c3U31pk literal 0 HcmV?d00001 diff --git a/资源文件/UI/texture6.png b/资源文件/UI/texture6.png new file mode 100644 index 0000000000000000000000000000000000000000..bbfe051499e2dd2ab648e45cb4f4b73d96185de5 GIT binary patch literal 2186 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 bg;W6fuCa0n5of)&{)X)_&Nii10r7tW`RNV2 literal 0 HcmV?d00001 diff --git a/资源文件/UI/tip.png b/资源文件/UI/tip.png new file mode 100644 index 0000000000000000000000000000000000000000..b933df65ee0dc2e94e27e6c3dd5d3ad6db25adad GIT binary patch literal 12926 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 AT>t<8 literal 0 HcmV?d00001 diff --git a/资源文件/UI/tipBg.png b/资源文件/UI/tipBg.png new file mode 100644 index 0000000000000000000000000000000000000000..3228ebb2dde7566d93fb75ee2c74f1b3e29d7ff0 GIT binary patch literal 65919 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


)yWHNKlKF!eC-ZGzM$%l^DGwZfo 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

Mj`u<&C3F} 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Ðs69} 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

Tsk!TV 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 z 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 P03O#(ZWvb^x;^?2fI5;6 literal 0 HcmV?d00001 diff --git a/资源文件/x效果图.jpg b/资源文件/x效果图.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5d2e48f2dc15185d0562808a39dcda32fe6ae2f2 GIT binary patch literal 107647 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 OpA4TH%sI>2lKUUo<l3^w)^1&PVosU-?Y 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 SdC*b$Pi|h2j(=~=U-J(&_*Y8+ literal 0 HcmV?d00001 diff --git a/资源文件/图形/texture12.png b/资源文件/图形/texture12.png new file mode 100644 index 0000000000000000000000000000000000000000..92a608b6a19a52b7219bd0bbc114fa234486fd07 GIT binary patch literal 2303 zcma)8c~nzp7LSMsv>?_2MFbxKi-06~L9#)>gcyPnKo&uymXJJ1gyh965OM&kjus+J z0Ko-8tAbQI!W3l{Myu?*78gK8a6xbzkg{9m1;NfAPG{aZ@B8j|-~HYDyUY2`OZN5l zFwkGCk3yjgJXs7sWS3}OT^(dqKRTR%Y^JiU!7_h1LKe%BKqwjy4u=3wAtw^@gE+jn zeNB)H3bk~DARt&4%=V&iVIhX2vB4;WVg!vsxwt9B9BvdO1Hz$5fryHJckMbF5b&tz zASX7CEp~_a0+vz&`76BxxXLIlnTK|B1zZ#q#DNf!aR7xdS|p_?sOWjW6hzjjv1nl4 zL>5Iwew zMxsf05fncLb0HRTqN4dSnV5pb#>U2CVjVHCBoYgf$%qd;7LRv8EF7e9A{j^FAd*@w zdSF0Ou0$Y~31AVR@yH2>CP7GoFASo=DaFKpQSS^B)+WmPTjUmE@!hpGQAtaJ{GN@=ogW(By6eg1n zx)bR%B1j~H;8rG?jH5H?cs!F%awIry1{blOBB_ic;zEm9!5>)ipJFNQ5{M&%B>^xT zz1TfpJ}iT!d{_+NkwO3)*&MDwq|w-Fs=GiIk_ciT9#aAff%)=K1fQWmW{?;}5{XD) zg7ft0G)Is|cc(iN2q41=#Gx0kyw9Y*fF=D`EEXYy)%5m1dcCMZ21p}*nq1`YY4#xz zGVl^)vTxmqW};Bb#GVXVfTHJhjt_qww5C2b!lrvxP?G#J_@L0UG(SYkf>F&HIiIAD zR@qR;Hg=VTAMGmKXm>l<$)q~Y2v$ulw;R~1I$`0Wn;(*WQJ~7=hy2RUjxKR_KHK3u zbJ_4_+3BX%*Tmkz1H|`lEuC8?PEX97dDl^tpV{m?bfWERfTaR#59aA+d|c5ijf|dG zTL14)qtof!p5=C}7BeO%8oq?fFHD`wRhOWPi>OJ)hb)h;obj6RJ)Ybb%nbbJ!4|V^ zSy*NM(S}sTK(Ef*(%0j(yzh6UVkIfjUQd%8kKc{C@Mi4s?Xd#twSE(WeLF31*||E0 zZT3{%t4Xx#$-TvI8ox;JD|=7KwWy8U4K$Yi;-YFH0^JZLJTPp7-XYBop)z4=AD|r=#IrUI098fSbUQ44;d*#!n0~Jle ztRu?~#I8K%X|~?Jmz;FwNkm={FM4xLddl+T!cc=XXVddi)LCyHpZ~SoXtgeW?a99W zQ76`mu=tqT#~Z!hnG7vS^R{$lxtrw+F3XDvuBSWS2ve?@aKuM``{LAO@mIX7f#gFi zy;Z$O+a@0f6P(3|FnMm1HCwi2mOWBWXw^qXJuBsx5AH}UN6Vw0;%W7f@n`NA;YW=T zI#<{Q>#Y*48Wq1$2khg=Sg9+jUbX$$csi}!a?keN7xLs>GCyAD!jkU5-9FU6R(Pc~ zy>uC9n`@i6#}Q9^IJ69TOn)(OY%_tCtyWg6N#8iRPW`LCK|;}bbqW9bPF?)2RZl*_I1A9pUX^;fHBTkYo(*aMG;^HT~N+vk=h z6(GFR>#*3Nz)bw;mb zijwk@85>6nRPDbk@RiRko6AT9bW1#yMkCf~nVtE+S4G4=Gah`lWQ(1R)?>@Y7p6H@ zcQK`;RJU{O_Y`mG!lhG!+7H^Ns(Av@>A6&ga-3=6oq?i_FvRrPT{{(_S3=eqe68$j zweL9V+nnp6B!;i1eQmQVmmoiPQM-RkWgSmuu+^difEvrfezS zxuuCZrP~jNdN>(I7CNu`C0A9O_pr{Nl3=oLJ?+T-{r03iIXVS~tiU~nf4^k`R@Oux z`e`KH+Q9q6P~)s#=Ee9+gBG=p+LeSP^QyJ0oJexcPF3lx7Vczpjdpj%IPun#E~0Bt zyM3|s(f962LF{PU(?s*Hd}ehqcd}yEPNy|ZzvUdh#khaLPkLWaUF literal 0 HcmV?d00001 diff --git a/资源文件/图形/texture13.png b/资源文件/图形/texture13.png new file mode 100644 index 0000000000000000000000000000000000000000..31682d07996058477f73f6f7acb8d7409808e14b GIT binary patch literal 4487 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 P=dTfW7aw8`ft3Dl@qNaN literal 0 HcmV?d00001 diff --git a/资源文件/图形/texture14.png b/资源文件/图形/texture14.png new file mode 100644 index 0000000000000000000000000000000000000000..ae60318362d1ec34d6d445e8eb70ee8808343a09 GIT binary patch literal 1743 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 literal 0 HcmV?d00001 diff --git a/资源文件/图形/texture5.png b/资源文件/图形/texture5.png new file mode 100644 index 0000000000000000000000000000000000000000..4c5be45042cd221ee57a75b0b1848ed5a2934c8d GIT binary patch literal 1860 zcmaJ?3p7-D7@yScrm|Y4hb>)KXv5sO^Pb6&aZRQ*LY$p)(3rW*#LS(?#o(xp>KGM{ z6ve?-$}04tr={Jrt0k5#qN6s7MQGaAZd)bSdzjYRK zZ03+iBnzPr5=cm`>7D&C@y+boolJlp_N@+yOT|mvEp&aS5PT#;9~$JrA7l%O%bxH3R|^CU`Ut z{Fjti z8;A%dV-YtVD93R%7lPvBZDqQ z8dqQ{z~oU9fyLrHkYM_63QDy|^v1DDH(4m6WRPB>hF~%UQYuY(O<3#jK=dt*X{~iZ z32GDyM0HrKR!a0E(tZj|)b7K9Oojv-E`mv8m8c3AB0P}LkYx%P7eP2|0g)^VX0c${ zTfpH^_z0g$74X?KCW8)7VTCFkE>TI*DXiixmi<92*Gr2^a7-J7VKGzP^Os{drjui8 zfJzhsSS6B36)KbF3sZF`$)Z|C94ZrNF(oij9_>1EzqJSlKkGPh#2si-ia>kg2!->GhO~7$DQ}&Eyi7H?xnbh=JDKzZTKsJ2yNN>YCFW_s{5ymZm??vE!|24ebkV7#>|q zU2l6c{)n3gc&aa_($kf8cKkrL+ufeQ{-Exw360m296dnZmVnOXzbv!fuv{IOn(-2B zNq08J7Dm);%U+RXOO;2i^SiOXKs&JJVJX5Yth-}uXfi9ydi`{5r?uijj9`@0Z(kC; zvG_{C#eMCXm4z9nZU<+l&NXwVfw#I0zNPX(Tc_l|_U)A$H6}{`Eu+Z%g+^}J+dEADy;ob_p{eX1 zrnhKfg3}L0?~wjX8QFGVz#VO?uG+NCozCcvv${OwIZ^d`hI+jJLFm}MSGB%33LBa& z4`~c#3nE&FbK}a}MoKNM)1z_=M_4@(hBBVYIPTMF@z`Zy*f9>ljQS|0v;A0c zt!>HeGif{PZCdPxN-G<-+Id8y?&XkXw{Jhx^C+OGGRn~woOvRobFP9noaaO{9$)=x z?0o6$*6>W{io?hCU50rX?z9DKf+eG=jb#B057x!wK2*QVTsAjM6FF+vy1gQw;p$NG zBi7cOd2Fku#y=QYdb;P)`S4qtIWf!kI?y-#xhhc+<$;I7^;-6VhWEkNgM$sRT%DWv!3_Pr&T zTnTeSjN7G=PiR&HX;;RXizxP=nHy#yX2k5jEAC~Do6RE)FPdZdX$I?@>AxoQ_CqT8 HTT=c3U31pk literal 0 HcmV?d00001 diff --git a/资源文件/图形/texture6.png b/资源文件/图形/texture6.png new file mode 100644 index 0000000000000000000000000000000000000000..bbfe051499e2dd2ab648e45cb4f4b73d96185de5 GIT binary patch literal 2186 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 H?%;m`lGd); literal 0 HcmV?d00001 diff --git a/资源文件/图形/texture8.png b/资源文件/图形/texture8.png new file mode 100644 index 0000000000000000000000000000000000000000..2caf02dab908809f052b412daf8ed91a7ad48485 GIT binary patch literal 2060 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

cKQ-Fc21?=T@EIE%7(cNq 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 literal 0 HcmV?d00001 diff --git a/资源文件/存图10.28/cictrl.png b/资源文件/存图10.28/cictrl.png new file mode 100644 index 0000000000000000000000000000000000000000..b59ddb46c7fd7e441ff0e355d5d00e353d9629db GIT binary patch literal 2637 zcmaJ@c|4SB8-5jSK1b!Gk}{25F=jNw3_~(@BL~Bjtyx}UVivO)%R!1FNuo;KllCo-aE<7)m~|p+A075 zlpGxh?f@X?1=(9xEQ8*nP7DV6Y!uj%1s*+hHhUBo<+8hCrGa8Y6MW7#!LZ_Vs~7 z(RlPgoIAnpYbv&5=m_|E?_7 zcW=JH9sF1C|0L#nMsPudJILnY?JZ2b3x8reGurFETm_OEn z`61s|Ed9q?On-<)Kw=P!wf(PJf7^l@Xwm%MxzOT!?}Kcp;dxMJJFl441b}6=js$DZ z@V?=*0g0X@_4?M)r+kqpEc%_Y+8Tw88TbwI`q@V}{w!a6Re7ttfxG1(O-v2iZ>cbG z4pzR#HqA$Qms`d{nby*`+6Gt8CF<#qZJlg=_?SQXR>T;6ve1%c!e@A$+4FoZPNQt> zbuRyOLhGkjqS)8I*@Zq`3Xh%(2LL}M=+-9#Lv<{_8RC>Nv&J5qmatC_=*e=63e7Q0 zV|!CCrRzD2C54pgLbrISxNuXPrdNQ#MO}E>UFi%gwaY{IXb;RAxI@j@-&V(wko|58 z=e;B~8T;Q5V8uqdM8ZXQPJ*u-kW4I$tLI33quCxHuS?tAP^Z&1p32*%a}4Y9De^_e zDu3di;+-`l8c^RBBx+P7Gaphw1JXH$#~Y%yRCOiL z{iK+rt_rEDdy9^GV}3eb`DK}p-mP-eIg8yfn2nLc8#GX|)*@F2sao3JGT(uCh_Q!U z*#AV4)R#8oz|V9d$9~4Ts+oedH|jc0pA71(kv0daL(Bu&xcqXDC0v%JRy-~nfB02r z2^}%|%SGnoxgnj+v8yxRw6C8rF3AoqMIAjRoWyrb7cB*5<4Wb-v{Ft*+|F7P)>}5* zk|NDZ^s733cD;7w%lQ4ZSN{yYZ7_&qRE1R>x%(!|(_S_`#-f*6G;&N!J+D=y;6CZ? zXqVYDlyh?K^&C9qyq>B6jFXDlNgi4$p|3j_VGeAxbkYtSA%&~!^Y!@^DFMBy8&Hx@nI`+9%z`I$)b z-p^r4A>}O(1J7b!+vN9bd13Q%ewvJ~VkG5uuZWEX?f}km6UeY`>#&||l*aX?qB6xp zgwhydi)i^xwx)jflBvS1pIS`K8(iNH?>&gwli!jcvn%bZf9+2yAy!>D23%hP%o=z- zubS1X8Cq=~EUYr3u76L}b-$otc0N05_D|Fwm#GK)>($~L@9R2}LS<{Pw1J?UYs@m_SDo2}BB22ubymO&l&GFlI4~^Ty%`3|63;YvhQIj8NUVluC z{F-oV9nj`|(y8i$>Dw%F>90CYG0%$8{#`lg^$&>LDaWqIYhauE(yuouEm!mYE8;-t z*-sa$PZg2cBUGLW6OZJ2l@v+TrEnTlSYqMvfeUZVd_&!It?;`I{5#Kj+6SQPK8B(P zoc~R~8&VjWzI%}LS&R$wMYIaxVS}+3!7|to|g!IcLk*Z5_ zrAJljWVo3Lpn0NhZ9y)oZe&jlspL@qD{;BF#Hm4bIeo!DAGbi;RFHLLo*`+?dRCcl zK@b-N{xTjRb@tg5mfDfmE?WiMynL^Y*Q@l*XL<)_F7w(z%)suZ;<33BUWa^DZrEc? zr|XUCL+w78m_OqN+9yjhLWHSnZGFT;jQOX?m;wWx;=;*I>-36$TLO$@X+&P${o?~_ zSZzi=g8MPEQFzFryQ5*HO|uTKbSC}2m@~K+J+SN2Rh4OW9V*H?S$wOc%j&S_#M@!K zcu4oKn0MLfz0UTEDypKT z;>*co#a@hYvO|Bf&y2eFhU%FW8XcXLacK)GAOP%)ZITl>r}i)F+sgWEc}HXJXdP>2Xp>&gY*1;9BOO)A9bkq^>Zo z?{2ElgCXja8#+O?DFhC@vzAn*gp@Y1BI9(=#rv`xD;1$X1xYfJ>#;ob)a*#C+%fd zh4`mG6z=l+?mA9Z?w)3@mH-(GCv!`%vV)nmrM9J+g}2L~<&y*wqphyKyS}=bDAdV; z%k0k>E-we?CusmcT*}MY3~FcT4mP*6wsn-CKW^`$2isam(CZ1P^Qb$^S=!ht`M6r@ z_-N=tee9qj7W7h*U~wdrlit-4G3J8J!^F#kM zo2!MDsP+qm|IGFDO@iLW-Q8J~o7>aVlgksr<>YG3%_}1Eq=S!}kB{?d1gD#~qq~_G zr=uIge>J?Ybc4FuI=kCCIfDOaG&6VdaF?Kevh?32I5_{0T1U74xarAZ++JqR+`L>o zf0p#$f$Hl2@1YJ3|1;XnUEA{i*!zD~?56AOY{{){>E`6&3VjNk6~mvYoJHkaEzR7W zTy>qC?EmXUEgL6yCpQ}>XE5KBNnjRrGpMcOpC_z;MbyidtZ#s6-L%>OFO{bUUHpV~QVkK7d<)W+B~B>V0ipXTz*eq9M-^ zcWZwTt$F`RGhgzR|4R1dQTt_wTfz3Sr`*cX&-bDx{>&71oH5CFmykFDll~7p)GO2% zsS5_8(w|?8A)z%voE>3k+!F`8yo>3vr}1t9V`aD5kO=~Bk-?_^WRu-2E)(a&WU;#s zWw#Ml+QarVW5Y{rnH0hqncWS1Z343ga~=!T8+c~e^VF>=XrGV$v?$bBw|nJd2oYQ2Ss-Gj)=ao{#ftn8XGv5m)PsW)iEJ)?%4JdG&_3?uPGhzGnT!{T3u`qf5KP!G z2VG?wXa+J3Z2-cq=!Wr`UK}lKcXR4x#>4xu(WS#ZxU9;!henspP0P+u#2UojicMpY zQ`O>He$Mz3E6^aw9}95wa=L)+GClhhVuhXgDu4F*fGV0ak#Ky zdi7Z=LJ70S%(y;VDO#`WcGvynfyju(Pinl~#g3mwYiM8BM)c-q+pdsKNqYKV^fu;X zXLicKzVtQcR=Q;_OG6sGy4}GGbR!+}py4Nd;nkn}ZZ3(U56^?9u^0TUoL|*Gt$0I4 zhSDe70ZlvKz{q^y8Msbrsy(vVUy6PT66dxYhmf7jaGatdV`^ulqK^79I<4T6rJpOg zP+6_{7D)#I!R-0nZwU5+gqUPKcw}UD6i~P-Et#1xXLvtb#I`k5K{$}MWKoT0P`tsy z9#-v-phkHM;pMUhrOi=LZ6O&YXNEMHqViC}ei%xffN=;S zN%dxCZod%zwBx=SMwlyz;xk|ukJBGn!+@mw>B4qavc#yWsHh08C@*hWZHd!}0dvGq z7h#z?CIONE^Kt1zQ4wF9whdWD#jx055MlPUFFsjR_S?(%6%{P2FJHdQw3C^Eb$#)z z%*<9tLxtV`ei0s z{Rg`i&qLg`)BfuF+jqGeZ*8p4m5JGG0ko_uZ`iDvANooeU`yqnV2yTN&WGvM_X|z? z9s~cGelLx&dPxvKWiJ$BH6MlskJtZ4${fxtN~u#0wP!@)775I&ULj{RI9j+j{4w8j z8xcPHOAiDO*jac@J<0Zjf+sV?rCU*e!ssy45UMo`B(P6{T|RZ8T`OxNMP5>lkbiDS zZg5c1w6!A6i8u?K+Q%PV&534#0cq~qA0Rcy1yUy||LZ+V;NWsKH3?uevHB2oZ?l=| z3M}o_YPZwc?C_%6S{<}F?uMFB+@ONG3!cEUQ?SSJwE-neb`iAF5FDNA7`1mdVS%o? z``O*u{`G98W<3`Fz4HZ{NP{>J0t}>0$!>+^*qP7<*~#&^Nw0t2IMZ$oN5{nk@++0q z+{;*nY|F-ZIN-rXL{3N_`_!iUTVXXPmzG)$Qe7^G3b}0mF1Jq|7xj2NN^SI`3|CR+ zkW}(FRiduPcLYH3Tewhz45)$})maU7u7sSPn4k7=YhjDQdE`+RVNCn!KB+{B|L!QD zFqho;mceU#hq>CQLPts7@=m^Y@)c>YX=WHR@~RFtzzX%F8M#zQfK;)TxT6Q^ffgh8 zs~0T^)*e?LH55Vn9saww1G~hV50gKSD}B`sxJSd+^u4jY9%)HPNKnMt*r0T?&xxrm zj9YZBaGU$%5FXWZJG#=4#n0@_c(J=|VFJMs)$zd_zZmBHYh}L~xeaMXf+TSq^j^M1 z6c_Ocx_$&04in30sF?N59;3UB`Baf^H;&{;1qR|fTMRml{BELQTto|SYA57+wkEoF z_QB)kUyoCewf&>z$_fCpev?r%3FpOiLjke0cdLsgv9hB%mqE2?zEdfHzoHZI2A$Zk5Ed|cbO9GcBD}g-|1i}b zaHPTenGkAZNTA5EojXGsfzAClIM-Bi@}P0&F4E*{8maAC^?&fJcSeFL&KJ>Rkr;ib zFyYf?2LJkFZt#2LQUE5{89x~+_Iw3gHRS(|&WQ4+@gU9Hc3k`4#lT#D15_lfZ+I}A zQy@-euAe)?ogM7RTL(qd+|v4B=SUq20UvvZT4VgZ#^T&KrLF3fc9uYD>szWqxE z^}#BeX$)S*vsNj2x?Y6f<5muln_tIV!E4Xy4I#0|N)Ms{TQn<-=c#fa@r)lf^louf zF{SmKZYOD#?MC_3A+@VYV8zD7ZmqVm#|GB32__;QtudwqZLbX>EJHIPk4PvgH z#0Q#kt*;kwkuwujuFFo^^7#hmhqDNzq<+BBZjXY-M=N`$kd)wYNX@#F$~QhT)&A3d zUPs#tzJ|W#b}bWI3V%W{bb^wrXF`D(?UwQWJk*pOJ1%0Z+UKWoDnBEel#&_Eu6o4K zD9&;)pYol;GM~>(xvWOF5+(U60QpS=D|5JH%BTR!g0_g4Hj0IJTxoD@=1cs8ovGe7 zYAWe5+v<;#TYup?bbwWM9T;qv?{*jv!-)8#;S}1&S*C0mVwa7qCG9V*En*=20T^nO zkOSp>IWRZA)+`i_J&-qURb?Msnds-{TG0LchP^XR;4>_%)UH?ZHXU~cmC&??7#^qY zXKd~#Sa-^o9_+U3QIfxLZ9cOX|LKA}BiohfZ%jx-3yAj04Sm^kymY+}Xi0y*q_Eb* zQd3hVwn#Kn@S205$tJC6-rY%7Q$ti|8=ozVHlI^n3Amh5Nqcs1E?DQ#$!hVvx%N6* zTUZ9`iAEp;iUIs&MrnMSeO-!-vRJod^HcYPmyVfsnjj|y$$!!r|3(kOyvu*hHM_jJ z&v=Z3fy}3&Dxk6l*9@7mxr01oJegNuKjz+0-JnPj9Q?GD4Czr$RPimEau%Fop{`gQ- zn=CF1z^zf86}pJ0)8k75zCt^y^!b#%r2 zI`%-dQ{i~L`|&0WnXZg`BsgNnH;no&uki4BEivP!omn^FDWc0`z)x2Xr-ffH1>0fr zyG}82?R?_KM+=r~-Xh?3h9Ip$Rs$c-ug1zueBTfghGHBHbH2vghB}x1;U3hv9q~v` zFv+o|PA<#8TaiiEomw5kTr;HSD9=Scn`>k>82YMcdAZTessR`0Y^hc($cg*{S^yRg z1c;4iv$&Y?A20?o0rLi}!?l!cZq3xQgYld|oQDp=$)+!9q5B3%^>Qb$*#`>5*otBM zbW=1ESYgNYT(8Zp%xQ#J+K7x?6FAexZ%bDp!7xk_@Bl;9p_#?xVoDYO7+3Sz!k zkESYPb+6kM;tGw`l~HXv_q+e|fW*M`*xz)CT2NV3zxu-8OSggp&vY{xcmNo{_^tiD z(Ji&9xPbect=sU4d*)kI6d@z~cy~kOWM7Y*2z5BxjR6f?zN-x<_;4JXVs*iCMzupD zu!~r~uv$_c+{%sgmQ{frZPG@&hj5`S)Q1{-(lE1eT=VGlrnoBVoLbqjdXbd5oXH2g zwu^I~*;l&6Clwq6E^v*n`DnE2jlzY~rC)q4LFh`@a>J@_pkd=_ZH;QnjR37uF8OnJ z)<7}Dj%$A-b$=Zw8VDLFROwO!a3q_emMw56C8bL1R)>>Ob8FL*EA3DwNf(-7lhL+R z+T~#(LPqZ|!(rRUgce;5T;Z|HmsbWBv*XOi8(KS~+Aj_8iJu>xO zt>^|*=rZ4o3+>ia-`l^N^(HCV=bp!9Tc#|x)_kgJfBVQfOTjV*>20?_9QwQG(%ea=h9 zxVc}byjlS6(nFU{%#IDujX;}EFUN!ysO97j0&;WWjr=-6;@P($Jc7D^J%w&SOWJuW zE4iZbRz{t1dEXo~ik#1XNGtbAL-%37#~d#KhMWpFW}`>v!`9#;L>KLhzC`xttVZWl z5Hq4kIrRXZ#3X@v7Dzr%9jXs7C}b2;I6VSVR0hNpv$1c@!+aCYeAh3lcL8-wF^LXx z2SNwwdflc0qHVlbJyaztTWYg-BnN-!#^BwrRDf3r3IqkFjX(!G{A7t-mw^F@N+lRs zuFTLyi>uXmFp|ubfvH?4lO!rsCcRpR(T2BJS1hH0$OUdo(OluCXh0mMqDT zY~dK?YdqbJ5Y}PAc$($hGdS#>pI!>3fNklpY%ivA|Cv{t9h!8zwwScor?^hZ0mDHQ zDlp4^ESK*eMjFdoV4&)RF}Ot^7Et(>9-9VamA73y&>8N$Qp4CBHef2&;w&LL zFBI9tTTSLDGJj;a`V3*Sm07)PAFlud`YRaKzC;iNv>+d|e;Ltz-D*M@!koIi3NX{B z+tWm)#bM1YW}JN)Y{>1vX7&1ES;+KekL)i1Vmkc3H!;g5AMLD-C5aTU6XYs$d^$hV zM6c>^i73$5q3}}=za9*GI?=$sb)k->ta;eauJJRtdfV(obWJ2aQ#WlvF$q}bISG&( zcj2z=^#r<-`}#SMSN*7~mQWFn4<3QA!)Y*fOQi8oF0SqaybiNP8~-BDeakh-t|g-R z7+}pOj8HBW9w1rY6w|80jLr0Xz0O2a*~^lKcM z_aPiVaF*H*D$0b+oV%!@slw4YzW={E)O(XcQ9J8 zQ0DIfhob_xM$|=NQ!1DHAv19Ej@!ne=p_LqfVugs$G=mZyjL-7N4rNJ7sguKzq2b9 zYPPP4dwKU^%|$U&%%a#B&qJb-iU(;xu~x?F3_t-c86EnYNpk$8c*xtO8*X5ugODcG zT#ZBxY-j-Fii&Ou1E&w)q>3jtl30&%bV_=mFj7aMUj4lN2q)qb$X@fvNtT4BgJqn6=vp}Ssp-hvmP zo)P%t`4xV35T)uf#xL>XxcjAg21OTk>S;1x z47>fY>mhD6HQMru9dkkhaXLt=+kSF)|4jH~c$W+zwyY!4(_}3xX<=;c3fTNb__-0) z(@{fS%@`ypAN=zlHg9_qUbiNq zT5%_O(3dzeU)7?|hz?rL4-Yp*Q#am4f(e&=NIN@?LfpQXr9ob9yKh*%f5#I){$b#s z?4f+3ObX-0Mq)w2@wy2>LW4@6s#DY7JwkKAST6)|%TNG4nu@y{gcP46!YtAxuot{twZZvLxGXw@b`#2Oyd>Qu z`Oq(GzkO6+J!STafnOvbuaYduO8RV8Fj5Z}8J|jl>Qyxv(HDQ##&72rmBR^OG1mYa znBzc(!bTB!Z4FZekScL> zjsxAnbsHnp>?96hfzX+yv7qvU)RC8&>M|zvchJ*ZWDt?bIAK{Sa#z$22*1aGV-fKLycb5@v4z0gNodC zQG7n=hI0(u_(|})m-V|6djd0q66rsB;c%M*P>~CgL3c(#~B+0cYN7 zNM^&%TIl{|WQU2a9HSvaJi;uKoA63OE`aD+nJS_r^fJgw_ceyC6|-egeWW)dNoP|g zlyZDg?C+rkHK_|;!{9+l9+MgLg-Zt{Tn61yA#)wh4QWb}+*o+!^F~)ei^ubOS1`A2 zPz;`^2sa(H3n21db%A3u$z7#Wbdj3{^byMgT2Q2YobgKc(hT*=H%T)=XLlcC*K_78uL9KohN^&dgPLBrL=gwZZP+oOZ|^pQF(z8nE}O;rMhLqB{Kd)22t zZg7QEErI&kz?Svuv-ndEFu=YJ&JW{hQ6aBVVv#f-sXE?s(E3X-t)`P*v=-8F$f2!} zQsjVjM-sBY;iiV9g9L7uLr+Y1-EE8$nH5OYJj@orDLlhlN0(N%YdK?eRNl+prh3MO zDf-)K{OHf6736I_wqH^G%T#V_SW4UbpW?h=qXIqTf(EwF5#H{#akDGI!NLLu!LM}t z3~FU>IT4B~_mY5oeJ892o*LlT-T3vyt1?D`@?E=P`%zKk1&@A0DPtL_kI8BbQ;(hxRHPS32r}Cjv`8_aTgVj)M}V3=vs~`PYkAAX%`2V&W^%Ah zLIaJT>zE1hI4$+XC9ZU&Bb7Fo<>vR7om01!X8;zQH_qz5zH?tz|M64;NT_;bJO$H$ z+;nFJLH4zztT4pr7X7LytoXS}5Ud)X1~>beb?a^o@VFhWjP$s+;8a+B44peITE#ud z6xG%3)8di4#uyje=b}GDS?N6(*$ENyES$&6z0ivgnSy3x$QdUO_YnYMvqbjwPdo-4 z)kk$?;-f%$D5x-8brwIr$5(}%l!T zR&msj@E`-Ib&tq7+1z$K<(9eP-uJ|9_Xli>C!*p!tW9x;nn~uf`HLGs(6FkJuLw|J zk>J);>n!bQCT~2LBi1!K6LHBG-o$wah0Vn-?4{qe_WHY*SUC9%mXBz&T&T3`lEA$Z zI~RM>63slk5HgZiPuK8mnRcF-8-AcHtAFyqwTcTf0R2(V!z>=p3mga8tLjD>auOKY ze9mP%%t{TTGcPG1tK$GO>~nS|QLS_L+~p5YAcL?znk31W8W4I^+(Ua3 zbW(&6_|;0OJb`@scX2-M&Hh2}cI)7{q_NWC;(Xd6^+!u_6UHV<2!NPsh7j-J3H+1oev%5Bm>nFE;MG10qW(dqkW6`u*^XB!jHv`^xdj@f(stHBD9mTm>Fq)mcta|{^NpzwPZ3tK zYc&~pQbrI(*W++)-GbY|Y=GYE14GqI=^2g%GQW;wLiYE6P2oion}|WdfJKl28?krC zyLioL7urpbdzFVhJ!d7i7O2C*(vCHxP&C}?-cf)zBRLs9e?alOx{+yUP3RyOhcxlIET4+p>=g{+ z5JeRhuPapS`A&83I-4Td*Kxc9bsI8{O_`PQ1qW|0-pV-CvyuDipqru&h_e>tT6zbI zKTwIg-O!wg4KVV>gg(DJMVuI)?k!gG=4`$~xg9Z7#-sNnoK`7%3Q{)g$vgLAbrcH7=>0KA!{ ze6Y_cy&~j23&v#i&T@A49*9JB(QiVlzf5Ap&i3^J{KGpvtkrN-^kp2%VR}v z-T`^CSGwD>xHw?HU>5(;ac!muHm@P)FXLyD*<$(*_dXZd!aL)BG2V{VR(5E)QdbKj zpxw3|Y{PxbKC07_2!)K}kdz^%kDi!5PXr%B(V)Xa+RH>5rfW>|1DJH;ao%*jiCatC zI@gIW9{U-4a_!gEn-%0^%@e6es2R&4T39Z%baqn~V7@DY4P*2U-0)kA`Yjs+SXh#l zxt3@G=p7tu{VlKmbOjpN?;SD`w=#P7z-{Eqc9lZlcgSOJgTI)+Br*piC&FxnRFA}i6Y`b5guIkj=>?IfZXgE- zOPe@F#?1r9Y6B-8+c9ZhmNI|>%iH=W_%MYRW~j(FlaEN1YwfXg8{*}sSBr-hlr>R4=T-^E%ioSz+VNUB2dp zkvo3PcA7xiSOJnYbiaw00T1$^feC8bOOJ%kOQnns76Fn}uI|$oad>9Z2-FmiJF3q5 zydBQe9%;IJHYLm)vn<>2os7s%4*9kIBJuq(O@;{R%~>JF{!FBYDy9G}F@9>o=uYYa zRbOy%%}inW6GuC4wLh_h`l0a5H#jFL=Ejv9o`o^8~k+U$0I^!;+3Mr1R=ihjkK3*kqdHv*R`eiXs0m`Yu6Yc|ncoEi$~c%p1K8*6#Kky8wU%`v@`n<(h%5Y^wQY%o z#boY1eJCzah&=Ozkan*8PnfDzLp{PJ71MT}*mV)}v&fxf!e}9sh_ae+@<9Y}`24*t z**tc;++&~J%_m%`r{KDAD-oEClA;dMjWJ2~dh#!Jq40tGnc~Q3FR`#F6kL~hyLZ3r ztYBl^ltQMtP0-t4{iBB_J=zQ9+fe}0t9L(|lWWY_l8~UE?I`h~datXcNH(g!0XWPM z7Ess6S*=o9?;6(OlBH!|aW$&j5*MugHnl}RpPg@ky1jm`Pn~S$3imIAHy-0Yhf|dG zTzOIlJn^c6TzV`#- zH=5C~g99AbN(&1~k{E0&gQE#SPXk!^R@nIt;w`hmxZy(x*^jey6;A+jM{Xzx&^2|4 zLHtzWhzE+a*CA(=7^OBMAtii(OogFh1xnKTEmh4Y%~?R^q9jkx=*Zx8RPoF$B?MMeIPvW0td&yF&}Op$7y)6v~#SCF+W70ty&= zhT^3s{-f(D;D`nW$bHw7jwd3`GnGGEsgoQHB8xm_gT{!!F z_Lxj;FNkJK?Tu7`nbmMi$7-R-*t`@NLlYg+MeYg;xZN!sugK zPOnG8SH{AJ+y7GG6g+j4LNQ6-si!;t#;7$rzpfTHEre2X?_IL~e)pY!Ev{6m0pW1P z=ai56C{SA#xk={ywPQC$>zuQEnn{nlsiqw`w-Ou53#ENEuHE2}tfV>#!R~{SfcOW} ztlDMddJ6TYlG@li^qC|dNXdu}n8kBYh5~ib0H>bCB@H<@(geM?DH@tvy^l6^Wee=P6Sd|L4px&pJ2=xT7% zkYeIL#6!b9z#cAQsR#_@I?@^Iom$O@Z%vOOFm0J?aqZFha{=Qt(4)f4TjnPMgFNqt zb9YaMG>%cn@@;05X1OQF&0cx)pE>6A?u()Mx$n&km&G`$41LK#v4J$Uv2eiMjcKvV z18Z<4p7>yck$gFpLbF9?Vben9Vn>n0dSI~4bSjBHVU{}8nNF@0X!aUu))@2fPHNI8Wg(@6 zz6O;yd17q!pGdRwH||%J!zpSuWZ3Gp8MIk0c|W=rN{Sd=1?+}^Fjd~JeynDvV-s8<&O4 zMG4dZem*$_7Tlo?kT|{WUm~X_iCA1|+y9C)k=^5^!YHo3g%mRE*91=-Ve1C12F5kUj@NnE4{TlK*NtwqWC?Y$b#Y5+k?@tK$C|`)M078F6 zC?X3-^O;&|)%Nzsm*_v27ht)f;J19bM!wYd{i(6(IW9ulux(EGIX?n+%CbZyWQFg( zoD6hygq6X=1G(Z_$RkPoN1DU>x!ZZYe^+RzcskCuOM1PWE1^cMpBMgm0RX~?@ymY2 z%6mhmS=s;GYz!lHf4!ILo(*7wtbUbkk#pmUX03n5?SeJC{qhLgGa!4hC+ho;v0y)7 zk8YTya^cj2=yX#uLa}IA0MQm<=ZRvn=D)%UkCe$-(pjCw_Nw9%v|&5Yv${Pz^IDb(S4XI50`pz`GET*6ewX;hC{ty3IuFy}c z)a-0ZLz4oAv&_{g32Ad3Ge~yaw6EVm9?=ZPpYr;dnj|@C!W-P$H-ee7I_+GIA^F>+ zRW2?}_iq94mawO896hNjES^pT=b{NM-&9yB*AdA=-6~cNXrL_&HMag+-5b_$G*LtY zHNGiM4+v*SL&cO@-5d`K2Zj2+3#D^ND7e5ZZtJ!k#_k#?(Kn}+pS#;g)vdLcXl}U8lvkcDmeB`dP>=uFdhE^sqBe~fMd9}j(ElDhWFHk?I+nYtaS~Jej*NOp zQJYk-&bL`c3ZY@wQc>jG4-%mz636Lus@!^VjggLp7xf|V4^%!GEW_b7W6Z@ z&_Qw}GmlwzpNL152*2-`?n*}Ss7|GfY$i!Bh+8h1GMnkCuhgqhpzmbP8U_A0W#(aS zuXy>I6Esm+G4!K@=R}q`wSM${ge-~_YxbuXP)FtIRLMuUmfrvNDj%L1?x}<}63;N+ zgxhtY9`8oRj3#{%z#jVPJf%cdv8(+eg$6K`kBxgD5$FS| z0z>0ktXp9bKp8c%RVB-hxoiw6AJiPm5kJRI_1$@d?;g~`fWg=wzL>Pj?Vg#0inwC} zS;cyez`o}^6}d6Cjj!Tj*+gf)5B$nG-rkYl5EWT!bHXdw*@^Ucm)$V*B_q<`J7A9G zPoJ9sIQVxJ*BCrEr3=OA#klp3B@`FtEc3MlMr(>d;k%c)WlIft$2PK&quu_4UlZ>h zQma4~P6)LTP)J!MK>fhZ&r%F|H|0W>@GSHtpN=r;;aLiitKJP<2C?E!^|6kcB!kvs zmS?N?zJU5rutJ>OuZ5XMH0&g6)2VNNOs5eW!&*71ZoMb66+0S(fd3pWk{xaq=L=gapF} zNa1CL!GKv4?suY?7oP!b&D4_pequW#z7((n@prBhqFrS{!~nBzx=&L3s!D5r499D5KQokrWpZc`;;R(ER!C1ZfNGAq~28*WzMClTg4TYl{4+x&$ z+_FDh8sS!9?t?Cw<-c}N6zW>Hu@Kqs!7OL}A$Y7^gZvq!Vyo7NfCG)U_J&ljuYnkc zgeSk>bCD5y$-#{3AmMH+#Gj%kedcW^gs4`pmjRdPz^8jwjw)cj;pz6Oss$CxA`&^^ zYBTBkR@8>8H6-sJx9n*y-{SWbEMr(&0f!rcn#FA3!iZ%k(46XkZt8hLfr#<2MN zex9?$Mq5;*Fh>>D3LEMIhtn$q^9+f%u`F$A5A&cuGFi8|q@Svsb>j|sgZ{WO95)Jg zbby?dkg=tD7t~JzsTF+vqnj4&(_ylKh~*z5wH6U5fY4HiBihJ<={PXJ9`#&_5!W8= zjL40z1N(F4ud|tjM}fX7@J1*T4oBp=M&_6bP`BSr`t{EJng2u&A%$bLdA>RC>ee_{ z)wAOfMbnt*!S{cUM2UJdP@aV_$olWl&;`0hhGijT%q%vc^OD#ITSw#=8=~RAM~oEYQb-- zK6;cRFiX|+$GgurZ&qM_ft7ZeyO*lx^4In?vv1xGZ(b{Xm1;ZV^Uuw8sDPf$E*f@N z(5dNq=8}nxpZ!Fva+pEcBp=C6Eae=hOO2m4Xg#Dcd@_*H2aM9#_|}3u*Ftxtf^RD* z%OXjN?_VlvXB{)_ApK(SR6{0@$HD%h+gnlEUp?kl8ZA)NNlhAnEUbrHr|LZ-5Gli9 zc9B!)U|L=4&+)lg4{Y&FB${M$++)7$2F`slt~DGLJ(~g8D|1RM>x7Xs0g*D^p=o#lN-q&SbI>+Sv>>EyW zJSf1MXG+*_o;ZD7+x1jn>mohz3GYTV33hMXL^AX(cp^hgFDuRQfSAVXA_6h)D*T6{ zVNi^>>2h-d+It;IDP$9YAF`cC`ttedme;uMW$p`9#jdXtkBO-d)G)CTF-Me@|d$^fpWRDQ>n>m`{>++UmXg=3s-9FOQO?QR+LMcxm^MVZ{xWOBu0%A475V8I z{>fSqE%umaX7LhoaPAUO6v^QuH=24EjX|C&Vn?G;rTzK6N7(JKBK2H1OUo?|Vh&L9 zA<>gpGGh^MA7Dn!T(To2wQkCc;_iyOT+A^yYqS0pUDDkvK(CdVwITV->dB%6YlGF@ z@TsG{#BwYz2f44q+l)^alDQvaZ_l%8(u#ra7h| zrKhXsYE?_Hs%2vo@m?#>@j?Q~hWW+pPJ5Th;leW@K6TPu2fcdSsD}wU(V2$a0h#-v z7G37g=gy3GF-Bs*WIy|IgotgD4BkeLv6&&Hw6WF zoGvRSd@!zw2`>E>nyTVF(Erjez|8kaqCy@(XZKyJ`EnMSX zU-RU);rte@6()Xl8o zoxt=&ZLmNrN1rTS9^<`f{(Y&&@wSl$*F*dTko$ zm7>S#wM^owu=9+7uDh}(QqS|2urk}B=kVx~bGKmryMDy1$tQD~^XxDyZHZ;YByT&z zEj+W!I3_3uS#Z^26s~i&s;&)@+V~)@vx!;EwNj0q;ZdH`^j>Ce%dV=oA;|tSz8~Re z*Vy>+Ar<+v^WUQUbreZ6fj0|z+0FL8VMyY)3A49a)+>^udxghsvA->Sd=*XlmP$Na z0S?p8btle#+*s}*Mmy$uzBUwV^K)~aw_vRzs~dA;4S6WSdTks<7}OLnTi0L65e;_z z93QS1Z*RR2LWA*m&p-8TD~$1qikyXEtfJmyCQJq#iUY+Efadc&WWPS6ljRP{VW?WT zCy82(ia(dA6Soj4@9njV*=$V`X^db;Mr^O}#Zx0gDmc3Yjf7}sHytiyu(m-5aznDX zPbXi&1bkd+JWTs>yM+p?Zgd|R^m#*aGA!60^6uW*hB@~G>V?3p(~AX{m+M(N9xm|0 zdtp`{90~2B-HIr>_vF;|v-}#=x#doIb1xY}LYucnMER40#RM%7G)YQs4FINU?mz;CH5HE z?_ztrdc(`Q_pZ)Nb(yy9Zpg1db^Q?nlwhN`&n@dW<5jCW12zP0((xh>@yp}m#@~E^ zTQ?(ci+=XkrmONPMXSGQHfgtf^C)c-L7R>}0Fb*yWYF49$Yo1xqsTN&WgCg1qJBFJ zq5IBk37c_(&!15|^E9A>1?D3k^9*>}oJvxf`IXl*D9UVIh8JM3=%m34E&5aM^tL^2 zkUX7g-0&Wcjs!-(1|peMe1G1jRLzv74hM7O!X>H4LYg%*qtXLIJ2ip$$Z?8z&QykO z6Fa}E#&#x{VQ{n#uWE7b5rqgOLb zwC)FZW7djP>NDCvNe2TUw?)j->s}m9C}$}V))g{?LFu^~g4^fha!Et7-Ckhzsy#_H z7*Ny}{Nihb+L1LPeNfBx8(vSAEs^O4quEFbvfFk+AZb~!w89;W(rxLMG>5cUh#=bi z_s{5}VPlC`^AaB~DPKL6UWyNJ7Y1mtU1`z=yM69&IQ1@7+v5=rt57Lkis#H99vbbltrUuT*LOd&)Ut3Q(k zwatocd2WGr`-$JsUDu7shJE2G59XxX!ibU})YjXK z=m#oZAiHgTPWjwvr*9%fJ~Na7VHW6X({XoXcuq1=D(dRGao|3*tkGh~VDGcxso{QO zTe>_mk?K;iN~3}*YU#wp9Q6iq@ChgTGNQSo30}!)P^>Ycoj3@Zlw?2)r$!I&g(@SL zOvJ0HX)GF;OQt{dDpCfkE!u{DU&AsOU6gh>xN9I2-nyunSvc0WBhwE2M+U=r%7JWO zBv7n>LF!Y44nA`G4mU2~jjN;Pbw~+9E;tZI@+7lrj7zB`vFJyHUHoE-E9EEY|BD^6OUK zZR8Us)`1wIQSx!cYOO>8QLz}8)PHye_dR8--j<46vXU}=9WN1-7a>)0UCrk=DU5UZ zWF=vcpRjbDdE3LD6L1r?tbrm9!SSi~Jd|5aj=C4Y-L$LDAI1^}s!L_l12r%ci14@h z>dJ;q1q-#J)Jzz3ehX3u<8;4>&!=lQJyK-MBz4n>Os9a@z83$^TBq9R+W_~Ij407e zKkR-tXx+x^{??TK6IB-0fc3{XWp$~a3%!jIl)TkH+DsI6xim!hY zRY{K;Kom`o8mTkd4{pE*MW>&eSZwsA4SnSSwb2kUet370O>Ml?Kg7H76LW>^1GYEK zK?SCyjmoO1k|$fH+c&~Le&c18B-BXR6zt4yAE2GBktf8w z<;8W~s9a$C%jL(#FNB@b-1&+ZE%jWRl2bk?&n$>$e?haxpv6|mMvUZ4OYSCPKZK7r zQus%&+nv(h?HTLB&_N$E?-IC3aJM;VB@WAsh309BZxpmUiuw7@u7BWt9foW6{^-zG1B8B;{wu z|3=?3Ol7gF_U@#77<>?iw0?_hOQ!ErucurYQkwvqV1=+I;)C>-Dc~8VVE&uOfSdrV z%`X!OPeLjZ{lk`aJA)_%gML`_oY*T#QKY(%9#H66?iXJ}G@ zl)E*Q?0qRk3Cd$ZE=sF1f-)acVdH>X339|$TwMAf*HN;<;5IOr_dh>gDNG=q{|7UJ z{$7XOWFbestF;1HmBLPefz4k8u%n^-LJu`4gKpJJ)0BjcdYld_I7|FECC_IB{uekH|A$1?|; zlxe`e{sj2^T?>7Uz)JUM+Ij?}-32&^r0aK?*f@azpd|3b-4ytyn6B$M-yR3P_MVCY zo>`Ym!meOZVrSJ)Fa&+Z^gv=U0+1cx;$-V3CKd-ze-BE2q03#v;;=N)Ulh>fvMOWW zW7btH1i8>c%`w5*ZNRf*w{{Jk^|9#UYGJoIIsUfy2Pu&?C4vW8wM$+5YiJh+MU9UO zsrW5MZ(+4;%nJOJL`O2+1Mo(t+kXpy)FzZMSF(Jqz|71TqK&!6zQ2Ii3S2AS8X9L^OlIxK2%fHHClc!n%E;GP=>-$Br(CcC0eqR$^!caVw#o}tTC;Hlsj2W4Rr3k!X%NC2Te>6)aWcapB$4-U~Vw-=RU68d4PGDOO7eyWa|mZN4~6Bj9;xV0!MIQOxvyNhUBH18)cbav^79M>ha8ZLNf~W4#oxlFQFS zH>+LdED1!N@7h~H8T+x5`IbWf2Ov_*AAxkzsge!&xVWUe@IhFlx^}$uyYHK)yV_49b`}L?_-^ow)lb51@orPtgrstei~`u{igKI?*NWHtjSX+fN)>T0BZ+jH?fcIHx8(MmIT+%_k)~{A_W|CYz^(_0@6`+CCIJ` z9}YT3!HzOKBOy2_F&YZ}dR_v)vU&tMl5bB5wF7f>VwS2#b5DI*r9HAjy!hy^T>It% z9$&|Y#bKgjeKeVcAN%!H;0rH~`{v?k@Z~eGAmVO2pjYew06fM13`_TQogY=~SW4uS z(6C_Ve}y^xL&z8F9rbkxSpW=HI0M@Gym$_nRLws8+^b!~=(+EV^2N@gd^@ZqheNu+ zr<4WXWY(Lm(kfgBYz!N>pDJunhG!H72PT@hE)&?B2vAD4==2CM%7sA2#j4NxlGlKF zCoJ6DCg_LqW~ghMrJ~qOf*mknr+mtogPnr{V8c*b^hbE&G{H^?9q&wvHb**XTE8XL zE!r*g5&FZR-w!(P?mNc!|8uTA4ZNeh9iYD?vrI2AJ@;6kYYFzld!St(F~#C^m8Ix1 z`|^2(I^;PDb`#c`93Ks%8!L zJ^HmgG_WG$B_hZp`A_f;&d&>d zJx+pAg^vWEv&9T}54kc%(1Xs<2ag)M9g=(ud=LoVL`e?IgD^Uh`HOCL5oBYeoMvxV zz%y17lhom2u{nYKOJTs9%;IA*JB$y(!mNajEXKRQ=Mw2!#A*N2*AV1jhSh(L(RE{T zw6lUzJ2Ujdu=GrqzL_gPluHtqs(jtW21V8f`}mKc&-WjradHLt%;&y&H2*xB+@DbwR66erj1JP?%R4~C zz`7x!1qTH=gB;iF$T>~n_+8g;1_W_@{9s>WNfFF%^$w^r@{X*8i^B38PYh!wrJ!wM z?odA`G#T$Y0@pKa!4UmFgIxa*5^D<|Lq!IBUkyH~=|awbq=080$^QlA^hZb+sH3b6 z&ke(CaB&Cc_b$L)!A?Qx+%&N>A4F0APuTrlKL*#kH+Z%XmF<&UTRhYHA!F~Dj-D~( zSW^Z%Q$cGsoz?+5m>fIxpPH1#;U3_XS_51FCm?Lv(aa!X^M|v`%Pi) zjRdn}hWE1{0NGU4Rd-7=uTlqS)CtcHk17gy=8d2o_{C5s^pc8&@<~(*^PDf>KXUDY z1=g2%{bztro@YVMhmp&Ait>Y?v_{UxOD1I`tJTA-> zKW|}h7K^`+z~|}UQ$f5T+^dlib`v%jf4)CTY_{k%S}T`7KwqBIVMH9)hiKZud;Ala zdQP-llpID-z7RYEr=oyo-U-@i-xhWYeKz=cfl(v$8J|@6*$*zje#9No@gOJi%54TM zVRkS{+oln|MpUNH2`mCe{p~!BHQ(-_PM9iy7z8BDrjE)*&X@r}Pp%MTPLb^##^eRz zaq%b&poEPM{Ry9EYNkhWfV{gwYOeN!4tPt@2`UPB z=Cz#X+RMRv;+Jf3>9M|&!l~nDkuAD(f%V-(12aRDFY*PsdLBB~n5NIp(?%TZV5HU0 z0&B3c1B93kurgI0G2QRY1;7!{-N@(Dm5(M@K0vxQsh`llQUVMO0f;>Ge{%6*+6;ZEo(!WK@`+BcpKaWtzfoHgL{S&Z&3DbPc zRb9tW{X^^=UE3UGSH(4V3*-w#n*?CK1iaJxLUTb-z@suL7zT|wRDRl_c>2&z3y%r0 zu3kWWg;63H8oLN;=WVX&i;SW}VEH&0O$TK>Z#1#}9DJg?sepzC%V4L6Cjc^jEQ4_L z11O+mhUP)Ng}ctf%1))J>#_rYnd$mQ#p9k3=Jqp&z3vTIaTsexJuN8W*4J!Wd6xkU z;aq%;8FJ*7om(Y>YwnkXaU~^{rIEHj4ghhSQeUVj;F)nj)5;mHeR2w$mJMO|xRAyS z*2mhDDfw!#v5CGjbp~YwJ8MVq+HM8D_8I1PSvE}qq*Eym=#^^*jq9EU(=a0&@(v^; zMr%>#2^DoAbcK=4Rdz@2NBAJ#Q#4JYgX%5ka-dmROJl-PbY#Ag%%$ohM(AeKtkJc* z^>w!v(z^axXqWBa!4ecG;#&P0@U^j26!0u~!AbE6@X5_K4$ya4LSo$l>K`=y9my7x zY_;>aP+L#kql4uYBX&(DusYv&?Wh5j{8ZQ%X}6w29Z80$tIRe>2*U9O0$pZ+-^k^2 zAd|y#pvS&rOX0L_CTZn#6A`fk-odr=!#y{nwD1J5gL7;>2&Os)2ICu4!QT#s=)_E` zq0Ui9;@W%O06&kL+1G>5*1S;b8!F(@E=UT7N<>{7y>TYbsGX?1^|YQpD_$iNeNa4WO(TDmIMWeAkmVAo>}x_izzxG{NzK8Gmc9JV>-sWEVa^}MjAt0>@6NeC9K`v^31 z@X)mucNPn!&I&qwzTDJ~$&(ALZH9&#rsSxCJ2UL6M@i5}2lJpDJ2kzTSE^AlSpfv5 zJSby-rI-^5NfrrahyR9jOe^fpr9@OI2V^NXzw}*tnMDnNbAZWkfJ2UFGO_BW3j~_> zeL*=UD8l>Cw!-Gw@I-W13;K|~mS3iAM{4og6Nd$E)@HQIycIHFCcVXnD>sIcreJ0=r@pOh}BV$$C;U4P^{8O-|6kq)4Uac_JhuAoSGd0h&1(Bzq-2j~>WLPdIog z$j_GvB7jwauUItGBp0}ESQ1pSbET%T6e)pY03&|h1hbg8CzXsU0~Wqkc=LL$AZv<% zL$>lXXr|T}3>{9LIU5DxEDt@sho~A;QNYtJhky^imh$g>8GK~LypWEC>q(&>8hMJ0 z5N%`H8-1)__Vy7nn(q_t-BWU1VcOtLEb(AFKutsT>GM# zrScSofVN^^6~Z-yoz;8X!}r*nvmDHsdLz~g?_*_k%*1^1AmD390o(`xA7pvH1hR|V zp`ocL;8DrQBNDG;-ko#j6VS;lfQPyE1k*0K*8^rX!Oz&{t{hE*r^5(135M&uYfv6{ z%q-Ftnyg4ycHq{IT~Ol2w3RDoQyKu$2;c#jqU4SWg`mMfxM_sBG1B=;pv?-`XVcf) z07UFO@j7k6Kv&TOP!{UXSg1{XmVSr)t|fj$DWzN;C*c=mLVut`GZv1#%SxdyPk_I#W@=lNKz5c_)xv z8Zg7>+WByi9Y_SjcqhYLZF9ZGKImJvj@!Bv2MUIYJ~!;V<}!*So*U*kK|B9Vh@!Cq zz(_?&wah6--mx3*&r%Qt&JRG9t;tMI%NT+JWd9lIj2qcAo3ZJUkuxcOpaR++!!|R9 zB$mhs(N#vcF3XZrmZXac@-tGc7egGrq5Zo&vdN|ZQFwwW7tloVR0-giX(D(DXqB1c zlIQE)^OqW5ilTbk);V}UV0q|pc@fBI7G`84VMbtn2U!cvD(4hK;#$61)tUkx6QjIG&4OK(>A9`W*eg64e_t>fX0B8ipE(G63dz9;!!{o zRrHDGC9DPQD;|N>%4@()W%!*^05ybl!uKt^chz{cLW5^f}9QQK#KVIFRIoQ z@Tkbl#xcTrgbgD)=2eEyM99b8-NSu5a6w}?9axIO4XRJN$8T8Z%sDgd9dg%a!Xr9a zW1_Jq5`1BSBylfcxka&`twPqvzPzMt`_Zhb{%vW?oCv z#G90;yBBnr>F9(oX7D*F0^_-p%Ut_mV#&d@8oQ`^Q^2Fr6s-QeIP4Tkw(g%j-!4`F zCM%HLf#y!qGCdZRMW03`xxatuI_xcW2S7`1VIAaJ!Xuil&^h^7ww_nuq98sUBqTa@ zNHD~ySYmce2INpis0bZPPR3gKK2)H_@Ph=@MJjY!TYK}`B52L;DLRjw!r<$V~H6Jk@3p@6A7vR0*>n^RJ0f@ z6qE&KJw2W5G+T?}j)1Z$$N}#6zGl3`b;Y6-Y~8jb8VG9E!3gFAE3gIQBVb5RVDB zLhN~^)N2iF;<*@GW3*Tcp%J@pntGLmqgNO!e%~-g2^jbxc(A3fskx92%g9|w_XR{ucx}NWIZp5<9EEw?ctEPk$LJ=fKC^n zvyg~;pIf;wG-+S=kkLG46$LzVBN)N6C$ud+I9bk}PZuhIkR^*JkoLW=6{1f0j+w9L z#@C?wXCds^2Tf3B%no1A&E4Zy-0!Sr%G27WB4`jM{9L&nqu(_kJ8K%kKv>pkwsu-J zEoT-~!XC_c^G!fS(acn`0#uf2``V6X`z9R21^^RS76det;Ku|2V!~H!z5D0%9i_m^ z2rvq$%x%^X+9cG7XeCt)%u+mV*#wLxBFjJ{TF!Dr;1rq0c+S*2mv%`(n5aopnrTFQ znTiD?pn``q8RAa`?Qx4vuju%GGdie@sT=*f0aT%RvYbugtYE>$WCTcs|2}38ek-{x z)B@Qnn>Yk7Ya(Jh_s>06EM0Qq4sAZzBrZpDc{?XTM&a6iXH|0wcvQSRAk5*CZO*O% zUuAbZz>FCT;859Zmz|ey-PV6*_-rANE7T-ZFa`t*GJX|64p$y@ph?+Wr5$&o2GqgE z=i=C>wX?6k6Pcd23Bxp*0qUDW5(8SOmA7TSIX1pYYaj##XsS9K#L0*H^w6lJ%49{I zf`Iw>lr?PxK>Txp-;R49*%}l5Y)q|b5jfcJx}Eg0uH(pUbrNNLj*UKIH)HZVi{?ue zD@IUZ5sqaFu;IVzc!dW*CORlvf~tvgwk_)sX&Zhq#Gk0F=`?!EHv9$@ZRXDM)V#zr zX#pDMG8|jyxYut(869gAloB)@Y52H~Y*#5TJalZ8gcS^*`Ihm8ZmDltT&sEkCtFjS zrHk6K75arOLsVGOENu35 z4|BF<)0S;7Dy`j}ecX^;c4_O)eV>?l(24s@n_zb6!HOxajFQuHBH`KLZlymDLy9en z=3)Lns5FZL+J%}T3&E4@(P$`3!lVuNa5XHC4mo*49bpBJ)BqZcExb>UvF+?~hOz^e zI1L-}lT9|rMrRp3W?8Ueo}L;o_*ev_VN0M1ZwzH8Xkj#Cn-0&c_=-uU753L}3PVh9 z6et-IL;Iw#P37BfaA|~%u#HJ=irV}}{h=CXUbM#?j@u1 zP0bW=mN0U5qJCJjrTr7G@%w^`0-gmfCxDzE41vx!#_@tuCM2H!W99Ol4&J2CImVaGg1^xlf~DG358r>trty& z15Eg>2+k$}RcRVDjCU(G-ua`lj})PQq!@8_jg_gbc22P%*){9Fu;F(bK&WKYAfC6a z!A-md%TT<>U8c!$^}H{VEy(?}HK>Z$Kj~C$=_N2gWZKorMgq=V4!iXJSwTN^S2edRYgWk0uWNWItxR|{ER2Vq7n9#<=smFQta1ef7xYIh z`98T37Ag~!3I07kg3B~mC>ymUfLviyDjDB+qxK(aCUb0ObhJ&1gJ4&3W2@`;Y*BTV z#GYs=FlsPhrqL~})Wk8AiAOW>5*wCf6JQZh_Q(zN#0neNWhI;M|vskHk0J)Dar*Rr%BCFqw@=c7}x7LEy^*xw$RG!$ddE29)j*#U$ zHtK)dFmo+kvgpI^g^k?VQ}X2jNSnHfqPf8GYvHw{!r!~Q_Brr=SB>O!U>Y@}Y^1Bm zu`J0HSX9gaIl+c4!voRqSPX%6!QsnnyLKRL=9IdLS zB?--kz;zVRuxS=G+OaX3%@~%9vA$O(06$Br=9;2rMT)R?eab!GgO2A0@GV$WANir! zue9$gnw5ZB8dXNwtb_Jjwf`QwF1tA12a<%+_6i>W82!BBc!&KBI=qk4cOf?+6 zF@M8}k7%qnvd{kjxj6mtb9i2u6A1l?wA{rIWmG6VEJLtIc)lS}k=KQGEqlahDa`jW zlMckYxpsSKCvC;QzYQakHNBe+N&O8V7lquib^FuG((Xgn(1O?av2|2dj6^nz7xgaO zXOCS@31Ib8f4yw&b&bdq0p!s48|h)o=3?6TyXjLAA9r>SpK#CDFvnzTOa(fcQB<~$ zgd$G0F|SKh)|Jmog&%6ukF7T7MaWfS>QJu`24pMHLl_dmmQ>a-3QB0m5YHh~?dFSs z$Bc|4xcS4HWd$b$B zn~FjR;RBM>$Z!NmHVonOC1V{cb7r`44(K3DajI)4?6Pc0v3}#0zii&ReN8yWNucA- zrR)Vp2ZGab;s2ftI@ns;UAJ!UKgB(LzmXj2X`K$9p4>K_mM0O^2riA_BS@bj3}Z|| zvI=I_T>*6}n%8d<^va&$H+CltbzO{-!$`8nC=^*ZfM;I8LS6siz&4DEW-}j^c4%phKI50)XY$6ym z8@Ft`^Qsj)pL^Yno32W2mRc+i8%%|ny8q7*1vjmyKr`24%vFTU{^tfbh6w;>cLBUa zV6$6jxqT*|g804t0}G|H007Tzp^hY_`mGOQIhksWMijj=0Hc&%F9YbgMtHoAfTeqp zi9iX83&LkdQjAIG{s3rt8iSyOklk_LSyp)Whl!%Sjx}^)bcxt?m!1DS(JS^M;BY6` z9`D+H58Q9n#~kSSsckB?mOl`{l&8uS!F zQI;mU(iRoVRIxv{p(&eY90Kf6S(?ZiOqybXsWEzb7xhi>muK3H2)R#|;YIHH0VyCO zVNKEbHN*UY#L_g!kIlW$NEzSl-Z9$}uVzEi9JGO1NmB6?HLJstM^Zb5jY$|egTetK z84sS_vmr5L_#IaJqK?A1cvk+sqG*sfHaNZA+kN-7?xj~6(+uIS*iDvd03_!iVD(#q zc3!>jDr6;|=h{sTOU=_Oish?zS$fgh8#btbt-mZNuurPa)$6W)MSryotU7?v2TM|xQ10-{q zHiqMo3V0R{;JF<%y%~Ukp9F)RM9oyM76gg&%_m*b3Nm*~az5W07c-W~?g%B7V<)Uw zwq&0hH*C4Hsp~QL8 z&%Y7jQnZ*MT$CSgcwxxOgQVu`ZSc8itTq+z6MhnvZyk4U4GDNQruKcI9Y@#$!x#-? zf=SCpw!kzq19LzF?Tx?4z|g0rX^Jw8KoJXm^4C+09|&xZY5D`jp01e-I~fvgjg`?7 zzjTtJ+0ckCf%!9&PR32&pw=*N6pQjKU5;q5^c1YA%v0#sQ-LevJ@#vcFsu%?c0#tc zSB=$Zl$(rxEB(zm*^S+c+~da#V|PlP&N-&wE}`W=Mo;>n{Z`?|4kIb=L~j>2DX!dQ zr-N=-zv+strQI`R>F&An#jy3F7v02caA5Y#D1y6U^VV&L?Yv}S)ut`m*ABAYG{&-| z=0{Jy5lmQoiebN=3+bg&n2t&7Zkd`!kSAmj@O(+($n48pJ1yg;8LxI$IS+FSQ(2+e;`y)cgO=oYi z+w$w7Sya`q%^o(aVfFR{_g(cg*H$#B{HWLjza0vETI`iu=-op7nnv+XQ-zpU<`HC9 zq9dxUBY~O=6;(n$*`A@kLeW>omUXaD%zA9=0$dhs!@0TPl0*G5Ok&`s(7JHnY>H*E zO|zA?46G!WADPYJrN;ThAerx(W^<2aL2kCK3Zzy{VBvwp%O@3V!{$Y@VcRAE zEDAP%!^yANchz#YfxztNABqY)!TeQ>+wQw9kGT$GWLA%|ZDo^On&dLw2YZ{hZoi-3 z)YRuw6lq$bAPj5)FzTL;7@ocXWXr5Xb`~8V1rnP+`dD;K^Z41@fksR(2*7i5sGYZ1 z#BuW6a#aRwVr@5x%`<0xN;W~ZjSIsgy(fi)hl@p;_5n~Yk_Ax|MN#YaGOqpjxy6eo zF5G#iMJvhAMBvjG`X0Z73+OxDf_;JmKD|as@j%*6R>zw_ZN#V* z-=rzYvQpQvhLmk4t+Q3sQPE^?Og%d)%Z4fHyuB5rVp_GeEOS3<4P1%oNtu*#+sT$v zuk-C#?kH>o^kjt`M}|1#SXQ-@|4uVzyM9t6_Q!^lgCKyT1wgrlhqE|kGw+XNg0+c7 zgBD1&1SHqB&nzo&8izy^ocW+X&*sE(81+3dRToUSzu)cJUWJu+UWE}BuF&tR_gz)E zIfI2RKjYdX!{#KKu(m@pUtxp2a&vUQofc309qKI6o{%!l;J(u5>M6if$2#7)Ka#MB;a84o(})(S`FKj677w6kg$Xgd#^ zuFYxM8ju~}h7EAqA3qrNn`he2wBlBRhjcr61mYLlEI$P9`_tR`0XwaQE~BuDu}49}w0^fI3+-O_O8;6N}EX+vBJEu~@8u?UA`Pk;$wX zI}Aj4P&_{xX-0i}XtmNvDbo2n!tz~^eQcz%e?E_Iz>Qqgu;=90eCF5 zot2@(90ky{mllbEMZptaD5U4{_t2sFH=};@=q`){Ax@2xS-gj9Cm8Z_ul{U|#EOha zKe9Z_c3ynpqKV$J#BQiy_k_QX4a3*ZIB>sJFL7-jp1C)5E$+`V+)?iUWtA|`I|LWR z3=!2-3GLW-nsJR5dQ4F8te9j>1X$@;mMNN-9Y}HBHWQ}Niok*lwMm`6d2vpW%?aSp z#K+*E3($;0Z(tbHU}P+1IUrUX=MhHr#aDTXs_Ql+qCA+7!ZD0B4VI@4RX25tfGU|I z$hJM=gj^+vq>i*CoV-!ft&G*_8>tw5(bX8q7yZLbFqM`?P0R#TTZTM7h5}4m_tO#X zd|pwVE14mMZT8>leOK+ZX1`Uh179QS7MUSI)AUf{uEHUUCW_sbFJ1CCp!Xer-m_Ak zv@E=NuP7=r9DeTDzyPTw6{yK1LKG*

UN0Bd4laggMy$m$M|6_QzEqFQrXwWpKs?SADT~?-AjdZUpnTG}%DU6^| z+@kJ3uwp8p+JB|?3G&AxUfhMP?N^o{sVaMNJcoiDHUOqcrC$WrhV-2+!cWyKmko~b zkp=Z^NezM`vxrX6C%X^bw+toQc^}_&pH(}%hGEm6aP1xmWoa3s7|U=0n|E=;Xm?+^ zbhSIXEhgk5ia^IU59;S;NUG_;%o2A^50IFhIB24Cb`ea%EJ5c;?-7GpOCm`nLRDgZ zasiGhhR0->ohY{nI#Few0-i&l>113AYn$X7Vg)mmCTJ)R1{_jV{)k3p5CXjO)9m(D!%q$*WT?w&#?#Y zv&smdZ9n&+e*;Qf6i~EWq-%s>=q|m%g4BwtVl_(Q2~;$7xJ|8C@v{YEP*N5}%Ak~K z-;##kO=I=7g6Sydi5?RxMpGfMa4ypb=c-(S%i5e|$$8tzSy)>s*qXmLLa30y#u`%m zv!O&xr7P)$S2=T}I#LqF!GM;fgPEP3l>ix4<|LDL8EdJAZ<0Vi==W`vdZytwWb0aG z7#URr-!UAuSdQgP_u8KHw^#4I$~d5dd8|GKKKa~Y269>o)zpR8BYD<0ZNJ3HA@1hv z;$=$~|HhiiN@)sH<$;=vN^}F$7a8?;yTnj?2WIZ!KDUd+8W&-*^g`><%Q?+XOd^RmOL2nxd$FNPt!*W+WRb_kb=`_(OWqawq%SaRd@`5pK5kC{ z%$Q5*>8`!Wfu38EuynkKZ*wQMvSI~HRffPqNh)4jLV%bWG}~t3P0N=b9?nMxmJxsq zB_Jp;$|cueb;V2q6eJI0CGR#?Mxs#_vyqUd9`+a~ZwaO6HE|tXRR3hq0wcM^L8r{rD6SByCXNc(AX+5Bv2nMR`RUQB7kg%A@#u` zcq=e7L!I2Y@MO|t*A_LRE)8K19VqC#C%Ynm5B^K&r-RX{IIms-K5a%1WH+tGFp4fS zByqT5YiL~4alSrh9J4@Vq_cF93izTfjJDM2H zWno<6jQ#-LtYtE5Ss`yH#LwjXMRR_m($H2vo_P#-ZYO{ZK7fk!UN&iGO_^O-DWbWR{yeoM>p*#Na)*Uq1xx%}!I|L7iH4(2Vyct~lY0Jy;?a98=abN=dOkl`JDt1qKm4 zLmdIuII~!J)RLmEf&DU-Ik%3uvvK^`=-UG%$jpQ78b{VXUEGh$kh*haWexk=?Fw86d+mWSg)8|LR(2zD;{=UP&4OuL)$OR3hD@lQ_v2X&IJoEp@)})d#)MWz97(rj<^7UA@kLqH2 zZm*DJegYnJiaP-0;@WiW=!0DD0oZG)O?yrOo5ZnyGHy39=e%6hJ_E~Ip~#)CF0=o=*?TVzrj7e2tuu& zsK>zyiX5thcRr7yZE9X(exhZJ8U>Op$(aYu70pUni=`}L5-=h*l$zsGW!vi@g!%Ys*Pd|kKi7WC%~g6k zzvBM5!H~27Hsp&Aem&8YR}eR_mAwM)LQkj%HRBUarj%7K$H%PoLrCXuGtf*#YoHy8 z%BR20Ft}Y=mZ_``Y@fr+m}iI7V_XzEs26;B@DKDY*i20a7hk@1s{=m>cwQJ54r;=R zk46AGAOM__u|54Oue%W^{bHcW(QKQcBQ}eIq#LfV46|z*Uf7hRH>uUTmzJReut}tBDxNRQ^Dw0@-Kbmty*!p9I&0k4PZNyi{nl{OW8U>f6lfQK6AsUm>fpP>huW9 z15lge&{gSp19hFcZKXu1$?1egTz(5au`G9gpdNxo0787)&xR%7aD^rF5AfU;+D@*# z@Ghrwxfx{8go9mq+^7QnEsRNYRwFqdNx4fi78AXDqqfyzKe2o5GjI#nuG_GoEbXnK>0?Bzf77*=Ci#nn zrTa!KNL>{$7mLalRZ`#V7L3<#vW-NBrcwVCi0?=ohLaY9$)vVb#Z6N?CC51J;F(=| zlaq}FzN*kM6VgAMqQU6cDpDUNIhcaL7JRiAo)^T;!$J*$z|=)5@%tq)mD!M;(N0#+ zVA15pQ-Wpm462h7$J9245C|ruwy78_Th%@{!3oO-cvb|!QiIR33C*nG$q79{VQuAu zYpd&s+kv|1ePQZ8h)zGzqE&e{SyRJATUzT~Sc0{$Dp6r40R>jYaRfb^kHbpiA+ z+e#+~U4P@ozk_UsZ$!NZ^HnPJ`6AqSTzdK1S6_1Z+AC_aW$2Tlb}sJ$eAD2DF5*dl zp+!+d{A_GdRJphC7)a>s?XLAOo*%37Hm|CXj+qaDKl2MfPO-t+8tL!UMtcyE{7BWT zHID(0fjZ$Jk1pU~r{CJR$%8NDC10{fY2Z_(`^#~;aVAlGlP3!ca{q$*t%L;`9T$n? zL?jX-3v`}a%{NiNVHjk=<6QF3wdmi2Y4kq`zA!8InW9zb`-yu{Zrk49c*DjmccHu5 zxFa>OCRK9~7~3wQNyEvhKP~lbrGZLSAdPLBS?Fb23p8xWRDD~=X+sPXi@y;-O;H&- z0u-p-b!rMJup)tTvgIV)Fs3fW1rV((G2Dilt7?^PE1OGEA%eQZg=u)C8*-FMuUpiB z5uQ}xaNZbH)L}}t=_F$+P=+odG0c7Pe2a*4pei*vc}j>md}0`HO)Q$`wc0(a#sFn? z{kFx+)b}3`SXKqjixx*U3ASSD1&?}6VNAncyUK?cpiKqICjT#j#jA)lxcn7PIx&Zp z%Ua?%7Oa_*tWeF;`9X5ShRug;@0T|S$}a}mS(~(+PR_G;xb{p3c76lI)>Y5~Yb9ZM z3~X|bUp799tc>#oM@r9lxEUE9;_#0bd<@-S^@)dz;m&X4B|j5PTDiz7Glkc4y&*X` z(@pjfW7(Suc#^U|G_!~Dn_htI5C)LWb}2dhN&Y;Nxt}se7mUporEG&8%J5W+6u@4S z0Mn2@4Qi%uNpdyfoBIFRd)Jt2x9d7+&b7Z|C-$)&``Ga{Nvo!Hnvf=GQ>bX#qEf`4 zhBi_qgbK9%K`KDv4@d=xKS&kgRs^bmN>Bj>2?>HgEmXY$0f|&<(x&MpX`3eTapL&+ zc5EN}*gogHdrh8at$7)9KI?hElZvL_`*v@8pYOfwckk!A)>vbXImSLX?tsTzoJ&0e z>-PJQ{&T+u~VY7bT1t`9-qULNdt;gvKz5EOmn#IX)IK^{TDQu*Nl4##C9&kX^&eu7X=#4^! zvL|WDX#O7i+`>wE{GQa|kByV^Gc4ox;B2IYKbh#om?S)pet{1dVx81tA}(O8LNpe& zLUwc*)z2=mL46`Aca|myQ`Psq+98$Mj=%r#ZJ+u4m+mOHnAgt#dP(lD|Do;q`#$!` zm;dC)UV8cJbS(#ETl=*nax(t(_Rkx8D>^$1HHM7NkRNhsx_|TYzMXgNpT78lnO~|A z>|)+W4{GlF%Vq946BfT24bFXr>hu)wQ|GQ-!}BdSX!3Xf&v%_%APrc6R!Um^1jMv^ z(Dq6pzX}btuV18a;d~Gb&!G*SmQK6BgBqOcIV0TdT^cP!i>+u+|HAhCBA0Z+6{LjN zfF1aJWgCch;pD%uJ%6k)b=R_5b=K!gUwQ47ZMFM7WoBn_Faw=4#g8veumJKf(mgl~ zP=YjwK7`3Im#k3c%jy4F{gKz;#-enXUT0xs^bm8%)V#pNhy_gFqNN*`x9IwtJ)BZh zYLa;m4q=>`!^QQ1+8s*W>?{%f$N+M^o~%U~QRJdHWQvW0Aeo;s10K{FP(dE&;4Ple zgeOSSB33t4J$^f!@+NE;Kqf83C&ui4hUacx6l%_M&*KXwNR<;UQrXrWLfNdan6N8= zUeU}``)e5n34_d1^*DENqs4Kf?YN;sOJJ0Sx945Ie*3FmeeEU6*_(H~j%xYQ?fHW* ze)8o%wmrXWqG2}+g3(UeaRgKv?v-s@f0!>5=$H}X*bkCxQxi(f3fm9!&R#vY{rUH` z#d6WQ+}cx6!87{!-1huwdb&T`YJO?7Oze46K<6xOf(y%Ydpr`r^PMLM7XeJY5ZXxz z>n!|p6?<@&f@_bz^3YCREnU?T*ItL;p1(~O$ayI5ssH$@GvS428_o|MlEw1KpR#n2 z`B7o>OB?X{Biom|2gt`MMCrA3xz7{*+G4-% zgk`3^Y6zB))n3KWr5fA#iHAN1){wN_25%=?cm&)JL9W)$sZA!%74UtWjbGOOKIpN}f9We9oPgsn zKG}r&3wz1<hYrM*z+Fo}xEIRgx`8fuGZg*Hp zmp)yie{(nU>PV7LNu=B!oQ?-s9-?!D+Z8L_>6rC+UpY(eDS=hsv_Ee#6ORP&JfZ2Z zysXmDG2bdtz9)Zk7Bg|y8ciqVv>$tjUwEs&?fDhTJ{RNp*)M+OE8DX8102}NnVtC> zwk{V7!$gmuB)#F1<(ZQs26KP)6*r-)9_Ok8<9(qzABh>#hzP|kv%oQBpdc0sE~s<# zGdB(|7<0ODrRZ#%(-H~9BoIVlLp#2G-@!x>wL2lrbxY~7eLZv+5_w4M@HfYF4RFxO z<-Et%Htr#t0#BPcL0V93RQFJX1LirAT><4ragEXJkdo;sWW~4b67G{e`{c{l?fGYE`uF^K1+n9Cz4q6? z^3~VAcYBXZ&;BZmWgVF-Y|s8w0Jmd~*^%RuWQQ(be>dI4*|0y`hMDuo1x@WHo$=-( zn@CJX-F14LqT4a)a&t05FFXOdQ5ph6%4%zjx-ftOd01jWoUIIvoe!g^VBb7952cqD z{1rp5t>=x+PWOqi*k*pyJzL35U9Kg{8S{|XWNX4#yx$Z?v%a}IJma-u{ah^2G7lYa z{{FLu$Grtpq(IZNzM9Nwnzcw4Rz*XG%qeq(9ZrR#z~o6PJt!vN31|%-h=HU`xg!dZ zb!WYsOY3a&$k-BN`|X#%`r5Z&yL=76&Y#(yzyIT(`uq=l{H4#|8EGWo!Xt1KH@Gn5 z9uIVm_KiP7%@-vFS)yQt04|M^ zaP8$(O3PeZCucH}`!Zv~ID-Karfg$BeWahWxzDB2mz0T2r(I9nkN{dy7>ZIKhO5U9 z#x6ti7rW)MwmTajn#VwEKg^t3qCAhmbyc&}C&|r6cf5z0aR5S2{z8JhlG$UEI^s;` zXG(L3!<yjA%mmhk)}quO*NlanrcrwYJawAqZbAOIs(OL@RY>P zDXt1NE43KDfu5h={{6!*yzA}1{k7Nc{%9UEg><0Zeegvq6{AeB?c{ZOgLu;wH?{x- zQTx~&_kbPx=^DvBzv$c-xI){)SvcGp@uFGvu}6bbvaFLx^q%33G5wba9 z{Jy_l$Q*o;sf^_o!v}{?n_>o9Ipt$(;}qUedOm`1RZ0 z{NF6cbwxN$J-9h=2Ry&!goSxp$mkiP^JY4`n^aA^Lw&x$B znQ3x8x!A6BG#jj?D1Hi)Q~eeC$;J8C9^%PEpo6o7mb1PO_Wy~trQ2K+O*-tLXt#g) zb7y`4X*p9Yhnst!951M9S8Bii>=$4C?fZ5OrL;**tS%)(nbE+9x4BE*lv%L)FZUs+ zn01%vW+F&=vI&PFfLjvFfr8IDsW%wrIVxIK|F|eAWTh6+$;d?l<9H7{puvvbL2Rwv zco9piF|K!z?+rp$$tD{J^m^k9rw?`$qMY8 z8Q`wwB|3SJH@4?r*x9}9x#z6?C3>)j^9Fd%9v`Eb7W}Vn&;ONXEwyAW9+J|Z*8W#f zcfV(U?R7hq{EH9q$NoGs$+n&GbK)FT+WRplJ=sJe|__o@8$=Z?gN#La`7c;g6 z=YIdoVg!J%Ke7#`KcEY2C*r%Lo)$41mfed_QiX^keZjV178Fv5Wt!-M`RFB6K~VRg zz$R4Bd`P<#WLr3Fp1s4RYKH}S-&;C%&;_p58kARxZheQ+R^COqT1m;A-7M zs1yc?q3`AJ#Q|#`Fk^1k?Qc<9%uW`H5pok?TOXcq&{I=fuC*XV7SCT#C_r1xFi*s1m1AKg9UwKGf+@8O0d;SO8 z^Ji|5i4FRd$z#Y0l(IXj^2T7FNpQ6&Pj{dpj`k9cFLM3Q2MX7E#M=%L(C- zK?YU1bcxD2>q|%&2uO_Xae|Y@vOC3*?0r!JhCPfGMw97i%z_dxfNk}3G!EN74)}&C zXXcpgcvZoWTh*8=&jcIOdSTu)J*YeG(gr~K1M_OJ_)`IHDIrVX-@;qES%&db*8=sleFlwk<%qo`hzauJ75=~}u%-Qhl_?g61cauz(+P7bS34!-0Q9{7?&h2OXR_XmWdJ9=M- zUV;HJovyl~Fqkc?w~eT_HsB7%V-Jl2kU#GEA`Iye5w9_UN2*|vsaUy11xD;&YcD_P zvEXS)H}5ZPCmvgj-C7_TcFi=)5u`_6SDD@q2u&!Yw{RAuP$>@R7D8C&^W_Bcge~Q9 zN@^J6!zC)HQC?V`*NzzByh1iyc@`8ZwRlH4n~&jz9eE-JqtZB_ptyAqo4aAJ@9juD zVCZawpIKghn$>N3c=L#rEjgKJn#JR^Uzjx2@7#X*UY`7r%gVW-9~Aio8ELsu;~KE5 z$LkuByXF))xBM?{$mR{Q4!!BQvty<^kzni?Tf&6D$AZ^5#pTLF&O`WXCu|PU{T@2? zdXuNHK6|sqAKspSK&u*Gy+M#)-p8}p>%ZTse^H+w-JbspO#$wTwK?-RsB?CG9mZGu z)I&dsg=2kT8`FM83zHd@rG}o<`dB$8qy1Qa4QGzVc+e!3x2%D5M|bq8V8UT+H@U#-#179cUEqVW^AlryJWE5Wdu3CCH#vPO5OjfQS_b&8!V%iL!c zWBnD=U4hl%s6Zf&Fj0|P>oCwUDm}3@1tEw+XSGk>Ln&LF517YU8+^(VQd0J^b(_1(=cDk*ESv zsS5TKDl0A|Hu0BzCX#Toq#C00DDSe1v`z8d_1tzBE=`1d1#2F?^5e0_lX_ASj`R$x_b?vYFk?r|EZO@;) zL5>^4bKhfUdHzG1I-lK};x+oE+j*~)_6Bx#X5-@zxulhxj_30??7~C+nMOK{A@B`j z%5*lkqp*JY;l$9GGp}H1CYAIF0rO^o8IIkz&+V1N9`;bzV18iqwQ5*ofV$CZrr$YwirB)^^T9n{RJLW6owfS< z&Ftvcl*Re|G@Ep8VCM#S-t=SlhuLeLKe#>rJDR$mPESvz<&z86hU33O5790QDiX|x z`R2PFv&2~6$k$;*PrTc=U36srqD&v6lE;A}Nhur;q67Sj%Mysg0cY0ve_$J>-)=T# zTJ_;@V3~TJmY4l~y1g99u-EDFCbhX81Xns$h zapLO6XSFxor%1!lWOX|LXb3%{B@)JHair9LI+R|*aEEF~UMJS}cGxKWyxl|V``NPA z^nz}#3=+Q!&C7^SIPN4sGcQOXCp@?R{PpdhS9hZdbMqOF(xXf_y^OBo9vq)}9WLM` zA5ANRauYtp^`n-X_#P(b9_@X4>~qt9wLO3D_WaLj>UD098{qkSdhDw9|AnT&`9Is9 zKYI`3v!We)8UOzFL%u^7kKM)kqx$@Pf)I%SRpcQP_kl( zL^6QW5(Em7RG6LUd+q@1_sa+c?@b_)T684lIoR6BJN_V*RN}+O*x%ITc!6rWN)?<% z09Q-#fbno{#`jO7St+M@%Z`yrsUk6AwLcZgyC7aSYpZSF+ILRL60gZTbr!OZYt*a zf%_CH^%;EzA`@JT59=N!m}ev zk7M$zCRKv&QA@>gna#9!7{yWc^jEs33q&x8Z-7@O+{Uj3;0P70tCtci(QYI+IAWxm zrcg@L>A7No`M%BFd)UBIQ=w6hJgTru@Yt)_1wYDaJ*uRoL=;sp?J#oyG`)a_PtMSp zbjL?(s!`OUCaxlUEmF#A+&#I}Ok zkN$JpPrr3rR{YegO`?PLgMIvDStzeULuFAV*bM@Aqre}(!HFB-`Q>>0gg(ECri1f8 zv9CT(URz0wzx$X@=C)(sDXzQqT2kW~i?g909T~^uHb&pqNfU$Ppwtp}$dl*%+R7*( zU;&(wNz(a9`#tLMyGsu)UYZ((9d=7wj_Q*^GEjAbPm_2cc=J$B$uU3P`Yj+#jm*XA zsw^I{(J1950sOH#AQ1O43A(B9w3%bDe8IR=Z*Gp6ovoMNJ{Wj`hIZAHX>owFpFy)^ zwwjnvX5OSvNwO}?k#LYK^Ms?Z*ez_ha-;$cak@)WDj$@+D7qYlio!{1JwnO3b3 z^P=x*jUWj+1{S%(mV3gLp1o^8WBOea@KE3)38co1OOobHKVt$69;p+B)7iwA5Dd!5m5#JWDR)q?t?0OQENpo%2{(Ni9d3xIINiRzmS2%E(n3 z(+M>N0vhd#)RP8W|DQlh0A zVE~zIjpzzu3F$PewVtsn0gt?COdFo9QR!GAkSH#)39Z737>ZtMPQcD}s19rDdYM9I z6E#Nff~e`;Bhwb?Xx91-#7cpMU zKl=z69hj$N9~j@KQG;sG$4_R;Qe-3Rc)I}#xokiD(dJw}YH@_nvW8&9?qhix%AHon zeh^d7){`;*|G-=yYqwM59%^Xr!qJ7JQ=02R0#`&1Lem9&r&yVb#B_R%*Si5;@@#=g zD>OMg+iBFYjYg%(lZ=LPWZLn1uH?+PiU^7j!#15k8|ce8x&JPr17*@kjXfotg&^0x zc7kW~6HWlafdq6gVTuzfj@R9|+?a9Y&d~P+Rx*CpW9M_Q1x2ry33N~fE{>iLl_y~Y zZp_7RPtQnbqq<#l?v+H78e#=49nQHN=mu6Nrx3LjDhSgg9s%QI52m1?+Yg_XmKQ?$0`_t zx+0KK2jrdn_}yZi?h@7_;a}@@IPqM>&=a_^KbZZ?HXOIhNI_B%HQj5+*n45`>OpZ4 zG^{X|z654)l?RE{SYQpSQH}N~gVq@ywAg(e6L{mO8yJX@G#SbvJO!dV6HDX8xsz_$ z&}x7UjX>j1n%O1uVu^K;b$k$)`8s^__=u+R-}ojOCFMmQaqDfcoXoCA1soa_7Nn`v zf{8QoV^;QzUAMG>QGVLJ46_9KDIDzCXAbIw2o2nzv0z5SVjyM!ewcTlH7xeb}Ci!Xo#};O}hX+8z@} zBP)IbJ+I9R{qj*C9hl&BKG?@kpZxq|+w*_dIpy}a0iI|2@sShM{<9DN#3laaqZA?D zteKRStN0{l&8c$S2B%-#zWy|&`PCv08`$aEg0~+rqr_Ui;T)PG5$JoiIsAir>Bm>} znZxhaEsJBdE@GQ{&>E#9N<;}b;ChB9PQ2Kr&EgZiFmz@Kf@49naYaFLH0wz%Us#hovsx~; zN8SvN9ys_KNinr4X@bJt0At!K#$)T;3-G}#;G3NyLxtme@sJI67}`O&jz~i!4!qDY z0#oJa16CW@K{m?~*95rgan&_Qq64^X6#20cd)1+kCuoZ9lq%B)$b4^T9qe@MM@?2j ztMlnOc<}vaw~zaz5~LwcR}O8sFn79}`LO&%3yi-4FB^IAc*nD>>S6wsH>hv}JP+aV zw(a>|Iz~I~j|W|UHHiY;o!`o%!Ffnxx=I18`}a<}jGC5j_QCcitfdH3G`kR_Vc`JU zQj;sK{Qc!Hwe4U3(*`~ohe#M;K|^+4qE&o~I~%1OC!Q6xuqBQdA@ETi6*}>SI6L{W z+s0bNLRq}|b?lw9^>$28aM_5-+qwyD}b zMU>j)4q%3;#GlLhib{YZeFA4X$t2e+qbpf{KAgi;J;fV2gn6E^@S z=m-?zR8%vnvZstkTd6VIbwV5R9JLO-5(keobI=X$h{|yUJOMP0)US>Kg?N;5t=-Q| z{q{@liqwv^=gkn$vC+SS^4*tDs^o*~c(k>n=kx*JqK>`&jd^=a946CpS%;KSLsTue zuWY_`-x))2(jWYM@pH7!zS`%Ix8LBx4e&hck8e8Rfp?YtOAmR+x-u~8-uk|6ta-P9 zO_`=5?DP6Q$L|Bz6`lIG-~R-z8Es~6kY8S#QKD@<^9O0ZmNa+oHL!n@$P=w>*tcoA z6CXJXo-5z0VYAt>p{ynP)YpG}f-Drk1yyjfAGrY_0%A z*HNQTglfB+qt7x4N7R(SAgWrBLt}PjT9(@MyawfR0*kOKrJBbp`F{Jf?5G!--Xe^q zWoQsj+r*TxA=s}4>JhU#Vy@)R;iGwxp(TuF1Q9iBJ>XcP8-Lk5gqJ(uiZZQOwNv}O zm~*~bcRo$qzd%Q_zjxS-+ECGa=BC@q&e{rP1VFYiX^d%3(@H2aL9cz%1y3vCsY_Anp6 zsB;5e(stQ?%MC8v0MA1LJc!soK@Zen86gk3=97M9NJ>r1J77gO9tf#?1wTJY(rVpD z-U~Gqw5=fGdJ&hx3_(Fk`tiknPr+qU$oVlE?T1M5Xfv?e`^=0bWB;%zL@0@ zYHCvWEL4d%Gc|KJ^wQhpVbl~4+R=W+nS8A9q|={yTz z!wEu^4Uz!(9j=T)lGx!h4fy0|W|q~?Fl@j2?)WfDmn9d8l}49<2Q~OLNRE!5f@448 zf5+72JMNky?e@CDapB2~v36|T>Eh{|E93mY2i2cHfo?aza|1jN0`RQjB|iS}Ph5je z4f<8&f@N;(S^$9~%fR6)aB8#Y)NQUq=>v{JQFg^?nC)e-QY>g@U) z@vfynP8~Ir_BvGD+R9tU@7)YURE&zBC)X=qIdH>eQw{m-yIpN{912lvhi6 zTyE?wT!=RP+(v*MX2-VvTueYcu7f`O7`b;Z%Z7Le=~D@MW`ZWAysp4^?KkOfk9{p! zuuw}AjsOmfHY0HQW?Y#h5Vbqm^CxBpf76!wZVpmmQxKuN`zL>kN25OcE-lizVP$7> z13Wjt^UOa!R4!hdI)47)?^<`2ZW{~_cLObR2FJ2_ zB+sih_oXhaBBgE7ud`!}e}etpXAKVI71&ggOCk_KKo%dNOYu(LX6$XqJIiyqNaKV} zMq%t4%n@r+X>@F2uE-LmgcSgnT=i_|jotEVJw=6o0Lh|N zEHFgybHGocO^|76xGCckN*E82x3u;B$5%vMuItgFmbh)AIGd-<-ZJAul|z*&ZDt|? zuGxZa1%krtM)@rSy$S&55&0ObWHLq> z*;&_Z-TBkW@vQpQwW8tB5w@3!Z0D0&_g-#4z&a}KZSpU0z?*FFli|*w{JUt=cgUD6 zIMTMUw?6j41+EJ5y37fs3n(r|xr@{=%^JyrMVjJ`aOvqY4l=V1`j=7|nk-~t03_ID zbduef*zRkY(D6kx$hQWOGdPPthCjw$smM?N`)X~2@KDp~MheN#{p zK96?&yf7G=c~#Z_@hrqqiVW=7yf40^og?;v6y)}KiOtw7-N>%2PmlO9^SP9kdh0X< zS5z@$`Qc`{y*)27f;dGx{2Zi=*b=EMqESd4c*c3Fzh`@Xn{Y6$`9g{lpNs{Nro|#^ zi-94I+IW|r^E-N~?RX}sPkSn!!t4F(yWv?S@}cefCnAq#&N#C%`S1-c+yKwB{MdbH z-dEO|MlS#2L*F^bt@@BkSOx@X+U{!ZvQcXo$KydJNf=x0r%xb9;$g9v(G9`D9yO*prd!@`xB)7Bs%C6RW) z7R)J>{ab|aXBoo@d|zFQB|)5A2~lPz31}sit5WwCnDL>m6c*jgISwHj!6Xwj-u$kz z6fgMsv*n&H2`VoKt1(W@hs<{_gp&CRhoO$L9=qDNIhQhl@?G=Xg+Wwa^>>3DYUJ0rG%dbqj#_6d^|k@@ zf0Ox46Ue?pKO@QbvvKK|MDyw%gQ3aBRL=dgN{n5HMd;jJZFuNmyTdM++xPbajUKwu zvOj)-XmOkzb9bUqe%BVFG z3E@dFI;n6}Pf`u60x$*T4+maClA$qY*C68tR&XT=X&CM?&Y*8e=%5S@lBYG$m8rN> zQ{sFqxx`f9vR)Vf&}EAJi6c-l*&1#WU`s3dhEJuLd9JXWd2#ARX|L(VFm6}roeI5G z32Z;#voB^hquD1+Kk{)6{zgmijQCoh&)|kkr^OQJB{X{6ra6%q?-fMmr?&roRhz;Z zixZHO<=WHL_gk#90m(j?^kui-gM56ljEp!}zV8MZZh+@meSClj!Y1RfM^Ak1;qTr| z;M~TX4~s6Ad7i6-$u{ zAZJuUfnUffa=jMfE|AdYFdXgK8M#n74Nj%0ZG=nT#7b-iQ+YZ!PfO>nxWv;NwyW=> z+rRHM6sMUC}BlAeFRewf}TFvL;DKna05Kg>f^nXt26fXXCB4g#XR`_ zeU*42EgQvo-ABHw>0~$CX_SupzYQ$;-odFMKGryVtb}-%7K%!K_Vw^prnDJeu zJYiLs;eseboXi5wxRxp{>3>t<)4@o^)YJ#zDzFML^D`A1WM+%X!Xz-tB$Zh*R;B?T z#stX-877$QT3H>2>@CM54MM#Q0XAr)zIcg}rsx`*!rjvmgfE!3T@k+IlF~5&r1oDS zv%~rCK{Hbwd6Gk;Vvyh*L@ypOJuLVij)TP_(NIlps8pC1bUs9fqa+$qJ&9DBMFgrp z2b~jHk2%A2+m8Tp`p{^jV2@3hC9!^F1sW&tB%x!=REZrC18Ms~y4y*d=5T(z{MVtu z=f%x}%%)t-K{2?PLgY20Q6e`;TQ%-}btTv=1=g@<;Ia z^m=i1D{0*T&$Ih@521r;4BVf4Gz^c>JGY&C$DrnwGuMIo&On6eKeXLqpGjY=IvfKz zF(8up*2D#3N3uf-r@(R+Ubjv6-({UttmU8vOb~-F$v$Kbmoqy*&Pky<#^VgSx5>`$ zukgt|iIveMd4F9LWE%0Ac=fQNLs4xH9;{4hC>Wl~&mKi55u}ya!n)#UA*NE;*(urD z&76P^&@&~XbBe1lAUVHp2TV831zTcx*qhcUzLtPgjHfL5(-@!7B04e};9{~Bvter9 zBsam0a3i!oG9PR>3-&z|B#0DGA%VPcLBWuK2&ZY6UJGL?_Ks=`pv_>%JazD4`Wh5F z*}9;c-xJ&#ouC_BeSd7NpiKsY;gSdh8{63RELvB4S4QyHG9Wex1@m0nrmmfKWsv%> zGpvLfR8%KB)Fu#`2Yhs~N`t#mnOEt4@O5{#&2I9x?dx|wB9iAbL`(Op8{oMCo@e&) zjlfGF8~-R69$m=2e;+WlpO)L4l6Mom(VyO?Eqo_)i*0nbtq4Dnfc8&X^o7PwYx*O`r!!?GBPhiObA} z#q-`KdN$W=@e-ekrA4c6jZ?Iil&sngXG2s&GpgK#-n%#CHi3QFK=kzZ3=jbj9X^h zCHFP>)V@gA#*=+4xzN<{-0i= z%MNaX(EBNbg%-mwyhU`>y*7<#7>edAy|n%QbwBGp2232jr4yk&vkmS|qA+A%H_*%~ z$ojS0m(Q6Fa(A1Z5muAja9xmQ4UOexV@Prbiy(l{TAnVXE=B68?(WnS^DQTD)r9%w<);Vg5p?Ze~bPN@lX4`l` zV@yXcpZE~QOM%OXuRf5i1a^6wS%PVJGFtQij?FR)1;wZmE>A3~Pj~;{Mv+ zLoh)z_y|Vj^5`lpo=l4YSe~Sw^ge)4(VVgSMm4=YVGAIg<5rLGCeG)xzdQQ{b&CO>e{0tOT2L&79hF{ zb|p$GqTSCHPO62TM4{}9+!q^B~rTqo*UqKCLeFrCoPcr z=O0l?>wP?<(7nHDl=82d<#U;3t+AAw1M{bJxlM;4NH8G8tHQgl8VHyvI=GC#=U|0? z4K%#7#d(?e$XK2eP8ufgX%bz#m`ep2J~{9rddv8pQk73o3^s_|#q}Xd)(q7ryQ5lC zt}rGuk)TsAK`Rw%cA$K-e}J+;Go!tQhNVzUa@Y}=(*#ca0pOIcnGYlmg0eC7HJ!^l zl(jme3$dPz1|3Qe^`6p2&cfF(dK7z-n?(APzR@_|oh-vO09#IhGPcOvkBvBNq5@o* zPI>A{B|{(Itz;%<8=!6UO3I+8vnWzI|_ZxrY!JtE!WXPf?Ayrf&4X>I}D8ly! z3l0t`lJz;#uU-X>nag-~B>ETvxLb6oA%P0H2k4Uxrxs$o$ z>lX9M?QsJ<|G*#LP{x7|i2apE!SKv8_a0FXvE7AuucxMl^Uv6H z-CBr~S2Lu|MjbLLnuI6ntT-cfPZ-0x_8VFl0oCPuQGr>Ygas1PC+9 znwUCG`S%A&6(2DML`bE-!OkRuaozMZEz(0%LMqIg7U(LT-*yc7ba0}t6M_>Hf>}!J zRkg%!#Fd(pMXIU*RU?srp%=z(5bR8bcE1H8m#KxZ>&uj4!(#?FxBJ+^kVv04#_PVt zG(l|<_810B)ojjX3KY4dkcAPy5?6A!R9Cp?es#THg|l;Vbq}(}_y+dbq2#Iw9^*>* z?6wAZV;)R;(nA41&l{`M%0H9e^N3p0U!ikt-wQX`a05Kg+T)!k<&7_qwpc!r$Gg0x zN9c{w@zmAK3>#-;2o85x@fn}(WFh7#4ANNMU81u}RJ&upld^K%hWEE`ulb-yZ-;1@ z7GME`H$!h@aYi0|obCT9K36y0B7wGNUW+_1Q@+ z$=$F-R2vBv?Y^9Puco5zeShBZh}zQcw&xcYx1F5KEw{%5c|7!Nko_XuyRr6Qw~v%3 z!Ai|8)-OJm6Soa&Z{0?l=SSe?Wu)EAw(~hEwiW`8>jqkyOq;OJio(726sU_XX(|&a>Go zyYylh+G^d6pbS@*x(&>5YmhihwaQM2TESu7z%g%P32ah_6)h6N8N^DM|Io8<4l+R< z7WiE!sIEI@@7GJu*dagyJ$dWKa!D3R)2pl)8o)%*d=C4BCd<9#w@W#Y+DOd;uX6*V z(S^lEZ;Cd(E7F+S&hZ`uC)Q|VkBRN8SRVe>)ab2ymWo#T?Ai9R>-w(M@*8`4b(G^>GE zX?ktUf#z*m?s@Hz46*xM@va42{C8;vjJ{a@eTnFi*)QGz&p*)Z{2&0E{ofDi*UyzT zJ!&{Qi)_)kItb@Y#+@$&$g%fEk#K z0P_}x5i;cgR3g>#S7aw+*%OtY%vG+hKd-?q8u)1q$_0?N<-@WX)3B8oTt&-hIZLow z7o=>w5uDNUHzrp;!5xjwb1)XtjEM)ZnC2$G1eT@%G;9fHAlT}Qg;!gdv@oe2QxzB1 zmYz;E>GftVG%MAz|7xy4QOT!-md4A7yA*J&~dC#JzhNE0{+6`sz?bM3S3#bcox1 zai_+Bjc2yj1U#|<9)<(Wz`k}``U~I{k7K|<&6gRBF{!Zrxpo<8=vTeBcj;NzW7yOR zV>SVda=N^}y=VsrpME4m?B~ZZKDMVnzdgTApZIu9fzKxt1btk;{{>}?ZjT$_IXvE~ zV8(#W4r;zhS)4}4uB*!65M@fg-s-PDnlsnwonzf+phop6qubO+_c_V5HW0-Zwy$5m zv|~7E%FAjlh=!?B{K#^eq9gTCA}U2&`!>$GnHH9XA+q8ZZKm zXJX~+6A(76JL3{kiVK$x?UfK5cd71X0T}AEN_#)Ra z@)$@HZBb`>$0GtfU!t`{{j4LG!QBdWAqpB&nnnfPxWFP@RAm;76n$^Y|>`0#0hFj!Shy!EI$^1SfxFLKgF# zV8oIf@41!NtT3VKHS*D50~fXdm?5?P97mCWTnh;y;Ki8puNYKdtXJMWjGDtSLE?_P zA=frZm#fEic?nAEVls3@`pY&_Yn|$v6*jRRu!)~oJp;Rz$p${y#rVB!S3NQfxSEng zFCR*EDZ7fGC61ZaLY;D6(?!HdpY^%zi?{1l*XA)9$LY!wmhE;EJ1?|P>ep=(-u{T@ z#xF0}9XTOy@B7&WsuC46eHuW}FX-1hGxQ4G9uE@myt{xJV{V>@3j%EL4%$efW8}{n z+Fr5!l?8e{3=hlmt?TI5#(J^0IYeK0+JrF-kNb-GRbE0!?QOC0P+j%mNPIZ@fn#)v z`e1T9bGk(I92l?}tHchO?VY_cBQSUQjMUIWFg{g)ZJ}$%4~S9nH4>>q;PD1VyOA6q zN}@SCAXGF$bo6J$!)tn(3QE$oT^JNGr#%r#6r4PLkX_vY)8%06IRsm-mz6)PzU5CvH?=8|DOVWl`ho_EWI; zy7x8#y}(hD7M6^{)(qZe2cEej8Tl#DCa?Fc#hrGzTqUqI^lc3mMMQ7V9*Lo2e?ELX zNf|BP`@m#4y(WYu7kGJ_^yjLhD{^~ocU4vn%55Wtf_ZNB^N(n5eD&lWlY4HrDyvvo zRN-Cnetmv#dCxCGS?uEggg!^N$1@9f{^0ift%ZqcK-~&_zgYODTk~4x1-y7J<-+Um z^ZGeoemsC@8(dm+kMo?HpRj?8>lj3z=m5I?oL-StqJjCnHcpb>+Rq$Qvy?U+w5%I9 zZ#V6M<}#Q7SsUiT!;aIGCQ?ZymnDg|P>%*3TPBw+#UxM1(!$>M)qwm$_9b#W_5B9$ z4pnOMTBMVeoPaJAQ#opTH=lI$BiJDki4v7$5zL5DkiakkS(~Y)UZi{ts72&Zn>xi! z$#1ZB5wVAS9{x`5og@g_ygB_0p;I>N2_ZVW#~!8KhkOkX+`B@CGh}A)$`QcX(80%1 zClw9#6amx6k%oHh5s;?s=)+Y?M*dauHIgnk8LA^R1mbFByfRP*hHPOV&fV-UeLsqE z#!K6Z_?BG1N=d(X``SSgTw;DHt|SF&b4PkS61^t>|bKPIqo`2*9TmIf3?U&)bZALMli+)@P9~hmg&1vOA>OdDFEqq;|YBNHuMIKuc}mSqlL6l82Ghx9==@Lg;?!a1&SIr21}g_xtt~j8P)uReRcPCUoofn zsWIhTr(ikRv!qEBTg0&vBGBg>hWZCZ$YN0G9#_eV!y?ks-R2-bGnILWlP>p=y;Vz2 zok9duy=e&FuZ(!sBdu9Xa)`;`+yXu9gJzk8`T7p3WDYeN`8XC0|=;8<|gGjGZI*UE>$cS(=o}dJLW$4%r zp5Cf+PSPL_f1a6B#~LT6JX8-D;wo%$gGx`7NDX%*9)=+XY=W$oBG1%maeIE<_Vx1w zxfoe|m#bxmDY^0DDu(E}X|(i;{k7`3_kZt(scB2L;P!aTfG7KV(c-GPpIGC?!v0KQ zwW?MSEbecQXOQ8kB11fhSjM6gO7OB+9afNp79muCQWY|P_xAkvw&%ZD%4u?P!B&8E zDW6x_sk4jyLgD@M++sg*e^-L*w)ojTy#4#Iy0Zy0EL0|?F$O4}pZhwtlc#YJCO$FY zBkDVGq-@v^BX~5vQ6rRjR)N%FWsZ`f43thfUOZzVOv7GJzM;qV1$)bVDBgf{fyN&b z1QD)ZGygAM;?fJT@ezc}VnoX9&D^L6)QFBAmI8Ff3Gxn+2CN= zY;`{})a)oLvWd>h$PD)y7pQW^dPP17FRXn_t(1Ey$K+lkcfpk4fcPLv_5@nnI~FK& zVelBTKa?7lqFg4)+Pi0LI&v(6QjB;BE9D9&G|mxUB~74KXQjDo1cUL+_S%&}Jd6;b zp}py4I&PUMW~Tna_9tIvq0%crP?vUBBmh5)b;4pq+BWbF)(S7j+t|2wC6DhAE02BM z_R~KBtUOZ+uo(hgUIOeqR=366aD~6Uo&bjHf>G&Z3>H{`*RlT%7~j8{ru^a;PQVSF zFgRyrth2dA?kSz!$1L9-<la3##u57iM3a&>F|nDGQG~@zQf?yW~4cU>TRF0U6DdEY9-P*znuovv8JHv=_gu=n?Vl^{ch zQ@D2;Sv~Gb64s)_?lFh?|MuT^$xOPAwK_8@ew%nWrGXX38NZifOW=fSo;Y3HS(#xL z@)FRMJOkNcwh<^%uE3)?72vSKT+00bX^~YyK$(oDNbVj@A?{9 zvq~BRfyRx8cn4uh< z#qgO6-@`#U1#mlxq8FiFM+YUR`?|-_ACHRz7QoL?QuUzQt1r>wcsICGgmsc_&SC=J z#)c}$Qqz(8ymF>jEe_>91SgU!Xki%o7&tLy`25ggtgL`9XQ$V6@nTF~AF(Xv)xPhu zNPt5b(F-faz8AoO&+B5Wulh@D>%NvT9Ayl}l_8D6IDYrVg4f3Rb}~Pn=|%a332KYQ zFyHfDB{C<0zT4vg0G<_%hsyO@@~Rq~UM_MvLG}D5smHc>Z&@I5S=3^Q&ei(8tQMX| zOZEjYIxFqbV&Jf0>FbBd-(~o}+-*nn$*kB6@0+VH`R0tik5pd;b6~P4%VI79Vbh$$ zgIH}rBtkTWQh?#Rc&0`5n7(wmKHuw#@>n^rk2H^krG&?8D5)Fr zIfK!%l~F6wv*7#)9RNUl%_?$Xs6#O$P%^~?h=(=Li5X>8=xi*doR+quED1YQA%!Cb zA>Kz4Cns=JQ^LE7b8D-+_?$|mr#_}SUQ7WD?beu8g+g*Ep-=ZLp13dpq7(3Pk%gtX z3>dlE17+jks3_TKVm^#VtmBcPX=VcU>soyMpkNeZUh|6b1|Y=Ryc%3{ZgA8Asukz* z{tXQR;>C3TC6I)<5XI(&$fY0M&9=;zlE0?zJOC7=n^sw`kPceGuUm|-HJ^+Z;~s*c zYmq;28EcyYAh~D!u4CwxvZk{xE-_ZbzJ6^Xjc6xx#o2CryDr8SfX0RSq|VVN12p~wDnnRHL$hZWHalrD!?!vJM5SZ2L5n526xU+hYp&{* z=?BEVW=AkGHiBIf)ZsiKVoNRHQsNe{gDHxlZwA^l)3^D2V@9h z1vN;<9wyiw9b<4Na|wnQg+BY6re4c&+@!gVXGWsi_1Gd9OjIA&Ioc-QeK=7RFVVPTCd{wMh#Uz5+p1ZbUgLPsu%0B^QeJOtif!+eLYg>8(7>;8ls+z@)D^`EsY} zH!||HNEf0ZLx9sKzwmFrkim zMPmnDncj%(sR-aAND1d?8EXsxAi%p;=q-x{B`+BDmA<8)fC^-Lu4NI}07P9B^vFUQ!LabIV5ObR zgR8O}oiH@_B*q-db*sg#JOwn#4fH(wfTvz`ZNaqAf-RB7&2n}@ozZ}NLaScO%_aAs z=yn3YXi=M$1=ZQ_LHCz?Zmhb}sDMjdTzAkgh~=vyf!*SL@A5D^`>WNU*nDclB7Xwe zF#5O^2_KuJSmA>(L)$vnJNq3&qhS6bu;S*N=A&8$hA0HVz@etBPzUYJr5NL-78IDh zds)ppu=SC~gwr9+*e8i@olhf6d(JGvoTKD(a%C42I`=0%%si=B}_n*D~g#X0xA^jM~Y<89(<83i0xVj`2gX zm?!S&yp^2qDNCJs?wq+apXor)I=60*XB6u#&-;>K9%X;!NIcCuP%bWCe+v=%%gKs+!{!mq7!QCJ(R!jR~a z+I-;5q0@I#qw-lB+oAE`9dq2oaGzuQCIq#&xiw8cW`|Tw!HygHUU4PQ$Ii7@C^0TT zaUZ4aSg_67jk$5EUPW5CDo4Be+DI#{<&=fZ=!`6j^PR3!@DXHGDzz1#-6H?NPK!W! zO4ySTu=Ct)7j1&|Z9}#u-ecDf=Xx8I-dD!~7G|=f}RwE(#;tY*ho2+(u9Dm zyC^ETDj(KO^lkSJhcC|aaZeht3v7;J5|PSHGJc+_w$YQyIn=SuZ38}y?DpX<0iP$6 zE4qN;0VY=Es5=-RSDk+CWE^j$Bxa?n3J&g0*qYk)dZl%)6)%9#8+7iUb7qDsCx63l zqMEP*b9}-q-5$>%;HekW88uizNL9D@vaPk8L<^L>^82|II`r&9UX|O<^feVM$y3T) zviSPCD51#-s7kBh?Z3Mx#zog+ouM2ck#8=;*IxK_n<=46HEj6AW=Lij>{-`+1SYn$ zxR3p`yj7>$9lX@CW12*ithkFwz=b8!z`I8@R20Ds!zv20pZba|V@l%ao(X$SIaUG; z4UM#U*B-g%r|FXc z2S6;G2&_3<^BU3O&qM1{?qykn9jE)aFhqFYi7|Veh1|fj;IT&Th5^YChl7x2W9hNr z@Z!PXR4$MnKD+0xJ+ppbI9+p_^+f3eom!+iyS;L-fdP=B&;*!Ef}YXd18Z~}8=?6X zOwXm3JiWtOktj0wD;};&7i7s%t#9CBU>dqAR$tSx}#Sf7XHZw9c-T`R)zuJTSmhQMl0B zJPDERl@6|1hnnuwXvLM!!RkUswp8#R&AXutkw5JHgf?o(UP$1~v^iQD znMKerNyHLpBA;}^?*@ELuT|RNrMVMd6zZUygzTO`DJ?|V;XEX5<$S~~x3-^zv~z@( zVkU_Lr#5wI2H!hJP$>c(G`CEmBK?%kZVM=-_&l-9-U-P(cI7RoY7;vVR;VgS91GD- z?!guq*yT8~0^+riwV?-haLKB@?%JAgQM-wL59n#7cPt$Xs1cFW$#B{Qlzm>Ee2;iX;5J30TVb6SM8m(QIR{)1kE^7R{ z`-Et80-`ENs*~}R)}~hV?^Ysey5|^F0NIB2#8+X%=SI+IM~BOOLAZmESLZO>2-{F2 znwbygt7qk7CO)?D4AVbOWuI8-n?}bbv(^$vq5e5c*Ox&%asyB;^42Uz zG`5T%^$m6;pb5nj}CE4Y`%Ae^o1ZgtNROZZ-IiZnU- zue%&$H_1R7d2R|DbJ>C!;?gYcyK9V)YSv<0;Orw|C8VoIz3r?juU2_-yc6+v=-HHf z%>|Pt_Jj46xe&2#IyQEaRbMoRA?mxR%NtK=l%z0?wN8zV^-&9I$@Yv+1Gxu-z%VF!F;mLXsENmXKQ9BV?!P6+Kdrm?PKLS{Bj&0p9DHO9>e*Ynxu&fT2pY-Sxx@bluuiD zO$3a`kD0kB7yP-4n7JLV9rOs!PS2Cc!PYO7Lgb?}fEt6GL`;XmXoD!(`XAe&4Sy)0 z3M|8d5GeYYfw=KWQnz6G@L21T_@vH?7=_AgTt;rmCVfl*B(Q}&c?anyfp?8YPl)qR zU~8=jnW3&lho5;q-Rsv>$qoiM?|bkV#xq4@nyO#yCSWMvnNoTb!A@9JMwV(-%HZS+ z9ez;;fL)Fa-G$CPT=H!u=+bE7z>Zl&)5dQQeg9NVvph2AQ6YE`znqjkp;n#x{jZ8F&Jkt)>kQ7a{}RTwCp zfSkHdxF38{+G1LFCdvuZe|tQGfaktiCf|eDWu^asi@B!pJgtqL%ipeYNh-H-rFH8d zpOnSw&2yo1qe5Ej+nI2U&nQ!{t+#3RZn~g4jnGsktL1)rJD(9%%%==3)(OyHgv+8t zT*NsBa}NE>7-+8r%s34l2Dd)1o8z&VamhZ`?!0-Mu?$_nr-VvbVL=HCudgLqUZ3nt ze@pW}uPFL#eCH(@UolVK#!ZF^gtjfcDXSQ_YG%@QD#sGKQ;yiP1Xp=M$(>#4d_b-# z3k>k8dm2@;Z)qKv=YA^#4U;4*H)$ZJ?TZwWscFmCtdU7{v+E3g5PWiR{(-un34;YI zzqrK>fRD0SN^-Hqw)DxlnRE15aMa2D3fCOQz(ALk2Z#x0N2>x7xI-z}0M#Xr9iGH~ zIN1@uW%Vf3=}2OE!*x00#rkYP8hDUI;|{LE%+B#8~jBG znsHKiQP&`8IiKxv6IwRS<;8Fsr>dq3K-WvRao$sQLMq*1K*62uN~2t5mQ>RIn231J zh)3ZmWq07nMg_eD=sT1797HPc>^O0T-;8*Cz>@G>={VOn(ll+aHF@ZUl*S|@+OR5^ zwrQnaWH`ZT0$ElUOL!+ncN9nZCDqTy&gWECQAv+==1Ecf zBDj;H-2uZRuW^!D(XdOQB3w20zH7gtSWBD&?k1eB5jm+T%$hf+<)4eo^Dpo?3P1if6&Y3Js(pzRi(!n=)}`!|$4@r3K0- z>;?d{t1*1E4ke{VM=j$DFw`;m?qtDyU9cZSN3CR|+!cIX$RPHA-++G`J>B%Lo@=6` zUPu=6(tSk0*<5^UO@Ck|Ep%G8i;hofpR}moBD-?Ehx(&M9rmolO6~zdZE+LTf0<5Q zV3&2|RcY(KeV|2sx!zFw(DE7%RMP~k?adrlB0?34jqz_;W2=>^H7BqWpy#M|fi9QV zV0Rj@XvyG_XZOivW=w^sV77|SnWA}buT%eNMQ4IhF2|iu>h`5O$a1eDvOyf|2+i%_ zG-23kADx9_w(sodMg_u+BOMi;mpK6uUUWSXWwEnRRj#f(TB_)_B2=5~)gvb4mMaEfevbbT)WjI`+g`gcSPwq2t6|>hdOT~5m zQT8Mh9mlzXi^%Uu-S<8L)GX-eHgFgmrN%oo#$H-;)NDLy$Dmrjj*-ey1bvqd(4S;d(h? z`TL@*gOWxsZ}4SR#sm}>jkRnc-6H>8{bv~3SM zt-G8|PH6{f7P&&V zwDboDc>01Zscc1MacEH&t=oI0wfGn>v@0DI{%3-^6{GXCQWi2uHJ!auvnwjIrnc8X z;XZMlO&G6%?M06Qfr$0U=p@kDvkLDMcYsrCp#}0Z*&GuT&i)OZBsv*77}_13hb$sO zEFnSC@nvvqD`A?4C=kq#f}i=s)4IPmdg_+AfbK&AF{hUJ{ zlk5Xv;&KLx!o^$4b;@qfFz-=t#0l(Vz*{U|j+`k=ZsZ*P$y_&oRT}~LyCA~s{hInB zX@{P4J^F3r_l>SaJ(g{h5nrRDv0r6B>Y@(2v}#GImpRJD@Hgma@`^GD8-L$eFfDcL zUd2c3|2{`Y=l(MQa#l51F*I@yCATW!$*rXI|KH=u-)AsY(W*`87s^87RjFsCh;Ie4 z^GV6*ERnaJTtIh=I`QS6dh3}csIou(NJcCfoHM|6Ci=E+87*IpjKO9MyRh!(B%z<^ z8$7Whl|a9S_>kD#u{8+qYWSS%2Le6X+m~NcLox=_!{?w<({+oB7o}#g|Bn!?VpTb%FvnU@k z2*gv0CwemruK{LC$3#f)+OUEJ-LO;npdP$X064Z#IxC7gBPC4??1@RA^m?D9Yj>>- zxJp}x7?xX^-4>~9T{Xtj`CeZmSpgh>yUfmVDeMZgBG|<<5Of=f5_8NL_B+Pb?k1;q z+e_}|5<;3T7@C@(o^>f*Xl)>iV`SASUKjJi1xiuX{k|1e2wC^Om>aGO0E1%V%LzNf z3&{qb$Ss)8^R~|Xdw3!JxB;C90C@03T}ln}t}q-|TKm;h0rD9lt~Y=zZmxPWHClW2 ztn@`f_bYzyy9ulVKnij=yD84t9V$2eYr4MO7h-dDGd;^<0XdEJNXt2IIac(O!CXn$ zfy2rzB06_dAK}9hVbwOw&yv<={?%2$pNGw5Fh<7CnH9?&u@t^HNAdJ>(dx5j<3q)X zvf&$daMq6^U>FIaKHCiJnC2uzM9I1q!3>H|JyI(-H;2Be{0z%WsM|5OI&7MQYRR!A z3@t)|M5L6kB%FJFhae|G&2=Pi2qn@8-Z=Tz1gv3N04)G{%}A<_vL;#I3q)tu5zGrS za7I+0J(iLoH>88G%axiQbVX?pcp^cCu%ilPy!4PMESydXDpB8cFfu`T_72m}5QstN z38I?jt<5n~t9Gh^yDHd7*(MA&pU0LzDOVbxdNUn$`f8-SJSWyHDd7d69+Owy+kJy} zZy?hT%9|)<(PAOjN=d6a?kCcEZG%wRoeWAo@N^Qcf;9rggp+EpEum zq9(iQ5JTFtTB+A#v;AIPpFxYe@B831_HfWEP~INfz%q>fzP_G%UaY@U- zDa7E+I^W?-`m!fL%OgdDOKsHUT;)hPcge(tNe(*OHN??n#L?|CJ#aW_aFQHDGU|(b zDKigjgykwJL61bmyswns!UPYf1kN;%EQ84zoRF&amq1HO$M->fkbfRS(z_j>RIrN} zQIi@G6*&ztCY@92?qLRFBgUS151(2o8yX~8y5XTKq!DZfkytv-u&mR|fU#y_xukcn z$AUyDGom&+9HI`bbKV!TUx+HJ9)=`*$g z=4;w--Y1j87al7=vATX!y8J3*Q01>j7oA)RVVLnz(Ao}54d$b59tGg>bBz@ks9~7+ z)wDFje=ad`p@;C}*35M|LV>iCW(>aFyPG&W+Im|&uBCy_%6`X7%DOI+`#~hEqUbcB zvit31Aad-?p_X&GgdsH@{fu}GmSXw_OX7UE6Fw?nUP`r1=pLGVm8*4Fp`hOlU?2yi zI`<1`<@LOVen$nt-X_M=uSZy0uN>@oxzLW;HezyWg(f|s0Wq%i z>ykd-ip9cq-S30U1@4`%7O+uERjY*_GC)s&5oZ8HxClfybOo^uQYN{7a=Smh#zU`(ngAAd=%t>f>% zDA9d%k!V34b@!e5(c+kqL|mq9^F0%v>}3RV)e@EfAkwIHW=cWXqdL{hX`F}Sz({_fM>Pg|N*M5^FnRQ=0ST_8+LlnQ7}ZXwJgwqbD?|}H#)7FFYqlMu zMpgAR$u!JNuYONRxrpn7#TD{)2*Q_AmL5}5022CHc3{B-c*QPefddYQ$}B*YR3wU$ z$GTo&35AdD+J`yc0J~&S{Ip9pho5jGaLtW?w7Sg;vCGVFQ77;jGa{(XnX3~vV$_t? zLnJ(bYGKbbLNDB=S19HSHaLUFJD=luF-pmE}VKD6&I*;7%o37-5E&aNf3+ zD=(EpPPhQiIgnK+gEcg!qEgRtn;O{8i|LUCUW|2#@y*B zvcU@%+b{s4RH4-VKS2wr&Y=Xy%Qa*+`C6`QUkC4_77=Ij_wDF`6u6DOX#hT*O%KyS zt=~ha?Afn<2Rqtf-^KdLsv245JqMpjEURkDxzRQ)YAtYeJns$?K6$ISdNNe|F?j=y z->Z*kZhZR*AXzaqXWANBo`hp5tQUau`R)1Q_WT8Setdg=?gm+&UBE+n;`Zm?TwF{B zgmw`0%?gNKpz|&)rlV!|g^o4aRY}dh{`$vq;t z#tLm4ytsA%7tRFc(Vnbi?%@pL%P-@EURLr4yJ4E8xXUDx1aSf@gd5>tsq7ZWA^FYO z2Uxa)2af8>nmlFNL5e!(&+UT?!~pfsRnL|$>J%jq1UZ}f#97!wmP2#J zRs!z|1r#>jZz*-9%3fW(6FuGL1G}#oCUcivyI&CC<|G$UjW1SOY|F8dn!rb6C<_%3 z#R70ooJ9=6OdYu++rf!1!zpe8X#^%`YRnI`_;u| zwGN3&*{*_@s{J|h)Y-p&Nx{s=w&%~o^UF7A@-P9<*<)V`{Iovt@m2*w`1~fN78|Ww z3u}q2dfA}b{`p5k@W{9+nl780&Ko{aY(KbmXYt1X`S#lO(u#mFd90S@_S1^UJb|r) zhNdmOIu(0^3rS=r$qYDk4X4iB))8~neX@bI>15!2zoTr2*;UrjB2+C{#ykKrr3UKp z_;B{Q_Ua}woXad+SA4aj3uewFkV$RL%m<4d#+Y-6pF}8;8_n}{O;jOenZGIzVDmQf z*;*kQtyrQPJ5Qd6Hhy4H418LQ24ggvP6f~h*b8fyE=p@6Qg%*KJr#DK1fIIP66N0P z%*V(9woYA-!bk;U3hZGbBp-8JT{W(&J2)vl-3wsb(LAGpyZ2j)TT9(>KKftC zypp7|T(`~wumBSb9VZ4}V!k zdUAVChSXs!8;u#e%o>8XSnkK<8=^dwbCXwHkgd$)sn374OceUGcuM)0ye?X{>Po|R zCFD6`3mFE68R;MiJFqhVO|=k-wcp!dXR}yLr~v~wcTH;xJhYWF0H9LJQntWbMDz$YIB2f#Vni;Ya@lIjpvcPPG--x-^}GAznl{kO7iK#xl_f zBUDAY#`s9l&W!C7NSjya*^|OQlsY6`7&aqyS`&(q`&t(3D~htku>0oZ(!ZrYn0;Q1v!_Ce$q^;t))_i1VD zBftvnC9=0sv?-* zDgL?yX@^pJfW*6&zPf$=W!^tW0fv|Ry(db5rDLat6$H&~pR|+@CTxOFo;o0+B)vti zH5=G_T1lI3XhMT4Md!5u)JVQ45*_+-C`Lu(RWj1C>0_2}*oCy5D{n@jwG^Rw)P*A> zBZ=}kq_%S3sIb9j$QT{TB6S89 zh&dQKI})ZNlElDpy68a0Y@%CBfaiVy5R~B8s&T^Iti1y)%mbNd>6qP%J%VewI3gy3 z#rDp{VLf5ZhOfw8Lh`duM1}ThZ1=wuI1E=MgR~0;Ruj=;IuzQ2$;d~+(@ z?4`TM1bE&-YhCDQT%V!!wQEh=7@~6=bZ~lkHw{BUS)o27R!^PkquBMybcC!3^OR0a}9b zw=k>RLTquVxMZP9et8z>H^RQLs{){+S(D>j$x?&Nj6G;l=%A!yqOe%SQiJaoW2I>YH;# z2rP*OO$`WKmi>U4O><{)W{?UI!(*8yQL$l7?|iw1qqS02&a_zef%a(?}vY|kILL5GL=XpeNizCd-A zG{1i5dremJS|f@lp0ndvlO^SS8?I~^n8TL-V+-ushH zJyd4x-{H|!^Ms;N|w~M`?^lfkzQx#Y9Dq%m|k52k7`;0ip=;2f&j-ICX@Y$g0>vo+D+Q0MBwkuTsN87i@)_ zDJ~*Ek{^%-UP>`x1TZSqCkD|VojA&#wP+H0-wkz9kpO6Iu`v>f7(`%1t4tW=?dp2Ia!G;^)dDb3ZqGM29qiBbJ zBqR^NYU{V=Y{?*bhBZ1*;jhg}d;ZM}MzY_N@EU8kjvClS*NqWPk;+&~QXpY62`!{!&lmuo?2S^f z!1J2-#6IZ6?dBvwVcpFlSJ+#gl3dj3PTNeqY&7$vn=y7KOK}|zMpxeRw^Hzsj|9R4#~MJ+@hSvb6VXN)eW z_ome#2ZG2k-BH{}jZUOta^WtV5qgm^K^!A7Ac}F0{LbX~Ig%(hm?Wl`$=QMw)xDT~ zK;rOBj4aH9)Fbav`JOA&0r3I8(uW`^@f;~9mbj%q2@jgXF{f4KCIn20jfenj79y>g)*)4?ka%u7=Ti9 zOx~Hyk-I0g&O=2@20_Q18MbR+WVR9-qbVYnrgs3i9p1D_bY@v}N-NjPTp$Eg|2RW^ z?5v*;4_pJPo9c3fL+GWie~)&0YR4ms=XlJHNr9sCUfTPtJe~xE7bs_W*<<$^dW~+6 z8{l~cAD^WhFJbMX?|Cc?&$d%9v)B4Zda~sJ;zY5#)?c&}>4T-b?=4)lm4ulNvp`#D zYK^m3&yb(jZY#`F@7U=@(LvKKGpNNxVQfz)aYiF1xaN+?R&nZ3nliQ~ECnMCwX47z z*$PS7R7?WKc@tig8XkZVeJ{?Tv&brO{T!yn#GbOhv~(z-7qOpedWJME?OjxpqjZ}X z!Y@E~R6jc^9QNYpo2z6MF>#f>bYxo;An?ldF?A8bub4~N zC@(*gxm@yv4C(rLGE2ni;9~|$!4d|S2TRi8P@CS4aXTU)G=RP9q!0i)!zA?cTsTEp zL3jujl}h)OaX=_R*bhWwpI#emuKtG4tNS|6CSW#OR))=94RP1~<47oKrVn z-QMF4~Jyx5ws0<8$Suy?$?rmrU}zr3q+P;bUc zaU?!qCMUl+Ho|>nU_$JJyYkN%V!>C|~5) zN+A}OaE8NNn^7EVdZ?zqXEKqvfyF(2n<0h1HplHIcM$`h#Myumts~p{IAe6|4MTG; zC)9|I9SwtQQQO1O71mH=MZrvJFsfj~SIH_%xY~Yq@oP6Oz$T^>V*1o}2fSKQXSz^1 zrxI6&kr$SEpl#X(*59ZxETbDjPr_BNOZDD~bF)2OPOeoC`|=@|$^bIoH0ME1f z_&goc%==?ucyz@2j7bo9GCVW782Zg+vJOp+Z}+k4gALZ>HU{I`j`^r$<;BYJgi8OJ z1{vN!D0N84?2al}%TzAacp1lz)M*pGTpC z78g^j7&PCuem5-#!bLguyvI>8MU-N)s)Xm{QuiU>A}Z5McUPRNb_U$sjEgDX2UHifk&Cf1k{kGsEYyHDDEi zC29+Tis^{_grl3VNo0Yz>vHsipnFsR8u29(ti0w(Xocu zDBtG*p58YM4~4L;%j&h$qJW`ea6d?0KJ$p?j`x&9XouJcc=n#h za^iS&qw&{vosQNXc2u+5!0)#7qvqc@=@0e+{zHNWvxl{OS+%c%2RPf*OJ;)pt}$xc z@9sQ9h}~|VJjXpU60Y%rvs-23)ykd1^a zB!Q4U1OmvKu*xCS1pThN+>jg;Rw5$BR^dl{$ z&R={?=ZS3XEdN`=5bPTPB&=NGu1w6l)Cwnw4EvcocOcolJ;ikBLHkPa&KYlWJMg*P z0(!OE-FK7|bf)!2I}bewhHe7-ABSv-VP(y!#Dps*I%i+sHz_utR1;+K^7ZT;O_D~? z=)WWL9gcmdPn%Gs}5=b{raZ+H2SpBGWiPRM&MA1`Tr_Jr48qa~J^kCAJ zkuw{^eHYTukq^B{5<8TtkENhomE5Ri?eOt_o|r29F^97CrVunLk|q!;B~@p)?at>J zHWRKeJSz;(R5Lt$;cp<+g z1Zsd)uQu^wI>SHw5GxVEdQFOAH7oYS$DpbJ46*F6!88OR&@dQ;3%#`x;&TvF)htA} zCNGesyrbdbbD@NT%uK?%tOauEB4lY%jFC}}fV zFek?8hkO7X;8;DZPTaV29%g#lML;DFidDoi?fE97tbAs;?F(^bbbnoc1}kj^@JwmD z3DQcoq(DpxnrmjB-6?82dwu2F!CqCK!OTIZaWi1oc;F2GzFb|Twgd5sJVF#ag(i`q z<&lw9J`bgBUR51Kr96VeY${)!s!|S?`Y#;NfT)C-XyORT7nFgvE=~e5&c=z61$r-F z$wFS@BIj{+DT7hz^12f|YgC#b!6R4trNlC*l_!s%pp21{mAZ|tSp$%MO%u;fep9+K zSzL$_AC{tjptu11xtrubuy(C+1!yBf$7E1;)E$`VGZO*eVK940)313BWN|xXJ%+p} zdGO}3aIJ6{0m#I0Z_ZbWp**iatjST7oEnc~3yF}BM8->i`a`>IWeS>%J`?$7QCb_Y za=jQKT2WYyrk4E-)yy)(;PQw`tKK&J7-`WdJ`qM`A!>m;OhE(ZDI{=FOQy4v^})#o zIBCS|N(C0h#1a6mkC7=#b6^+FqXb_245IVPNwsi{CrF9`t zZY|zQH>hVH?^N^Q&8BkUlvsp#hytCv1|t_$;od(0H9(_T7n24sN9$X^j`m-yro_u? z?Gl4UChpn)WGS^#L?CYoaU2T@mxoX6E-H7!5U7-O0n?a0f+XKQTJ$afP#Os& z&Xu`@LJ5SxlA#h)4pNd4Az@FzNe#NDji=0Wa3yPO@zNbe zs5bNQE5U69NQ(;a``TL+@7?pX63dPBx<}~Kpgd#A#11c!h)|QaElC2jRa&bv zIFNl63#W5skE%3vhNCH+-`BXn^&54vZzkJ5Vm$lpX19P|X)AzdYTHjCXz*~a!0ZDa ztc8E6jKuXA(pdXg2VFWS!ZAt3vp=YwnXyHlo(ISH2m?R!JBw`?pW?oD5yVA43&G1* z8YPhYwm+N#p8$xS97f7g}f`H5_!YG%HU9tvDS0(3{K&M{Genxxh5+4;Oq?- zm}Buck$|Db+=%!T!vcY$T2xxx30CW@E2fr2 z+dbPysp|xG`a2NAvk&W{lJ)X+D{x^2@JxH7n{iHAeeE;zXJ&YAZ&g*9q& zM_1_($H1-RA1s%)5joF80a!U~taX!lY6(+x3llFD61|qDA8S#-s+Hhsj3cj`13p zu}NCd&L|!TAxSF-1}ug3REv0KMpIN3or5z?%SN1Uoi+|Z)(^sU&`Oao-zL|@fix&R z^0-Lf6X>GLqW^vISAWgXV3NR=2oXo%P5>ePdnLpp4t-6mDE_Td59dI*Kt3+87Nw;B zech@agsNO5$oWIN*E=I=r`%sI7KNIx6Pfx}G#n2BS99HgvVL9Bu8uQeBp1Rpn0N+f zy6rC(9EL5PSK12TnHh$MPwM;6{;9bIdo}l6Cymo^x~iNsr4ueO7);Y1_Th%OI+6%n zMy{xbA)2y?`Ts&t8f^0XeqHI@6&@7QA*D?Is*_33XTO+QHM&ZULJ=s7Mr6MDGjz{~ zTu@wkG++S3DS_}N%J>^hxwT}aT-z0vr(=Xg&#^zq>MEHex*8!)bB@$}lE7q8C=?#M zBE6VekTB1&XF*9!!x(w#_b9|UK2;t&YeE(^rgm3DWjsr!#8e}XJ0wy1+1ODDb?HFX ziGuf5e^tyWt~@4bm?%`3 zgVKUwlqt;#_M`i{-=?GO)k29;A{X}9rTB>fU8HD6+kOznjIRes&o`~Wg%!Xv?d>`R zCHSD_nLc+cBI|K&ZC;Ig$G9w>p+kxEd7w&LA8NJQ2@B1^HLxku8WEn*kCgCPG!4%M z_VZw2LgK64zU$%>dTgxKMIA9Nao}T%{6cYHJY?Vzm*Llqs93<>kBd3->gdinQbw7{ zp;)OZMFb&U29=C4B{D)180rUA`wVgUGA^FWQ@xXvZ~>l76q&@xIshJ^5-M?X_)tfW z#C{vB#gF5wfFce;cy53lY z=So(OO=2;gwTIk=B~T|SS2ajrD$E`V%_RmJO;vJZcu%pRFNY4Qbfg@ChB*&;eGNNv z90E?#!l|Kqx|6e)rWRVPuGf#XY_A!%hx-a!;qAl<;8_7YGr{n1rA(+OT3B7N95W1f z;`#J8EO4_I)pfIxU14G$>aq=7TV@E19$MFbaOIlo3Eyz#RTdCZq`A((M9)M3#+CNX z%^<1{GtXJQf_KR(b){)$;T%ijCt1Ven&Zr(7;6OCWA8>l<*i_V8oZxs$5<}%0Xsi8`V4Eg3oSUJ#t zx7o*cO1aG$ZhJY~;M;)Nj%!!o!V2J-_I3|cnOX(2wVr91X}1;^VR7@{)lg-E4C)dI zXo`9=LgO`ge5LY-N=phL(xi+MavDd6s;NW_1bnk{*9=#uwMucE#*9(%1NWyFK`O%n zi@{f>=CGpPfx%h`w*IXWDrx=_W0Ye=iZ-GSgk*F=own`8*?_APdk~k#&qQ%b{8vzk zMNxuYn_^N!a5pc2UPoXJi44Q^Xp$W^2n0rkTPs*97$%+uj*QOWx{18vK@tRQ^m9yO zi7*~dh>@m~X44Ceso{#!C`EU?bY`7H1wJ~i7c)SSm#q+eRzPx%ooG*WNxb`t>+twc zGQZPrMYY!whBZcgocvL}keK>DZ9B38tQav=0h9Y0yS1xsla^9A!|gzQDjTMw-@O7C zRshd5w^ep~vin;qi2Z<>W_Wz~WiXGMoZD&`M_dd=P={5vD2B(F5D4k@K=!cD?k^X6 z1;n#Gf2;(Jf)NaWh}=CVz_Vc>bzMo(0igoHL~%J-GZl_g3IUov>E4%T2q8nrDw?|} zrCNZHCtSzi#v9=RWw34x@C*<9sQn<#!NA@Yl}`1UE9jPt!O->~;z%%tM&U4ch7EZh zOmI2XLNawtP>eh}v4|mNif${pu-kxY#W1SGEXq3RTQWR*}06H1ebv1US7wEcQ@qy?FV@FDi#oh?3Lm=(&Hav3nHJf_8>PlCGK8pw`U0UXQj)mLX5Pv_iPrO_RiCEZFCCZ3lK5E!cX$VtHKYblVQM z9r6uhnoM_|0pJU6l#i-6FS1kkX8U|M7d_19`I;&pR(h{Q68ZO?8_So>u3ch&HPzY{IA3Bg<3|DeI8L2DL_YnC7>WLozxM6R}ru>U|1sWLFv4aV?9qTySxn zM`+^x8TQ4pp%3bsVJ5zSh2Jmp2t_gkuJUYIb2G?DOXIC_TOJ2qU_$Xm?klGB9Si z9qg|4K#czlcKbcMy~J)`wA-0>yL|;dtS~&w*&b-O-?rO(?e-kI?aC)XWl}zHmQU6Q zhlf3>TkS-2n=d(FDCn^C%BVHR-eVH}Gz}gdrSG&@yjE)%#SaW$q5eLvQX)2W+=H_j zJr;-J+yjLZtSgK}5Nen#)>y!>WFlm)Bd$qPd+S7PEguUK1QHF4ioj^h@E9Ke9#a$f zifXLE<29n38B+`88I_!1akVup!Vrip6`(-@BDu?_iU|t08VCkN(Z`9ix}ts86h@NX zpQ5{Pv>1hK>u11qh>}by6peY4;NYcE{0t z@-y2(w*u&8XJ)h=Bo@XT%+t1$-Ckt358Lh4utQ|~t}r~a){d~-GwpVim>7M`N(r&> zs1NSk&9On7XOiFHwYftT?H}41>i(_==$vUq)-xs)UgRm__UWPa&%E6hFte1;`VcTK zuNavb6Kt_vBA#Op@T59J*svTLtd7N(@uD@;yg=!|5aBv~hS zAX&VmD5(x|5kr-Gf4xh0)q9yLh1$s@R8%Vw|D`yH>;O!J1r*0opJ?NP&t%G3a&@D;>ep}#sawt9|-)6FUp&{L5SWWOT}U6KDf8YPUH8^27EV?;|K(`(G=93#`^} zif%jiQ7VFbkxJch*@!x|O4f}xs;^1h-?V64RqwkP-iTElyuhgShQg&#-(**SbFrbx zFOFuY9So^k)~mZ~%Hn>U919gYMrrG0iN67}Q-WfRBMOdj=kYnaeQCsfJk5DjE^wgl zV!LfwVR$Cf*4yn#c6*9L#57O=oz zxQbw1&2jd{3ynaE{4dwpPXY#p5zq!gTtdK^Vd6Jmw2xjPu8~_=^8_cKmof}cF0fvf zV^mxTgqR$&$aO%o6HUv2B;#W}3f6_S<{^Y&31lJ9-VInU{~;{eYvZm4aaLJk9MTv8 zbCeFQxH7}oNsKN%io_UMD>FR|MZyR4L@+dfNfs3fIw9x-U`#BeS?PxRs}go9xT1`S zb`ycMP#709ZUcEjm^@D`>mhgi#uh2#37q{57VF33+gx|9Lw*DE7VIR?1)aAVkSm|BCz)&ClbDE1xN?b#mL zYX4ppIJ&qaXS6*8VzEIK?kpJxDsP+v?e-c7aXx3+?XD?1N4lnmGJta^1f4W$&$Zi^ zp?f$My6=!!BP9WyfKo{ zRAY;_%|5%@k@4Z zzd@_WiWM*>PUNZcY_SFv7*8&!`_>IJ8j+QQ;36y2?{T()+a<$sgYXJr*6)P63S0~h zFn*2KajJrb>a2JZui<%lgy;yhm>uDDODthbYZw;n4GD7w+|YXFN~GIInnVx>DYI2Z zqG%k&#wv)fN!bN6=dF?$46Hx|P`M5t7e)wr!qN3a6Q$exE5+TWE)&m#s{lwqx4)qj zgCAT*uu&{Hxsr)+ZlVw~<^(vM@r(;)C^sT6h?cml1S8~k?s~gtx8n*bFjsM*Y^)of zIMDYlVdt>^k=+*fubIa1_?c)A1xRYi`MIM|m>nKG&w=dy?Dp$+dx71)YPU1M6<3{t z=8r4a_H$t9f{yz;%6&(Is>9s&Yj*pL-TrxMJR?&+2p?>>KeXFB9CbFIaZMS9RQ&)P zKwSJyV|fmmRVFqnyBM8>*;vJoMEWm1_jkyn)8sbP<*7mx*3sZJC@LF)aCRiIq?k;x zF_9AFcI;$GIu`$1)#j znYPVtI#h~kNzEalADJF58$ER;DdlZ|C@49u4WO!1LGzE{zs$Rb38@M;`=QLhZAV}ZT?m5BAcuKJZF-|I$$dnZ-HD|;TLUEieVmFro;p38Pa-`;W+baB&P6Og z18jG`OBhL1WeoX*>4N22YZb-QxQkG&oLelWgA>QzfErbSGNUS~K~;MO4f7JV1AWcb zXo+?v4?>dXsP8Uu5A%q1B}z8>m~cb!>}+FVmzEL03r)--a!sSEut{KcJnjGO0Lvl_dQuwx)i3zSqdAB=2;FX-raKhj-r=uC33CPRNzk1wV)Z=|e>YNeL(G>{P(4qVF6 zI2J&zMGLln&Q%o7`@;lQT;L)?S|;3mjDF|SMOBHp^cp2X^%fvjWT{r*7#R*3+vAN` z$$~dgR^zV2d@zp1knR&v_B%3c7`gF=f6LhHM0FPB{_Ci0ULOmi-PI}gCaXlF0~pnl zfoVE<7q#LHL6jss8tENMZ9hs1E(xFxu|H_yisM(G92) z*orIc5zL^K+$ONy%|WbZbs=gaVWtV5VZ4dv8IZb)itJ+qXi#_~kP!=<5!&5uFSFYR zpo**6eTo1NHHw+tR{=X7Boh$YbHcy5!vh|Q>L#JUcRKgg8aB{M!S0l75J}_=Vt`7a zxFWOC_1}3Y%ybJ0#3mGG+8Bx*4h_ki*B%5Bqk=&P?a=|+K<%yy6&yjRm=&y&qoBz( zE~5Iev+O^cSrv(bO{`@Iu&HW4RVv4R?P{FbEwbv@wWN-Ts|)#qkK&l>qLpdAtN@RE zV2kk;+_5%x*x;gx0*Iq>V;B_`Eh7-tkYe9N?xg?+ks(EsmVQ81DijT`$BClsJceT8 z?6q1?$g@}Mb5ZtGL}x*2DUzbA!j+{l5j;Le95WiR7|O=`G_1yXh514Oh%zIv;4U%% zS@JbTa}WZaz4k(x0DLxwxl$x|+3oX2fs7iphYj2Va`ckONDLYEnqk7=g5h&2?;Cpf z1L#06&R9Dd(jwE+bAZe{0PM3S^PFFmfv{J8T#FKR>qHffxnU4dZo&`a2aoDxB|N_}#SU!*{x#(@Zct#N@ozu_|)1 z=XI_IpvUBB0g|XpV5OKm2M`x5EQA4?NtUNDJOWj+t>!|g19(k2tOvy;ZvE=qStXyN z`k1=gP}V+=0+5xoD2y|@0a#Uq=tBRepFo_sE-cLG)nbEns6>$U=hq73tQooR#dIZw zu23l}dk~yT2I8WeVCu1iZEM)rPly#Ggsj{JWL-%zD=R9LUI@0xaEuYV)>M#Sl)rk4 zT}lCin4s_YT$4N2 zBDl$rRY>OT&O9<5ug~BScSw@pK4s*l3d_Eaf%FuX%ee(?CBzq9` z&Q7=lghVY(+F>7dIX=;+#)$ET5SNn>MJJ*mSLhC%B>tj=IKW6- zRLL=AFs{34Am&mUvUHGLJCl4iXxlK|XN0d2%gXhkwQ+{(7)0RNfpMoBPQcMAJ<%O* z$pEdd6j4;l5vEd*FwUSOe!ni55-BTTUNvd@+ffQ2(YyvlhAA8fFNDTA%Ge+PjinBO z!1VZsEnw#_9DsR&JBPo5I6#=q*50~b54e3#|=jO{GRO`%w^>^V+lJC!5 zsEDBb*ae}73?#7wYMDx=v1?2;5z;^F*R3L2m1>?ne$A@h!o6GjLDUPQUz7C@3ueFz zHXeBK#?sW+zy47~S$P3GunJU?`%M`PpD9C?0FF8mI!AmlFOULqBH=#i4b=B#)Z+jF zaAKuoOzJ#A!@ZE3sH0$D|1*qaG>qp9s?|DZ)QTN2SCXjtZk5HMoUS;ljLZZyfLz;Y8Onvx;TX>YK=X(#fAcNvLKE8Ep{|=sS z-&C0#1+|u5+=z}l&OUN0?K(rNWSNUzF`Glpi-yJzvFRetTBFlA2GWcple?Y}r>&Qe zx=A&+s!?2KGK-jlak7zDY6pDwDJK!Y_;bP5P#Rd-*CX^ZyjiQjX0m39O!vV3-FtIz|(gpaHKG1 z$k1}33=WQ(=L7{0wNus+Q9o09DMHW9 z#-;uEsv%$)ma!VHNS|asbwMmTBd1Qx&K{By+OTfkQ<}fzfNoh7xUN^=WrNZjCEO4N z#y=F5b%@7Iz04OW;I7tHx`r}>oZ`v!xztleP6Z(4`l;yPbio$e5V=lJ6n|2{7H2l( zLfa^;O>W}Nu@fS+CSqq2W(MP6W$fVo%dIMf7LulI7`#iNV5uadOda54cz7GTw#FpP zv37jv^;h~1Tb2Os1z*(G?_=P~ym+AP#-2fYPh4RSm<$j}b3AtS>bXzZzh`XS*6$}_ zI-4P3qiUKH6+XzZIhQp88pO_R%8P@`V>9scl$&yrMmvW7M|65Qgcwg+m z)3NORhcy76rbaRfXSj{no~OD6ZZ2q<&gFfAyx?tvJJ+}5z~8w3we8(DHn^EQm?@RP z)E7Vn6dIXJfy)#@BlasN@}p;NZGti&0%|E;7b0?n-R^YhRz+Q>Dj58tmK`pJPW!o` z@+#myTw5>pcVO0>$-Ec~b_i^}$!;%V1All8SFh>~+-e~TU@;-99mUT_*PLbPAj4)n zT!IS=LMF`$6&EMQS?yT!79l0M(LjPSzBRT$qdx+uQ*x*y8{ceX+S1ICc_(?WZX~jd zsX!w8u7QlXYXdh%nS+|r>oIe`itKW5Z~D#=oBqN32ISHJ@!J$56_>o z06SoUn5B;|^X$*oxn7Sm-*mtHrrrL2^{Tmt%Sa;>xdhmu^WA$SvUjwJ)varlXpD}p z-aiE@U+Vgpr@}=v=?u1G6$Z0pwx(3vPEzVb11>U_l!F`&nt1#U_i|jMfSp4dzz%OY zutUFdw%uOs++P>D-@QQTlf^a?E&PNVzx4O+2EwIj$gX#QY+^CC%K>;U69cAHsANsu za!y$-55&MLAg_)olcfFke6ZP(v&O~-@eXd3qrldIo#M}DQ4gihcB&18vjFwAsJ{5r z;7bVic+tS@@Qe@(boSV=cK%iN;j0|lmy8?z=4!j5y&PhVnlffPIOg%HyvXPHR9A_I z4WY_DDDEb7rP*Vo<-n6s*#+`y^#Gdon*&^`D~2OEk-F~F?xoI< z|5%Z6(`n=Zjxc;vHxOnQGHv~!fR8A`tZ=FJMFid5(65=G0Ch`Dr2{l~r*!!h4aXD( z#2T($Nmj5ZuCTwkllUw;fbv!gdT85^_n1Ki^q`KUS$md4ZG#%XVWM3&G|XsVn!`U0fLdRZl;$uSz}0cKnJVjK@3jTMuD_m>E;L%;nx7(d0E7?S^E zxA#CQvMXfm%aAkeZ= zR%eAmJJNP2gxI2)Xi+@`FTO7daTf)Ai><;6<~KreW1&l*t>^n;q^bD@I}2`**%v(U zg@YV#(bun?U$cJQ{PXOylcDmBuVUB7Fs5$!*iPWYFx^!HoMBiJ0)}{9ubj-86=XH9 zQqC(@aq}8I3TqIRU8?;hLi*Tb*hI-#U;{!yX@M1omuY}I*s_1n7%XgLdyp5V$gwkK zgtdE{T60Penq$l}(E$i6G*YLkfva^D5Fdo>I}{|RKe9s1sT%teF=-fo z?(SZ%*jX^u+-Opx_=xw}d*-)Rubx}4B3o?fB!r#q_CzPd)MJZ;l6}#G@6suglhX2e z>J`-@)n=y+YX}O^(t|X8T-u^SxUgg(a*x@jIpMzIfzG+i%AZS6vhmVQ^t}&_0T?Le zm9m~*5BUJ#Yn(myZ4FF5YxxeSVvNWx+&qSv`w--%0j3`C&~ZtaDV5VK*lBm zfJ$L}<}!w&6a$wBjP+)T<%v~ULX92I_S8ty3?uEYV431`&gPXEB11z^Wwq9)auZJm zP|A>}Rh?kN+Ih5Khw8<=6{`4yInb-v&#~159ZPSnS8S{R%rG^+6#2+Ti401!V5?Iu zGls7aFwKZ+?zM*lQ`6k)ArO|$FcCYL^r8&1ao1DP$W!XAq9PTk zyR4dzI1V-rSBwdBCyDa;{ndg|0&?)wdEM`dy#7feE60ZeKPZ!5u zZi^|TbS{{|5T0WMGsn})dy4C7z!q$>$N7SNfi2<(40srY+3CB_EU4%16VGl<&6qr;{#+KQuXAXG5{g7 z0xtz6$%C8$QopT#e(WsWv3}AiYFkz$g_#_i^9>iNOYW?JiIXw-O>eL^QutIm)vu}7 z`WgOV!@Bu{q0)_bDO7=Gd=-?VglpP<)qHQAeR4CyXgq+K$FvwGt!$(oze#Iwp(f`N zG5#pRk8%++I%ywQBnPF!HbllT$9_PHwPHo0iDJj@Zfcbz-}&fp38(o3XGK@A&by^eI(z11w<9)x%N03Ku`+JC-Y3xO?+do zSL_L?qHj~pCUSjIEXLni&~sE9!{W|l4OYT)baI8DynK8S*ADV2`R7KldB()OHM=Uy z$3h&pqX}U4LC@Gi#rv=zY?)D*ApRb=e>_~{qK0GsWXt>9zP=8+r*;2eI{_YQ3-Da70FQZyGqhy7UMU97oC0Pz8-xs%OZj>E8-70zgXyR*){Q6Q zRh0dL)}$4)?BmPrb|cgxXny4wRUzPZlfc6UySpbQT$=mb`nB`-v)jwvjkUkH2C~R2 ziq#Xa&ljuai%o8YX`-_1+>;hKC{4APXD26ELC`HmRqu-#0K{~$3=rc!RKSvnj5Mlg z-;rJrCYetRs$c|kFq0&Qb=jyW{T&6*(;-R-8sJCsb5!JibBu->gxLc<>nhc1JM)xj59^^(DgkIf*`GTMR}Ho1DzhE z;a6Nmw}Mf0}9JS`}pgcanswko$Kh%5&A!wC-uy?_PtI98zarb^oj(+)#UJ7bgb64;I(-Ww=Cni1vdKFxmMo50$hs*@K!=qqX zv4M0wSd-7^R4y#47;Oe(310%&$qk_6*>+pSr+N!==GU#Ae+E?UtK$`xtN=ZLoWI6t zdbBIt^>)I%Qj{4mY%VpKxEhH$%4+gk}zDK$^x3?Vo0w^i#u6@_BCkrF?2W8=H61H(EvX%+#P}c4vJA9U| z&%R56beF4L4r$P*Q3jt@wYFpcNygL)9aT zOapV2>#I19pXGe9bZ?0dw#@Z<{ChIdLKd$Cu~3li61pF$e87iSuj-v(H-@9}*>>9l zLdtm$YfpHcoY))Qk99ISZnoREBA8!5QZSgu^2`tbIz9thILI-|+y#(kTlLs;P_A9U z*dGwCEE!U8Nrz+qeb6hF(|6y|0ER|&YfU=5W0hl`ju)>J@$sJ-Z1N|QW}220@LUGE zpR)v|`mvZ43TAK%<+E~-<|xG|YshWK!z_@qQHoYP0U0Mg7{o?~bhJhN<~&oSn^uvS zCSr`LzQ@|1?*njuaqa3kqB#E;DqV#=AWaeE0m+=%nG@HqfHW18+70%A-e;eDkmV1R zVx^n-*hBrwx|(-LBS)uYqxTvIHb!JpHGv1!Jt7P^*S66}xo~XU^ri+J^hy>oV5gCN zk$cgKXCrrkDyT;WM<=;m2vHrb_y|!4IU-(3_(y6G$R!BV(B$~Mv^qx3?2tY_FvG5N zWy~V>&3}E06WyATkE(9gPk|Ke&>w@4&P|EkJ;_Z%J-3w6AxSBjDY{X#aQh;5Y^Bya|E}?;jv7S3!+RWK7Jxww!=x ztKF^^x5)rvwd5YeaW*`4P@?Dp(wZnd7!4qGj{&4^2KwyOyR{JI{KJX@7?a~ENb&O9 z@ycUZshm@{rCiBdz_X9tWnX~Eo-ph@2BF73JEx4d1&8QQ-mn*>u;tE3x*Xy( zJ(C$snl^=8#Sg>)E(N;ge+S~mF9gf+$Z5ZYjS)H<++Tvwln4D4`*$0Lz{xVoY!4k# z_!XYrR@=$>F0tCtm@O5^W(t>(gM%&Ptd59mFwE$24U;ahH6{f*C_uRqfE4S&mG(_ z#j0gFh&hNAmwDfFJ5?&IjbwzRy)6{GHE3aXD7)^t%3B1IJ~zSsk#RhWachyJ$)73g z3<({coMEKM#j9xz9cZ`5?+AeBGG##a6gLA0Lj4SVs7+oy&^32tNdn0n?dB-q8MuFq zViJ)ToC@=G_4e(CipM!!9+%@&vk_QDGZx6BRfjB(+0PiWC1V6-(6}}gQu^)tEXetw z-EPjI0QbdzvtRmNz-?$CD8Qm{XUJ>mHF>%ewd5R3#9AQ6mMY6uV8V=`U_YA5PblFs zKD@%0(ukRjC{!9V=aL5=+Hzr;8s)g=ARlAK0V@>+zN0M7zV$t6++2uk-j8J& zJ+S(^eRfL{)5Z7>qd~~oC@n#A`uzl(BNJs1g4;?fH6h1{^iK334z=iI7K4)IX^P)@ zt^*Jff_`wqy)FUIkuY9K2RhcbLRF@Mx2qe#j&Bse{8Q!i7f*tOm|NxnNH_Jpu7mhM zDIu+-E@?+(j7*tXWg2DTEW`kgg!kA!f1wF=FF(}5R!%$UCo?Np_2gMlrLwMaE59Mm zF_px8t#4#sn`cDQ+_r_XT)nDSi2kPM^N=c7`_B4MPwIx4U2COHb&F!Nmr@ivv=)(z@9g3*sz95D3Hd^&!8&7 zKz}L5b&q4pj|dT z(5@PTUBW@5k>l!U@#{kNjz z`z$+x4eU|VIphFPj$MKV;9(LL%!EERl}4w@9J^$#iiSQ7;6C(QFm?f6yak%-2*pJ~ zEa)le{yB4gt~kf7ZlCQI7V`Kc(^lB~^agt%2ZF9&Rtg53$CP{td=RP0^a@{D7*NyG zr?kyMoQ}@bj^|jv^dT)<1P~|3n9Thrg>Xyp9qEzqHtcc>b`En!y^Hn??d!B9=p)+i zg>EtI+rvfxJOq%)jdhp;qzLTX)p0-nW49MV<;vpiWtqYt2*nkaQ$^`nkTVdVip5Nx4)6Kokt-QD%M&T|V0kQL^@$N0qmDOZoC&ol+ zya`Pa3E&jPH|#3#1p9cEd#$L`i>q0>bSdn{6&)P{$!-0?`ZcTO<^*V+7j!N$W1qA@ z=laAtV4V4ZO?=!CFyW`|8!z`Hb_H3u5@7k?h%34e-U%j z@$<*d65zQU;yXv}eCxUOhKg>?T&1gtfhwEbLp4*qE)^sXf|!481Yw4318k!56o4m8044c8DR z0*OB3Dj2kiSS=&YFMy`Pfhi84eqjH7N0zhdgzScl4=LfEGCx-kOYthZJy3Ctm_cc- zHI;;fbgdxp8e^t*z75~E3#f}qV{YvNGvz(phU}-LJx(w!K703i$3Q>}h(HH|JSf_Y zJ@$Whc3V$jclvCOT@cJ6F(@w>;atA3g#9Grcn)>Pw%}|kjl*liC?>FTs@)zezI%mZ zeC{6OIKBau22U5^!Ope6rUCHWHYx0wii83tgBzIZ~=1BW^KGMkbt3D>X3YE)e_;pHC@AV3Di>-2dqm;rk z?RM6dZT-FmbVjGUeFz4UVB#C>F8;;7u)ByE;i1L_1ea633pTF(!Blf59v46+o*y6_3Qd*U}9f=V`eV{UP{UcTU*2Yc%Qwr?Ji*Xds47mlGJ(TMa>%9`%Gxq@Dm1;bcA-D`*{b;- z0Uq+Ve%1n=&9!(+QyxrbhlTM~eCP>*Vyejg;UPFPN+y(NYXWP7{8Jbl4jvfwSUPuG z!Ak&Wbv?1Tpr}k1HozARyyO5;j=vi<$hQk10);^2&kZzqBTc@Ka-ah;LVrf#o!Zoq zb5J73fQ9iBlcgNE7))cu>i)-6Aa&>(w=cd1tL#L5*yD(>&eWiX0Ly3Qd&O6wQa^v% z@b$8!h1rAHxp+6q!1bwj_0RLMXcs=`4oY)#H?f8e#O!pkI|XA|{9<{*&Ha;X1Ggw| ztBE!57Wwpd6n7RS_)u^&8Fz9&UFf#kCtyt|8;pYFSG9bWK-){~_DjxY?iAje!&bNPw8Yil=q}*GGW|YH6qi66lx7$eI(>MDDH3V2sgciz<*6IPa(EF> zqabFwQGI=#D0mfNj#Vi);8NKwNIGC!e{h-wIv*pj(`oYSB0C45%JIN__C|p;BT#9?}%{E;!(I4m__K;d?tPV2AAJpG^SlP^0+Xu2tV3 z*7ZbJTGh@K(~+MX_J%3dYxw@4?DvY|3)RZU(Ktn7^wCk^ zzJ}TG7cA(ZVB$3i(1M1wxHgM&(HmAk2~$%|!E>iEmsOpji^$?LzyT7cIf7}8tkei# zl5!qLa>zhnh>J@hMs*gXt1LBjxqau2ao3U!i!xOrmK<}0T?2qXMKrSMBxQ*Sjr+n@ z7!!At;m3mQnS0gc#4M00fC~g*Qe#~*a+Fs4&)Ext<6jsJ{#wv;{h%}tvG~4l!=uCC7Nk1om-&-A;lkK=@MxxS`7K zI|AB0Ie%ccCr;oPE`|^QJ}I_r<0SiV4py3P7dd)v7l_m0>F`D^Qd1}MHsOHsmuHPO6dZl*XC>wF>g!_hAo<}vj|6{0vxWB#vct&fq z$|0ZOGa)W%K^OYrj=sBNitvt$z-7RKg^geVQ7#j!i5!_RZz1Oj{8WEn{=^Bl@xbjl zF%KG{e)J5Wh*LW&n{OMfB~yJ;9F{V_J`om*$I5v57x3g>7dDmC>c5@_8^N8fzOb z-9#XPWCzYV{D}RJaKPu$ihcghiKm|a;j>RUi2w}=0#e+{F^F6cqlRAl=9Ot^clQC{=c?+dm+E*WKKD=w|LeVtLBoC2l5 zvL{Rzzmr+BBVVqHSxU>`s!K`pk**X(Iqyea8C0Q!JoYp#yzx@HN*+clzSII_ z8tX=kz#8S=>mnjBQgtQ8<&^|?WB!!7mZWH_{go>@q0w~(rU zueq8iE&YfIcgb~`x#vBjf}It>qf>^LLaeY^GU{)7`U@-9RhV&DQY_28My<|`;dD*d zUxE0K_R*d8I|COJQ%Cb4*5Yaf0}ZA7?%r;)SIiwI#j5HmoQp8CSSc~T((dqP&@+L` zXx$Gxy`TX^MW>L#?l-uV@=e(eL5RcIu>nFWM}<0Ud%fNE zNzSi!*P`cOWWBkc+k5@Jqb;oXyaRFc`gAq|eJ3z>uE)T_rO>2$JsnMR9o>}qEG+>4 z7by4~;18h+Ga!ZfFOPAa^c(MkX4x0|y?25hnEbd2_rtB3W4YfrJ6i!fY5SUh2y~-R zL_O&!JYw1o7PS-@AIyN6D_san32Cr;qA zI@a0ZKJ3ASj4>|S573y?ocK4wq<@{=e$#HZ)vyDTiq|IeN^DR&tfd8QCJO0EPN~^$ zpbVa7_AlqgX;ZI(t{|sj_@J_&$A)@h8c;&bc4yAdK)yOUjBvg=5ZJ`#K+E$kdPWlX z(1c9Ep_?Yl+@|PF9Prbza=%x15!Ts*zSwN7pM^|Kpn3s6H7LtF+lNQyel!_4IbH2I zH)s1&LAEty5mx-0{2QvO3oR7ZUIL9jFS8QpiSI))Q&#Z0qnFlm`D*<@HG? z_?XOj@45nbCetots8W{2d-{~Yo#0=OTtOK73`VG7T^d6-#d#RAo4DFChyWeV_Rznt zw*Tyj7|WUrpKDM7|qN>h+?SMLZa;Di52kvH2};L`<6@_pTbl{?{ToakNM zOf%W`0K5GOq|8@QYf#1OA*|x^hMe%(_6|N>#(X!4F=?-1oe?^gGwYWd905pTcuHg;>xR&c#!*Rptf@Y~E01abXng+eQ;aJc`Mz zz4H_66%O>=;pbr=4}-A*Z15JTnd`jAisW@nM0ZR_ngv^oc-LgBMu36&ZXPwweH7c= z1|YEGm2Fa`!GwYSX#H_9R#^g@A)bS=fz`?36%ABGHJCJ{grmh0YxXfK zmJONE8*JX;ByI2{?Y3T6BB#RK4RGa#QBxcfXF`gOU=$on@S?WW@F>2;5!&xVm6^i< z8b9{JDUL%_a;4hd7mO5&3ZkYFwL*?EH873Q%1?s0z^7;Hi6QwW%tq5d*{TWdKgSl0 z5*xEy22hPFfH(^HD^~!|DDEyL&>0~GthxRy*aUmC8{Zdq zWnQrZ;%jqbxyO$uP%nbI3y=&Z*9fZX;tiRN|A~(y)=tFCrNo9s7GlP)xO|P`b{+<4 zW*xdY{cf0zrlriUp5XrP$S^byA7LNIXTS*;K%|T_a{C?*G6u4H)6RP=CFd2ulW%8< zdwsy>vFVECY4evDX{FtNjH^J^DPl-1_BIsqc@)<c^DW1%`B38uXMdxvw-$GUs^Q z(`;BhU+Grg*Fjc}CW4GPjw#?eS4zT7?gqOt8C^k)WF0i>X%vD0Cp4nk(!D!pg>|@m zqx9#ZKBok0MJ$@)q2VkFiLg<-Xf1&r%4mGA z4#|uFXsF7As{i!N1OBe1f*!*^+JKcVF_ zJqL7N?10aw91x=4IB7l=mgQf9RE(Yi1{RgW4 zPVC4c0Wu$0T$f5fq}9*|U0`(S^>+}WI#hh-^s7ngvkf#s+Yhe=UQ~1ujE?DU**CdW z_(n)dIhllM7$qxyOh%${{i}Q_!i61tQj-c9nN;|RrX16S{AdDQjTj^dgstUBnzV$+=L5eL_c8Ty=S&_XEZdb zM*bKGY%|Adq}g)A4A~#8^7o_zf;BB78e?w)J!slDa(lfQMh_hJ0*K`DdcWO1ZnxJ% z6=1$c1K3&Bv42(o&m!BI5Hxv8wsKhIF4EM1olbL3Z7PIt48{x(S539AUS!{*ekd}P zvgeT*3{SH=Ttg`Sjgyk=7%|G0To1nrpePMMp{JHO&U2SMtB@i2^?-?hq`=b z9I%4pb?c%?IZZNPQrH(4(T66-24OG^#O&N8-!l^!%Pkjzp8h3N%DM=kmLcJ+q>N|! zv>}Za>A1xX_ZIRR!tLiU1s<&@WsD>B*;%t-a1K9W|HJG?8F)uzSd~e(Z@GoNY)3nQ z{RXl@kE{v)UqB&Fi|lkN83P{sQ!Kk&f}c_WV6%Olt2gzD5%15v0>+$d}7NUSo{ zWag4*z~)ewH+;PP_m$x5ZEYX0;~OzlFSp^5llEZ@&3+-i0~)+cB?02tu{=Rl9Cgyf#e zc3b57Km^g#YvkVjP;}v&dQT1$Gy26{#zu_92@u$49)>`3_*GL3a#lIRPbDP|YWV1Z z6aH!HpZ|nvjA`KNP0qgE=*HbXkPn=uAZXJ1`KjH$$JinYu=gb}+G1b#b(=5mMAz)D z%x6g{`Uw{FTn$w%t#eL1_4L-X{T0B|+z7?q-=W+-#1iF{7DpLd|1}K)7+%Cc zR|L;LD=37mQx~24d+hdZ2vldm0$_TW8r5RhZ`G?Wag0lAUoC-E9^lYm;Z>NYVN+X# zonlQjG@-E?CSwaVFwzykbnTihws*0B#x#J5+-pts!xmeNv}rhX9e$Jw`&J3mafFir zSacH8vk``i1u*Hk@_Kh#A8vKWzrevxR==Pw`U|WQXj{3oscI)WW9;L0c>j zDVT=#UUz(L?NDprCwURbzWsX3XV$fVFh4y1-hmz7NZRBa2(Ghz9q^%zYI5z=u+PE~ z4Q=fp2iTqumB3w=fe{ZB;|k8e7UaZ`Zg=TXNkM41xsx|NN64qy>ls)FY#0*nB5 zy4XY0p^L`pmT}ma+&OhUo|dE|y^a+$>+WC&z}5D>Ha3mG`3t(Rl3gpUj?pN~@h_lq zB^S(9>=zrH%}Hc(YdWX*vAo2o;1hhy1k>YsB6}D}W$MK^sA6fxC`W*E< zyS<9B8GJ?MFS2p(KXq!3+<>UAU?TsP8QFV~G>V7$4C;m(pwi;W85A#=cJN|AjkeT> z?qKQLP|>C5L#(2W+81T%qY>4v8 z&WPeqUIvxhXxgCL4@LySi){xIAci#i={t72ZG`<$0RJ29_N6h7fov&-jC>lZLZy_t zeu{hk!!d@_1uKAO^hP($tL^qIh~4!i>n~o6uIDDl^~-UvJ|2f_%ljjiDtU-;KE}8d z0al3oQqapF@Y>{sG$>eQZoS)XdoDJ}(KK4P#=Vn2`h{*~0pdDySrO^zYs(HAg`k?W zAmFI`%CRDr zf5+ViZJ>i#DRL!UHlaS)=KA5|j`?{Bj8^lk6KGrkJfZFB(CRS^&SjFF(kpgzx zK^505Pjvqe+#?RIwu=5v?N~(MwsthUWBdUb{SqD0P1FEnN zn(sd#zC*6H`6cWY3RZq_$Io7S;;E;1N>g6}JXJf)(P|HX*c~A$I3ExJOZnEnDFfNBG4Y6=8HMDbK z39%Lkns~D2VT~B6IkfUMQ zQDb-zMhmcBYWbC=(gs3ztto5om!SZMKzP4$b1rAw;Fz6JIm z9^rC5l{xw>GVE5!UwNh%aHyPPsD7dzlh@sVfS z?cbqtBmEVmg)-NVu)rn;>r_bNOi6#|pBBkNEfwIQYWI&&UOxjW&%kM}kGy*J#a(xN zU)ABE_>tdr9a};i)xW?15H}p9n2ZPFdErp$2e%*S!K@%jla_xMjvSN$JmrQsIg0JLV->DqWU|3<^V!D1@q8aH(xwDbGvHmlY!{F zuYe0uo;0nd!kOub;dzdmr~RDLV{8tvIlO3CwDQwE-Yr;ZY}~QEPiEt#n`rKPrS{(8 zN9_MZWsE%60f45OQir+mF2T-!KqaU-YP&%69fc-P+}Ujt?v7U|^U0m=nD0ID)YHe_ z@qLluIS{Jg#DgIA>==gr3o)q-GT?{%g-eG@x4%!=SGcT0Y4QPxIYy^Rf>!%pq{nLD zUG{~`8K~(2M1jjC=U^Ne&L^iwJLJB8)bmygg)OdF0v*@Kpo;4_t6@)F8IQ%JhId_v zkINjjF)^lrxtcWllKcHp09KP%^i0PH{Nt2>o%L>Owjx>|fSMz8-0Y=;a@ zbTzTK&JJcSY*Xq>Q=zC4WNJy(m4d#nXVt{f)Rns`5Q#BREJTH8VtRZ!ZWFD=I$&}W zy3&X$r7Q)iynaOoEVx)V%qZG9qXaDH3~3i2*CpV2lHg~YV{JPw0^-EHlFQ=yDVc{T z!GX%PJSsCM7cG5CuTfSH#U5^1;{mUW`N4m8hHsM9U ztCZJ?-TC|^e&D_Wc)Yvmr4YOE3bBghH-waK?+MJ%XEz`RM+asmvWYemWn-mNR1@Ei z8N_3n7^DUsz|D0O(f>wM{WXlq@hY)0&{D%&bn{XW-TkvDZ$dz4guQ$Xs-Q+<1#g2i zyg_rOwJnmdi(Q%UX-*29G^K)%*~OhOsTtw3;I0+9NgoT9+hHh_X^&~Tv`rb1Z__=$)2 z&p=^%iVTi;K8ziR+Zpk&QExg~y{z?<((>a^iX_g@Wn!YNod) z&ge9?zB?vziG0wlsz+gU+EUw_N-}lL+-gfZp9G-l>Oz}janeysS79v+gQ_2qzp z9zNfDQCV_p|0V>*{pDnNXm0(i@)pgLuW{#ebO!AFKd4+;lV~I~$cuFD<^bqo+tWbL zmLmbgFHVyA*pb`bZe@NLyD6kUx6BYB2GSyZ@-@x?@z3n+RtHPG>ca7j`zU!eCc|gw zvohTfZx)6|E49EUC%LPG+-l^|NisVVScOtCypx$RT^NyB=?X~3EekOY@ER55bjd)= zX<1Eb=xh6>G;?x^QcMBq(cC&^a}fb~qU8_C^rL}x_Z;0*zYmK@Kc57}mY_6yZw^7v z(z~^u;tVXG!+rPxiut`13)eoxqJ%tat1mziXNw-}0Op=kFouX3)C3A2R0Ofe|A8J)M0O! z!nuf6u9RA`Ps`GxsXu9sA$8zyFUJWqB|3P}v&4-6#}gP3@pJi{Sa5nk!}WRk%6-V0 z9na`Q#1%WmJss#dY?)ae8td;842y4%Q@{?f(*L;xhcZb$9$MVK5%i343a}e15PYvlV1ENr79bWN@cA0 zxdQY^rYvvVtED1+h6LF@WS_rq{61RJb{$kcbXwt%rpw(8FmfEc)iv%$i~m>*i!;vW zO=cLjm5~@1^iW@az^xAd5V}kAZ}0XJs9Xw~s(3D5M>e`|DB0r6%RRAfr~684&vkQZ z0cqS0PuDLP^P??nOZI)f56}KAu;&BzKK(XT_&yPqxA-WCw^0P~H3^H(; zT(qmk*w2Ab1y^hL23^0ePx`=jG{8fhPN{m&f>Bhb>NUrk=Hd#u z$~(C$&YYGLixyeNY>#`47=%M0FRTd=$5t8!Uih5M8K41#(l`d;KyVpWqm-fccTl-gU*Z5?8)w!el((3AThr7{qv{RG*XX{Y zz(r#EDCPD&P{mVCYoiq_>HWM$>2EDzB6lt5y#Hj0jn|?U5Ik~&p>U3+tO$Rh0!q8K zr#hRkp##wUwH3gVwnH2m+*crSK5_H}@X=BjIo$~m`*{K4V7R^jLBMVx4xlK-`uR&a z@n9EIh?DufG2>vU@Z8A|t5fq#x3F7ccd8&|4G_@k>N5}mKa*pdk~+>bHYh-qXn2Y( z`6~!6m$tyv?EyZP(^j?xbo1*@eRis2bLbvA1EwqMN^1{s;Otq@J;SWbfE|k2IUQ!C zEm6?&Ga0bpZYv&G%vl>bkC$Se;S9ZJd3an9e@zR9_VYW%hEkyIf!m4QIc7xTPw`H~ zE*`W*ha}^8x&$t-b3p7h(7npT3t@sKEOrFILpmEIz_qiW!+hFeA;5|Zn3b=~6@VP{ zQVzc-Zis<$Q$1$V1J5*>iKfB_i?CFS1QVo%@3{lXdBuX#oJ#Hxz_Sg(1mBNVNC$Gcp%ZX6Bb1=)o3{ zCzX`>{IlTZv@gJYyHUFHBOqqgdkomjfv%xu#Qfd{gp6Vr3rNEu`26k-_)B4lMGBoO z>(yh}>jNC<`Bj*_3+@8ZZ&apfmxj-iHXW(yk6Ng;aQDJQ=B^z9@azR?tWF<7A<(|U z?39p3=?|0@mP~P!fw$b&7LcYq@|%YWmCjFmnVt(%)d*U%xZj$DZmZ#qVeoGk={btW&z;oBT=vr+=K%IiBloUIJ~;bKvKu5kO2=;4)1BCx@N+XuQdR zoaeep`uE*fDQ9F3qWR-(P-Vre@4#+h!y1MHQYjActou0Fq5Jw*AXc=Ob;K6f{M;A) zS_(!8*_@FD$?d^r%e-CuAyot4qmu{lp{99-bR?hV!xz|7BSf5GF2^2j2 z6EVJz$$&13Ydm?(e!AD4`$Wk59Rcv1kSJe*mjcqty7GH{v1;gv zzBTNo*vqZ(CyRKxR6rUNu`D+AC)2(QRpHjn2^>Q-ne^8B4A|)wri$zNBv!7>S!&xH z6F{rBgB=4%uAA>bDu4+vxsnr$#@En2udfaK(YgM)Tlqc6ft<5k-^^0m4=T6Qt49E$ z+Ute8C&)OR2P^H#&OrL$V=4aukh;Y|Fg-l*TP{?!(m@~=xN^?t^SyulP6y7Hv{}$Y z`etv1cE#b`B7ypn;=w-P`gRhF?_fM}q1tz0P*=%MeWb(}9cj?+VKfog9ml zgVuB}T>D81TXYVi}() z+50}EY(5WO=1C@oEmmb_7H93bGzo9#jLE!=3wr)61A6EfC{~a%`mS#Q=p>~<`e77! zeb^#!fL2$F?g^6Uc&A&)VZ);DL++UG&e(MVc$ZCd<+enT_3(jTe%SWBK?--F9{{oY zqbJxM$-eOC1IQQc|brr~o5$gYoUK$l%NU_Slfmby{LPHNmz!B7VSB zDztOM&a&XgwjyIx5t=jdNq6F8x9ZwK8t!a+g)$G1w~vW3KGLy5z4$W8L_^iji4asA zv0D|0rv0gn?u#Eeuy&zi^v;K>((;bdC=2UvpbDtebjShnt`hCF|AnfA!L762F+aI^ z(YGFrYtmKP6XN<-^8PQ`9L(iL5b}CzT$hLMlP_9%JSS(AWa$cOH$$cFz1>`|ul~#r z;OtXQBK2otguVNe$}hajEg-3_cH`+89jEcl4!m6M_C?^kttjoBTfG167^Y&QW14(< z6!LzM#KeOc*df*EE4445cq&}4S+j!HfB2jvNKz2d!&iEFxLG|eduIZ|NqYha11p3hKwI#devJZ4AE z-^k`xnYqQ2NhBk`Am-yzFgQKX%ixq5AoV3!o;b4~x`iFNgue!{+B-GUfFm}Qm~Rr` zJ*s7Y6m0xNhy#iVx!&UbF1Q8yYB%>#=JBp$;0H=bAob+0KpMkGgvHCDa<{$3o#VvY z4gq)`wD&Hw>V5i8Z@ufLZ3~0lAUJ=|s|C%j(;ip&G-<9W6Ul$j`{n=Fl+oUXNR6YFrB`};Hd z*KX#g_V3T*Yiq zHB^Zmk92J0p(C=GJ5A_VH@gM?nV^@&0N3ZF4*hR1p~~nx9N@7)XJ5A>AipH+vCGMZDFIdE0S?D7i+jpHY_P6Wxz<#|1ru(mdOOowo~C2SFF8laEW~J7h@T>{h!g zt!nEal;V-DszTiBvOENzBTBJA)e=`guy9<9jfWs;K&T{gdiR~z9OaIA7i)*UYC+G9 z%g|?Cfx&m(MuMns+m3dhuHAKUX9me*al#%4G)k5h$&VX%L9%Ue97dYMBXgHn4g)9A(vvasxs@p zW5x3P40L~d*H|9^cRveuXw~q6d$;zdD3fdas;rCrMT8K<JM;DJ}x3ug|yw@l{ zsJ+o-@^YvG*?vnfWB_SUa~FfOTY>o3>sHUbv_B}{G1n`;vb^lh671Hr{%YwxiDIxD z$M6ssD#pXX(!DiucGpxiJ2swb#|WkV9wWwDndz6-)HwG#)z+f@&YI59Qa6gZd=`X~ z4y)LlPHtBU4E`om!LsC%p*m4}L0r2~EBDhS4$z3XL<>&l3);S2P;apF$hGb|O2A8Y zVdp9C>n_57bnbuP`j(26Qh337w(uu=w%J{$cXyc32=M%51@MgD&ULGSRg5;{^d;`H ze)al0?%B54PF}l09EA^xq2w1@rm=I8K@O6*yUNGqP&7LQk$ww8x}9%lyJLPRq_w$L zJLCRtSY)cYNl+Wwzh*nGzfE?I;b5m@$sOuf(x$lxDouxV8A=3OAb>3Pdb9;Q6d3pU zE!zg~w5#|lXCCN42FaS_>hv(Uu4<~@fuO>$ZyW7^5%Tq_qvzO>e4C!Obz$(3)$_fR z?bvu;3!uU5?WWHwWFV-{-=|lwP10x#{t8<(&WU;T$8J8QcCTZ`Xxj%WcKk>-FUa*> zF0)Fz8I4!~8!@*J=YBgraQ&M31$RxgL>K~S-=5m-(H8*aifqxDJp(t(y>xpOgUDj?9tV{u^&sWpp;j0FX=0pfoCViGvASp15qTx?d zz>fbd^4Z@7u{+JbM|uX&o}3Ltmj`7szKJe^uwC#3C>SKo>hu5yu`}4=jRKCJ1G?H~ z&ZU4IAi#4h*r8y$Q|{T?Uqae-2@HOd(<#GmnZWQ!MeyN$Qi=Udk5usb%<1 zSG#v>e|LLqZ?(pZScG4O=HU1)^CkxaGhBwt9e+vYHp`BtLARqvW+IRnlX^|P^1tTr#I&zt=-~p3QBeUrdw@n z?s&|%JJ9pH83uxU`=n=b@i_J`=G5Das~LfXFde~AKAC+2+Lly+lL9?Soa#404}dWp zI1l-kX!1W=w|eds_832O&(?*HOfHRmLVQ{mZNTot5?{G;8o#IZ*El}U#JPiUsPu@w z&7}gL_ipR&wq}0rch;_+C;EQ3Kx~=ZL2BbHH|VKZ zS7$qqaoa=0;^$fzP3ijw?mPR5YjUOQ3)(K9rVbcOY5Dy3zjWCT{HDt`Q31wZhg9m@ z0~PEK%7yEGcISFiy(R_0<{-_glCdBhz0*Lapu=xFU^4Ek{X)0u<8B3i6Ovz;Dr>hY zuI|6bhQ?rmZh9`*0%#Vm$m2~1PHut!c&Jov_l7v-KUW5!$bcP)+qKW#OOg z1h;t+x7Fmyp+)Wz5y^G%3Wy~dq*^VnEA(kQH+*8GC>+y(nQ^iRcs#@iaQBw}&KBUl z()I@xvAw@?pllIjG~{nuRt`ULi<)oU7g0<{rDci@A(2?G1=Sa0@_(Q3%txOw&hMXl z=C{!qU;;jeiFsa1hkydOWDs-Dj+Ma!ci%8K*DLO3^R-ma|H6L99d^wuU8`Guay_{N zk92)S0O<3(AF$7VkGKz#g*nODM%pg1`sH2r%xt=sJ*7Vs>Z8MEMLm1B~~m_Ja=_aN>C5X_H%4!dnw zV|LxJdK;v=KpyaHvS8If%-n)~{L%X<#!?dCyh1-^u-+2RU+{ zqN20^v&8*Pzj2V;9`9beo`E0gpS$lXgKt^@kJr}8wGECLiCB-l4%`2>n=ac#z~r%F z0;hpV{=+ZsbHo96Z@T$nQl9+{NNN0m7`*hI@7e8g3v`xJ?wwXKBxd%C%xq1*?dzZl z&Td&s!!Q#IvvV@G%)luO2PGM^T`d^D+=8C1E4W5&RN~+`&J11)~Der7>Sd#7)jd9VzY;`s_vf9e3ER%$^<&A(rS6Xif|| zX*&R(Us7J%$8FDa=kY@ZfGFl>hmAX%7QnNn<$ap4sFLbN__G1{e8J&$M8O z1~6q^oZ*1XW8DDsD_Bn@5_?4Hb>FujXM6e{zi+n(+3iFKG%2T6p9>WY`J*;k07o)E zT?mdvT2-@j439M^#EL!LfnOYyW>5PX-fyQhZ`f(={O>?jkEbn?WK{4&xSLC9bj<*$dhS)a@QahSGdJCIM*gT)B3tG4S1rdic90U(Iige;K`6L4>tnJ zN>G{q?2o8c+bwr&p$tnef3e0bR?c3*Hc2C;>ZdScT5H?5>vp~cC6_MsLD=7*>qKD+ zS6lG2#sL%pGJ8W%%=at~Ejq8XfQBBQeeL%zBQ}J*1^Ysk0=sqZLk}Xg<>xt&L;G1h z!r?sBF)vpy(di!K&abJ_xgP4a7de*g5(j?BZvJ=$@N9p;L+uC+@K|88^`^@G1oNYf-j|s=*e8vJFvLlcA|JnNvcuA@%{ZrlVy~zof zK$;m~$PCN~2#6w}2ogjTUDG0l)m0a>yZ+aN>+0^BR%Jz9Gp@U0!a!2d(Gg)J$iR@3 z6Bq_&2$N^td);0C`lipNPo28mRn=A1-S547e!u(ce*L;D+`9Lk?|vukvEM#Z`X`S2 zOvcLq%k!TdWOtJ2;$yf$E)Ci>qh%oWN*keuAR)g)p4y=j@J?9Cb1Iq@?~`dy93{@69hYF z@+R#{7f|#4$*VVPnZ9Auj*EGc#zBl`5ne66`^;Cd%R>Q3>`JfPwV->?WF*ZFv)TkT z%|g{I*hDLxX8EZSpWllCLait?`;%(=I4ws*pE^;JT?i+Pmz#n*PZ^)u32oe7!_Ui<;*q(?u=)IP04%y%!wsgipdtJE*LWkkH2B-< z+#3KNFfu&K{zY0Eszt6Q)Po7pN!10?vUC%y1bS7D|>8YtrkeBtkngJg#j%I0{rUxM7#Z)iT zawavh>?Y!gsCo63IGlEOFs8m30BM+@=TXDtC%a#o0S^eq-~4&ArmP&}U|gZp_rhf@yln7%ycTREN5`>xq!g9ALxkM&w!jIiTE zR8?G+R48;%hzk-NA3KEis?RV{R`MnkW6L1tK> zqj=%?X?j&NDu52y9gLBKDV$ToBYPdRU3U0jH-6NUTXrtpd-usdESJ2Cs9v`xX$M*` z#4g?Dsjo{K0t)!N;N5x5+94C^PlEPaYCF8W^@XO$4X7hfOdnP$T3aah0;@^V^E46k z=?i&ooJAy9wAO&8*{&eT_s!=|R%`y});_sqd;r4ckv)MODW<2)bN19=%zh^TJvAD; zaw@Oy6$+QsF`K$y1ps5s2)@6(!n*-ZeoXm=sFxW;CS!O;j|7UN z#5;Q9;OMLOW;baT(`S;61&XTgktep!?JJkQzSnM(rUZcO4Ls&_0n+%eHG_AOnW|up zM0x?^2#9EmUvs-JPV2TR_S&X2V|Juz%T`Rcqr!QP=LXO13|_QPu`oHU*qpd9Fa2BF z_qPP+|N5g(ZCzWb)^=0#(4#QRsNI)LQAwCz5lpdsjDnq`sUDS8Q{&Gt@plAZ=Px7t z9(VAjdrHRR%%prn)K8#%N;+WEHmX9_^8h?Rr*EdHSqhUKr2zhol@m-&XY(R9t)Tl! zx--4GN1q2+p51s?B>gH3kOOl7XUIEy73}03es1L1tU%23?Wd^eucUV1Wud&0b$iz8 z4O?mheWlOrx!WX!5MRh+wpmF`yU&MbRiJTqJf2w!G&nh~V&DVj=TE`OHl(R;mK9G} zfT1p$+mXQ}fE*HoB8u{4uii(yHcm0-t+c=<$#0>+zPawHZTAmVs&jbE)hz5pO@STr zx6CPnG58z~Q{PErOR#>uNc2ZVjVX-(Ye&hwZpZ=fK+b9bc={~*b$g4A$(fGb$sh2* zDGFwS<6{)n`xpfyx@Dk8?)#P=eICY%8JU>(5G;l#-a}De!iz?}>M%~*`mMiH#8m_e zV*;~VrhkkNfUg({ofJ$b6x(IG8LHIwMi~3J{_-d0%$SI1i@z1X$JU`<69m@|Mlqkk zJc0mMu9F3$V|LZ1UYa()gi^wb ztM`?X@&|{j^8?^BG;`X7lTllV>i%aU^5z+TojCd|3GlHVL!9Wq;0p(Ob?^m&xfMAu zP{ZUde!ZKrIYE1hfzV^i6MyGr(n5b8N)5BK$vV4Rq6_v=`X1(6h1QSE*v1p_Ga+Wd#c;OdX4rk}*4SUE#Y#VFz5fLzgU%{LL)^ z*g(>Ho7)4tAgiOs*ZGXa#gL4)Fi8mR`N=a!vy108ekT zR}S#7z?ta^swey!NrD{)ObN$Py{K9*IWNQReIP{(+L=XFF1&C``?~=2TpEC$ZK+j7 zyDCPh6`xgOK@87n6n1nh36@Llu%+VGricLw`&*bx#SZgV;#}B)Bgx}`^1}TO0oXaD zO#;i)xKL3%?O;O_(RfgkC-NB8Gjk(U_6Y_-8@X)?5b2)5S)UR>M>0CnELeZ?zKBUEs`Z=UKk-5e=Od~y zpc|rSRc)D(+Kk7l0=nimdj)`C|9P{fJWQidf_od!b7qw)Xpj};72xTtAKC?;)^fYNz$0D8VMch;1lGzs%# zfljO9>po@ko=CQc!p~!0%hefwCdt^;$euW_Bow(G@4pTdkS$bvFwnA>1+U)=wCsz5 z_iq)7FbT8c*}l+bNztU=@u*QBrv>NaH+$MPv)lPOK;*nfiNDKj+)s7PTJVeOf?r%3 zyk1)ebJp)6iQHmpnA?nkmSau!k?|+1P`Ju=O#yBLR!<1V^r~RYjTYY(Gfx2sU&;L@ zD~apKHaR!(onx0?y=>)4XCA-SF+A?xIwe^%E$^ysJA&_jHwHYWeN1WChXU)TrmOY88?Ev08Hm8qZsfUOC!%^rBJ{F`D@PCWOHWwKGka$AvqJ$ zf5VY;Q%>iD$pbzd=ZVk8^9~n9BH>8-&Vru&Y z`v0C;pFGQ0RvtI=W>3X;S5i2ErDO=pis_T}$Vy^Nn6cR>KoH(94nV@hQ3Q5gLiOBX zhS8}~G%~WH*q)mB3?T5-5qSHE%K9MdhjVE3%BzC*?V!D#>Zv0}yks?L!R+wQ8IOTU z0NeVF3}j&E{w{^hWB@s~njU*ny&5bcERLb}!`?AD-$-?P{UFt|y2|q-8VyltMdXfv zFVP|jXK&TDjij%IZ`oD){46dAK+k1!XHBUzH9L6<%rs+nh@xb)mmkg0Vj-PGjp#pf zRy>n&Vqq-_&?C)S@^2Hq-cRA&Ja+|P=fO4y>Mn)q)s^bZ;P3N;_pc0IpPeJw)e0bF zVNJS`tSK&6P9o42+#Wx+kvVwLt#L1PmBOE&alV6sX3y+d+*; zLbGWxA?sMHem@Gp&bhqNs#%_;^fi=X=B{MH4qAHkvQ;OYdHmf4ZRipC^gCWdvdV$H z;dwTV)-114!McmwdGM!1dW9cS-Cr<|O5iKfm>oU4F{*sqW<2Zl+`~ zG@zM(WdSo^7CQ$BN=n4lH-T9Q(GZ9n+qZze0`v6lpsiiDWJO-b1SR?&UQlJ!k#t(F zQuE@D{fY%bLln>V<{AbgY2a?gEq#uQDJIuK3g?I^DKO{>MO0M`P@iIfYT`W<)};a9 zc`B`DwPhz1GM`yGu!PTQ!JXyNtzMTNODzj>zNRK>1!u9ZIZbK7(vul zo)zYC?02$KUB$ZUkv5NojWv|siDL-pG!u+#Bu$0YWpkUy*oPUic??Fs*eTG{u1O0? z@jlij*g+?KjdxMsZ^GPYg)}3bu*}P>lWaKnu3jjNa_&Joqi3CY099ciBqW&i-^QvWG{c}^W zvrAd}k^4(hMx7Pz=ct}@3W@-UBY!ItU>cC(wfHWx|HX3H^2_S;1*_8OaqI#m6E5T$Wt(mk;(bL zd4rc$AD+U`VjlmE&BePYANQI>7oV2h>0@-ZM;kjk&{r^5#ntD~NPk+&^MK;Mg?Azs zP{SOORSsm3^4%Pc1tw#TSV%RBE>pNRn5Vug9eF)9VBj3tAAp{^dCR52)ApEov!@QNdVDj^cRGcAbL5z`nV6;DSVi1xRWOlgvrr7TUDIk8 z!4B5b11!7olGtF#g0ynOp;K*C)tUu;0`vY2IfEU!VSP7m2){z{CN2OR(J2`UG{|Ke@M)BZp!ljzhvZSwXQ}94O zxNOOadomp3ARa8zB%?hJWYy}LMX}59PwCSl^V1-yUIX+bS^2vJdV&QNId9HThb^m} zvj*y(y5EvwLu5Gmm4Sk}&3-fWItIuw=$qGKfZYK+;ZJ06x2NSk@?bw-cKncecy6js#?0aYUxJ<6b%^s5S%L0P07O?2=F6KwbjH*Ym#c+g2l1mNaj1}QgDy&S_L9{6bl$M^)fc)$6x> zcUPXCR@%dBtpsc*&Jpb39!{_@TCyU#j<%8u=nyL(`8(M+U|pJ5trlsb4cI9NJ(%ps z|1AIz9JHU!yW1lbm>bPN2hZpZs1Q^jpV^v0?!zHw zhc>Zp-N+k;M_4~?;$wG0Jl?G0e4kfr&neueNtmX>nVty46M!5j$AJX?Dd>|i{;l$Ee%bEMh1S#rUudX?!lN*3&D8a61`1fVA=j!gr0 zv;goR^!iPdZ%&letY|;Cp8Q3LXGxA%ml>432bv!q;_Q?zeq%Ixp_y z$K2l9<})db>9H|9=Qa6m+HA^L)ILe^HppfRq?8#s-S79f6JOQFZ*OKAbST65Pvl)a zQP?q8*2?n4PEtDM5`{}A$Q_n6=g9w?-4yJ(Z(Y59%Qpkiv$=(Q$=+FevJ@t-9Q zDf>hENyy6alGQT(GECv3qUJdFwgNjgMyHDc0B|ceDJK2Ge!LT$CtmmL5r$_S1M8LC z@cv<5@Ym(No%E@7#)W3d!Q(p0GA&U4z?j3!7N)Tz{wJB*8Z}B%Xl36gls-%+Jy%Vg z(?cMs;2sptcO_X=*;Q2wD6*Bvsi{p}Rc%;2R>Frf5GWGt5dZG^lus}UHk3$Sc`b#_ zWsfuXn9l5xcF>*3n}PNGUDLKQqqCjYH?Up|aq+ETL4X9aE&0<-haNY`S;*!5H3olVLEEWsb+XB$@jk&1Y>@`;; zttf;7{>&z9n1mOjf&|wg#d|YRt8~afqa_h<_57iuVsMK@#@#j7@j=G@BG0*_lBNhikbZsVSgC zij|cSYGxxMYmZgMXSOmr_}y_!uU@w9q%)6yvOuuYYU7_qaE(7@uwzVd1H87qfXB`p zHNUoS1M`C1HebtGum7E3lBV$W%;4tpMg+j(k9`vB|eh8C{GDM&(8wTQz;PaWD)qz{D^^$dG_;pV|y|+vc+%Wv12w4dUKF> z$&m_gu-8)~5$AZ`_{`vIK||CUf{&;ked#iD;!F_?fu{-rILB$%PV$Uc?h#{MwN zHJdy>SY!W}>gH5D^K%*4tl;}XfX7z;4zkL>mO)&(3w@m{=#jR>bEy5&3`TxMQU8N1 zOp%m!{dhcPu0Cr4J85=QFK_ewM^K&8^ek*dNlb!@dLDz+aBS2IgmerXrf4SDnuV#8 zR6Ib>tEqFLmo_l_V2-?xqh&1em9Kjp2vRH5A`lJ2msuXqPmZmygz(ywq)nKtic5~T+ zrB^T0;moIX5$yb)>dv@7&U#prTG zae?JWo zI|-ohn}4B3oh&J!`u>Spg)4^zl=gy@=Ldy&CPgyD!_g)FBFI zb(Ohj`YBAUpUXSCQilgHCgX8};gSnvpJg{lLV@ULEa~%Oz|!gj3yc#dY2^m8v!;D& zgC)mrpHSu`#=P`F8|LqIqnf&5T2EHjFU?D&K#1IY=}m}cek#=Pt@9{q&XaSyqQI7E z&j~=!WN{5p&<}UGp8#4uLiLR5U}C`7e}KWx5xhbDMbO^DfI+k8ae8KPj@KFoo|Y>h z|9RGtS1=Ovl7l;p0-Gb9;9|08g{avnr=je+rTOYKK@y)k$LlgNypO({3 zB}=wt2pq=#i|n}wmM~()p!{YErsw%7`xa3Slf)umOZ{I}lU(kcYL1@;em)9xLje%)S4?>1HPd2sTOgQaB2* zN)0yF=6B~?<~6A?KEU4v>p8W9_tVd;&QTQ3B_t!wY6{p?$sP=+OHIg)U74b3ljM3= zvuq0GMhMsW+yL~L^I=o>Y0Bo}kW@^CfOj%bz_UV>FLL;t#MgTj)t!VP$|Wl~fNsO(JRPsUW;> zf3-6riqgHdd=?UrG+Q7_is>kcg;*Dk(BMc??)dCLp0Lw9Fn|GE4;Kr4NiCW-2CHgW z7d@49e3W~x|^;*-kEc$y^y^Lj9AZN1-C{3j8-zh=R}dtL)HHfDFt7c z7c;URVya6D6!*V0VRew`?4wi<$I}8Q>m)WpuvoV}vT}W#Q}$e5Ol)+p3@MimxN@SG zEI>#{CCP=Qq!t+>d#Zb)XbO09ys6x8k0zMBS>!~X+$9S82UINpu-s(FMHEfMXhLAG zrtTEgb22u>DDAx{nt0HR-+r-a(}4;^(G0|9F81-J!xV=sN)R3S5}xxm)`=+WA7@*` zsuq^Vwz0FBr-{N&-?EI3UdQD6HFMPik32r_zVG`pGem*$XZLBvY z7w`f(&Is1Pxi3w2@GJ6O8>nv$a8;2&u^f5Xk;tdhgqD@@^?+L zqfax-Bn1-|VRrxAV&{J!B@fe%3u#B6oljwkRxcoB3p=4h(hPgxk@YcCaKprJh%UYI{=+=nguBJF*-b%ANm!lgPz5J zByCl5*t}5_mXB|cz@HfB`ZMnoy}-h?p`WN zxl5b3acr!r-JYbAbrL?g7@6NlAXE|ziu5A@MTSxKpMZPmw6*|5Ji0grI`t980se?f^$j}CPznNNpqKWbgo&}F&%{A zsf~@_WP^t9fMo~MZ>p*rf1dwj5SLY;2QK0FsPFe~KIdlMkl&c$*m0oX2x`<~>lMIb z`uN-YTYwu_QohLj1QrNBzaM8Eo=4w8oXfE3akw<2|vMWx+z_t*`KPoZdpjxw=g=*K#um= zD^WDvgs=W@em8B^1CMN?jw(N3qs-lhVm)V@kJ^q1isb9?U(Qv zcUm6m511VQlW<-W-~FS%+gLdtLGg~zTNsJokg_khZq!tmG^P*%~7-T5BWS6c~0|*HEf2bZZe+)&E^zTpkMEYJ!1xDFg0ne?MTp*EsD}lq-suncZHGBi024BXze6p}US^#jq&bxMr zMhAF6zrIQ5V$y!9&7D3b7b1L)%K&(O%m{mLYNTe@pr;~sMkO`bHSH~TgA(XSr{+=< z#9rc^3a)9R<^MR=FBvSHL5)-b(zn1wpuC(B{dH~bI2Uq1^ikNC!B*2zE_fxiyCemU zOke$poH*&cJk4v);XDqF`AP#HX^u94e~`k#3cg}ZeBMCa*JS?236A+}zBUOMe6`ua zdW6WcW~E8M@WPkndCX|}6wP=p&2nU6b|gq5iq^u@3{F+8c@k*hvnTnQwZOskbZX!K z5Z3_q9)UJs>*1LE<($XN@)*E#6mLe`kvKP$yiEQ+UnBCJeT2c!7G}V*WJ89Y{7#V* zwwYtx?1aBxL-9Fmd}dov*5QM^D{A$d?fkvpS~?FMg5*yB-UM-1D4SVhb%x*W#)}x( zt+jlu!~9vlSnw(oc3k!;S|>{H5}PqTawk<*{REW!tptlD%#fGyfR%tlUJE{l3Gz*p zzOLB}Ubs#5Xsrk&;M+;z+Fv@sU{xpsleF<}a;7XN-IH6WVe+l1dD^cwEppBeSO7eU zje(bN*WPUNg($2eC>p^jP3l{DQyN!?Z3}^&L5&cO_JYOK7$Y&|FE@p5~N{)3Ozq&BZVE^*~;Ip51u;u%ll z{>$QQkFkGYHvmu4tj3R~JRc?u@*2E@nmd0%Nw17K&dtnRXn`FuOX999@%|=mhB~Ws2skkbldtSnN9g*TRm)0oVWLR~Z>rQeYCMNn{dDQ+#!?U~Ei& z59wSjiwX8~|4EZwm7<}pW+5D8h2z9Yw*+JGFN(R4<{io8nvBY}fCe+hcPd4XbR22w z{~?6hPQk|wcXfWHnH-lSF9eV%KGVA?F^u>@1LB!zO`>h;Q&F*LT=6Ru5?`X1<_-(>t{EVXZNRRAhv!wE5MutZ&f|v6E^C_BvbeN(J zgUv!$<>FaWAjVg}g-Pz~2>@fWUEFt=fz#QWrPCom$=STX#Elay)HB8X7|MT0EW(50 z99lVeYNsdt2ujRO4U!Wl-IaS81W1Q`ZLT#YFI^r+7V7lX=EeY{BPqUcBTVS0QN!QH z04bSE$IR!un6cT`#=Qa{UBw$Z8Lg$Aj;jjT=yj0Pre>JJ4%Is0D%R#dH32&?L%llX zeIPmRoqV1J3hc<-Iz@nbGN-+&zxXtYg%o&{p;uS}uSjeroDQN%>u z<->F9B^UHDLOh&VlEV`Iep`lf&uK#URZ^ULC0}>kag$1xROQnxJHN|$BF?68!ax~D zUZ$|kTGP(9#AQU$glE5|?CHL7EQGDEW>7Og(FBO*y0DYni+72(9ZQ+Vk&XiEqp-=W zU)(>b1++p9zaPzHJwdKsmXqEPj88Dur&Bb#(D?Bga4-G%r1IA$ZfVMy#2dM0fdiO_ zCy5K<;Ke5Gl#|E<>=@b3{dWlWC)^lN z|LViMna0>m>K}{Wqx93i&cMe~avNfnIQjl2EJIpWLd&>}6S*Bh zKdfzXy#M3>>H1I=rNCtrL#@dIV2kKl&#X?KwN1bjeT$DRtGH_i!l?}CUTE2Y9?0WJ z)*aHcw_M~aqA!O6ylNzk-`HzzA|yypjbqqWg8N40scm04?8eJ0aXY-j;?Ag`cwCO@nj zm+^Z<5W^(1iSK1w3^|Y&(-Rjhg`k&NDULUu$44BGs86{y`Mp9IQydF`m2^LS@Dq;-~ACa z{9`0zqbXcTKR3&-Bb@;eviconJMtFns!Xz}s#?f&Mpi7kZ{(dO@xpu(^|EBS4Y?Z} zrfA6SPHH50`-{`9PI^$bP{Yis(?*npQtB6=-T;#_g#!|Z!U+xW`~7&`gJ}RJ=NW

J8A1`14q_d`$)Yy|1&nwh0Wtp9CSuBu-;=h;Dn?9X5 z>6F~TN>xTV+8E2Kh0&0SHFY+1vp#{28+IqhL`|u%4mNW3!)`j~Aa9B!>d^6H_&!^@kD9k-40Xuz^E?)~k=+F558(D$kJfESk zS*??x=fRkbn{oV&6R>>qV%WEKGdH&jcFY)t`4FZwWMO`d`0m#zdHD>?l{e)Hc(RzZ z=4SZqVzMW(!!`Xg4@}Ltz?lmk`EN^b`~^H9(YfbPvdZs!C%pD`8SWdP2PUGm6b<{9 zwr>e~K<^^6<)10P(86}a7hp>+)+GxgwUZ~x0StaT%K~T|Hv1?XsU`gw%mQELoyssd zanjpjvJ=-7IFZqba;y`DgA~eQ1AujF5-Z0c0si%7K>~^GJV)3msKDq?B@% zb=C5thbl&IgjGs;{6xM?$gvM(Bo6QscCV7S7_1?9!lph3Zw; zZPE-aL)ju(-nW=NYIVIybNH;w*zbnvSxfdpdom9PCLZY6$9iNjUr5oye>z8yjL4|) za|Sq`K;gt|rsT#>wX2omV1PecPx(feIB`UX2raQp=|GGUJs_x}47*Yw)F0MEvZ$2dI2cjqz9buJ~dPnP*Nc&Pif z_zi5wC~^tg?9EM(;}oiU<$sGABE3Vv;<8V|#cXX3eUC*AH0vXZ&5>cPu)$wT*~0(x zlxYlHsuay3B27{{#k|ROm&=coda~Q=(P%p}Ojv~R1k?%1{Fh_w^_=P5Q&p0#> zmZ$ud7az5a0RxO$w(6TFC0SQ+&VIgxE$ji&yDfa z2;tUjr%c?Zg9UUH)-WaaljwwOVLdaIm8mZ_+_xkIJLta;GW(T8KF8<8n)N=)1FWD zT48_Sdp8k%NlO(0$X}Ob5PH6E-!$KP$pz14fRbb&UqH>nqhZc?7b{EKF6i@&qJi4q zP08$*Mmd5K`zkfJQR0}0YIt$XBtfcmm|ONwaNcVJz>{|c-2rC3_GX6aM(Vw!dRSQB z!n;qMB+=|tWi@mXV5X144$CIR{tz#CX43RqKoi=Plr6uK6DQr0Be@y&#zbNnCbPl{ zrk@%P|2p56OwdUR2>F)R60gfw^^Sn(bo__4^rBZ13P+TR4=;5`Y? zb1N%v;#cS&Kn1ouTCIbqL($C2r+Aamh{7%q*NOdaoT(Ub#r!mXjUce$S#P@@1 zTSvVqa~U+6-D#P^m6PRSUJ{F&W`4~5dIGgi;&HG=?Pg8VGzWH^j8ws9>Hr?&GB{x; z@9Zb=PS+&W^elizC-W^R;6PtzSQNvlcEI`X3&z0dOOpXCEGMA5z^3o+6 z40{A;;hTG{GXlV4-k!&LB5wiE_&0w4uT=N_K$!j|8IM~8(*r&C{g}1!wG<7?>0>?E zDp@X^wByWcodP>X-pJ1#sRBME#xTf_eF_*0s21>35{j#p{4wD{4;Cy5b~DIXD>IniN#W8mW*$_?UNyX;=9;cO zC6j{stU&sExL=Mc;F!4YAMpEyd=B)-YAmOBWzH5Mu37Bur;UtTKv46jj>r>ZfxAJaSUp%n0*$ZTudn z{JjC_xj1OEX!Og$6wVtxP#jiU1bFYD( zBw3fW#F?|=Trau-c8HJhOMd?fMXqcpU_2ZlL4QlYbM!@*nL=Pm1deDIQq(U90Oy|= zb+@xy*J1O!<=7c;5`JEW-@`V1+89`{527e#PHNHCVYd_9(&132~ zN?v2liIZND0cIIsLf?-XsTPLGUQxNStwulnp`u=7i~CF&sJciq88SQ04;jADp?=%|EgNV<&IX;_EjFR z06wqh*9qjrNpH(I20G`ka?$y7Y7|W{T5AGc^v1$hpol13wxvYjis@j)r}SVSEh^xc z2>39CgM_{j_pl0-A~*yJ%l*|Ufu zjQ-UbkAaDG#VB9EOT3dX$30X=a(H~aBgd?;^1Tgmbs2RjfrYCpi&^E?Gw^OglX z=2`=u0PL8|md{Rk0_40oC&vrU({ULC=6yLV05>gLvZB{AA?GdgctBRg!mKMCO9y1L z$V)Jz7xH1D1mxl@ce9=XMbb&SCY~LX3moNN$_r?ToH*%>U<@MM{4{PdtGgWAW_}C_ zU?LrrZT07*KirVmB-ALJRar-GN&g=Cce%$l1`7+At6Ld#!b$t&0+nYGpl2$zu6UkS z_EOKg*T9Yu15i)pS6uTP%0KDuGm&n6Ex-;s2T@Fm+dRqN@oOHANE_7ygkMQJU<1hb zW0cNW4(ygKOY@J$z@mOIg+tA20@PH+U@~B+(ggIBEW1+~v1OEmEGXDV;k+Yqfvkze zW0=PV*q$xCqq~oKqhhp^(I?{>T<_28i1g2qk%)5K8>U9i5fc9&62~b~m<^S4O>R7@ zYF^1Xs##UT@;u%neYm)QV`2yYR;pV7u+DGhKAP4c<=swlLYSz)4!(x+t$hZ90w%*B z^LqHyM7Joa=}?pVLxO!agrSPPbO zL+0zj9sxc7RA4_0Fpx?rod7$y=R+Bcp)FvbGnF^jMP>zG+=}6uPwC1nv;sY^q`K4G z7pYN3q8)}u%5EvI0rCE?qjY90TWoUX?fTKRKi2RvB=NxhF3WdYreZ@x2;|cXNKf4DV>*J&i&_AEY(j>*; zkOJTmq#Fz+#+66pPXL!6xMLUnznR^5PdWiBhp`-yly&^?{9gpXZ0XRokn5L&0@Jufl@a!6Q zR={)gMVH-u>m?V!A@^lDo$LfwpkJiq^*wZ_*amfyn|x0j;0+7Je>Hgk8}n*H{g)@B!3Q|{Tzy>UmyWwO5)X5 zjF2{yNyp|vin5?Y(eQPAfA4Ms9xBG1B^B(HCYxj<{nRMviil5`!S7(b1jpe#Y8j3s z(33aV*@GE819IYYwK?xpHJ6HzMXid5evb#mf*d;ndda#vt}U zYM8UkG5aa(Cs7lu(O$gh5A#HSh>zz?UQRIP=kgfo7vo#|(0B^8n|T2x2lFYI#I5Ss zNb|o!D8CAY8BbXb!T_m$3sXZ)HW1R0xn}vU`TZnTEStO7&qbQE3=4<(y(8go0FX}P zX4V)3er~5|4Xe=vdh!4}6Bs8P#b7pVX754ntMU9SiZrP;2Ruh#bXn!rOD=#@)fXtg zjF^~o&tt|1iHClkaL19OuwCr~~ZoqJmB3hptNJPvTYwcLgsUKo+m&+EmW{5p{u<|AF_P3M-9 z;Jm_X(Q0lx+qf1S6QQ^#@O2mvE}f4h@TxRnYkW2Ti0r0e4R*}@ok?8^QD1uXvPuAY zV5&w#Xg~6`os?mt3SD#^E8~CV{@7B`<&R@#!}uX>V&G#OpqrJjI5q>=!8x$QhELc= ze#TQ-?=57o(9V54mzt-H0U(!tIJ*}-EVc^rLiXo{)V>K6>-Qh1UbpMvX8=bW!^12O zQ1e;nprbFkY)kOB{>u4OcL4K7@WS{Fo;itoC4@X*@|D2#dMp5 z;ekI7CP*v479=I7x5Tb&&Phez#XNN%s^SuhZkG;8_#n0pc9!F`w z4xa1Rscu>E6RdFnuE;NUa?svE$@9!j;@_FvIDH*@*6Rg}b2~MBc8*|hI#&Rm)hUj< zg4vv9EdXM!H@TD-hkxXUJ`#6@XY<4xt8xHEoqJ`JlP#01&h;T__ljbPbV#oG%;d&c zSNC_#U8`CksXGQ#1^{q!=H~^pIt9LW<3i#~2p(2>`#Q$DS*$ z3w0Q8VDJ;CpL}r-2FR?jFc~*eqbMcr+e8!r2o+U?7;D8LDSrbukx#bCzWtu+EaWFr z+|%L?JkxCy4*Or*f*m`MvBS+N0T1-XKPUNO-lz_?vUgKGyXEOL@=RPWV>)asCa5zB zx`x%lDOsLj#rVi9voa@7SuM&kD#iR=QB2J39lFl}#X8B<{u0EI0%)?1S4pt};}`(V z?L9!r{4pQpSDBRZv4rPLYz8fY#=-!+lo6fiQTEAv~EB&|<@iKlp1*C|G1JcTP& zlL9j}wdBf*O4}iRa)91~!xVd6g{; zNR`5&*;NZ$r}NPGmgiWt0E12`3!Dp7{Ly^x5|~ugywc9qat_IHTT^q9ny^FTsB?9u z(n?YjkW36~9BZFU+5Zo7`zg;^S^D6B4sP0!`z;Sv5xzg)rMiDkr(~4?ICr+WxqCu@ zT_anlk)x-TOk&*?n|rA!yWK%O26l#+9*aw&cnj5?oyMZnrHBs&8iK4lKJay07aa1~iYS3eVkIq*#i5Jv46waHnnSswH@qR1W z9Z*Mu^l@L9HkB3cREmaK6NQuV>B5>i9GfT_PF}M-AN@RKBw>;3VzV7FcJ+va?Wd>% zvu31f6m@Ra{h<4g)Oa`Je~%soJV`U@ODA%pZ=TL@UaUtZ;ox@}d>5+*81p*V*m8?iU)a2SQ(7(ms z9g90|EVO%(z4U`zAa%88&$7rGFd$81C8eMYz_^h*>+o9=W4@-Yx1{b%n>mQ0wUla# z4J#{PXmc_(zcWB`H=eBfDAr++$Lw~|c5vIt|L?W2>M^Jr&pR&NrcxtHPBRcP6L;D2 z+ze|mYyqhnAV{`DJJWlj|C{}S#>@VCe z18PSs6;Or3Vco`Dr4@(Fc~i11!eyQ~>pFa&6UZK|Q&PM9s#-jZ609l!DDQDl^o=Ku zrK7;45+enqWWSH+HcgycCrlhJ+W4J{F!Ne z{JU}71}GZlU7>I~0@KeG@k$o<#iwYY*h&n$Mii|+PD;rSDR8P2{uvoZ$;%VuwQGKu zcjXeumBl<8wu~cLnnG7^FHJQD>-DN0P#=QZ4i3j_daH_{2u z>JJ56D?r*is6C$~6Jcfm&V5uoqRodtmc zQBfQA!&_Q(5|jdxQ=z68%x=iLa~Zj$awZ?bBRp~UQ)5FG50$$}nS`)vSzILrFO~I5 zDkh_5oQ$Wa89+KE4_S88{S+-qs*6XKC|coqSO6POu@5qT$`FMU#+4~tm#l07TAsM( ziDHo`tG@OvOk7FarvzL&yRQZT+F9FXYVp-Ebv_$&j$sNX-Rq;MgDz1tR9iDSRRyG^ zzm+z%He-PFvCaE|4g((I`3E!K?&A5FxuGj@SN{uCMt=nWun0N;cV;hGanQijb_idl}zjw z;2F;yeQ1mCz(?V$Oh4W%cHbBzh<1UkbUIJ|V-rjOfTv3nULQ;Y7qe0y6J^g+2o~2n zc&B+3HEh;qm+dPSLn?2r@HCTB6T7loy10-UB{(dUxXs6?Ci;Xd%Dbe1kW|pR$fWey zDK}vzY!1^U3t-eq8~Z3+j8Z%DN=B|~0STm-kg5d?*b+)s)w8ZrBLc2QQFCBTDdnmH zZ?arB(zMf`Q zXRycDp`?93sMuTT;=SR#w^GCL_-}&tx&*%~(z5VaLcoLkbN|)lXFk{jlO%nfiO7;7 z01tK!|Hy#nlMD$ft}d?fip2eJz?gWs+6Xu zlo*Mfx*mj8@xL8>+-~hG#|wpN*cEvXnhDVNQ5AnzEP%-;djh$#*m*w2^y@eZn|pK^ zu?;|y0ybsKgx7goqym)YA<5d<3a;9!bL-ktRRz9=6{Aw7u=!2`v8qzqo><^8{$^0v zR61;7HkyT+OU2(RqjJdt%FN&00z9~ed#GVv_AP)^`{Ky4V(v})?CfO4x@i=zStSc7 z9|Y}jJVr2SVLn14A>_9?h3e)3c)(wm;y8B|0C=1v6J)#u{f+R< zgDLFrOG3#>P~a)n$1FsqXyJ}7-p>T3q|1uAvN?PjQlZ&^}p`J&{ZkQP`wcvVfzS1;ErO>;PU9 zOv@0ntuQ~E$TS(928MA@rOUT2O0{Dy+=>@RS3m{RK9ZJjaBm$V72)~4F@Di%0`97P$ zPMXPgSAy^CASXpm2GH!Q81&4iuoJFv&K*`tU++8tbf4<-y$n#e+=VVFQBylbsT8YZ zuWwXUfJ3uiQmH;5t_A(|G)0+CkAc}lYJ{>+oU6A&g!7Tn2v6Ij^4*T(N25QEtVQxn4>Mru zwv4B6dVLaX$*@rPWoqs-<5^e?UmeSqtLQ087BcG#VDLnXMb$(`&0+?wrhu1ZYdnhj z3Tcy@E=4d*Q6C^QqA z>v_!1p{V1(r+|*R&n>*k9BbL)2YJou22e%Vv~gBmNC_QiSr$-nDG(MU{2ts-KFNJ} zCpBtat)$K|g9B>Al~xj6XWs}I$XLAY(+%LKetLK7zi#k#_}$QNvk~ z6fiIh#Co1Yy&wY=4$qZYqK&e&LocuM%`=|;~RAUxE`wo@J zUKms72$JAThThwfMrww~n1RAKI#PE0V{Kq06BYPIMzf49C_<7_+ReZ2Fr3Z zHC#wG3h=YM#Re=7nb_pnPe_3iMg`!3e8}O9o|AP9X7*==JC4F86)es$W!y%+<3BK< z6nsf2O&NWqO(-(cuVz1VayMC3-h3ZEDvuR(PunOOm81PVa@ zj=t!!*zbJ#WsAwls27u<3Oma~sNrO4m=2^I80wL0?Gs9@Y5@hB5zvVVHS43xP{?p> z?GN*CfuPR-%kdO-R+a@$B_Pr)mvn~K#Wab+rZ4Rbyn~91y7PIF-B0zYu8XCktV-(s ziNcXhCBSd-oj9k3K$t!bt^- zbYg!F)l;(MW%dV9IlF-C+=tuQJTLBN1_+zl`!ddzW|^|5<~e5i$cdADc4W8ngaz=K z#(!_=p=%r`6kACta_yJXN8vDWU6ES;UM4Ig3g?P3?;kDr-ZoPs^Re`)k~w;Y6+@*f z)=M*(P8_M3AX(0!=w}Rnl)b4@?m=fq_AGra&670+K3n-3=|w^NAm!s^{x&M!BwJ=6i1sR~GqHCF z1}JTQp*_@dbb!Z6&kJn6%cwW2FppEpv6-31IK9dQizI*o31#mo&_EVtyqb!Sl-bS; z{V+xI(CBQ>#wlCp%Bd=rN0-0QpwHZE(MlKRc#J`h>}Q=U(5GnRTvahPwqm$4e~kup z{nT3#pc{E7J=&vEldc^z#d~8i-Yem6O<_<2a%Ok=o)H22uAqIMva!LhWX7n|0*3k7 z+zfD8P7NQRxPXnl)pIoSdS;5b;Q)`5o?fsz4R~Z4ep^|Ano^*;ew8!@RVnHdBNeMr zxSgocwp9TV-*P?D{8puCxVJ3uD(_J{Ld!BEIA$kO(1RhHqri*}j5WJw+x?Sz);ipq zsQaPm&6u9iF6$G1PgXBqs}!e}0cIl>G00g!`TF7HAt&?r`!c0>1;D+$jsZ_E2sU6Z z;D-6NN`Rj`DH>UA3WUn_az;XovMFhQIl$v&tjGXGbGhiO!%}G)XJ4Hy*{5jMUY)_$ zDBX3`nUo3J#61mB^NQp|;gTA*k_|dDw5Qk>PXWPBDBwZfA?~4=8eM|Iw}3q&d$oJ* z@Z6^uA>XZ!9Tz;4<0-lSiAmTAbH-|+ILGlk*pC{1IEPW^lKeeQ4bu)7&@@3er&8UY z2cYMHgug*F*4wEb(U?Xq;rVO&XjVb}f%!I{+qpdN?iGFXumC)=68oMBj}MCi!s@T2 zdQHum13XT~x|k?3U2U3_;?(t*bo7rjht$Yk^1*z6O^5DnJ4I`J)yQ53q?y@A|CT7~ zpiC5v(CSo?LG(+QALPWnwj#qNbrXU zr^gx0@5Rb*4uySuijkV`6XnEo8qYYzUFkE!PwBGlk(^g^P`J0FRTg zBIC(kcgQ&O_AB5b%{N-vlK=s>YUcQSBX!Pcdzcs9aTKldrOPgq$)2^iS$B1U9w%c>`jrxtKt(2VlfXu2 zOZL>F0U08D*4womzP}y3BeVJH$ecqZ#b}f*;6@j$)C`DmeC~9V5KM#zQ#9<}w}2c| zvrFgK(S=Z@Igcn>yUa&r zG>h^xIn@|UJQVYt`?y`sVC@KM_(090{CuD$i|1$VHESLr0O-@X-O0e`MhAGDj1?K6 zX!!tAjDU^+vibK&MnUGUk@F(YHZ52D<5%WyqY6yV8QjQQ*#2Y8%}73rgBCSsq$ zemgp;paeTMCtz8{+9=CT`tH~OPf39=2?}JCnXiCOGf?L%uuxLx?6hE~y&r{B2k3;6 zx^QcmqNOBsMS7iKyGFei#WNb@kpcnF7JhDEb0?-`VE~ZtqJ|&NUnzUC&|U;PSwN58 zd@SJx*_Q#3$zzn%d^esN8SslQ0C>YU%B*0IYdNeH4vK^C@bs)O}z} z8fosgSF$aS76F(zsi0%m81%qdd3p@s!E=8|0GxX$->mSx40iGYJyOPdKkZ*a;{R#*YMWegO(l<3Rc6Pccl#eXEdfEDu&OF|f3n@ZiYMIAM7UT040dm%L z;1<(>owcm+iwghV${_E6E`S~>V4wfY4YCIVpA-1i)P*Zj5Pi1Z0Ujq~h2gPf=#}-Q zYU)+ycJT!WD5>`(n1Kz{-9nC_@F!C=>7I5tCZ+rh*dYtEqpOVj;#}Pl^f6M`?@r;& z$uf_S%m!UkpX<9`+r9qIat7S@WG%LLzf7@-=V}rO}{TyY{*NO$q z=+9+;*nqE-eC4(Rj)??)C}N4M#$RGUo;Qfd8|-XiX5&App7l5{`CiaIO?C6$AYa#= z34Uil&xsxCvlsH~&x3YF&^{KlR~v9r0LXTL$H|xhJVv1nQ#83=O)0#x0yDDIgk(PC z?@Y*aH^qc(d+HjAqW&%B+K0vc={}Lbz!xB*7XZ&r(ce`C+H^rs-vVT0WS4JQ3uUyI zlYC_b_hqF`Y8(RNST-8^~_g)_af*)Ewlak+Lo$$cTmpfsyV>p zWGsmZd(;ZwQwrTz?2g{`8|7M|aOnno@6jH(&m9zHrhGN=iK5}QeiIPatWSt~qlo3> z>e(6KQndh9qOdc%_Q9$sAY@FF4)EkJU|;Uf`I!3)MK6`;St9`KKo-UP_W!8PT%mnE z=DUk1%53!-=sAa9ucxqi9DY3$b3WGt<{S?2I2j89FakUAW~Iz!Cf+JV%{E>Ouprq3 z>?XJLz84L1Qbe@Y3&i_t`1wMC&MD{~@&Y@%#V|Y=!!Y^$hTAWBEo&x7)#`SHmX;@|;mf1VZkpB8K3uX7pbX&ifW&wYQoa7p6XYVaijpGyG*D^W z)Z{`1?pqkxzO;wI4&TMdLeo;a$zjZdfVBl2V!#3kx(v#fMZT6`#WScy!pj4o$Z?HTx7b2@!>}H*fEu z=edcZ*^&JweV`exEeuv4;)VAy{>dGVRf$U;^1<|yY*zqAR}|O&IVB4SGAxibiTPr&>?L{Ha-CIv zmQOOk!E=0s|8{1o-jE{vc;LKztoZx?`1M7Uy@pp2U}rA1F1*>y!FxTm4wM*R&_g{0 zdS+6?iTr!&e_(xzNWi#U--HtCb zzz!tNoONf5aSXt?SBu{+qIh2^19~o|;*%4;k%8E4>bk)0B=xhx`1n_$Vv7;>9sw>N^S7 zjG{r$k=*xKi~d{v53J9$gva?cwPvIyGw?BOwfv_uX*qGyzVxDk9i(tB9v!tM85{{} zbge0!Wm?v!8gkFVNltPNvoR|v-WmSqDUSPkq2It1{gmIoiPD))iUd0V4+~?y)5`33 z2enS%h-8dYQ>+^oQ!(Z(usZMH_dlV!Y1s&zm|v0bI9Pjr8S|a3{2Xoy+Esd8aDc~& zlhFsl2FY&Ls;Q=P(AY{ynCLX~-601qoODTUV_=j-<_GOG@i!uZ5QT?mt+)07*nxnF z8sFmoPbhF;Q|=G6_&?_Uq7>It6zF*!)lF}Ri2RZI->XspP%ugxvJ4;xc$_#HeKJU4 z=UrW5f&|DR3*gapxFi4?a^35si(vl$QhXnZcCwfgpXafS(Dmnb8SGF3Fp?x!(d`+} zQ8eg*DeGK*c9*L4V_ynK)x|yg%d-w32Y8$~8GSM=776KpBTZBlwV3GKJT(j0ae&83 zx8+7k&hkvBx@pS@!qk7l@82G@-Ma{Ol7NvUMONd!(@rA4yg(1kRqtV(ag73SSZ^+( zLKbM2-=4g`0o_hff?tZnEOl;wvQ~#h?;C>8bkCF%t>i$ z{bhAz#yavos+$mDmiw0a4blW0n($hx{M<52VSwiyKfSGx<6ialldYjKzUXD!wzX%c zt`~oyMcms+bi(j$9nvE=;`@mnrS-iSf8;DsnIE{XJElh-E`W~j zho6U^VC+(6u;aHg4m@fUJuQj%q+Y!uhKMivtj29P*t_kl_`$2+Mn7oG*8V*368Clo z$DJR8l5K;k%WHB6LM|XvOGuF9q3A$P^f^(JrQ{=4TzzeyZN}+nf&u==y$_ z)(trhN5+zt_xg+Iq~E3ZK1^HBQ7n;hfc^k0=1zf~Bp@VB7V5a~JzaSql;78%g+a#B z&@kC5y_Q6>WP~iGvP721K9+1{9Ta0731w?!3p2KuNOmGIMGQ^Ik`^+uCbEU`HDi8L zUOoRm=bY!ywaC#RS3ME6^TMV>%AGZYVY?*xj!51Zd| zQfN5~NY97s==|r6=1j4cNZ?@3{JCn#q#h2P?*KYFh@P;^$-7mc=_pVgsLA zdXNm=GrX3T9UOSe@Vpy7$loKYwZ1l|sIOYEI8FOPa_gy;$(Z#uI9`aO0iYGi^421+ z=(Bk95Fc2kbOr0^UpfMr*_;Y^L#@A6)C5qOAb`+Re48I+9hB=m-?ROzX?HB- zy(45`w&|1ew&Zl-=3wyQvgr~XRjtccn2#90r5`>^Vbd$QFq%del_<&PGv21CI=qpA6c&DpcAbD$6Pg4F>sS0{wshQg^Fs5;*rqbC_ zgz;zt>0l#^iS^^$_PP_7tuVNqdtJIZ3u)eMf$Fv(7z|l;zqfT9g@~Bh@+!dnN;Gcy zHo;y$h`e1^J%PyNh^K>8574C!T3TEJ8cx+&xXyU%^dB82qVQ^;bVoa9x>#FzRD72Z zAgolj8Z8lLU>hx-4Vx=No?Bb8w<4dN+EFlSWmVlj$7`R_y1w2=o-~%0pxl8180^nF z3x)l7zT8B!Y4B$cw0-){w4>!M$+){IeQSEl)HX@RmWPrN;iraPq>7g;!o5m(0N^eE zgRz}AY(u_xCJIPPI;8Ee=-N_&H$EADdSuu@R>O$ z?55H$xoNU`?x21~11ckWEWIeoB~-zYJL#vh)Z`d$eMtt06U2v-4CO zVI@cf&J*itOnYydR0H=%g~Ap-7!0(lF@i=cl}v|*eVP0W97tH)(DMQU@;m zd9-}z^VpF#@TJ)(*Ol~ZD<`>~!$hfjk|nS4du{0UN`ts2=cB50xDGhAX?R+%PRN{( zp(}Pb2GBLji!HibOL$DXBX)%*)Qqo_@$|@FLb3ooiFZHLslv<)JxWd*q^UpNHtD+C znz7Ivyau~~d2Lx2PlFl&+6{y6ah#+WN2WI3zVF&yBiA(N&j^sJDdFOLD6`TLo+`81 zoD%bYdG{MWFGd$cq||z#GnG;am8`B>9_#DfC`OKv8n(P8VZH=?xMIwkZ0qVljvZhl z2Xr7W+x3|G1QyOT#mTEDve>$rkKM6{tGcIewL|In_w)T;paH!2$m0FAqgtv2j$;E~Q4LI`G&v7g@ z(HY(H-Qbr)C)%anylk5GAD4MsjeTvX3{11DJoi=3b51!yXq0kt7Lxno0sBg%;4V;aJI$G2YIV_jl- z$F^rpvLM?IhNEaxYX7 z>N#s0UlRpb6rX0ac-XfS$q-*g=P@j^zk=})Tq!Dbe(E0CqYzTUw?TXn1u0eO_ z?1+HSIYJEU_ju$0Kf}_wx+X)U*9AIvCwbtfV*Al$KE0(fbFCkRi|u7k`)tQa(G@u) zx7$Z&L}D`Fi}rfzBl)bJ(qBIz2hvSYwOB9CMKT{^{xZVl215jbTv^WP;|aSBQT+r{ zR7hCEO0E`LdU!xZ*mT^43&n;nhavGSHk@|S^kN_CKs1z>jLItc%-2WBy$~z8vTQdd z5sq`z4=!8uHF%Ed{xfa=6T3R57;I4y%Fm>u z<{UV>$g#3Iv*9~=PYH&yOPg|c@~&1!#e~dR-;L^s;*@$C5KeK1oalhM;oTMErlU~_ z)CcQ=Tkq)b(In3b?ez^{{ZZSS%X#>oeq!In{10;fOjm-lE+_=!AiMYl3Z%TK9dA3@ zVt9-Ly@P>h1$;10AbuhH==U)K?YK$jq5goNl;Y}CQ~2l3{_p*CwO>EPpkpluLiQoX zmFKsnXg#ywtcXkG4mU)Cyj2^;I|`P_6*^A)wg%c^+d?}&V4mvR4)>qlg~h5#8a>5Z zt`cCsZx*6Bz8f0-#lUpdIp@fs?;48E5jxRgvMU(fLo3S`Kgmxt*=>^Ev5N{Ny-(pC z2UE}qwEu+ILy|OmBO-m&Uh{UYM@(G#o9Y3B2W?i9n^*+3*$)+p6oJ*uOFlVVuUFKj&JL87H^OdS zDbKCNankeZ6DuTHMjG4hft5<)89y%pE7Ul~`zQg5Dr}rSP#9|P5Zw|qL*9)0zS)0HG4kZAQs>Pxm)2DZ7R~5hphnU$1 zOGxT;H;ASf_-M-H9(g?lgcr(2>-TCfW`NC;r6k>%gjPyaiG?P4nfZG|`3sB1U_%apiQ_~^Suyn}DKjks|B2LGN)MT$d3l2%TA4n!^xK^FlrbIJm%?bd2#3vx0h)mDi8(f?tiDXQfM51o^_N=z}es^`x z;8N*TGTN_9c_mq`6q|Oat!nqrwe9RsGSMaUpWGHO^%TKDkSF$&!$IJf&5RB>XD}Y^Uy$F*R;CGXXnzGr$_*gy85ixn2aO<>oL$bx$s;M Gh5a8Cb+JAG literal 0 HcmV?d00001 diff --git a/资源文件/存图10.28/over_Logo.png b/资源文件/存图10.28/over_Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1f0e960b82600e85f9fd8a84510b95464a9ba2cc GIT binary patch literal 38938 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 literal 0 HcmV?d00001 diff --git a/资源文件/鲁班锁图存图/bg.jpg b/资源文件/鲁班锁图存图/bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7cf61b442489d9ee6c3eca379ce106273219dcc6 GIT binary patch literal 46956 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%0DRn#;e&U%E;C{Emq1`1nL@{Bg7N*`Ewucm{#9 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≪-c)qYU5+&zYE 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

%si!Aa!t$ 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 HwZ8K|g~_}k literal 0 HcmV?d00001 diff --git a/资源文件/鲁班锁图存图/toutu.png b/资源文件/鲁班锁图存图/toutu.png new file mode 100644 index 0000000000000000000000000000000000000000..e58fc66c4b4dd9287c8e192eb075a1f92f5d841d GIT binary patch literal 67350 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 i@X{-PZjbH%3NQe2YJfghbz@Wj0000>W literal 0 HcmV?d00001 diff --git a/资源文件/鲁班锁图存图/xingxing01.png b/资源文件/鲁班锁图存图/xingxing01.png new file mode 100644 index 0000000000000000000000000000000000000000..e97460bec2fa657c24dcc109abc1b68144760896 GIT binary patch literal 1422 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 literal 0 HcmV?d00001 diff --git a/资源文件/鲁班锁图存图/x效果图.jpg b/资源文件/鲁班锁图存图/x效果图.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5d2e48f2dc15185d0562808a39dcda32fe6ae2f2 GIT binary patch literal 107647 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 bg;W6fuCa0n5of)&{)X)_&Nii10r7tW`RNV2 literal 0 HcmV?d00001 diff --git a/资源文件/鲁班锁图存图/色值.jpg b/资源文件/鲁班锁图存图/色值.jpg new file mode 100644 index 0000000000000000000000000000000000000000..54440edcdfe881ac324b82c8b25884533967c928 GIT binary patch literal 37522 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 literal 0 HcmV?d00001 diff --git a/资源文件/鲁班锁图存图/进度条01.png b/资源文件/鲁班锁图存图/进度条01.png new file mode 100644 index 0000000000000000000000000000000000000000..7116fd651331b11a491e69b6c784f08231a2a924 GIT binary patch literal 4394 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 literal 0 HcmV?d00001 diff --git a/资源文件/鲁班锁图存图9.20/bg.jpg b/资源文件/鲁班锁图存图9.20/bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bce1a4d9e46f0883f51139b929b557a425052dc3 GIT binary patch literal 92404 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®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 Hf3N>P1|7xl literal 0 HcmV?d00001 diff --git a/资源文件/鲁班锁图存图9.20/kuang1.jpg b/资源文件/鲁班锁图存图9.20/kuang1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ab3779a85baf2737a019db25959537c6364475ea GIT binary patch literal 2527 zcma)6c~nzp7XR|H5HLa>Ymn`kARXcaw* z+YH1A7BiwnJC=@Z6%iDH0xlf2bzyJ;#f7TFIH;Kiiuy;LGxwaF^L_W;-|sHp@5Oe_ z)(NFKm%K6lca4}P?jZtJPpcx_hJhefR8=}_JCK*Huy-cUn8k8C}GR`QGYK#Ux z747uh2rBId+CSXYCy8S5|4vn@#uqR_t2d-7KKA>E#QO9+t%8xN&})o3nF39xjf1tk z7@b05(CE@Nnw-fkretdj8hy4#i?Gq>LjuJTnNmIOnKc0si+KrZy+NXuDH23{DoR3E zD&@RL5myw!fQlh0;3!T}nu#4>m zAYsusjD z#$Cz>hdSEa7<){KMaNc3ebZmhYHWkYHs|I)A2Y-}Oy+Y|FjxBBY=8S^q}M4ZZ>X`& zX_WAI;oJFHoAT1S#ao$cZ<|!SZ9hizzYG6Pdfj{~zNoO49)_aN?)R2dtYm5^dK(Z$ z9e!}=JcavotkJP>;KchY?K$BYzHs10%*E>boVDx!+&j~R8S}RgFCrJh ze#$wyIFvHFZ!d2a+`;#$#{@#k1=yR|9?x_6d(36Qib26xq9k`!5=)H?6Y=i$t#VdFAU3fxYof!$b_JJ4MJ_9lPI^)Dn-|UD*sp8OK(9 zM~+wTbf9^DnKD45XR;42!P#H&@#sMdRKHDbef7kz>2|x@<>pJij}ErdT!{TfYh&eA zPS?ViglTmigIzdZYUc$^2k2=Oil*GFD7C-pPLVEhegGGwh}p*pXX9GiJk6yGzE<|s z7ko>yrn}T4gU9-shHspFZGZEp{?ksAtLmyUQ=6~%bqg|nxx#94q` zK7eaW&6?g5%E}zX9=dbFynpj?`>Ljsd$|JB*3@>WYz@?!vZun$PNbyI;WV5sHmM7j zXmg>V%ps>mz5R5=w*_xCx0h6{i|K5H|-yX)JtZH_jI`nf3R@G<$AmkY{;-Vq%6%U(V9y6ACU>)WTr^sT<%zFh7Xb#8Fm>Z?ObjmH1nV$uysSz@V>q=8#vtEQFg}T z3#TQh*6|j1>jHXCMV!c7_)u1z?Y}J%Ux(W*489TwsMzW=#s2$tVjtCQYk<~sAC@l3 zBpV3Js>G`bj}CSFc27(*y4-iVFL~*%rPdio`majLYi14KPP z6>muzF7BlU755?~ZEQB)I(H}K?m#2q?V}wX17F^H@j9bg+@yR34fa1mSN*(>np_`} zesnb~lw)Q#LNonIK5^ew<(b8BS^+uXa6=+4&M4T6=_}3(r0-~`dnEjso))kmqjm?!@uZaW%0vv*9E-t<{8NRt>;DBx)0OT3 literal 0 HcmV?d00001 diff --git a/资源文件/鲁班锁图存图9.20/kuang2.jpg b/资源文件/鲁班锁图存图9.20/kuang2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d6b0f141601e4598dc3921617511b3079fe2729a GIT binary patch literal 1766 zcma)6eQXnD7=Nx`>$)=9^%m>K-0fzdOxNqRYuDD*b=$3M$*N_}u!u3~t_Q27cjbCx z9SIQ^19L%vKtiHH*_;L;OY{!{$P6g3h!}O4fCD7qLq5cz!C?Z3^}X&>GYn61@4fdt z&+qqqyw7{-AJZ4XT%U@r0BCG111-!*`d2VA9c-)%Fi;_N6+rr;(%LRb2`@$QNozPF zv~gBeh*PO>f}*W93aYA8i7*@EB%+O58RdQCZ-)+(L^R?fmpOyBV4{v|k2b6oxfj+x z*TSxiv7QK7{VY+H@}}a6I46aPRD2bm^rn1dhTMzxvYH}^jEfZWku`EuqBR&I>I9J^ zoK{ykOINswN{^LxRoEP^rwO}__E0uAMLWuEwAbeHIxC4uAyG6jvclWU1SVslFCRHs zRA*+q!i{^u95MPh{PI=M!dB)cfHf? zu)6|uB~8}{YHJ*HO>JGR!{wqGCvBU;G6LHX=Xhxf8=1j69*UKxA)Y{y8BUC@;UWQ1 zh!dHrz0o;x@i1XPpQxV$=m74MIY0%&+%yB zMKsyzTacTXSBM-zHwa6ggEv5ZZa(>EG%45JS|vOR@OZIJhQ=IF330L7fc%-b(1~PpMEjYY;vgZ(wY)F&-h;` zpjc-?uf$Mbr4g#(Uhw|t*tMRX-lk;_MEca#r|#Wqe{1NgPbOY8)vl90W7?aG_Pv+n-s~CpX33qB zf(@E$wX>-?&{HD!Oa~SjQu5R#+j~G+6{0Eb(YZ zv8Z&=GIm-IKpiVpDz#HvB|0dMy-=)Dk7;eEI#{c9luprU(|;oYrz4&I^JjM7```Dy z@4f$R0{wxTP;7QJwE}|X%t?j>(C7->g(Q|rqI@+3LtNm_fS|xljXs4>$?pEPSOa*1ktajUpa*{zy$WqE>l;8inOO8?wqr6yW#jNfuvW%Kt;~@)c z@`{L>aw6R!pE(1~s5VqP-AAHHN3Furw8}QDC?MOEu{9=U}P;w`jGSR27h3y3#|CAUuHuyA4?$ z($3JHBATuUb#Zcpt2R($Yr)6l8^$`u)}kI0s{&$F?A<rj)uO*3K3p`j+n5^%ndJ^$pXty`&?wCG{txt*V+2hX*4yg{3~bgSm* zt^93Q+Ve_3oIy^@n!DntF&NnYAZB{T7dt$Q6oa!C)H$vapA8=9t^3KosGiz4p18Z9 z=jFVkJ%*v}5j;~Og7|Z}{#@jg6xuzxd42imzbIm{`1TL&Iq!D7xgt4^+SL3c=JoS^ zoe#b_nTz;Sf;-oYNo6T!EP6`*fFQM2e|d+lBWlg#OJz@DizEB2*wLixp(J>wKgHCM zxe@7>LPw-92DXq}@n>CoN_ok|CqUO9SYJbfXyW-QHp`(0^}nAHPC@*MKE27dcKNi# zX4uypzHX|ieOJ``ogM8Pz4yOs;A4H;>kk2lE(rPNBo+N8xCtOAB9wyz9f_Yj>6K6| z>uV+yt9QpvXu7xZ=k5EcpJQ&;%S_|p<+99hpDi3@@Y!IWEplrp$K{q2Cq!EoCLehy zxt9zOwy$gN`Hp}JB48}@R3XU1&E<9rEiFX%tYg9AYc7>7d4#3)_vPlEt{nurT1!q= zn9w3PX_KH1#A$_VfX_) zhUc>-EbHD+13>Hm!HRmhjcRD#$^s0Q+J5=+_&tTt4fr_Hh`O4JO)lRJnS)AAS?&h|b-ZtMy+dzAHat@PpTo-vU`M6|B(x!FVFG}0O zOBRcJvOeu!zjNR<$CXz<*!NQB^;w&D7n?q6($8*_o7hZ#eday^XjyE+te(2FwjJG? z-e1unY@yXLbg*QxwdG45s6uaQ=81v&`euP3d>yhS08QQ{>QHPfZLO3nwM9`5YVN$3 z78yP~JaGTX3)z3Kne_1ue_5w&)t6Q9-roFcitGH%=6MxeNx-RPod-L$$H3zN6MP)( zEMl!a7Yf+O_1W_(K6S@Uid2k}9O(MC<=C>OA7^I$ma~D%CSn$37Y|O`+5-P#i|7@A UEr0|90T1$-=C4H%PT>200JY=Wr~m)} literal 0 HcmV?d00001

Qfor=ft*^@AXuK$)P6)9aIA^m`;9fn8iw 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 literal 0 HcmV?d00001 diff --git a/资源文件/色值.jpg b/资源文件/色值.jpg new file mode 100644 index 0000000000000000000000000000000000000000..54440edcdfe881ac324b82c8b25884533967c928 GIT binary patch literal 37522 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

g^4Oa*AU-drc=?}e@BVL&&qt8-&@a~uHA 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 literal 0 HcmV?d00001 diff --git a/资源文件/UI/top.png b/资源文件/UI/top.png new file mode 100644 index 0000000000000000000000000000000000000000..e58fc66c4b4dd9287c8e192eb075a1f92f5d841d GIT binary patch literal 67350 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 i@X{-PZjbH%3NQe2YJfghbz@Wj0000>W literal 0 HcmV?d00001 diff --git a/资源文件/UI/xingxing01.png b/资源文件/UI/xingxing01.png new file mode 100644 index 0000000000000000000000000000000000000000..e97460bec2fa657c24dcc109abc1b68144760896 GIT binary patch literal 1422 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 literal 0 HcmV?d00001 diff --git a/资源文件/UI/yes.png b/资源文件/UI/yes.png new file mode 100644 index 0000000000000000000000000000000000000000..9ea62c98b81cd07c0e70d322571e7438976d1aa8 GIT binary patch literal 5079 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 literal 0 HcmV?d00001 diff --git a/资源文件/bg.jpg b/资源文件/bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8b3877f195f9a504bc27dec28bb1cba261ec5938 GIT binary patch literal 50539 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 literal 0 HcmV?d00001 diff --git a/资源文件/publicUI.plist b/资源文件/publicUI.plist new file mode 100644 index 0000000..9dc66b1 --- /dev/null +++ b/资源文件/publicUI.plist @@ -0,0 +1,596 @@ + + + + + frames + + again.png + + aliases + + spriteOffset + {0,0} + spriteSize + {270,72} + spriteSourceSize + {270,72} + textureRect + {{757,651},{270,72}} + textureRotated + + + cictrl.png + + aliases + + spriteOffset + {0,0} + spriteSize + {342,30} + spriteSourceSize + {342,30} + textureRect + {{1,1259},{342,30}} + textureRotated + + + daan.png + + aliases + + spriteOffset + {0,1} + spriteSize + {46,74} + spriteSourceSize + {114,114} + textureRect + {{526,1131},{46,74}} + textureRotated + + + err.png + + aliases + + spriteOffset + {0,0} + spriteSize + {57,49} + spriteSourceSize + {57,49} + textureRect + {{526,1207},{57,49}} + textureRotated + + + gezi.png + + aliases + + spriteOffset + {0,0} + spriteSize + {682,682} + spriteSourceSize + {682,682} + textureRect + {{1,1},{682,682}} + textureRotated + + + kuang1.jpg + + aliases + + spriteOffset + {0,0} + spriteSize + {114,114} + spriteSourceSize + {114,114} + textureRect + {{831,1175},{114,114}} + textureRotated + + + kuang2.jpg + + aliases + + spriteOffset + {0,0} + spriteSize + {114,114} + spriteSourceSize + {114,114} + textureRect + {{526,685},{114,114}} + textureRotated + + + kuang3.jpg + + aliases + + spriteOffset + {0,0} + spriteSize + {132,132} + spriteSourceSize + {132,132} + textureRect + {{731,1533},{132,132}} + textureRotated + + + lun.png + + aliases + + spriteOffset + {0,0} + spriteSize + {572,523} + spriteSourceSize + {572,523} + textureRect + {{1,685},{572,523}} + textureRotated + + + over_Logo.png + + aliases + + spriteOffset + {0,0} + spriteSize + {648,152} + spriteSourceSize + {648,152} + textureRect + {{685,1},{648,152}} + textureRotated + + + progress.png + + aliases + + spriteOffset + {0,0} + spriteSize + {344,88} + spriteSourceSize + {344,88} + textureRect + {{831,753},{344,88}} + textureRotated + + + progressOver.png + + aliases + + spriteOffset + {0,0} + spriteSize + {218,218} + spriteSourceSize + {218,218} + textureRect + {{731,1313},{218,218}} + textureRotated + + + start.png + + aliases + + spriteOffset + {0,0} + spriteSize + {270,72} + spriteSourceSize + {270,72} + textureRect + {{757,923},{270,72}} + textureRotated + + + texture1.png + + aliases + + spriteOffset + {0,1} + spriteSize + {64,86} + spriteSourceSize + {114,114} + textureRect + {{608,867},{64,86}} + textureRotated + + + texture10.png + + aliases + + spriteOffset + {0,0} + spriteSize + {86,62} + spriteSourceSize + {114,114} + textureRect + {{526,873},{86,62}} + textureRotated + + + texture11.png + + aliases + + spriteOffset + {0,0} + spriteSize + {88,88} + spriteSourceSize + {114,114} + textureRect + {{865,1633},{88,88}} + textureRotated + + + texture12.png + + aliases + + spriteOffset + {0,0} + spriteSize + {44,52} + spriteSourceSize + {114,114} + textureRect + {{533,1258},{44,52}} + textureRotated + + + texture13.png + + aliases + + spriteOffset + {0,0} + spriteSize + {98,98} + spriteSourceSize + {114,114} + textureRect + {{865,1533},{98,98}} + textureRotated + + + texture14.png + + aliases + + spriteOffset + {0,1} + spriteSize + {90,26} + spriteSourceSize + {114,114} + textureRect + {{865,1723},{90,26}} + textureRotated + + + texture18.png + + aliases + + spriteOffset + {0,0} + spriteSize + {46,86} + spriteSourceSize + {114,114} + textureRect + {{526,1043},{46,86}} + textureRotated + + + texture19.png + + aliases + + spriteOffset + {0,1} + spriteSize + {80,70} + spriteSourceSize + {114,114} + textureRect + {{526,801},{80,70}} + textureRotated + + + texture2.png + + aliases + + spriteOffset + {0,1} + spriteSize + {84,60} + spriteSourceSize + {114,114} + textureRect + {{590,955},{84,60}} + textureRotated + + + texture20.png + + aliases + + spriteOffset + {0,0} + spriteSize + {90,32} + spriteSourceSize + {114,114} + textureRect + {{642,775},{90,32}} + textureRotated + + + texture3.png + + aliases + + spriteOffset + {0,0} + spriteSize + {72,86} + spriteSourceSize + {114,114} + textureRect + {{831,1099},{72,86}} + textureRotated + + + texture4.png + + aliases + + spriteOffset + {-1,0} + spriteSize + {52,92} + spriteSourceSize + {114,114} + textureRect + {{345,1259},{52,92}} + textureRotated + + + texture5.png + + aliases + + spriteOffset + {-1,1} + spriteSize + {36,88} + spriteSourceSize + {114,114} + textureRect + {{642,685},{36,88}} + textureRotated + + + texture6.png + + aliases + + spriteOffset + {0,0} + spriteSize + {90,80} + spriteSourceSize + {114,114} + textureRect + {{731,1667},{90,80}} + textureRotated + + + texture7.png + + aliases + + spriteOffset + {0,1} + spriteSize + {92,44} + spriteSourceSize + {114,114} + textureRect + {{439,1259},{92,44}} + textureRotated + + + texture8.png + + aliases + + spriteOffset + {0,0} + spriteSize + {72,84} + spriteSourceSize + {114,114} + textureRect + {{757,1195},{72,84}} + textureRotated + + + texture9.png + + aliases + + spriteOffset + {0,0} + spriteSize + {58,80} + spriteSourceSize + {114,114} + textureRect + {{526,961},{58,80}} + textureRotated + + + tiao.png + + aliases + + spriteOffset + {0,0} + spriteSize + {420,34} + spriteSourceSize + {420,34} + textureRect + {{921,753},{420,34}} + textureRotated + + + time_icon.png + + aliases + + spriteOffset + {0,0} + spriteSize + {40,40} + spriteSourceSize + {40,40} + textureRect + {{823,1667},{40,40}} + textureRotated + + + tip.png + + aliases + + spriteOffset + {0,0} + spriteSize + {660,70} + spriteSourceSize + {660,70} + textureRect + {{685,651},{660,70}} + textureRotated + + + tipBg.png + + aliases + + spriteOffset + {0,0} + spriteSize + {728,440} + spriteSourceSize + {728,440} + textureRect + {{1,1313},{728,440}} + textureRotated + + + top.png + + aliases + + spriteOffset + {0,0} + spriteSize + {750,127} + spriteSourceSize + {750,127} + textureRect + {{839,1},{750,127}} + textureRotated + + + xingxing01.png + + aliases + + spriteOffset + {0,0} + spriteSize + {30,30} + spriteSourceSize + {30,30} + textureRect + {{757,1281},{30,30}} + textureRotated + + + xingxing02.png + + aliases + + spriteOffset + {0,0} + spriteSize + {40,40} + spriteSourceSize + {40,40} + textureRect + {{823,1709},{40,40}} + textureRotated + + + yes.png + + aliases + + spriteOffset + {0,0} + spriteSize + {74,60} + spriteSourceSize + {74,60} + textureRect + {{586,1017},{74,60}} + textureRotated + + + + metadata + + format + 3 + pixelFormat + RGBA8888 + premultiplyAlpha + + realTextureFileName + publicUI.png + size + {967,1754} + smartupdate + $TexturePacker:SmartUpdate:0ed3c0074bba272770d308dfd3127220:f4aa1c3a36af73d88bc58fa617a8211d:1c7d81f68058ada321959f2296017bb5$ + textureFileName + publicUI.png + + + diff --git a/资源文件/publicUI.png b/资源文件/publicUI.png new file mode 100644 index 0000000000000000000000000000000000000000..47e5377281ba8e91bb8ae5e6077b58afebf631d9 GIT binary patch literal 562542 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

>>0?1:0)|0,L=R,P=O,R=G,O=N,G=I,N=A,I=bt+(yt+pt+(St>>>0>>0?1:0))+((A=ut+St|0)>>>0>>0?1:0)|0}p=n.low=p+A,n.high=f+I+(p>>>0>>0?1:0),y=o.low=y+N,o.high=g+G+(y>>>0>>0?1:0),_=r.low=_+O,r.high=m+R+(_>>>0>>0?1:0),C=s.low=C+P,s.high=v+L+(C>>>0

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