瀏覽代碼

Merge branch 'dev' into dev2

# Conflicts:
#	assets/scene/game.fire
#	assets/scene/login.fire
smallqiang 5 年之前
父節點
當前提交
a8d1b2a9a0
共有 100 個文件被更改,包括 8304 次插入1356 次删除
  1. 524 25
      assets/resources/prefabs/common/commonAlert.prefab
  2. 295 4
      assets/resources/prefabs/draw/drawStarSuccss.prefab
  3. 11 7
      assets/resources/prefabs/precedence/draw_content.prefab
  4. 7 7
      assets/resources/prefabs/precedence/game_friend.prefab
  5. 1622 240
      assets/resources/prefabs/precedence/game_rank.prefab
  6. 6 3
      assets/resources/prefabs/precedence/invite_mission.prefab
  7. 7 7
      assets/resources/prefabs/precedence/login_reward.prefab
  8. 55 52
      assets/resources/prefabs/precedence/offline_grossIncome.prefab
  9. 84 72
      assets/resources/prefabs/precedence/store_content.prefab
  10. 573 116
      assets/resources/prefabs/store/storeAlbum.prefab
  11. 17 17
      assets/resources/prefabs/store/storeDiamondItem.prefab
  12. 789 0
      assets/resources/prefabs/store/storeQQAlert.prefab
  13. 7 0
      assets/resources/prefabs/store/storeQQAlert.prefab.meta
  14. 1033 120
      assets/resources/prefabs/store/storeSmaliItem.prefab
  15. 二進制
      assets/resources/textures/game/record_start.png
  16. 31 0
      assets/resources/textures/game/record_start.png.meta
  17. 二進制
      assets/resources/textures/game/record_video.png
  18. 31 0
      assets/resources/textures/game/record_video.png.meta
  19. 二進制
      assets/resources/textures/star/star_longbtn_bg.png
  20. 31 0
      assets/resources/textures/star/star_longbtn_bg.png.meta
  21. 二進制
      assets/resources/textures/store/800210.png
  22. 8 8
      assets/resources/textures/store/800210.png.meta
  23. 二進制
      assets/resources/textures/store/800220.png
  24. 8 8
      assets/resources/textures/store/800220.png.meta
  25. 二進制
      assets/resources/textures/store/800230.png
  26. 8 8
      assets/resources/textures/store/800230.png.meta
  27. 二進制
      assets/resources/textures/store/800240.png
  28. 8 8
      assets/resources/textures/store/800240.png.meta
  29. 二進制
      assets/resources/textures/store/800250.png
  30. 8 8
      assets/resources/textures/store/800250.png.meta
  31. 二進制
      assets/resources/textures/store/800310.png
  32. 6 6
      assets/resources/textures/store/800310.png.meta
  33. 二進制
      assets/resources/textures/store/800320.png
  34. 8 8
      assets/resources/textures/store/800320.png.meta
  35. 二進制
      assets/resources/textures/store/800330.png
  36. 8 8
      assets/resources/textures/store/800330.png.meta
  37. 二進制
      assets/resources/textures/store/800340.png
  38. 7 7
      assets/resources/textures/store/800340.png.meta
  39. 二進制
      assets/resources/textures/store/store_add_qqGroup.png
  40. 31 0
      assets/resources/textures/store/store_add_qqGroup.png.meta
  41. 二進制
      assets/resources/textures/store/store_big_blue.png
  42. 31 0
      assets/resources/textures/store/store_big_blue.png.meta
  43. 二進制
      assets/resources/textures/store/store_diamond_1.png
  44. 8 8
      assets/resources/textures/store/store_diamond_1.png.meta
  45. 二進制
      assets/resources/textures/store/store_diamond_2.png
  46. 8 8
      assets/resources/textures/store/store_diamond_2.png.meta
  47. 二進制
      assets/resources/textures/store/store_diamond_3.png
  48. 8 8
      assets/resources/textures/store/store_diamond_3.png.meta
  49. 二進制
      assets/resources/textures/store/store_diamond_4.png
  50. 8 8
      assets/resources/textures/store/store_diamond_4.png.meta
  51. 二進制
      assets/resources/textures/store/store_diamond_d.png
  52. 5 5
      assets/resources/textures/store/store_diamond_d.png.meta
  53. 二進制
      assets/resources/textures/store/store_selected.png
  54. 31 0
      assets/resources/textures/store/store_selected.png.meta
  55. 二進制
      assets/resources/textures/store/store_small_bg.png
  56. 31 0
      assets/resources/textures/store/store_small_bg.png.meta
  57. 二進制
      assets/resources/textures/store/store_top_banner.png
  58. 4 4
      assets/resources/textures/store/store_top_banner.png.meta
  59. 753 234
      assets/scene/game.fire
  60. 5 5
      assets/scene/login.fire
  61. 1 1
      assets/scene/login.fire.meta
  62. 4 4
      assets/scripts/applet/MyApplet.js
  63. 446 0
      assets/scripts/common/Platform.js
  64. 9 0
      assets/scripts/common/Platform.js.meta
  65. 21 40
      assets/scripts/common/UserInfo.js
  66. 37 4
      assets/scripts/common/commAlert.js
  67. 1 0
      assets/scripts/data/friendReward.js
  68. 9 0
      assets/scripts/data/friendReward.js.meta
  69. 0 0
      assets/scripts/data/lottery.js
  70. 1 1
      assets/scripts/data/lotteryNew.js
  71. 16 9
      assets/scripts/draw/DrawContent.js
  72. 1 1
      assets/scripts/draw/DrawRedRecord.js
  73. 2 2
      assets/scripts/draw/DrawScroll.js
  74. 8 1
      assets/scripts/draw/DrawStarSuccss.js
  75. 1 1
      assets/scripts/friend/GameFriendCtrl.js
  76. 84 67
      assets/scripts/game/Game.js
  77. 8 7
      assets/scripts/game/GameShop.js
  78. 16 16
      assets/scripts/game/GameSkill.js
  79. 5 5
      assets/scripts/game/GameTabbar.js
  80. 11 12
      assets/scripts/game/HomeGuide.js
  81. 11 4
      assets/scripts/game/HomeMoreCtrl.js
  82. 107 9
      assets/scripts/game/HomeSideCtrl.js
  83. 4 4
      assets/scripts/game/MoneyCat.js
  84. 12 7
      assets/scripts/game/OfflineGrossIncome.js
  85. 1 1
      assets/scripts/invite/FriendHelpClick.js
  86. 7 7
      assets/scripts/invite/FriendHelpItem.js
  87. 10 3
      assets/scripts/invite/InviteMission.js
  88. 1 1
      assets/scripts/invite/InviteMissionItem.js
  89. 15 29
      assets/scripts/levelHome/LevelHome.js
  90. 3 3
      assets/scripts/levelHome/LevelHomeAward.js
  91. 17 12
      assets/scripts/levelHome/LevelHomeItem.js
  92. 3 3
      assets/scripts/levelHome/LevelHomeListAdapter.js
  93. 1183 0
      assets/scripts/lib/es6-promise.js
  94. 9 0
      assets/scripts/lib/es6-promise.js.meta
  95. 90 54
      assets/scripts/login/LoginCtrl.js
  96. 1 1
      assets/scripts/login/LoginCtrl.js.meta
  97. 13 7
      assets/scripts/loginReward/LoginRewardCtrl.js
  98. 1 1
      assets/scripts/loginReward/LoginRewardItem.js
  99. 1 1
      assets/scripts/messageList/MessageItem.js
  100. 19 19
      assets/scripts/messageList/MessageList.js

+ 524 - 25
assets/resources/prefabs/common/commonAlert.prefab

@@ -21,17 +21,20 @@
       },
       {
         "__id__": 6
+      },
+      {
+        "__id__": 48
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
       {
-        "__id__": 42
+        "__id__": 56
       }
     ],
     "_prefab": {
-      "__id__": 43
+      "__id__": 57
     },
     "_opacity": 255,
     "_color": {
@@ -170,7 +173,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "60AbmD+IFF+LzanHKmdyDp"
+    "_id": ""
   },
   {
     "__type__": "cc.BlockInputEvents",
@@ -180,7 +183,7 @@
       "__id__": 2
     },
     "_enabled": true,
-    "_id": "02ntC3W/FAsqLzaIaOirSM"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -221,7 +224,7 @@
     "_level": 2,
     "_components": [],
     "_prefab": {
-      "__id__": 41
+      "__id__": 47
     },
     "_opacity": 255,
     "_color": {
@@ -357,7 +360,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "bej2zaYU9DxbEeOltQYRGI"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -526,7 +529,7 @@
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
-    "_id": "02Pp2yPOBD+aDPr3uxiNyO"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -536,7 +539,7 @@
     "asset": {
       "__uuid__": "eb44a5ef-eed0-4aaf-ba0e-343445d5747f"
     },
-    "fileId": "195EhNEA1BCK3oh/RM6aRq",
+    "fileId": "1amInrpnRAeL1v+Uw7fJQy",
     "sync": false
   },
   {
@@ -625,7 +628,7 @@
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
-    "_id": "440z5vv6pNr4DqRjE8iwj9"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -635,7 +638,7 @@
     "asset": {
       "__uuid__": "eb44a5ef-eed0-4aaf-ba0e-343445d5747f"
     },
-    "fileId": "17AdoqTDhGjaIRBrn+cihe",
+    "fileId": "9fOlsVM8BOD6/VBNaeMLa8",
     "sync": false
   },
   {
@@ -654,7 +657,7 @@
     "_N$lineHeight": 32,
     "_N$imageAtlas": null,
     "_N$handleTouchEvent": true,
-    "_id": "e8NuwgwwtK65JvnrOhZChZ"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -756,7 +759,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "c3v23UeHVLQLn6cbNr2OK2"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -992,7 +995,7 @@
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
-    "_id": "c9zOoA6rRF3LfWlvy5l3wj"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1002,7 +1005,7 @@
     "asset": {
       "__uuid__": "eb44a5ef-eed0-4aaf-ba0e-343445d5747f"
     },
-    "fileId": "68lJlAWatO66C2Zo15DAK9",
+    "fileId": "e79KqOsipE163DKYkTP3V4",
     "sync": false
   },
   {
@@ -1091,7 +1094,7 @@
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
-    "_id": "99Li/4bUJJz716h93lYN1q"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1101,7 +1104,7 @@
     "asset": {
       "__uuid__": "eb44a5ef-eed0-4aaf-ba0e-343445d5747f"
     },
-    "fileId": "e4y9f7QtNND4RQacX20IVo",
+    "fileId": "d44/ajbCxEgJJtXXnq2UTP",
     "sync": false
   },
   {
@@ -1122,7 +1125,7 @@
       "__uuid__": "9a199f9b-2e79-467b-85f6-b6ebe5f54f18"
     },
     "_N$handleTouchEvent": true,
-    "_id": "a77qcbr3pDM6HXCM4KET9k"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1161,7 +1164,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "44WkjiZu9DIZLC4MiAxBeu"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1184,17 +1187,20 @@
     "_children": [
       {
         "__id__": 35
+      },
+      {
+        "__id__": 38
       }
     ],
     "_active": true,
     "_level": 3,
     "_components": [
       {
-        "__id__": 38
+        "__id__": 44
       }
     ],
     "_prefab": {
-      "__id__": 40
+      "__id__": 46
     },
     "_opacity": 255,
     "_color": {
@@ -1315,7 +1321,7 @@
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
-      "__uuid__": "e35abe3f-081b-4866-8d80-29108973488a"
+      "__uuid__": "6d87a9f4-6966-41ce-95e6-fbb66464eebe"
     },
     "_type": 0,
     "_sizeMode": 1,
@@ -1330,7 +1336,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "f15puD4btCp74gJ0sGMbnB"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1344,6 +1350,201 @@
     "sync": false
   },
   {
+    "__type__": "cc.Node",
+    "_name": "richtext",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 34
+    },
+    "_children": [
+      {
+        "__id__": 39
+      }
+    ],
+    "_active": true,
+    "_level": 4,
+    "_components": [
+      {
+        "__id__": 42
+      }
+    ],
+    "_prefab": {
+      "__id__": 43
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 60,
+      "height": 32
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_position": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_scale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_rotationX": 0,
+    "_rotationY": 0,
+    "_quat": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_zIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrivateNode",
+    "_name": "RICHTEXT_CHILD",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 38
+    },
+    "_children": [],
+    "_active": true,
+    "_level": 5,
+    "_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": 60,
+      "height": 32
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_position": {
+      "__type__": "cc.Vec3",
+      "x": -30,
+      "y": -16,
+      "z": 0
+    },
+    "_scale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_rotationX": 0,
+    "_rotationY": 0,
+    "_quat": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_zIndex": -32768,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Label",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 39
+    },
+    "_enabled": true,
+    "_srcBlendFactor": 1,
+    "_dstBlendFactor": 771,
+    "_useOriginalSize": true,
+    "_string": "确定",
+    "_N$string": "确定",
+    "_fontSize": 30,
+    "_lineHeight": 32,
+    "_enableWrapText": true,
+    "_N$file": null,
+    "_isSystemFontUsed": true,
+    "_spacingX": 0,
+    "_N$horizontalAlign": 0,
+    "_N$verticalAlign": 1,
+    "_N$fontFamily": "Arial",
+    "_N$overflow": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "eb44a5ef-eed0-4aaf-ba0e-343445d5747f"
+    },
+    "fileId": "1fgwbuNoJKoYfJE1SLwEwQ",
+    "sync": false
+  },
+  {
+    "__type__": "cc.RichText",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 38
+    },
+    "_enabled": true,
+    "_N$string": "<b><color=#ffffff>确定</c></b>",
+    "_N$horizontalAlign": 1,
+    "_N$fontSize": 30,
+    "_N$font": null,
+    "_N$maxWidth": 0,
+    "_N$lineHeight": 32,
+    "_N$imageAtlas": null,
+    "_N$handleTouchEvent": true,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "eb44a5ef-eed0-4aaf-ba0e-343445d5747f"
+    },
+    "fileId": "ef4mbGAHZANIBYE2HkwcBl",
+    "sync": false
+  },
+  {
     "__type__": "cc.Button",
     "_name": "",
     "_objFlags": 0,
@@ -1370,7 +1571,7 @@
     "zoomScale": 1.2,
     "clickEvents": [
       {
-        "__id__": 39
+        "__id__": 45
       }
     ],
     "_N$interactable": true,
@@ -1410,7 +1611,7 @@
     "_N$target": {
       "__id__": 35
     },
-    "_id": "ecIif7JbNE5K6nGQQ7Btet"
+    "_id": ""
   },
   {
     "__type__": "cc.ClickEvent",
@@ -1444,6 +1645,294 @@
     "sync": false
   },
   {
+    "__type__": "cc.Node",
+    "_name": "strore_close_btn",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 49
+      }
+    ],
+    "_active": false,
+    "_level": 2,
+    "_components": [
+      {
+        "__id__": 52
+      },
+      {
+        "__id__": 54
+      }
+    ],
+    "_prefab": {
+      "__id__": 55
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 99,
+      "height": 114
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_position": {
+      "__type__": "cc.Vec3",
+      "x": 180,
+      "y": 277,
+      "z": 0
+    },
+    "_scale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_rotationX": 0,
+    "_rotationY": 0,
+    "_quat": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_zIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "store_close",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 48
+    },
+    "_children": [],
+    "_active": true,
+    "_level": 4,
+    "_components": [
+      {
+        "__id__": 50
+      }
+    ],
+    "_prefab": {
+      "__id__": 51
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 66,
+      "height": 71
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_position": {
+      "__type__": "cc.Vec3",
+      "x": 18,
+      "y": -9,
+      "z": 0
+    },
+    "_scale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_rotationX": 0,
+    "_rotationY": 0,
+    "_quat": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_zIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 49
+    },
+    "_enabled": true,
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "3b53aea6-e62a-4433-9e69-df03a3a718a7"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_state": 0,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "eb44a5ef-eed0-4aaf-ba0e-343445d5747f"
+    },
+    "fileId": "f46VwGCpFLNqOi0Xmc8gwI",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Button",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 48
+    },
+    "_enabled": true,
+    "transition": 1,
+    "pressedColor": {
+      "__type__": "cc.Color",
+      "r": 120,
+      "g": 120,
+      "b": 120,
+      "a": 255
+    },
+    "hoverColor": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "duration": 0.1,
+    "zoomScale": 1.2,
+    "clickEvents": [
+      {
+        "__id__": 53
+      }
+    ],
+    "_N$interactable": true,
+    "_N$enableAutoGrayEffect": false,
+    "_N$normalColor": {
+      "__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__": "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": ""
+  },
+  {
+    "__type__": "cc.ClickEvent",
+    "target": {
+      "__id__": 1
+    },
+    "component": "commAlert",
+    "handler": "closeAction",
+    "customEventData": ""
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 48
+    },
+    "_enabled": true,
+    "alignMode": 1,
+    "_target": null,
+    "_alignFlags": 33,
+    "_left": 0,
+    "_right": 0.5,
+    "_top": -34,
+    "_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": {
+      "__uuid__": "eb44a5ef-eed0-4aaf-ba0e-343445d5747f"
+    },
+    "fileId": "dfKMjOr4tE+b871G2hpSS/",
+    "sync": false
+  },
+  {
     "__type__": "deeaepjNkpLk6JgKTbJw1Jy",
     "_name": "",
     "_objFlags": 0,
@@ -1460,7 +1949,17 @@
     "descRichText": {
       "__id__": 30
     },
-    "_id": "bes2AK2lZGP5fqIRJYp12c"
+    "sureRichText": {
+      "__id__": 42
+    },
+    "sureButton": {
+      "__id__": 44
+    },
+    "closeButton": {
+      "__id__": 48
+    },
+    "diamond": 0,
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",

+ 295 - 4
assets/resources/prefabs/draw/drawStarSuccss.prefab

@@ -21,17 +21,20 @@
       },
       {
         "__id__": 6
+      },
+      {
+        "__id__": 64
       }
     ],
     "_active": true,
     "_level": 1,
     "_components": [
       {
-        "__id__": 64
+        "__id__": 72
       }
     ],
     "_prefab": {
-      "__id__": 65
+      "__id__": 73
     },
     "_opacity": 255,
     "_color": {
@@ -946,7 +949,7 @@
     "asset": {
       "__uuid__": "f72cc06e-a339-494b-9401-6773a18c914f"
     },
-    "fileId": "eakmx+/I9LfZZvY53pKWRO",
+    "fileId": "1dlvui15FPPb6kNoVr5GqX",
     "sync": false
   },
   {
@@ -1045,7 +1048,7 @@
     "asset": {
       "__uuid__": "f72cc06e-a339-494b-9401-6773a18c914f"
     },
-    "fileId": "ddPrF3bRJGw7NOqjRl22IL",
+    "fileId": "e5gVCM6iJF3oyV3rIHMPr9",
     "sync": false
   },
   {
@@ -2174,6 +2177,294 @@
     "sync": false
   },
   {
+    "__type__": "cc.Node",
+    "_name": "strore_close_btn",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 65
+      }
+    ],
+    "_active": true,
+    "_level": 2,
+    "_components": [
+      {
+        "__id__": 68
+      },
+      {
+        "__id__": 70
+      }
+    ],
+    "_prefab": {
+      "__id__": 71
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 99,
+      "height": 114
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_position": {
+      "__type__": "cc.Vec3",
+      "x": 225,
+      "y": 297,
+      "z": 0
+    },
+    "_scale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_rotationX": 0,
+    "_rotationY": 0,
+    "_quat": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_zIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "store_close",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 64
+    },
+    "_children": [],
+    "_active": true,
+    "_level": 4,
+    "_components": [
+      {
+        "__id__": 66
+      }
+    ],
+    "_prefab": {
+      "__id__": 67
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 66,
+      "height": 71
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_position": {
+      "__type__": "cc.Vec3",
+      "x": 18,
+      "y": -9,
+      "z": 0
+    },
+    "_scale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_rotationX": 0,
+    "_rotationY": 0,
+    "_quat": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_zIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 65
+    },
+    "_enabled": true,
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "3b53aea6-e62a-4433-9e69-df03a3a718a7"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_state": 0,
+    "_atlas": null,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "f72cc06e-a339-494b-9401-6773a18c914f"
+    },
+    "fileId": "19C36ivEdAuqmpkQr4vRxm",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Button",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 64
+    },
+    "_enabled": true,
+    "transition": 1,
+    "pressedColor": {
+      "__type__": "cc.Color",
+      "r": 120,
+      "g": 120,
+      "b": 120,
+      "a": 255
+    },
+    "hoverColor": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "duration": 0.1,
+    "zoomScale": 1.2,
+    "clickEvents": [
+      {
+        "__id__": 69
+      }
+    ],
+    "_N$interactable": true,
+    "_N$enableAutoGrayEffect": false,
+    "_N$normalColor": {
+      "__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__": "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__": 65
+    },
+    "_id": ""
+  },
+  {
+    "__type__": "cc.ClickEvent",
+    "target": {
+      "__id__": 1
+    },
+    "component": "DrawStarSuccss",
+    "handler": "closeAction",
+    "customEventData": ""
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 64
+    },
+    "_enabled": true,
+    "alignMode": 1,
+    "_target": null,
+    "_alignFlags": 33,
+    "_left": 0,
+    "_right": 100.5,
+    "_top": 313,
+    "_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": {
+      "__uuid__": "f72cc06e-a339-494b-9401-6773a18c914f"
+    },
+    "fileId": "75sc+cjeRPD6W1iFGPiHvq",
+    "sync": false
+  },
+  {
     "__type__": "aea30k9tM9N7pm6du2oM1Yi",
     "_name": "",
     "_objFlags": 0,

+ 11 - 7
assets/resources/prefabs/precedence/draw_content.prefab

@@ -660,7 +660,7 @@
     "asset": {
       "__uuid__": "ccee106e-a016-4055-9d7e-3862f77f1109"
     },
-    "fileId": "cdTdk0ACtJW5yc/d+ao4NZ",
+    "fileId": "5dFDgdFEFEpbGrbVtfdPvq",
     "sync": false
   },
   {
@@ -1529,7 +1529,7 @@
     "asset": {
       "__uuid__": "ccee106e-a016-4055-9d7e-3862f77f1109"
     },
-    "fileId": "38yIf3zsFNXJE7SzB3yLHM",
+    "fileId": "14RuiQHXtP7ryEPfPoTiZr",
     "sync": false
   },
   {
@@ -1628,7 +1628,7 @@
     "asset": {
       "__uuid__": "ccee106e-a016-4055-9d7e-3862f77f1109"
     },
-    "fileId": "3c+d1QxQ9H368MVym3THq2",
+    "fileId": "77df/HDelHw7cMFD1kCTht",
     "sync": false
   },
   {
@@ -2316,7 +2316,7 @@
     "asset": {
       "__uuid__": "ccee106e-a016-4055-9d7e-3862f77f1109"
     },
-    "fileId": "13FPUlgcFP2pKFTJ5Yl7O7",
+    "fileId": "0diqsoDc9CDavkBQev6uiU",
     "sync": false
   },
   {
@@ -2415,7 +2415,7 @@
     "asset": {
       "__uuid__": "ccee106e-a016-4055-9d7e-3862f77f1109"
     },
-    "fileId": "87GVtyTHZOJoJqjddvQkDI",
+    "fileId": "0cJLfuwnlDsLtteo3uF7CN",
     "sync": false
   },
   {
@@ -3115,7 +3115,7 @@
     "asset": {
       "__uuid__": "ccee106e-a016-4055-9d7e-3862f77f1109"
     },
-    "fileId": "eajVuXZiZA86v+rNclIijq",
+    "fileId": "c2rvwwyclKa4xxU2UlVWGA",
     "sync": false
   },
   {
@@ -3214,7 +3214,7 @@
     "asset": {
       "__uuid__": "ccee106e-a016-4055-9d7e-3862f77f1109"
     },
-    "fileId": "a3wFEB6vhOF7Av0+ZcyKo9",
+    "fileId": "39EHkLruZCp7+hE+9CNM07",
     "sync": false
   },
   {
@@ -4367,6 +4367,10 @@
     "drawMoneyLabel": {
       "__id__": 112
     },
+    "drawRecordButton": {
+      "__id__": 122
+    },
+    "_adState": 0,
     "_id": ""
   },
   {

+ 7 - 7
assets/resources/prefabs/precedence/game_friend.prefab

@@ -244,7 +244,7 @@
     "_position": {
       "__type__": "cc.Vec3",
       "x": 0,
-      "y": -40,
+      "y": 0,
       "z": 0
     },
     "_scale": {
@@ -946,7 +946,7 @@
     "asset": {
       "__uuid__": "d3877946-d15f-4f8c-8287-cf66cb238297"
     },
-    "fileId": "14MIiiAalJMpv8EXR48yzz",
+    "fileId": "f0rlIbyCZLdI+iziUrOkNL",
     "sync": false
   },
   {
@@ -1353,7 +1353,7 @@
     "asset": {
       "__uuid__": "d3877946-d15f-4f8c-8287-cf66cb238297"
     },
-    "fileId": "2f3CmK3zdHAI1LFYJf/5me",
+    "fileId": "ddRAlhsqRM36Bu2QpqjaKd",
     "sync": false
   },
   {
@@ -1760,7 +1760,7 @@
     "asset": {
       "__uuid__": "d3877946-d15f-4f8c-8287-cf66cb238297"
     },
-    "fileId": "65sApD6mlPEolZQmQxqaph",
+    "fileId": "f7UAuNb+RJo42TBR8czGL4",
     "sync": false
   },
   {
@@ -2933,7 +2933,7 @@
     "asset": {
       "__uuid__": "d3877946-d15f-4f8c-8287-cf66cb238297"
     },
-    "fileId": "6dSUwccRFPsaf55a3TCUx5",
+    "fileId": "492UMJa91NnqTfCeUPnBsj",
     "sync": false
   },
   {
@@ -3158,7 +3158,7 @@
     "asset": {
       "__uuid__": "d3877946-d15f-4f8c-8287-cf66cb238297"
     },
-    "fileId": "66sEIB94pExYFXmabJwVin",
+    "fileId": "19Q9ru5GxPh4AWhiat5S8X",
     "sync": false
   },
   {
@@ -3453,7 +3453,7 @@
     "asset": {
       "__uuid__": "d3877946-d15f-4f8c-8287-cf66cb238297"
     },
-    "fileId": "8dgDwyyWFJCoGd9hQewE31",
+    "fileId": "7bmPbIQkRMroEHXlTO8aGQ",
     "sync": false
   },
   {

文件差異過大導致無法顯示
+ 1622 - 240
assets/resources/prefabs/precedence/game_rank.prefab


+ 6 - 3
assets/resources/prefabs/precedence/invite_mission.prefab

@@ -1191,12 +1191,12 @@
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
-      "x": 0.5,
+      "x": 0,
       "y": 0.5
     },
     "_position": {
       "__type__": "cc.Vec3",
-      "x": -35.99999999999997,
+      "x": -300,
       "y": 137,
       "z": 0
     },
@@ -1257,7 +1257,7 @@
     "alignMode": 1,
     "_target": null,
     "_alignFlags": 9,
-    "_left": 63.33500000000001,
+    "_left": 50,
     "_right": 0,
     "_top": 402,
     "_bottom": 0,
@@ -2202,6 +2202,9 @@
     "shareButtonNode": {
       "__id__": 9
     },
+    "shareTipsLabel": {
+      "__id__": 34
+    },
     "_id": ""
   },
   {

+ 7 - 7
assets/resources/prefabs/precedence/login_reward.prefab

@@ -938,8 +938,8 @@
     },
     "_position": {
       "__type__": "cc.Vec3",
-      "x": 0,
-      "y": 0,
+      "x": -30.675,
+      "y": -13,
       "z": 0
     },
     "_scale": {
@@ -996,7 +996,7 @@
     "asset": {
       "__uuid__": "14b5feef-28d0-4b1c-8cd3-2d606864fb8b"
     },
-    "fileId": "c2rADi8BdJX7BV+UnfGeIX",
+    "fileId": "8335Oga3xEb7pTQXCOyZHE",
     "sync": false
   },
   {
@@ -1069,7 +1069,7 @@
     },
     "_position": {
       "__type__": "cc.Vec3",
-      "x": -171,
+      "x": -191,
       "y": -25,
       "z": 0
     },
@@ -1123,7 +1123,7 @@
     "alignMode": 1,
     "_target": null,
     "_alignFlags": 8,
-    "_left": 40,
+    "_left": 20,
     "_right": 0,
     "_top": 0,
     "_bottom": 0,
@@ -1195,7 +1195,7 @@
     },
     "_position": {
       "__type__": "cc.Vec3",
-      "x": 112,
+      "x": 122,
       "y": -27.5,
       "z": 0
     },
@@ -1390,7 +1390,7 @@
     "_target": null,
     "_alignFlags": 33,
     "_left": 0,
-    "_right": 45,
+    "_right": 35,
     "_top": 76,
     "_bottom": 0,
     "_verticalCenter": 0,

+ 55 - 52
assets/resources/prefabs/precedence/offline_grossIncome.prefab

@@ -173,7 +173,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "4aPIlSSXpNhpwQnJK4WHbV"
+    "_id": ""
   },
   {
     "__type__": "cc.BlockInputEvents",
@@ -183,7 +183,7 @@
       "__id__": 2
     },
     "_enabled": true,
-    "_id": "d4TDotMx1GLobtCMjxAaso"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -191,7 +191,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "67HKADerdLjqvCCtbdWlhe",
     "sync": false
@@ -431,7 +431,7 @@
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
-    "_id": "acleq8cp5H6p1YklDX+6h7"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -439,9 +439,9 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
-    "fileId": "32llnDTlZJhpqt0x4Isaeh",
+    "fileId": "41RsDx2/pAaI3/ZKe/pvU3",
     "sync": false
   },
   {
@@ -460,7 +460,7 @@
     "_N$lineHeight": 40,
     "_N$imageAtlas": null,
     "_N$handleTouchEvent": true,
-    "_id": "b2+Xb5I11C2rTEKlSg6vRb"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -468,7 +468,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "de2EmMkhFAMY2R9644DYCY",
     "sync": false
@@ -562,7 +562,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "82AiyScTVD75qGMXINdILF"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -570,7 +570,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "3bmr3zTFxJ56Tp0bZDzzWA",
     "sync": false
@@ -731,7 +731,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "28ro8mk4JH850+ADjXd0EJ"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -739,7 +739,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "90in/sA5RECr1HRYYZnca3",
     "sync": false
@@ -811,7 +811,7 @@
     "_N$target": {
       "__id__": 16
     },
-    "_id": "19afpqF31FGpbDkkqkQHa8"
+    "_id": ""
   },
   {
     "__type__": "cc.ClickEvent",
@@ -828,7 +828,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "74LcQZd5lBPbnjOCDGucir",
     "sync": false
@@ -986,7 +986,7 @@
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
-    "_id": "17s1b6wxNAWZKmCCNxiwcy"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -994,9 +994,9 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
-    "fileId": "dfMraWjgtJDa/QenGyA1ye",
+    "fileId": "6buqpsG4JKDI1kio7mJ1Yg",
     "sync": false
   },
   {
@@ -1015,7 +1015,7 @@
     "_N$lineHeight": 30,
     "_N$imageAtlas": null,
     "_N$handleTouchEvent": true,
-    "_id": "caChp6FJNGprZyufL40qCn"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1023,7 +1023,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "25Lp2lLoBPIKCo58uK2pdV",
     "sync": false
@@ -1184,7 +1184,7 @@
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
-    "_id": "b9f45mg0BCe5eNQJEcmhAG"
+    "_id": ""
   },
   {
     "__type__": "cc.LabelOutline",
@@ -1202,7 +1202,7 @@
       "a": 255
     },
     "_width": 4,
-    "_id": "35hl5uTi5Fr5dk1+9mDvE6"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1210,9 +1210,9 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
-    "fileId": "6eS8x/3RROXY34emMGj+bt",
+    "fileId": "6eqDBLDKhNDaleJ7vgggxO",
     "sync": false
   },
   {
@@ -1231,7 +1231,7 @@
     "_N$lineHeight": 50,
     "_N$imageAtlas": null,
     "_N$handleTouchEvent": true,
-    "_id": "3erA7r7s5HPKbOgDWs5kDi"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1239,7 +1239,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "c6ZLEC3CNDobfBZRwdEPeF",
     "sync": false
@@ -1476,7 +1476,7 @@
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
-    "_id": "998oZnjYVGEKcMwD2Vwq3j"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1484,7 +1484,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "45356gzeBJjah/tlkIVvXl",
     "sync": false
@@ -1568,7 +1568,7 @@
     "_N$lineHeight": 30,
     "_N$imageAtlas": null,
     "_N$handleTouchEvent": true,
-    "_id": "60PY/3FmhMda+crc/JqNgn"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1576,7 +1576,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "8b8f4kOetJ17rrJfzCfMid",
     "sync": false
@@ -1607,7 +1607,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "b7RFvg4U1FYbXmRwQiVC9Y"
+    "_id": ""
   },
   {
     "__type__": "cc.Button",
@@ -1676,7 +1676,7 @@
     "_N$target": {
       "__id__": 37
     },
-    "_id": "e2nWr+n5tFA6cdPoRObPNy"
+    "_id": ""
   },
   {
     "__type__": "cc.ClickEvent",
@@ -1693,7 +1693,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "e7yytwhS5BJ754/t0iBJbT",
     "sync": false
@@ -1857,7 +1857,7 @@
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
-    "_id": "eblA1Fd81DBY7gtDJacrEX"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1865,7 +1865,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "43d1fFumVMvbraox5Pt8Cg",
     "sync": false
@@ -1949,7 +1949,7 @@
     "_N$lineHeight": 30,
     "_N$imageAtlas": null,
     "_N$handleTouchEvent": true,
-    "_id": "d0zEaZgClCK4pRMj2o+0QI"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1957,7 +1957,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "29OGt0FwhL44jtvJVa0cWa",
     "sync": false
@@ -1988,7 +1988,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "bf+9CiXj1G/IHFyC+YarKM"
+    "_id": ""
   },
   {
     "__type__": "cc.Button",
@@ -2057,7 +2057,7 @@
     "_N$target": {
       "__id__": 48
     },
-    "_id": "a5AvJOlSdB9qsyBRELORb5"
+    "_id": ""
   },
   {
     "__type__": "cc.ClickEvent",
@@ -2074,7 +2074,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "89BRkrXI1GZqk8NNOWdrqc",
     "sync": false
@@ -2235,7 +2235,7 @@
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
-    "_id": "2aKmV9y6xDDZLxia6hV6wO"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -2243,7 +2243,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "6f2DCM6NVL5IQxwdrNdQIa",
     "sync": false
@@ -2274,7 +2274,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "b0ahoTCkNJz49bEyvSntmC"
+    "_id": ""
   },
   {
     "__type__": "cc.Button",
@@ -2331,7 +2331,7 @@
     "_N$target": {
       "__id__": 59
     },
-    "_id": "38+gFIildO/qTmnInPJYjD"
+    "_id": ""
   },
   {
     "__type__": "cc.ClickEvent",
@@ -2348,7 +2348,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "20A9ztz45LFI5T9BoRb4HJ",
     "sync": false
@@ -2383,7 +2383,7 @@
     "_N$spacingY": 0,
     "_N$verticalDirection": 1,
     "_N$horizontalDirection": 0,
-    "_id": "00D1/CB+5FjK8rFt9USeS7"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -2391,7 +2391,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "53dF1LWQBDaab0bO3pTGgy",
     "sync": false
@@ -2422,7 +2422,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "e92P0L26BH16CPn+MKcflZ"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -2430,7 +2430,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "2bSv2XkHdJJZ7gv8LqVgZV",
     "sync": false
@@ -2524,7 +2524,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "83WOPWWmBH1aQhJ9KclCx0"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -2532,7 +2532,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "1f+eDN0EdJMYyr2AaCM1Kl",
     "sync": false
@@ -2566,11 +2566,14 @@
     "shareBtn": {
       "__id__": 48
     },
+    "shareLabel": {
+      "__id__": 50
+    },
     "normalBtn": {
       "__id__": 59
     },
     "_N$zIndex": 100,
-    "_id": "batC1xVbJPLqlxAbWfKZdz"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -2578,7 +2581,7 @@
       "__id__": 1
     },
     "asset": {
-      "__uuid__": "3815ae2f-f25b-4b36-8131-96fa35866f5e"
+      "__uuid__": "75d30958-b1d0-4262-8216-1ceedeefa81e"
     },
     "fileId": "62OEGyCiNIHrjLwRY5lof2",
     "sync": false

+ 84 - 72
assets/resources/prefabs/precedence/store_content.prefab

@@ -170,7 +170,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "60xcduMRtIGpz96wtQ/ya9"
+    "_id": ""
   },
   {
     "__type__": "cc.BlockInputEvents",
@@ -180,7 +180,7 @@
       "__id__": 2
     },
     "_enabled": true,
-    "_id": "d9iQAONcVOk4R/k9iUQqqu"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -375,7 +375,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "9ci+bH3xlLtqHn3bhW5JXy"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -402,7 +402,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 700,
     "_originalHeight": 992,
-    "_id": "b9EEEol0RFnrhJvvajzAWr"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -504,7 +504,7 @@
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
-    "_id": "d51Ywkl5FLkKhIkIAIdujf"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -531,7 +531,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 0,
     "_originalHeight": 0,
-    "_id": "8cZ32EqQFDdZURoEKkTUrV"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -770,7 +770,7 @@
     "_N$verticalAlign": 1,
     "_N$fontFamily": "Arial",
     "_N$overflow": 0,
-    "_id": "faOrofHSlMgKAJxZztXVLx"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -780,7 +780,7 @@
     "asset": {
       "__uuid__": "cc01c6a6-0d71-48e4-a457-4519fcdfb398"
     },
-    "fileId": "bcrC/osCZFzJZExDpTAqxz",
+    "fileId": "48XuETyUtCColX/aGzSzpF",
     "sync": false
   },
   {
@@ -801,7 +801,7 @@
       "__uuid__": "9a199f9b-2e79-467b-85f6-b6ebe5f54f18"
     },
     "_N$handleTouchEvent": true,
-    "_id": "44GB4iMPxH7YoSAC4IibqV"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -828,7 +828,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 0,
     "_originalHeight": 0,
-    "_id": "3eXUNkx7lNRKbdIIcScpNr"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -867,7 +867,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "38BFPdl0VGGL8McaSOSUnc"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -894,7 +894,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 0,
     "_originalHeight": 0,
-    "_id": "63uwINjN9O7a5rjO8DCwdr"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -949,7 +949,7 @@
     "_position": {
       "__type__": "cc.Vec3",
       "x": 0,
-      "y": 500,
+      "y": 524,
       "z": 0
     },
     "_scale": {
@@ -999,7 +999,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "53C86Fuo5KSqsl/9GcKgLT"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -1014,7 +1014,7 @@
     "_alignFlags": 1,
     "_left": 0,
     "_right": 0,
-    "_top": -103,
+    "_top": -127,
     "_bottom": 845.5,
     "_verticalCenter": 0,
     "_horizontalCenter": 0,
@@ -1026,7 +1026,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 0,
     "_originalHeight": 198,
-    "_id": "30q42rgS1CkrOcgr/4Mz4K"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1274,7 +1274,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "3f3JUZDAtDJrWC2sVLV5t6"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1354,7 +1354,7 @@
     "_N$target": {
       "__id__": 31
     },
-    "_id": "63P6y5YZBM3KzwF9ToM678"
+    "_id": ""
   },
   {
     "__type__": "cc.ClickEvent",
@@ -1535,7 +1535,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "3cmeFy/h9OR7fdl7YS+Z/X"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1637,7 +1637,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "5c8YlSpm5JJL4MIuAQ329a"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -1717,7 +1717,7 @@
     "_N$target": {
       "__id__": 38
     },
-    "_id": "34LtH01rtO16kIUvwHtBPn"
+    "_id": ""
   },
   {
     "__type__": "cc.ClickEvent",
@@ -1898,7 +1898,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "61v1MxNMFCPLqnRMnhFM5W"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -2000,7 +2000,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "78TN1okVZD+I2MTvT89g0B"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -2080,7 +2080,7 @@
     "_N$target": {
       "__id__": 48
     },
-    "_id": "daBkDerdlL8KPQ9UaQfC3J"
+    "_id": ""
   },
   {
     "__type__": "cc.ClickEvent",
@@ -2258,7 +2258,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "c7ZLCqJ4lDJLF+J+ThIm8X"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -2338,7 +2338,7 @@
     "_N$target": {
       "__id__": 58
     },
-    "_id": "b4ZBY5x7RCN7l1WSuDk5Wb"
+    "_id": ""
   },
   {
     "__type__": "cc.ClickEvent",
@@ -2390,7 +2390,7 @@
     "_N$spacingY": 0,
     "_N$verticalDirection": 1,
     "_N$horizontalDirection": 0,
-    "_id": "71kdHAm5xFFJSNF5+sNMwM"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -2417,7 +2417,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 0,
     "_originalHeight": 0,
-    "_id": "6dwdeahedHNZZ/8fA9sIrj"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -2476,7 +2476,7 @@
     "_position": {
       "__type__": "cc.Vec3",
       "x": 316,
-      "y": 530,
+      "y": 494,
       "z": 0
     },
     "_scale": {
@@ -2538,8 +2538,8 @@
     },
     "_position": {
       "__type__": "cc.Vec3",
-      "x": 16,
-      "y": -1,
+      "x": 18,
+      "y": -9,
       "z": 0
     },
     "_scale": {
@@ -2589,7 +2589,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "03XF037bZCHaIyN0MIoznZ"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -2669,7 +2669,7 @@
     "_N$target": {
       "__id__": 69
     },
-    "_id": "78SERbHAVGwYWKKg6rhmKr"
+    "_id": ""
   },
   {
     "__type__": "cc.ClickEvent",
@@ -2693,7 +2693,7 @@
     "_alignFlags": 33,
     "_left": 0,
     "_right": 2.5,
-    "_top": -91,
+    "_top": -55,
     "_bottom": 0,
     "_verticalCenter": 0,
     "_horizontalCenter": 0,
@@ -2705,7 +2705,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 0,
     "_originalHeight": 0,
-    "_id": "0dkakFSG5DDKvbAuRq1mFR"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -2954,7 +2954,7 @@
     "_N$spacingY": 10,
     "_N$verticalDirection": 1,
     "_N$horizontalDirection": 0,
-    "_id": "3002UqGlhNepKobVsejXvg"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -2982,7 +2982,7 @@
     "_segments": 64,
     "_N$alphaThreshold": 0,
     "_N$inverted": false,
-    "_id": "b2EmED00dBjp+WyKMky5Gb"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -3009,7 +3009,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 690,
     "_originalHeight": 730,
-    "_id": "20f3nD33hLuJduHq0iIHtD"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -3030,9 +3030,6 @@
       "__id__": 76
     },
     "_enabled": true,
-    "content": {
-      "__id__": 78
-    },
     "horizontal": false,
     "vertical": true,
     "inertia": true,
@@ -3045,9 +3042,15 @@
       }
     ],
     "cancelInnerEvents": false,
+    "_N$content": {
+      "__id__": 78
+    },
+    "content": {
+      "__id__": 78
+    },
     "_N$horizontalScrollBar": null,
     "_N$verticalScrollBar": null,
-    "_id": "eaz8ixd69L2KJx4+rIKPM/"
+    "_id": ""
   },
   {
     "__type__": "cc.ClickEvent",
@@ -3072,7 +3075,7 @@
     "content": {
       "__id__": 78
     },
-    "_id": "b0Uh2FctxBHKgrzR7CWjtG"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -3099,7 +3102,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 690,
     "_originalHeight": 730,
-    "_id": "e5T8BFPHxMKYwnLqTB5DJH"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -3348,7 +3351,7 @@
     "_N$spacingY": 15,
     "_N$verticalDirection": 1,
     "_N$horizontalDirection": 0,
-    "_id": "e1ax5K9a1Me7df55mcUn1I"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -3376,7 +3379,7 @@
     "_segments": 64,
     "_N$alphaThreshold": 0,
     "_N$inverted": false,
-    "_id": "0dO9wALYNHRpJCRMco9No0"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -3403,7 +3406,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 690,
     "_originalHeight": 730,
-    "_id": "58c4BCKZJAhohttFm3pIMl"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -3424,9 +3427,6 @@
       "__id__": 89
     },
     "_enabled": true,
-    "content": {
-      "__id__": 91
-    },
     "horizontal": false,
     "vertical": true,
     "inertia": true,
@@ -3435,9 +3435,15 @@
     "bounceDuration": 0.23,
     "scrollEvents": [],
     "cancelInnerEvents": true,
+    "_N$content": {
+      "__id__": 91
+    },
+    "content": {
+      "__id__": 91
+    },
     "_N$horizontalScrollBar": null,
     "_N$verticalScrollBar": null,
-    "_id": "00pGBEckZJmpfnrBbA6g/B"
+    "_id": ""
   },
   {
     "__type__": "ec284Gahy1CIYpfWKmpBKnS",
@@ -3453,7 +3459,7 @@
     "content": {
       "__id__": 91
     },
-    "_id": "e8W4AxJH5J74M4kbUqoVAY"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -3480,7 +3486,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 690,
     "_originalHeight": 730,
-    "_id": "8fonpSUa9IHYmmZo/zApCN"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -3729,7 +3735,7 @@
     "_N$spacingY": 15,
     "_N$verticalDirection": 1,
     "_N$horizontalDirection": 0,
-    "_id": "5cCnsejdNNEKzfGc2xQW92"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -3757,7 +3763,7 @@
     "_segments": 64,
     "_N$alphaThreshold": 0,
     "_N$inverted": false,
-    "_id": "dc8FotewhAk7aH1Q6NKpJW"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -3784,7 +3790,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 690,
     "_originalHeight": 730,
-    "_id": "3eb28P3qFEWaqhSLnfgsYz"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -3805,9 +3811,6 @@
       "__id__": 101
     },
     "_enabled": true,
-    "content": {
-      "__id__": 103
-    },
     "horizontal": false,
     "vertical": true,
     "inertia": true,
@@ -3816,9 +3819,15 @@
     "bounceDuration": 0.23,
     "scrollEvents": [],
     "cancelInnerEvents": true,
+    "_N$content": {
+      "__id__": 103
+    },
+    "content": {
+      "__id__": 103
+    },
     "_N$horizontalScrollBar": null,
     "_N$verticalScrollBar": null,
-    "_id": "13CvZB7rBDNoNh813hZRrR"
+    "_id": ""
   },
   {
     "__type__": "b4785MBetlEjKLK9+rZtE+t",
@@ -3834,7 +3843,7 @@
     "content": {
       "__id__": 103
     },
-    "_id": "1c+6ztMfdEVJ/gDbJ4RDma"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -3861,7 +3870,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 690,
     "_originalHeight": 730,
-    "_id": "d8sDZgPD5EKrvXovGqDhSF"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -4110,7 +4119,7 @@
     "_N$spacingY": 10,
     "_N$verticalDirection": 1,
     "_N$horizontalDirection": 0,
-    "_id": "d4sQtTm6xKvZB5/IjKyfmv"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -4138,7 +4147,7 @@
     "_segments": 64,
     "_N$alphaThreshold": 0,
     "_N$inverted": false,
-    "_id": "521PdXX0NCgYwXWGAISuWM"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -4165,7 +4174,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 690,
     "_originalHeight": 730,
-    "_id": "7f5+QQ2x9NaZTeMdQQ+N+C"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -4186,9 +4195,6 @@
       "__id__": 113
     },
     "_enabled": true,
-    "content": {
-      "__id__": 115
-    },
     "horizontal": false,
     "vertical": true,
     "inertia": true,
@@ -4197,9 +4203,15 @@
     "bounceDuration": 0.23,
     "scrollEvents": [],
     "cancelInnerEvents": true,
+    "_N$content": {
+      "__id__": 115
+    },
+    "content": {
+      "__id__": 115
+    },
     "_N$horizontalScrollBar": null,
     "_N$verticalScrollBar": null,
-    "_id": "b7Vk7n/VpB2YFXE3fmQwPS"
+    "_id": ""
   },
   {
     "__type__": "7aa71dArJJIU4tEkreSzlcY",
@@ -4215,7 +4227,7 @@
     "content": {
       "__id__": 115
     },
-    "_id": "07OVVWRhJEgL2cI7LkoGBI"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -4242,7 +4254,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 690,
     "_originalHeight": 730,
-    "_id": "37JCFQBDtMrJL+D+c907ju"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -4346,7 +4358,7 @@
       "__id__": 6
     },
     "_tabIndex": 1,
-    "_id": "c0TSYGEr5H25hcFmaZokz9"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",

文件差異過大導致無法顯示
+ 573 - 116
assets/resources/prefabs/store/storeAlbum.prefab


+ 17 - 17
assets/resources/prefabs/store/storeDiamondItem.prefab

@@ -46,8 +46,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 280,
-      "height": 306
+      "width": 310,
+      "height": 286
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -112,8 +112,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 280,
-      "height": 306
+      "width": 310,
+      "height": 286
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -158,10 +158,10 @@
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
-      "__uuid__": "5eaa35a9-1d7c-4116-b455-04f5a813d952"
+      "__uuid__": "9b0430f2-7866-4cab-aa98-b2b2507bb207"
     },
     "_type": 0,
-    "_sizeMode": 1,
+    "_sizeMode": 0,
     "_fillType": 0,
     "_fillCenter": {
       "__type__": "cc.Vec2",
@@ -173,7 +173,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "afS9l4O4FO7LXIsQ/RbOmL"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -200,7 +200,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 280,
     "_originalHeight": 306,
-    "_id": "4euyoAJgVFxbA3nldD1l+i"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -241,8 +241,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 197,
-      "height": 242
+      "width": 243,
+      "height": 253
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -302,7 +302,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "94W0p3x5hJe7GFgx2c7IK1"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -346,8 +346,8 @@
     },
     "_contentSize": {
       "__type__": "cc.Size",
-      "width": 280,
-      "height": 306
+      "width": 310,
+      "height": 286
     },
     "_anchorPoint": {
       "__type__": "cc.Vec2",
@@ -392,7 +392,7 @@
     "_srcBlendFactor": 770,
     "_dstBlendFactor": 771,
     "_spriteFrame": {
-      "__uuid__": "303b4710-a97a-4c5b-85c6-c68cfc1a548f"
+      "__uuid__": "0b307ef2-1b90-4152-a110-42a47e88c325"
     },
     "_type": 0,
     "_sizeMode": 0,
@@ -407,7 +407,7 @@
     "_isTrimmedMode": true,
     "_state": 0,
     "_atlas": null,
-    "_id": "6cK7HfpTVLwpep6tFKQ9yS"
+    "_id": ""
   },
   {
     "__type__": "cc.Widget",
@@ -434,7 +434,7 @@
     "_isAbsVerticalCenter": true,
     "_originalWidth": 280,
     "_originalHeight": 300,
-    "_id": "d2Hd1it+pFFpFhAu34gG59"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",
@@ -461,7 +461,7 @@
     "selectedSprite": {
       "__id__": 10
     },
-    "_id": "0elGaQmG1JoIZcJvG0VJG8"
+    "_id": ""
   },
   {
     "__type__": "cc.PrefabInfo",

+ 789 - 0
assets/resources/prefabs/store/storeQQAlert.prefab

@@ -0,0 +1,789 @@
+[
+  {
+    "__type__": "cc.Prefab",
+    "_name": "",
+    "_objFlags": 0,
+    "_native": "",
+    "data": {
+      "__id__": 1
+    },
+    "optimizationPolicy": 0,
+    "asyncLoadAssets": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "qqGoup",
+    "_objFlags": 0,
+    "_parent": null,
+    "_children": [
+      {
+        "__id__": 2
+      },
+      {
+        "__id__": 6
+      }
+    ],
+    "_active": true,
+    "_level": 1,
+    "_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": 730,
+      "height": 1020
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_position": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_scale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_rotationX": 0,
+    "_rotationY": 0,
+    "_quat": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_zIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "star_mask",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [],
+    "_active": true,
+    "_level": 2,
+    "_components": [
+      {
+        "__id__": 3
+      },
+      {
+        "__id__": 4
+      }
+    ],
+    "_prefab": {
+      "__id__": 5
+    },
+    "_opacity": 153,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 0,
+      "g": 0,
+      "b": 0,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 1000,
+      "height": 2500
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_position": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_scale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_rotationX": 0,
+    "_rotationY": 0,
+    "_quat": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_zIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "_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,
+    "_state": 0,
+    "_atlas": null,
+    "_id": "61dMRHPE9Jor9NBHFxyrdB"
+  },
+  {
+    "__type__": "cc.BlockInputEvents",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 2
+    },
+    "_enabled": true,
+    "_id": "a8jGU9ehlCaYnH58+JAyjW"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "1ae9bd85-0f20-4e94-a465-9ccc17599b1f"
+    },
+    "fileId": "36qCu8oL9PBL7kHQOpYr5U",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "content",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 1
+    },
+    "_children": [
+      {
+        "__id__": 7
+      },
+      {
+        "__id__": 10
+      },
+      {
+        "__id__": 13
+      }
+    ],
+    "_active": true,
+    "_level": 2,
+    "_components": [],
+    "_prefab": {
+      "__id__": 21
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 730,
+      "height": 1020
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_position": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_scale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_rotationX": 0,
+    "_rotationY": 0,
+    "_quat": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_zIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "big_bg",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 6
+    },
+    "_children": [],
+    "_active": true,
+    "_level": 3,
+    "_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": 730,
+      "height": 1020
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_position": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_scale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_rotationX": 0,
+    "_rotationY": 0,
+    "_quat": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_zIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 7
+    },
+    "_enabled": true,
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "46fff2fd-a06a-4b3d-a835-547c67766224"
+    },
+    "_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": "62CISfQ9NEXqozDB1qIOoo"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "1ae9bd85-0f20-4e94-a465-9ccc17599b1f"
+    },
+    "fileId": "59SKAZ/4tPp4V3KF1gL4MS",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "store_add_qqGroup",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 6
+    },
+    "_children": [],
+    "_active": true,
+    "_level": 3,
+    "_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": 700,
+      "height": 990
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_position": {
+      "__type__": "cc.Vec3",
+      "x": 0,
+      "y": 0,
+      "z": 0
+    },
+    "_scale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_rotationX": 0,
+    "_rotationY": 0,
+    "_quat": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_zIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 10
+    },
+    "_enabled": true,
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "34fb708d-ff76-498e-bb0d-9270ed1c9870"
+    },
+    "_type": 0,
+    "_sizeMode": 0,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_state": 0,
+    "_atlas": null,
+    "_id": "4bYYm9/ZlMIp+AsNRPNKTE"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "1ae9bd85-0f20-4e94-a465-9ccc17599b1f"
+    },
+    "fileId": "2e4jMOwuFL6obB7u0OpYo6",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "strore_close_btn",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 6
+    },
+    "_children": [
+      {
+        "__id__": 14
+      }
+    ],
+    "_active": true,
+    "_level": 3,
+    "_components": [
+      {
+        "__id__": 17
+      },
+      {
+        "__id__": 19
+      }
+    ],
+    "_prefab": {
+      "__id__": 20
+    },
+    "_opacity": 255,
+    "_color": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "_contentSize": {
+      "__type__": "cc.Size",
+      "width": 99,
+      "height": 114
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_position": {
+      "__type__": "cc.Vec3",
+      "x": 326,
+      "y": 492,
+      "z": 0
+    },
+    "_scale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_rotationX": 0,
+    "_rotationY": 0,
+    "_quat": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_zIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Node",
+    "_name": "store_close",
+    "_objFlags": 0,
+    "_parent": {
+      "__id__": 13
+    },
+    "_children": [],
+    "_active": true,
+    "_level": 4,
+    "_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": 66,
+      "height": 71
+    },
+    "_anchorPoint": {
+      "__type__": "cc.Vec2",
+      "x": 0.5,
+      "y": 0.5
+    },
+    "_position": {
+      "__type__": "cc.Vec3",
+      "x": 16,
+      "y": -1,
+      "z": 0
+    },
+    "_scale": {
+      "__type__": "cc.Vec3",
+      "x": 1,
+      "y": 1,
+      "z": 1
+    },
+    "_rotationX": 0,
+    "_rotationY": 0,
+    "_quat": {
+      "__type__": "cc.Quat",
+      "x": 0,
+      "y": 0,
+      "z": 0,
+      "w": 1
+    },
+    "_skewX": 0,
+    "_skewY": 0,
+    "_zIndex": 0,
+    "groupIndex": 0,
+    "_id": ""
+  },
+  {
+    "__type__": "cc.Sprite",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 14
+    },
+    "_enabled": true,
+    "_srcBlendFactor": 770,
+    "_dstBlendFactor": 771,
+    "_spriteFrame": {
+      "__uuid__": "3b53aea6-e62a-4433-9e69-df03a3a718a7"
+    },
+    "_type": 0,
+    "_sizeMode": 1,
+    "_fillType": 0,
+    "_fillCenter": {
+      "__type__": "cc.Vec2",
+      "x": 0,
+      "y": 0
+    },
+    "_fillStart": 0,
+    "_fillRange": 0,
+    "_isTrimmedMode": true,
+    "_state": 0,
+    "_atlas": null,
+    "_id": "9cprXbjQpFH65CkHhyDSND"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "1ae9bd85-0f20-4e94-a465-9ccc17599b1f"
+    },
+    "fileId": "b3yucnS+dImYaoKBh+/PSm",
+    "sync": false
+  },
+  {
+    "__type__": "cc.Button",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 13
+    },
+    "_enabled": true,
+    "transition": 1,
+    "pressedColor": {
+      "__type__": "cc.Color",
+      "r": 120,
+      "g": 120,
+      "b": 120,
+      "a": 255
+    },
+    "hoverColor": {
+      "__type__": "cc.Color",
+      "r": 255,
+      "g": 255,
+      "b": 255,
+      "a": 255
+    },
+    "duration": 0.1,
+    "zoomScale": 1.2,
+    "clickEvents": [
+      {
+        "__id__": 18
+      }
+    ],
+    "_N$interactable": true,
+    "_N$enableAutoGrayEffect": false,
+    "_N$normalColor": {
+      "__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__": "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__": 14
+    },
+    "_id": "0b2k25ZTlNbYZrF5t5paoR"
+  },
+  {
+    "__type__": "cc.ClickEvent",
+    "target": {
+      "__id__": 1
+    },
+    "component": "StoreQQAddGroup",
+    "handler": "hiddenAction",
+    "customEventData": ""
+  },
+  {
+    "__type__": "cc.Widget",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 13
+    },
+    "_enabled": true,
+    "alignMode": 1,
+    "_target": null,
+    "_alignFlags": 33,
+    "_left": 0,
+    "_right": -10.5,
+    "_top": -39,
+    "_bottom": 0,
+    "_verticalCenter": 0,
+    "_horizontalCenter": 0,
+    "_isAbsLeft": true,
+    "_isAbsRight": true,
+    "_isAbsTop": true,
+    "_isAbsBottom": true,
+    "_isAbsHorizontalCenter": true,
+    "_isAbsVerticalCenter": true,
+    "_originalWidth": 0,
+    "_originalHeight": 0,
+    "_id": "a2cQQmT/BD2p1zz+eqcUxG"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "1ae9bd85-0f20-4e94-a465-9ccc17599b1f"
+    },
+    "fileId": "65Q2GnuA9F95+NL/WDlFlK",
+    "sync": false
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "1ae9bd85-0f20-4e94-a465-9ccc17599b1f"
+    },
+    "fileId": "e1TIJTEetOpYOd5JhirOEL",
+    "sync": false
+  },
+  {
+    "__type__": "3ebadjShcZJVrY3OwysVcIR",
+    "_name": "",
+    "_objFlags": 0,
+    "node": {
+      "__id__": 1
+    },
+    "_enabled": true,
+    "_id": "69yfwiNhNHnbxScLTGRoiu"
+  },
+  {
+    "__type__": "cc.PrefabInfo",
+    "root": {
+      "__id__": 1
+    },
+    "asset": {
+      "__uuid__": "1ae9bd85-0f20-4e94-a465-9ccc17599b1f"
+    },
+    "fileId": "ac2De8XCJM34D9Bus1wI8x",
+    "sync": false
+  }
+]

+ 7 - 0
assets/resources/prefabs/store/storeQQAlert.prefab.meta

@@ -0,0 +1,7 @@
+{
+  "ver": "1.0.0",
+  "uuid": "1ae9bd85-0f20-4e94-a465-9ccc17599b1f",
+  "optimizationPolicy": "AUTO",
+  "asyncLoadAssets": false,
+  "subMetas": {}
+}

文件差異過大導致無法顯示
+ 1033 - 120
assets/resources/prefabs/store/storeSmaliItem.prefab


二進制
assets/resources/textures/game/record_start.png


+ 31 - 0
assets/resources/textures/game/record_start.png.meta

@@ -0,0 +1,31 @@
+{
+  "ver": "2.2.0",
+  "uuid": "93c1aa2d-cb0f-4ca7-b59b-bc0688c60558",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "subMetas": {
+    "record_start": {
+      "ver": "1.0.3",
+      "uuid": "69496493-f55e-46d9-8895-d280a1a1acea",
+      "rawTextureUuid": "93c1aa2d-cb0f-4ca7-b59b-bc0688c60558",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": -1,
+      "offsetY": -3,
+      "trimX": 0,
+      "trimY": 6,
+      "width": 102,
+      "height": 76,
+      "rawWidth": 104,
+      "rawHeight": 82,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

二進制
assets/resources/textures/game/record_video.png


+ 31 - 0
assets/resources/textures/game/record_video.png.meta

@@ -0,0 +1,31 @@
+{
+  "ver": "2.2.0",
+  "uuid": "f1ac1cb9-226d-4f46-aa8d-232414b0cc9c",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "subMetas": {
+    "record_video": {
+      "ver": "1.0.3",
+      "uuid": "8ffee2f2-b3a5-4e36-982c-bc062b80f9ee",
+      "rawTextureUuid": "f1ac1cb9-226d-4f46-aa8d-232414b0cc9c",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": -3,
+      "trimX": 1,
+      "trimY": 6,
+      "width": 102,
+      "height": 76,
+      "rawWidth": 104,
+      "rawHeight": 82,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

二進制
assets/resources/textures/star/star_longbtn_bg.png


+ 31 - 0
assets/resources/textures/star/star_longbtn_bg.png.meta

@@ -0,0 +1,31 @@
+{
+  "ver": "2.2.0",
+  "uuid": "92153e23-e43e-4208-b520-6275a86813a1",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "subMetas": {
+    "star_longbtn_bg": {
+      "ver": "1.0.3",
+      "uuid": "6d87a9f4-6966-41ce-95e6-fbb66464eebe",
+      "rawTextureUuid": "92153e23-e43e-4208-b520-6275a86813a1",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 340,
+      "height": 80,
+      "rawWidth": 340,
+      "rawHeight": 80,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

二進制
assets/resources/textures/store/800210.png


+ 8 - 8
assets/resources/textures/store/800210.png.meta

@@ -13,14 +13,14 @@
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,
-      "offsetX": 1,
-      "offsetY": -14.5,
-      "trimX": 51,
-      "trimY": 42,
-      "width": 130,
-      "height": 155,
-      "rawWidth": 230,
-      "rawHeight": 210,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 164,
+      "height": 108,
+      "rawWidth": 164,
+      "rawHeight": 108,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

二進制
assets/resources/textures/store/800220.png


+ 8 - 8
assets/resources/textures/store/800220.png.meta

@@ -13,14 +13,14 @@
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,
-      "offsetX": 1.5,
-      "offsetY": -19,
-      "trimX": 40,
-      "trimY": 45,
-      "width": 153,
-      "height": 158,
-      "rawWidth": 230,
-      "rawHeight": 210,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 193,
+      "height": 109,
+      "rawWidth": 193,
+      "rawHeight": 109,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

二進制
assets/resources/textures/store/800230.png


+ 8 - 8
assets/resources/textures/store/800230.png.meta

@@ -13,14 +13,14 @@
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,
-      "offsetX": 1,
-      "offsetY": -15,
-      "trimX": 36,
-      "trimY": 37,
-      "width": 160,
-      "height": 166,
-      "rawWidth": 230,
-      "rawHeight": 210,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 194,
+      "height": 121,
+      "rawWidth": 194,
+      "rawHeight": 121,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

二進制
assets/resources/textures/store/800240.png


+ 8 - 8
assets/resources/textures/store/800240.png.meta

@@ -13,14 +13,14 @@
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,
-      "offsetX": 1,
-      "offsetY": -4.5,
-      "trimX": 18,
-      "trimY": 16,
-      "width": 196,
-      "height": 187,
-      "rawWidth": 230,
-      "rawHeight": 210,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 236,
+      "height": 126,
+      "rawWidth": 236,
+      "rawHeight": 126,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

二進制
assets/resources/textures/store/800250.png


+ 8 - 8
assets/resources/textures/store/800250.png.meta

@@ -13,14 +13,14 @@
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,
-      "offsetX": 1.5,
-      "offsetY": -0.5,
-      "trimX": 12,
-      "trimY": 8,
-      "width": 209,
-      "height": 195,
-      "rawWidth": 230,
-      "rawHeight": 210,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 226,
+      "height": 131,
+      "rawWidth": 226,
+      "rawHeight": 131,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

二進制
assets/resources/textures/store/800310.png


+ 6 - 6
assets/resources/textures/store/800310.png.meta

@@ -13,14 +13,14 @@
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,
-      "offsetX": 1.5,
-      "offsetY": -2,
-      "trimX": 26,
-      "trimY": 12,
+      "offsetX": 0.5,
+      "offsetY": 0,
+      "trimX": 25,
+      "trimY": 20,
       "width": 161,
-      "height": 160,
+      "height": 115,
       "rawWidth": 210,
-      "rawHeight": 180,
+      "rawHeight": 155,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

二進制
assets/resources/textures/store/800320.png


+ 8 - 8
assets/resources/textures/store/800320.png.meta

@@ -13,14 +13,14 @@
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,
-      "offsetX": 1.5,
-      "offsetY": -1,
-      "trimX": 18,
-      "trimY": 10,
-      "width": 177,
-      "height": 162,
-      "rawWidth": 210,
-      "rawHeight": 180,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 181,
+      "height": 119,
+      "rawWidth": 181,
+      "rawHeight": 119,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

二進制
assets/resources/textures/store/800330.png


+ 8 - 8
assets/resources/textures/store/800330.png.meta

@@ -13,14 +13,14 @@
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,
-      "offsetX": 1.5,
-      "offsetY": -4,
-      "trimX": 10,
-      "trimY": 16,
-      "width": 193,
-      "height": 156,
-      "rawWidth": 210,
-      "rawHeight": 180,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 196,
+      "height": 129,
+      "rawWidth": 196,
+      "rawHeight": 129,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

二進制
assets/resources/textures/store/800340.png


+ 7 - 7
assets/resources/textures/store/800340.png.meta

@@ -13,14 +13,14 @@
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,
-      "offsetX": 1,
-      "offsetY": 5,
-      "trimX": 3,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
       "trimY": 0,
-      "width": 206,
-      "height": 170,
-      "rawWidth": 210,
-      "rawHeight": 180,
+      "width": 229,
+      "height": 131,
+      "rawWidth": 229,
+      "rawHeight": 131,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

二進制
assets/resources/textures/store/store_add_qqGroup.png


+ 31 - 0
assets/resources/textures/store/store_add_qqGroup.png.meta

@@ -0,0 +1,31 @@
+{
+  "ver": "2.2.0",
+  "uuid": "c682da95-25e8-4d6b-b60c-ede99ac91d13",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "subMetas": {
+    "store_add_qqGroup": {
+      "ver": "1.0.3",
+      "uuid": "34fb708d-ff76-498e-bb0d-9270ed1c9870",
+      "rawTextureUuid": "c682da95-25e8-4d6b-b60c-ede99ac91d13",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 700,
+      "height": 990,
+      "rawWidth": 700,
+      "rawHeight": 990,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

二進制
assets/resources/textures/store/store_big_blue.png


+ 31 - 0
assets/resources/textures/store/store_big_blue.png.meta

@@ -0,0 +1,31 @@
+{
+  "ver": "2.2.0",
+  "uuid": "a8e267f6-aac7-4e15-b94f-ce6bcb0dce07",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "subMetas": {
+    "store_big_blue": {
+      "ver": "1.0.3",
+      "uuid": "14d7bc71-2ae8-4638-ae39-52b49a638984",
+      "rawTextureUuid": "a8e267f6-aac7-4e15-b94f-ce6bcb0dce07",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 230,
+      "height": 60,
+      "rawWidth": 230,
+      "rawHeight": 60,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

二進制
assets/resources/textures/store/store_diamond_1.png


+ 8 - 8
assets/resources/textures/store/store_diamond_1.png.meta

@@ -13,14 +13,14 @@
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,
-      "offsetX": 2.5,
-      "offsetY": -19,
-      "trimX": 23,
-      "trimY": 45,
-      "width": 197,
-      "height": 242,
-      "rawWidth": 238,
-      "rawHeight": 294,
+      "offsetX": -1.5,
+      "offsetY": -9.5,
+      "trimX": 32,
+      "trimY": 23,
+      "width": 243,
+      "height": 253,
+      "rawWidth": 310,
+      "rawHeight": 280,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

二進制
assets/resources/textures/store/store_diamond_2.png


+ 8 - 8
assets/resources/textures/store/store_diamond_2.png.meta

@@ -13,14 +13,14 @@
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,
-      "offsetX": 2.5,
-      "offsetY": -15,
-      "trimX": 23,
-      "trimY": 37,
-      "width": 197,
-      "height": 250,
-      "rawWidth": 238,
-      "rawHeight": 294,
+      "offsetX": -1.5,
+      "offsetY": -9.5,
+      "trimX": 32,
+      "trimY": 23,
+      "width": 243,
+      "height": 253,
+      "rawWidth": 310,
+      "rawHeight": 280,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

二進制
assets/resources/textures/store/store_diamond_3.png


+ 8 - 8
assets/resources/textures/store/store_diamond_3.png.meta

@@ -13,14 +13,14 @@
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,
-      "offsetX": 1.5,
-      "offsetY": -4.5,
-      "trimX": 18,
-      "trimY": 16,
-      "width": 205,
-      "height": 271,
-      "rawWidth": 238,
-      "rawHeight": 294,
+      "offsetX": -2.5,
+      "offsetY": -3,
+      "trimX": 30,
+      "trimY": 10,
+      "width": 245,
+      "height": 266,
+      "rawWidth": 310,
+      "rawHeight": 280,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

二進制
assets/resources/textures/store/store_diamond_4.png


+ 8 - 8
assets/resources/textures/store/store_diamond_4.png.meta

@@ -13,14 +13,14 @@
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,
-      "offsetX": 2,
-      "offsetY": -0.5,
-      "trimX": 14,
-      "trimY": 8,
-      "width": 214,
-      "height": 279,
-      "rawWidth": 238,
-      "rawHeight": 294,
+      "offsetX": -1.5,
+      "offsetY": -5.5,
+      "trimX": 32,
+      "trimY": 15,
+      "width": 243,
+      "height": 261,
+      "rawWidth": 310,
+      "rawHeight": 280,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

二進制
assets/resources/textures/store/store_diamond_d.png


+ 5 - 5
assets/resources/textures/store/store_diamond_d.png.meta

@@ -13,14 +13,14 @@
       "trimType": "auto",
       "trimThreshold": 1,
       "rotated": false,
-      "offsetX": 0,
+      "offsetX": -0.5,
       "offsetY": 0,
       "trimX": 0,
       "trimY": 0,
-      "width": 151,
-      "height": 145,
-      "rawWidth": 151,
-      "rawHeight": 145,
+      "width": 108,
+      "height": 108,
+      "rawWidth": 109,
+      "rawHeight": 108,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

二進制
assets/resources/textures/store/store_selected.png


+ 31 - 0
assets/resources/textures/store/store_selected.png.meta

@@ -0,0 +1,31 @@
+{
+  "ver": "2.2.0",
+  "uuid": "86c7530d-e031-444d-96c8-b0907b08a3ad",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "subMetas": {
+    "store_selected": {
+      "ver": "1.0.3",
+      "uuid": "0b307ef2-1b90-4152-a110-42a47e88c325",
+      "rawTextureUuid": "86c7530d-e031-444d-96c8-b0907b08a3ad",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 310,
+      "height": 280,
+      "rawWidth": 310,
+      "rawHeight": 280,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

二進制
assets/resources/textures/store/store_small_bg.png


+ 31 - 0
assets/resources/textures/store/store_small_bg.png.meta

@@ -0,0 +1,31 @@
+{
+  "ver": "2.2.0",
+  "uuid": "b34a3d56-5f76-467a-8e15-1be9dd640882",
+  "type": "sprite",
+  "wrapMode": "clamp",
+  "filterMode": "bilinear",
+  "premultiplyAlpha": false,
+  "subMetas": {
+    "store_small_bg": {
+      "ver": "1.0.3",
+      "uuid": "9b0430f2-7866-4cab-aa98-b2b2507bb207",
+      "rawTextureUuid": "b34a3d56-5f76-467a-8e15-1be9dd640882",
+      "trimType": "auto",
+      "trimThreshold": 1,
+      "rotated": false,
+      "offsetX": 0,
+      "offsetY": 0,
+      "trimX": 0,
+      "trimY": 0,
+      "width": 310,
+      "height": 286,
+      "rawWidth": 310,
+      "rawHeight": 286,
+      "borderTop": 0,
+      "borderBottom": 0,
+      "borderLeft": 0,
+      "borderRight": 0,
+      "subMetas": {}
+    }
+  }
+}

二進制
assets/resources/textures/store/store_top_banner.png


+ 4 - 4
assets/resources/textures/store/store_top_banner.png.meta

@@ -17,10 +17,10 @@
       "offsetY": 0,
       "trimX": 0,
       "trimY": 0,
-      "width": 736,
-      "height": 198,
-      "rawWidth": 736,
-      "rawHeight": 198,
+      "width": 737,
+      "height": 211,
+      "rawWidth": 737,
+      "rawHeight": 211,
       "borderTop": 0,
       "borderBottom": 0,
       "borderLeft": 0,

文件差異過大導致無法顯示
+ 753 - 234
assets/scene/game.fire


+ 5 - 5
assets/scene/login.fire

@@ -41,8 +41,8 @@
     },
     "_scale": {
       "__type__": "cc.Vec3",
-      "x": 0.3688038793103448,
-      "y": 0.3688038793103448,
+      "x": 0.3658170914542729,
+      "y": 0.3658170914542729,
       "z": 1
     },
     "_quat": {
@@ -55,7 +55,7 @@
     "_zIndex": 0,
     "groupIndex": 0,
     "autoReleaseAssets": false,
-    "_id": "40f8b7e6-9666-4b26-87e8-6f986f1c078d"
+    "_id": "6d3c479f-cf4e-43d2-8b48-74bd4f57b5df"
   },
   {
     "__type__": "cc.Node",
@@ -1054,7 +1054,7 @@
     "_id": "46zyxZHutP6ZBDOdCK8srX"
   },
   {
-    "__type__": "92fe3yYmypJhroGUfWBAS8i",
+    "__type__": "03ce8IFGmtMGpnczXFaYMor",
     "_name": "",
     "_objFlags": 0,
     "node": {
@@ -1078,6 +1078,6 @@
     },
     "_updating": false,
     "_canRetry": false,
-    "_id": "5crQZtSm1Ay74X6Z9xw3n4"
+    "_id": "feKVAP/hBN3Iv0ZdacQP0v"
   }
 ]

+ 1 - 1
assets/scene/login.fire.meta

@@ -1,6 +1,6 @@
 {
   "ver": "1.0.0",
-  "uuid": "40f8b7e6-9666-4b26-87e8-6f986f1c078d",
+  "uuid": "6d3c479f-cf4e-43d2-8b48-74bd4f57b5df",
   "asyncLoadAssets": false,
   "autoReleaseAssets": false,
   "subMetas": {}

+ 4 - 4
assets/scripts/applet/MyApplet.js

@@ -13,7 +13,7 @@ cc.Class({
     // LIFE-CYCLE CALLBACKS:
 
     onLoad () {
-        if (Global.isMineEnter) {
+        if (GameGlobal.isMineEnter) {
             this.gainButton.interactable = true;
             this.gainButton.getComponent(cc.Sprite).spriteFrame = this.btnSpriteFrame[1];
         } else {
@@ -38,14 +38,14 @@ cc.Class({
                     diamond: parseInt(respondData.diamond)
                 });
             } else {
-                Global.commonAlert.showCommonErrorAlert("领取奖励成功");
+                GameGlobal.commonAlert.showCommonErrorAlert("领取奖励成功");
             }
-            Global.appletAward = true;
+            GameGlobal.appletAward = true;
             this.node.destroy();
             GameEvent.fire('Gain_My_Applet');
         }, (code, msg) => {
             this.gainButton.interactable = true;
-            Global.commonAlert.showCommonErrorAlert("领取失败");
+            GameGlobal.commonAlert.showCommonErrorAlert("领取失败");
         });
     },
 

+ 446 - 0
assets/scripts/common/Platform.js

@@ -0,0 +1,446 @@
+const BuildingManager = require("../utils/BuildingManager");
+const ShareAction = require('../utils/ShareAction');
+const HomeApi = require("../net/HomeApi");
+const SkillApi = require("../net/SkillApi");
+const WeChat = require("../net/WeChat");
+const AlertManager = require('../utils/AlertManager');
+const {GameNotificationKey, WechatShareType } = require('../utils/GameEnum');
+const GameModule = require("../utils/GameModule");
+/// 处理
+class Platform {
+    static initPlatform() {
+        
+        if (window.tt != undefined) {
+            this.handelTTLifeCyle();
+        }else if (CC_WECHATGAME) {
+            this.handelWxLifeCyle();
+        } else if (CC_QQPLAY) {
+            this.handelQQLifeCycle();
+        }
+    }
+
+    static handelQQLifeCycle() {
+        
+        BK.onMaximize( () => {
+            BK.Script.log('游戏最小化');
+            Platform.handelOnHide();
+        })
+
+        BK.onGameClose(() => {
+            BK.Script.log('关闭游戏');
+            Platform.handelOnHide();
+        } )
+
+        BK.onEnterBackground( () => {
+            BK.Script.log('游戏退出到后台');
+            Platform.handelOnHide();
+        })
+        BK.onEnterForeground( () => {
+            BK.Script.log('游戏回到前台');
+            this.handelOnShow();
+        })
+
+        // BK.onGameShare( () => {
+        //     BK.Script.log('分享事件,点击分享按钮触发');
+        //     let shareInfo = {
+        //         summary: '猜猜他是谁?',
+        //         picUrl: 'https://pub.dwstatic.com/wxgame/taptapstar_qq/share/qq_share.png',
+        //         extendInfo: ''
+        //     };
+        //     return shareInfo;
+        // })
+
+        new BK.Game({
+            onShare() {
+                BK.Script.log('分享事件,点击分享按钮触发');
+                let shareInfo = {
+                    summary: '猜猜他是谁?',
+                    picUrl: 'https://pub.dwstatic.com/wxgame/taptapstar_qq/share/qq_share.png',
+                    extendInfo: ''
+                };
+                return shareInfo;
+            }
+        });
+
+        // BK.onGameShareComplete( () => {
+        //     BK.Script.log('分享结果,分享事件完成');
+        // })
+        // BK.Game.onNetworkChange( () => {
+        //     console.log('网络情况改变');
+        // })
+        // BK.game.onException( (app) => {
+        //     console.log('游戏报错');
+        //     BK.Script.log(1, 0, "msg = " + app.errorMessage() + ", stack = " + app.errorStacktrace());
+        // })
+    }
+
+    static handelTTLifeCyle() {
+        tt.onShow((query) => {
+            // if (typeof wx.getUpdateManager === 'function') {
+            //         const updateManager = wx.getUpdateManager();
+            //
+            //         updateManager.onCheckForUpdate(function (res) {
+            //         // 请求完新版本信息的回调
+            //         console.log('hasUpdate: ' + JSON.stringify(res.hasUpdate));
+            //     })
+            //
+            //     updateManager.onUpdateReady(function () {
+            //         // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
+            //         updateManager.applyUpdate();
+            //     })
+            //
+            //     updateManager.onUpdateFailed(function () {
+            //         // 新的版本下载失败
+            //     })
+            // }
+
+        //进入游戏的场景值
+        // console.log('scene ' + scene + '==============================game ===============================');
+        // if (scene == 1104) {
+        //     GameGlobal.isMineEnter = true;    //从我的小程序进入游戏
+        // } else {
+        //     GameGlobal.isMineEnter = false;    //从我的小程序进入游戏
+        // }
+        console.log('Global onShow' + JSON.stringify(query) + '======================================');
+            if (query != undefined && query != null) {
+                if (typeof query == "string") {
+                    query = JSON.parse(query);
+                }
+
+                GameGlobal.shareType = query.shareType;
+
+            // if (GameGlobal.shareType == ShareAction.SHOW_GROUP_RANK) {
+            //     if (shareTicket != undefined && shareTicket != null) {
+            //         GameGlobal.shareTicket = shareTicket;
+            //         GameEvent.fire(GameNotificationKey.GameShowGroupRank);//处理通过点击分享链接进入游戏的查看群排行榜
+            //     } else {
+            //         GameGlobal.shareTicket = '';
+            //     }
+            // }
+
+                if (query.uid != undefined && GameGlobal.shareType == ShareAction.INVITE_FRIEND) {
+                    GameGlobal.shareUid = query.uid;
+                    GameEvent.fire(GameNotificationKey.ProcessShareAction);//处理通过点击分享链接进入游戏的各种操作,加好友.....
+                }
+            }
+            //// 如果是从后台到前台
+            Platform.handelOnShow();
+        });
+
+        tt.onHide(() => {
+            console.log('Global onHide ===================================');
+            GameGlobal.isOnHide = true;
+            if (GameModule.userInfo) {
+                GameModule.userInfo.doReport();
+            }
+
+        // /// 关闭socket 如果socket是打开的状态 其它的状态就不管 打开之后直接重连 && Global._wxSocket.readyState == 'open'
+        // if (Global._wxSocket != undefined && Global._wxSocket != null ) {
+        //     Global._wxSocket.close();
+        // }
+            cc.sys.localStorage.setItem("onHideTimestamp", Date.parse(new Date()));
+            HomeApi.exitGame();
+            if (GameModule.audioMng) {
+                GameModule.audioMng.stopAll();
+            }
+        });
+
+        tt.showShareMenu({
+            withShareTicket: true,
+            success: function (res) {
+
+            },
+            fail: function (res) {
+
+            },
+            complete: function (res) {
+
+            }
+        });
+
+        tt.onShareAppMessage(function () {
+            if (GameGlobal.isCheck) {
+
+                var uid = -1;
+                if (GameGlobal.user != undefined && GameGlobal.user.uid != undefined) {
+                    uid = GameGlobal.user.uid;
+                }
+
+                return {
+                    title: '猜猜他是谁?',
+                    imageUrl: 'https://pub.dwstatic.com/wxgame/taptapstar/share/share_3.png',
+                    query: 'uid=' + uid + '&shareType=' + ShareAction.INVITE_FRIEND,
+                    success: function (res) {
+                        console.log('onShareAppMessage 分享成功');
+                        // 分享成功上报
+                        SkillApi.report(2, (responseData) => {
+                            console.log('上报分享成功');
+                        },(error) => {
+
+                        });
+                    },
+                    fail: function (res) {
+                        // 转发失败
+                        console.log('onShareAppMessage 取消或分享失败');
+                    },
+                    complete: function () {
+
+                    }
+                }
+            } else {
+                let randomIndex = parseInt(Math.random()*(WeChat.shareArray.length),10);
+                let shareObjct = WeChat.shareArray[randomIndex];
+                var uid = -1;
+                if (GameGlobal.user != undefined && GameGlobal.user.uid != undefined) {
+                    uid = GameGlobal.user.uid;
+                }
+
+                return {
+                    title: shareObjct.title,
+                    imageUrl: 'https://pub.dwstatic.com/wxgame/taptapstar/share/' + shareObjct.icon,
+                    query: 'uid=' + uid + '&shareType=' + ShareAction.INVITE_FRIEND,
+                    success: function (res) {
+                        console.log('onShareAppMessage 分享成功');
+                        // 分享成功上报
+                        SkillApi.report(2, (responseData) => {
+                            console.log('上报分享成功');
+                    },(error) => {
+
+                        });
+                    },
+                    fail: function (res) {
+                        // 转发失败
+                        console.log('onShareAppMessage 取消或分享失败');
+                    },
+                    complete: function () {
+                    },
+                };
+            }
+        });
+    }
+
+    static handelWxLifeCyle() {
+        wx.onShow(({scene, query, shareTicket }) => {
+            if (typeof wx.getUpdateManager === 'function') {
+                const updateManager = wx.getUpdateManager();
+    
+                updateManager.onCheckForUpdate(function (res) {
+                    // 请求完新版本信息的回调
+                    console.log('hasUpdate: ' + JSON.stringify(res.hasUpdate));
+                })
+    
+                updateManager.onUpdateReady(function () {
+                    // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
+                    updateManager.applyUpdate();
+                })
+    
+                updateManager.onUpdateFailed(function () {
+                    // 新的版本下载失败
+                })
+            }
+    
+                    //进入游戏的场景值
+            console.log('scene ' + scene + '==============================game ===============================');
+            if (scene == 1104) {
+                GameGlobal.isMineEnter = true;    //从我的小程序进入游戏
+            } else {
+                GameGlobal.isMineEnter = false;    //从我的小程序进入游戏
+            }
+            console.log('Global onShow' + JSON.stringify(query) + '======================================');
+            if (query != undefined && query != null) {
+                if (typeof query == "string") {
+                    query = JSON.parse(query);
+                }
+
+                GameGlobal.shareType = query.shareType;
+
+                if (GameGlobal.shareType == ShareAction.SHOW_GROUP_RANK) {
+                    if (shareTicket != undefined && shareTicket != null) {
+                        GameGlobal.shareTicket = shareTicket;
+                        GameEvent.fire(GameNotificationKey.GameShowGroupRank);//处理通过点击分享链接进入游戏的查看群排行榜
+                    } else {
+                        GameGlobal.shareTicket = '';
+                    }
+                }
+
+                if (query.uid != undefined && GameGlobal.shareType == ShareAction.INVITE_FRIEND) {
+                    GameGlobal.shareUid = query.uid;
+                    GameEvent.fire(GameNotificationKey.ProcessShareAction);//处理通过点击分享链接进入游戏的各种操作,加好友.....
+                }
+            }
+            //// 如果是从后台到前台
+            Platform.handelOnShow();
+        });
+    
+        wx.onHide(() => {
+            console.log('Global onHide ===================================');
+            GameGlobal.isOnHide = true;
+            if (GameModule.userInfo) {
+                GameModule.userInfo.doReport();
+            }
+    
+            // /// 关闭socket 如果socket是打开的状态 其它的状态就不管 打开之后直接重连 && Global._wxSocket.readyState == 'open'
+            // if (Global._wxSocket != undefined && Global._wxSocket != null ) {
+            //     Global._wxSocket.close();
+            // }
+            cc.sys.localStorage.setItem("onHideTimestamp", Date.parse(new Date()));
+            HomeApi.exitGame();
+            if (GameModule.audioMng) {
+                GameModule.audioMng.stopAll();
+            }
+        });
+    
+        wx.showShareMenu({
+            withShareTicket: true,
+            success: function (res) {
+    
+            },
+            fail: function (res) {
+    
+            },
+            complete: function (res) {
+    
+            }
+        });
+    
+        wx.onShareAppMessage(function (res) {
+            // 用户点击了“转发”按钮
+            if (res.from === 'button') {
+                // 来自页面内转发按钮
+            } else if (res.from === 'menu') {
+    
+            }
+    
+            if (GameGlobal.isCheck) {
+    
+                var uid = -1;
+                if (GameGlobal.user != undefined && GameGlobal.user.uid != undefined) {
+                    uid = GameGlobal.user.uid;
+                }
+    
+                return {
+                    title: '猜猜他是谁?',
+                    imageUrl: 'https://pub.dwstatic.com/wxgame/taptapstar/share/share_3.png',
+                    query: 'uid=' + uid + '&shareType=' + ShareAction.INVITE_FRIEND,
+                    success: function (res) {
+                        console.log('分享成功');
+                        // 分享成功上报
+                        SkillApi.report(2, (responseData) => {
+                            console.log('上报分享成功');
+                        },(error) => {
+    
+                        });
+                    },
+                    fail: function (res) {
+                        // 转发失败
+                        console.log('取消或分享失败');
+                    },
+                    complete: function () {
+    
+                    }
+                }
+            } else {
+                let randomIndex = parseInt(Math.random()*(WeChat.shareArray.length),10);
+                let shareObjct = WeChat.shareArray[randomIndex];
+                var uid = -1;
+                if (GameGlobal.user != undefined && GameGlobal.user.uid != undefined) {
+                    uid = GameGlobal.user.uid;
+                }
+    
+                return {
+                    title: shareObjct.title,
+                    imageUrl: 'https://pub.dwstatic.com/wxgame/taptapstar/share/' + shareObjct.icon,
+                    query: 'uid=' + uid + '&shareType=' + ShareAction.INVITE_FRIEND,
+                    success: function (res) {
+                        console.log('分享成功');
+                        // 分享成功上报
+                        SkillApi.report(2, (responseData) => {
+                            console.log('上报分享成功');
+                        },(error) => {
+    
+                        });
+                    },
+                    fail: function (res) {
+                        // 转发失败
+                        console.log('取消或分享失败');
+                    },
+                    complete: function () {
+                    },
+                };
+            }
+        });
+    }
+
+    static handelOnShow() {
+        if (GameGlobal.isOnHide) {
+            GameGlobal.isOnHide = false;
+
+            //客户端优先刷新技能使用情况
+            GameEvent.fire(GameNotificationKey.GameSkillOnHide);
+
+            /// 发通知更新跟定时器相关的数据
+            GameEvent.fire(GameNotificationKey.GameShowNotificationKey);
+
+            console.log('plat onshow ======= ' + GameGlobal.clickShare);
+            if (GameGlobal.clickShare) {
+                let onHideTime = cc.sys.localStorage.getItem('onHideTimestamp');
+
+                let curTime = new Date().getTime();
+                let difference = curTime - onHideTime;
+
+                var isShareOk = false;
+                //判断是否忽略分享的状态
+                if (GameGlobal.isIgnoreShareStatus) {
+                    isShareOk = true;
+                } else {
+                    //在分享界面停留了3秒当作分享成功,如果少于3秒即有10%概率当作成功
+                    if (difference > 3000) {
+                        isShareOk = true;
+                    } else {
+                        let randomOk = Math.random() <= 0.1 ? true : false;
+                        if (randomOk) {
+                            isShareOk = true;
+                        }
+                    }
+                }
+
+                GameEvent.fire(GameNotificationKey.ShowShareAction, GameGlobal.gameShareType, isShareOk);
+                GameGlobal.clickShare = false;
+                GameGlobal.gameShareType = WechatShareType.None;
+                GameGlobal.isIgnoreShareStatus = false;
+                if (isShareOk) {
+                    SkillApi.report(2, (responseData) => {
+
+                    },(error) => {
+
+                    });
+                } else {
+                    if (window.tt != undefined) {
+
+                    } else {
+                        AlertManager.showShareFailAlert();
+                    }
+                }
+            }
+        }
+    }
+
+    static handelOnHide() {
+        GameGlobal.isOnHide = true;
+        if (GameModule.userInfo) {
+            GameModule.userInfo.doReport();
+        }
+        /// 关闭socket
+        if (GameGlobal._wxSocket != undefined && GameGlobal._wxSocket != null) {
+            GameGlobal._wxSocket.close();
+        }
+        cc.sys.localStorage.setItem("onHideTimestamp", Date.parse(new Date()));
+        HomeApi.exitGame();
+        if (GameModule.audioMng) {
+            GameModule.audioMng.stopAll();
+        }
+    }
+    
+}
+
+module.exports = Platform;

+ 9 - 0
assets/scripts/common/Platform.js.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.5",
+  "uuid": "373e2910-8dd1-4dc4-9ec1-46e24b35ff4e",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 21 - 40
assets/scripts/common/UserInfo.js

@@ -56,7 +56,7 @@ cc.Class({
                 return this._gold;
             },
             set: function (value) {
-                cc.sys.localStorage.setItem(`localGold_${Global.user.uid}`, JSON.stringify(this._gold));
+                cc.sys.localStorage.setItem(`localGold_${GameGlobal.user.uid}`, JSON.stringify(this._gold));
 
                 this._gold = value;
                 this.grossIncomeRichText.string = `<outline color=#ffffff width=3><color=#009100>${TapTapTool.parseToString(this._gold)}</c></outline>`;
@@ -138,34 +138,16 @@ cc.Class({
             },
             set: function (value) {
                 this._buildingLevel = value;
-                // 把用户的总部等级上报给微信
-                DWTool.submitWechatScore(this._buildingLevel);
+                if (CC_WECHATGAME) {
+                    // 把用户的总部等级上报给微信
+                    DWTool.submitWechatScore(this._buildingLevel);
+                } else if (CC_QQPLAY) {
+                    // 把用户的总部等级上报给QQ玩一玩
+                    DWTool.submitQQScore(this._buildingLevel);
+                }
             }
         },
 
-        // //获得奖励的永久产出倍数
-        // perpetualMt: {
-        //     default: 1,
-        //     visible: false,
-        //     type: cc.Float
-        // },
-
-        // //获得奖励的永久点击倍数
-        // perpetualClickMt: {
-        //     default: 1,
-        //     visible: false,
-        //     type: cc.Float
-        // },
-
-        //入驻在建筑的明星加成倍数
-        // starMt: {
-        //     default: 1,
-        //     visible: false,
-        //     type: cc.Float
-        // },
-
-
-
         levelHomeItemFullCount: 0
     },
 
@@ -177,7 +159,7 @@ cc.Class({
         this._rateGold = {'n': 0, 'e': 0};
         this._gold = {'n': 0, 'e': 0};
         this.coinTap = {'n': 0, 'e': 0};
-        this.buildingLevel = Global.userData.buildingLevel;
+        this.buildingLevel = GameGlobal.userData.buildingLevel;
         // let objc = TapTapTool.goldStrToClass('3.265;29');
         // let str = TapTapTool.parseToString(objc);
         
@@ -264,13 +246,12 @@ cc.Class({
     doReport() {
         // return;
         let goldStr = this._gold.n + ";" + this._gold.e;
-        DWTool.reportInfo(this.seq, goldStr, this.stars, this.clickCount, this.recordModify, this.recordUnlockModify)
-            .then(() => {
+        DWTool.reportInfo(this.seq, goldStr, this.stars, this.clickCount, this.recordModify, this.recordUnlockModify, () => {
                 this._reportFailDuration = 0;
                 this.recordModify = [];
                 this.recordUnlockModify = [];
                 this.seq += 1;
-            }).catch(err => {
+            }, (err) => {
                 if (err.code === -4) {
                     this._reportFailDuration = 60;
                 }
@@ -282,9 +263,9 @@ cc.Class({
     reportFirst() {
 
         //如果为true则以网络数据为主不用覆盖
-        if (Global.localData) {
-            cc.sys.localStorage.removeItem(`localGold_${Global.user.uid}`);
-            cc.sys.localStorage.removeItem(`localRooms_${Global.user.uid}`);
+        if (GameGlobal.localData) {
+            cc.sys.localStorage.removeItem(`localGold_${GameGlobal.user.uid}`);
+            cc.sys.localStorage.removeItem(`localRooms_${GameGlobal.user.uid}`);
             return;
         }
 
@@ -297,7 +278,7 @@ cc.Class({
      * 初始化用户数据
      */
     initUserInfo() {
-        let userInfo = this.userInfo = Global.userData;
+        let userInfo = this.userInfo = GameGlobal.userData;
 
         if (userInfo != undefined) {
             let goldObj = this.compareGoldLocalData();
@@ -315,8 +296,8 @@ cc.Class({
     },
 
     compareGoldLocalData() {
-        let localGold = cc.sys.localStorage.getItem(`localGold_${Global.user.uid}`);
-        if (this.userInfo != undefined && localGold!= undefined && localGold && !Global.localData) {
+        let localGold = cc.sys.localStorage.getItem(`localGold_${GameGlobal.user.uid}`);
+        if (this.userInfo != undefined && localGold!= undefined && localGold && !GameGlobal.localData) {
             let goldObj = JSON.parse(localGold);
             if (goldObj != undefined) {
                 return goldObj;
@@ -329,11 +310,11 @@ cc.Class({
     },
 
     compareRoomsLocalData() {
-        let localData = cc.sys.localStorage.getItem(`localRooms_${Global.user.uid}`);
-        this.buildingData = Global.BuildingManager.networkRooms;
-        if (this.userInfo != undefined && localData!= undefined && localData && !Global.localData) {
+        let localData = cc.sys.localStorage.getItem(`localRooms_${GameGlobal.user.uid}`);
+        this.buildingData = GameGlobal.BuildingManager.networkRooms;
+        if (this.userInfo != undefined && localData!= undefined && localData && !GameGlobal.localData) {
             let userRooms = JSON.parse(localData);
-            if (Global.BuildingManager.networkRooms && Global.BuildingManager.networkRooms.length > 0 && userRooms.length > 0) {
+            if (GameGlobal.BuildingManager.networkRooms && GameGlobal.BuildingManager.networkRooms.length > 0 && userRooms.length > 0) {
                 userRooms.forEach(room => {
                     this.buildingData.forEach(n => {
                         if (room.roomId == n.roomId) {

+ 37 - 4
assets/scripts/common/commAlert.js

@@ -1,6 +1,8 @@
 const DWTool = require("../utils/DWTool");
 const GameModule = require("../utils/GameModule");
 const ArtistManager = require('../utils/ArtistManager');
+const {GameNotificationKey, WechatShareType} = require('../utils/GameEnum');
+const WeChat = require('../net/WeChat');
 
 
 cc.Class({
@@ -10,6 +12,10 @@ cc.Class({
         iconSprite: cc.Sprite,
         titleRichText: cc.RichText,
         descRichText: cc.RichText,
+
+        sureRichText: cc.RichText,
+        sureButton: cc.Button,
+        closeButton: cc.Node,
         /// 增加钻石的
         diamond: 0,
     },
@@ -24,8 +30,9 @@ cc.Class({
         } else {
             this.descRichText.string = `<color=#540904>${desc}</color>`;
         }
+        this.closeButton.active = true;
         this.titleRichText.string = `<b><color=#540904>${title}</c></b>`;
-
+        this.sureRichText.string = `<b><color=#ffffff>炫耀</c></b>`;
         this._isBuyStar = true;
     },
 
@@ -55,14 +62,40 @@ cc.Class({
 
     },
 
+    //// 只有购买明星才有关闭按钮
+    closeAction() {
+        GameEvent.fire('commAlert_BuyStar_hidden');
+        this.node.destroy();   
+    },
+
     sureAction() {
         if (this.diamond > 0) {
             GameModule.userInfo.diamond += this.diamond;
         }
         GameModule.audioMng.playClickButton();
-        let notificationStr = this._isBuyStar ? 'commAlert_BuyStar_hidden' : 'commAlert_hidden';
-        GameEvent.fire(notificationStr);
-        this.node.destroy();
+        if (this._isBuyStar) {
+            this.sureButton.interactable = false;
+            GameEvent.on(GameNotificationKey.ShowShareAction, this, (type, isOk) => {
+                if (type != WechatShareType.buyStar) { return; }
+                if (isOk) {
+                    GameEvent.fire('commAlert_BuyStar_hidden');
+                    this.node.destroy();
+                } else {
+                    this.sureButton.interactable = true;
+                }
+                GameEvent.off(GameNotificationKey.ShowShareAction, this);
+            });
+            WeChat.shareAction(WechatShareType.buyStar, () => {
+    
+            }, () => {
+                this.sureButton.interactable = true;
+                console.log('分享失败或取消');
+            });
+        } else {
+            GameEvent.fire('commAlert_hidden');
+            this.node.destroy();
+        }
+        
     }
     // update (dt) {},
 });

+ 1 - 0
assets/scripts/data/friendReward.js

@@ -0,0 +1 @@
+module.exports=[{"rewardId":1,"count":1,"time":900},{"rewardId":2,"count":2,"time":1800},{"rewardId":3,"count":3,"time":3600}]

+ 9 - 0
assets/scripts/data/friendReward.js.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.5",
+  "uuid": "80ea909a-445e-48d7-bba5-ac995a43b377",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

文件差異過大導致無法顯示
+ 0 - 0
assets/scripts/data/lottery.js


+ 1 - 1
assets/scripts/data/lotteryNew.js

@@ -1 +1 @@
-module.exports=[{"lotteryId":1,"name":"自动产出金币*600倍","rate1":15,"rate2":10,"rate3":5,"type":1,"opt":600,"picId":100001,"desc":"X600"},{"lotteryId":2,"name":"10个钻石","rate1":15,"rate2":10,"rate3":5,"type":2,"opt":10,"picId":100001,"desc":"10个"},{"lotteryId":3,"name":"自动产出金币*1800倍","rate1":10,"rate2":12,"rate3":10,"type":1,"opt":1800,"picId":100001,"desc":"X1800"},{"lotteryId":4,"name":"50个钻石","rate1":10,"rate2":12,"rate3":10,"type":2,"opt":50,"picId":100001,"desc":"50个"},{"lotteryId":5,"name":"自动产出金币*6800倍","rate1":6,"rate2":10,"rate3":15,"type":1,"opt":6800,"picId":100001,"desc":"X6800"},{"lotteryId":6,"name":"100个钻石","rate1":6,"rate2":10,"rate3":15,"type":2,"opt":100,"picId":100001,"desc":"100个"},{"lotteryId":7,"name":"明星","rate1":8,"rate2":10,"rate3":30,"type":3,"opt":0,"picId":100001,"desc":"明星X1"},{"lotteryId":8,"name":"红包","rate1":30,"rate2":26,"rate3":10,"type":4,"opt":0,"picId":100001,"desc":"最高88元<br/>现金红包"}]
+module.exports=[{"lotteryId":1,"name":"自动产出金币*600倍","rate1":30,"rate2":26,"rate3":10,"type":1,"opt":600,"picId":100001,"desc":"X600"},{"lotteryId":2,"name":"10个钻石","rate1":15,"rate2":10,"rate3":5,"type":2,"opt":10,"picId":100001,"desc":"10个"},{"lotteryId":3,"name":"自动产出金币*1800倍","rate1":10,"rate2":12,"rate3":10,"type":1,"opt":1800,"picId":100001,"desc":"X1800"},{"lotteryId":4,"name":"50个钻石","rate1":10,"rate2":12,"rate3":10,"type":2,"opt":50,"picId":100001,"desc":"50个"},{"lotteryId":5,"name":"自动产出金币*6800倍","rate1":6,"rate2":10,"rate3":15,"type":1,"opt":6800,"picId":100001,"desc":"X6800"},{"lotteryId":6,"name":"100个钻石","rate1":6,"rate2":10,"rate3":15,"type":2,"opt":100,"picId":100001,"desc":"100个"},{"lotteryId":7,"name":"明星","rate1":8,"rate2":10,"rate3":30,"type":3,"opt":0,"picId":100001,"desc":"明星X1"},{"lotteryId":8,"name":"自动产出金币*3800倍","rate1":15,"rate2":10,"rate3":5,"type":1,"opt":3800,"picId":100001,"desc":"X3800"}]

+ 16 - 9
assets/scripts/draw/DrawContent.js

@@ -5,7 +5,7 @@ const GameModule = require("../utils/GameModule");
 const WeChat = require('../net/WeChat');
 const {GameNotificationKey, WechatShareType, GameRedDot } = require('../utils/GameEnum');
 const TapTapTool = require("../utils/TapTapTool");
-// const ADVideo = require('../utils/ADVideo');
+var Promise = require('../lib/es6-promise').Promise;
 
 cc.Class({
     extends: cc.Component,
@@ -26,6 +26,8 @@ cc.Class({
         shareActionNode: cc.Node,
         drawMoneyLabel: cc.RichText,
 
+        drawRecordButton: cc.Button,
+
         /// 1视频广告  0普通分享
         _adState: 0
     },
@@ -33,8 +35,12 @@ cc.Class({
      // LIFE-CYCLE CALLBACKS:
 
     onLoad () {
+        ///头条隐藏提现
+        if (window.tt !== undefined) {
+            this.drawRecordButton.node.active = false;
+        }
         this.setUpUIIsShow(false);
-        if (Global.isCheck) {
+        if (GameGlobal.isCheck) {
             this.shareActionNode.active = false;
         }
         this.setupNotification();
@@ -46,7 +52,7 @@ cc.Class({
         }).catch(({code, msg}) => {
             console.log(code, msg);
         });
-        this.drawMoneyLabel.string = `<b><color=#fec808>¥${(Global.userData.hb / 100).toFixed(2)}</c></b>`;
+        this.drawMoneyLabel.string = `<b><color=#fec808>¥${(GameGlobal.userData.hb / 100).toFixed(2)}</c></b>`;
     },
 
     onDestroy() {
@@ -134,7 +140,8 @@ cc.Class({
         }
     },
     /// 网络请求
-    getDrawState() {
+    getDrawState(success, fail) {
+        
         return new Promise((resolve, reject) => {
             DrawApi.getLotteryInfo((respondData) => {
                 resolve(respondData);
@@ -168,7 +175,7 @@ cc.Class({
         }).catch(({code, msg}) => {
             console.log(code, msg);
             completion(false);
-            Global.commonAlert.showCommonErrorAlert(msg);
+            GameGlobal.commonAlert.showCommonErrorAlert(msg);
         });
     },
 
@@ -187,7 +194,7 @@ cc.Class({
     /// 看广告抽奖
     adNodeAction() {
         GameModule.audioMng.playClickButton();
-        if (CC_WECHATGAME) {
+        if (CC_WECHATGAME || CC_QQPLAY) {
             if (this._adState === 0) {
                 GameEvent.on(GameNotificationKey.ShowShareAction, this, (type, isOk) => {
                     if (type != WechatShareType.DrawLottery) { return; }
@@ -206,7 +213,7 @@ cc.Class({
                     console.log('分享失败或取消');
                 });
             } else {
-                Global._adVideo.showVideo('draw');
+                GameGlobal._adVideo.showVideo('draw');
             }
         }
     },
@@ -289,9 +296,9 @@ cc.Class({
             return;
         }
          //// 说明有广告
-         if (Global._adVideoState == 0) {
+         if (GameGlobal._adVideoState == 0) {
             this._adState = 1;
-        } else if (Global._adVideoState === 1) {
+        } else if (GameGlobal._adVideoState === 1) {
             this._adState = 0;
         }
         /// 如果时间到了 那么更新显示的UI

+ 1 - 1
assets/scripts/draw/DrawRedRecord.js

@@ -17,7 +17,7 @@ cc.Class({
 
     onLoad () {
         /// 获取红包记录数据
-        this.moneyTileRichText.string = `<b><color=#613f16>余额:¥${(Global.userData.hb / 100).toFixed(2)}</c></b>`;
+        this.moneyTileRichText.string = `<b><color=#613f16>余额:¥${(GameGlobal.userData.hb / 100).toFixed(2)}</c></b>`;
         
         DrawApi.getDrawHbs((respondData) => {
             let reds = respondData.list;

+ 2 - 2
assets/scripts/draw/DrawScroll.js

@@ -63,8 +63,8 @@ cc.Class({
                 this.scrollBg.node.width = 408;
             }
 
-            this.node.height = Global.winSize.height;
-            if (Global.winSize.height <= 1000) {
+            this.node.height = GameGlobal.winSize.height;
+            if (GameGlobal.winSize.height <= 1000) {
                 this.scrollNode.height = 800;
                 this.scrollBg.node.height = 967;
             } else {

+ 8 - 1
assets/scripts/draw/DrawStarSuccss.js

@@ -2,6 +2,7 @@ const DrawApi  = require("../net/DrawApi");
 const {GameNotificationKey, WechatShareType} = require('../utils/GameEnum');
 const GameModule = require("../utils/GameModule");
 const DWTool = require("../utils/DWTool");
+var Promise = require('../lib/es6-promise').Promise;
 const lottery = require('../data/lottery');
 const TapTapTool = require("../utils/TapTapTool");
 const WeChat = require('../net/WeChat');
@@ -46,6 +47,7 @@ cc.Class({
         let nameString = '获得';
         let desc = '';
         let starId = -1;
+        this.subTitleLabel.string = '现在不需要';
         /// 抽奖获得金币数
         if (drawSuccessData.type == 1) {   
             let rate = TapTapTool.multiple(GameModule.skill.multiple, GameModule.userInfo.perpetualMt);
@@ -64,7 +66,7 @@ cc.Class({
             nameString += `钻石 ${drawSuccessData.opt}`;
             /// 如果是红包
         } else if (drawSuccessData.type == 4) {
-            Global.userData.hb += drawSuccessData.hb;
+            GameGlobal.userData.hb += drawSuccessData.hb;
             nameString += ` ${(drawSuccessData.hb / 100).toFixed(2)}元`;
             desc += '红包满十元可提现噢~';
             /// 如果抽中的是明星
@@ -170,6 +172,11 @@ cc.Class({
         }
      },
 
+     closeAction()  {
+        this.node.destroy(); 
+        GameEvent.fire("draw_done_action");
+     },
+
     scrollAgainAction() {
         GameModule.audioMng.playClickButton();
         this.againButton.interactable = false;

+ 1 - 1
assets/scripts/friend/GameFriendCtrl.js

@@ -31,7 +31,7 @@ cc.Class({
     onLoad () {
         this.isFirst = true;
 
-        if (Global.winSize.height <= 1000) {
+        if (GameGlobal.winSize.height <= 1000) {
             this.content.height = 800;
         }
 

+ 84 - 67
assets/scripts/game/Game.js

@@ -9,11 +9,11 @@ const GameRedDot = require('../utils/GameEnum').GameRedDot;
 const TapTapTool = require("../utils/TapTapTool");
 const ADVideo = require('../utils/ADVideo');
 
-import DwSdk from "../duowansdk/DwSdk";
-let debug = false;
-var objSdk = new DwSdk("点点大明星", debug);
-// 注册sdk的update事件
-cc.director.on(cc.Director.EVENT_AFTER_DRAW, objSdk.update);
+// import DwSdk from "../duowansdk/DwSdk";
+// let debug = false;
+// var objSdk = new DwSdk("点点大明星", debug);
+// // 注册sdk的update事件
+// cc.director.on(cc.Director.EVENT_AFTER_DRAW, objSdk.update);
 
 cc.Class({
     extends: cc.Component,
@@ -39,6 +39,8 @@ cc.Class({
 
         // drawNode: cc.Node,
 
+        inviteNode: cc.Node,
+
         messageListNode: cc.Node,
 
         bottomTabbar: cc.Node,
@@ -50,34 +52,42 @@ cc.Class({
     // LIFE-CYCLE CALLBACKS:
 
     onLoad () {
-        this.isShowBar = false;
+        GameGlobal.isShowBar = false;
         this._isTimer = false;
         this.winSize = cc.view.getVisibleSize();
-        Global.winSize = this.winSize;
+        GameGlobal.winSize = this.winSize;
 
         // 创建一个事件监听实例, 用来实现跨节点监听事件
         GameEvent.init();
         this._setEventListener();
         /// 初始化广告W6Lcux7ArPGCBpnWuAyEVK48PrrYX7xWBA
-        if (CC_WECHATGAME) {
-            Global._adVideo = new ADVideo();
-            Global._adVideo.wxCreateADVideo();
+
+        if (window.tt != undefined) {
+            GameGlobal._adVideoState = 1;
+        } else if (CC_WECHATGAME) {
+            GameGlobal._adVideo = new ADVideo();
+            GameGlobal._adVideo.wxCreateADVideo();
         }
 
         this._initSocketMng();
         this._getInformation();
 
-        if (window.wx != undefined) {
-            Global.wechatScoreKey = Global.debug ? 'buildingLevel_test' : 'buildingLevel';
+        if (window.tt != undefined) {
+
+        } else if (CC_WECHATGAME) {
+            GameGlobal.wechatScoreKey = GameGlobal.debug ? 'buildingLevel_test' : 'buildingLevel';
             window.wx.postMessage({
                 messageType: 5,
-                key1: Global.debug
+                key1: GameGlobal.debug
             });
-
             window.wx.postMessage({
                 messageType: 6,
-                winSize: Global.winSize
+                winSize: GameGlobal.winSize
             });
+        } else if (CC_QQPLAY) {
+            if (window.GameStatusInfo) {
+                GameStatusInfo.startMs = ((new Date()).getTime()).toString();
+            }
         }
 
         // 引导界面
@@ -92,7 +102,7 @@ cc.Class({
         //建筑展示
         let levelHome = cc.instantiate(this.levelHomePrefab);
         levelHome = levelHome.getComponent('LevelHome');
-        levelHome.init(Global.user.uid);
+        levelHome.init(GameGlobal.user.uid);
         this.levelHome = levelHome;
         this.levelHome.node.active = true;
 
@@ -105,22 +115,26 @@ cc.Class({
         }
 
         this.additionTipsNode = this.additionTipsNode.getComponent('AdditionTips');
-
-        if (Global.shareType == ShareAction.SHOW_GROUP_RANK && Global.shareTicket.length > 0) {
+        if (GameGlobal.shareType == ShareAction.SHOW_GROUP_RANK && GameGlobal.shareTicket.length > 0) {
             if (this.homeGuide.guideState.state1.pass) {
                 GameEvent.fire(GameNotificationKey.GameShowGroupRank);
             }
         }
 
-        if (Global.messageNotice !== undefined && Global.messageNotice.length > 0) {
-            if (Global.noticeDiamond !== undefined && Global.noticeDiamond > 0) {
-                let showText = `钻石 x ${Global.noticeDiamond}`;
+        // if (GameGlobal.isCheck) {
+        //     this.storeNode.active = false;
+        //     this.drawNode.active = false;
+        // }
+
+        if (GameGlobal.messageNotice !== undefined && GameGlobal.messageNotice.length > 0) {
+            AlertManager.showNoticeAlert(GameGlobal.messageNotice);
+            if (GameGlobal.noticeDiamond !== undefined && GameGlobal.noticeDiamond > 0) {
+                let showText = `钻石 x ${GameGlobal.noticeDiamond}`;
                 AlertManager.showActGiftAlert('diamond', showText);
             }
-            AlertManager.showNoticeAlert(Global.messageNotice);
         }
 
-        if (Global.shareUid != -1) {
+        if (GameGlobal.shareUid != -1) {
             this.processShareAction();
         }
     },
@@ -137,7 +151,6 @@ cc.Class({
         // GameModule.homeGuide.getComponent('HomeGuide').handleState('state31');
         GameModule.homeGuide.getComponent('HomeGuide').handleGuideStateNext('state29', 'state31');
         GameModule.homeGuide.on('Fire_state29', this.finishState29, this);
-        GameModule.homeGuide.on('Fire_state31', this.handleQuestPopup, this);
 
         if (this.homeGuide.guideState.state7.pass || this.homeGuide.guideState.state11.pass) {
             GameModule.homeGuide.getComponent('HomeGuide').handleState('state13');
@@ -166,8 +179,8 @@ cc.Class({
         //// 重连socket
         GameEvent.on(GameNotificationKey.GameShowNotificationKey, this, () => {
             // debugger;
-            Global._wxSocket._reconnectTimes = 0;
-            Global._wxSocket.connect();
+            GameGlobal._wxSocket._reconnectTimes = 0;
+            GameGlobal._wxSocket.connect();
             // if (Global._wxSocket.readyState != 'open') {
             // }
             // if (Global._wxSocket.readyState == 'open') {
@@ -186,19 +199,28 @@ cc.Class({
     _initSocketMng() {
         let testUrl = 'wss://test-message-taptap.duowan.com/connect';
         let pUrl = 'wss://message-taptap.duowan.com/connect';
-        // let testUrl = 'wss://new-message-taptap.duowan.com/connect';
-        let socketUrl = Global.debug ? testUrl : pUrl;
+
+        let qqUrl = 'wss://qq-message-taptap.duowan.com/connect';
+        var socketUrl = GameGlobal.debug ? testUrl : pUrl;
+
+        let ttUrl = 'wss://headlines-message-taptap.duowan.com/connect';
+
         // let socketUrl = 'ws://172.16.15.196:9099/connect';
+        if (CC_QQPLAY) {
+            socketUrl = GameGlobal.debug ? testUrl : qqUrl;
+        } else if (window.tt != undefined) {
+            socketUrl = GameGlobal.debug ? testUrl : ttUrl;
+        }
 
         let ws = new WsManager(socketUrl, {
             binaryType: 'arraybuffer',
             autoConnect: true,          // 自动连接
             reconnection: true,         // 断开自动重连
             reconnectionDelay: 3000,    // 重连间隔时间,单位毫秒
-            reconnectionAttempts: 5     // 最大重连尝试次数,默认为Infinity
+            // reconnectionAttempts: 5     // 最大重连尝试次数,默认为Infinity
         });
 
-        Global._wxSocket = ws;
+        GameGlobal._wxSocket = ws;
 
         ws.on('open', (res) => {
             console.log('socket 打开');
@@ -214,7 +236,7 @@ cc.Class({
             if (data.type != undefined) {   
                 // Global._redTypes = data.type;
                 /// 商品购买的通知 第一次的socket不管的啦因为接口已经处理了
-                if (data.type.indexOf(1) != -1 && data.userShops.length > 0 && Global._socketCount > 1) {
+                if (data.type.indexOf(1) != -1 && data.userShops.length > 0 && GameGlobal._socketCount > 1) {
                     let userShops = data.userShops;
                     for (let i = 0; i < data.userShops.length; ++ i) {
                         let shopData = userShops[i];
@@ -246,10 +268,10 @@ cc.Class({
                 for (let i = 0; i < data.type.length; ++ i) {
                     /// 如果包含它就什么都不管
                     let type = data.type[i];
-                    if (Global._redTypes.indexOf(type) != -1) {
+                    if (GameGlobal._redTypes.indexOf(type) != -1) {
                         isContain = true;
                     } else {
-                        Global._redTypes.push(type);
+                        GameGlobal._redTypes.push(type);
                         isContain = false;
                     }
                 }
@@ -277,10 +299,10 @@ cc.Class({
     /// 需要更新的时间包括
     handelSocketShop(shopData) {
         /// 更新信息流时间
-        let informationsLength = Global._timeInformations.length;
+        let informationsLength = GameGlobal._timeInformations.length;
         if (informationsLength > 0) {
             for(let i = 0; i < informationsLength; ++i) {
-                let information = Global._timeInformations[i];
+                let information = GameGlobal._timeInformations[i];
                 /// 如果是商品 并且已经拥有过的话
                 if (information.type == 1 && information.sId == shopData.shopId) {
                     information.cdTime = shopData.cdTime;
@@ -294,48 +316,42 @@ cc.Class({
 
     /// 获取信息流
     _getInformation() {
-        Global._redTypes = [];
-        Global._timeInformations = [];
-        Global._fixInformations = [];
-        Global._gold10 = {'n': 0, 'e': 0};
-        Global._buyStarGold = {'n': 0, 'e': 0};
-        this.getInformation().then((respondData) => {
+        GameGlobal._redTypes = [];
+        GameGlobal._timeInformations = [];
+        GameGlobal._fixInformations = [];
+        GameGlobal._gold10 = {'n': 0, 'e': 0};
+        GameGlobal._buyStarGold = {'n': 0, 'e': 0};
+        this.getInformation((respondData) => {
             console.log(respondData);
-            Global._gold10 = respondData.gold10;
-            Global._buyStarGold = respondData.buyStarGold;
-            Global._isSkillReset = respondData.isSkillReset;
-            Global._upBuildingInfo = respondData.upBuildingInfo;
-            Global._upRoomInfo = respondData.upRoomInfo;
-            Global._buyStarInfo = respondData.buyStarInfo;
+            GameGlobal._gold10 = respondData.gold10;
+            GameGlobal._buyStarGold = respondData.buyStarGold;
+            GameGlobal._isSkillReset = respondData.isSkillReset;
+            GameGlobal._upBuildingInfo = respondData.upBuildingInfo;
+            GameGlobal._upRoomInfo = respondData.upRoomInfo;
+            GameGlobal._buyStarInfo = respondData.buyStarInfo;
             if (respondData.types !== undefined) {
-                Global._redTypes = respondData.types;
+                GameGlobal._redTypes = respondData.types;
                 /// 这个是直接返回的 没有推送 七天登录的红点
             }
-            if (TapTapTool.compare(Global.userData.goldObj, respondData.buyStarGold)) {
-                Global._redTypes.push(GameRedDot.star);
+            if (TapTapTool.compare(GameGlobal.userData.goldObj, respondData.buyStarGold)) {
+                GameGlobal._redTypes.push(GameRedDot.star);
             }
             GameEvent.fire(GameNotificationKey.GameRedDotUpdate);
             // this.handelShowRedDot();
             //// 更新信息流数据
             if (respondData.informations !== undefined) {
-                Global._timeInformations = respondData.informations;
-                GameEvent.fire(GameNotificationKey.GameUpdateMessageList, Global._timeInformations.length);
+                GameGlobal._timeInformations = respondData.informations;
+                GameEvent.fire(GameNotificationKey.GameUpdateMessageList, GameGlobal._timeInformations.length);
             }
-        }).catch(({code, msg}) => {
+        }, ({code, msg}) => {
             console.log(code, msg);
         });
     },
 
     /// 网络请求
-    getInformation() {
-        return new Promise((resolve, reject) => {
+    getInformation(success, fail) {
             // 获取目标用户的建筑
-            HomeApi.getInformation((respondData) => {
-                resolve(respondData);
-            }, (code, msg) => {
-                reject({code, msg});
-            });
-        })
+        HomeApi.getInformation(success, fail);
     },
 
     onDestroy() {
@@ -363,13 +379,13 @@ cc.Class({
             return;
         }
 
-        this.isShowBar = true;
+        GameGlobal.isShowBar = true;
         let action = cc.moveBy(0.3, cc.v2(-this.sidebar.width, 0));
         this.sidebar.runAction(action);
         this.sliderNode.getComponent('HomeSideCtrl').handelShowRedDot();
 
         //是否已经领取过神秘礼物
-        if (!Global.appletAward && CC_WECHATGAME) {
+        if (!GameGlobal.appletAward && CC_WECHATGAME && window.tt == undefined) {
             this.luckyBagButton.node.active = true;
             var offset = 0;
             if (this.winSize.height >= this.XHeight) {
@@ -387,10 +403,10 @@ cc.Class({
     },
 
     finishState29() {
-        if (this.isShowBar) {
+        if (GameGlobal.isShowBar) {
             return;
         }
-        this.isShowBar = true;
+        GameGlobal.isShowBar = true;
         let action = cc.moveBy(0.3, cc.v2(-this.sidebar.width, 0));
         this.sidebar.runAction(action);
         this.sliderNode.getComponent('HomeSideCtrl').handelShowRedDot();
@@ -399,8 +415,8 @@ cc.Class({
     //处理邀请好友
     processShareAction() {
         //邀请好友和好友助力的分享链接进入
-        if (Global.shareType == ShareAction.INVITE_FRIEND) {
-            let shareUid = Global.shareUid;
+        if (GameGlobal.shareType == ShareAction.INVITE_FRIEND) {
+            let shareUid = GameGlobal.shareUid;
             InviteApi.postInviteFriend(shareUid, () => {
 
             });
@@ -425,5 +441,6 @@ cc.Class({
             this.additionTipsNode.show(text, type);
         }
     },
+
     // update (dt) {},
 });

+ 8 - 7
assets/scripts/game/GameShop.js

@@ -5,6 +5,7 @@ const StoreApi = require('../net/StoreApi');
 const GameNotificationKey = require('../utils/GameEnum').GameNotificationKey;
 const TapTapTool = require("../utils/TapTapTool");
 const GameModule = require("../utils/GameModule");
+var Promise = require('../lib/es6-promise').Promise;
 
 cc.Class({
     extends: cc.Component,
@@ -24,7 +25,7 @@ cc.Class({
     },
 
     handelUserShops() {
-        let shops = Global.shops;
+        let shops = GameGlobal.shops;
         this._mtArr = [];
         this._useTimeArr = [];
         this._diamondShopCoinTime = 0;
@@ -48,11 +49,11 @@ cc.Class({
                     GameModule.userInfo.refreshSecondText();
                 }
                 let objct = {'cdTime': 15 * 60 * 1000, 'infoDesc': infoDesc, 'icon': 900004, 'sId': 12, 'type': 1};
-                Global._timeInformations.push(objct);
+                GameGlobal._timeInformations.push(objct);
                 GameEvent.fire(GameNotificationKey.GameUpdateMessageList, 1, true);
             } else {
-                for(let i = 0; i < Global._timeInformations.length; ++i) {
-                    let information = Global._timeInformations[i];
+                for(let i = 0; i < GameGlobal._timeInformations.length; ++i) {
+                    let information = GameGlobal._timeInformations[i];
                     if (information.type == 1 && information.sId == 12) {
                         information.cdTime += 15 * 60 * 1000;
                         break;
@@ -147,7 +148,7 @@ cc.Class({
 
         //// 如果是长按点击的商品
         if (shop.shopId == 4) {
-            Global.isLongPressClick = true;
+            GameGlobal.isLongPressClick = true;
         }
     },
 
@@ -157,12 +158,12 @@ cc.Class({
         let desc = shopData.infoDesc + '';
         if (shopData.minuteTime > 0 && shopData.cdTime > 0) {
             let shopObjc = {'cdTime': shopData.cdTime, 'infoDesc': desc, 'icon': shopData.icon, 'sId': shopData.shopId, 'type': 1};
-            Global._timeInformations.push(shopObjc);
+            GameGlobal._timeInformations.push(shopObjc);
             GameEvent.fire(GameNotificationKey.GameUpdateMessageList, 1, true);
             /// 说明不是需要时间cd的 
         } else {
             let shopObjc = {'cdTime': -6 * 1000, 'infoDesc': desc, 'icon': shopData.icon, 'sId': shopData.shopId, 'type': 1};
-            Global._fixInformations.push(shopObjc);
+            GameGlobal._fixInformations.push(shopObjc);
             GameEvent.fire(GameNotificationKey.GameUpdateMessageList, 1);
         }
     },

+ 16 - 16
assets/scripts/game/GameSkill.js

@@ -12,7 +12,7 @@ cc.Class({
     onLoad () {
         GameModule.skill = this;
         this.multiple = {'n': 1, 'e': 0};
-        this.skills = Global.skills;
+        this.skills = GameGlobal.skills;
 
         //判断是否正在使用技能3
         this.isUsingSkill3 = false;
@@ -173,18 +173,18 @@ cc.Class({
             // console.log('skill 1 ' + this.skill1Info.tdStarTime);
         }
 
-        if (Global.friendRewardCdTime > 0) {
+        if (GameGlobal.friendRewardCdTime > 0) {
             if (onHideTime) {
                 if (difference > 0) {
-                    let isPast = difference > Global.friendRewardCdTime;  //大于的话就是已超过使用技能的时间戳
+                    let isPast = difference > GameGlobal.friendRewardCdTime;  //大于的话就是已超过使用技能的时间戳
                     if (isPast) {
-                        Global.friendRewardCdTime = 0;
+                        GameGlobal.friendRewardCdTime = 0;
                         this.updateAutoGetGold();
                     } else {
-                        Global.friendRewardCdTime = Global.friendRewardCdTime - difference;
+                        GameGlobal.friendRewardCdTime = GameGlobal.friendRewardCdTime - difference;
                     }
                 } else {
-                    Global.friendRewardCdTime = 0;
+                    GameGlobal.friendRewardCdTime = 0;
                     this.updateAutoGetGold();
                 }
             }
@@ -284,10 +284,10 @@ cc.Class({
         }
 
         //好友助力技能使用中
-        if (Global.friendRewardCdTime > 0) {
-            Global.friendRewardCdTime -= (1 * 1000 );
-            if (Global.friendRewardCdTime <= 0) {
-                Global.friendRewardCdTime = 0;
+        if (GameGlobal.friendRewardCdTime > 0) {
+            GameGlobal.friendRewardCdTime -= (1 * 1000 );
+            if (GameGlobal.friendRewardCdTime <= 0) {
+                GameGlobal.friendRewardCdTime = 0;
                 this.updateAutoGetGold();
             }
         }
@@ -313,7 +313,7 @@ cc.Class({
             click += skill4.cc / skill4.iv;
         }
 
-        if (Global.friendRewardCdTime > 0) {
+        if (GameGlobal.friendRewardCdTime > 0) {
             click += 10;
         }
 
@@ -351,7 +351,7 @@ cc.Class({
             return null;
         }
 
-        let skillInfo = Global.BuildingManager.getSkillLevelInfo(this.skill1Info.skillId, this.skill1Info.skillLevel);
+        let skillInfo = GameGlobal.BuildingManager.getSkillLevelInfo(this.skill1Info.skillId, this.skill1Info.skillLevel);
         return skillInfo;
     },
 
@@ -365,7 +365,7 @@ cc.Class({
             return null;
         }
         
-        let skillInfo = Global.BuildingManager.getSkillLevelInfo(this.skill3Info.skillId, this.skill3Info.skillLevel);
+        let skillInfo = GameGlobal.BuildingManager.getSkillLevelInfo(this.skill3Info.skillId, this.skill3Info.skillLevel);
         this.multiple = {'n': skillInfo.mt, 'e': 0};
         GameModule.userInfo.multiple = this.multiple;
 
@@ -379,7 +379,7 @@ cc.Class({
             return null;
         }
 
-        let skillInfo = Global.BuildingManager.getSkillLevelInfo(this.skill4Info.skillId, this.skill4Info.skillLevel);
+        let skillInfo = GameGlobal.BuildingManager.getSkillLevelInfo(this.skill4Info.skillId, this.skill4Info.skillLevel);
         return skillInfo;
     },
 
@@ -389,7 +389,7 @@ cc.Class({
             return 1;
         }
 
-        let skillInfo = Global.BuildingManager.getSkillLevelInfo(this.skill5Info.skillId, this.skill5Info.skillLevel);
+        let skillInfo = GameGlobal.BuildingManager.getSkillLevelInfo(this.skill5Info.skillId, this.skill5Info.skillLevel);
         let mt = skillInfo.mt;
         return mt;
     },
@@ -399,7 +399,7 @@ cc.Class({
         let skillInfo = this.skills.find(n => {
             return n.skillId == 6;
         });
-        skillInfo = Global.BuildingManager.getSkillLevelInfo(skillInfo.skillId, skillInfo.skillLevel);
+        skillInfo = GameGlobal.BuildingManager.getSkillLevelInfo(skillInfo.skillId, skillInfo.skillLevel);
         let rcd = (1 - skillInfo.rcd);
         return rcd;
     },

+ 5 - 5
assets/scripts/game/GameTabbar.js

@@ -64,17 +64,17 @@ cc.Class({
     },
 
     updateRedDot () {
-        if (Global._gold10 === undefined) {
+        if (GameGlobal._gold10 === undefined) {
             return;
         }
-        if (TapTapTool.compare(GameModule.userInfo.gold, Global._gold10)) {
+        if (TapTapTool.compare(GameModule.userInfo.gold, GameGlobal._gold10)) {
             this.skillRedNode.active = true;
             /// 如果是小于 说明金币不满足
         } else if (this.skillRedNode.active == true) {
             this.skillRedNode.active = false;
         }
 
-        if (TapTapTool.compare(GameModule.userInfo.gold, Global._buyStarGold)) {
+        if (TapTapTool.compare(GameModule.userInfo.gold, GameGlobal._buyStarGold)) {
             this.starRedNode.active = true;
         } else {
             this.starRedNode.active = false;
@@ -86,12 +86,12 @@ cc.Class({
     },
 
     handelHomeTabbarShowRedDot() {
-        if (Global._redTypes == null || Global._redTypes == undefined || Global._redTypes.length == 0) {
+        if (GameGlobal._redTypes == null || GameGlobal._redTypes == undefined || GameGlobal._redTypes.length == 0) {
             this.skillRedNode.active = false;
             this.starRedNode.active = false;
             return;
         }
-        let redTypes = Global._redTypes;
+        let redTypes = GameGlobal._redTypes;
         
         // this.skillRedNode.active = redTypes.indexOf(GameRedDot.skill) != -1;
         let starActive = redTypes.indexOf(GameRedDot.star) != -1

+ 11 - 12
assets/scripts/game/HomeGuide.js

@@ -342,7 +342,7 @@ cc.Class({
 
         this.setupAllFinished();
 
-        if (Global.debug) {
+        if (GameGlobal.debug) {
             for(let i = 0; i < 35; i++) {
                 let state = `state${i}`;
                 if (this.guideState[state] != undefined) {
@@ -439,11 +439,10 @@ cc.Class({
         // 判断满足以下条件时为已完成购买明星前的教程:
         // 1. 总部大楼大于25级
         // 2. 已拥有1个明星
+        let unLockStatus1 = GameGlobal.userData.buildingLevel >= 25;
+        let unLockStatus2 = GameGlobal.userData.buyStarCount > 0;
         // 3. 是否已签到过
-        let unLockStatus1 = Global.userData.buildingLevel >= 25;
-        let unLockStatus2 = Global.userData.buyStarCount > 0;
-        let unLockStatus3 = Global.signCount > 0;
-
+        let unLockStatus3 = GameGlobal.signCount > 0;
         if (unLockStatus1 && unLockStatus2) {
             if (unLockStatus3) {
                 for(let i = 1; i < 35; i++) {
@@ -810,7 +809,7 @@ cc.Class({
         if (this.curState == 'state7') {
             this.taskCoditionLabel.string = `${TapTapTool.parseToString(GameModule.userInfo.gold)}/${target.taskCodition}`;
         } else if (this.curState == 'state21') {
-            let level = Global.BuildingManager.getRoomLevel(1);
+            let level = GameGlobal.BuildingManager.getRoomLevel(1);
             this.taskCoditionLabel.string = `(${level}/${target.taskCodition})`;
         } else if (this.curState == 'state13' || this.curState == 'state15') {
             let currentLevel = GameModule.userInfo.buildingLevel;
@@ -1334,7 +1333,7 @@ cc.Class({
         if (this.curState == 'state33') {
             this.node.emit(`Fire_${this.curState}`);
             this.handlePass(this.curState);
-            if (Global.isSignAward == false) {
+            if (GameGlobal.isSignAward == false) {
                 this.handleState('state34');
             }
         }
@@ -1440,10 +1439,10 @@ cc.Class({
     guideTask21() {
         if (this.curState == 'state21') {
             let target = this.guideState[this.curState];
-            let level = Global.BuildingManager.getRoomLevel(1);
+            let level = GameGlobal.BuildingManager.getRoomLevel(1);
             this.taskCoditionLabel.string = `(${level}/${target.taskCodition})`;
 
-            let data = Global.BuildingManager.getBuildingInfo(1, level);
+            let data = GameGlobal.BuildingManager.getBuildingInfo(1, level);
 
             // 判断是否已经解锁
             if (data.isUnlocked || level > 0) {
@@ -1497,7 +1496,7 @@ cc.Class({
         let maxLevel = (25 - level) > 5 ? (level + 5) : 25;
         let buildingGold = {'n': 0, 'e': 0};
         for (let i = level; i <= maxLevel; ++ i) {
-            let data = Global.BuildingManager.getBuildingInfo(1, level);
+            let data = GameGlobal.BuildingManager.getBuildingInfo(1, level);
             buildingGold = TapTapTool.add(buildingGold, data.nextUpGold);
         }
         return buildingGold;
@@ -1506,10 +1505,10 @@ cc.Class({
     guideTask24() {
         if (this.curState == 'state24') {
             let target = this.guideState[this.curState];
-            let level = Global.BuildingManager.getRoomLevel(1);
+            let level = GameGlobal.BuildingManager.getRoomLevel(1);
             this.taskCoditionLabel.string = `(${level}/${target.taskCodition})`;
 
-            let data = Global.BuildingManager.getBuildingInfo(1, level);
+            let data = GameGlobal.BuildingManager.getBuildingInfo(1, level);
 
             // 判断是否已经解锁
             if (data.isUnlocked || level > 0) {

+ 11 - 4
assets/scripts/game/HomeMoreCtrl.js

@@ -1,4 +1,5 @@
 const AlertManager = require('../utils/AlertManager');
+const GameModule = require("../utils/GameModule");
 
 cc.Class({
     extends: cc.Component,
@@ -13,6 +14,7 @@ cc.Class({
     onLoad () {
         let self = this;
         this.handleShowMore = _.throttle(() => {
+            GameModule.audioMng.playClickButton();
             if (self.showNode.active) {
                 self.showNode.active = false;
                 self.blackMaskNode.active = false;
@@ -24,13 +26,13 @@ cc.Class({
 
         this.handleShowSetting = _.debounce((event) => {
             AlertManager.showGameSetting();
-            self.showOrHideMore();
-        }, 1000, true)
+            self.hideMore();
+        }, 1000, true);
 
         this.handleShowFriend = _.debounce((event) => {
             AlertManager.showGameFriend();
-            self.showOrHideMore();
-        }, 1000, true)
+            self.hideMore();
+        }, 1000, true);
 
         GameEvent.on('show_home_more', this, () => {
             this.node.active = true;
@@ -50,6 +52,11 @@ cc.Class({
 
     },
 
+    hideMore() {
+        this.showNode.active = false;
+        this.blackMaskNode.active = false;
+    },
+
     showOrHideMore() {
         this.handleShowMore();
     },

+ 107 - 9
assets/scripts/game/HomeSideCtrl.js

@@ -2,6 +2,7 @@ const AlertManager = require('../utils/AlertManager');
 const GameRedDot = require('../utils/GameEnum').GameRedDot;
 const GameNotificationKey = require('../utils/GameEnum').GameNotificationKey;
 const DWTool = require('../utils/DWTool');
+const GameModule = require("../utils/GameModule");
 
 cc.Class({
     extends: cc.Component,
@@ -32,9 +33,22 @@ cc.Class({
         //7天登录按钮节点
         loginRewardNode: cc.Node,
 
+        //对应按钮
+        //商城
         storeNode: cc.Node,
-
+        //抽奖
         drawNode: cc.Node,
+        //自动点击
+        friendRewardNode: cc.Node,
+        //邀请
+        inviteNode: cc.Node,
+
+        //// 以下都是头条录屏功能需要的节点
+        recordButton: cc.Button,
+        startRecordNode: cc.Node,
+        /// 正在录屏
+        recordingNode: cc.Node,
+        recordTimeRichText: cc.RichText,
     },
 
     // LIFE-CYCLE CALLBACKS:
@@ -46,17 +60,34 @@ cc.Class({
         }, 500, true);
 
         //判断正在审核中的版本隐藏商城、抽奖按钮
-        if (Global.isCheck) {
+        if (GameGlobal.isCheck) {
             this.storeNode.active = false;
             this.drawNode.active = false;
         }
 
+        /// 如果是头条那么隐藏商城
+        if (window.tt !== undefined) {
+            this.storeNode.active = false;
+            this.friendRewardNode.active = false;
+            this.inviteNode.active = false;
+            this._starRecord = false;
+            this._recordTime = 0;
+        } else {
+            this.recordButton.node.active = false;
+        }
+
         //判断正在审核中的版本隐藏7天登录按钮或已完成7天登录任务
-        if (Global.isCheck || (Global.userLoginReward.isLoginReward && Global.userLoginReward.rewardCount == 7)) {
+        if (GameGlobal.isCheck || (GameGlobal.userLoginReward.isLoginReward && GameGlobal.userLoginReward.rewardCount == 7)) {
             this.loginRewardNode.active = false;
             this.moreContentWidth = 225;
+            if (window.tt != undefined) {
+                this.moreContentWidth = 104;
+            }
         } else {
             this.moreContentWidth = 346;
+            if (window.tt != undefined) {
+                this.moreContentWidth = 225;
+            }
         }
 
         /// 加载商城打折图片
@@ -70,6 +101,8 @@ cc.Class({
 
         //7天登录奖励完成隐藏按钮
         GameEvent.on(GameNotificationKey.LoginRewardGainFinish, this, this._hideLoginReward);
+
+        GameModule.homeGuide.on('Fire_state31', this.handleQuestPopup, this);
     },
 
     onDestroy() {
@@ -78,8 +111,8 @@ cc.Class({
     },
 
     _loadStoreDiscountSprite() {
-        if (Global._shopZk > 0) {
-            let url = Global.debug ? `https://pub.dwstatic.com/wxgame/taptapstar_test/assets/shop_${Global._shopZk}.png` : `https://pub.dwstatic.com/wxgame/taptapstar/assets/shop_${Global._shopZk}.png`;
+        if (GameGlobal._shopZk > 0) {
+            let url = GameGlobal.debug ? `https://pub.dwstatic.com/wxgame/taptapstar_test/assets/shop_${GameGlobal._shopZk}.png` : `https://pub.dwstatic.com/wxgame/taptapstar/assets/shop_${GameGlobal._shopZk}.png`;
             DWTool.loadSpriteFrame(url).then( (spriteFrame) => {
                 this.storeNode.getComponent(cc.Sprite).spriteFrame = spriteFrame;
             }).catch((err) => {
@@ -89,6 +122,7 @@ cc.Class({
     },
 
     hideOrShowMore() {
+        GameModule.audioMng.playClickButton();
         if (this.moreWelfareNode.active) {
             this.moreWelfareNode.active = false;
             this.arrowNode.scaleX = 1;
@@ -123,7 +157,7 @@ cc.Class({
     },
 
     handelShowRedDot() {
-        if (Global._redTypes == null || Global._redTypes == undefined || Global._redTypes.length == 0) {
+        if (GameGlobal._redTypes == null || GameGlobal._redTypes == undefined || GameGlobal._redTypes.length == 0) {
             this.taskRedNode.active = false;
             this.drawRedNode.active = false;
             this.storeRedNode.active = false;
@@ -134,7 +168,7 @@ cc.Class({
             return;
         }
 
-        let redTypes = Global._redTypes;
+        let redTypes = GameGlobal._redTypes;
         this.taskRedNode.active = (redTypes.indexOf(GameRedDot.mainTask) != -1 || redTypes.indexOf(GameRedDot.dayTask) != -1);
         this.drawRedNode.active = redTypes.indexOf(GameRedDot.draw) != -1;
         this.inviteFriendRedNode.active = redTypes.indexOf(GameRedDot.inviteFriend) != -1;
@@ -143,7 +177,7 @@ cc.Class({
         this.helpRedNode.active = redTypes.indexOf(GameRedDot.friendAward) != -1;
         /// 只要这里一个有红点就都有红点
         this.giftRedNode.active = this.awardRedNode.active || this.inviteFriendRedNode.active || this.signRedNode.active;
-        if (this.isShowBar) {
+        if (GameGlobal.isShowBar && window.tt == undefined) {
             let isStoreRed = (redTypes.indexOf(GameRedDot.storeDiamond) != -1 || redTypes.indexOf(GameRedDot.storeCoin) != -1);
             this.storeRedNode.active = isStoreRed;
             if (isStoreRed) {
@@ -239,7 +273,71 @@ cc.Class({
 
     showMoreWelfare() {
         this.handleShowMore();
-    }
+    },
+
+    recordTimeAction() {
+        this._recordTime += 1;
+        if (this._recordTime === 4) {
+            this.recordButton.interactable = true;
+        }
+        this.recordTimeRichText.string = `<b><color=#fdfdef >${DWTool.calculateTime(this._recordTime)}</c></b>`;
+    },
+
+    //处理头条录制视频然后分享的功能
+    handleTTRecordVideo() {
+        this.recordButton.interactable = false;
+        let recorder = tt.getGameRecorderManager();
+        /// 如果是开始录制了
+        if (this._starRecord) {
+            recorder.stop();
+        } else {
+            recorder.start({
+                duration: 120,
+                microphoneEnabled: true,
+            });
+        }
+
+        recorder.onStart(res =>{
+            // 录屏开始
+            console.log('录屏开始');
+            GameGlobal.commonAlert.showCommonErrorAlert('录屏开始');
+            this._starRecord = true;
+            this.startRecordNode.active = false;
+            this.recordingNode.active = true;
+            this.schedule(this.recordTimeAction, 1);
+        })
+
+        recorder.onStop(res =>{
+            // 录屏结束;
+            GameGlobal.commonAlert.showCommonErrorAlert('录屏结束');
+            this._starRecord = false;
+            this.startRecordNode.active = true;
+            this.recordingNode.active = false;
+            this.recordTimeRichText.string = '<b><color=#fdfdef >00:00</c></b>';
+            this._recordTime = 0;
+            this.unschedule(this.recordTimeAction, this);
+            setTimeout(() => {
+                this.recordButton.interactable = true;
+            }, 1000);
+            tt.shareVideo({
+                videoPath: `${res.videoPath}`,
+                success () {
+                  console.log(`分享成功!`);
+                },
+                fail (e) {
+                  console.log(`分享失败!`);
+                }
+            });
+        })
+
+        recorder.onPause(() =>{
+        // 录屏已暂停;
+        })
+
+        recorder.onResume(() =>{
+        // 录屏已恢复;
+        })
+    },
 });
 
 

+ 4 - 4
assets/scripts/game/MoneyCat.js

@@ -54,7 +54,7 @@ cc.Class({
 
         GameEvent.on('just_cat_hit', this, this.catHit);
 
-        if (Global.isLongPressClick) {
+        if (GameGlobal.isLongPressClick) {
             this.addLongTap();
         }
 
@@ -70,7 +70,7 @@ cc.Class({
              //// 如果有购买商品 一秒钟点击十次
             // console.log('开始点击');
             if (!this._isTouch) {
-                if (Global.isLongPressClick === true) {
+                if (GameGlobal.isLongPressClick === true) {
                     /// 最起码要按住1秒
                     this._addClick = false;
                     this._timeCount = 0;
@@ -84,7 +84,7 @@ cc.Class({
         this.node.on(cc.Node.EventType.TOUCH_END, (event) => {
             // console.log("点击结束");
             if (this._isTouch) {
-                if (Global.isLongPressClick === true && this._addClick) {
+                if (GameGlobal.isLongPressClick === true && this._addClick) {
                     
                     let clickCount = 1 / GameModule.userInfo.secondClick;
                     clickCount -= 10;
@@ -106,7 +106,7 @@ cc.Class({
             // console.log('移动');
            
             if (this._isTouch && ( Math.abs(x - startLocation.x) > 10 || Math.abs(y - startLocation.y) > 10)) {
-                if (Global.isLongPressClick === true && this._addClick) {
+                if (GameGlobal.isLongPressClick === true && this._addClick) {
                     let clickCount = 1 / GameModule.userInfo.secondClick;
                     clickCount -= 10;
                     GameModule.userInfo.secondClick = 1 / clickCount;

+ 12 - 7
assets/scripts/game/OfflineGrossIncome.js

@@ -32,6 +32,7 @@ cc.Class({
             default: null,
             type: cc.Node
         },
+        shareLabel: cc.Label,
         normalBtn: {
             tooltip: '普通确认按钮',
             default: null,
@@ -76,9 +77,9 @@ cc.Class({
         this.grossIncome = grossIncome;
 
         this._resetBtn();
-        if (CC_WECHATGAME) {
+        if (CC_WECHATGAME || window.tt != undefined || CC_QQPLAY) {
             //判断是否是正在审核的版本,是的话将隐藏分享到群的按钮
-            if (Global.isCheck) {
+            if (GameGlobal.isCheck) {
                 this.videoBtn.active = false;
                 this.shareBtn.active = false;
                 this.normalBtn.active = true;
@@ -115,19 +116,23 @@ cc.Class({
             this.videoBtn.getComponent(cc.Button).interactable = true;
 
         });
+
+        if (window.tt != undefined) {
+            this.shareLabel.string = "分享获得2倍";
+        }
     },
 
     initAd() {
 
-        if (!CC_WECHATGAME) {
+        if (!CC_WECHATGAME || window.tt == undefined) {
             return;
         }
 
         //// 说明有广告
-        if (Global._adVideoState == 0) {
+        if (GameGlobal._adVideoState == 0) {
             this.videoBtn.active = true;
             this.shareBtn.active = false;
-        } else if (Global._adVideoState === 1) {
+        } else if (GameGlobal._adVideoState === 1) {
             this.videoBtn.active = false;
             this.shareBtn.active = true;
         }
@@ -183,7 +188,7 @@ cc.Class({
     watchVideo() {
         GameModule.audioMng.playClickButton();
         this.videoBtn.getComponent(cc.Button).interactable = false;
-        Global._adVideo.showVideo('offlineIncome');
+        GameGlobal._adVideo.showVideo('offlineIncome');
     },
 
     /**
@@ -191,7 +196,7 @@ cc.Class({
      */
     share() {
         GameModule.audioMng.playClickButton();
-        if (CC_WECHATGAME) {
+        if (CC_WECHATGAME || CC_QQPLAY) {
             this.shareBtn.getComponent(cc.Button).interactable = false;
             GameEvent.on(GameNotificationKey.ShowShareAction, this, (type, isOk) => {
                 if (type == WechatShareType.OfflineIncome) {

+ 1 - 1
assets/scripts/invite/FriendHelpClick.js

@@ -61,7 +61,7 @@ cc.Class({
         }, () => {
             console.log('分享失败或取消');
         });
-        Global.isIgnoreShareStatus = true;
+        GameGlobal.isIgnoreShareStatus = true;
     },
 
     // update (dt) {},

+ 7 - 7
assets/scripts/invite/FriendHelpItem.js

@@ -64,22 +64,22 @@ cc.Class({
             }
             this.refreshButtonState();
             let isNew = true;
-            for (let i = 0; i < Global._timeInformations.length; ++ i) {
-                let information = Global._timeInformations[i];
+            for (let i = 0; i < GameGlobal._timeInformations.length; ++ i) {
+                let information = GameGlobal._timeInformations[i];
                 if (information.type == 3) {
                     /// 如果是已经使用过的直接刷新时间就可以啦
-                    information.cdTime = Global.friendRewardCdTime;
+                    information.cdTime = GameGlobal.friendRewardCdTime;
                     isNew = false;
                     break;
                 }
             }
             if (isNew) {
-                let messageItem = {'cdTime': Global.friendRewardCdTime, 'type': 3};
-                Global._timeInformations.push(messageItem);
+                let messageItem = {'cdTime': GameGlobal.friendRewardCdTime, 'type': 3};
+                GameGlobal._timeInformations.push(messageItem);
                 GameEvent.fire(GameNotificationKey.GameUpdateMessageList, 1, true);
             }
         }, (error) => {
-            Global.commonAlert.showCommonErrorAlert("领取失败");
+            GameGlobal.commonAlert.showCommonErrorAlert("领取失败");
         });
     },
 
@@ -88,7 +88,7 @@ cc.Class({
         this.model.status = QuestMainMissionType.AlreadyGet;
         this.hideAllButton();
         this.finishButton.node.active = true;
-        Global.friendRewardCdTime += this.model.time * 1000;
+        GameGlobal.friendRewardCdTime += this.model.time * 1000;
         GameEvent.fire(GameNotificationKey.GainFriendHelpClick);
     }
 

+ 10 - 3
assets/scripts/invite/InviteMission.js

@@ -21,14 +21,15 @@ cc.Class({
 
         invitedItemArray: [InvitedItem],
 
-        shareButtonNode: cc.Node
+        shareButtonNode: cc.Node,
+        shareTipsLabel: cc.Label
     },
 
     // LIFE-CYCLE CALLBACKS:
 
     onLoad() {
 
-        if (Global.winSize.height <= 1000) {
+        if (GameGlobal.winSize.height <= 1000) {
             this.contentNode.height = 820;
         }
 
@@ -44,6 +45,12 @@ cc.Class({
         GameEvent.on(GameNotificationKey.InviteGainAward, this, (model) => {
             this.gainActGift(model);
         });
+
+        if (window.tt != undefined) {
+            this.shareTipsLabel.string = "发送链接给你的好友,邀请TA来一起玩游戏吧~";
+        } else if (CC_QQPLAY) {
+            this.shareTipsLabel.string = "发送链接给你的QQ好友,邀请TA来一起玩游戏吧~";
+        }
     },
 
     start() {
@@ -126,6 +133,6 @@ cc.Class({
         }, () => {
             console.log('分享失败或取消');
         });
-        Global.isIgnoreShareStatus = true;
+        GameGlobal.isIgnoreShareStatus = true;
     },
 });

+ 1 - 1
assets/scripts/invite/InviteMissionItem.js

@@ -83,7 +83,7 @@ cc.Class({
             }
             this.refreshButtonState();
         }, (error) => {
-            Global.commonAlert.showCommonErrorAlert("领取失败");
+            GameGlobal.commonAlert.showCommonErrorAlert("领取失败");
         });
     },
 

+ 15 - 29
assets/scripts/levelHome/LevelHome.js

@@ -2,6 +2,7 @@ const GameModule = require("../utils/GameModule");
 const {GameNotificationKey} = require('../utils/GameEnum');
 const AlertManager = require('../utils/AlertManager');
 const TapTapTool = require("../utils/TapTapTool");
+var Promise = require('../lib/es6-promise').Promise;
 
 cc.Class({
     extends: cc.Component,
@@ -113,7 +114,6 @@ cc.Class({
 
         this.getUserBuildings()
             .then((userRooms) => {
-
             // 清空数据
             this.buildingInfos = [];
 
@@ -122,7 +122,7 @@ cc.Class({
             // 离线收益金币数量
             // let offlineGrossIncome = 0;
             sortArray.map((value, index, array) => {
-                let model = Global.BuildingManager.getBuildingInfo(value.roomId, value.roomLevel);
+                let model = GameGlobal.BuildingManager.getBuildingInfo(value.roomId, value.roomLevel);
                 this._unlockBuilding[index] = model.isUnlocked ? 1 : 0;
 
                 if (value.roomStars == undefined) {
@@ -158,47 +158,33 @@ cc.Class({
             }
 
             //第一层楼是否已经解锁
-            if (!Global.BuildingManager.getRoomIsUnlocked(1) || Global.BuildingManager.getRoomLevel(1) < 5) {
+            if (!GameGlobal.BuildingManager.getRoomIsUnlocked(1) || GameGlobal.BuildingManager.getRoomLevel(1) < 5) {
                 let guide = GameModule.homeGuide.getComponent('HomeGuide');
                 if (guide.isPassGuideState('state15') || guide.isPassGuideState('state16') || guide.isPassGuideState('state17') || guide.isPassGuideState('state20')) {
                     GameModule.homeGuide.getComponent('HomeGuide').handleState('state21');
                 }
                 this.scrollViewMng.configGuide();
-            } else if (Global.BuildingManager.getRoomLevel(1) < 25) {
+            } else if (GameGlobal.BuildingManager.getRoomLevel(1) < 25) {
                 GameModule.homeGuide.getComponent('HomeGuide').handleGuideStateNext('state21', 'state24');
                 this.scrollViewMng.configGuide();
             }
-        })
-        .then((buildingItems) => {
-
-            for (const roomId in buildingItems) {
-
-                let itemScript;
-                let filterList = this.buildings.filter( item => item.buildingInfo.roomId === parseInt(roomId) ) || [];
-                if (filterList.length > 0) { itemScript = filterList[0]; }
-
-                if (buildingItems.hasOwnProperty(roomId)) {
-                    let prop = buildingItems[roomId];
-                    itemScript.configProp(prop);
-                }
-            }
-        })
-        .catch((err) => {
+        }).catch((err) => {
             console.log(err);
         });
-    },
+        },
 
     getUserBuildings() {
         return new Promise((resolve, reject) => {
             // 返回用户的建筑等级
-            if (Global.BuildingManager.networkRooms && Global.BuildingManager.networkRooms.length > 0) {
-                resolve(Global.BuildingManager.networkRooms);
+            if (GameGlobal.BuildingManager.networkRooms && GameGlobal.BuildingManager.networkRooms.length > 0) {
+                resolve(GameGlobal.BuildingManager.networkRooms);
             } else {
                 reject('error');
             }
         })
     },
 
+
     configBuildings() {
         this.refreshAllbuildingGoldRate();
 
@@ -247,7 +233,7 @@ cc.Class({
      * @param {Number} offlineGrossIncome 离线收益金币数量
      */
     configOffIncome() {
-        let offlineGold = Global.offlineGold;
+        let offlineGold = GameGlobal.offlineGold;
         // AlertManager.showOfflineGrossIncome(offlineGold);
         // return;
         let lastTime = cc.sys.localStorage.getItem('offlineLastTime');
@@ -266,7 +252,7 @@ cc.Class({
             // 4. 已签到过一次
             let unLockStatus2 = GameModule.userInfo.buildingLevel >= 25;
             let unLockStatus3 = GameModule.userInfo.buyStarCount > 0;
-            let unLockStatus4 = Global.signCount > 0;
+            let unLockStatus4 = GameGlobal.signCount > 0;
             // showOffLineUI: 用户每次进入游戏离线收益只会显示1次
             if (this.showOffLineUI && unLockStatus2 && unLockStatus3 && unLockStatus4) {
                 this.showOffLineUI = false;
@@ -290,7 +276,7 @@ cc.Class({
             // let unLockStatus1 = curTime - lastTime > 1 * 1000;
             let unLockStatus2 = GameModule.userInfo.buildingLevel >= 25;
             let unLockStatus3 = GameModule.userInfo.buyStarCount > 0;
-            let unLockStatus4 = Global.signCount > 0;
+            let unLockStatus4 = GameGlobal.signCount > 0;
             // showOffLineUI: 用户每次进入游戏离线收益只会显示1次
             if (this.showOffLineUI && unLockStatus1 && unLockStatus2 && unLockStatus3 && unLockStatus4) {
                 this.showOffLineUI = false;
@@ -304,8 +290,8 @@ cc.Class({
         // 2. 已拥有1个明星
         let unLockStatus1 = GameModule.userInfo.buildingLevel >= 25;
         let unLockStatus2 = GameModule.userInfo.buyStarCount > 0;
-        if (!Global.isSignAward && unLockStatus1 && unLockStatus2) {
-            if (Global.signCount == 0) {
+        if (!GameGlobal.isSignAward && unLockStatus1 && unLockStatus2) {
+            if (GameGlobal.signCount == 0) {
                 GameModule.homeGuide.getComponent('HomeGuide').handleGuideStateNext('state31', 'state34');
             }
             AlertManager.showSignInAlert();
@@ -340,7 +326,7 @@ cc.Class({
         GameModule.userInfo.rateGold = totalRate;
         GameEvent.fire(GameNotificationKey.UpBuildingLevel);
 
-        cc.sys.localStorage.setItem(`localRooms_${Global.user.uid}`, JSON.stringify(this.buildingInfos));
+        cc.sys.localStorage.setItem(`localRooms_${GameGlobal.user.uid}`, JSON.stringify(this.buildingInfos));
     },
 
     //获取房间里程碑

+ 3 - 3
assets/scripts/levelHome/LevelHomeAward.js

@@ -42,15 +42,15 @@ cc.Class({
             this.pickupCallback(responseData.awardCount);
             GameEvent.fire(GameNotificationKey.GetRoomAward,responseData);
 
-            let roomName = Global.BuildingManager.getRoomName(this.roomId);
+            let roomName = GameGlobal.BuildingManager.getRoomName(this.roomId);
             GameEvent.fire(GameNotificationKey.GameShowAdditionTips,roomName,1);
             let objct = {'cdTime': -6 * 1000, 'infoDesc': roomName + ' 提升2倍的金币产出', 'icon': 900001};
-            Global._fixInformations.push(objct);
+            GameGlobal._fixInformations.push(objct);
             GameEvent.fire(GameNotificationKey.GameUpdateMessageList, 1, false);
 
         },(errCode, errMsg) => {
             this.isGetting = false;
-            Global.commonAlert.showCommonErrorAlert("领取奖励失败");
+            GameGlobal.commonAlert.showCommonErrorAlert("领取奖励失败");
         });
 
         if (!GameModule.homeGuide.getComponent('HomeGuide').isPassGuideState('state27')) {

+ 17 - 12
assets/scripts/levelHome/LevelHomeItem.js

@@ -173,7 +173,8 @@ cc.Class({
     },
 
     setupUI() {
-        this._adState = 0;
+        this._adState = GameGlobal._adVideoState;
+        this.refreshWatchVideoUI();
 
         this.humanList = [];
         this.humanPool = new cc.NodePool();
@@ -198,14 +199,14 @@ cc.Class({
     },
 
     initRoomAd() {
-        if (!CC_WECHATGAME) {
+        if (!CC_WECHATGAME || window.tt == undefined) {
             return;
         }
 
         //// 说明有广告
-        if (Global._adVideoState == 0) {
+        if (GameGlobal._adVideoState == 0) {
             this._adState = 2;
-        } else if (Global._adVideoState === 1) {
+        } else if (GameGlobal._adVideoState === 1) {
             this._adState = 1;
         }
         this.refreshWatchVideoUI();
@@ -237,7 +238,7 @@ cc.Class({
                 let adObject = new Object();
                 adObject.type = 'updateRoom';
                 adObject.roomId = this.data.roomId;
-                Global._adVideo.showVideo(adObject);
+                GameGlobal._adVideo.showVideo(adObject);
             }
         }
     },
@@ -245,9 +246,9 @@ cc.Class({
     finishVideoOrShare(roomId) {
         if (this.data.roomId == roomId) {
             HomeApi.reportInformation(2, () => {
-                Global._upRoomInfo.count += 1;
+                GameGlobal._upRoomInfo.count += 1;
                 /// 时间重置为5分钟
-                Global._upRoomInfo.cdTime = 5 * 60 * 1000;
+                GameGlobal._upRoomInfo.cdTime = 5 * 60 * 1000;
 
                 this.updateBuildingEvent(true);
                 this.refreshWatchVideoUI();
@@ -261,7 +262,11 @@ cc.Class({
     //刷新观看视频或者分享文案
     refreshWatchVideoUI() {
         if (this._adState == 1) {
-            this.videoRichText.string = '<b>分享到群\n免费升级</b>';
+            if (window.tt != undefined) {
+                this.videoRichText.string = '<b>分享\n免费升级</b>';
+            } else {
+                this.videoRichText.string = '<b>分享到群\n免费升级</b>';
+            }
         } else if (this._adState == 2) {
             this.videoRichText.string = '<b>看广告\n免费升级</b>';
         }
@@ -314,7 +319,7 @@ cc.Class({
         // console.log(GameModule.skill.isUsingSkill3);
 
         // 判断是否有下一级, 没有的话就是满级
-        if (data.hasNext === 1 && data.level < Global.BuildingManager.getLevelCount(data.roomId)) {
+        if (data.hasNext === 1 && data.level < GameGlobal.BuildingManager.getLevelCount(data.roomId)) {
 
             // 判断是否已经解锁
             if (data.isUnlocked) {
@@ -352,7 +357,7 @@ cc.Class({
                 if (TapTapTool.compare(GameModule.userInfo.gold, data.nextUpGold)) {
                     this.setState(RoomState.Update);
                 } else {
-                    let isAd = DWTool.checkIsOldUser() && Global._upRoomInfo != undefined && Global._upRoomInfo.count < Global._upRoomInfo.maxCount && Global._upRoomInfo.cdTime <= 0;
+                    let isAd = DWTool.checkIsOldUser() && GameGlobal._upRoomInfo != undefined && GameGlobal._upRoomInfo.count < GameGlobal._upRoomInfo.maxCount && GameGlobal._upRoomInfo.cdTime <= 0;
                     if (isAd) {
                         this.setState(RoomState.WatchVideo);
                     } else {
@@ -594,10 +599,10 @@ cc.Class({
         GameModule.audioMng.playUpdateBuilding();
 
         // 从配置文件里获取
-        let maxLevel = Global.BuildingManager.getLevelCount(this.data.roomId);
+        let maxLevel = GameGlobal.BuildingManager.getLevelCount(this.data.roomId);
         let nextLevel = this.data.level + 1;
         let level = nextLevel > maxLevel ? maxLevel : nextLevel;
-        let buildModel = Global.BuildingManager.getBuildingInfo(this.data.roomId, level);
+        let buildModel = GameGlobal.BuildingManager.getBuildingInfo(this.data.roomId, level);
 
         buildModel.roomStars = this.data.roomStars;
         buildModel.roomMt = this.data.roomMt;

+ 3 - 3
assets/scripts/levelHome/LevelHomeListAdapter.js

@@ -34,7 +34,7 @@ cc.Class({
         this.scrollView.node.on(cc.Node.EventType.TOUCH_START, (event) => {
             //// 如果有购买商品 一秒钟点击十次
             if (!this._isTouch) {
-                if (Global.isLongPressClick === true) {
+                if (GameGlobal.isLongPressClick === true) {
                     /// 最起码要按住1秒
                     this._isTouch = true;
                     this._addClick = false;
@@ -50,7 +50,7 @@ cc.Class({
         this.scrollView.node.on(cc.Node.EventType.TOUCH_CANCEL, () => {
             /// 防止多点点击
             if (this._isTouch) {
-                if (Global.isLongPressClick === true && this._addClick) {
+                if (GameGlobal.isLongPressClick === true && this._addClick) {
                     let clickCount = 1 / GameModule.userInfo.secondClick;
                     clickCount -= 10;
                     GameModule.userInfo.secondClick = 1 / clickCount;
@@ -72,7 +72,7 @@ cc.Class({
         this.scrollView.node.on(cc.Node.EventType.TOUCH_END, (event) => {
             /// 防止多点点击
             if (this._isTouch) {
-                if (Global.isLongPressClick === true && this._addClick) {
+                if (GameGlobal.isLongPressClick === true && this._addClick) {
                     let clickCount = 1 / GameModule.userInfo.secondClick;
                     clickCount -= 10;
                     GameModule.userInfo.secondClick = 1 / clickCount;

+ 1183 - 0
assets/scripts/lib/es6-promise.js

@@ -0,0 +1,1183 @@
+/*!
+ * @overview es6-promise - a tiny implementation of Promises/A+.
+ * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
+ * @license   Licensed under MIT license
+ *            See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
+ * @version   v4.2.5+7f2b526d
+ */
+
+(function (global, factory) {
+	typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+	typeof define === 'function' && define.amd ? define(factory) :
+	(global.ES6Promise = factory());
+}(this, (function () { 'use strict';
+
+function objectOrFunction(x) {
+  var type = typeof x;
+  return x !== null && (type === 'object' || type === 'function');
+}
+
+function isFunction(x) {
+  return typeof x === 'function';
+}
+
+
+
+var _isArray = void 0;
+if (Array.isArray) {
+  _isArray = Array.isArray;
+} else {
+  _isArray = function (x) {
+    return Object.prototype.toString.call(x) === '[object Array]';
+  };
+}
+
+var isArray = _isArray;
+
+var len = 0;
+var vertxNext = void 0;
+var customSchedulerFn = void 0;
+
+var asap = function asap(callback, arg) {
+  queue[len] = callback;
+  queue[len + 1] = arg;
+  len += 2;
+  if (len === 2) {
+    // If len is 2, that means that we need to schedule an async flush.
+    // If additional callbacks are queued before the queue is flushed, they
+    // will be processed by this flush that we are scheduling.
+    if (customSchedulerFn) {
+      customSchedulerFn(flush);
+    } else {
+      scheduleFlush();
+    }
+  }
+};
+
+function setScheduler(scheduleFn) {
+  customSchedulerFn = scheduleFn;
+}
+
+function setAsap(asapFn) {
+  asap = asapFn;
+}
+
+var browserWindow = typeof window !== 'undefined' ? window : undefined;
+var browserGlobal = browserWindow || {};
+var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
+var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
+
+// test for web worker but not in IE10
+var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
+
+// node
+function useNextTick() {
+  // node version 0.10.x displays a deprecation warning when nextTick is used recursively
+  // see https://github.com/cujojs/when/issues/410 for details
+  return function () {
+    return process.nextTick(flush);
+  };
+}
+
+// vertx
+function useVertxTimer() {
+  if (typeof vertxNext !== 'undefined') {
+    return function () {
+      vertxNext(flush);
+    };
+  }
+
+  return useSetTimeout();
+}
+
+function useMutationObserver() {
+  var iterations = 0;
+  var observer = new BrowserMutationObserver(flush);
+  var node = document.createTextNode('');
+  observer.observe(node, { characterData: true });
+
+  return function () {
+    node.data = iterations = ++iterations % 2;
+  };
+}
+
+// web worker
+function useMessageChannel() {
+  var channel = new MessageChannel();
+  channel.port1.onmessage = flush;
+  return function () {
+    return channel.port2.postMessage(0);
+  };
+}
+
+function useSetTimeout() {
+  // Store setTimeout reference so es6-promise will be unaffected by
+  // other code modifying setTimeout (like sinon.useFakeTimers())
+  var globalSetTimeout = setTimeout;
+  return function () {
+    return globalSetTimeout(flush, 1);
+  };
+}
+
+var queue = new Array(1000);
+function flush() {
+  for (var i = 0; i < len; i += 2) {
+    var callback = queue[i];
+    var arg = queue[i + 1];
+
+    callback(arg);
+
+    queue[i] = undefined;
+    queue[i + 1] = undefined;
+  }
+
+  len = 0;
+}
+
+function attemptVertx() {
+  try {
+    var vertx = Function('return this')().require('vertx');
+    vertxNext = vertx.runOnLoop || vertx.runOnContext;
+    return useVertxTimer();
+  } catch (e) {
+    return useSetTimeout();
+  }
+}
+
+var scheduleFlush = void 0;
+// Decide what async method to use to triggering processing of queued callbacks:
+if (isNode) {
+  scheduleFlush = useNextTick();
+} else if (BrowserMutationObserver) {
+  scheduleFlush = useMutationObserver();
+} else if (isWorker) {
+  scheduleFlush = useMessageChannel();
+} else if (browserWindow === undefined && typeof require === 'function') {
+  scheduleFlush = attemptVertx();
+} else {
+  scheduleFlush = useSetTimeout();
+}
+
+function then(onFulfillment, onRejection) {
+  var parent = this;
+
+  var child = new this.constructor(noop);
+
+  if (child[PROMISE_ID] === undefined) {
+    makePromise(child);
+  }
+
+  var _state = parent._state;
+
+
+  if (_state) {
+    var callback = arguments[_state - 1];
+    asap(function () {
+      return invokeCallback(_state, child, callback, parent._result);
+    });
+  } else {
+    subscribe(parent, child, onFulfillment, onRejection);
+  }
+
+  return child;
+}
+
+/**
+  `Promise.resolve` returns a promise that will become resolved with the
+  passed `value`. It is shorthand for the following:
+
+  ```javascript
+  let promise = new Promise(function(resolve, reject){
+    resolve(1);
+  });
+
+  promise.then(function(value){
+    // value === 1
+  });
+  ```
+
+  Instead of writing the above, your code now simply becomes the following:
+
+  ```javascript
+  let promise = Promise.resolve(1);
+
+  promise.then(function(value){
+    // value === 1
+  });
+  ```
+
+  @method resolve
+  @static
+  @param {Any} value value that the returned promise will be resolved with
+  Useful for tooling.
+  @return {Promise} a promise that will become fulfilled with the given
+  `value`
+*/
+function resolve$1(object) {
+  /*jshint validthis:true */
+  var Constructor = this;
+
+  if (object && typeof object === 'object' && object.constructor === Constructor) {
+    return object;
+  }
+
+  var promise = new Constructor(noop);
+  resolve(promise, object);
+  return promise;
+}
+
+var PROMISE_ID = Math.random().toString(36).substring(2);
+
+function noop() {}
+
+var PENDING = void 0;
+var FULFILLED = 1;
+var REJECTED = 2;
+
+var TRY_CATCH_ERROR = { error: null };
+
+function selfFulfillment() {
+  return new TypeError("You cannot resolve a promise with itself");
+}
+
+function cannotReturnOwn() {
+  return new TypeError('A promises callback cannot return that same promise.');
+}
+
+function getThen(promise) {
+  try {
+    return promise.then;
+  } catch (error) {
+    TRY_CATCH_ERROR.error = error;
+    return TRY_CATCH_ERROR;
+  }
+}
+
+function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
+  try {
+    then$$1.call(value, fulfillmentHandler, rejectionHandler);
+  } catch (e) {
+    return e;
+  }
+}
+
+function handleForeignThenable(promise, thenable, then$$1) {
+  asap(function (promise) {
+    var sealed = false;
+    var error = tryThen(then$$1, thenable, function (value) {
+      if (sealed) {
+        return;
+      }
+      sealed = true;
+      if (thenable !== value) {
+        resolve(promise, value);
+      } else {
+        fulfill(promise, value);
+      }
+    }, function (reason) {
+      if (sealed) {
+        return;
+      }
+      sealed = true;
+
+      reject(promise, reason);
+    }, 'Settle: ' + (promise._label || ' unknown promise'));
+
+    if (!sealed && error) {
+      sealed = true;
+      reject(promise, error);
+    }
+  }, promise);
+}
+
+function handleOwnThenable(promise, thenable) {
+  if (thenable._state === FULFILLED) {
+    fulfill(promise, thenable._result);
+  } else if (thenable._state === REJECTED) {
+    reject(promise, thenable._result);
+  } else {
+    subscribe(thenable, undefined, function (value) {
+      return resolve(promise, value);
+    }, function (reason) {
+      return reject(promise, reason);
+    });
+  }
+}
+
+function handleMaybeThenable(promise, maybeThenable, then$$1) {
+  if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
+    handleOwnThenable(promise, maybeThenable);
+  } else {
+    if (then$$1 === TRY_CATCH_ERROR) {
+      reject(promise, TRY_CATCH_ERROR.error);
+      TRY_CATCH_ERROR.error = null;
+    } else if (then$$1 === undefined) {
+      fulfill(promise, maybeThenable);
+    } else if (isFunction(then$$1)) {
+      handleForeignThenable(promise, maybeThenable, then$$1);
+    } else {
+      fulfill(promise, maybeThenable);
+    }
+  }
+}
+
+function resolve(promise, value) {
+  if (promise === value) {
+    reject(promise, selfFulfillment());
+  } else if (objectOrFunction(value)) {
+    handleMaybeThenable(promise, value, getThen(value));
+  } else {
+    fulfill(promise, value);
+  }
+}
+
+function publishRejection(promise) {
+  if (promise._onerror) {
+    promise._onerror(promise._result);
+  }
+
+  publish(promise);
+}
+
+function fulfill(promise, value) {
+  if (promise._state !== PENDING) {
+    return;
+  }
+
+  promise._result = value;
+  promise._state = FULFILLED;
+
+  if (promise._subscribers.length !== 0) {
+    asap(publish, promise);
+  }
+}
+
+function reject(promise, reason) {
+  if (promise._state !== PENDING) {
+    return;
+  }
+  promise._state = REJECTED;
+  promise._result = reason;
+
+  asap(publishRejection, promise);
+}
+
+function subscribe(parent, child, onFulfillment, onRejection) {
+  var _subscribers = parent._subscribers;
+  var length = _subscribers.length;
+
+
+  parent._onerror = null;
+
+  _subscribers[length] = child;
+  _subscribers[length + FULFILLED] = onFulfillment;
+  _subscribers[length + REJECTED] = onRejection;
+
+  if (length === 0 && parent._state) {
+    asap(publish, parent);
+  }
+}
+
+function publish(promise) {
+  var subscribers = promise._subscribers;
+  var settled = promise._state;
+
+  if (subscribers.length === 0) {
+    return;
+  }
+
+  var child = void 0,
+      callback = void 0,
+      detail = promise._result;
+
+  for (var i = 0; i < subscribers.length; i += 3) {
+    child = subscribers[i];
+    callback = subscribers[i + settled];
+
+    if (child) {
+      invokeCallback(settled, child, callback, detail);
+    } else {
+      callback(detail);
+    }
+  }
+
+  promise._subscribers.length = 0;
+}
+
+function tryCatch(callback, detail) {
+  try {
+    return callback(detail);
+  } catch (e) {
+    TRY_CATCH_ERROR.error = e;
+    return TRY_CATCH_ERROR;
+  }
+}
+
+function invokeCallback(settled, promise, callback, detail) {
+  var hasCallback = isFunction(callback),
+      value = void 0,
+      error = void 0,
+      succeeded = void 0,
+      failed = void 0;
+
+  if (hasCallback) {
+    value = tryCatch(callback, detail);
+
+    if (value === TRY_CATCH_ERROR) {
+      failed = true;
+      error = value.error;
+      value.error = null;
+    } else {
+      succeeded = true;
+    }
+
+    if (promise === value) {
+      reject(promise, cannotReturnOwn());
+      return;
+    }
+  } else {
+    value = detail;
+    succeeded = true;
+  }
+
+  if (promise._state !== PENDING) {
+    // noop
+  } else if (hasCallback && succeeded) {
+    resolve(promise, value);
+  } else if (failed) {
+    reject(promise, error);
+  } else if (settled === FULFILLED) {
+    fulfill(promise, value);
+  } else if (settled === REJECTED) {
+    reject(promise, value);
+  }
+}
+
+function initializePromise(promise, resolver) {
+  try {
+    resolver(function resolvePromise(value) {
+      resolve(promise, value);
+    }, function rejectPromise(reason) {
+      reject(promise, reason);
+    });
+  } catch (e) {
+    reject(promise, e);
+  }
+}
+
+var id = 0;
+function nextId() {
+  return id++;
+}
+
+function makePromise(promise) {
+  promise[PROMISE_ID] = id++;
+  promise._state = undefined;
+  promise._result = undefined;
+  promise._subscribers = [];
+}
+
+function validationError() {
+  return new Error('Array Methods must be provided an Array');
+}
+
+var Enumerator = function () {
+  function Enumerator(Constructor, input) {
+    this._instanceConstructor = Constructor;
+    this.promise = new Constructor(noop);
+
+    if (!this.promise[PROMISE_ID]) {
+      makePromise(this.promise);
+    }
+
+    if (isArray(input)) {
+      this.length = input.length;
+      this._remaining = input.length;
+
+      this._result = new Array(this.length);
+
+      if (this.length === 0) {
+        fulfill(this.promise, this._result);
+      } else {
+        this.length = this.length || 0;
+        this._enumerate(input);
+        if (this._remaining === 0) {
+          fulfill(this.promise, this._result);
+        }
+      }
+    } else {
+      reject(this.promise, validationError());
+    }
+  }
+
+  Enumerator.prototype._enumerate = function _enumerate(input) {
+    for (var i = 0; this._state === PENDING && i < input.length; i++) {
+      this._eachEntry(input[i], i);
+    }
+  };
+
+  Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {
+    var c = this._instanceConstructor;
+    var resolve$$1 = c.resolve;
+
+
+    if (resolve$$1 === resolve$1) {
+      var _then = getThen(entry);
+
+      if (_then === then && entry._state !== PENDING) {
+        this._settledAt(entry._state, i, entry._result);
+      } else if (typeof _then !== 'function') {
+        this._remaining--;
+        this._result[i] = entry;
+      } else if (c === Promise$1) {
+        var promise = new c(noop);
+        handleMaybeThenable(promise, entry, _then);
+        this._willSettleAt(promise, i);
+      } else {
+        this._willSettleAt(new c(function (resolve$$1) {
+          return resolve$$1(entry);
+        }), i);
+      }
+    } else {
+      this._willSettleAt(resolve$$1(entry), i);
+    }
+  };
+
+  Enumerator.prototype._settledAt = function _settledAt(state, i, value) {
+    var promise = this.promise;
+
+
+    if (promise._state === PENDING) {
+      this._remaining--;
+
+      if (state === REJECTED) {
+        reject(promise, value);
+      } else {
+        this._result[i] = value;
+      }
+    }
+
+    if (this._remaining === 0) {
+      fulfill(promise, this._result);
+    }
+  };
+
+  Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {
+    var enumerator = this;
+
+    subscribe(promise, undefined, function (value) {
+      return enumerator._settledAt(FULFILLED, i, value);
+    }, function (reason) {
+      return enumerator._settledAt(REJECTED, i, reason);
+    });
+  };
+
+  return Enumerator;
+}();
+
+/**
+  `Promise.all` accepts an array of promises, and returns a new promise which
+  is fulfilled with an array of fulfillment values for the passed promises, or
+  rejected with the reason of the first passed promise to be rejected. It casts all
+  elements of the passed iterable to promises as it runs this algorithm.
+
+  Example:
+
+  ```javascript
+  let promise1 = resolve(1);
+  let promise2 = resolve(2);
+  let promise3 = resolve(3);
+  let promises = [ promise1, promise2, promise3 ];
+
+  Promise.all(promises).then(function(array){
+    // The array here would be [ 1, 2, 3 ];
+  });
+  ```
+
+  If any of the `promises` given to `all` are rejected, the first promise
+  that is rejected will be given as an argument to the returned promises's
+  rejection handler. For example:
+
+  Example:
+
+  ```javascript
+  let promise1 = resolve(1);
+  let promise2 = reject(new Error("2"));
+  let promise3 = reject(new Error("3"));
+  let promises = [ promise1, promise2, promise3 ];
+
+  Promise.all(promises).then(function(array){
+    // Code here never runs because there are rejected promises!
+  }, function(error) {
+    // error.message === "2"
+  });
+  ```
+
+  @method all
+  @static
+  @param {Array} entries array of promises
+  @param {String} label optional string for labeling the promise.
+  Useful for tooling.
+  @return {Promise} promise that is fulfilled when all `promises` have been
+  fulfilled, or rejected if any of them become rejected.
+  @static
+*/
+function all(entries) {
+  return new Enumerator(this, entries).promise;
+}
+
+/**
+  `Promise.race` returns a new promise which is settled in the same way as the
+  first passed promise to settle.
+
+  Example:
+
+  ```javascript
+  let promise1 = new Promise(function(resolve, reject){
+    setTimeout(function(){
+      resolve('promise 1');
+    }, 200);
+  });
+
+  let promise2 = new Promise(function(resolve, reject){
+    setTimeout(function(){
+      resolve('promise 2');
+    }, 100);
+  });
+
+  Promise.race([promise1, promise2]).then(function(result){
+    // result === 'promise 2' because it was resolved before promise1
+    // was resolved.
+  });
+  ```
+
+  `Promise.race` is deterministic in that only the state of the first
+  settled promise matters. For example, even if other promises given to the
+  `promises` array argument are resolved, but the first settled promise has
+  become rejected before the other promises became fulfilled, the returned
+  promise will become rejected:
+
+  ```javascript
+  let promise1 = new Promise(function(resolve, reject){
+    setTimeout(function(){
+      resolve('promise 1');
+    }, 200);
+  });
+
+  let promise2 = new Promise(function(resolve, reject){
+    setTimeout(function(){
+      reject(new Error('promise 2'));
+    }, 100);
+  });
+
+  Promise.race([promise1, promise2]).then(function(result){
+    // Code here never runs
+  }, function(reason){
+    // reason.message === 'promise 2' because promise 2 became rejected before
+    // promise 1 became fulfilled
+  });
+  ```
+
+  An example real-world use case is implementing timeouts:
+
+  ```javascript
+  Promise.race([ajax('foo.json'), timeout(5000)])
+  ```
+
+  @method race
+  @static
+  @param {Array} promises array of promises to observe
+  Useful for tooling.
+  @return {Promise} a promise which settles in the same way as the first passed
+  promise to settle.
+*/
+function race(entries) {
+  /*jshint validthis:true */
+  var Constructor = this;
+
+  if (!isArray(entries)) {
+    return new Constructor(function (_, reject) {
+      return reject(new TypeError('You must pass an array to race.'));
+    });
+  } else {
+    return new Constructor(function (resolve, reject) {
+      var length = entries.length;
+      for (var i = 0; i < length; i++) {
+        Constructor.resolve(entries[i]).then(resolve, reject);
+      }
+    });
+  }
+}
+
+/**
+  `Promise.reject` returns a promise rejected with the passed `reason`.
+  It is shorthand for the following:
+
+  ```javascript
+  let promise = new Promise(function(resolve, reject){
+    reject(new Error('WHOOPS'));
+  });
+
+  promise.then(function(value){
+    // Code here doesn't run because the promise is rejected!
+  }, function(reason){
+    // reason.message === 'WHOOPS'
+  });
+  ```
+
+  Instead of writing the above, your code now simply becomes the following:
+
+  ```javascript
+  let promise = Promise.reject(new Error('WHOOPS'));
+
+  promise.then(function(value){
+    // Code here doesn't run because the promise is rejected!
+  }, function(reason){
+    // reason.message === 'WHOOPS'
+  });
+  ```
+
+  @method reject
+  @static
+  @param {Any} reason value that the returned promise will be rejected with.
+  Useful for tooling.
+  @return {Promise} a promise rejected with the given `reason`.
+*/
+function reject$1(reason) {
+  /*jshint validthis:true */
+  var Constructor = this;
+  var promise = new Constructor(noop);
+  reject(promise, reason);
+  return promise;
+}
+
+function needsResolver() {
+  throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
+}
+
+function needsNew() {
+  throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
+}
+
+/**
+  Promise objects represent the eventual result of an asynchronous operation. The
+  primary way of interacting with a promise is through its `then` method, which
+  registers callbacks to receive either a promise's eventual value or the reason
+  why the promise cannot be fulfilled.
+
+  Terminology
+  -----------
+
+  - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
+  - `thenable` is an object or function that defines a `then` method.
+  - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
+  - `exception` is a value that is thrown using the throw statement.
+  - `reason` is a value that indicates why a promise was rejected.
+  - `settled` the final resting state of a promise, fulfilled or rejected.
+
+  A promise can be in one of three states: pending, fulfilled, or rejected.
+
+  Promises that are fulfilled have a fulfillment value and are in the fulfilled
+  state.  Promises that are rejected have a rejection reason and are in the
+  rejected state.  A fulfillment value is never a thenable.
+
+  Promises can also be said to *resolve* a value.  If this value is also a
+  promise, then the original promise's settled state will match the value's
+  settled state.  So a promise that *resolves* a promise that rejects will
+  itself reject, and a promise that *resolves* a promise that fulfills will
+  itself fulfill.
+
+
+  Basic Usage:
+  ------------
+
+  ```js
+  let promise = new Promise(function(resolve, reject) {
+    // on success
+    resolve(value);
+
+    // on failure
+    reject(reason);
+  });
+
+  promise.then(function(value) {
+    // on fulfillment
+  }, function(reason) {
+    // on rejection
+  });
+  ```
+
+  Advanced Usage:
+  ---------------
+
+  Promises shine when abstracting away asynchronous interactions such as
+  `XMLHttpRequest`s.
+
+  ```js
+  function getJSON(url) {
+    return new Promise(function(resolve, reject){
+      let xhr = new XMLHttpRequest();
+
+      xhr.open('GET', url);
+      xhr.onreadystatechange = handler;
+      xhr.responseType = 'json';
+      xhr.setRequestHeader('Accept', 'application/json');
+      xhr.send();
+
+      function handler() {
+        if (this.readyState === this.DONE) {
+          if (this.status === 200) {
+            resolve(this.response);
+          } else {
+            reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
+          }
+        }
+      };
+    });
+  }
+
+  getJSON('/posts.json').then(function(json) {
+    // on fulfillment
+  }, function(reason) {
+    // on rejection
+  });
+  ```
+
+  Unlike callbacks, promises are great composable primitives.
+
+  ```js
+  Promise.all([
+    getJSON('/posts'),
+    getJSON('/comments')
+  ]).then(function(values){
+    values[0] // => postsJSON
+    values[1] // => commentsJSON
+
+    return values;
+  });
+  ```
+
+  @class Promise
+  @param {Function} resolver
+  Useful for tooling.
+  @constructor
+*/
+
+var Promise$1 = function () {
+  function Promise(resolver) {
+    this[PROMISE_ID] = nextId();
+    this._result = this._state = undefined;
+    this._subscribers = [];
+
+    if (noop !== resolver) {
+      typeof resolver !== 'function' && needsResolver();
+      this instanceof Promise ? initializePromise(this, resolver) : needsNew();
+    }
+  }
+
+  /**
+  The primary way of interacting with a promise is through its `then` method,
+  which registers callbacks to receive either a promise's eventual value or the
+  reason why the promise cannot be fulfilled.
+   ```js
+  findUser().then(function(user){
+    // user is available
+  }, function(reason){
+    // user is unavailable, and you are given the reason why
+  });
+  ```
+   Chaining
+  --------
+   The return value of `then` is itself a promise.  This second, 'downstream'
+  promise is resolved with the return value of the first promise's fulfillment
+  or rejection handler, or rejected if the handler throws an exception.
+   ```js
+  findUser().then(function (user) {
+    return user.name;
+  }, function (reason) {
+    return 'default name';
+  }).then(function (userName) {
+    // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
+    // will be `'default name'`
+  });
+   findUser().then(function (user) {
+    throw new Error('Found user, but still unhappy');
+  }, function (reason) {
+    throw new Error('`findUser` rejected and we're unhappy');
+  }).then(function (value) {
+    // never reached
+  }, function (reason) {
+    // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
+    // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
+  });
+  ```
+  If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
+   ```js
+  findUser().then(function (user) {
+    throw new PedagogicalException('Upstream error');
+  }).then(function (value) {
+    // never reached
+  }).then(function (value) {
+    // never reached
+  }, function (reason) {
+    // The `PedgagocialException` is propagated all the way down to here
+  });
+  ```
+   Assimilation
+  ------------
+   Sometimes the value you want to propagate to a downstream promise can only be
+  retrieved asynchronously. This can be achieved by returning a promise in the
+  fulfillment or rejection handler. The downstream promise will then be pending
+  until the returned promise is settled. This is called *assimilation*.
+   ```js
+  findUser().then(function (user) {
+    return findCommentsByAuthor(user);
+  }).then(function (comments) {
+    // The user's comments are now available
+  });
+  ```
+   If the assimliated promise rejects, then the downstream promise will also reject.
+   ```js
+  findUser().then(function (user) {
+    return findCommentsByAuthor(user);
+  }).then(function (comments) {
+    // If `findCommentsByAuthor` fulfills, we'll have the value here
+  }, function (reason) {
+    // If `findCommentsByAuthor` rejects, we'll have the reason here
+  });
+  ```
+   Simple Example
+  --------------
+   Synchronous Example
+   ```javascript
+  let result;
+   try {
+    result = findResult();
+    // success
+  } catch(reason) {
+    // failure
+  }
+  ```
+   Errback Example
+   ```js
+  findResult(function(result, err){
+    if (err) {
+      // failure
+    } else {
+      // success
+    }
+  });
+  ```
+   Promise Example;
+   ```javascript
+  findResult().then(function(result){
+    // success
+  }, function(reason){
+    // failure
+  });
+  ```
+   Advanced Example
+  --------------
+   Synchronous Example
+   ```javascript
+  let author, books;
+   try {
+    author = findAuthor();
+    books  = findBooksByAuthor(author);
+    // success
+  } catch(reason) {
+    // failure
+  }
+  ```
+   Errback Example
+   ```js
+   function foundBooks(books) {
+   }
+   function failure(reason) {
+   }
+   findAuthor(function(author, err){
+    if (err) {
+      failure(err);
+      // failure
+    } else {
+      try {
+        findBoooksByAuthor(author, function(books, err) {
+          if (err) {
+            failure(err);
+          } else {
+            try {
+              foundBooks(books);
+            } catch(reason) {
+              failure(reason);
+            }
+          }
+        });
+      } catch(error) {
+        failure(err);
+      }
+      // success
+    }
+  });
+  ```
+   Promise Example;
+   ```javascript
+  findAuthor().
+    then(findBooksByAuthor).
+    then(function(books){
+      // found books
+  }).catch(function(reason){
+    // something went wrong
+  });
+  ```
+   @method then
+  @param {Function} onFulfilled
+  @param {Function} onRejected
+  Useful for tooling.
+  @return {Promise}
+  */
+
+  /**
+  `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
+  as the catch block of a try/catch statement.
+  ```js
+  function findAuthor(){
+  throw new Error('couldn't find that author');
+  }
+  // synchronous
+  try {
+  findAuthor();
+  } catch(reason) {
+  // something went wrong
+  }
+  // async with promises
+  findAuthor().catch(function(reason){
+  // something went wrong
+  });
+  ```
+  @method catch
+  @param {Function} onRejection
+  Useful for tooling.
+  @return {Promise}
+  */
+
+
+  Promise.prototype.catch = function _catch(onRejection) {
+    return this.then(null, onRejection);
+  };
+
+  /**
+    `finally` will be invoked regardless of the promise's fate just as native
+    try/catch/finally behaves
+  
+    Synchronous example:
+  
+    ```js
+    findAuthor() {
+      if (Math.random() > 0.5) {
+        throw new Error();
+      }
+      return new Author();
+    }
+  
+    try {
+      return findAuthor(); // succeed or fail
+    } catch(error) {
+      return findOtherAuther();
+    } finally {
+      // always runs
+      // doesn't affect the return value
+    }
+    ```
+  
+    Asynchronous example:
+  
+    ```js
+    findAuthor().catch(function(reason){
+      return findOtherAuther();
+    }).finally(function(){
+      // author was either found, or not
+    });
+    ```
+  
+    @method finally
+    @param {Function} callback
+    @return {Promise}
+  */
+
+
+  Promise.prototype.finally = function _finally(callback) {
+    var promise = this;
+    var constructor = promise.constructor;
+
+    if (isFunction(callback)) {
+      return promise.then(function (value) {
+        return constructor.resolve(callback()).then(function () {
+          return value;
+        });
+      }, function (reason) {
+        return constructor.resolve(callback()).then(function () {
+          throw reason;
+        });
+      });
+    }
+
+    return promise.then(callback, callback);
+  };
+
+  return Promise;
+}();
+
+Promise$1.prototype.then = then;
+Promise$1.all = all;
+Promise$1.race = race;
+Promise$1.resolve = resolve$1;
+Promise$1.reject = reject$1;
+Promise$1._setScheduler = setScheduler;
+Promise$1._setAsap = setAsap;
+Promise$1._asap = asap;
+
+/*global self*/
+function polyfill() {
+  var local = void 0;
+
+  if (typeof global !== 'undefined') {
+    local = global;
+  } else if (typeof self !== 'undefined') {
+    local = self;
+  } else {
+    try {
+      local = Function('return this')();
+    } catch (e) {
+      throw new Error('polyfill failed because global object is unavailable in this environment');
+    }
+  }
+
+  var P = local.Promise;
+
+  if (P) {
+    var promiseToString = null;
+    try {
+      promiseToString = Object.prototype.toString.call(P.resolve());
+    } catch (e) {
+      // silently ignored
+    }
+
+    if (promiseToString === '[object Promise]' && !P.cast) {
+      return;
+    }
+  }
+
+  local.Promise = Promise$1;
+}
+
+// Strange compat..
+Promise$1.polyfill = polyfill;
+Promise$1.Promise = Promise$1;
+
+return Promise$1;
+
+})));
+
+
+
+//# sourceMappingURL=es6-promise.map

+ 9 - 0
assets/scripts/lib/es6-promise.js.meta

@@ -0,0 +1,9 @@
+{
+  "ver": "1.0.5",
+  "uuid": "a9d83c67-98bb-4184-a8b9-e9502c7d3a66",
+  "isPlugin": false,
+  "loadPluginInWeb": true,
+  "loadPluginInNative": true,
+  "loadPluginInEditor": false,
+  "subMetas": {}
+}

+ 90 - 54
assets/scripts/login/LoginCtrl.js

@@ -1,11 +1,12 @@
 const weChat = require('../net/WeChat');
+const QQPlayer = require('../net/QQPlayer');
 const LoginApi = require('../net/LoginApi');
 const HomeApi = require("../net/HomeApi");
 const Api = require('../net/Api');
 const DWTool = require('../utils/DWTool');
 const GameModule = require('../utils/GameModule');
 const TapTapTool = require("../utils/TapTapTool");
-
+var Promise = require('../lib/es6-promise').Promise;
 
 cc.Class({
     extends: cc.Component,
@@ -24,12 +25,16 @@ cc.Class({
     },
 
     onLoad() {
-        if (CC_WECHATGAME) {
+        if (window.tt != undefined) {
+
+        } else if (CC_WECHATGAME) {
             window.wx.postMessage({ //初始化的时候关闭子域刷新
                 messageType: 8,
             });
         }
-        Global._socketCount = 0;
+
+        this._updateChannel();
+        GameGlobal._socketCount = 0;
         this.loadAllGameRes();
     },
 
@@ -82,8 +87,8 @@ cc.Class({
                     if (err) {
                         // reject(err);
                     } else {
-                        if (Global) {
-                            Global.buildRes = res;
+                        if (GameGlobal) {
+                            GameGlobal.buildRes = res;
                         }
                     }
                     resolve(true);
@@ -111,8 +116,8 @@ cc.Class({
                 if (err) {
                     // reject(err);
                 } else {
-                    if (Global) {
-                        Global.prefabsRes = res;
+                    if (GameGlobal) {
+                        GameGlobal.prefabsRes = res;
                     }
                     // resolve(true);
                 }
@@ -141,8 +146,8 @@ cc.Class({
                 if (err) {
                     // reject(err);
                 } else {
-                    if (Global) {
-                        Global.starAvatarRes = res;
+                    if (GameGlobal) {
+                        GameGlobal.starAvatarRes = res;
                     }
                     // resolve(true);
                 }
@@ -171,8 +176,8 @@ cc.Class({
                 if (err) {
                     // reject(err);
                 } else {
-                    if (Global) {
-                        Global.starSpineRes = res;
+                    if (GameGlobal) {
+                        GameGlobal.starSpineRes = res;
                     }
                     // resolve(true);
                 }
@@ -184,11 +189,25 @@ cc.Class({
     // 加载完成, 开始进入游戏
     _downloadFinished() {
         this.endPreload();
+        this.startLogin();
+    },
 
-        if(CC_WECHATGAME) {
+    //// 开始登录
+    startLogin() {
+        if (window.tt != undefined) {
+            this._startWxLogin();
+        }else if(CC_WECHATGAME) {
             this._startWxLogin();
+        } else if (CC_QQPLAY) {
+            QQPlayer.qqLogin((isError) => {
+                if (isError) {
+                    this._getDataFail();
+                } else {
+                    this._getUserInfoAndStartGame();
+                }
+            });
         } else {
-            Global.user = {
+            GameGlobal.user = {
                 uid: DWTool.getUrlParam('uid'),
                 token: DWTool.getUrlParam('token'),
                 nick: '游客',
@@ -231,7 +250,7 @@ cc.Class({
         this.loginLabel.node.active = false;
         this.updateUINode.active = false;
 
-        if (Global.needLogin) {
+        if (GameGlobal.needLogin) {
             //服务端通知登录态失效,重新调起微信登录获取新的token
             weChat.login((isError) => {
                 if (isError) {
@@ -263,59 +282,60 @@ cc.Class({
     },
 
     _getUserInfoAndStartGame() {
-        if (Global.user == undefined || Global.user.uid == undefined) {
-            weChat.login((isError) => {
-                if (isError) {
-                    this._getDataFail();
-                } else {
-                    this._getUserInfoAndStartGame();
-                }
-            });
+        if (GameGlobal.user == undefined || GameGlobal.user.uid == undefined) {
+            if (CC_QQPLAY) {
+                this.startLogin();
+            } else if (CC_WECHATGAME || window.tt != undefined) {
+                weChat.login((isError) => {
+                    if (isError) {
+                        this._getDataFail();
+                    } else {
+                        this._getUserInfoAndStartGame();
+                    }
+                });
+            }
             return;
         }
 
         LoginApi.getUserInfoPromise().then(({ data, msg }) => {
-            Global.needLogin = false;
-            Global.userData = data.userExtra;
-            Global.diamond = data.userExtra.diamond;
-            Global.skills = data.userSkills;    //拥有技能
-            Global.userLoginReward = data.userLoginReward;   //7天登录奖励数据
-            // Global.userLoginReward.rewardCount = 6;
-            // Global.userLoginReward.isLoginReward = 0;
-
+            GameGlobal.needLogin = false;
+            GameGlobal.userData = data.userExtra;
+            GameGlobal.diamond = data.userExtra.diamond;
+            GameGlobal.skills = data.userSkills;    //拥有技能
+            GameGlobal.userLoginReward = data.userLoginReward;   //7天登录奖励数据
             /// 通知信息
-            Global.messageNotice = data.messageNotice;
+            GameGlobal.messageNotice = data.messageNotice;
 
             //是否已经领取过我的小程序奖励
-            Global.appletAward = data.appletAward == 0 ? false : true;
+            GameGlobal.appletAward = data.appletAward == 0 ? false : true;
 
-            //是否使用远程数据
-            Global.localData = data.localData == 0 ? false : true;
+            //当天是否已经签到
+            GameGlobal.isSignAward = data.isSignAward == 0 ? false : true;
 
-            Global.isSignAward = data.isSignAward == 0 ? false : true;
+            GameGlobal.localData = data.localData == 0 ? false : true;
 
             //好友助力剩余使用时间
-            Global.friendRewardCdTime = data.friendRewardCdTime;
+            GameGlobal.friendRewardCdTime = data.friendRewardCdTime;
             // Global.friendRewardCdTime = 10000;
 
             //签到的次数
-            Global.signCount = data.signCount;
-            Global.rsDiamond = data.rsDiamond;
+            GameGlobal.signCount = data.signCount;
+            GameGlobal.rsDiamond = data.rsDiamond;
             /// 通知获得的钻石数量
-            Global.noticeDiamond = data.noticeDiamond;
+            GameGlobal.noticeDiamond = data.noticeDiamond;
 
             //// 用户拥有的商品
-            Global.shops = data.shops;
+            GameGlobal.shops = data.shops;
             
-            Global.offlineGold = data.offlineGold;  //离线收益
+            GameGlobal.offlineGold = data.offlineGold;  //离线收益
 
-            Global._shopZk = data.shopZk; /// 商品折扣
+            GameGlobal._shopZk = data.shopZk; /// 商品折扣
 
             // Global.offlineGold = {n: 461, e:2};  //测试使用假的离线收益
             /// 收到socket消息的数量
             //判断当前版本是否正在审核中
-            if (data.ver === Global.ver) {
-                Global.isCheck = true;
+            if (data.ver === GameGlobal.ver) {
+                GameGlobal.isCheck = true;
             }
 
             // 获取存在服务端的用户guideState
@@ -327,13 +347,11 @@ cc.Class({
                     }
                     this.getUserBuildings()
                         .then((responseData) => {
-                            this.restartButton.node.active = false;
-                            Global.BuildingManager.networkRooms = responseData.userRooms;
-                            cc.director.loadScene("game");
-
-                            this._getUserInfo();
-                        }).catch((err) => {
-                            this._getDataFail();
+                        this.restartButton.node.active = false;
+                        GameGlobal.BuildingManager.networkRooms = responseData.userRooms;
+                        cc.director.loadScene("game");
+                    }).catch((err) => {
+                        this._getDataFail();
                     });
                 },
                 fail: (res) => {
@@ -350,8 +368,13 @@ cc.Class({
     _getDataFail() {
         this.loginLabel.node.active = false;
         this.updateUINode.active = false;
-        Global.commonAlert.showCommonErrorAlert('登录失败请重试');
-        if (CC_WECHATGAME) {
+        GameGlobal.commonAlert.showCommonErrorAlert('登录失败请重试');
+        if (window.tt != undefined) {
+            if (this.restartButton) {
+                this.restartButton.node.active = true;
+                this.restartButton.interactable = true;
+            }
+        } else if (CC_WECHATGAME) {
             //检查登录态
             weChat.checkLogin(flag => {
                 if (flag) {
@@ -396,8 +419,21 @@ cc.Class({
         })
     },
 
+    /// 更新全局channel
+    _updateChannel() {
+        if (window.tt != undefined) {
+            GameGlobal.channel = 'toutiao';
+        }else if (CC_WECHATGAME) {
+            GameGlobal.channel = 'weixin';
+        } else if (CC_QQPLAY) {
+            GameGlobal.channel = 'qq';
+        } else {
+            GameGlobal.channel = 'LuciferChannel';
+        }
+    },
+
     _getUserInfo() {
-        if (CC_WECHATGAME) {
+        if (CC_WECHATGAME && window.tt == undefined) {
             this._getWXCode().then( (code) => {
                 wx.getUserInfo({
                     withCredentials: true,

+ 1 - 1
assets/scripts/login/LoginCtrl.js.meta

@@ -1,6 +1,6 @@
 {
   "ver": "1.0.5",
-  "uuid": "92fe3c98-9b2a-4986-ba06-51f581012f22",
+  "uuid": "03ce8205-1a6b-4c1a-99dc-cd715a60ca2b",
   "isPlugin": false,
   "loadPluginInWeb": true,
   "loadPluginInNative": true,

+ 13 - 7
assets/scripts/loginReward/LoginRewardCtrl.js

@@ -46,8 +46,11 @@ cc.Class({
             item.getComponent('LoginRewardItem').init(itemModel);
 
             if (this.reward == undefined) {
-                if (itemModel.rewardId > Global.userLoginReward.rewardCount) {
+                if (itemModel.rewardId > GameGlobal.userLoginReward.rewardCount) {
                     this.reward = itemModel;
+                    if (window.tt != undefined) {
+                        this.shareLabel.string = '分享领取双倍签到奖励';
+                    }
                 }
             }
         }
@@ -58,11 +61,14 @@ cc.Class({
             let imageId = 50000 + itemModel.starId;
             ArtistManager.loadStarAvatarSpriteFrame(imageId, this.starSprite);
 
-            this.star = Global.BuildingManager.getStarInfo(itemModel.starId);
+            this.star = GameGlobal.BuildingManager.getStarInfo(itemModel.starId);
             this.starRichText.string = `<b><outline color=#ff6e19 width=2>累计登录7天\n即可获得${this.star.name}签约资格~</outline></b>`;
 
-            if (Global.userLoginReward.rewardCount >= 6 && !Global.userLoginReward.isLoginReward) {
+            if (GameGlobal.userLoginReward.rewardCount >= 6 && !GameGlobal.userLoginReward.isLoginReward) {
                 this.shareLabel.string = '分享到群炫耀';
+                if (window.tt != undefined) {
+                    this.shareLabel.string = '分享炫耀';
+                }
                 this.reward = itemModel;
             }
         }
@@ -113,7 +119,7 @@ cc.Class({
     },
 
     refreshButton() {
-        if (Global.userLoginReward.isLoginReward) {
+        if (GameGlobal.userLoginReward.isLoginReward) {
             this.signButton.interactable = false;
             this.signButton.getComponent(cc.Sprite).spriteFrame = this.signButtonSpriteFrame[1];
         } else {
@@ -124,8 +130,8 @@ cc.Class({
 
     gainReward(isShare) {
         InviteApi.postLoginReward(this.reward.rewardId, isShare, (responseData) => {
-            Global.userLoginReward.isLoginReward = true;
-            Global.userLoginReward.rewardCount = this.reward.rewardId;
+            GameGlobal.userLoginReward.isLoginReward = true;
+            GameGlobal.userLoginReward.rewardCount = this.reward.rewardId;
             TapTapTool.removeRedDot(GameRedDot.sign);
             this.refreshButton();
 
@@ -158,7 +164,7 @@ cc.Class({
             }
         }, (error) => {
             this.signButton.interactable = true;
-            Global.commonAlert.showCommonErrorAlert("签到失败");
+            GameGlobal.commonAlert.showCommonErrorAlert("签到失败");
         });
     },
 

+ 1 - 1
assets/scripts/loginReward/LoginRewardItem.js

@@ -77,7 +77,7 @@ cc.Class({
             this.itemCountRichText.string = `<b><outline color=#000000 width=2>金币 X${TapTapTool.parseToString(gold)}</outline></b>`;
         }
 
-        if (Global.userLoginReward.rewardCount >= this.model.rewardId) {
+        if (GameGlobal.userLoginReward.rewardCount >= this.model.rewardId) {
             this.isSigned = true;
         } else {
             this.isSigned = false;

+ 1 - 1
assets/scripts/messageList/MessageItem.js

@@ -48,7 +48,7 @@ cc.Class({
             if (this._messageData.type === 2 && this._messageData.sId != 2 && infoDesc.indexOf('{num}') != -1) {
                 let skillLevel = this._messageData.level;
                 let skillId = this._messageData.sId;
-                let skillLevelInfo = Global.BuildingManager.getSkillLevelInfo(skillId, skillLevel);
+                let skillLevelInfo = GameGlobal.BuildingManager.getSkillLevelInfo(skillId, skillLevel);
                 /// 第一个技能
                 if (skillId === 1) {
                     let num = skillLevel > 11 ? (10 + skillLevel - 11) : 10;

+ 19 - 19
assets/scripts/messageList/MessageList.js

@@ -27,8 +27,8 @@ cc.Class({
     },
 
     updateInitData(updateCount, isTime) {
-        let timeInformations = Global._timeInformations;
-        let itemDatas = timeInformations.concat(Global._fixInformations);
+        let timeInformations = GameGlobal._timeInformations;
+        let itemDatas = timeInformations.concat(GameGlobal._fixInformations);
         let originLength = this._itemsData.length;
         let upLength = updateCount == -1 ? itemDatas.length : updateCount;
         let max = upLength + originLength;
@@ -49,7 +49,7 @@ cc.Class({
                 item = null;
                 this._itemsData.splice(index, 1);
                 itemDatas.splice(arrIndex + i, 1);
-                Global._fixInformations.splice(i, 1);
+                GameGlobal._fixInformations.splice(i, 1);
             }
             max -= sub;
             originLength -= sub;
@@ -102,28 +102,28 @@ cc.Class({
         // maxCount	免费设计总部大头的最大次数	
         // cdTime
         /// 看视频分享免费获取的cd时间    
-        if (Global._upBuildingInfo == undefined) {
+        if (GameGlobal._upBuildingInfo == undefined) {
             return;
         }
-        let buildingCount = Global._upBuildingInfo.maxCount - Global._upBuildingInfo.count;
-        if (Global._upBuildingInfo.cdTime > 0 && buildingCount > 0) {
-            Global._upBuildingInfo.cdTime -= 1000;
-            if (Global._upBuildingInfo.cdTime <= 0) {
+        let buildingCount = GameGlobal._upBuildingInfo.maxCount - GameGlobal._upBuildingInfo.count;
+        if (GameGlobal._upBuildingInfo.cdTime > 0 && buildingCount > 0) {
+            GameGlobal._upBuildingInfo.cdTime -= 1000;
+            if (GameGlobal._upBuildingInfo.cdTime <= 0) {
                 // GameEvent.fire(GameNotificationKey.AdBuildingStateUpdate);
             }
         }
-        let upRoomCount = Global._upRoomInfo.maxCount - Global._upRoomInfo.count;
-        if (Global._upRoomInfo.cdTime > 0 && upRoomCount > 0) {
-            Global._upRoomInfo.cdTime -= 1000;
-            if (Global._upRoomInfo.cdTime <= 0) {
+        let upRoomCount = GameGlobal._upRoomInfo.maxCount - GameGlobal._upRoomInfo.count;
+        if (GameGlobal._upRoomInfo.cdTime > 0 && upRoomCount > 0) {
+            GameGlobal._upRoomInfo.cdTime -= 1000;
+            if (GameGlobal._upRoomInfo.cdTime <= 0) {
                 GameEvent.fire(GameNotificationKey.AdRoomStateUpdate);
             }
         }
 
-        let starCount = Global._buyStarInfo.maxCount - Global._buyStarInfo.count;
-        if (Global._buyStarInfo.cdTime > 0 && starCount > 0) {
-            Global._buyStarInfo.cdTime -= 1000;
-            if (Global._buyStarInfo.cdTime <= 0) {
+        let starCount = GameGlobal._buyStarInfo.maxCount - GameGlobal._buyStarInfo.count;
+        if (GameGlobal._buyStarInfo.cdTime > 0 && starCount > 0) {
+            GameGlobal._buyStarInfo.cdTime -= 1000;
+            if (GameGlobal._buyStarInfo.cdTime <= 0) {
                 GameEvent.fire(GameNotificationKey.AdStarStateUpdate);
             }
         }
@@ -150,10 +150,10 @@ cc.Class({
             item.destroy();
             item = null;
             this._itemsData.splice(index, 1);
-            if (index < Global._timeInformations.length) {
-                Global._timeInformations.splice(index, 1);
+            if (index < GameGlobal._timeInformations.length) {
+                GameGlobal._timeInformations.splice(index, 1);
             } else {
-                Global._fixInformations.splice(index - Global._timeInformations.length - 1, 1);
+                GameGlobal._fixInformations.splice(index - GameGlobal._timeInformations.length - 1, 1);
             }
         }
 

部分文件因文件數量過多而無法顯示